Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    SOLO PER I MIGLIORI (controllo tipo variabili in ingresso)

    salve gente, sarò molto lieto a chi potra' darmi una mano
    il mio programma, scritto in c++, crea un vettore (inserendo le componenti desiderate da tastiera) ed elimina le componenti consecutive uguali, oppure(caso alternativo) ordina le componenti in senso decrescente. IL programma funziona, ma soltanto con i numeri, DOVREI CERCARE DI FARLO FUNZIONARE ANCHE INSERENDO IN INGRESSO DELLE LETTERE, creando un controllo di tipo variabili in ingresso (ma non so farlo).

    Allego il programma, magari gli date un'occhiata e mi fate sapere cosa ne pensate.
    Sono accettati qualsiasi tipi di consigli o anche rilevazioni di imperfezioni (sono un principiante)

    Largo alle proposte allora...
    Codice PHP:
    #include<iostream>
    #include<stdio.h>
    typedef int vettore[100];
    using namespace std;
    int v[100], w[100];
    int leggi (int dimensione);
    int scrivi(vettore vet,int dimensione);
    int controlla (vettore vetint dimensione);
    int elimina (vettore vetint dimensione);
    int ordina (vettore vetint dimensione);

    int main(){
        
    system("COLOR A1");
    char scelta;
    do{
      
    int dim;
      
    bool k;
      
    system ("cls");
      
    cout<<"Inserire la dimensione del vettore desiderato:";
      
    cin>>dim;
      
    cout<<endl;
      
    leggi(dim);//chiamata al sottoprogramma che permette di inserire le componenti vettoriali
      
    cout<<endl;
      
    cout<<"il vettore inserito e':\n\t";
      
    scrivi(v,dim);//chiamata al sott.prog. che scrive il vettore desiderato dall'utente
      
    cout<<endl;
      
    k=controlla(v,dim);//chiamata al sott.prog. che verifica l'esistenza di elementi doppi
      
    if(k)elimina(v,dim);//chiamata al sott.prog che elimina le componenti doppie
      
    else ordina(v,dim);//non ci sono componenti doppie,chiamata al sott.prog 
                         //che ordina le componenti in ordine decrescente
      
    cout<<"\n\nRipetere operazione?(s/n)";//possibilita' di ripetere l'operazione
      
    cin>>scelta;
    }while(
    scelta=='s');  
      return 
    0;
    }
    // sottoprogramma leggi 
    int leggi (int dimensione){
      for (
    int i=0;i<dimensione;i++){
        
    cout<<"  inserire la componente numero "<<i+1<<" (max 10 cifre):";
        
    cin>>v[i];}}
    //sottoprogramma scrivi  
    int scrivi(vettore vet,int dimensione){
      
    cout<<"( ";
      for(
    int i=0;i<dimensione;i++)cout<<vet[i]<<" ";
      
    cout<<")";}
    //sottoprogramma controlla
    int controlla (vettore vetint dimensione){
      
    int alfa;
      
    alfa=0;
      for(
    int i=0;i<dimensione-1;i++){
        if (
    vet[i]==vet[i+1]){
          
    alfa=1;
          
    cout<<"\n\t- Attenzione, esistono elementi doppi! - \a\n\n";
          break;}}
      return 
    alfa;}
    //sottoprogramma elimina
    int elimina (vettore vetint dimensione){
      
    int p=-1;
      for (
    int i=0;i<dimensione;i++){ 
        if (
    vet[i]==vet[i+1]){
          
    i++;}
        else if (
    vet[i]!=vet[i+1]){
          
    p++;
          
    w[p]=vet[i];
          }} 
      
    cout<<"il vettore privo degli elementi doppi e':\n\n\t";
      
    p++;
      
    scrivi(w,p);}
    //sottoprogramma ordina
    int ordina (vettore vetint dimensione){
      
    int scambio;
      for(
    int i=0;i<dimensione;i++){
        for(
    int j=dimensione;j>i;j--){
          if(
    vet[j-1]<vet[j]){
            
    scambio=vet[j-1];
            
    vet[j-1]=vet[j];
            
    vet[j]=scambio;}}}
            
    cout<<"\n\nil vettore finale V1 ordinato e':\n\t";
      
    scrivi(vet,dimensione);} 

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non ho letto approfonditamente il codice, ma mi sembra che tu usi un vettore di valori numerici interi per l'input ...

    v[100]

    e un uguale vettore

    w[100]

    per il risultato dopo il controllo.

    Per trattare le stringhe, devi quindi usare delle stringhe, magari un vettore di string del C++ e, ovviamente, modificare il codice del controllo opportunamente ...

    P.S. Il titolo che hai scelto, non e' conforme al Regolamento e dovresti cambiarlo ... fra l'altro non ha neanche senso ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    visto che vuoi imparare il c++ sforzati ad usare la programmazione ad oggetti e non quella procedurale.

    // sottoprogramma leggi
    int leggi (int dimensione){
    ...
    usa i commenti per spiegare cosa fa il sottoprogramma non per indicarne il nome.

    prova a modificare il codice inserendo anche le osservazioni di oregon e poi ci risentiamo.

    ciao
    sergio

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310

    Moderazione

    Originariamente inviato da $entauro
    SOLO PER I MIGLIORI (controllo tipo variabili in ingresso)
    Per favore, usa titoli significativi senza aggiungere queste esortazioni o "preselezioni".
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Non ho ben capito cosa devi fare, qualcosa del genre?
    codice:
    /*Funzione che restituisce il corrispettivo numerico*/
    int da_lettere_a_numero(const char *stringa)
    {
      if(!strcmp(stringa, "uno"))return 1;
      else if(!strcmp(stringa, "due")return 2;
      /*Ecc.*/
    }
    printf("Programmazione in C!");
    cout<<"Programmazione in C++!";

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.