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

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы 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);
 
Мы в соцсетях:

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