ROLFRUTIN
24.04.2020 07:34

Надо перевести с турбопаскаль на ПаскальАBC или на Пайтон. Помгите , программа старая, но очень прикольная. program rabotanomer5;
uses crt,graph;
var fi,alfa:real;
x,y,gd,gm:integer;
vyhod:boolean;
simbol:char;
procedure road;
begin
setcolor(14);
line(400,100,100,400);
line(400,100,320,100);
line(320,100,20,400);
line(100,400,20,400);
setfillstyle(1,140);
floodfill(322,101,14);
readkey;
end;
procedure circ;
begin
x:=100;y:=200;
setcolor(8);
outtextxy(20,450,'click Enter');
setcolor(2);
circle(x,y,50);
readln;
while x<590 do begin
cleardevice;circle(x,y,50);
x:=x+1;
end;
setcolor(8);
outtextxy(20,450,'click Enter');
readkey;
end;
procedure cub;
var a:byte;
x0,y0,a1x,a1y,a2x,a2y,b1x,b1y,b2x,b2y,c1x,c1y,c2x,c2y,d1x,d1y,d2x,d2y:integer;
a1z,a2z,b1z,b2z,c1z,c2z,d1z,d2z:integer;
r1,r2,prsf,prsa,prcf,prca:real;
begin
a:=80;
x0:=320;y0:=240;
r1:=sqrt(2)*a;r2:=a;
fi:=0;alfa:=0;
repeat
prsf:=sin(fi);prcf:=cos(fi);
prsa:=sin(alfa);prca:=cos(alfa);
a1x:=round(r1*prsf*prsa+r2*prca)+x0;
a1y:=round(r1*prsf*prca+r2*prsa)+y0;
a1z:=round(r1*prcf)+x0;
a2x:=round(r1*prsf*prsa-r2*prca)+x0;
a2y:=round(r1*prsf*prca-r2*prsa)+y0;
a2z:=round(r1*prcf)+x0;
b1x:=round(r1*prcf*prsa+r2*prca)+x0;
b1y:=round(r1*prcf*prca+r2*prsa)+y0;
b1z:=round(-prsf*r1)+x0;
b2x:=round(r1*prcf*prsa-r2*prca)+x0;
b2y:=round(r1*prcf*prca-r2*prsa)+y0;
b2z:=round(-prsf*r1)+x0;
c1x:=round(-r1*prsf*prsa+r2*prca)+x0;
c1y:=round(-r1*prsf*prca+r2*prsa)+y0;
c1z:=round(-r1*prcf)+x0;
c2x:=round(-r1*prsf*prsa-r2*prca)+x0;
c2y:=round(-r1*prsf*prca-r2*prsa)+y0;
c2z:=round(-r1*prcf)+x0;
d1x:=round(-r1*prcf*prsa+r2*prca)+x0;
d1y:=round(-r1*prcf*prca+r2*prsa)+y0;
d1z:=round(r1*prsf)+x0;
d2x:=round(-r1*prcf*prsa-r2*prca)+x0;
d2y:=round(-r1*prcf*prca-r2*prsa)+y0;
d2z:=round(r1*prsf)+x0;
line(a1z,a1y,a2z,a2y);
line(b1z,b1y,b2z,b2y);
line(c1z,c1y,c2z,c2y);
line(d1z,d1y,d2z,d2y);
line(a1z,a1y,b1z,b1y);
line(a2z,a2y,b2z,b2y);
line(d2z,d2y,c2z,c2y);
line(d1z,d1y,c1z,c1y);
line(a1z,a1y,d1z,d1y);
line(b1z,b1y,c1z,c1y);
line(b2z,b2y,c2z,c2y);
line(a2z,a2y,d2z,d2y);

fi:=fi+0.005;alfa:=alfa+0.003;
cleardevice;
until alfa>10;
end;
begin
gd:=detect;
initgraph(gd,gm,'');
vyhod:=false;
repeat
cleardevice;
setcolor(6);
outtextxy(100,100,'1:yellow road');
outtextxy(100,120,'2:green circle');
outtextxy(100,140,'3:my picture');
outtextxy(100,160,'vyberite cifru ot 1 do 3: ');
simbol:=readkey;
cleardevice;
case simbol of
'1':road;
'2':circ;
'3':cub;
else vyhod:=true;
end;
until vyhod;
closegraph;
end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Ksenichka777
10.07.2020 19:07
1. "Школьное" решение

// PascalABC.Net 3.0, сборка 1066
var
  s,s1:string;
  i:integer;
  a:char;
begin
  Write('Введите натуральное число любой длины :'); Readln(s);
  Write('Введите цифру, которую надо удалить: '); Readln(a);
  s1:='';
  for i:=1 to Length(s) do
    if s[i]<>a then s1:=s1+s[i];
  Writeln('Результат: ',s1)
end.

Тестовый прогон:
Введите натуральное число любой длины :3141592653589793
Введите цифру, которую надо удалить: 5
Результат: 3141926389793

2. Современное решение (так в школе почему-то не учат)

// PascalABC.Net 3.0, сборка 1066
begin
  var s:=ReadString('Введите натуральное число любой длины :');
  var a:=ReadChar('Введите цифру, которую надо удалить: ');
  Write('Результат: ',s.Replace(a,''));
end.
0,0(0 оценок)
Ответ:
enevismane
21.08.2020 14:59
Проще всего складывать в столбик как обычные десятичные числа, но если в сумме число получится больше 8 (система восмиричная), то мы отнимаем 8, смотрим: меньше ли получившийся остаток 8, если нет, то снова отнимаем восемь и тогда записываем остаток, а в "ум" запишем число отнятых восьмерок

574+467=1263 (все числа в восьмиричной системе счисления)

так, складывая 4 и 7, получаем 11, что больше 8, поэтому отняв 8, получим цифру 3, которую и записываем как последнюю цифру числа (3 пишем, 1 в уме), далее складываем 6 и 7 и не забываем про 1, потому что в раз мы отняли всего одну восьмерку, получаем 14, но записываем только 6, а 1 в уме, затем 5, 4 и 1 - 2 пишем, 1  в уме, далее просто приписываем единицу, получаем 1263

P.S. несмотря на то, что кажется сложно, это немногим отличается от десятичной системы сложения в столбик
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота