Array c++

di il
1 risposte

Array c++

Ciao a tutti mi sto preparando per l'esame la teoria la so ma mi sto "impapocchiando" con la pratica il mio ultimo dubbio riguarda gli array ed in particolare le funzioni,

la traccia dell'esercizio è questa

È necessario scrivere un programma in linguaggio C++ che gestisca i dati di due collezioni fatte di esattamente N caratteri (dove N è una costante fissata, per esempio pari a 5). Il programma deve effettuare le seguenti operazioni attraverso l’utilizzo di un menu di comandi:
• leggere dalla tastiera i valori delle due collezioni
• stampare le collezioni sullo schermo;
• per ciascuna collezione, contare il numero di 'c' seguite dal carattere 'h' e dal carattere 'e'
• stampare sullo schermo i due numeri calcolati al passo precedente
• stampare un messaggio per segnalare quale delle due collezioni contiene il numero maggiore di
sequenze di caratteri 'che'

io ho provato due versioni differenti soltanto che i prof non voglio il riciclo del codice;

adesso posto le due versioni:


#include <iostream>

using namespace std;

const int N = 10;
void inserisciValori(char array[N],char s[N]);
int contaValori(char f[N]);
void stampaValori(char arrayDati[N],char secondo[N]);

int main(){
	
	char arrayDati[N],secondo[N];
	int val,somma;
	inserisciValori(arrayDati,secondo);
	val = contaValori(arrayDati);
	somma=contaValori(secondo);
	cout<<"val"<<":"<<val<<endl;     //stampa momentanea
	cout<<"somma"<<":"<<somma<<endl; //stampa momentanea
	

	return 0;
}

void inserisciValori(char arrayDati[N],char secondo[N]){
	cout<<"inserisci i caratteri all'interno dei due array\n";
	cout<<"caratteri primo array\n";
	for(int i = 0; i<N ; i++){
		cin>>arrayDati[i];
	}
	cout<<"caratteri secondo array\n";
	for(int i = 0; i<N;i++){
		cin>>secondo[N];
	}
}
int contaValori(char f[N]){
	int somma = 0;
	for(int i = 0; i<N ; i++){
		if(f[i] == 'c')&&(f[i+1]==' h')&&(f[i+2]=='e' ){
			somma++;
		}
	}
	return somma;
}


seconda versione: 
[code]

#include <iostream>

using namespace std;

const int N = 10;
void inserisciValori(char arrayDati[N],char secondo[N]);
int contaValori(char arrayDati[N],char secondo[N]);
void stampaValori(char arrayDati[N],char secondo[N]);

int main(){
	
	char arrayDati[N],secondo[N];
	int val,somma;
	inserisciValori(arrayDati,secondo);
	val = contaValori(arrayDati);
	

	return 0;
}

void inserisciValori(char arrayDati[N],char secondo[N]){
	cout<<"inserisci i caratteri all'interno dei due array\n";
	cout<<"caratteri primo array\n";
	for(int i = 0; i<N ; i++){
		cin>>arrayDati[i];
	}
	cout<<"caratteri secondo array\n";
	for(int i = 0; i<N;i++){
		cin>>secondo[N];
	}
}
int contaValori(char arrayDati[N],char secondo[N]){
	int somma = 0;
	int somma2 =0;
	for(int i = 0;i < N ; i++){
		if((arrayDati[i] == 'c')&&(arrayDati[i+1]== 'h')&&(arrayDati[i+2]== 'e')){
			somma++;
		}
		if((secondo[i]=='c')&& (secondo[i+1]=='h')&&(secondo[i+2]=='e')){
			somma2++
		}
	}
	
}


1 Risposte

  • Re: Array c++

    
    void chiediNomeCognome(string messaggio, string& nome, string& cognome)
    {
    	cout <<messaggio <<endl;
    	cin >>nome;
    	cin >>cognome;
    }
    
    
    //Nel main
    string name, surname;
    chiediNomeCognome("Ciao! Inserisci prima il nome e poi il cognome:", name, surname);
    
    E' il primo esempio di procedura che mi e' venuto in mente. Questa procedura chiede il nome e il cognome, e dopo averla eseguita le 2 variabili avranno il valore che hai inserito.
    E' un'esempio piu' articolato di quello che ho fatto nell'altro post.

    P.s. non l'ho neanche compilata, scritta adesso, se ho fatto qualche errore ho fatto una bella figura di
Devi accedere o registrarti per scrivere nel forum
1 risposte