<span>program corablik;
uses Graph, Crt;
var
grDriver: integer;
grMode: integer;
ErrCode: integer;
x,y,y0,a,b: integer;{a,b-переменные для линии моря, чтоб они не зависели от х,у}
</span><span>procedure more(a,b:integer);
begin
moveto(0,y0);
setcolor(blue);
for a:=0 to 680 do{слева направо рисуем синусоиду синего чвета}
begin
b:=y0-round(sin(a*pi/180)*30);{30-коэффициент масштабирования по оси Х,
чем больше, тем волна круче}
lineto(a,b);
end;
end;</span> <span> begin
grDriver := Detect;
InitGraph(grDriver, grMode, '..\BGI');
ErrCode := GraphResult;
y0 := 250;
if ErrCode = grOk then
begin
x:=600;
while x>=0 do{лучше использовать цикл while, можно менять величину шага,
что тоже влияет на скорость и частоту смены картинки}
begin
cleardevice;
more(a,b);{рисуем волну}
setcolor(white);{устанавливаем цвет кораблика}
y:=y0-40-round(sin(x*pi/180)*30);{движемся по волне}
MoveTo(x - 40, y + 20);
LineTo(x - 20, y + 40);
LineTo(x + 20, y + 40);
LineTo(x + 40, y + 20);
LineTo(x - 40, y + 20);
MoveTo(x + 15, y + 20);
LineTo(x + 15, y - 40);
LineTo(x - 20, y + 20);
LineTo(x + 15, y + 20);
delay(100); {нормальная скорость, если модули *.TPL не глючные как у Вас,
время должно быть в миллисекундах, а не в каких-нибудь наносекундах}
x:=x-2;{шаг движения}
end;
end
else Writeln('Graphics error: ', GraphErrorMsg(ErrCode));
Settextstyle(0,0,3);{устанавливаем стиль шрифта}
cleardevice;
setcolor(red);
OuttextXY(200,240,'Rejs zavershen!');{выводим надпись}
readln;
CloseGraph;
end.</span>
Решение привожу в .cpp файле, каждый пункт реализован в отдельной функции.
<em>Замечание 1</em>: Для заданий типа "Найти произведение цифр, удовлетворяющих условию", в случае, если подходящих цифр нет, произведение считается равным нулю.
<em>Замечание 2</em>: В задании 2 в случае, если число содержит более 3ех пятерок, считается, что ответ на вопрос "Содержит ли число три цифры 5?" положительный.
<em>Замечание 3</em>: Для пункта 4, в случае, если после удаления 1 и 3 из числа остаются нули или цифр не остается вообще, считается, что итоговое число равно 0. Если оставшиеся после удаления 1 и 3 цифры образуют последовательность, начинающуюся с некоторого количества n нулей, за которыми следует хотя бы одна ненулевая цифра, то эти n нулей не выводятся. Знаки у исходного и итогового числа совпадают, за исключением случая, когда итоговое число равно 0.
A := 26;
b := 6;
b := a mod b + 4 = 26 mod 6 + 4 = 2 + 4 = 6;
c := a mod b + 1 = 26 mod 6 + 1 = 2 + 1 = 3;
Ответ: 3.
Логические выражения все, кроме В.