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
Stránky: 1
zdravim mam to udelat v delphi 7 spekuluju nad tim asi 2 hodiny a jukam na internet ale nikde jsem nic podobneho nevidel.
Zadani :
Je dana celociselna matice radu N. Z teto matice vytvorte
matici, ktera vznikne z puvodni matice vynechanim K-teho
radku a K-teho sloupce.
Zatim jsem skutil asi tak tohle nacte mi to matici ze soubodu a vytiskne mi ji ale nevim jak udelat to abych kdyz zadam K tak mi to vynechalo k-ty sloupec a k-ty radek .... pls pomoc .. :-) predem dik za odpoved :-)
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i,j,k,m,n:integer;
a:array[1..10,1..10]of integer;
f:textfile;
begin
{12. Je dana celociselna matice radu N. Z teto matice vytvorte
matici, ktera vznikne z puvodni matice vynechanim K-teho
radku a K-teho sloupce.}
writeln('Program nacte matici a vynecha k-ty radek a k-ty sloutec');
writeln;
assign(f,'matice.txt');
reset(f);
readln(f,m);
readln(f,n);
for i:=1 to m do
for j:= 1 to n do read(f,a[i,j]);
closefile(f);
for i:= 1 to m do
begin
for j:=1 to n do write(a[i,j]:6,' ');
writeln;
end;
readln;
end.
uvazoval jsem +- nad takovym resenim ale porad mi to haze nejake chyby ....
readln(k);
for i:= 1 to (k-1) do and (k+1) to m do
begin
for j:= 1 to (k+1)do and (k+1)to n do write(a[i,j]:6,' ');
writeln;
end;
predem dik za radu :-)
Offline
↑ kedrik: bude to neco na tento zpusob:
{matice A je radu N} for i := 1 to N do begin for j := 1 to N do begin if ((i <> k) And (j <> k)) then write(A[i, j]:5); end if (i <> k) then writeln(); end
Offline
Chcem sa ta spitat ci by si mi nepomohol hladam tento program ale komplet uz vypracovany mne velmi delphi nejde ci by si mi ho mohol poslat alebo ho umiestnit sem komplet aby fungoval. A s toho co som videl tak asi chodis na VSB ku kolomaznikovy lebo aj ja tak ak mas aj program 4 tak mi prosim ta pomoz. Za odpoved dakujem
Offline
Tady je konzolová aplikace
Matice je generována z náhodných čísel.
program Matice2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type Tpole=array of array of Integer; //natypovani pole pro matici
var i,j,m,n,k,x,pokr,konec:Integer;
anone:string;
a,b:Tpole; //matice A (maximalne 10 radku a 10 sloupcu) a B
begin
Randomize;
pokr := 0; //Promenna pro moznost pokracovani
WriteLn('-----------------------------------Matice----------------------------------'); //Uvodni vypis
WriteLn;
WriteLn(' Na vstupu se zadaji rozmery matice A o m radcich a n sloupcich,');
WriteLn(' kde m a n jsou cela cisla z intervalu <1,10> a cislo mensi rovno');
WriteLn(' mensimu cislu z m a n, tedy z intervalu <1,min(m,n)>');
WriteLn(' Na vystupu je pak matice z vynechanym k-tym radkem a sloupcem');
while pokr=0 do
begin
m := -1;
n := -1;
k := -1;
SetLength(a,0);
SetLength(b,0);
WriteLn;
WriteLn(' Vstup');
//zadani poctu radku
repeat//Dokud se nezada cislo porad opakujeme zadani
try
WriteLn;
Write(' Zadej pocet radku matice m: ');
ReadLn(m);
except
on EInOutError do //Osetrení spatnych vstupu-napr.pismena,
begin//nebo cisla vetsi nez 2147483647 (rozsah Integer)
WriteLn(' m musi byt cele cislo z intervalu <1,10>');
m := -1;
end;
end;
until m<>-1;
if (m<1)or(m>10) then //Pokud zadame cislo mimo interval
repeat//tak to nedovolime
WriteLn(' m musi byt cele cislo z intervalu <1,10>');
WriteLn;
Write(' Zadej pocet radku matice m: ');
ReadLn(m);
until (m>=1)and(m<=10);
//zadani poctu sloupcu
repeat//Dokud se nezada cislo porad opakujeme zadani
try
Write(' Zadej pocet sloupcu matice n: ');
ReadLn(n);
except
on EInOutError do //Osetrení spatnych vstupu-napr.pismena,
begin//nebo cisla vetsi nez 2147483647 (rozsah Integer)
WriteLn(' n musi byt cele cislo z intervalu <1,10>');
n := -1;
end;
end;
until n<>-1;
if (n<1)or(n>10) then //Pokud zadame cislo mimo interval
repeat//tak to nedovolime
WriteLn(' n musi byt cele cislo z intervalu <1,10>');
WriteLn;
Write(' Zadej pocet sloupcu matice n: ');
ReadLn(n);
until (n>=1)and(n<=10);
//zadani cisla k
repeat//Dokud se nezada cislo porad opakujeme zadani
try
Write(' Zadej vynechany radek a sloupec k: ');
ReadLn(k);
except
on EInOutError do //Osetrení spatnych vstupu-napr.pismena,
begin//nebo cisla vetsi nez 2147483647 (rozsah Integer)
WriteLn(' k musi byt cele cislo z intervalu <1,min(m,n)>');
k := -1;
end;
end;
until k<>-1;
if m<n then
x := m
else
x := n;
if (k<1)or(k>x) then //Pokud zadame cislo mimo interval
repeat//tak to nedovolime
WriteLn(' k musi byt cele cislo z intervalu <1,min(m,n)>');
WriteLn;
Write(' Zadej vynechany radek a sloupec k: ');
ReadLn(k);
until (k>=1)and(k<=x);
SetLength(a,m,n);
for i := 0 to m-1 do //naplnime matici A nahodnymi cisly od 1 do 100
for j := 0 to n-1 do
a[i,j] := Random(100)+1;
k := k-1; //k-1 proto, ze mame pole (matici) cislovanou od 0
SetLength(b,m,n); //budou same nuly
for i := 0 to m-1 do //naplnime matici B (vynechame k-ty radek a sloupec
for j := 0 to n-1 do
if ((i<>k)and(j<>k)) then
b[i,j] := a[i,j];
WriteLn(' Vystup');
WriteLn;
WriteLn(' Zobrazeni naplnene matice A typu '+IntToStr(m)+'x'+IntToStr(n)+':');
WriteLn;
for i := 0 to m-1 do
begin
for j := 0 to n-1 do
Write(a[i,j]:4);
WriteLn;
end;
WriteLn;
WriteLn(' Zobrazeni matice B typu '+IntToStr(m-1)+'x'+IntToStr(n-1)+' s vynechanym '+IntToStr(k+1)+'. radkem a sloupcem:');
WriteLn;
for i := 0 to m-1 do
begin
for j := 0 to n-1 do
if b[i,j]<>0 then //kdyz neni nula vypiseme
Write(b[i,j]:4);
if i<>k then //kdyz neni radek s nulama tak piseme na novy
WriteLn;
end;
WriteLn;
konec := 0;
repeat//Opakujeme vyzvu, dokud nenapisme a nebo n
Write(' Nova matice? [a/n] '); //Chceme-li novou matici napiseme a
ReadLn(anone);
if (anone='n')or(anone='N')or(anone='a')or(anone='A') then
konec := 1
else
begin
WriteLn;
WriteLn(' Musis zadat a nebo n');
end;
until konec<>0;
if (anone='n')or(anone='N') then //V pripade ze napiseme n + ENTER - program skonci
pokr := 1;
end;
end.
Offline
Stránky: 1