Esercizio file c++

alecoli

Membro
8 Marzo 2017
5
0
1
Ragazzi mi serve un aiuto con lo svolgimento di una traccia capitata ad un appello. Purtroppo non sono riuscita a farla e vorrei capire come si sarebbe dovuta svolgere. La traccia è la seguente

Sia dato un file il cui nome è fornito da tastiera contenente una sequenza di valori interi.scrivere un programma modulare e con librerie che:
1) determini le sequenze di elementi uguali più corte e più lunga
2) generi un altro file contente tutti i valori del primo ad accezione delle sequenze di elementi uguali.
spero qualcuno possa aiutarmiBD22D91D-02B9-4BFC-B39F-305632AB8DAF.jpeg
 
Ultima modifica:

kiwi

Membro
23 Giugno 2015
12
0
1
Ciao, ho scritto la funzione di apertura file e poi non so proprio come proseguire per determinare le sequenze uguali. Il professore suggeriva di leggere un elemento, salvarlo e confrontare mano a mano. Non riesco a sviluppare la funzione però
Provo a darti una mano, non ricordo una cippa di c++, quindi prendilo più come pseudocodice


int value = array[0]; //salva il primo valore dell'array
int count = 0; //inizializza il contatore
int countmax = 0; //inizializza il contatore massimo
int countmin = MAX; //inizializza il contatore minimo con un valore pari al massimo possibile(lunghezza dell'array, ad esempio, quello non puoi superarlo)
//cominciamo a ragionare... dovrai controllare tutti i valori, quindi di sicuro c'è una for
for(int i=1;i++;i<lenght){ //lenght è la size dell'array
if(array == value){ //se l'elemento che stai scorrendo è uguale all'ultimo salvato, sei in una sequenza!
count++; //quindi incrementi il contatore
} else { //se non è uguale a quello precedente... la serie è finita
value = array; //quindi prendi il nuovo valore e te lo salvi

//ora valutiamo il contatore fino ad ora
if(count > countmax){ //se il contatore è maggiore della sequenza più lunga presente, lo sostituisce
countmax = count;
}

if(cont > 1 && count < countmin){//se il contatore è minore della sequenza più breve presente, lo sostituisce, consideriamo che deve essere strettamente maggiore di 1, altrimenti non era neanche in una sequenza
countmin = count;
}

count = 0; //resettiamo il contatore, perché la sequenza è terminata
}

}
 

alecoli

Membro
8 Marzo 2017
5
0
1
Provo a darti una mano, non ricordo una cippa di c++, quindi prendilo più come pseudocodice


int value = array[0]; //salva il primo valore dell'array
int count = 0; //inizializza il contatore
int countmax = 0; //inizializza il contatore massimo
int countmin = MAX; //inizializza il contatore minimo con un valore pari al massimo possibile(lunghezza dell'array, ad esempio, quello non puoi superarlo)
//cominciamo a ragionare... dovrai controllare tutti i valori, quindi di sicuro c'è una for
for(int i=1;i++;i<lenght){ //lenght è la size dell'array
if(array == value){ //se l'elemento che stai scorrendo è uguale all'ultimo salvato, sei in una sequenza!
count++; //quindi incrementi il contatore
} else { //se non è uguale a quello precedente... la serie è finita
value = array; //quindi prendi il nuovo valore e te lo salvi

//ora valutiamo il contatore fino ad ora
if(count > countmax){ //se il contatore è maggiore della sequenza più lunga presente, lo sostituisce
countmax = count;
}

if(cont > 1 && count < countmin){//se il contatore è minore della sequenza più breve presente, lo sostituisce, consideriamo che deve essere strettamente maggiore di 1, altrimenti non era neanche in una sequenza
countmin = count;
}

count = 0; //resettiamo il contatore, perché la sequenza è terminata
}

}
Grazie mille, ho solo un dubbio.dopo aver confrontato il primo elemento dell’array con tutti gli altri, quando prendo il nuovo valore con VALUE=array che indice dovrei mettere dell’array?
 

kiwi

Membro
23 Giugno 2015
12
0
1
Grazie mille, ho solo un dubbio.dopo aver confrontato il primo elemento dell’array con tutti gli altri, quando prendo il nuovo valore con VALUE=array che indice dovrei mettere dell’array?
Ah ho capito cosa ho mancato, invece di array avrei dovuto scrivere array (in entrambi i punti in cui ho scritto erroneamente array), il quale avanzerà tra gli elementi dell'array grazie al for(int i=1;i++;i<lenght)
 

alecoli

Membro
8 Marzo 2017
5
0
1
Ah ho capito cosa ho mancato, invece di array avrei dovuto scrivere array (in entrambi i punti in cui ho scritto erroneamente array), il quale avanzerà tra gli elementi dell'array grazie al for(int i=1;i++;i<lenght)
Alla fine ho risolto dichiarando due variabili, i e j con j=i+1, mi sembra funzioni così. Ti ringrazio per l’aiuto
 

duythasma

Membro attivo
31 Gennaio 2023
26
0
1
prostitutki-rostov-na-donu.top
Именно на нашем ресурсе самые обаятельные и привлекательные проститутки Ростов на Дону. Вы запросто сможете познакомиться с любой из них и пригласить на свидание. Вполне естественно, что в конечном итоге встреча закончится бурным сексом. Индивидуалки Ростов на Дону работают по собственным тарифам, с ними легко договориться на час, на два, на целую ночку. Однако самое главное достоинство таких леди заключается в том, что нет никакой необходимости их к чему-то принуждать. Шлюхи Ростов на Дону широко востребованы в наше время, с этим невозможно даже поспорить. Обращайтесь к их интимным услугам и получайте намного больше, чем обыкновенный секс.


Зрелые проститутки Ростов на Дону

<a href="https://prostitutki-rostov-na-donu.top/">
Индивидуалки на дом Ростов на Дону</a>
 

Seguici su Facebook