Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Палиндромы (http://www.tehnari.ru/f43/t258438/)

NomadZ 02.03.2018 20:55

Палиндромы
 
Вложений: 1
Здравствуйте, помогите пожалуйста с написанием кода для следующего задания на Pascal'е. И если не сложно написать комментарии для дальнейшего разбора программы.
Задача:

Vladimir_S 03.03.2018 21:44

Прежде всего, с прискорбием отмечаю продолжение тупого вываливания заданий на форумы без малейшей попытки хоть что-то решить самостоятельно. Чем это закончится (причём неизбежно!) я уже писал здесь. Ну-ну, давайте. Только потом не плачьте.
Код:

Var
 n,a:Longint;

Function Revers(M:Longint):Longint;
var
 d,p,M1:Longint;
 Lng,i:Integer;
begin
 Lng:=Trunc(Ln(M)/Ln(10)); {Number of digits-1}
 p:=1;
 M1:=0;
 Repeat
  d:=M mod 10;
  for i:=1 to Lng do d:=d*10;
  M1:=M1+d;
  M:=M div 10;
  Lng:=Lng-1;
 Until M=0;
 Revers:=M1;
end;

Function Test_Palindr(M:Longint):Boolean;
begin
 Test_Palindr:=(M=Revers(M));
end;

Begin
 Write(' Max number of digits = ');
 Readln(n);
 Write(' a = ');
 Readln(a);
 Repeat
  Writeln(a:10, Revers(a):10);
  if Test_Palindr(a)=FALSE then a:=a+Revers(a);
  if Test_Palindr(a) then writeln(a:10);
 Until Test_Palindr(a) or ((Trunc(Ln(a)/Ln(10))+1)=n);
 Readln
End.

Если у Вас Паскаль АВС, то всюду Longint замените на Integer.

NomadZ 04.03.2018 11:46

Спасибо вам. Я понимаю ,как это выглядит со стороны ,но все же работа над освоением идет ,но не без примера выполненной работы.


Часовой пояс GMT +4, время: 06:22.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.