Pascal ABC задача на одномерный массив #5
Напишите пожалуйста программу:
//Ввести массив A(n). Если в массиве нет элементов, кратных 5, то
//уменьшить все четные элементы массива в 10 раз, иначе – найти
//максимальный из отрицательных элементов массива.
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Ну, например, так можно:
123456789101112131415161718192021222324252627282930
Program P5;
var a: array [1..999] of integer;
i, maxo, n, nk: integer;
begin
maxo:=0;
nk:=0;
writeln ('Для правильной работы программы вводите с клавиатуры только целые числа.');
write ('Введите количество элементов массива: ');
readln (n);
if (n<1) or (n>999) then writeln ('Ошибка: введено некорректное число.') else begin
for i:=1 to n do begin
write ('Введите ', i, '-й элемент массива: ');
readln (a[i]);
if a[i]<0 then maxo:=a[i];
if a[i] mod 5=0 then nk:=nk+1;
end;
if nk=0 then begin
for i:=1 to n do if a[i] mod 2=0 then a[i]:=a[i] div 10;
write ('Итоговый массив:');
for i:=1 to n do write (' ', a[i]);
writeln (' ');
end else begin
if maxo=0 then writeln ('В введенном массиве нет отрицательных элементов.') else begin
for i:=1 to n do if (a[i]<0) and (a[i]>maxo) then maxo:=a[i];
writeln ('Максимальный отрицательный элемент введенного массива: ', maxo);
end;
end;
end;
write ('Программа завершена.');
end.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
program ArrayTask;
const
n = 10; // Размер массива (можно изменить)
var
a: array[1..n] of integer;
i: integer;
hasMultipleOf5: boolean;
maxNegative: integer;
maxNegativeFound: boolean;
begin
// Ввод массива
writeln('Введите ', n, ' элементов массива:');
for i := 1 to n do
read(a[i]);
// Проверка наличия элементов, кратных 5
hasMultipleOf5 := false;
for i := 1 to n do
if a[i] mod 5 = 0 then
begin
hasMultipleOf5 := true;
break;
end;
// Обработка массива в зависимости от наличия кратных 5
if not hasMultipleOf5 then
begin
// Уменьшение четных элементов в 10 раз
writeln('В массиве нет элементов, кратных 5. Уменьшаем четные элементы в 10 раз.');
for i := 1 to n do
if a[i] mod 2 = 0 then
a[i] := a[i] div 10;
end
else
begin
// Поиск максимального из отрицательных элементов
writeln('В массиве есть элементы, кратные 5. Ищем максимальный отрицательный элемент.');
maxNegativeFound := false;
for i := 1 to n do
if a[i] < 0 then
begin
if not maxNegativeFound then
begin
maxNegative := a[i];
maxNegativeFound := true;
end
else if a[i] > maxNegative then
maxNegative := a[i];
end;
if maxNegativeFound then
writeln('Максимальный отрицательный элемент: ', maxNegative)
else
writeln('Отрицательных элементов не найдено.');
end;
// Вывод измененного массива (если были изменения)
if not hasMultipleOf5 then
begin
writeln('Измененный массив:');
for i := 1 to n do
write(a[i], ' ');
writeln;
end;
readln;
end.
Больше по теме