Предмет: Информатика, автор: ЕкатеринаЯблочкова

Дан массив из N элементов. Определить сумму тех, которые нечетны и отрицательны.

Ответы

Автор ответа: pacixor
0
//Pascal
//Заполнение массива случайными числами
var
  A: array[1..255] of integer;
  i, sum, N: integer;
begin
write('Введите N: '); readln(N);
randomize; //В PascalABC.NET можно убрать
for i := 1 to N do
begin
  A[i] := random(21)-10; //Случайные числа от -10 до 10
  if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i];
  write(A[i], ' ');
end;
writeln;
writeln('Сумма отрицательных и нечетных = ', sum);
readln;
end. 


//Pascal
//Заполнение массива с клавиатуры
var
  A: array[1..255] of integer;
  i, sum, N: integer;
begin
write('Введите N: '); readln(N);
for i := 1 to N do
begin
  write('A[', i, '] = '); readln(A[i]);
  if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i];
end;
writeln;
writeln('Сумма отрицательных и нечетных = ', sum);
readln;
end. 
Приложения:
Автор ответа: ЕкатеринаЯблочкова
0
Почему до 255?
Автор ответа: ЕкатеринаЯблочкова
0
И какой вариант вернее?
Автор ответа: pacixor
0
Оба варианты верны. В задании не сказано, как заполнять массив. Просто сделал второй вариант на всякий случай.
По поводу размера массива. В старых версиях паскаля было ограничение на 256 элементов. Ты ведь не указываешь, на каком паскале ты делаешь, я и делаю более менее универсальный вариант.
Автор ответа: pacixor
0
Если делаешь во FreePascal или PascalABC.NET, можешь сделать так:
В var не задавать размер массива:
"A: array of integer;"

После ввода размера массива(N) добавить:
"SetLength(A, N);"

И сделать цикл таким:
"for i:=0 to N-1 do"
Похожие вопросы
Предмет: Қазақ тiлi, автор: turmukhambetoverkin
Предмет: Математика, автор: Аноним
Предмет: Литература, автор: соняжужа