Помощь - Поиск - Пользователи - Календарь
Полная версия: массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Demm
Помогите пожалуста!

Я отдельно писал процедуру proverka (проверка массива на упорядоченность по возростанию) вроде работали,в проге не работают. Как переправить?
Код

procedure proverka(i:integer);
    begin
    i:=1;
   repeat
    if a[i]<a[i-1] then
    begin
    clrscr;
    write('Первый массив не упорядочен по возростанию');
        for i:=1 to n do
        write(a[i],' ');
         readln;
             halt;
    end;
    i:=i+1;
    until(i>n);
    end;

Тема исправлена,т.к все остальные баги я выловил.
zx1024
Зачем readkey?
Замени halt на exit или break.
Altair
Цитата
readln;
readkey;
halt;

В этих 3 строках происходит следующее:
сначала ожидание нажатия ENTER
дальше ожидание нажатия любой клавиши
дальше выход из программы
zx1024 прав, нужно заменить halt на exit.
Demm
Народ не в том вопрос.
У меня между readln и readkey стояла процедура вывода сообщения о конце программы,но я ее убрал, а readln,readkey забыл.
exit заканчивает процедуру, а halt все прогу,что мне и нужно!!
А за break мне в институте препод все прогу смотреть не станет (у нас плохо относятся к breakу, goto и еще к нек порцедурам)!
У меня вопрос в работоспособности проги.Почему не работает?
Вроде легкая прога а не работает!
zx1024
Цитата
А за break мне в институте препод все прогу смотреть не станет (у нас плохо относятся к breakу, goto и еще к нек порцедурам)!

А за exit с halt не ругают?
i := 1 ...
a[i]<a[i-1]

a[i-1] = a[0]
Проверь, массив с 0 или с 1 начинается. Существует ли a[0]?
Если с 0. Цикл проходит до n. Т.е. получается n+1 элемент в массиве?
Хоть бы написал: вылетает с ошибкой или ответ даёт неправильный. Весь код то никто не видит.
Demm
Когда писал это процедуру,главная программа соостояла из ввода массивов и вывода результата.Это процедура правильно определяла возростает ли массив или нет.
А когда я ее вставил в курсовую,стла писать,что все не упорядоченно по возростанию,на любой массив.
zx1024
Замени
i := 1 на
i := 2
Romtek
Код
i:=1;
while (i<size) and (a[i]<a[i+1]) do
 inc(i);

if i+1<>size
 then writeln('Не упорядочен!');
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.