Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обработка массива в Паскаль / 5 сообщений из 5, страница 1 из 1
04.06.2013, 21:14
    #38285791
alexander4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка массива в Паскаль
Добрый день! Дано задание: Дана последовательность целых чисел, за которой следует ноль. Определить какой из элементов максимальный или минимальный встречается в ней раньше.
Чтобы вычислить, какой из элементов, максимальный или минимальный, встречается раньше, записал позиции максимального и минимального элемента в массиве в соответствующие переменные и затем уже произвожу сравнение этих позиций. С максимальным элементом все нормально, а вот значение минимального почему то всегда равно нулю, хотя такого элемента даже нет в массиве.
Не подскажете, в чем ошибка?
program L_2_Z_2;
var mas : array[1..100] of integer;
i, max, min, b, c : integer;
begin
randomize;
for i := 1 to 20 do
begin
mas[i] := 1 + random(98);
write(mas[i], ' ,');
end;
begin
max := mas[1];
for i := 1 to 100 do
if max < mas[i] then begin
max := mas[i]; b:= i;
end;
end;
begin
min := mas[1];
for i := 1 to 100 do
if min > mas[i] then begin
min := mas[i]; c := i;
end;
end;
writeln(' ', 'Max = ', max, ' ','Min = ', min);
if b < c then
writeln('Znachenie Max ', max, ' vstretilos ranshe.')
else
writeln('Znachenie Min ', min, ' vstretilos ranshe.');
readln;
end.
...
Рейтинг: 0 / 0
04.06.2013, 21:21
    #38285797
alexander4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка массива в Паскаль
Вывел значение позиции минимального элемента массива (выдает ноль). Оно всегда равно 21, хотя всего массив состоит из 20 элементов. Получается, что при поиске минимального элемента процесс выходит за рамки заданного массива. Не подскажете, как сделать так, чтобы поиск минимального элемента происходил в пределах заданного массива?
...
Рейтинг: 0 / 0
04.06.2013, 21:37
    #38285816
alexander4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка массива в Паскаль
Все, нашел ошибку. При поиске минимума и максимума нужно было ограничиться значениями от 1 до 20, а не до 100.
Код: sql
1.
2.
min := mas[1];
        for i := 1 to 20 do
...
Рейтинг: 0 / 0
04.06.2013, 21:59
    #38285834
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка массива в Паскаль
alexander4321,

Сорри. Обычно таких вещей не говорю, но щас реально улыбнуло. При чём тут рандомайз и рандом?
Алгоритм:
1. Читаем число
2. Больше максимального - сохраняем как максимальное
3. Меньше минимального - сохраняем как минимальное
4. Не ноль - идём на команду 1 (цикл)

Всё просто :)
...
Рейтинг: 0 / 0
04.06.2013, 22:08
    #38285841
alexander4321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка массива в Паскаль
Понял, спасибо!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обработка массива в Паскаль / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]