Задача на массивы, Pascal. Помогите найти ошибку
Дан вектор А[1:15].
1) найти минимальный элемент 2) найти произведение минимального элемента и суммы элементов 2ектора, больших - 2 3) найти произведение среднеарифметического значения вектора на максимальный элемент вектора. 4) найти номер максимального элемента из первых 10 элементов вектора . В четвертом задании что-то не так :tehnari_ru_117: PROGRAM VECTOR; USES WINCRT; CONST N=15;B=2; VAR A:ARRAY[1..15] OF INTEGER; MIN,MAX,I,S1,S2,P1,MAXX: INTEGER; SRA,P2:REAL; BEGIN RANDOMIZE; WRITELN(' ЗАДАН ВЕКТОР А:'); FOR I:=1 TO N DO A[I]:=RANDOM(30)-10; BEGIN FOR I:=1 TO N DO WRITE(A[I]:4); WRITELN; WRITELN; END; MIN:=A[1]; BEGIN FOR I:=2 TO N DO IF A[I]<MIN THEN MIN:=A[I]; WRITELN(' 1) МИНИМАЛЬНЫЙ ЭЛЕМЕНТ ВЕКТОРА РАВЕН:',MIN:4); WRITELN; END; S1:=0; P1:=1; BEGIN FOR I:=1 TO N DO IF A[I]>B THEN S1:=S1+A[I]; P1:=S1*MIN; WRITELN(' 2) СУММА ЭЛЕМЕНТОВ >2:',S1:4); WRITELN; WRITELN(' ПРОИЗВЕДЕНИЕ МИНИМАЛЬНОГО ЭЛЕМЕНТА И'); WRITELN(' СУММЫ ЭЛЕМЕНТОВ >2 РАВНО:',P1:8); WRITELN; END; BEGIN S2:=0; P2:=1; SRA:=0; MAX:=A[1]; BEGIN FOR I:=2 TO N DO IF A[I]>MAX THEN MAX:=A[I]; END; FOR I:=1 TO N DO S2:=S2+A[I]; SRA:=S2/N; P2:=SRA*MAX; WRITELN(' 3) МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ ВЕКТОРА:',MAX:4); WRITELN; WRITELN(' СРЕДНЕАРИФМЕТИЧЕСКОЕ ЗНАЧЕНИЕ ВЕКТОРА:',SRA:8:2); WRITELN; WRITELN(' ПРОИЗВЕДЕНИЕ СРЕДНЕАРИФМЕТИЧЕСКОГО ЗНАЧЕНИЯ ВЕКТОРА'); WRITELN(' НА МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ РАВНО:',P2:8:2); WRITELN; END; MAX:=A[1]; MAXX:=1; BEGIN FOR I:=1 TO 10 DO IF A[I]>MAX THEN BEGIN MAX:=A[I]; MAXX:=I; WRITELN(' 4) МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ ИЗ ПЕРВЫХ 10-И РАВЕН:',MAX:4,', ЕГО НОМЕР:',MAXX:4); END; END; END. |
Цитата:
Для начала: 1. Каждый блок-задание Вы заключаете в операторные скобки BEGIN-END. В принципе это не ошибка, но просто абсолютно не нужно. Для читабельности лучше воспользоваться пустыми строками. 2. Тоже не ошибка - но КАКОГО БЕСА ЛЫСОГО ВЫ НАБИВАЕТЕ ПРОГРАММУ КАПСАМИ? Это совсем не в традициях ни Паскаля, ни его прародителя Алгола-60, ни вообще Виртовских языков. Это стиль полузабытого Фортрана. 3. Всем начинающим программистам настоятельно рекомендую не пренебрегать отступами, лесенками и т.п. форматированием листинга. Это делает код намного более читабельным и позволяет избежать ошибок, на которых, в частности, Вы подрываетесь. Вот фрагмент программы, каким он должен, с моей точки зрения, выглядеть (задание 4). Код:
Max:=A[1]; |
Часовой пояс GMT +4, время: 12:44. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.