Var s,ss,s1,s2:string; p,p1,p2,max,min:integer; begin writeln('Введите строку:'); readln(s); ss:=s+' '; max:=0; min:=255; p:=pos(' ',ss); while p>0 do begin if p>max then begin max:=p; s1:=' '+copy(ss,1,p); end; if p<min then begin min:=p; s2:=' '+copy(ss,1,p); end; delete(ss,1,p); p:=pos(' ',ss); end; s:=' '+s+' '; p1:=pos(s1,s); p2:=pos(s2,s); if p1>p2 then begin delete(s,p1,max+1); insert(s2,s,p1); delete(s,p2,min+1); insert(s1,s,p2); end else begin delete(s,p2,min+1); insert(s1,s,p2); delete(s,p1,max+1); insert(s2,s,p1); end; s:=trim(s); writeln(s); end.
Пример: Введите строку: поменяйте местами самое длинное и самое короткое слово и местами самое длинное поменяйте самое короткое слово
Ну функция randomize() создаёт, перемешивает новые рандомные числа, а random() их предоставляет. Разных вариаций написания много, я например сделал с массивом, можно в принципе и без него, но с ним лучше т.к. числа хранятся в массиве и их можно выводить в будущем, если это слишком сложно для тебя, то я могу написать программу без использования массива.
Var i,b:integer; A:array[1..20] of integer; Begin Randomize(); for i:=1 to 20 do A[i]:=Random(0,50); Write('Из чисел: '); for i:=1 to 20 do begin if i=20 then Writeln(A[i]) else Write(A[i],', ') end; Write('Кол-во четных равняется: '); for i:=1 to 20 do if (A[i] mod 2 = 0) then b:=b+1; Writeln(b) End.
p,p1,p2,max,min:integer;
begin
writeln('Введите строку:');
readln(s);
ss:=s+' ';
max:=0; min:=255;
p:=pos(' ',ss);
while p>0 do
begin
if p>max then begin max:=p; s1:=' '+copy(ss,1,p); end;
if p<min then begin min:=p; s2:=' '+copy(ss,1,p); end;
delete(ss,1,p);
p:=pos(' ',ss);
end;
s:=' '+s+' ';
p1:=pos(s1,s);
p2:=pos(s2,s);
if p1>p2
then begin delete(s,p1,max+1); insert(s2,s,p1); delete(s,p2,min+1); insert(s1,s,p2); end
else begin delete(s,p2,min+1); insert(s1,s,p2); delete(s,p1,max+1); insert(s2,s,p1); end;
s:=trim(s);
writeln(s);
end.
Пример:
Введите строку:
поменяйте местами самое длинное и самое короткое слово
и местами самое длинное поменяйте самое короткое слово
Разных вариаций написания много, я например сделал с массивом, можно в принципе и без него, но с ним лучше т.к. числа хранятся в массиве и их можно выводить в будущем, если это слишком сложно для тебя, то я могу написать программу без использования массива.
Var i,b:integer;
A:array[1..20] of integer;
Begin
Randomize();
for i:=1 to 20 do
A[i]:=Random(0,50);
Write('Из чисел: ');
for i:=1 to 20 do
begin
if i=20 then
Writeln(A[i])
else Write(A[i],', ')
end;
Write('Кол-во четных равняется: ');
for i:=1 to 20 do
if (A[i] mod 2 = 0) then b:=b+1;
Writeln(b)
End.
Вот выводы программы, которые у меня получились.
Первый раз:
Из чисел: 42, 1, 46, 24, 36, 9, 22, 16, 7, 41, 49, 46, 27, 29, 50, 44, 44, 10, 48, 36
Кол-во четных равняется: 13
Второй раз:
Из чисел: 5, 16, 16, 27, 1, 48, 46, 45, 46, 13, 21, 18, 24, 45, 14, 13, 33, 14, 21, 30
Кол-во четных равняется: 10
Третий раз:
Из чисел: 15, 2, 24, 42, 49, 43, 5, 48, 8, 1, 45, 9, 20, 24, 35, 19, 11, 15, 26, 33
Кол-во четных равняется: 8
Файл с кодом прикреплю во вложения, спрашивай если не понятна какая-то функция, объясню, дабы ты не стоял в ступоре перед учительницей...