AIUTO con C++!!!

di il
4 risposte

AIUTO con C++!!!

Mi serirebbe una mano a compilare questi 4 programmi......
1)da un file contenente nomi produrre un altro file che contiene gli stessi nomi del precedente non ripetuti

2)da un file contenente numeri,registrare le occorrenze mediante un record... Mostra tutto
esempio( struct{ int numero;int occorrenza;}record; )
quindi stampare un file che ha i numeri con frequenza superiore alla media

3)da una matrice stampare la somma degli elementi della diagonale maggiore. la matrice è rappresentata da un array di record
esempio( struct{int elemento; int posRiga; int posColonna}record; )
è una matrice sparsa: la matrice è composta dal valore nella posizione indicata, e 0 in tutti gli altri

4)scrivere funzioni di lettura e stampa di una matrice sparsa
per la stampa utilizzare una ricerca: se esiste un elemento nelle coordinate,stampalo, altrimenti stampa 0;

4 Risposte

  • Re: AIUTO con C++!!!

    Una mano te la diamo per correggere eventuali errori sul codice non certo a scriverlo da zero.

    Saluti,
    Max
  • Re: AIUTO con C++!!!

    Allora aiutatemi cn questo codice:dato 2 file con nomi scrivere i nomi presenti in entrambi su un 3° file

    main.cpp
    -----------------------------------------------------------------------------------------------------------------
    #include "header.h"
    int main(int argc, char *argv[])
    {
    char []="f1.txt"; // al posto di EFFE1 mi esce questa faccia sorridente ,scusate
    char f2[]="f2.txt";
    vett v1,v2,v3;
    int r1,r2;
    int r3=0;
    leggiFile(v1,r1,f1);
    leggiFile(v2,r2,f2);
    doppioni(v1,r1,v3 ,r3);
    doppioni(v2,r2,v3 ,r3);
    caricadoppioni(v3,r3);
    system("PAUSE");
    return 0;
    }

    ----------------------------------------------------------------------------------------------------------
    header.h
    ----------------------------------------------------------------------------------------------------------

    #ifndef header_h
    #define header_h

    #include <iostream>
    #include <fstream>
    #include <string>

    using namespace std;

    typedef char stringa[100];
    typedef stringa vett[100];

    void leggiFile(vett,int&,char*);
    bool controlla(vett v,int r,int posiz,char* x);
    void doppioni(vett,int,vett,int&);
    void caricadoppioni(vett v3,int r3);
    #endif

    ---------------------------------------------------------------------------------------------------
    body.cpp
    ------------------------------------------------------------------------------------------------------
    #include "header.h"
    void leggiFile(vett v,int& r ,char* file){
    fstream f;
    f.open(file,ios::in);
    r=0;
    if(!f)
    cout<<"Caricamento scorretot"<<endl;
    else{
    while(!f.eof()){
    f>>v[r];
    r++;
    }
    r--;
    }
    f.close();
    }
    bool controlla(vett v3,int r,int posiz,char *x){
    bool flag=false;
    for(int i=posiz+1;i<r && !flag;i++){
    if(strcmp(v3,x)==0)
    flag=true;
    }
    return flag;
    }
    void doppioni(vett v,int r,vett v3,int& r3){
    bool flag1;
    char *x;
    for(int i=0;i<r;i++){
    x=v;
    flag1=controlla(v,r,i,x);
    if(flag1){
    strcpy(v3[r3],v);
    r3++;
    }
    }

    }
    void caricadoppioni(vett v3,int r3){
    fstream f;
    f.open("f3.txt",ios::out);
    for(int i=0;i<r3;i++){
    f<<v3<<endl;}
    f.close();
    }
  • Re: AIUTO con C++!!!

    ixamit ha scritto:


    Una mano te la diamo per correggere eventuali errori sul codice non certo a scriverlo da zero.

    Saluti,
    Max

    mi dici tu quando posso postare gli altri codici
  • Re: AIUTO con C++!!!

    Devi usare il tag 'code' quando alleghi sorgenti! Ci sono caratteri strani, faccine e poi niente indentazione. Passa la voglia di leggere...

    La funzione bool controlla(vett v3,int r,int posiz,char *x)
    è sbagliata sia nei parametri che passi, sia nel valore di ritorno. Ci sono 2 errori di 'distrazione' + 1 errore logico di funzionalità.

    Controlla bene, correggi e allegami solo la funzione in questione e la chiamante.
    Il resto funziona.

    Saluti,
    Max
Devi accedere o registrarti per scrivere nel forum
4 risposte