Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль, помощь в доработке программ (http://www.tehnari.ru/f41/t57597/)

shrek=) 24.09.2011 14:44

Паскаль, помощь в доработке программ
 
Для каждого элемента массива, состоящего из натуральных чисел, указать четыре неотрицательных
чмсла, сумма квадратов которых дает это число. Использовать процедуру поиска таких чисел.

Нужно оставить элементы в единственном виде.
Код:

uses crt;
var
mas:array [1..10] of integer;
i,l,k,x,y:integer;
procedure poisk;
begin
for k:=1 to 10 do begin
for l:=1 to 10 do
for x:=1 to 10 do
for y:=1 to 10 do
if mas[i]=sqr(k)+sqr(l)+sqr(x)+sqr(y) then
writeln (mas[i],'  =  ',k,'  ',l,'  ',x,'  ',y);
end;
end;
begin
randomize;
for i:=1 to 10 do begin
mas[i]:=random(40);
write(mas[i]:3);
end;
writeln;
for i:=1 to 10 do
poisk;
readln
end.


Vladimir_S 24.09.2011 19:15

Цитата:

Сообщение от shrek=) (Сообщение 590906)
Нужно оставить элементы в единственном виде.

Миша, извините, но смысла этой фразы я напрочь не понимаю.

shrek=) 24.09.2011 19:21

В результате работы программы, которую я представил, в ответ выдается разложения элементов одними и теми же числами, но в разной последовательности. А мне нужно только четыре числа, а не разложение каждого элемента.

Vladimir_S 24.09.2011 20:31

Цитата:

Сообщение от shrek=) (Сообщение 591027)
В результате работы программы, которую я представил, в ответ выдается разложения элементов одними и теми же числами, но в разной последовательности. А мне нужно только четыре числа, а не разложение каждого элемента.

А, понятно.
Ну вроде так:
Код:

var
 mas:array [1..10] of integer;
 i,l,k,x,y:integer;

procedure poisk;
begin
 for k:=10 downto 1 do
  for l:=k downto 1 do
  for x:=l downto 1 do
    for y:=x downto 1 do
    if mas[i]=sqr(k)+sqr(l)+sqr(x)+sqr(y) then
      writeln (mas[i],'  =>  ',k,'  ',l,'  ',x,'  ',y);
end;

begin
 randomize;
 for i:=1 to 10 do
  begin
  mas[i]:=random(40);
  write(mas[i]:3);
  end;
 writeln;
 for i:=1 to 10 do poisk;
 readln
end.



Часовой пояс GMT +4, время: 18:27.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.