|
можно ли упростить код паскаля? | ☑ | ||
---|---|---|---|---|
0
program345
29.08.14
✎
15:19
|
доброго дня!
написал программу для нахождения Наибольшего общего делителя с условием использования конверсии: var a,b:integer; procedure nod(a,b:integer); var min,max,x1,x2,ood:integer; begin if a=b then begin writeln('НОД = ',a); exit; end; if a>b then begin max:=a; min:=b; end else begin max:=b; min:=a; end; ood:=max mod min; if ood=0 then begin writeln('НОД = ',min); exit; end; x2:=ood; ood:=min mod x2; if ood=0 then begin writeln('НОД = ',x2); exit; end; x1:=x2; x2:=ood; nod(x1,x2); end; begin writeln('введите 2 числа для опреления НОД: '); readln(a,b); nod(a,b); end. без использовании конверсии: var a,b:integer; procedure nod(a,b:integer); var min,max,x1,x2,ood:integer; begin if a=b then begin writeln('НОД = ',a); exit; end; if a>b then begin max:=a; min:=b; end else begin max:=b; min:=a; end; ood:=max mod min; if ood=0 then begin writeln('НОД = ',min); exit; end; x2:=ood; ood:=min mod x2; if ood=0 then begin writeln('НОД = ',x2); exit; end; while ood<>0 do begin x1:=x2; x2:=ood; ood:=x1 mod x2; end; writeln('НОД = ',x2); end; begin writeln('введите 2 числа для опреления НОД: '); readln(a,b); nod(a,b); end. |
|||
1
Ёпрст
29.08.14
✎
15:20
|
можно
function ftopku() return end |
|||
2
Ненавижу 1С
гуру
29.08.14
✎
15:25
|
че такое конверсия?
|
|||
3
Chum
29.08.14
✎
15:32
|
(0) алгоритм Евклида
begin writeln('Введите A и B'); readln(a, b); while a<>b do begin if a>b then a:=a-b else b:=b-a end; write('Н0Д=',a) end. Типа метод вычитания |
|||
4
Timon1405
29.08.14
✎
15:32
|
||||
5
HeroShima
29.08.14
✎
15:33
|
А где код паскаля?
|
|||
6
Chum
29.08.14
✎
15:35
|
begin
while (a<>0) and (a<>0) do if a>a then a:=a mod b else b:=b mod a; Write(a+b); end. метод деления |
|||
7
Chum
29.08.14
✎
15:37
|
точнее так:
while (a<>0) and (b<>0) do if a>b then a:=a mod b else b:=b mod a; Write(a+b); end. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |