Вопрос задан 05.07.2023 в 14:56. Предмет Информатика. Спрашивает Городницкая Лада.

Даю 100 балов.Инфа Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые

значения от -1000 до 1000 включительно. Опишите алгоритм, позволяющий найти и вывести максимальное значение среди отрицательных элементов массива, не оканчивающихся на 3. Если в исходном массиве нет элемента, значение которого отрицательно и не оканчивается цифрой 3, то вывести сообщение "Не найдено". Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. const N = 30; var a: array [1..N] of integer; i, j, max: integer; begin for i:= 1 to N do readln(a[i]); ... end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лепёхин Никита.

Ответ:

  • max := -1001;
  • for j := 1 to N do
  • if (abs(a[j]) mod 10 <> 3) and (a[j]<0) then
  • if a[j]>max then max := a[j];
  • if max=-1001 then write('Не найдено')  
  • else write(max);

Объяснение:

  • max := -1001;

Присваиваем переменной max, которая должна содержать максимальное значение, минимальное значение -1 ( -1000 -1 = -1001).

  • for j := 1 to N do
  • if (a[j] mod 10 <> 3) and (a[j]<0) then
  • if a[j]>max then max := a[j];

Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.

  • if max=-1001 then write('Не найдено')  
  • else write(max);

Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.

Пример работы:



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи мы можем использовать следующий алгоритм:

  1. Инициализируем переменную max значением, которое гарантированно не будет встречаться в массиве, например, -1001.

  2. Проходим по массиву a и для каждого элемента a[i]:

    • Проверяем, является ли a[i] отрицательным и не оканчивается на 3.
    • Если это условие выполняется и a[i] больше текущего значения max, то обновляем значение max на a[i].
  3. По завершении цикла, проверяем значение max. Если оно осталось равным -1001, то выводим "Не найдено". В противном случае выводим значение max.

Вот как это может быть реализовано в вашем коде:

pascal
const N = 30; var a: array [1..N] of integer; i, max: integer; begin for i := 1 to N do readln(a[i]); max := -1001; // Инициализация максимального значения for i := 1 to N do begin if (a[i] < 0) and (a[i] mod 10 <> 3) then // Проверка условий begin if a[i] > max then max := a[i]; // Обновление максимального значения end; end; if max = -1001 then writeln('Не найдено') else writeln('Максимальное отрицательное значение, не оканчивающееся на 3: ', max); end.

Этот код проходит по массиву, проверяет условия для каждого элемента и находит максимальное отрицательное значение, не оканчивающееся на 3.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос