Messaggioda vecchio » 19/04/2004, 14:21

matrici come?? di che dimensioni?? non so..non è che abbia molto tempo...però chissà...di notte...tu intanto dimmi poi vedremo..


<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 368 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda vecchio » 19/04/2004, 14:39

hei Tony!! sono riuscito a farlo funzionare con double!! non funzionava perchè dovevo mettere all'inizio del programma questa dicitura {$N+}
ora la domanda sorge spontanea...che vuol dire?? cmq se uso questo tipo di variabile il risultato migliora decisamente!!! anzi direi che è quasi perfetto!!!!!
che ganzo!!!!!

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 369 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda fireball » 19/04/2004, 14:47

Due matrici quadrate di ordine 4.
fireball
Cannot live without
Cannot live without
 
Messaggio: 899 di 6906
Iscritto il: 12/03/2003, 20:35

Messaggioda vecchio » 19/04/2004, 15:01

ma perchè non c'hai voglia te o perchè non 6 capace?

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 370 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda vecchio » 19/04/2004, 15:25

eccolo qua...

<pre id=code><font face=courier size=2 id=code>
program matrici(i,o); { ESEGUE LA SOMMA TRA 2 MATRICI }
uses crt;
const m=4;n=4;
type mat=array[1..m,1..n] of real;
var A,B,S:mat;
i,j:integer;
PROCEDURE introduzione(var H:mat);
begin
clrscr;
writeln('INSERIRE I COEFFICIENTI MATRICIALI:');
writeln;
for i:=1 to m do
for j:=1 to n do
begin
write('H[',i,',',j,']=');
readln(H[i,j]);
end;

end;
PROCEDURE visualizzazione(H:mat);
begin
writeln;
for i:=1 to m do
begin
for j:=1 to n do
begin
write(H[i,j]:8:3,' ')
end;
writeln;
end;
end;
procedure somma(H,K:mat;var l:mat);
begin
for i:= 1 to m do
for j:= 1 to n do
begin
L[i,j]:=H[i,j]+K[i,j];
end
end;
BEGIN { M A I N }
textcolor(white);
introduzione(A);
introduzione(B);
clrscr;
writeln(' MATRICI DI PARTENZA');
textcolor(red);
visualizzazione(A);
textcolor(green);
writeln;
visualizzazione(B);
textcolor(white);
writeln;
writeln('la somma delle matrici S ');
writeln;
somma(A,B,S);
textcolor(15);
visualizzazione(S);
repeat until keypressed;
END.
</font id=code></pre id=code>

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 371 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda fireball » 19/04/2004, 16:16

Perché non sapevo come si faceva... GRAZIE!!!!!
fireball
Cannot live without
Cannot live without
 
Messaggio: 900 di 6906
Iscritto il: 12/03/2003, 20:35

Messaggioda vecchio » 19/04/2004, 19:32

ma questo è solo uno dei tanti modi in cui potresti fare...basta ragionarci un po' e ne troverai sicuramente altre mille!! forse anche + eleganti!!<img src=icon_smile_wink.gif border=0 align=middle>

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 373 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda tony » 20/04/2004, 00:40

scusate, riesumo l'argomento iniziale
<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>*quote:<hr height=1 noshade id=quote>
hei Tony!! sono riuscito a farlo funzionare con double!! non funzionava perchè dovevo mettere all'inizio del programma questa dicitura {$N+}
ora la domanda sorge spontanea...che vuol dire?? cmq se uso questo tipo di variabile il risultato migliora decisamente!!! anzi direi che è quasi perfetto!!!!!
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>
bene, vecchio, ce l'hai fatta da solo.
la "N" del "directive" da te usato credo voglia dire "Numeric co-processor" (* nota 1), indicazione d'altri tempi, quando non tutte le macchine avevano questo dispositivo; in caso mancasse, il linguaggio restringeva le tue libertà, impedendoti, per es. tipi di dato più "raffinati".
questa spiega la trovi nel famigerato help in inglese. (* nota 2)

comunque, se non vuoi modificare il tuo programma aggiungendo la riga {$N+} puoi sempre agire nel menu "options/compiler/Numeric processing"
accendendo "8087".

avevi cambiato solo questo, per far girare soddisfacentemente il prgm?
un consiglio: torna alle condiz. iniziali e ripeti la prova: potresti aver toccato ANCHE qualcos'altro.

conosci il linguaggio (e, da quanto vedo dal tuo pgm sulla somma di matrici, hai idee piacevolmente "pulite") ma lo strumento non l'hai abbastanza "vissuto" per sentirtelo in mano con scioltezza.
forza! (peccato che oggi, sul pascal, tu trovi pochi interlocutori)

(* nota 1) c'è qualcuno del classico che ci voglia intrattenere su un possibile "copro-cessor"?
(* nota 2) : ma, scusa, hai fatto francese?

tony

P.S. ti prego, indipendentemente da qualsiasi accettabilissaima considerazione, NON mandarmi il sorgente del quesito prima del semaforo rosso.
un po' di disciplina, no?
tony
Average Member
Average Member
 
Messaggio: 318 di 873
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda vecchio » 20/04/2004, 21:26

no...studio inglese..ma no sapendo cosa fosse quel {$N+}...non c'avevo capito un gran che..cmq alla fine ci sono arrivato!! ; )
riguarda al listato ok!! scusa ma ero ansioso di sapere dove sbagliavo!! cmq tutto ok ora! grazie mille per l'aiuto!!
ho ripreso il programma iniziale e ho ripetuto quello che ho fatto prima...ho scritto al posto di real, duoble e ho aagiunto {$N+}all'inizio..non capisco a cosa si riferisca quel tuo "ANCHE"..bo?

grazie per i complimenti per il pascal...effettivamente l'ho masticato purtroppo un po' poco...infatti, pur facendo un corso sperimentale, abbiamo visto il computer poche volte in 5anni...perchè ai miei compagni non frega nulla di informatica (ma che hanno preso a fa la sperimentazione in informatica allora??mah..) quindi quello che so è perhcè ho rotto le scatole al mio prof e ho studiato da solo a casa...mi piace decisamente molto!!

purtroppo però mi manca la grafica...che dovrebbe essere decismante stimolante..il problema è che sui libri che ho io non c'è una spiegazione decente introduttiva..e non volgio imparare tutto a memoria!!! volgio capire!!!uff..

ora vado..
grazie ancora

il vecchio

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 381 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda tony » 21/04/2004, 00:22

<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>*quote:<hr height=1 noshade id=quote>
prima...ho scritto al posto di real, duoble e ho aagiunto {$N+}all'inizio..non capisco a cosa si riferisca quel tuo "ANCHE"..bo?
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>
quell'"ANCHE", vecchio, è autobiografico:
quando ritocco qualcosa in un programma, non sono (quasi) mai sicuro di aver raggiunto la soluzione avendo variato UNA sola cosa; spesso, senza pensarci, ne ho toccata ANCHE (almeno) un'altra, solo apparentemente irrilevante, ma che talvolta era la VERA chiave della soluzione.
(è un mestiere divertente per uno "sperimentale")

non mi dici se, anche sulla tua vers. di pascal [io ho la 7 (pascal, turbo pascal e pascal for windows) e la consideravo decrepita!] risolvi (una volta per tutte, salvando l'opzione) il problema del {$N+} con la risposta che ti suggerivo a "menu /options/compiler/Numeric processing".
non c'è fretta.

tony

*Edited by - tony on 21/04/2004 01:25:11
tony
Average Member
Average Member
 
Messaggio: 321 di 873
Iscritto il: 10/11/2005, 23:47
Località: milano

PrecedenteProssimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite