Показать сообщение отдельно
Старый 22.02.2017, 10:07   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Alexey123 Посмотреть сообщение
Простите, я немножко туплю, но можно дальше с пояснениями?
Можно.
Прежде всего, давайте разберёмся, отчего при попытке запуска Вашей программы её выбрасывало с ошибкой. А от того, что вместо организации ЦИКЛА присвоения элементам массива случайных значений, Вы попросту записали
Цитата:
Сообщение от Alexey123 Посмотреть сообщение
A[i] := random(10);
и произошло вот что: поскольку Вы не присвоили переменной i никакого значения, оно по умолчанию принято нулевым, и эта строка есть попытка присвоить некое значение элементу массива A[0]. Но диапазон-то Вы определили [1..10], т.е. нумерация начинается с 1 - вот Вам и ошибка.
В моей программе задан цикл присвоения случайных значений элементам массива с 1 по 10, и в том же цикле эти значения оператором write выводятся на экран: интересно же на них посмотреть, да и убедиться, что программа ДЕЙСТВИТЕЛЬНО нашла наименьшее.
Название: aa_000.png
Просмотров: 82

Размер: 4.5 Кб
То, что Вы делаете дальше - вот ей-Богу, и смех, и грех... А если бы в массиве было не 10 элементов, а, скажем, 10000 - Вы бы и тут написали 10000 блоков типа
if A[7386] < min then min := A[7386];? Зачем? Как видите, задача решается в 1 (одну!) строчку. Вначале присваиваем переменной min значение A[1]. Затем организуем цикл перебора всех остальных элементов массива, и в теле этого цикла осуществляется следующая операция: если текущее значение A[i] меньше min, то переменной min присваивается значение A[i]. Таким образом, неизбежно выберется минимальный из элементов, и его значение будет присвоено переменной min. Осталось лишь вывести результат на экран, что и делается.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070