Вычислить сумму положительных элементов массива - Pascal ABC (12774)
Формулировка задачи:
Задан одномерный массив С(N) (N<=60). Вычислить сумму положительных элементов, этой суммой заменить элементы, расположенные после максимального элемента. Массив С напечатать. Если преобразование невозможно, то выдать об этом сообщение.
Листинг программы
- var
- C: array[1..60] of integer;
- N, i, imax: byte;
- S, max: integer;
- begin
- writeLn('Ââåäèòå ÷èñëî ýëåìåГ*òîâ Гў Г¬Г*Г±Г±ГЁГўГҐ C');
- readLn(N);
- writeLn('Ââîäèì ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* C:');
- for i := 1 to N do
- begin
- write('C[', i, ']=');
- readLn(C[i]);
- end;
- writeLn('ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў C:');
- for i := 1 to N do
- write(C[i]:5);
- writeLn;
- max := C[1];
- imax := 1;
- for i := 1 to N do
- begin
- if C[i] > max then
- begin
- max := C[i];
- imax := i;
- end;
- end;
- S := 0;
- for i := 1 to N do
- begin
- if C[i] > 0 then
- begin
- S:= S + C[i];
- end;
- end;
- for i := imax to N do
- begin
- C[i] := S;
- end;
- writeLn;
- writeLn('Âûâîä Г*îâîãî Г¬Г*Г±Г±ГЁГўГ* C:');
- for i := 1 to N do
- write(C[i]:5);
- end.
Решение задачи: «Вычислить сумму положительных элементов массива»
textual
Листинг программы
- uses crt;
- var C: array[1..60] of integer;
- N, i, imax: byte;
- S,K: integer;
- begin
- repeat
- write('Введите число элементов в массиве C до 60 N=');
- readLn(N);
- until n in [1..60];
- writeLn('Вводим элементы массива C:');
- for i := 1 to N do
- begin
- write('C[', i, ']=');
- readLn(C[i]);
- end;
- clrscr;
- writeLn('Исходный массив C:');
- S:=0;
- K:=0;
- for i := 1 to N do
- begin
- write(C[i]:4);
- if C[i]>0 then S:=S+C[i];
- if C[i]=C[1] then inc(K);
- if i=1 then imax:=1
- else if C[i]>C[imax] then imax:=i
- end;
- writeLn;
- writeln('Сумма положительных=',S);
- if K=N then
- begin
- writeln('Все элементы одинаковые, преобразование невозможно');
- exit
- end;
- writeln('Максимальный элемент=',C[imax],' его номер=',imax);
- if imax=N then
- begin
- write('Максимальный элемент последний, преобразование невозможно');
- exit
- end;
- writeLn('Вывод нового массива C:');
- for i := 1 to N do
- begin
- if i>imax then C[i]:=S;
- write(C[i]:5);
- end;
- end.
Объяснение кода листинга программы
- Создается переменная C, которая представляет собой массив целых чисел размером от 1 до 60.
- Задаются две переменные N и i, которые будут использоваться для чтения и обработки элементов массива C.
- Задается переменная S, которая будет использоваться для хранения суммы положительных элементов массива C.
- Задается переменная K, которая будет использоваться для отслеживания индекса максимального элемента в массиве C.
- Выводится сообщение с просьбой ввести количество элементов в массиве C до 60.
- Пока пользователь не введет число элементов, не превышающее 60, выполняется цикл.
- В каждой итерации цикла выводится сообщение с просьбой ввести элемент массива C.
- Если введенный элемент больше нуля, то к переменной S прибавляется его значение.
- Если введенный элемент равен элементу C[1], то увеличивается значение переменной K.
- Если введенный элемент равен первому элементу массива C, то устанавливается максимальное значение переменной imax.
- Если все элементы массива C равны, выводится сообщение о невозможности преобразования.
- Если в массиве C есть элементы с разными значениями, выводится сообщение о невозможности преобразования.
- Если в массиве C есть максимальный элемент, отличный от последнего, выводится сообщение о невозможности преобразования.
- Выводится сообщение с просьбой ввести новый массив C.
- В каждой итерации цикла выводится значение элемента массива C, если его значение больше значения переменной imax.
- Если в массиве C есть элементы с разными значениями, устанавливается значение переменной imax.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д