Предмет: Информатика,
автор: gerodinist
Решить задачи с помощью Паскаля:
1. Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре.
2. Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать первую половину по возрастанию, а вторую- по убыванию. Здесь решать лучше методом выбора.
Ответы
Автор ответа:
0
2) Сортирую не методом выбора, а пузырьковым методом, т.к. мне неизвестна формулировка "метод выбора"
program z1;
var
mas:array[1..10] of Integer;
m,n,temp:integer;
begin
randomize;
for i:=1 to 10 do
begin
mas[i]:=random(100);
end;
for i:=1 to 4 do if mas[i]>mas[i+1] then
begin
temp:=mas[i+1];
mas[i+1]:=mas[i];
mas[i]:=temp;
end;
for i:=6 to 9 do if mas[i]<mas[i+1] then
begin
temp:=mas[i+1];
mas[i+1]:=mas[i];
mas[i]:=temp;
end;
end.
Если нужен еще и вывод на экран - то дописываете перед end. следующее: for i:=1 to 10 do writeln(mas[i])
Насчет первого. Мне непонятна формулировка "отсортировать по последней цифре"
program z1;
var
mas:array[1..10] of Integer;
m,n,temp:integer;
begin
randomize;
for i:=1 to 10 do
begin
mas[i]:=random(100);
end;
for i:=1 to 4 do if mas[i]>mas[i+1] then
begin
temp:=mas[i+1];
mas[i+1]:=mas[i];
mas[i]:=temp;
end;
for i:=6 to 9 do if mas[i]<mas[i+1] then
begin
temp:=mas[i+1];
mas[i+1]:=mas[i];
mas[i]:=temp;
end;
end.
Если нужен еще и вывод на экран - то дописываете перед end. следующее: for i:=1 to 10 do writeln(mas[i])
Насчет первого. Мне непонятна формулировка "отсортировать по последней цифре"
Автор ответа:
0
var i,j:integer;
mas:array [1..10] of integer;
begin
randomize;
for i:= 1 to 10 do
mas[i]:=random(101);
for j:=1 to 10-1 do
for i:=1 to 10-j do
if mas[i] mod 10 > mas[i+1] mod 10 then
swap(mas[i],mas[i+1]);
for i:=1 to 10 do
writeln(mas[i]);
end.
2)
var a:array[1..10] of Integer;
i,j:Integer;
begin
randomize;
for i:=1 to 10 do
a[ i]:=random(101);
for i:=1 to 4 do
for j:=i+1 to 5 do
if a[ i] > a[ j] then
swap(a[i],a[j]);
for i:=5 to 9 do
for j:=i+1 to 10 do
if a[ i] < a[ j] then
swap(a[i],a[j]);;
for i:=1 to 10 do
write(a[ i],' ');
end.
mas:array [1..10] of integer;
begin
randomize;
for i:= 1 to 10 do
mas[i]:=random(101);
for j:=1 to 10-1 do
for i:=1 to 10-j do
if mas[i] mod 10 > mas[i+1] mod 10 then
swap(mas[i],mas[i+1]);
for i:=1 to 10 do
writeln(mas[i]);
end.
2)
var a:array[1..10] of Integer;
i,j:Integer;
begin
randomize;
for i:=1 to 10 do
a[ i]:=random(101);
for i:=1 to 4 do
for j:=i+1 to 5 do
if a[ i] > a[ j] then
swap(a[i],a[j]);
for i:=5 to 9 do
for j:=i+1 to 10 do
if a[ i] < a[ j] then
swap(a[i],a[j]);;
for i:=1 to 10 do
write(a[ i],' ');
end.
Похожие вопросы
Предмет: Информатика,
автор: tinakoroleva62
Предмет: Українська мова,
автор: Аноним
Предмет: Математика,
автор: milka880
Предмет: Физика,
автор: c1m0r