Программа на паскале. составить программу превода натурального числа n из 10 системы счисления в 8 систему счисления через рекурсию. что число натуральное, проверять не надо. если что то не понятно, спрашивайте)
1. → 2 [сдвинуться вправо, перейти на строку 2] 2. → 3 [сдвинуться вправо, перейти на строку 3] — в вопросе опечатка? 3. → 4 [сдвинуться вправо, перейти на строку 4] 4. ? 5;2 [если в текущей ячейке нет метки, перейти на строку 5, иначе вернуться на 2] 5. ← 6 [сдвинуться влево, перейти на строку 6] 6. V 7 [поставить метку, перейти на строку 7] 7. ! [закончить работу]
Программа делает следующее: переходит на метку вправо, шагами по две ячейки идёт вправо, пока не дойдёт до пустой ячейки, возвращается на ячейку влево, ставит там метку и заканчивает работу.
Пусть метки расположены в ячейках 0 - (n-1), каретка под ячейкой 0. Тогда сначала каретка окажется подячейкой 1, сделает [n/2] шагов по 2 вправо ([x] — целая часть x), оказавшись под ячейкой 1 + 2 * [n/2], вернётся на ячейку влево (ячейка 2 * [n/2]) и поставит там метку.
Если n было четным, будут заполнены ячейки от 0 до n, каретка под ячейкой n Если n было нечетным, будут заполнены ячейки от 0 до n - 1, каретка под ячейкой n - 1
var s,v,t,a:real; begin writeln('Введите скорость, ускорение и время соотвественно'); read(v,a,t); s:=v*t+(a*sqr(t))/2; writeln('Расстояние S = ',s); end.
Задание №2
var a,b,c,d,m,n:integer; begin writeln('Введите ширину и высоту комнаты'); read(a,b); writeln('Введите размеры окна'); read(c,d); writeln('Введите размеры двери'); read(m,n); writeln('Площадь стен для оклеивания обоями = ',a*b-c*d-m*n); end.
Задание №3
var a,b:real; begin writeln('Введите два числа'); read(a,b); writeln('Среднее арифметическое кубов этих чисел = ',(power(a,3)+power(b,3))/2); writeln('Среднее геометрическое модулей этих чисел = ',sqrt(abs(a*b))); end.
Задание №4
var x:real; begin writeln('Введите ребро куба'); read(x); writeln('Площадь грани = ',sqr(x)); writeln('Площадь полной поверхности = ',6*sqr(x)); writeln('Объем куба = ',power(x,3)); end.
Задание №5
var r1,r2:real; begin writeln('Введите внешний и внутренний радиус'); read(r1,r2); if r1<r2 then writeln('Внешний радиус должен быть больше внутреннего') else writeln('Площадь кольца = ', Pi*sqr(r1)-Pi*sqr(r2)); end.
function TranslateFrom10To8(n: integer): string;
begin
if n = 0 then
result := ''
else
result := TranslateFrom10To8(n div 8) + IntToStr(n mod 8);
end;
begin
var N := ReadInteger();
print(TranslateFrom10To8(N));
end.