Пользователь вводит в консоль символы (после каждого нажимая Enter), в ответ выводите символ '&', до тех пор пока пользователь не введёт '#', после чего завершите программу.
var a,b: char;
begin
repeat
writeln ('введи символ и нажми Enter');
readln (a);
b:='#';
if a=b then break
else
writeln ('&');
until (a=b);
end.
Пользователь вводит целое число, если оно больше единицы, то выведите на экран все целые числа от этого числа до единицы (в обратном порядке), которые делятся на 23 без остатка. Иначе (если введённое пользователем число не больше единицы) сообщите об ошибке.
var f: integer;
begin
writeln('Введите целое число');
readln(f);
if f > 1 then
begin
if f mod 23 = 0 then
repeat
writeln(f)
until (f = 1);
end
else
writeln('ошибка');
readln();
end.
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.