Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    10

    Creare un sottoprogramma

    Ciao a tutti!
    Un mio amico ha ricevuto dal prof la richiesta di creare un sottoprogramma che non sia quello di richiamo al main, come riportato qui sotto nel codice
    codice:
    #include <iostream>
    #include <cstdlib>
    #include <string.h>
    
    using namespace std;
    
    void sottoprogramma();
    
    void sottoprogramma(){
        
         system("color 0a");
        char msg[]="******************************ALL MADE BY NICOLA********************************";
        for(int k=0;k<strlen(msg);k++)
        {
                cout<<msg[k];
                _sleep(80);
        }
        cout<<"\n\n";
        cout<< "BENVENUTO"<<"\n\n"<<"Questo e' un programma di criptazione e decriptazione di parole, che si avvale";
        cout<<"\n"<<"del codice di cifratura ROT-13.";
        cout<<"\n"<<"Il suddetto programma riesce ad analizzare esclusivamente i 26 caratteri"<<"\n"<<"minuscoli dell' alfabeto inglese.";
        cout<<"\n"<<"Pertanto, qualunque altro simbolo (comprese le lettere maiuscole) non verra'"<<"\n"<<"memorizzato dalla macchina.";
        cout<<" Inoltre, affinche' il programma possa correttamente"<<"\n"<<"elaborare quanto scritto, alla fine della parola da codificare, bisogna inserireil simbolo cancelleto '#' seguito dal tasto INVIO."<<"\n\n";  
        cout<<"\n"<<"esempio: testodiprova#";
        cout<<"\n\n";    
        cout<<"\n\n"<<"inserisca ora la parola da criptare - decriptare:";
        
        
        int i=0,n=0;
        char str[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        char str2[100];
        cin>> str2[i];
    	while(str2[i]!='#'){
    	i++;
    	cin>> str2[i];
    	}
    	i=0;
    	while (i<strlen(str2)){
            if (str2[i] >=97 && str2[i] <= 122){
    	n=(str2[i]-97+13)%26;
    	cout<<str[n];
    	}
    	i++;
    	}
    	cout<<"\n\n";
    system("PAUSE");
    }
    
    int main (){
     sottoprogramma();
    	return 1;
    }
    Potete aiutarci?Noi non riusciamo a capire dove e come potremmo creare un sottoprogramma all'interno di questo programma striminzito...Va bene anke il sottoprogramma più "idiota"...

    Grazie in anticpo, ciauz!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Provate a creare due funzioni ... la prima che accetta una stringa in chiaro e restituisce la stringa criptata e la chiamate cripta

    char *cripta(char *msg);

    e la seconda che fa l'operazione opposta

    char *decripta(char *kmsg);

    Chiamarete le due funzioni dal main.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    10
    Grazie del consiglio Oregon, però il prof non vuole che usciamo fuori traccia, il programma può solo fare quest'operazione che abbiamo descritto qui...

    Dobbiamo creare un sottoprogramma in questo codice...
    Ma quale parte del codice potremmo trasformare in sottoprogramma?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Allora penso di non capire ... devi fare un sottoprogramma del codice che e' contenuto nella funzione che gia' esiste e che si chiama "sottoprogramma" ???
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    10
    Nono...deve creare un sottoprogramma, uno qualunque, utile a questo codice
    Ad esempio se ci fosse un If si potrebbe creare un sottoprogramma per quell'operazione...
    ...Solo ke qui non riusciamo a trovare un'operazione dell'algoritmo che potremmo trasformare in un sottoprogramma...
    ...E' quasi come se il programma fosse un monoblocco non-separabile, un tutt'uno, o è una nostra impressione...

  6. #6
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    mmm

    Non è molto chiaro :master: , se ci fosse un `if' potresti creare un sottoprogramma di quella parte di codice?
    `If' è una condizione come lo è uno `while', quindi potresti fare due sottoprogrammi dei cicli while.
    Cmq guardando la funzione `sottoprogramma' il codice potrebbe essere suddiviso in molte altre funzioni.
    La prima potrebbe essere `stampa_istruzioni' che fa tutto quel lavoro di `cout' iniziali...
    void stampa_istruzioni()
    {
    char msg[]="******************************ALL MADE BY NICOLA********************************";
    for(int k=0;k<strlen(msg);k++)
    {
    cout<<msg[k];
    _sleep(80);
    }
    cout<<"\n\n";
    cout<< "BENVENUTO"<<"\n\n"<<"Questo e' un programma di criptazione e decriptazione di parole, che si avvale";
    cout<<"\n"<<"del codice di cifratura ROT-13.";
    cout<<"\n"<<"Il suddetto programma riesce ad analizzare esclusivamente i 26 caratteri"<<"\n"<<"minuscoli dell' alfabeto inglese.";
    cout<<"\n"<<"Pertanto, qualunque altro simbolo (comprese le lettere maiuscole) non verra'"<<"\n"<<"memorizzato dalla macchina.";
    cout<<" Inoltre, affinche' il programma possa correttamente"<<"\n"<<"elaborare quanto scritto, alla fine della parola da codificare, bisogna inserireil simbolo cancelleto '#' seguito dal tasto INVIO."<<"\n\n";
    cout<<"\n"<<"esempio: testodiprova#";
    cout<<"\n\n";
    }

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

    Moderazione

    Originariamente inviato da Aqua3o
    Creare un sottoprogramma
    Manca sempre il linguaggio nel titolo quando apri nuove discussioni.
    Qui lo aggiungo io, ma ricordati di inserirlo in futuro, come da Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.