• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы anyaekb
  • Дата начала
A

anyaekb

Добрый вечер. Мне надо написать в паскале программу для решения задачи. Я написала, исправила все ошибки, а программа все равно не запускается. Наверное ошибка в сути программы, а найти ее я не могу. Подскажите пожалуйста.
Задача: Вычислить среднее арифметическое значение тех элементов одномерного массива, которые расположены за первым по порядку минимальным элементом. Размерность массива 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.
 
S

Senset

Я написала, исправила все ошибки, а программа все равно не запускается.

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

anyaekb

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


я переписала программу как вы сказали, но все равно что-то паскалю не нравится.
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]. Пропускает, только если заменю "[" на "{". Это нормально?
 
S

Senset

Но мне кажется, что программа не найдет минимальный элемент. А еще при компиляции паскалю не нравятся мои скобки при random(501) [0..499] + random[0..1]. Пропускает, только если заменю "[" на "{". Это нормально?

Алгоритм я еще не смотрел. Символами "{","}" обозначаются комментарии. Функция random() принимает 1 значение типа word (0<=word<=65536). Значение передается в скобках.
Если хотите получить число от нуля до x: делаете: random(x);
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!