Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Sequenze di numeri uguali
Forum - C/C++ - Sequenze di numeri uguali

Avatar
eVenss (Normal User)
Newbie


Messaggi: 3
Iscritto: 22/03/2012

Segnala al moderatore
Postato alle 16:27
Giovedì, 22/03/2012
Volevo fare un programma che io immettevo da word facendo copia incolla una sequenza di numeri e poi il programma doveva dirmi quante volte un numero veniva ripetuto, esempio : immetto 3-4-5-2-3 e chiedo quante volte viene 3 e mi dice : 2

ho fatto questo ( cosiderate sono alle prime armi)

Codice sorgente - presumibilmente C++

  1. int main(void)
  2.  {
  3.    const int MAXN = 50 ; /* dimensione massima del vettore */
  4.    int vet[MAXN] ; /* serie di numeri interi */
  5.    int compatto[MAXN] ; /* serie compatta di numeri interi:
  6.                        contiene, senza ripetizione, i valori del
  7.                        vettore "vet" */
  8.    int N ; /* dimensione del vettore "vet" */
  9.    int N_compatto ; /* dimensione del vettore "compatto" */
  10.    int i, j, t ; /* indici dei cicli */
  11.    int trovato ; /* flag per la ricerca */
  12.    int occorrenze; /* numero di occorrenze */
  13.    /* LEGGI LE DIMENSIONI DEL VETTORE */
  14.    do
  15.    {
  16.      printf("Quanti numeri saranno inseriti? ") ;
  17.      scanf("%d",&N) ;
  18.      /* LA DIMENSIONE MASSIMA DEL VETTORE E’ COMPRESA TRA 1 E MAXN */
  19.      if ( N > MAXN || N <=0 )
  20.            printf("Errore: il numero deve essere compreso tra %d e 0\n",MAXN) ;
  21.    
  22.   } while ( N > MAXN || N <=0 ) ;
  23.  
  24.   /* LEGGI UNA SERIE DI N NUMERI INTERI, MEMORIZZANDOLI IN UN VETTORE */
  25.    printf("Inserisci il vettore di %d elementi\n", N) ;
  26.    for ( i=0; i< N; i++ )
  27.    {
  28.        printf("Elemento %d: ", i+1) ;
  29.        scanf("%d", &vet[i]) ;
  30.    }
  31.    printf("\n") ;
  32.  
  33.   /* STAMPA IL VETTORE DI INTERI */
  34.    printf("Stampa del vettore inserito\n") ;
  35.    for ( i=0; i<N; i++ )
  36.      printf("Elemento %d: %d\n", i+1, vet[i]) ;
  37.    printf("\n") ;
  38.    /* AGGIORNA IL VETTORE "compatto" E CALCOLA IL NUMERO DI OCCORRENZE */
  39.    /* INIZIALMENTE IL VETTORE "compatto" NON CONTIENE NESSUN NUMERO */
  40.    N_compatto = 0 ;
  41.    /* IL CICLO FOR SCANDISCE IL VETTORE "vet1" */
  42.        for(i=0; i< N; i++ )
  43.        {
  44.          /* INIZIALIZZA IL FLAG "trovato". IL FLAG ASSUME I VALORI
  45.          -- "trovato" E’ UGUALE A 0 SE IL VETTORE "compatto" NON CONTIENE
  46.          IL VALORE IN "vet[i]"
  47.          -- "trovato" E’ UGUALE A 1 SE IL VETTORE "compatto" CONTIENE
  48.          IL VALORE IN "vet[i]" */
  49.          trovato=0 ;
  50.          /* PER OGNI ELEMENTO vet1[i] DI vet1, IL CICLO FOR SCANDISCE IL VETTORE
  51.          "compatto" E VERIFICA SE "compatto" CONTIENE IL VALORE IN "vet1[i]"
  52.          LA RICERCA TERMINA QUANDO SI TROVA UNA CELLA "compatto[j]"
  53.          UGUALE A "vet1[i]" O QUANDO SONO STATE CONSIDERATE TUTTE LE CELLE
  54.          DEL VETTORE "compatto" */
  55.          for ( j=0; j< N_compatto && trovato==0; j++ )
  56.          {
  57.            /* SE "compatto" CONTIENE "vet1[i]", AGGIORNA IL FLAG "trovato" */
  58.            if ( compatto[j] == vet[i] )
  59.              trovato = 1 ;
  60.          }
  61.      
  62.         if ( trovato == 0 )
  63.          {
  64.            /* SE "trovato" E’ UGUALE A 0, COPIA NEL VETTORE "compatto" IL
  65.            VALORE IN "vet[i]" */
  66.            compatto[N_compatto] = vet[i] ;
  67.            N_compatto = N_compatto + 1 ;
  68.            /* CALCOLA IL NUMERO DI OCCORRENZE DI "vet[i]" NEL VETTORE "vet".
  69.            IL CICLO FOR SCANDISCE IL VETTORE "vet" E CONTA QUANTE VOLTE
  70.            IL VALORE IN "vet[i]" E’ PRESENTE NEL VETTORE "vet" */
  71.            occorrenze = 0 ;
  72.            for (t=0; t< N; t++ )
  73.            {
  74.              if (vet[t] == vet[i])
  75.                occorrenze = occorrenze + 1 ;
  76.            }
  77.            /* STAMPA DELLE OCCORRENZE */
  78.            printf("Elemento %d: %d, occorrenze %d\n", i+1, vet[i], occorrenze) ;
  79.          }
  80.      }
  81.    exit(0) ;
  82.  }


