Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    44

    [C++] Compilazione separata, matrici ecc

    Ciao ragazzi sto studiando il C++, il problema è che non riesco a capire la compilazione separata (ho trovato alcune guide ma non sono chiare o sono incomplete).

    Precisamente, dovrei imparare a leggere una matrice da file e creare un paio di vettori che contengono i valori di una colonna, uno di una riga, ed un altro con tutti i numeri pari della matrice, il tutto in compilazione separata.

    mettiamo una matrice non quadrata (in txt), dopodichè dovrei creare un header con le principali voci, un .ccp con tutte le operazioni, inoltre un main dove avviare il programma, ma non riesco a raccapezzarmici.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    44
    Cerco di spiegarmi :P
    Allora dato tale codice:

    codice:
    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    const int MAX_RIGHE=100;
    const int MAX_COLONNE=100;
    
    typedef int vettore[MAX_RIGHE];
    typedef int matrice[MAX_RIGHE][MAX_COLONNE];
    matrice M;
    
    int main(){
        int rig, col, i, j;
        
        cout<<"Inserisci il numero di righe"<<endl;
        cin>>rig;
        cout<<"Inserisci le colonne"<<endl;
        cin>>col;
        
        for(i=0; i<rig; i++)
        for(j=0; j<col; j++){
                 cout<<"Inserisci gli elementi di "<<i<<" e "<<j<<endl;
                 cin>>M[i][j];
                 }
                 cout<<endl;
                 cout<<"adesso visualizziamo la matrice"<<endl;
                 cout<<endl;
                 cout<<"premere un tasto per continuare..."<<endl;
                 system("PAUSE>NUL");
                 
                 cout<<"Matrix = ";
                 for(i=0; i<rig; i++){
                          cout<<'\t';
                          for(j=0; j<col; j++) 
                          cout<<M[i][j]<< '\t';
                          cout<<'\n';
                          }
                          
                          system("PAUSE");
                          return 0;
                          }
    Vorrei:

    1-dopo che mi fa vedere la matrice me la salvi su un file txt nella stessa cartella
    2-crei un vettore usando gli elementi pari della matrice, ed un altro contenente i valori della prima riga

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E che c'entrano i problemi sulla "compilazione separata" ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Monaghan
    1-dopo che mi fa vedere la matrice me la salvi su un file txt nella stessa cartella
    Apri il file con la

    fopen

    scrivi con la

    fprintf

    chiudi il file con

    fclose

    (dai un'occhiata al tuo libro/manuale per vedere come si usano queste funzioni)

    2-crei un vettore usando gli elementi pari della matrice, ed un altro contenente i valori della prima riga
    Fai prima il punto 1) ... non introdurre piu' problemi in uno stesso thread (in cui, peraltro, il titolo non corrisponde a nessuno dei due ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    44
    hai ragione, scusami per non essermi spiegato prima. Dopo aver fatto tutto ciò devo rifarlo in compilazione separata (creare un header, un main, ed un file contenente le operazioni)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Monaghan
    hai ragione, scusami per non essermi spiegato prima. Dopo aver fatto tutto ciò devo rifarlo in compilazione separata (creare un header, un main, ed un file contenente le operazioni)
    Beh ... allora comincia dal primo problema (hai fatto quello che ti ho suggerito sulla fopen ...?) e dopo, quando hai un codice complessivo e funzionante, apri un nuovo thread per organizzarlo su piu' sorgenti e affronta quel tipo di problema.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    44
    se usassi ofstream?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Monaghan
    se usassi ofstream?
    Sì ... meglio (dato che usi C++ ... non lo avevo notato nel titolo ...) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    44
    ho fatto in modo che mi leggesse la matrice dal file (chiedendo di scrivere il nome del file), dopodichè deve stamparmela a video, ma mi da un errore

    codice:
    #include <iostream>
    #include <stdlib.h>
    #include <cstdlib>
    #include "prova"
    
    
    using namespace std;
    
    const int DIM_MAX=50;
    
    typedef int vettore[DIM_MAX];
    typedef char stringa[DIM_MAX];
    typedef vettore matrice[DIM_MAX];
    typedef int matrice[DIM_MAX][DIM_MAX];
    
    int main(){
        int i, j, rig, col;
        matrice M;
        stringa prova;
        
        cout<<"Che file carico?"<<endl;
        cin>>stringa;  //ERRORE
        lettura_file(prova.txt, rig, col, M);
        cout<<"Stampa matrice"<<endl;
        stampa_matrice(rig, col, M);
        
        void lettura_file(stringa prova.txt, int &rig, int col, matrice M){
             FILE * prova;
             
             prova=fopen(prova.txt, "r");
             if (!prova){
                         cout<<"Il file non c'e', il programma sara' terminato"<<endl;
                         system("PAUSE");
                         exit(1);
                         }
                         cout<<endl;
                         cout<<"riempimento righe"<<endl;
                         
                         fscanf (prova, "%d", &rig);
                         cout<<"Adesso le colonne"<<endl;
                         fscanf (prova, "%d", &col);
                         for (i=0, i<rig, i++)
                         for (j=0, j<rig, j++){
                             fscanf (prova, "%d", M[i][j]);
                             }
                             fclose(prova);
                             }
                             
                             void stampa_matrice(int &rig, int &col, matrice M){
                                  int i, j;
                                  cout<<endl;
                                  for (i=0; i<rig; i++)
                                  for (j=0; j<rig; j++){
                                      cout<<M[i][j];
                                      }
                                      }
                                      system("PAUSE");
                                      return 0;
                                      }

  10. #10
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Magari indica che errore ti da e dove..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.