PDA

View Full Version : Strano problema con C++


KRYHAWOK
02-02-2002, 02:30
Ciao gente. Stavo facendo un programma con le matrici, ma non riuscivo neppure a fare i conti più semplici. Ho provato a "estirpare" un pezzo del programma (quello che c'è di seguito) per vedere dov'era il problema. Qui sotto dichiaro una matrice A di tipo (3,3), limitandomi ad assegnare le posizioni a(0,2)=3 e a(1,0)=8. Facendone un semplice output mi sono accorto che "magicamente" la prima variabile assumeva il valore della seconda. Ok, sono le 3:30.... mi sarà sfuggita una cagata, ne sono sicuro... ma nn ne vengo fuori....
Tnx!


#include <iostream.h>
#include <conio.h>

main () {
int a[2][2];
int h;
clrscr();


a[0][2]=3;
cout<<"Assegnata posizione a(0,2)=3. Output a(0,2): "<<a[0][2]<<"\n";

a[1][0]=8;
cout<<"Assegnata posizione a(1,0)=8. Output a(1,0): "<<a[1][0]<<"\n";
cout<<"Nessun assegnamento eseguito. Output a(0,2): "<<a[0][2]<<"\n";

cin>>h;
}

Ecco l'output:
http://utenti.tripod.it/plmnko/output_C.jpg

cionci
02-02-2002, 08:54
Devi dichiarare "a" come "int a[3][3];" se vuoi avere una matrice 3x3...

KRYHAWOK
02-02-2002, 10:35
.. ecco, l'avevo detto io che era una cagata... mi sa che mi sto rincoglionendo....
cmq grazie.

a2000
05-02-2002, 19:35
Passa al Fortran ...

cionci
05-02-2002, 19:44
Evita di usare clrscr...non è una funzione di libreria standard pe ril C++

KRYHAWOK
06-02-2002, 20:37
Originariamente inviato da a2000
[B]Passa al Fortran ...

piuttosto il Basic! :D

a2000
07-02-2002, 05:43
Va beh che va di moda il 'local', ma preferire un DIALETTO per uno che si chiama KRYHAWOK ...
Ad ogni modo ti passo un elenco per la traduzione sintattica da Basic a Fortran90 e viceversa.

Guarda che forse non te l'hanno detto ma tutte le comodità del Basic (del VisualBasic) le trovi in Fortran90 e anche di più, tanto che si parla di convergenza tra i due linguaggi.
Ti do alcuni esempi sparsi:

- formattazione delle righe di codice libera (commenti dove vuoi, lunghezza della riga fino a 64000 caratteri, istruzioni multiple sulla riga, a capo forzati ecc.)

- ricursività delle procedure
- puntatori
- codice strutturato a moduli
- strutture dati definite dall'utente
- matrici allocate dinamicamente e ridimensionamento run-time
- ridimensionamento automatico dei parametri formali array
- definizione (ridefinizione) degli operatori
- manipolazione di stringhe: concatenamento, estrazione a destra, sinistra, in mezzo

e in più tutta la roba nostra sul calcolo matriciale
- operazioni tra matrici senza indici
- estrazione automatica di sottomatrici

Il tutto con una sintassi molto 'Basica' e intuitiva.

cionci
07-02-2002, 08:26
Guarda....credo che fosse una battuta...

Credo che KRYHAWOK sia un C++ista coonvinto...come me del resto...quindi non credo che facendo un po' di pubblicità al Fortran potremmo passarci...

Comunque riguardo alla matematica...anche il C/C++ se la cavano benissimo, inoltre sono disponibili le librerie con l'interprete di Mathlab se uno vuole proprio fare calcoli fisici/matematici...

a2000
07-02-2002, 09:30
... non se uno vuole, se uno DEVE risolvere equazioni ( non 'fare calcoli').

Il resto è silenzio.

cionci
07-02-2002, 10:25
Originariamente inviato da a2000
[BIl resto è silenzio.
Ti trovi meglio in Mathlab o in Fortran ?

a2000
07-02-2002, 10:41
Mathlab è una sveltina ...

cionci
07-02-2002, 10:45
Ah...ok...

a2000
07-02-2002, 12:05
Cos'è cionci ti prude ...

Stai tranquillo.

Come diceva un compagno, la storia è una cosa lunga ma anche larga: c'è posto per tutti.

cionci
07-02-2002, 12:11
Originariamente inviato da a2000
[B]Cos'è cionci ti prude ...

Stai tranquillo.

Come diceva un compagno, la storia è una cosa lunga ma anche larga: c'è posto per tutti.
A me non mi prude nulla...

KRYHAWOK
07-02-2002, 14:40
Originariamente inviato da a2000
[B]Va beh che va di moda il 'local', ma preferire un DIALETTO per uno che si chiama KRYHAWOK ...
Ad ogni modo ti passo un elenco per la traduzione sintattica da Basic a Fortran90 e viceversa.

Guarda che forse non te l'hanno detto ma tutte le comodità del Basic (del VisualBasic) le trovi in Fortran90 e anche di più, tanto che si parla di convergenza tra i due linguaggi.
Ti do alcuni esempi sparsi:

- formattazione delle righe di codice libera (commenti dove vuoi, lunghezza della riga fino a 64000 caratteri, istruzioni multiple sulla riga, a capo forzati ecc.)

- ricursività delle procedure
- puntatori
- codice strutturato a moduli
- strutture dati definite dall'utente
- matrici allocate dinamicamente e ridimensionamento run-time
- ridimensionamento automatico dei parametri formali array
- definizione (ridefinizione) degli operatori
- manipolazione di stringhe: concatenamento, estrazione a destra, sinistra, in mezzo

e in più tutta la roba nostra sul calcolo matriciale
- operazioni tra matrici senza indici
- estrazione automatica di sottomatrici

Il tutto con una sintassi molto 'Basica' e intuitiva.

Ehi.. non scaldarti tanto.. sono il primo a dire di essere tutt'altro che un programmatore esperto, anche se qualche linguaggio me lo sono girato anch'io...
Io poi ho parlato ESCLUSIVAMENTE del fortran_77, per il semplice fatto che è l'unico che la nostra prof. ci ha presentato... e non mi è piaciuto per i motivi che ho già detto. Punto e basta.

Ho provato anch'io matlab... e chiamarlo una "sveltina" non mi sembra molto saggio.

Non ho neppure capito perchè sostieni che il fortran "sia quanto più simile al linguaggio algebrico" (come hai detto nell'altro thread)... non mi pare che il C++ imponga grandi limitazioni a chi "DEVE" risolvere equazioni.....

ma i gusti sono gusti....

PS: sei addirittura riuscito a leggere "KRYHAWOK"?.. complimenti! prova ad alta voce... vedrai che ti piacerà.

a2000
07-02-2002, 16:27
Permalosetto il ragazzo.
Uno cerca di dare qualche informazione ...

Riguardo alle tue osservazioni:

1) Si vede che la Prof. avrà fatto il '77 (1977).

2) Mathlab è una sveltina perchè permette l'implementazione rapida di sistemi di equazioni di varia natura ... e perchè spesso ... non arriva.
Nessuno si sognerebbe di simulare la dinamica dell'atmosfera (p.es. RAMS), l'analisi strutturale (p.es ANSYS), la fluidodinamica numerica (p.es. FLUENT), l'analisi di processo (p.es. ASPEN) con Mathlab.

3) FORmulaTRANslator.

