var z,s:integer;
f:boolean;
begin
readln(z);
f := z > 5;
s:=1;
if (z=s) and (f=false) then
begin
writeln();// делаем перенос строки
z:=0;
s:=s+1;//но увеличиваем кол-во строк
end;
if (z=s) and (f=true) then
begin
writeln(); // делаем перенос строки
z:=0;
s:=s-1;//но уменьшаем кол-во строк
end;
end.
-- в двух условных операторах действия частично совпадают, а значит наблюдается дублирование кода. Перепишите код так, чтобы дублирования не было.
var m,s:integer;
begin
writeln('Vvedite chislo M');
readln(m);
s:=1;
if (s = 1) then
writeln('soobchenie 1');
if (s = m) then
writeln('soobchenie 2');
end;
-- при этом известно, что если s равно 1, то на экран должно вывестись только первое сообщение (а второе выводиться не должно), а если s не равно 1, но равно m, то второе (а первое выводиться не должно).
Но сейчас программа работает не так, исправьте это.
Выведите на экран таблицу умножения используя один цикл while и один repeat-until .
var i, j: integer;
begin
i := 1;
repeat
j := 1;
while (j<=9) do
begin
write(i, '*', j, '=', i*j, ' ');
j:=j+1;
end;
writeln();
i:=i+1;
until (i > 9);
readln();
end.
Выведите на экран таблицу умножения используя только циклы вида while.
Решение:
program Project1;
var i, j: integer;
begin
i := 1;
while (i <= 9) do
begin
j:=1;
while j<=9 do
begin
write(i, '*', j, '=', i*j, ' ');
j:=j+1;
end;
writeln();
i:=i+1;
end;
readln();
end.
Выведите на экран таблицу умножения используя только циклы вида repeat/until.
Начинаться вывод таблицы должен как-то так:
1x1 = 1
1x2 = 2
......
var i, j: integer;
begin
i := 1;
repeat
j := 1;
repeat
write(i, '*', j, '=', i*j, ' ');
j:=j+1;
writeln();
i:=i+1;
until (i <> 9);
until (i >= 10);
readln();
end.