Matice v pascalu – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Matice v pascalu – Pascal – Fórum – Programujte.comMatice v pascalu – Pascal – Fórum – Programujte.com

 

Honza
~ Anonymní uživatel
451 příspěvků
24. 2. 2014   #1
-
0
-

Zdravím :) já bych potřeboval pomoct, vytvořil jsem program, který vypočítá matice a mým úkolem je snížit počet podprogramů na 3, takže výpisy bych potřeboval snížit do 1 pprg a v tom je ten háček, protože jsem nepřišel zatím na nic, co by fungovalo, nápady? budu vděčný :D

program maticka(input,output);
uses crt;
type matice=array[1..10,1..10] of byte;
var A,B,C:matice;
    X,Y,Z:byte;

procedure CTI(M,N,P:byte; var A,B:matice);
          var I,J:word;
          begin
               for I:=1 to M do
                   for J:=1 to N do
                   begin
                   write('a [',I,',',J,'] = ' );
                   readln(A[I,J]);
                   end;


                   for I:=1 to N do
             for J:=1 to P do
              begin
               write('b [',I,',',J,'] = ');
               readln(B[I,J]);
               end


          end;{CTI}

procedure SOUCIN(M,N,O:byte; var A,B,C:matice);
          var I,J,K:word;
          begin
               for I:=1 to M do
                   begin for K:=1 to n do
                         begin
                         C[I,K]:=0;
                         for J:=1 to o do
                             begin
                             C[I,K]:=C[I,K]+(A[I,J]*B[J,K]);
                             end;
                         end;
                   end;
          end;{SOUCIN}


procedure VYPIS1(N,O:byte; var A:matice);
var I,J:word;
begin for I:=1 to N do
      for J:=1 to O do
          begin
          gotoxy(3*J,2*I+1);
          write(A[I,J]);
          end;
          end;{VYPIS1}

procedure VYPIS2(N,O:byte; var B:matice);
var K,J:word;
begin
     for J:=1 to N do
         begin
          for K:=1 to O do
              begin
              gotoxy(3*K+20,2*J+1);
              write(B[J,K]);
              end
         end
end;{VYPIS2}
procedure VYPIS3(N,O:byte; var C:matice);
var J,K:word;
begin
     for J:=1 to N do
     begin for K:=1 to O do
           begin
           gotoxy(4*K+40,2*J+1);
           write(C[J,K]);
           end
     end
end;{VYPIS3}


BEGIN
clrscr;
write('zadej pocet radku matA: ');
readln(Y);
write('zadej pocet sloupcu matA (stejny jako radky matB): ');
readln(X);
write('zadej pocet sloupcu matB: ');
readln(Z);
CTI(Y,X,Z,A,B);
clrscr;
SOUCIN(Y,Z,X,A,B,C);
gotoxy(3,1);
write('matice a');
VYPIS1(Y,X,A);
gotoxy(25,1);
write('matice b');
VYPIS2(X,Z,B);
gotoxy(45,1);
writeln('matice c');
VYPIS3(Y,Z,C);
readln;
end.
Nahlásit jako SPAM
IP: 188.120.199.–
KIIV
~ Moderátor
+43
God of flame
24. 2. 2014   #2
-
0
-

no minimalne duplikujes hromadu kodu v tech vypisech.. kdyz predas pozici x jako dalsi parametr, tak mas najednou jen jednu proceduru misto tri..

pak je naprostej nesmysl mit v kazdem vypisu tu matici pojmenovanou jinak - hned bys lip videl ze to je furt to samy

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Honza
~ Anonymní uživatel
451 příspěvků
24. 2. 2014   #3
-
0
-

a můžete mi napsat jak by vypadaly parametry proměnný tý procedury? abych se mohl od něčeho odpíchnout

Nahlásit jako SPAM
IP: 188.120.199.–
KIIV
~ Moderátor
+43
God of flame
24. 2. 2014   #4
-
0
-

   

procedure VYPIS(N,O,X:byte; var M:matice);
var I,J:word;
begin
  for I:=1 to N do
    for J:=1 to O do begin
      gotoxy(3*J+X,2*I+1);
      write(M[I,J]);
    end;
end; {VYPIS1}
...
VYPIS(Y,Z,0,A);
VYPIS(X,Y,20,B);
VYPIS(Y,Z,40,C);
Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Honza
~ Anonymní uživatel
451 příspěvků
24. 2. 2014   #5
-
0
-

#4 KIIV
děkují

Nahlásit jako SPAM
IP: 188.120.199.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý