Найти сумму элементов массива, расположенных после минимального элемента - Pascal
Формулировка задачи:
Составить текст программы на языке Паскаль, содержащий:
1) функцию, выполняющую действия над массивами (в соответствии с
вариантом);
2) функцию, выполняющую ввод элементов массива с клавиатуры;
3) функцию, выполняющую заполнение массива случайными
величинами в заданном диапазоне;
4) функцию, выполняющую вывод элементов массива на экран в виде
таблицы.
Варианты заданий:
1)Cумму элементов массива, расположенных после минимального
элемента. Диапазон – [-10;30]
Решение задачи: «Найти сумму элементов массива, расположенных после минимального элемента»
textual
Листинг программы
uses crt;
type mas=array[1..20] of integer;
const x1=-10;
x2=30;
function vvod_klav(var a:mas;var n:byte):byte;
var i:byte;begin
repeat
write('Введите размер массива от 2 до 20 n=');
readln(n);
until n in [2..20];
writeln('Введите элементы массива, целые числа в диапазоне [',x1,'..',x2,']');
for i:=1 to n do
repeat
write('a[',i,']=');
readln(a[i]);
until(a[i]>=x1)and(a[i]<=x2);
clrscr;
vvod_klav:=1;
end;
function vvod_sluc(var a:mas;var n:byte):byte;
var i:byte;
begin
repeat
write('Введите размер массива от 2 до 20 n=');
readln(n);
until n in [2..20];
for i:=1 to n do
a[i]:=x1+random(x2-x1+1);
vvod_sluc:=1;
end;
function vyvod(a:mas;n:byte):byte;
var i:byte;
begin
writeln('Массив');
for i:=1 to n do
write(a[i]:4);
writeln;
vyvod:=1;
end;
function summa(a:mas;n:byte):integer;
var i,imn:byte;
s:integer;
begin
imn:=1;
for i:=2 to n do
if a[i]<a[imn] then imn:=i;
writeln('Минимальный элемент=',a[imn],' его индекс=',imn);
s:=0;
if imn<n then
for i:=imn+1 to n do
s:=s+a[i];
writeln('Сумма после минимального=',s);
summa:=s;
end;
var a:mas;
n,f:byte;
k:char;
s:integer;
begin
clrscr;
randomize;
writeln('Выберите способ ввода массива');
writeln('1-с клавиатуры');
writeln('2-случайным образом');
repeat
readln(k);
until k in ['1','2'];
if k='1' then f:=vvod_klav(a,n)
else f:=vvod_sluc(a,n);
f:=vyvod(a,n);
s:=summa(a,n);
readln
end.
Объяснение кода листинга программы
- Импорт библиотеки
crt. - Определение нового типа данных
masкак массив целых чисел размером от 1 до 20. - Определение констант
x1равной -10 иx2равной 30. - Функция
vvod_klav, принимающая массивaи переменнуюnтипаmasиbyteсоответственно, возвращает значение типаbyte. Данная функция предназначена для ввода массива с клавиатуры. - Функция
vvod_sluc, принимающая массивaи переменнуюnтипаmasиbyteсоответственно, возвращает значение типаbyte. Данная функция предназначена для заполнения массива случайными числами. - Функция
vyvod, принимающая массивaи переменнуюnтипаmasиbyteсоответственно, возвращает значение типаbyte. Данная функция предназначена для вывода массива на экран. - Функция
summa, принимающая массивaи переменнуюnтипаmasиbyteсоответственно, возвращает значение типаinteger. Данная функция предназначена для нахождения суммы элементов массива, расположенных после минимального элемента. - Основная часть программы, включающая в себя переменные
a(массив),n(размер массива),f(результат операции ввода),k(выбор способа ввода),s(сумма элементов после минимального элемента). - Инициализация генератора псевдослучайных чисел.
- Вывод сообщения о выборе способа ввода массива.
- Цикл для выбора способа ввода (с клавиатуры или случайным образом).
- Вызов соответствующей функции ввода в зависимости от выбора пользователя.
- Вызов функции вывода массива.
- Вызов функции вычисления суммы элементов после минимального значения.
- Ожидание ввода пользователя перед завершением программы.