Tudná valaki elemezni nekem a programot? Melyik rész mit csinál? Kérem csak a segítő szándékú emberek szóljanak hozzá. Köszönöm a segítséget!
program terfogatok;
uses crt;
type Tomb=array [1..1000,1..3] of integer;
var T:Tomb;
ter,i,j,k,N,DB:integer;
f:text;
function Egyezik(i,j:integer; T:Tomb):boolean;
begin
if ( (T[i,1]=T[j,1]) and (T[i,2]=T[j,2]) and (T[i,3]=T[j,3]) ) or
( (T[i,1]=T[j,1]) and (T[i,2]=T[j,3]) and (T[i,3]=T[j,2]) ) or
( (T[i,1]=T[j,2]) and (T[i,2]=T[j,3]) and (T[i,3]=T[j,1]) ) or
( (T[i,1]=T[j,2]) and (T[i,2]=T[j,1]) and (T[i,3]=T[j,3]) ) or
( (T[i,1]=T[j,3]) and (T[i,2]=T[j,2]) and (T[i,3]=T[j,1]) ) or
( (T[i,1]=T[j,3]) and (T[i,2]=T[j,1]) and (T[i,3]=T[j,2]) ) then
Egyezik:=true
else Egyezik:=false;
end;
function NincsMasik(i:integer; T:Tomb; N:integer):boolean;
var j:integer;
begin
if i=1 then NincsMasik:=true
else
begin
j:=i-1;
while (j>0) and not Egyezik(i,j,T) do
j:=j-1;
if j=0 then NincsMasik:=true
else NincsMasik:=false;
end;
end;
begin
assign(f,'terfogatok.txt');
reset(f);
while not (eof(f)) do
begin
readln(f,ter);
N:=0;
i:=1; j:=1; k:=1;
while (i<=ter) and (i*j*k<=ter) do
begin
while (j<=ter) and (i*j*k<=ter) do
begin
while (k<=ter) and (i*j*k<=ter) do
begin
if i*j*k=ter then
begin
N:=N+1;
T[N,1]:=i;
T[N,2]:=j;
T[N,3]:=k;
end;
k:=k+1;
end;
k:=1;
j:=j+1;
end;
j:=1; k:=1;
i:=i+1;
end;
DB:=0;
for i:=1 to N do
if NincsMasik(i,T,N) then DB:=DB+1;
writeln(ter,' ',DB);
end;
readln;
close(f);
end.
A térfogatok.txt-ből bolvas térfogatokat. Ezek olyan egész számok amik egész-oldalú téglatestek térfogatait reprezentálják. A program megpróbálja kitalálni hogy a térfogat hány különbözőféle téglatestnek lehet a térfogata.
pl ha 12 a térfogat akkor lehet:
1*1*12
1*2*6
1*3*4
2*2*3
De hogy ezt megkapja ki kell szűrnie a hasonló téglatesteket, pl. a 1*3*4 és a 4*3*1 ugyan az csak más sorrendbe írtuk ki az oldalait. Erre van a "NincsMásik" függvény ami végigmegy az összes téglatesten és megnézi hogy van e olyan ami "Egyezik" a kérdéses téglatesttel.
Jobb lett volna ha mondjuk pastebin-t linklsz hogy átláthatóbb legyen. Sajnos az oldalon a white-space stílus nincs beállítva.
pastebin/HSpz3qkQ
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!