Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 27.03.2013, 23:13   #1 (permalink)
nice5531
Новичок
 
Регистрация: 27.03.2013
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить задачи

1. Составьте программу подсчёта всех натуральных чисел, меньших М, квадрат суммы цифр которых равен Х.
2. В заданном предложении найти самое короткое и самое длинное слова
3. Удалите строку, в которой находится элемент, кратный 3
4. Составьте программу меняющую местами элементы матрицы симметрично побочной диагонали
5. Вставить два элемента: первый – после всех элементов, больших данного числа Р, а второй – перед всеми элементами, большими данного числа Р (Р вводить с клавиатуры).
nice5531 вне форума   Ответить с цитированием

Старый 27.03.2013, 23:13
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Эти темы аналогичны, можете поискать там полезную информацию

Помогите решить задачи на C++
Помогите решить задачи
Помогите решить задачи
Помогите решить задачи
Помогите решить задачи

Старый 27.03.2013, 23:43   #2 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
По умолчанию

Язык программирования?
Gruvi вне форума   Ответить с цитированием
Старый 27.03.2013, 23:50   #3 (permalink)
nice5531
Новичок
 
Регистрация: 27.03.2013
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

TurboPascal
nice5531 вне форума   Ответить с цитированием
Старый 28.03.2013, 03:10   #4 (permalink)
Léon
С# - learn or die
 
Аватар для Léon
 
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
По умолчанию

Цитата:
Сообщение от nice5531 Посмотреть сообщение
2. В заданном предложении найти самое короткое и самое длинное слова
Код:
uses crt;
const rz=[' ','.',',','?','!'];
var s,s1,s2,s3:string;
    sk,sd:string;
    k,d,i,ik,id,j,p:byte;
begin
clrscr;
writeln('Введите строку из слов, отделенных разделителями:');
readln(s);
i:=1;
d:=0;id:=1;{длина длинного слова и его начало в строке}
k:=255;ik:=1;{длина корткого слова и его начало в строке}
while i<=length(s) do
if not(s[i] in rz) then
begin
  s1:='';{будем составлять слово}
  j:=i;
  p:=0;
  while not(s[j] in rz)and(j<=length(s)) do
   begin
    s1:=s1+s[j];
    j:=j+1;
    p:=p+1;
   end;
  if length(s1)<k then{если меньше короткого}
   begin
    sk:=s1;{это короткое}
    k:=length(s1);{его длина}
    ik:=i;{начало в строке}
   end;
  if length(s1)>d then{то же с длинным}
   begin
    sd:=s1;
    d:=length(s1);
    id:=i;
   end;
  i:=i+p;
end
else i:=i+1;
writeln('Самое короткое слово ',sk);
writeln('Самое длинное слово ',sd);
if ik<id then{если короткое раньше}
begin
  insert(sk,s,id);{вставляем короткое перед длинным}
  delete(s,id+k,d);{удаляем длинное}
  insert(sd,s,ik);{вставляем длинное на старое место короткого}
  delete(s,ik+d,k);{удаляем короткое}
end
else{если длинное раньше, то все наоборот}
   begin
    insert(sd,s,ik);
    delete(s,ik+d,k);
    insert(sk,s,id);
    delete(s,id+k,d);
   end;
write(s);
readln
end.
Цитата:
Сообщение от nice5531 Посмотреть сообщение
4. Составьте программу меняющую местами элементы матрицы симметрично побочной диагонали
Код:
program matrix;
uses crt;
var n: BYTE;
    A: array[0..10, 0..10] of Integer;
    i, j: BYTE;
    num: Integer;
 
begin
    clrscr;
    writeln('Vvedite n');
    read(n);
    writeln('vvedite matricy');
    for i:= 0 to n-1 do begin
      for j:= 0 to n-1 do begin
        gotoxy((j+1)*5, 5+i);
        read(A[i, j]);
      end;
    end;
    for i:= 0 to n-1 do
      for j:= 0 to n-1 do
        if (j < n-i) then begin
            num:= A[i, j];
            A[i, j]:= A[n-j-1, n-i-1];
            A[n-j-1, n-i-1]:= num;
        end;
    for i:= 0 to n-1 do begin
      for j:= 0 to n-1 do begin
        gotoxy((j+1)*5, 7+i+n);
        write(A[i, j]);
      end;
    end;
    readkey;
end.
Léon вне форума   Ответить с цитированием
Старый 28.03.2013, 03:25   #5 (permalink)
Léon
С# - learn or die
 
Аватар для Léon
 
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
По умолчанию

Цитата:
Сообщение от nice5531 Посмотреть сообщение
5. Вставить два элемента: первый – после всех элементов, больших данного числа Р, а второй – перед всеми элементами, большими данного числа Р (Р вводить с клавиатуры).
Код:
uses crt;
const nmax=50;
type myarray=array[1..nmax] of integer;
var n:byte;
procedure init2 (var n:byte; var m:myarray);
var i:integer;
begin
n:=25;
for i:=1 to n do
m[i]:=Random(111)-35;
end;
procedure print1 (n:integer; var m:myarray);
var i:integer;
begin
for i:=1 to n do
write(m[i]:4);
writeln;
end;
procedure vstavka(var n:byte; var m:myarray; a,k1,k2:integer);
var i,j:byte;
begin
i:=1;
while i<=n do
if m[i]>a then
begin
n:=n+1;
for j:=n downto i+2 do
m[j]:=m[j-1];
m[i+1]:=k1;
n:=n+1;
for j:=n downto i+1 do
m[j]:=m[j-1];
m[i]:=k2;
i:=i+3;
end
else i:=i+1;
end;
var a:myarray; P,k1,k2,k:integer;
begin
Randomize;
init2(n,a);
print1(n,a);
write('Vvedite chislo dlya sravnenia P=');
readln(P);
write('Vvedite chislo dlya vstavki posle bolshih ',P,' k1=');
readln(k1);
write('Vvedite chislo dlya vstavki pered kratnumi P k2=');
readln(k2);
vstavka(n,a,P,k1,k2);
writeln('Vstavka chisel po ysloviu:');
print1(n,a);
end.
Léon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 28.03.2013, 04:01   #6 (permalink)
Léon
С# - learn or die
 
Аватар для Léon
 
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
По умолчанию

Цитата:
Сообщение от nice5531 Посмотреть сообщение
3. Удалите строку, в которой находится элемент, кратный 3
Код:
const nmax=20;
Type myarray=array [1..nmax]of integer;
Procedure init2(var n1:integer;var x:myarray);
var i:integer;
begin
repeat
write('Размер массива до ',nmax,' n=');
readln(n1);
until n1 in [1..nmax];
for i:=1 to n1 do
x[i]:=random(10);
end;
Procedure print1(n1:integer;x:myarray);
var i:integer;
begin
for i:=1 to n1 do
write(x[i]:3);
writeln;
end;
Procedure Delete(var n1:Integer;Var m:myarray);
Var i,j:Integer;
Begin
i:=1;
while i<=n1 do
if m[i] mod 3=0 then
 begin
  if i=n1 then n1:=n1-1
  else
   begin
    for j:=i to n1-1 do
    m[j]:=m[j+1];
    n1:=n1-1;
   end;
 end
else i:=i+1;
end;
var a:myarray;
    n:integer;
Begin
Randomize;
Init2(n,A);
writeln('Исходный массив');
Print1(n,A);
Delete(n,a);
writeln('Удаление кратных 3');
print1(n,a);
end.
Léon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:25.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.