Помогите пожалуйста в паскаль Дано было 3 задания. С двумя справился, в третьем запутался...

0 голосов
29 просмотров

Помогите пожалуйста в паскаль

Дано было 3 задания. С двумя справился, в третьем запутался окончательно.

В первом нужно было составить прогу, которая запрашивает значения элементов одномерного массива А.

Во втором - дополнить предыдущую программу так, чтобы, формировался и выводился на экран в строку новый числовой массив В, в котором элементы на 1 меньше элементов массива А

А в третьем изменить предыдущую программу так, чтобы в массиве В, элемент с номером i был равен максимальному элементу среди первых i элементов массива A

И вот не знаю, как найти макс. элемент среди первых i элементов массива A
В общем вот черновой вариант, может, найдете ошибку:


program u2;
var i,j,n,max: integer;
a: array [1..6] of integer;
b: array [1..6] of integer;
begin
if n=6
then
a[1]:=2;
a[2]:=5;
a[3]:=7;
a[4]:=-2;
a[5]:=0;
a[6]:=8;
for j:= 1 to n do
b[j]:= (a[i]-1);
for i:= a[1] to a[3] do
for j:= b[1] to b[6] do
max:= a[1];
for i:=2 to 3 do
for j:=1 to 6 do
if a[i] > max then max:= a[i];
if b[j]=a[i] then write('b[j]');
writeln;
end.


Информатика (205 баллов) | 29 просмотров
0

а какая ошибка выскакивала

0

сначала выход за границы диапозона в 23 строчке, теперь вообще прога не запускается, может и паскаль лагает, но думаю, что сам где-то допустил ошибку

Дан 1 ответ
0 голосов
Правильный ответ

Program u2;
const n=6;
var i,max: integer;
a,b: array [1..n] of integer;
begin
a[1]:=2;
a[2]:=5;
a[3]:=7;
a[4]:=-2;
a[5]:=0;
a[6]:=8;
writeln('A:');
for i:=1 to n do write(a[i]:3);
writeln;
writeln('B:');
for i:=1 to n do 
 begin
 b[i]:= (a[i]-1);
 write(b[i]:3);
 end;
writeln;
max:=a[1];
for i:=1 to n do
 begin
 if a[i]>max then max:= a[i];
 b[i]:=max;
 end;
writeln('new B:');
for i:=1 to n do write(b[i]:3);
writeln;
end.

Результат:
A:
  2  5  7 -2  0  8
B:
  1  4  6 -3 -1  7
new B:
  2  5  7  7  7  8

(194k баллов)