Напечатать 30 первых степеней чисел 3,5 - Turbo Pascal
Формулировка задачи:
Помогите пожалуйста
Решение задачи: «Напечатать 30 первых степеней чисел 3,5»
textual
Листинг программы
uses crt; function step(x,y:integer):string; var s,tt:string; i,j,len,a,b,k:integer; c:char; begin str(x,s); for i:=1 to y-1 do begin tt := s; len := length(tt); s := ''; k := 0; for j:=1 to len do begin a := (ord(tt[j])-48)*x + k; b := a mod 10; k := a div 10; s := s + chr(b+48); end; if k <> 0 then s := s + chr(k+48); end; len := length(s); for i:=1 to trunc(len/2) do begin c := s[len-i+1]; s[len-i+1] := s[i]; s[i] := c; end; step:=s; end; var i:byte; begin clrscr; for i:=1 to 30 do begin writeln('3^',i,'=',step(3,i),' 5^',i,'=',step(5,i)); if i=20 then begin write('Press Enter'); readln end; end; readln end.
Объяснение кода листинга программы
Список действий в коде:
- Функция step(x,y:integer):string; объявляет функцию с двумя целочисленными параметрами x и y и возвращает строку.
- В функции создаются переменные s, tt, i, j, len, a, b, k, c: integer или string;
- В цикле от 1 до y-1 происходит преобразование строки tt в строку s.
- Строка s вычисляется как сумма чисел от k=0 до a=ord(tt[j])-48*x с шагом 10.
- Если остаток от деления a на 10 равен b, то s = s + chr(b+48).
- Если k не равно 0, то s = s + chr(k+48).
- В цикле от 1 до trunc(len/2) происходит перестановка символов в строке s.
- Переменная len вычисляется как длина строки s.
- В цикле от 1 до 30 происходит вывод на экран значений 3^i и 5^i, где i изменяется от 1 до 30.
- Если i=20, то выводится приглашение нажать Enter.
- Функция readln считывает значение из стандартного ввода и сохраняет его в переменной.
- readln ожидает нажатия клавиши Enter.
- Код заканчивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д