Составила программу, а она то работает, то нет. Проверьте пожалуйста и подскажите что в ней не так. Можно даже исправить что-либо.
мисс_граффити
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:=1to n dobegin
write('a[',i,']=');
read(a[i])
end;
begin
Ищем индекс максимального элемента и проверяем его на чётность
max:=1;
for i:=2to n doif a[i]>a[max] then max:=i;
if odd(a[max]) then max:=i;
for i:=n downto max+1do a[i+1]:=a;
a[max+1]:=o;
if odd(a[max]) then a[max+1]:=0;
inc(n);
Выводим массив
writeln (?Массив а после вставки:?);
for i:=1to 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:=2to n doif 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.