Как вставить новую строку после всех строк , в которых нет ни одного четного элемента? ( Pascal ABC ). Сам код:
var i,j,k,n,h,p,g,m: integer;
a,x: array [1..10,1..10] of integer;
begin
writeln('Введите цифру, которой хотите заполнить строку ');
readln(n);
writeln('Введите размерность двумерного массива ');
readln(m);
k:=0;
h:=0;
g:=0;
for i:=1 to m do
for j:=1 to m do
read(a[i,j]);
for i:=1 to m do
begin
for j:=1 to m do
begin
if a[i,j] mod 2 = 0 then h:=h+1;
end;
if h <> 0 then k:= k + 1;
h:=0;
end;
p:=0;
h:=1;
for i:=1 to m do
begin
for j:=1 to m do
begin
if a[i,j] mod 2 = 0 then
begin
x[h,j]:=a[i,j];
p:=p+1;
end
else
begin
x[h,j]:=a[i,j];
end;
end;
if p<>0 then
begin
h:=h+1;
for g:=1 to m do
x[h,g]:=n;
h:=h+1;
p:=0;
end
else h:=h+1;
end;
for i:=1 to (m+k) do
begin
for j:=1 to m do
writeln(x[i,j]);
end;
end.
Завершается текстовый ввод в Паскале всегда нажатием клавиши Enter, посылающей последовательность символов с десятичными кодами 13 и 10 (CR - "возврат каретки" и LF- "перевод строки"), либо считыванием этих кодов из файла.
"Команда" Realln (на самом деле это не команда, а процедура) считывает и удаляет последовательность символов с кодами 13, 10, а Read - оставляет эти коды не считанными. Если после Read будет еще один оператор ввода, читающий СИМВОЛЬНЫЕ данные (string, char), то оставшиеся необработанными после предыдущего Read символы с кодами 13,10 будут восприняты, как вводимые, что неверно.
Как итог: только в случае, когда есть ввод символьных данных и эти данные вводятся не в единственном операторе ввода, перед вводом таких данных нужно указывать Readln. В прочих случаях разницы нет.
2) Понятность - каждая команда должна быть понятна исполнителю.
3) Результативность - алгоритм должен приводить к заранее продуманному результату.
4) Массовость - он должен решать не одну задачу, а круг таких задач.
5) Определенность - не должно быть команд, которые исполнитель воспримит неоднозначно.
Н-р:
1) 1. Повернуть направо.
2. Пройти 2 шага.
3. Повернуть налево.
2) Не должно быть таких команд:
1. Пройти 2 шага
2. Зачикиниться
3) К примеру, рецепт бутерброда приведет тебя к готовому бутеру (если, конечно, ты поборишь свою лень и встанешь, чтобы приготовить его)
4) Н-р, формула расчета притяжения между телами должна быть ориентирована на различные тела, а не на, к примеру, только Землю и Луну.
5) Не должно быть, н-р, таких команд:
1. Повернуть направо
2. Пройти 2 шага
3. Украсть.
4. Пройти 2 шага назад.
5. Дойти до Машки с пятого подъезда.