Составила программу, а она то работает, то нет. Проверьте пожалуйста и подскажите что в ней не так. Можно даже исправить что-либо.
мисс_граффити
14.10.2007 16:36
хмм... а где программка-то, которую проверять?
Natalya
14.10.2007 16:37
[b]Вот эта программа:
Вставить в одномерный массив после максимального чётного числа 0.
program Lab2Var5; type array1 = array [1..20] of integer; {array1 - одномерный массив с кол-вом элементов до 20-ти} var a: array1; {a – массив} i: integer; {i - счетчик цикла - индекс массива} n: integer; {n - кол-во элементов массива a} max: integer; {max - максимальный элемент массива} begin Выводим заголовок writeln; writeln('Лабораторная работа N2'); Вводим кол-во элементов массива A writeln; writeln('Массив A:'); repeat write('Введите кол-во элементов массива: n='); read(n) until (n<10) and (n>0); Вводим массив writeln('Введите элементы массива:'); for i:=1 to n do begin write('a[',i,']='); read(a[i]) end; begin Ищем индекс максимального элемента и проверяем его на чётность max:=1; for i:=2 to n do if a[i]>a[max] then max:=i; if odd(a[max]) then max:=i; for i:=n downto max+1 do a[i+1]:=a; a[max+1]:=o; if odd(a[max]) then a[max+1]:=0; inc(n); Выводим массив writeln (?Массив а после вставки:?); for i:=1 to n do write(a[i]:3); readln; end; end.
volvo
14.10.2007 16:46
Цитата
Проверьте пожалуйста и подскажите что в ней не так.
Может, лучше попытаться откомпилировать? Компилятор заодно и скажет, где ошибки... А уж потом, если программа после исправления (и успешной компиляции) не будет работать - мы подскажем...
Гость
14.10.2007 16:49
Я её откомпилировала-всё работает нормально. Проблема в том, что она вставляет 0 не всегда в нужном месте, т.е. не всегда после максимального чётного числа, как требует задача.
мисс_граффити
14.10.2007 21:08
ну пойдем по порядку: 1) заводим массив на 20 элементов... а пользователю разрешаем использовать не более 10. почему? 2) вот здесь глупость написана:
for i:=2 to n do if a[i]>a[max] then max:=i; if odd(a[max]) then max:=i;
во-первых, почему бы сразу не проверить, является ли элемент четным, и только если является, запоминать его номер??? во-вторых - ты знаешь, чему будет равно i после цикла? лично я - нет. в-третьих - ты уверена, что первый элемент четный? на массиве 999 2 16 3 ты не найдешь 16 (оно ведь не больше 999... хоть и максимальный четный элемент).
Добавлено через 2 мин. А компилироваться она не может в таком виде... Ты ее прямо здесь набирала, что ли? Лучше бы скопировала...
Гость
14.10.2007 21:38
Спасибо за указанные ошибки. Сможешь составить правильный вариант программы?Начальные установки не требуются. У меня не получается найти максимальный чётный элемент и вставить после него 0.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.