info-mosbalkon
?>

Из n введенных чисел найти сумму квадратов положительных чисел произведения отрицательных и подсчитать нулевые

Информатика

Ответы

ainud
Var n, sum, p: integer;
begin
sum := 0;
p := 1;
repeat
write('Введите число для завершения программы введите 0000): ');
readln(n);
if n <> 0 then begin
if n >= 0 then sum := sum + n;
if n < 0 then p := p * n;
end
else writeln('ИТОГ');
writeln( 'Сумма положительных: ', sum, ' | Произведение отрицательных: ', p);
writeln();
until n = 0000;
end.

Вроде так
Sosovna Dmitrievich22

Первое решение понятно, но это только общие мысли, в целом оно ошибочно по двум пунктам

1. В задании идёт речь о 20 веке, а это года 1901,19022000. Поэтому в объявлении массива нужно указать именно эти интервалы. Или просто 1 - 100, понятно же, что это один век, а при отображении года следует отображать (1900+i). 

2. В задании не определено, с какой точностью это самое население считается, если с точностью до человека, то INTEGER не хватит, поэтому этот вопрос нужно уточнить и в зависимости от точности (до тысяч, до десятков или сотен тысяч человек) выбрать соответствующий формат представления данных.

3. Странно писать 100 одинаковых операторов присваивания(кстати в тексте ещё ошибка - присваивается ОДНО И ТО ЖЕ значение, ведь оператора ввода данных НЕТ!).

Такие вещи делаются в цикле по индексам. Внутри цикла 2 оператора 

Ввод()

Присваивание

Опять же в задании не сказано, откуда берутся данные, ведь они могут браться с клавиатуры, с внешнего устройства(диска) или с какого-нибудь другого устройства ввода, например, сканера. Эти вводы реализуются похожими, но РАЗНЫМИ операторами.

 

Вот мои замечания, хотя, если формально точно реализовывать предложенное задание, нужно всего лишь описать массив, в котором будут храниться некоторые данные. В этом случае действительны лишь замечания 1 и 2. 

 

И ещё. Я не помню, что такое INTEGER. INTEGER 2-байтный точно не хватит, INTEGER 4-байтный должно хватить.

Успехов!

Голосова-Лобанов1555

1)

var

  a: real;

  x, y: integer;

 

begin

  writeln('Введите дробное число');

  readln(a);

  x:= trunc(a);

  y:= frac(a);

  writeln(x, ' рублей ', y * 100, ' копеек');

  readln;

end.

2)

var

  n: 100..999;

  a, b, c: 0..9;  //a - сотни, b - десятки, с - единицы

 

begin

  writeln('Введите трехзначное число');

  readln(n);

  a:= n div 100;

  b:= (n mod 100) div 10;

  c:= n mod 10;

  writeln('Сумма цифр:  ', a + b + c);

  readln;

end.

3)

var

  a, b, c: real;

 

begin

  writeln('Введите числа а и b');

  readln(a, b);

  if a > b then

  begin

    c:= a;

    writeln(c, ' - большее число');

  end;

  if b > a then

  begin

    c:= b;

    writeln(c, ' - большее число');

  end;

  if b = a then writeln('Числа равны');

  readln;

end.

 

  

 

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Из n введенных чисел найти сумму квадратов положительных чисел произведения отрицательных и подсчитать нулевые
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ulechkaevseeva
Михайлович Гуртовая929
o-pavlova-8635
tyrenumberone
sandovo590
bespalovaannaanna
Vyacheslavovich1431
oshemkov579
wwladik2606222
yelenaSmiryagin
Ирина-Макаркина253
alenaya69918
mmi15
barg562
adman7