Перейти к содержимому

Фотография

Помощь по паскалю

- - - - - pascal

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
ToRN

ToRN

    Продвинутый пользователь

Доброго дня. Есть те, кто может переделать код в более простой вид (в коде 2 функции, нужно без них обойтись).
Буду очень благодарен, если кто-то из знающих откликнется на просьбу.

 


program_chisla;

uses crt;

var i,j:integer;
f:boolean;
begin
f:=false;
i:=2;
while (i<=maxint)and not f do
begin
j:=1;
while (j<i)and not f do
if(Per(i,j))and((i-j=Sum(i))or(i-j=Sum(j))) then
begin
f:=true;
write(i,' ',j);
end
else j:=j+1;
if not f then i:=i+1;
end;
end.


function Sum(a:integer):byte;
var b:integer;
s:byte;
begin
s:=0;
b:=a;
while b>0 do
begin
s:=s+b mod 10;
b:=b div 10;
end;
Sum:=s;
end;
function Per(a,b:integer):boolean;
var s1,s2:string;
f:boolean;
begin
str(a,s1);
str(b,s2);
if length(s1)<>length(s2) then
begin
Per:=false;
exit;
end;
f:=true;
while (s1<>'') and f do
if pos(s1[1],s2)=0 then f:=false
else
begin
delete(s2,pos(s1[1],s2),1);
delete(s1,1,1);
end;
Per:=f;
end;

 

На всякий случай условие задачи.

 

Основы_алгоритмизации_и_пр01.pdf (ЗАЩИТА) - Adobe Reader.jpg.jpg