Не Запускается Программа В Паскале

anyaekb

New Member
09.12.2013
2
0
#1
Добрый вечер. Мне надо написать в паскале программу для решения задачи. Я написала, исправила все ошибки, а программа все равно не запускается. Наверное ошибка в сути программы, а найти ее я не могу. Подскажите пожалуйста.
Задача: Вычислить среднее арифметическое значение тех элементов одномерного массива, которые расположены за первым по порядку минимальным элементом. Размерность массива 20. Заполнение массива осуществить случайными числами от 0 до 500.
Сама я плохо в этом разбираюсь, поэтому наверняка ерунду написала в программе))

program massiv1;
const N=20;
var a:array [1..N] of integer;
min:integer;
sr:real;
begin
randomize;
for i:1 to N do
a:=random(501);
min:=1;
for i:=1 to N do
if a<a[min] then
min:=i;
sr:=0;
for i=min+1 to N do
sr:=sr+a;
sr:=sr/(N-min);
writeln;
end.
 

Senset

Well-Known Member
11.09.2006
136
0
14
Москва
#2
Я написала, исправила все ошибки, а программа все равно не запускается.
Не запускается в смысле выдает ошибку на компиляции? Значит, вы не исправили все ошибки
И кажется, вывода среднего арифметического не хватает, паузы перед закрытием, и еще бы очистку экрана + вывод исходного массива, вывод минимального элемента и его позиции.
 

anyaekb

New Member
09.12.2013
2
0
#3
Не запускается в смысле выдает ошибку на компиляции? Значит, вы не исправили все ошибки
И кажется, вывода среднего арифметического не хватает, паузы перед закрытием, и еще бы очистку экрана + вывод исходного массива, вывод минимального элемента и его позиции.

я переписала программу как вы сказали, но все равно что-то паскалю не нравится.
program massiv1;
const N=20;
var a:array [1..N] of integer;
min,sr,summa:real;
i:integer;
begin
randomize;
for i:=1 to N do begin
a:=random(501) [0..499] + random[0..1];
writeln ('Массив:');
end;
min:=1;
for i:=1 to N do
if a<a[min] then
min:=i;
summa:=0;
summa:=summa+massiv;
writeln('Сумма элементов:');
sr:=summa/(N-i);
writeln;
readln;
end.
Но мне кажется, что программа не найдет минимальный элемент. А еще при компиляции паскалю не нравятся мои скобки при random(501) [0..499] + random[0..1]. Пропускает, только если заменю "[" на "{". Это нормально?
 

Senset

Well-Known Member
11.09.2006
136
0
14
Москва
#4
Но мне кажется, что программа не найдет минимальный элемент. А еще при компиляции паскалю не нравятся мои скобки при random(501) [0..499] + random[0..1]. Пропускает, только если заменю "[" на "{". Это нормально?
Алгоритм я еще не смотрел. Символами "{","}" обозначаются комментарии. Функция random() принимает 1 значение типа word (0<=word<=65536). Значение передается в скобках.
Если хотите получить число от нуля до x: делаете: random(x);