Другие языки программирования и технологии
Владеющие паскалем! SOS! Найдите пожалуйста ошибку!((( думаю уже долго, ошибку найти не могу(((Помогите пожалуйста!!!
ВВести массив из N натуральных чисел. Найти в нем и вывести на печать монотонно возрастающую последовательность максимальной длины! uses crt; const n=7; var A:array [1..n] of integer; i,k,kmax,kmax1,start,start1,finish:integer; begin for i:=1 to n do read (A); for i:=1 to n do write (A); start:=i; K:=1; kmax:=0; If A<a[i+1]>; If A[finish]<a[finish+1]>kmax then for i:=finish to (finish+Kmax1-1) do writeln (A) else for i:=i to (i+kmax-1) do writeln (A); end.
У тебя тут куча ошибок на самом деле.
Как уже сказал Jurijus Zaksas, вместо start:=i; лучше написать start:=n; потому что после выхода из цикла в предыдущей строке i будет равно n.
С оператором
If A[finish]<a[finish+1]>kmax then for i:=finish to (finish+Kmax1-1) do writeln (A) else for i:=i to (i+kmax-1) do writeln (A);
вообще караул.
Как я понял, у тебя выполняется цикл вывода writeln (A); , но только в зависимости от условия разные границы цикла.
Переменные kmax1 и finish ты не задал, поэтому обращение A[finish] - это обращение в никуда,
Если даже ты задашь finish как границу массива, то обращение a[finish+1] - это выход за границу, по любому ошибка.
Потом, что значит i:=i to (i+kmax-1) ? Счетчика цикла нельзя определять через него же, потому что границы будут меняться на каждом проходе цикла.
Более правильно эту строчку расписать так:
В начале объявить новые переменные:
var J, startcycle, finishcycle
Потом:
If A[finish]<a[finish+1]>kmax then
startcycle := finish; finishcycle := finish+Kmax1-1;
else
startcycle := i; finishcycle := i+kmax-1;
end
for J:=startcycle to finishcycle do writeln (A[J]);
То есть в операторе if мы отдельно устанавливаем границы цикла, а потом отдельно запускаем сам цикл.
Обрати внимание, что он по другой переменной, по J.
Как уже сказал Jurijus Zaksas, вместо start:=i; лучше написать start:=n; потому что после выхода из цикла в предыдущей строке i будет равно n.
С оператором
If A[finish]<a[finish+1]>kmax then for i:=finish to (finish+Kmax1-1) do writeln (A) else for i:=i to (i+kmax-1) do writeln (A);
вообще караул.
Как я понял, у тебя выполняется цикл вывода writeln (A); , но только в зависимости от условия разные границы цикла.
Переменные kmax1 и finish ты не задал, поэтому обращение A[finish] - это обращение в никуда,
Если даже ты задашь finish как границу массива, то обращение a[finish+1] - это выход за границу, по любому ошибка.
Потом, что значит i:=i to (i+kmax-1) ? Счетчика цикла нельзя определять через него же, потому что границы будут меняться на каждом проходе цикла.
Более правильно эту строчку расписать так:
В начале объявить новые переменные:
var J, startcycle, finishcycle
Потом:
If A[finish]<a[finish+1]>kmax then
startcycle := finish; finishcycle := finish+Kmax1-1;
else
startcycle := i; finishcycle := i+kmax-1;
end
for J:=startcycle to finishcycle do writeln (A[J]);
То есть в операторе if мы отдельно устанавливаем границы цикла, а потом отдельно запускаем сам цикл.
Обрати внимание, что он по другой переменной, по J.
start:=i
Это в корне неверно, значение переменной цикла по выходе из цикла нельзя использовать в Паскале, только в С такое прокатывает.
Ну и все остальное.. . Там у тебя всюду этот несчастный индекс. Может, ты begin забыл где-то?
Это в корне неверно, значение переменной цикла по выходе из цикла нельзя использовать в Паскале, только в С такое прокатывает.
Ну и все остальное.. . Там у тебя всюду этот несчастный индекс. Может, ты begin забыл где-то?
Сделаю за 200 руб
Александр Титаренко
За 200? Я за 150!
finish чему равно?
Дмитрий Бабичев
эээ финиш это последняя переменная в первой последовательности
наприме 1 2 3 1 2 3 4 5
вот первая тройка и будет финишом
наприме 1 2 3 1 2 3 4 5
вот первая тройка и будет финишом
Похожие вопросы
- Найдите пожалуйста ошибку! очень прошу!
- Вылазит ошибка в программе с++. Помогите пожалуйста
- Перкинула у подруги папку " Adobe PhotoShop cs3". А установить у себя не могу помогите пожалуйста...
- родители поставили на комп пароль. Как его узнать? блин поиграть нормально не могу помогите пожалуйста
- Помогите пожалуйста найти ошибку в решении задачи по информатике(паскаль) !!!Прошу очень нужно!!!задача простая!!!
- Помогите пожалуйста найти ошибку. Паскаль. Оператор Case of
- Помогите пожалуйста найти ошибку, с++
- Помогите, пожалуйста, с информатикой. 10 класс. Надо найти ошибку в программе. Язык паскаль
- Помогите с программой, пожалуйста! (Pascal) Или подскажите, где можно найти различные решения задач на Паскале?
- Помогите пожалуйста найти ошибку в задаче (Язык программирования Си)