Задачи 13.2
Primary tabs
1) Составьте программу, которая выводит на экран прямоугольный флаг N×M вида (используйте циклы repeat):
- - - - - -
- - - - - -
- - - - - -
- - - - - -
var n, m, i, j : integer;
begin
n := 4; //кол-во строк
m := 6; //кол-во символов
i := 1; //начальное знач-е счетчика строк
repeat
j := 1; //начальное знач-е счетчика символов
repeat
write('- ');
j := j + 1;
until j > m;
writeln();
i := i + 1;
until i > n;
end.2) Составьте программу, которая выводит на экран прямоугольный флаг N×M вида (c чередованием плюсов и минусов в строках, используйте циклы while):
- - - - - -
+ + + + + +
- - - - - -
+ + + + + +
- - - - - -
var n, m, i, j : integer;
begin
n := 5; //кол-во строк
m := 6; //кол-во символов в строке
i := 1; //начальное знач-е счетчика строк
while i <= n do
begin
j := 1; // начальное значение счётчика символов
if i mod 2 = 1 then
begin
while j <= m do
begin
write('- ');
j := j + 1;
end;
end
else
begin
while j <= m do
begin
write('+ ');
j := j + 1;
end;
end;
writeln();
i := i + 1;
end;
end.3) Составьте программу, которая выводит на экран прямоугольный флаг N×M вида (с рамкой по краям):
+ + + + + +
+ - - - - +
+ - - - - +
+ + + + + +
var n, m, i, j : integer;
begin
n := 5; //кол-во строк
m := 6; //кол-во символов в строке
i := 1; //начальное знач-е счетчика строк
while i <= n do
begin
j := 1; // начальное значение счётчика символов
while j <= m do
begin
if (i = 1) or (i = n) or (j = 1) or (j = m) then
write('+ ')
else
write('- ');
j := j + 1;
end;
writeln();
i := i + 1;
end;
end.4) Подготовительная задача для "счет"
Пользователь вводит число от 1 до 9, вывести его в представлении как счетах со сдвинутыми костями (всего десять костей на спице), например:если ноль, то все кости справа:
---++++++++++если три, то значащая часть слева, а все остальное справа:
+++---+++++++если девять:
+++++++++---+
var n, i : integer;
begin
writeln('введите число от 0 до 9');
readln(n);
for i := 1 to 10 do
begin
if i <= n then
write('+')
else if i <= n + 3 then
write('-')
else
write('+');
end;
writeln();
end.5) В некоем виртуальном пространстве есть виртуальные, опять же, ASCII-счеты, с 7-ю спицами по 10 костяшек на каждой, в сброшенном состоянии (условный ноль) они выглядят так:
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
Задание: визуализируйте на счетах введенное пользователем число.Примеры:
1)Пользователь вводит: 7
Получаем:
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
+++++++---+++2)Пользователь вводит: 28
---++++++++++
---++++++++++
---++++++++++
---++++++++++
---++++++++++
++---++++++++
++++++++---++3)Пользователь вводит: 1984
---++++++++++
---++++++++++
---++++++++++
+---+++++++++
+++++++++---+
++++++++---++
++++---++++++4)Пользователь вводит: 2021
---++++++++++
---++++++++++
---++++++++++
++---++++++++
---++++++++++
++---++++++++
+---+++++++++
var n, i, d, j, t : integer;
begin
writeln('введите число');
readln(n);
for i := 7 downto 1 do
begin
t := n; //исходное число
for j := 1 to i - 1 do
t := t div 10;
d := t mod 10;
if d > 0 then
begin
for j := 1 to 10 do
begin
if j <= d then
write('+')
else if j <= d + 3 then
write('-')
else
write('+');
end;
end
else
writeln('---++++++++++');
writeln();
end;
end.- Log in to post comments
- 181 reads