1) присвоения :=
2)
3
4
3,5
3) 1
a=2 b=5
var a,x,x1,x2,x3:integer;
Begin
read(a);
writeln('4. s=',4*a);
read(x);
x3:=x mod 10;
x1:=x div 10;
writeln('5. x=',x3*100+x1);
End.
1) Петя и Вера учатся у П (победитель Программирования), а Игорь и Маша только заинтересовались языком Си++, значит П - Олег. 2) Петя, Маша и Вера не И (победитель Истории), т.к. или учатся с ним в одной школе или живут в одном доме. Значит И - Игорь. 3) победитель Литературы (Л) знаком с Петей и Машей, значит он не они, а Вера. 4) Петя не любит английский, значит он - Р (победитель по Русскому яз.). 5. И остаётся Маша - А ( победитель по Англ.яз.). Значит правильные ответы: 1) Игорь, 2) Олег, 3) Вера, 4) Петя, 5) Маша.
Алгоритм работает, если верхние края стен расположены на одном уровне:
использовать Робот
алг
нач
нц пока справа стена
закрасить
вверх
кц
нц пока справа свободно
вправо
кц
вниз
нц пока слева свободно
влево
кц
нц пока слева стена
закрасить
вниз
кц
кон
//Код, уродливый как кхм
//Pascal ABC.NET 3.1 сборка 1219
Const
n=1;
m=2;
Var
ar1:array[1..m] of integer;
ar2:array[1..n] of integer;
arr:array[1..n+m] of integer;
i,p,raz,ost,isec:integer;
begin
write('Введите основание СС:');
readln(p);
writeln('Введите число 1:');
for i:=1 to m do
readln(ar1[i]);
writeln('Введите число 2:');
for i:=1 to n do
readln(ar2[i]);
if n>m then
begin
i:=n;
isec:=m;
while (i<>0) and (isec<>0) do
begin
if ar2[i]+ar1[isec]>=p then
begin
ost:=(ar2[i]+ar1[isec]) div p;
arr[i]:=(ar2[i]+ar1[isec]) mod p;
end
else
begin
arr[i]:=ar2[i]+ar1[isec]+ost;
ost:=0;
end;
dec(i);
dec(isec);
inc(raz);
end;
arr[i]:=ost;
ost:=i;
for i:=1 to ost do
begin
arr[i]:=arr[i]+ar2[i];
inc(raz);
end;
while arr[1]>=p do
begin
ost:=arr[1] div p;
arr[1]:=arr[1] mod p;
for i:=raz downto 1 do
arr[i+1]:=arr[i];
arr[1]:=ost;
inc(raz);
end;
end
else
begin
i:=m;
isec:=n;
while (i<>0) and (isec<>0) do
begin
if ar1[i]+ar2[isec]>=p then
begin
ost:=(ar1[i]+ar2[isec]) div p;
arr[i]:=(ar1[i]+ar2[isec]) mod p;
end
else
begin
arr[i]:=ar1[i]+ar2[isec]+ost;
ost:=0;
end;
dec(i);
dec(isec);
inc(raz);
end;
if n<>m then
begin
arr[i]:=ost;
ost:=i;
for i:=1 to ost do
begin
arr[i]:=arr[i]+ar1[i];
inc(raz);
end;
end
else
begin
for i:=raz downto 1 do
arr[i+1]:=arr[i];
arr[1]:=ost;
inc(raz);
end;
while arr[1]>=p do
begin
ost:=arr[1] div p;
arr[1]:=arr[1] mod p;
for i:=raz downto 1 do
arr[i+1]:=arr[i];
arr[1]:=ost;
inc(raz);
end;
end;
writeln('Result:');
for i:=1 to raz do
write(arr[i]:4);
end.
Пример работы программы:
Введите основание СС:3
Введите число 1:
2
2
Введите число 2:
1
Result:
1 0 0