По Object Pascal хэлпните пожалуйста
П
Пiнгвiнятко
собственно сабж
есть 2 задачки на object pascal (среда разработки - delphi 7)
реализовано с использованием подпрограмм
а их быть не должно. поэтому и надо их переделать
:-)
помогите пожалуйста :-)
Задача 1:
Найти все простые несократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают n (дробь задается двумя натуральными числами - числителем и знаменателем).
program z32;
{$APPTYPE CONSOLE}
uses
SysUtils;
function r1 (n,m:integer):integer;
var p:integer;
begin
p:=n mod m;
while (p <> 0) do
begin
n:=m;
m:=p;
p:=n mod m;
end;
r1:=m;
end;
var
n:integer;
w1,w2:integer;
begin
writeln('Vvedite N:');
read(n);
for w2:=2 to n do
begin
writeln;
for w1:=1 to w2 - 1 do
begin
if r1(w2, w1) = 1 then
begin
write(w1, ' / ', w2, ' ');
end;
end;
end;
readln;
readln;
end.
Задача 2:
Пусть значение некоторой функции f(n) равно количеству букв в записи числа n русскими словами:
f(1)=4 (один), f(3)=3 (три), f(42)=8 (сорок два) и т.п.
Напечатать все натуральные числа n, меньшие 100, для которых f(n)=n
program z37;
{$APPTYPE CONSOLE}
uses
SysUtils;
function n(i: Integer): String;
var
s, si: String;
begin
i:= abs(i);
si:= inttostr(i);
if (length (si) > 1) and (si[1] = '1') then
begin
case strtoint(si) of
10: s:=s + 'десять';
11: s:=s + 'одиннадцать';
12: s:=s + 'двенадцать';
13: s:=s + 'тринадцать';
14: s:=s + 'четырнадцать';
15: s:=s + 'пятнадцать';
16: s:=s + 'шестнадцать';
17: s:=s + 'семнадцать';
18: s:=s + 'восемнадцать';
19: s:=s + 'девятнадцать';
end;
Result:= s;
exit;
end;
if (length (si) > 1) then
case si[1] of
'2': s:=s + 'двадцать';
'3': s:=s + 'тридцать';
'4': s:=s + 'сорок';
'5': s:=s + 'пятьдесят';
'6': s:=s + 'шестьдесят';
'7': s:=s + 'семьдесят';
'8': s:=s + 'восемьдесят';
'9': s:=s + 'девяносто';
end;
if (length(si) > 1) and (si[length(si)]<>'0') then s:= s+ ' ';
case si[length(si)] of
'1': s:=s + 'один';
'2': s:=s + 'два';
'3': s:=s + 'три';
'4': s:=s + 'четыре';
'5': s:=s + 'пять';
'6': s:=s + 'шесть';
'7': s:=s + 'семь';
'8': s:=s + 'восемь';
'9': s:=s + 'девять';
'0': if length(si) = 1 then s:=s + 'ноль'
else s:=s + '';
end;
Result:=s;
end;
var a: Integer;
S:String;
begin
for a:=1 to 99 do
begin
S:= n(a);
if length(S) = a then Writeln (a);
end;
readln;
end.
есть 2 задачки на object pascal (среда разработки - delphi 7)
реализовано с использованием подпрограмм
а их быть не должно. поэтому и надо их переделать
:-)
помогите пожалуйста :-)
Задача 1:
Найти все простые несократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают n (дробь задается двумя натуральными числами - числителем и знаменателем).
program z32;
{$APPTYPE CONSOLE}
uses
SysUtils;
function r1 (n,m:integer):integer;
var p:integer;
begin
p:=n mod m;
while (p <> 0) do
begin
n:=m;
m:=p;
p:=n mod m;
end;
r1:=m;
end;
var
n:integer;
w1,w2:integer;
begin
writeln('Vvedite N:');
read(n);
for w2:=2 to n do
begin
writeln;
for w1:=1 to w2 - 1 do
begin
if r1(w2, w1) = 1 then
begin
write(w1, ' / ', w2, ' ');
end;
end;
end;
readln;
readln;
end.
Задача 2:
Пусть значение некоторой функции f(n) равно количеству букв в записи числа n русскими словами:
f(1)=4 (один), f(3)=3 (три), f(42)=8 (сорок два) и т.п.
Напечатать все натуральные числа n, меньшие 100, для которых f(n)=n
program z37;
{$APPTYPE CONSOLE}
uses
SysUtils;
function n(i: Integer): String;
var
s, si: String;
begin
i:= abs(i);
si:= inttostr(i);
if (length (si) > 1) and (si[1] = '1') then
begin
case strtoint(si) of
10: s:=s + 'десять';
11: s:=s + 'одиннадцать';
12: s:=s + 'двенадцать';
13: s:=s + 'тринадцать';
14: s:=s + 'четырнадцать';
15: s:=s + 'пятнадцать';
16: s:=s + 'шестнадцать';
17: s:=s + 'семнадцать';
18: s:=s + 'восемнадцать';
19: s:=s + 'девятнадцать';
end;
Result:= s;
exit;
end;
if (length (si) > 1) then
case si[1] of
'2': s:=s + 'двадцать';
'3': s:=s + 'тридцать';
'4': s:=s + 'сорок';
'5': s:=s + 'пятьдесят';
'6': s:=s + 'шестьдесят';
'7': s:=s + 'семьдесят';
'8': s:=s + 'восемьдесят';
'9': s:=s + 'девяносто';
end;
if (length(si) > 1) and (si[length(si)]<>'0') then s:= s+ ' ';
case si[length(si)] of
'1': s:=s + 'один';
'2': s:=s + 'два';
'3': s:=s + 'три';
'4': s:=s + 'четыре';
'5': s:=s + 'пять';
'6': s:=s + 'шесть';
'7': s:=s + 'семь';
'8': s:=s + 'восемь';
'9': s:=s + 'девять';
'0': if length(si) = 1 then s:=s + 'ноль'
else s:=s + '';
end;
Result:=s;
end;
var a: Integer;
S:String;
begin
for a:=1 to 99 do
begin
S:= n(a);
if length(S) = a then Writeln (a);
end;
readln;
end.
а их быть не должно. поэтому и надо их переделать
заведи класс и используй методы класса, что уж проще ;-)
это не делфи 7
точно, это 3-й турбо паскаль. помню зеленое свечение мониторов Роботронов 1715. ;-)
Н
Народу мало и музыка не очень
страшные люди ))
П
Пiнгвiнятко
это не делфи 7
я указал всего лишь где сам пишу...
заведи класс и используй методы класса, что уж проще
нельзя использовать((((
не проходили еще
Обсуждение этой темы закрыто модератором форума.