Задание № 7567

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -1000 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди отрицательных элементов массива, не оканчивающихся на 3. Если в исходном массиве нет элемента, значение которого отрицательно и не оканчивается цифрой 3, то вывести сообщение "Не найдено".

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик

N = 30
DIM A(N) AS INTEGER
DIM, I, J, MAX AS INTEGER
FOR I = 1 TO N
	INPUT A(I)
NEXT I
...
END

Паскаль

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.

Си

#include <stdio.h>
#define N 30
void main () {
	int a[N];
	int i, j, max;
	for (i = 0; i < N; i++)
		scanf ("%d", &a[i]);
	...
}

Алгоритмический язык

алг
нац
	цел N = 30
	целтаб а[1:N]
	цел i, j, max
	нц для i от 1 до N
		ввода a[i]
	кц
	...
кон

Естественный язык

Объявляем массив А из 30 элементов.
Объявляем целочисленные переменные I, J, MAX.
В цикле от 1 до 30 вводим элементы массива А с 1-го по 30-й.
...

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).


Решать другие задания по теме: Ал­го­рит­мы обработки массивов

Показать ответ
Комментарий:

Содержание верного ответа

На языке Паскаль

 шах := -1001; for i := 1 to N do
	if (a[i] < 0) and ((-1 * a[i]) mod 10 <> 3) and (a[i] > max) then 
		max := a[i];
if max > -1001 then writeln(max) else writeln('He найдено');

На алгоритмическом языке

 max := -1001 
нц для i от 1 до N
	если a[i] < 0 и mod(-l * a[i], 10) о 3 и a[i] > max 
	то
		max := a[i] 
	все
кц
если max > -1001
то
	вывод max 
иначе
	вывод "He найдено" 
все

На языке Бейсик

 МАХ = -1001 FOR I = 1 ТО N
	IF, А (I) < 0 AND (-1 * A(I) ) MOD 10 О 3 AND A(I) > MAX THEN 
		МАХ = А(I)
	END IF NEXT I
IF MAX > -1001 THEN 
PRINT MAX 
ELSE
	PRINT "He найдено"
END IF

На языке Си

max = -1001;
for (i = 0; i < N; i++)
	if (a[i] < 0 && (-1 * a[i]) % 10 != 3 && a[i] > max)
		max = a[i];
if (max > -1001)
	printf("%d", max);
else
	printf("Не найдено");
Ответ:

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.