Другие языки программирования и технологии
pascal одномерные массивы. дан массив А(30).
дан массив А(30). найти сумму и количество положительных элементов, расположенных между максимальными и минимальными элементами массива. pomogite please
const n=30; var a:array[1..n]of integer; j,k,imin,imax,min,max:integer;
begin
randomize; for j:=1 to n do a[j]:=random(199)-99;
for j:=1 to n do write(a[j]:4); writeln;
min:=a[1]; max:=a[1];
for j:=1 to n do
begin
if a[j] <=min then begin min:=a[j]; imin:=j end;
if a[j] >=max then begin max:=a[j]; imax:=j end;
end;
if imin >imax then begin j:=imin; imin:=imax; imax:=j end;
for j:=imin+1 to imax-1 do k:=k+a[j];
writeln('sum=',k); readln
end.
Если максимальных или минимальных элементов несколько, это недоработка условия. Тогда решение, от какого из них до какого суммировать, оставляется на усмотрение программиста.
begin
randomize; for j:=1 to n do a[j]:=random(199)-99;
for j:=1 to n do write(a[j]:4); writeln;
min:=a[1]; max:=a[1];
for j:=1 to n do
begin
if a[j] <=min then begin min:=a[j]; imin:=j end;
if a[j] >=max then begin max:=a[j]; imax:=j end;
end;
if imin >imax then begin j:=imin; imin:=imax; imax:=j end;
for j:=imin+1 to imax-1 do k:=k+a[j];
writeln('sum=',k); readln
end.
Если максимальных или минимальных элементов несколько, это недоработка условия. Тогда решение, от какого из них до какого суммировать, оставляется на усмотрение программиста.
Еще дополнение:
Для многих типов применимы функции Low и High - удобно когда надо задать начальное малое или большое значение.
Для многих типов применимы функции Low и High - удобно когда надо задать начальное малое или большое значение.
Ну так в чем проблема? Ищите индексы
MaxI := 1;
MinI := 1;
for i:=1 to n do begin
if A[ i ] > A [MaxI] then MaxI : = i;
if A[ i ] < A [MinI] then MinI : = i;
end;
Дальше определяете, какой из индексов больше и в цикле от меньшего до большего находите свою сумму и количсество.
Вот только вопрос, а что делать, если в массиве несколько одинаковых максимальных или минимальных элементов?
MaxI := 1;
MinI := 1;
for i:=1 to n do begin
if A[ i ] > A [MaxI] then MaxI : = i;
if A[ i ] < A [MinI] then MinI : = i;
end;
Дальше определяете, какой из индексов больше и в цикле от меньшего до большего находите свою сумму и количсество.
Вот только вопрос, а что делать, если в массиве несколько одинаковых максимальных или минимальных элементов?
const
A=30;
Nmin:=-100; // минимальный параметр
Nmax:=100; //максимальный
var
flag_max : integer;
flag_min : integer;
i. jmin,jmax : integer; //счетчики
Randomize;
array max[A];
//заполняем случайніми числами диапозон -100 +100
for i=1 do A do begin max=:= Random (Nmin + 1) - 2 * Nmax; end;
//ищим максимальный элемент
for i=1 do A do begin if max>max[i+1] then begin flag_max:=max
jmax:=i; end; else begin flag_max:=max[i+1];
jmax:=i; end; end;
//минимальный элемент
for i=1 do A do begin if max>max[i+1] then begin flag_min:=max[i+1]
jmin:=i; end; else begin flag_min:=max; jmin:=i; end; end;
//подсчитываем сумму
for i=jmin do jmax-1 do begin max:=max[i+1] end;
//сумма чисел в рандовом массиве между макс и мин єлементом
write('сума',max);
Вообше я такое уже лет 10 не писал.. . но стыдно такое просить сделать!
A=30;
Nmin:=-100; // минимальный параметр
Nmax:=100; //максимальный
var
flag_max : integer;
flag_min : integer;
i. jmin,jmax : integer; //счетчики
Randomize;
array max[A];
//заполняем случайніми числами диапозон -100 +100
for i=1 do A do begin max=:= Random (Nmin + 1) - 2 * Nmax; end;
//ищим максимальный элемент
for i=1 do A do begin if max>max[i+1] then begin flag_max:=max
jmax:=i; end; else begin flag_max:=max[i+1];
jmax:=i; end; end;
//минимальный элемент
for i=1 do A do begin if max>max[i+1] then begin flag_min:=max[i+1]
jmin:=i; end; else begin flag_min:=max; jmin:=i; end; end;
//подсчитываем сумму
for i=jmin do jmax-1 do begin max:=max[i+1] end;
//сумма чисел в рандовом массиве между макс и мин єлементом
write('сума',max);
Вообше я такое уже лет 10 не писал.. . но стыдно такое просить сделать!
немного поправлю предыдущий ответ.
Maxl лучше поставить не 1 а очень малое значение (какие ограничения стоят на значения массива? )
т. к. максимально может быть и отрицательным
Minl тоже следует поставить максимальное из ограничений значений массива.
Maxl лучше поставить не 1 а очень малое значение (какие ограничения стоят на значения массива? )
т. к. максимально может быть и отрицательным
Minl тоже следует поставить максимальное из ограничений значений массива.
Похожие вопросы
- Pascal одномерные массивы.
- Нужно подправить программу в Pascal на одномерные массивы.
- Сортировка одномерного массива + вставка числа в отсортированный массив PASCAL
- Помогите пожалуйста решить задачи по информатике, одномерные массивы. Си шарп. Очень срочно. Пожалуйста!!!!
- Помогите с программой Одномерные массивы и указатели
- В одномерном массиве, состоящем из n вещественных элементов, вычис- лить: 39 1) сумму положительных элементов массив
- Помогите сделать лабораторную работу по теме "Одномерные массивы" [C++]
- Microsoft Visual C++ 6.0 В одномерном массиве, состоящем из n вещественных элементов, вычислить...
- Помогите с С++. Надо найти произведение элементов одномерного массива между первым и последним 0.
- Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач: