Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
program načte přirozené číslo N (N\le 20) a dále prvky celočíselné čtvercové matice řádu N. Načtenou matici vypíše, prvky těsně nad hlavní diagonálou a těsně pod hlavní diagonálou vynuluje a výslednou matici vypíše. Vstupní údaje čteny z předem připraveného textového souboru Prog2vst.txt a výstup programu bude zaznamenán do souboru Prog2vys.txt.
Vytisklo se mi jenom zadej pocet radku(sloupcu) ctvercove matice a ta matice už ne. Nemůžu najít chybu. moc vás prosím o radu.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var i,j,m,n:integer;
vstup,vystup:text
a:array[1..100,1..100] of real;
begin
assign(Vstup,'Prog2vst.rft');
assign(Vystup,'Prog2vys.rft');
reset(Vystup);
rewrite(Vystup);
writeln(Vystup,'zadej pocet radku(sloupcu) ctvercove matice');
readln(Vstup,m);
for i:= 1 to m do
for j:= 1 to m do
begin
write(Vystup,'zadej prvek[',i,',',j,']:');
readln (Vstup,a[i,j]);
end;
for i:= 1 to m do
begin
for j:= 1 to m do
write(Vystup,a[i,j]:8:0);
writeln(Vystup);
end;
writeln(Vystup);
for i:= 1 to m do
for j:= 1 to m do
if (i<>j) and (i<j) then a[i,j]:=0;
for i:= 1 to m do
for j:= 1 to m do
if (i<>j) and (i>j) then a[i,j]:=0;
for i:= 1 to m do
begin
for j:= 1 to m do
write(Vystup,a[i,j]:8:0);
writeln(Vystup);
end;
writeln(Vystup);
readln(Vstup);
end.
Offline
Ahoj,
Tak rozhodně je špatně dělat dva příkazy s jedním souborem. Máš tam za sebou:
reset(Vystup);
rewrite(Vystup);
Správně by mělo být
... otevřeme soubor pro čtení
... zpřístupní soubor pro zápis
Na konci programu je vždy nutné soubory zavřít, jinak do nich data nemusí být korektně uložena. Vždy je potřeba použít příkaz 

Zkus si program upravit a zjistit, jestli teď nebude fungovat lépe.
Offline