


Простая школьная задача в PascalABC
PascalABC. Напишите программу, которая запрашивает количество элементов линейного массива действительных чисел (не больше 25), затем сами элементы массива, затем выводит на экран введённый массив (на одной строке) и на следующей строке два его наименьших члена (одинаковые члены игнорируются - то есть из массива 3 2 1 1 будут выведены числа 1 и 2). Если таких членов в массиве нет, программа сообщает об этом. Отработав, программа должна спросить, не хочет ли пользователь повторить операцию.
const
N = 25;
var
_n: integer;
a: array[1..N]of integer;
i, j: integer;
min: integer;
tmp: integer;
_continue: char;
begin
_continue := 'y';
while _continue <> 'n' do
begin
write('Введите количество элементов массива:');
readln(_n);
if (2 <= _n) and (_n <= N) then
begin
writeln('Введите элементы массива:');
for i := 1 to _n do
begin
readln(A[i]);
end;
writeln('Элементы массива:');
for i := 1 to _n do
begin
write(A[i], ' ');
end;
for i := 1 to _n do
begin
min := A[i];
for j := i + 1 to _n do
begin
if A[j] < min then
begin
tmp := A[i];
A[i] := A[j];
A[j] := tmp;
end;
end;
end;
end
else
writeln('Ошибка! Количество элементов массива должно быть болше 1 и не более 25.');
writeln;
if A[1] <> A[2] then
writeln('Два наименьших элемента массива:', A[1], ' ', A[2])
else
writeln('Наименьшие элементы совпадают.');
write('Продолжить? y/n:');
readln(_continue);
end;
end.
Вау! Сколько букв?
Решение максимум на две строки кода!

зачем ты всех скрыл?
Они дали верные ответы
program Test;
uses crt;
const
N = 10;
var
mas: array [1..25] of integer;
i,j,size,a,ask,k:integer;
begin
repeat
write('Введите размер массива: ');
readln(size);
writeln('');
if size > 25 then
begin
writeln('Вы ввели размер массива, больше возможного!');
exit;
end;
clrscr;
for i:=1 to size do
begin
write('Введите ',i,'-ый элемент массива: ');
read(mas[i]);
clrscr;
end;
write('Все элементы массива: ');
for i:=1 to size do
begin
write(mas[i], ' ');
end;
writeln('');
for i:=1 to size-1 do
for j:=1 to size-i do
if mas[j] > mas[j+1] then
begin
a:= mas[j];
mas[j]:= mas[j+1];
mas[j+1]:= a;
end;
write('Отсортированный массив: ');
for i:=1 to size do
write(mas[i],' ');
for i:=1 to size do
if mas[i] = mas[i+1] then
begin
mas[i]:= 0;
k:= i+1;
end;
writeln('');
writeln('Первый наименьший элемент массива - ',mas[k],'. Второй наименьший элемент массива - ',mas[k+1]);
write('Повторить? -Да (1), -Нет (0): ');
readln(ask);
clrscr;
until (ask <> 1)
end.
program Massiv;
var M: array [1..25] of integer;
i,n,min, max: integer;
Ans: byte;
begin
repeat
writeln('Введите кол-во элементов:');
readln(n);
writeln ('Введите элементы массива 1-', n,':');
for i:=1 to n do
read (M[i]);
writeln();
for i:=1 to n do
write(M[i],' ');
writeln();
min:=M[1];
max:=M[1];
for i:=2 to n do
begin
if M[i]>max then max:=M[i];
if M[i]<min then min:=M[i];
end;
if (min = max) then
writeln ('Нет минимального и максимального элемента.')
else
writeln ('Минимальное ч. ', min, ', максимальное ч. ', max);
writeln ('Повторить? 1 - Да, 0 - Нет');
readln (Ans);
until (Ans <> 1)
end.