Ho fatto un pò leggendo in giro e dai manuali. Il problema è collegarlo a un interfaccia grafica e se il tutto è giusto.
ciao grazie

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:02
Giovedì, 22/03/2012
Con il c, è complicato operare su interfacce grafiche "a finestra" tipo word.
Il mio consiglio, è quello di utilizzare un linguaggio di programmazione più moderno.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:43
Giovedì, 22/03/2012
Non ho ancora capito bene cosa c'entri

Word

e se intendi proprio il programma della Microsoft.

E se il tutto è giusto non puoi provarlo tu per primo?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
eVenss (Normal User)
Newbie


Messaggi: 3
Iscritto: 22/03/2012

Segnala al moderatore
Postato alle 19:46
Giovedì, 22/03/2012
word non centra era un esempio da dove incollavo i numeri, non funziona bene per questo chiedo

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:32
Giovedì, 22/03/2012
Ah ecco ... quindi Word non c'entra nulla ...

Per il "non funziona bene" bisogna che ti spieghi meglio. Cosa non funziona? Cosa dovrebbe fare? Cosa succede invece? Hai errori? Quali errori?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
eVenss (Normal User)
Newbie


Messaggi: 3
Iscritto: 22/03/2012

Segnala al moderatore
Postato alle 14:16
Venerdì, 23/03/2012
Testo quotato

Postato originariamente da nessuno:

Ah ecco ... quindi Word non c'entra nulla ...

Per il "non funziona bene" bisogna che ti spieghi meglio. Cosa non funziona? Cosa dovrebbe fare? Cosa succede invece? Hai errori? Quali errori?



volevo collegare quello che ho fatto a qualcosa di grafico che serve a un amico che non capisce ninte di computer e non ci riuscivo mi dava problemi

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:24
Venerdì, 23/03/2012
Testo quotato

Postato originariamente da eVenss:

Testo quotato

Postato originariamente da nessuno:

Ah ecco ... quindi Word non c'entra nulla ...

Per il "non funziona bene" bisogna che ti spieghi meglio. Cosa non funziona? Cosa dovrebbe fare? Cosa succede invece? Hai errori? Quali errori?



volevo collegare quello che ho fatto a qualcosa di grafico che serve a un amico che non capisce ninte di computer e non ci riuscivo mi dava problemi



Sì ... ma gli errori?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote