Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti ragazzi, sono nuovo su questo forum e vi scrivo in quanto sono un pò infognato con un programmino che ci hanno assegnato all'università...
Penso di essere arrivato a buon punto, ma qualcosa alla fine non quadra... potete darmi qualche consiglio per migliorare il mio progetto e magari trovare qualche imprecisione da correggere??
grazie mille!!!
Codice sorgente - presumibilmente Delphi
Program ProdottoMatriciale(output);
Type
mioTipo =ArrayofReal;(* La matrice Ë di numeri reali *)
var R1,R2,C1,C2:Integer;(* Dimensioni delle matrici *)
Poi le variabili i, j, k le usi per tutto il programma quindi puoi dichiararle una sola volta all'inizio del testo ed evitare di ripeterle in ogni funzione.
Inoltre quando crei un'applicazione su console usando Pascal conviene pulire lo schermo all'avvio del programma, per farlo dichiara la unit crt all'inizione del testo e usa la funzione clrscr.
Ecco parte del testo:
Codice sorgente - presumibilmente Pascal
program ProdottoMatriciale(output);
uses crt;
type
[...]//eccetera eccetera
Codice sorgente - presumibilmente Pascal
[...]
(* Questo e' il main *)
begin
clrscr;
printWS();
[...]//eccetera eccetera
Ultima modifica effettuata da Phi il 10/05/2010 alle 20:50
l'errore in fondo dovrebbe essere dovuto proprio da quel readln....
infatti mi chiudeva il programma prima di farmi vedere il risultato
per quanto riguarda la clrscr vedrò di metterla subito
poi per il resto come vi sembra??
secondo voi per quanto riguarda l'esposizione al professore come posso procedere?
- divido il programma in:intestazione, parte dichiarativa e esecutiva
- esposizione dei cicli for
- sei sottoprogrammi procedure
poi che altro vi sembra rilevante???
il vecchio professore in effetti ci faceva lavorare in C++ ma questo nuovo ci ha richiesto il pascal...
in effetti cambiano poche cose, la logica è la stessa, però è un pò una rottura fare il passaggio, anche perchè molte cose del C++ non sono compatibili
attuale :=0;(* Il singolo elemento. Viene azzerato ogni volta dopo che l'ho stampato *)
For i:=0 to R1-1 dobegin
For j:=0 to C2-1 dobegin
For k:=0 to R1-1 dobegin
attuale := attuale + m1[i*C1+k]*m2[k*C2+j]
end;
Write(attuale);
attuale :=0
end;
Writeln()
end
end;
(* Questo e' il main *)
var i,j:Integer;
begin
printWS();
(* Dati di input *)
Write('Inserisci il numero di righe della prima matrice:');
Readln(R1);
Write('Inserisci il numero di colonne della prima matrice:');
Readln(C1);
Write('Inserisci il numero di righe della seconda matrice:');
Readln(R2);
Write('Inserisci il numero di colonne della seconda matrice:');
Readln(C2);
(* Controllo se il prodotto di può fare ( C1 = R2) *)
if C1 = R2 thenbegin
SetLength(myArray1,R1*C1);(* Alloco memoria per la matrice *)
SetLength(myArray2,R2*C2);(* Alloco memoria per la matrice *)
Writeln('Inserisci la prima matrice');
For i:=0 to R1-1 do
begin
For j:=0 to C1-1 do
begin
Write('Inserisci: Matrice[',i,',',j,']=');
Readln(myArray1[i*C1+j]);
end;
end;
Writeln('Hai inserito questa matrice: ');
printMatrice(myArray1,R1,C1);
Writeln('Inserisci la seconda matrice');
For i:=0 to R2-1 do
begin
For j:=0 to C2-1 do
begin
Write('Inserisci: Matrice[',i,',',j,']=');
Readln(myArray2[i*C2+j]);
end;
end;
Writeln('Hai inserito questa matrice: ');
printMatrice(myArray2,R2,C2);
Writeln('Verrà ora eseguito il prodotto. Premi INVIO per continuare');
Readln();
product(myArray1,myArray2,R1,C1,R2,C2);
end
else
Writeln('Operazione non permessa: C1!=R2')
readln();
end.
solo che quando vado a compilare il computer mi dà questo errore...
il bello è che prima ho dato il via all'eseguibile e l'unico problema era che alla fine (dopo aver inserito i valori delle matrici e tutto il resto) quando andava a calcolare il prodotto mi chiudeva la finestra senza farmi vedere il risultato;
dopo che ho fatto un pò di modifiche invece mi dava questo problema..
Free Pascal Compiler version 1.0.6 [2002/04/23] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Win32 for i386
Compiling c:\users\utente\desktop\prodotto.pas
prodotto.pas(6,19) Fatal: Syntax error, [ expected but OF found
vi prego help me
Ultima modifica effettuata da Suxdario88 il 11/05/2010 alle 15:48