Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.
1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
3. И так далее до предпоследнего элемента.
Решение:
//Pascal
const
n = 7;
var
a: array[1..n, 1..n] of integer;
i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран
begin
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := random(100);
write(a[i, j]:4);
end;
writeln;
end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do
begin
min := a[4, i];
ind := i;
for j := i + 1 to n do
if a[4, j] < min then
begin
min := a[4, j];
ind := j;
end;
a[4, ind] := a[4, i];
a[4, i] := min;
end;
writeln;
//вывод отсортированной строки
for j := 1 to n do
begin
write(a[4, j]:4);
end;
end.
program raf105;
var abc,ab,bc:integer;
begin
write('Введите трёхзначное число: ');
readln(abc);
ab:= abc mod 100;
bc:= abc div 10;
if ab = bc
then writeln('Число состоит из одинаковых цифр')
else writeln('Число не состоит из одинаковых цифр');
end.
ОбъяснениеДля выполнения задачи достаточно найти первые 2 цифры и последние 2 цифры если они равны, то число состоит из одинаковых цифр
abc mod 100 Убирает все сотни из числа.
Например было число 123, стало 23.
482 стало 82
abc div 10 Считает сколько в числе целых десяток, но не считает остаток.
Например было число 123, стало 12
482 стало 48
Сравнивание 2 первых и 2 последних цифр
253 25 и 53 не равны, значит число не состоит из одинаковых цифр
121 12 и 21 не равны, значит число не состоит из одинаковых цифр
111 11 и 11 равны, значит число состоит из одинаковых цифр