15.1 На бесконечном поле имеются две перпендикулярные друг другу
стены, расположенные в виде буквы «Т», длины стен неизвестны.
Робот находится в клетке, расположенной непосредственно над
горизонтальной стеной. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки,
расположенные непосредственно с правой стороны вертикальной
стены. Робот должен закрасить только клетки, удовлетворяющие
данному условию. Например, для приведённого справа рисунка Робот
должен закрасить следующие клетки (см. рисунок).
При исполнении алгоритма Робот не должен разрушиться, выполнение
алгоритма должно завершиться. Конечное расположение Робота может
быть произвольным. Алгоритм должен решать задачу для любого
допустимого расположения стен и любого расположения и размера
прохода внутри стены. Алгоритм может быть выполнен в среде
формального исполнителя или записан в текстовом редакторе.
15.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всех
чисел, кратных 3 и оканчивающихся на 9. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания
ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не
превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 3 и
оканчивающихся на 9.
Пример работы программы:
Входные данные Выходные данные
16
29
56
9
39
0
48
program pr10;
uses crt;
var
i: integer;
t: real; // рабочая переменная
i: byte; // счетчик массива
k: byte; // параметр цикла
a: array[1..15] of real;
n: byte; // размерность цикла
begin
clrscr;
write('введите размерность: ');
readln(n);
writeln('введите ',n,' элементов');
for i: =1 to n do
readln(a[i]);
writeln('исходный массив: ');
for i: =1 to n do
write(a[i]: 5: 1,' ');
readln;
// блок обработки
for k: =1 to n do
for i: =1 to n-k do
if(a[i]> a[i+1]) then
// перестановка
begin
t: =a[i];
a[i]: =a[i+1];
a[i+1]: =t;
end;
writeln('отсортированный массив: ');
for i: =1 to n do
write(a[i],' ');
writeln;
readln;
end.
я хз как правильно проверить простое число или нет. вот код, который просто сортирует массив по возрастанию.
type cl = class
a: integer;
constructor create(b: integer);
procedure setval(b: integer);
function getval: integer;
procedure sq;
end;
constructor cl.create(b: integer);
begin
a : = b;
end;
procedure cl.setval(b: integer);
begin
a : = b;
end;
function cl.getval: integer;
begin
getval : = a;
end;
procedure cl.sq;
begin
if a < 0 then
writeln('a ^ 2 = ', a * a)
else
writeln('error');
end;
var
obj: cl;
a : integer;
begin
write('a = ');
readln(a);
obj : = cl.create(a);
obj.sq;
readln;
obj.destroy;
end.