http://www.fm.tul.cz/prg/Ulohy/UlohyMatice.pdf prosim o pomoc s ulohou cislo 15....diky moc!!!!!!!!!!!!!!!§
Fórum › Pascal
Matice
To tucna: tak jsem to udelal, ale potreboval bych to zkontrolovat..prosim. Nejsem vubec dobrej programator :-(
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
Pole : array [1..10, 1..10] of integer;
i,j : integer;
sym, asym, symstru : boolean;
begin
for i:=1 to 10 do begin
for j:=1 to 10 do Pole[i,j]:=Random(4);
end;
for i:=1 to 10 do begin
for j:=1 to 10 do write(Pole[i,j]:3);
writeln;
end;
asym:=False;
sym:=False;
symstru:=False;
for i:=1 to 10 do begin
for j:=1 to 10 do if Pole[i,j]=Pole[j,i] then asym:=True;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do if Pole[i,j]=-(Pole[j,i]) then sym:=TRUE;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do if (Pole[j,i]) and (Pole[i,j])<>0 then symstru:=TRUE;
end;
if asym=True then writeln('Asymetricka');
if sym=True then writeln('Symetricka');
if symstru=True then writeln('Symetricka struktura');
readln;
end.
Doporučuji psát cykly spíše takto
for i:=1 to 10 do
for j:=1 to 10 do
Pole[i,j]:=Random(4);
Formátovaný výpis
write(Pole[i,j]:3)
je zcela zbytečný vzhledem k tomu, že to číslo může být 0,1,2 nebo 3 ;)
Program samozřejmě nefunguje. Ty proměnné dej na začátku TRUE a když tím cyklem najdeš rozpor (prostě bude platit podmínka ovšem znegovaná) dej to na FALSE.
Ve tvém řešení se ti totiž, pokud platí podmínka, nastaví proměnná na TRUE, ovšem pokud neplatí už ji nenastavíš na FALSE (takže i kdyby např. ta symterie přestala u posledních prvků platit, zůstane proměnná stejně TRUE)
To tucna:
program Uloha15;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
Pole : array [1..10, 1..10] of integer;
i,j : integer;
sym, asym, symstru : boolean;
begin
randomize;
for i:=1 to 10 do begin
for j:=1 to 10 do
Pole[i,j]:=Random(4);
end;
for i:=1 to 10 do begin
for j:=1 to 10 do
write(Pole[i,j]:3);
writeln;
end;
asym:=TRUE;
sym:=TRUE;
symstru:=TRUE;
for i:=1 to 10 do begin
for j:=1 to 10 do
if Pole[i,j]<>Pole[j,i] then asym:=False else asym:=TRUE;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do
if Pole[i,j]<>-(Pole[j,i]) then sym:=False else sym:=True;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do
if (Pole[j,i]) and (Pole[i,j])=0 then symstru:=False else symstru:=True;
end;
if asym=True then writeln('Asymetricka');
if sym=True then writeln('Symetricka');
if symstru=True then writeln('Symetricka struktura');
readln;
end.
ale me se tam stejne nelibi to else..co kdyz 5 pripadu budou FALSE, ale ten posledni bude TRUE, tak se stejne nastavi celymu TRUE a to prece neni pravda!!!
Ty proměnné dej na začátku TRUE a když tím cyklem najdeš rozpor (prostě bude platit podmínka ovšem znegovaná) dej to na FALSE.
co kdyz 5 pripadu budou FALSE, ale ten posledni bude TRUE, tak se stejne nastavi celymu TRUE a to prece neni pravda!!!
??
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Matice - inverzní matice — založil Mara
Moderátoři diskuze