|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
21.02.2017, 19:47 | #1 (permalink) |
Member
Регистрация: 11.12.2016
Сообщений: 26
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Линейный массив, Паскаль
program massiv; var A: array [1..10] of integer; i, min: integer; begin A[i] := random(10); for i:= 1 to 10 do min := A[1]; begin if A[2] < min then min := A[2]; if A[3] < min then min := A[3]; if A[4] < min then min := A[4]; if A[5] < min then min := A[5]; if A[6] < min then min := A[6]; if A[7] < min then min := A[7]; if A[8] < min then min := A[8]; if A[9] < min then min := A[9]; if A[10] < min then min := A[10]; Writeln('наименьшее число := ', min); end; end. Исправьте пожалуйста |
21.02.2017, 19:47 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Данный список тем может помочь решить ваш вопрос Линейный массив Линейный массив на 5ГДШ-4-4 Паскаль. Линейный оператор |
21.02.2017, 21:11 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Пожалуйста:
Код:
program massiv; var A:array [1..10] of integer; i,min: integer; begin Randomize; for i:=1 to 10 do begin A[i]:=random(10); write(A[i]:3); end; writeln; min := A[1]; for i:= 2 to 10 do if A[i]<min then min:= A[i]; Writeln('Наименьшее число = ', min); readln end. |
22.02.2017, 10:07 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Можно.
Прежде всего, давайте разберёмся, отчего при попытке запуска Вашей программы её выбрасывало с ошибкой. А от того, что вместо организации ЦИКЛА присвоения элементам массива случайных значений, Вы попросту записали и произошло вот что: поскольку Вы не присвоили переменной i никакого значения, оно по умолчанию принято нулевым, и эта строка есть попытка присвоить некое значение элементу массива A[0]. Но диапазон-то Вы определили [1..10], т.е. нумерация начинается с 1 - вот Вам и ошибка. В моей программе задан цикл присвоения случайных значений элементам массива с 1 по 10, и в том же цикле эти значения оператором write выводятся на экран: интересно же на них посмотреть, да и убедиться, что программа ДЕЙСТВИТЕЛЬНО нашла наименьшее. То, что Вы делаете дальше - вот ей-Богу, и смех, и грех... А если бы в массиве было не 10 элементов, а, скажем, 10000 - Вы бы и тут написали 10000 блоков типа if A[7386] < min then min := A[7386];? Зачем? Как видите, задача решается в 1 (одну!) строчку. Вначале присваиваем переменной min значение A[1]. Затем организуем цикл перебора всех остальных элементов массива, и в теле этого цикла осуществляется следующая операция: если текущее значение A[i] меньше min, то переменной min присваивается значение A[i]. Таким образом, неизбежно выберется минимальный из элементов, и его значение будет присвоено переменной min. Осталось лишь вывести результат на экран, что и делается. |
22.02.2017, 15:28 | #5 (permalink) |
Member
Регистрация: 11.12.2016
Сообщений: 26
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо! Теперь все понятно, чтоб я без Вас делал! Благодарюreved:" class="inlineimg" />
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
22.02.2017, 15:39 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|