[Progetto]: Somma e Differenza fra due matrici

Topic sul pascal.

[Progetto]: Somma e Differenza fra due matrici

Postby d2s on Fri Nov 10, 2006 6:30 pm

In matematica non so se avete fatto le matrici, se sì questo programmino esegue la somma e la differenza fra matrici con un massimo di 50 righe e colonne.
(si può espandere a piacimento basta modificare il source)

Code: Select all
program matrici;
uses crt;
var matriceA: array [1..50,1..50] of integer;
    matriceB: array [1..50,1..50] of integer;
    matriceC: array [1..50,1..50] of integer;
    i,k,r_max,r1_max,c_max,c1_max,scelta: integer;
procedure stampa_menu;
begin
writeln(' _____________________________');
writeln('|                             |');
writeln('| 1 Somma di due matrici      |');
writeln('| 2 Differenza di due matrici |');
writeln('|_____________________________|');
writeln;
writeln('Effettua la tua scelta');
writeln;
end;
procedure dichiara_matrici;
begin
repeat
writeln('inserisci il numero di righe della prima matrice');
       if r_max > 50 then
       writeln('il numero di righe deve essere inferiore a 50');
       readln(r_max);
until r_max < 51;
repeat
writeln('inserisci il numero di colonne della prima matrice');
       if c_max > 50 then
       writeln(' il numero di colonne deve essere inferiore a 50');
       readln(c_max);
until c_max < 51;
repeat
writeln('inserisci il numero di righe della seconda matrice');
       if r1_max > 50 then
       writeln('il numero di righe deve essere inferiore a 50');
       readln(r1_max);
until r1_max < 51;
repeat
writeln('inserisci il numero di colonne della seconda matrice');
       if c1_max > 50 then
       writeln(' il numero di colonne deve essere inferiore a 50');
       readln(c1_max);
until c1_max < 51;
end;
procedure inserimento_dati_matrici;
begin
for i:=1 to r_max do
    for k:=1 to c_max do
        begin
        writeln('inserisci A (',i,';',k,')');
        readln(matriceA[i,k]);
        end;
for i:=1 to r1_max do
    for k:=1 to c1_max do
        begin
        writeln('inserisci B (',i,';',k,')');
        readln(matriceB[i,k]);
        end;
writeln;
end;
procedure stampo_matrici;
begin
for i:=1 to r_max do
    for k:=1 to c_max do
        begin
        writeln('A (',i,';',k,') ','= ',matriceA[i,k]);
        end;
writeln;
for i:=1 to r1_max do
    for k:=1 to c1_max do
        begin
        writeln('B (',i,';',k,') ','= ',matriceB[i,k]);
        end;
end;
procedure somma_matrici;
begin
writeln;
for i:=1 to r_max do
    for k:=1 to c_max do
begin
matriceC[i,k]:=matriceA[i,k]+matriceB[i,k];
writeln('C (',i,';',k,') ','= ',matriceC[i,k]);
end;
end;
procedure differenza_matrici;
begin
for i:=1 to r_max do
    for k:=1 to c_max do
begin
matriceC[i,k]:=matriceA[i,k]-matriceB[i,k];
writeln('C (',i,';',k,') ','= ',matriceC[i,k]);
end;
end;
begin
clrscr;
stampa_menu;
readln(scelta);
case scelta of
   1: begin
      repeat
      dichiara_matrici;
      if (r_max <> r1_max) or (c_max <> c1_max) or ((r_max <> r1_max) and (c_max <> c1_max)) then
      writeln('il numero di righe e di colonne devono essere uguali')
      until (r_max = r1_max) and (c_max = c1_max);
      inserimento_dati_matrici;
      stampo_matrici;
      somma_matrici;
      end;
   2: begin
      repeat
      dichiara_matrici;
      if (r_max <> r1_max) or (c_max <> c1_max) or ((r_max <> r1_max) and (c_max <> c1_max)) then
      writeln('il numero di righe e di colonne devono essere uguali')
      until (r_max = r1_max) and (c_max = c1_max);
      inserimento_dati_matrici;
      stampo_matrici;
      differenza_matrici;
      end;
else
writeln;
writeln('Scelta invalida, premi un tasto per uscire ... ');
end;
repeat until keypressed;
end.
Neanche in curva io rallento.
d2s
Newbies
 
Posts: 20
Joined: Mon Sep 25, 2006 9:10 pm

[Progetto]: Somma e Differenza fra due matrici

Sponsor

Sponsor


Postby symboss on Fri Nov 10, 2006 6:44 pm

pascal...
che bei tempi ASD
symboss
Newbies
 
Posts: 2
Joined: Fri Nov 10, 2006 2:03 pm

Re: [Progetto]: Somma e Differenza fra due matrici

Postby Fabriz on Fri Nov 10, 2006 7:06 pm

damy[] wrote:In matematica non so se avete fatto le matrici, se sì questo programmino esegue la somma e la differenza fra matrici con un massimo di 50 righe e colonne.
(si può espandere a piacimento basta modificare il source)

...code...



ho avuto il compito da poco su quella roba <_<.... e c'era pure il prodotto e la costante lineare....


Odio le matrici <_<



Piuttosto nella dichiarazione delle variabili ci starebbe bene un type, visto che si ripete per tre volte la stessa roba
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm


Return to Pascal

Who is online

Users browsing this forum: No registered users and 1 guest

cron