4) a me piacciono bionde e a te ?

P.S.) Ecco in questo posso solo imparare: ho fatto copia-incolla.
Ma con le linee di codice fatte da altri non ci riesco (ah le classi!) .

Tranquillo.

cionci
07-02-2002, 16:34
Originariamente inviato da a2000
[B]P.S.) Ecco in questo posso solo imparare: ho fatto copia-incolla.
Ma con le linee di codice fatte da altri non ci riesco (ah le classi!) .

E quando il codice sorgente non è disponibile ?

Vedi...il fatto che il Fortran sia + usato nel campo scientifico è legato solo al fatto della disponibilità di librerie testate da lungo tempo...
Non a caso il C++ lo sta pian piano sostituendo...

KRYHAWOK
07-02-2002, 16:47
Vabe'... pazienza. Quando arriverò anch'io a fare calcolo numerico vedremo se il fortran la spunterà o no...

ZzBYEzZ

PS: X la cronaca: KRYHAWOK sta per "Cry Havoc!", che era un urlo di battaglia di taluni cavalieri medievali inglesi e significa "Strage!".

KRYHAWOK
07-02-2002, 16:49
Se hai già provato, è molto complesso fare i primi passi di grafica col C++ (e.g. OpenGL)??

cionci
07-02-2002, 16:55
Non ho provato, ma ti assicuro che è difficile ;)

a2000
08-02-2002, 09:12
Il problema non è il vestito (linguaggio) ma il contenuto.

Poi per fare scioftvare di carico e scarico magazzino (anzi magazzeno) per la sciura Luisa con le finestrelle di data entry, va bene anche il C++.