В одномерном массиве, состоящем из N вещественных элементов, вычислить:
• минимальный элемент массива;
• сумму элементов массива, расположенных после максимального элемента.
C/C++
Помогите с паскалем...
X - массив длины N, min и max - значения его минимального и максимального элементов, a и b - границы диапазона, из которого случайным образом выбираются вещественные числа, sum - сумма элементов, стоящих за максимальным элементом (за первым максимальным если их больше одного). Если максимальный элемент последний в массиве, то печатается сообщение, что элементов за ним нет:
var i, index, m, N: integer;
a, b, max, min, sum: real;
X: array of real;
begin
randomize();
write('a b N: ');
readln(a, b, N);
setlength(X, N);
m := N - 1;
X[0] := a + (b - a) * random;
writeln(1: 4, ')', X[0]: 20: 12);
index := 0;
max := X[0];
min := X[0];
for i := 1 to m do
begin
X[i] := a + (b - a) * random;
writeln(i + 1: 4, ')', X[i]: 20:12);
if X[i]>max then
begin
index := i;
max := X[i]
end;
if X[i]
Ну в цикле проверяйте кто меньше текущий или сохраненный (перед циклом сохраните первый) и если сохраненный меньше пересохраняйте текущий. Так найдете минимальный.
Мкксимальный по тому же признаку (только еще индекс хранить) и вторым проходом по массиву считать сумму.
Все.
Мкксимальный по тому же признаку (только еще индекс хранить) и вторым проходом по массиву считать сумму.
Все.
Так с Pascal, C++ или C? И да, как заполняется массив (вводится ли с клавиатуры или же автоматически заполняется случайными числами)?
Итак, Pascal:
1-ый вариант (массив вводится вручную с клавиатуры):
Итак, Pascal:
1-ый вариант (массив вводится вручную с клавиатуры):
Program P1;
uses crt;
const n=10;
type mas=array [1..n] of real;
var i, ind: byte;
m: mas;
min, max, s: real;
begin
clrscr;
writeln ('Заполните массив числами, вводя их с клавиатуры. После ввода каждого числа нажимайте клавишу Enter. При вводе дробных значений целую часть от дробной отделяйте точкой, а не запятой.');
for i:=1 to n do begin
write ('Введите ', i, '-й элемент массива: ');
readln (m[i]);
end;
ind:=1;
min:=m[1];
max:=m[1];
s:=0;
for i:=1 to n do begin
if m[i]max then begin
ind:=i;
max:=m[i];
end;
end;
writeln ('Минимальный элемент массива: ', min :0:2);
if ind=n then writeln ('В массиве нет элементов, расположенных после максимального.') else begin
for i:=ind+1 to n do s:=s+m[i];
writeln ('Сумма элементов, расположенных после максимального: ', s :0:2);
end;
write ('Программа завершена. Для выхода нажмите клавишу Enter.');
readkey;
end.
2-ой вариант (массив заполняется автоматически при помощи генератора случайных чисел): Program P1;
uses crt;
const n=10;
type mas=array [1..n] of real;
var i, ind: byte;
m: mas;
min, max, s: real;
begin
clrscr;
randomize;
for i:=1 to n do m[i]:=random (101)-10;
ind:=1;
min:=m[1];
max:=m[1];
s:=0;
write ('Был сгенерирован массив:');
for i:=1 to n do write (' ', m[i] :0:2);
writeln (' ');
for i:=1 to n do begin
if m[i]max then begin
ind:=i;
max:=m[i];
end;
end;
writeln ('Минимальный элемент массива: ', min :0:2);
if ind=n then writeln ('В массиве нет элементов, расположенных после максимального.') else begin
for i:=ind+1 to n do s:=s+m[i];
writeln ('Сумма элементов, расположенных после максимального: ', s :0:2);
end;
write ('Программа завершена. Для выхода нажмите клавишу Enter.');
readkey;
end.
Т.к. длина ответа ограничена (как, впрочем, и длина комментария), то тексты обоих вариантов этой программы на языках C++ и C напишу уже в комментариях к этому ответу.Похожие вопросы
- Помогите решить паскаль
- Leetcode. 2221. Треугольная сумма массива. Казалось бы, при чём здесь Паскаль?
- Найти произведение элементов массива а, состоящего из 25 целых чисел, кратных 2 на Паскаль
- Задача паскаль: упорядочить массивы
- Информатика(Программирование). Перевод с С++ на Паскаль.
- Напишите программу на языке паскаль
- Программирование на Паскале
- Помогите пожалуйста написать программу на паскаль
- Решить задачу в паскале
- Написать программу на паскале
Ручной ввод:
Ручной ввод: