Задачи по Pascal. Найти сумму целых частей элементов массива, расположенных после последнего отрицательного элемента

Задачи по Pascal

Условие задачи : В одномерном массиве, состоящем из N вещественных элементов, вычислите сумму целых частей элементов массива, расположенных после последнего отрицательного элемента (Язык Pascal)

Сложность : средняя .

Решение задачи :

Для начала продумаем наше решение. Сначала мы заполним массив в ручную и сразу там определим последний отрицательный элемент , мы будем вводить число и смотреть больше оно нуля или нет, если меньше, то переменной last присвоим индекс этого элемента, именно индекс , для того чтобы потом от него начинать цикл.

Потом второй цикл, в котором мы будем отделять целую часть от числа и считать сумму.

Для того чтобы найти сумму целых частей элементов массива, расположенных после последнего отрицательного элемента нам понадобятся следующие переменные :

  1. Переменная mass — для массива
  2. Переменная summa — для суммы целых частей
  3. Переменная n — для кол-ва элементов массива
  4. Переменная last — для последнего отрицательного элемента
  5. Переменная i — счетчик, для цикла

Начнем мы с каркаса нашей программы :

uses crt;

type
    massiv = array [1..100] of real;
var
    mass : massiv;
    summa, i, n, last : integer;

begin
clrscr;

summa := 0;
write('Введите кол-во элементов : '); readln(n);
end.

Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ) дальше объявили все переменные, присвоили переменной summa ноль, чтобы не было ошибок, и попросили пользователя ввести кол-во элементов.

Дальше мы заполним наш массив числами и определим последнее наименьшее число :

for i:=1 to n do
    begin
        write('Введите ', i , ' элемент :'); readln(mass[i]);
        if mass[i] < 0 then
            last := i ;
    end;

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

Теперь второй цикл в котором мы будем считать сумму, мы сделаем цикл не от 1-го а от last+1 , это будем значить что первое число которое мы возьмем для суммы будет после последнего отрицательного элемента. Целую часть мы будем искать с помощью функции trunc.

for i:=last+1 to n do
        summa := summa + trunc(mass[i]);

И нам останется только вывести сумму.

Всё решение задачи Pascal :

uses crt;

type
    massiv = array [1..100] of real;
var
    mass : massiv;
    summa, i, n, last : integer;

begin
clrscr;

summa := 0;
write('Введите кол-во элементов : '); readln(n);

for i:=1 to n do
    begin
        write('Введите ', i , ' элемент :'); readln(mass[i]);
        if mass[i] < 0 then
            last := i ;
    end;

for i:=last+1 to n do
        summa := summa + trunc(mass[i]);

writeln('Сумма целых частей элементов после ', mass[last]:2:2, ' равна : ', summa);
readln;
end.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий