М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Temosha101010
Temosha101010
21.08.2021 14:51 •  Информатика

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

👇
Открыть все ответы
Ответ:
maltsevaalbina2006
maltsevaalbina2006
21.08.2021
Если число заканчивается на 5 или 0, то по признакам делимости оно кратно 5.

1. Глупый школьный вариант

Перебираем все числа в заданном диапазоне и если встречаем кратное 5, прибавляем его к сумме.

var
  i,s:integer;

begin
  s:=0;
  for i:=1 to 200 do
    if i mod 5=0 then s:=s+i;
  Writeln(s)
end.

Результат:
4100

2. Более умный школьный вариант с циклом while

Первое число, кратное 5 - это 5. А дальше прибавляем по 5 к сумме и ничего не нужно проверять.

var
  i,s:integer;

begin
  i:=5; { первое подходящее число }
  s:=i;
  while i<200 do begin
    i:=i+5;
    s:=s+i
    end;
  Writeln(s)
end.

3. Еще более умный школьный вариант с циклом for

От предыдущего отличается получения нужных чисел.
Замечаем, что ряд 5, 10, 15, 20, ... можно получить из чисел 1, 2, 3, 4, ..., умножая их на 5. И таких чисел будет 40.

var
  i,s:integer;

begin
  s:=0;
  for i:=1 to 40 do s:=s+5*i;
  Writeln(s)
end.

4. Современный вариант на современном Паскале

Генерируем последовательность нужных чисел и находим сумму её элементов.

// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  Range(5,200,5).Sum.Println
end.
4,7(80 оценок)
Ответ:
astanina042
astanina042
21.08.2021

// Форматирование вывода вещественного числа можно поставить как нравится, я выбрал 3:3

// Считал, что доля с участием нуля равна 0%

program Calc;

var a, b: integer;

begin

 write('Введите a: ');

 readln(a);

 

 write('Введите b: ');

 readln(b);

 

 writeln(a, '+', b, '=', a + b);

 writeln(a, '-', b, '=', a - b);

 writeln(a, '*', b, '=', a * b);

 

 if (b = 0) then begin

   writeln(a, '/', b, ' не определено');

   writeln(a, ' составляет 0% от числа ', b);

 end

 else begin

   writeln(a, '/', b, '=', (a / b):3:3);

   writeln(a, ' составляет ', (a / b * 100):3:3, '% от числа ', b);

 end;

 

 if (a = 0) then

   writeln(b, ' составляет 0% от числа ', a)

 else

   writeln(b, ' составляет ', (b / a * 100):3:3, '% от числа ', a);

end.

4,8(65 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