29.01.2012, 21:51 | #1 (permalink) |
Новичок
Регистрация: 29.01.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Задача. Массивы. Подпрограммы. Процедуры
(Определить функцию для расчёта наибольшего общего делителя двух натуральных чисел, используя алгоритм Евклида) Решить задачу, используя подпрограммы (процедуры). |
29.01.2012, 21:51 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Люди уже писали про это, полистайте Двумерные массивы и процедуры PASCAL Помогите, пожалуйста, с Паскалем. Процедуры-массивы Паскаль. Задача на массивы Процедуры-подпрограммы-паскаль |
31.01.2012, 11:12 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Пожалуйста:
Код:
VAR D1,D2,GCD:Word; Procedure Order(a,b:Word; var a1:Word; var b1:word); Begin if a>b then begin a1:=a; b1:=b; end else begin a1:=b; b1:=a; end; End; Function Evklid(e1,e2:Word):Word; Var m,c1,c2:Word; Begin c1:=e1; c2:=e2; Repeat m:=c1 mod c2; c1:=c2; c2:=m; Until m=0; Evklid:=c1; End; BEGIN Write('First number: '); Readln(D1); Write('Second number: '); Readln(D2); Order(D1,D2,D1,D2); GCD:=Evklid(D1,D2); Writeln('Greatest Common Divisor = ',GCD); IF GCD>1 then Repeat D1:=GCD; Write('Next number (0 to quit): '); Readln(D2); If D2>0 then Begin Order(D1,D2,D1,D2); GCD:=Evklid(D1,D2); Writeln('Greatest Common Divisor = ',GCD); End; Until (D2=0) or (GCD=1); If GCD=1 then begin Writeln('Finished: GCD=1'); Readln end; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|