Помощь - Поиск - Пользователи - Календарь
Полная версия: НОД(для 4-ёх чисел) + Матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Amro
Люди помогите решить две задачки:
вот условия
1.Составить программу нахождения наибольшего общего делителя четырех натуральных чисел.
{Для двух чисел я знаю как искать, а именно применяя метод Евклида, но вот для четырёх чего то до меня не доходит...}
2.Вставить нулевую строку и нулевой столбец перед строкой и столбцом, где находится первый минимальный элемент.
{я в общем пробовал её решить, но получается чего-то не то, программа обнуляет не ту строку, а вернее стирает строку с найденным минимальным элементом, а по условию она должна вставлять пустую строку и столбец перед найденным минимальным элементом, а последний сдвигать}
в общем вот как я её решаю...
Код

program 009;
uses crt;
label lb1;
var
i,j,n,m,k,l: integer;
mas:array[1..50,1..50] of integer;
begin
clrscr;
writeln('Введите размерность массива (число строк n и число столбцов m): ');
read(n,m);
randomize;
write('Данный массив:');
for i:=1 to n do
 for j:=1 to m do
   mas[i,j]:=-10+random(40);
 for i:=1 to n do begin writeln;
   for j:=1 to m do
     write(mas[i,j]:5); end;
for j:=1 to m do
 for i:=1 to n do
   if mas[i,j]<0 then begin
     k:=j; l:=i;
     writeln;
for j:=k to m do
for i:=l to n do
  mas[l,k]:=mas[i,j]; end;
write('Получился массив вида');
for j:=k to m do
for i:=l to n do  begin
  mas[i,k]:=0;  mas[l,j]:=0; end;
for i:=1 to n do
for j:=1 to m do
 begin writeln;
   for j:=1 to m do
     write(mas[i,j]:5);end;
readkey;
end.
trminator
Вот моя старая программа, вроде она работала smile.gif
Код

PROGRAM NOD2;
var Arr:array[1..10000] of integer; {Можно обойтись и без массива}
   i,n:integer;

function NOD(x,y:integer):integer; {Вычисляет НОД по алг. Евклида}
var a,b:integer;
begin
 if x>y then a:=x else a:=y;
 b:=x+y-a;
 while b<>0 do begin x:=a mod b; a:=b; b:=x end;
 NOD:=a
end;

BEGIN Write('Сколько чисел? '); ReadLn(n);
 for i:=1 to n do begin Write('Введи ',i,' число: '); ReadLn(Arr[i]) end;
 for i:=2 to n do Arr[i]:=NOD(Arr[i],Arr[i-1]);
 WriteLn('==================');
 WriteLn('Ответ: НОД этих чисел равен ',Arr[n]);ReadLn
END.

ЗЫ Что-то все аватарами обзавелись красивыми ;D
ЗЗЫ Еще можно глянуть http://pascal.dax.ru/?sources&cat=1, там тоже НОД ищется (не знаю, скольки чисел, правда)
Amro
Нормалёк, программка твоя работает!!!
Вторую бы ещё решить :-/...
Огромное человеческое спасибо тебе!!!

Аватар на то он и аватар, чтобы быть красивым!!! ;D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.