Codice di cesare c++

Pubblicità

ilrePinna

Nuovo Utente
Messaggi
43
Reazioni
0
Punteggio
26
Premetto che so poco e niente della programmazione in c++:
per scuola devo portare un programma che mi permetta di applicare il cifrario di cesare ad una frase qualunque ma come sempre ho problemi..:cav:
Il programma non deve usare string ma solo do while senza comandi troppo complessi per adesso ho fatto questo ma da' problemi nella dichiarazione di mes e cod, poichè devo utilizzare getchar e non mi torna:
Codice:
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <conio.h>
using namespace std;
int main(void)
{

    getchar() mes[q];
    getchar() cod[n];
    int i;
    int chiave;
    cin>>chiave;
    cout<<" - Inserisci chiave: ";
    cin>> q;
    cout<<" - Inserisci testo da criptare con * alla fine: ";
    {
        int i=1;
        do{
            mes[i]=getchar();
            i++;
        cod[i]=mes[i]+chiave;
        if(cod[i]>90)
        cod[i]=cod[i]-26;
        }
        while(mes[i-1]!="*");
    }
    cout<< " - lettera cifrata:  ";
    cout<< n;
    return 0;
}
grazie in anticipo ci possono essere molti errori perchè ho incominciato ad andare a tentoni D:
In function 'int main()':
9 [Error] expected ';' before 'mes'
10 [Error] expected ';' before 'cod'
15 [Error] 'q' was not declared in this scope
20 [Error] 'mes' was not declared in this scope
22 [Error] 'cod' was not declared in this scope
26 [Error] 'mes' was not declared in this scope
29 [Error] 'n' was not declared in this scope
 
Ultima modifica da un moderatore:
Premetto che so poco e niente della programmazione in c++:
per scuola devo portare un programma che mi permetta di applicare il cifrario di cesare ad una frase qualunque ma come sempre ho problemi..:cav:
Il programma non deve usare string ma solo do while senza comandi troppo complessi per adesso ho fatto questo ma da' problemi nella dichiarazione di mes e cod, poichè devo utilizzare getchar e non mi torna:
Codice:
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <conio.h>
using namespace std;
int main(void)
{

    getchar() mes[q];
    getchar() cod[n];
    int i;
    int chiave;
    cin>>chiave;
    cout<<" - Inserisci chiave: ";
    cin>> q;
    cout<<" - Inserisci testo da criptare con * alla fine: ";
    {
        int i=1;
        do{
            mes[i]=getchar();
            i++;
        cod[i]=mes[i]+chiave;
        if(cod[i]>90)
        cod[i]=cod[i]-26;
        }
        while(mes[i-1]!="*");
    }
    cout<< " - lettera cifrata:  ";
    cout<< n;
    return 0;
}
grazie in anticipo ci possono essere molti errori perchè ho incominciato ad andare a tentoni D:
In function 'int main()':
9 [Error] expected ';' before 'mes'
10 [Error] expected ';' before 'cod'
15 [Error] 'q' was not declared in this scope
20 [Error] 'mes' was not declared in this scope
22 [Error] 'cod' was not declared in this scope
26 [Error] 'mes' was not declared in this scope
29 [Error] 'n' was not declared in this scope

@ilrePinna Non so se hai risolto, però, visto che anch'io sono studente e sto imparando C++, non potevo perdere l'opportunità per esercitarmi :);

Codice:
#include <iostream>
#include <string.h>
#define MAX 26
#define MAX2 100

using namespace std;

int main ()
{
    char vettab [MAX]={'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 vfrase [MAX2]={0};
    int i=0,ii=0;
    
    cout<<"inserisci una frase da cifrare: ";
    cin.getline(vfrase, 100);
    
    for (i=0;i<101;i++)
    {
        vfrase[i]=toupper(vfrase[i]);
    }
    
    for (i=0;i<101;i++)
    {
        ii=-1;
        do
        {
            ii++;    
        } while (vfrase[i]!=vettab[ii]);
        
        if (ii<23)    cout<<vettab[ii+3];
        else switch (ii)
                    {
                        case 23: cout<<"A"; break;
                        case 24: cout<<"B"; break;
                        case 25: cout<<"C"; break;
                    }

    }
    return 0;
}

Tom's Post.webp
 
Pubblicità
Pubblicità
Indietro
Top