• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Линейный массив, Паскаль

Alexey123

Новые
Регистрация
11 Дек 2016
Сообщения
26
Реакции
0
Баллы
0
Линейный массив, Паскаль

Надо найти наименьшее число из массива A. Вот код :
program massiv;
var A: array [1..10] of integer;
i, min: integer;
begin
A := 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.


Исправьте пожалуйста
 

Вложения

  • Безымянный.png.webp
    Безымянный.png.webp
    11 KB · Просмотры: 70
Пожалуйста:
Код:
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.
 
Пожалуйста:
Код:
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);
Вот до сюда все понятно. Простите, я немножко туплю, но можно дальше с пояснениями?
P.S. За код спасибо:tehnari_ru_203:
 
Простите, я немножко туплю, но можно дальше с пояснениями?
Можно.
Прежде всего, давайте разберёмся, отчего при попытке запуска Вашей программы её выбрасывало с ошибкой. А от того, что вместо организации ЦИКЛА присвоения элементам массива случайных значений, Вы попросту записали

и произошло вот что: поскольку Вы не присвоили переменной i никакого значения, оно по умолчанию принято нулевым, и эта строка есть попытка присвоить некое значение элементу массива A[0]. Но диапазон-то Вы определили [1..10], т.е. нумерация начинается с 1 - вот Вам и ошибка.
В моей программе задан цикл присвоения случайных значений элементам массива с 1 по 10, и в том же цикле эти значения оператором write выводятся на экран: интересно же на них посмотреть, да и убедиться, что программа ДЕЙСТВИТЕЛЬНО нашла наименьшее.
aa_000.png.webp
То, что Вы делаете дальше - вот ей-Богу, и смех, и грех... А если бы в массиве было не 10 элементов, а, скажем, 10000 - Вы бы и тут написали 10000 блоков типа
if A[7386] < min then min := A[7386];? Зачем? Как видите, задача решается в 1 (одну!) строчку. Вначале присваиваем переменной min значение A[1]. Затем организуем цикл перебора всех остальных элементов массива, и в теле этого цикла осуществляется следующая операция: если текущее значение A меньше min, то переменной min присваивается значение A. Таким образом, неизбежно выберется минимальный из элементов, и его значение будет присвоено переменной min. Осталось лишь вывести результат на экран, что и делается.
 
Спасибо! Теперь все понятно, чтоб я без Вас делал! Благодарю:preved:
 
Назад
Сверху