Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-02-2004, 23:01   #1
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3973
array di nomi

Ciao!!
Ho da sottoporre un problema che riguarda
gli array (non ho ancora dimistichezza con gli array ,
anche se le cosa stanno migliorando)

Vorrei:
1) creare due array 2 array i cui elementi (massimo 15 o 20)
devono essere dei cognomi (del tipo: Rossi, Della Valle, Pisano, De Roberti ecc)
i quali devono essere scelti ed inseriti dall'utente;

2) verificare quale cognome è il più lungo per ogni array e visualizzarlo a
terminale;

3) quale dei 2 array ha il cognome più lungo e visualizzarlo (ovviamente può
essere anche lo steso di prima)
Quale potrebbe essere il codice?
Io ci sto provando ma non riesco a risolvere il problema
(scusate sono alle prime armi).
Grazie anticipatamente.
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2004, 23:06   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
che linguaggio?

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2004, 23:22   #3
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
in c

const n = 20;
void massimo (char cognomi[])
{
int i, y;
y=0;
for (i=1;i<n;i++)
{
if (strlen(cognomi[i]) > strlen(cognomi[y])
{
y=i;
}
}
return cognomi[y];
}

void carica (char cognomi [])
{
int i;
for (i=0;i<n;i++)
{
printf ("Inserisci %d cognome",&i+1);
fflush (stdin);
gets (cognomi[i]);
}
}

void main ()
{

char cognomi1 [n][20];
char cognomi2 [n][20];
char cognome [2][20];

printf ("Caricamento primo array");
carica (cognomi1);
printf ("Caricamento secondo array");
carica (cognomi2);

cognome[0] = massimo (cognome1);
cognome[1] = massimo (cognome2);

//ocio che se esistono nomi della stessa lunghezza prende il primo e basta

printf ("Massimo primo array %s",cognome[0]);
printf ("Massimo secondo array %s",cognome[1]);

if (strlen(cognome[0]) > (strlen(cognome[1])
{
printf ("cognome di lung sup è %s",cognome[0])
}
else{
if (strlen(cognome[0]) == (strlen (cognome[1])))
{
print ("congomi della stessa lung %s e %s",cognome[0],cognome[1]);
}
else
{
printf ("cognome di lung mag %s", cognome[0]);
}
}

}

}

per il basic basta che lo ritocchi con le sue istruzioni

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 21-02-2004 alle 23:24.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 06:14   #4
Joestar
Member
 
Iscritto dal: Jun 2001
Messaggi: 19
#include <stdio.h>
#include <string.h>

#define SIZE 2 /* questo definisce QUANTI cognomi (di cui ho settato la lunghezza max a 30) puoi immettere per array.
cambialo se ne vuoi di +, ma per i test un valore basso è comodo. */

int main (void)

{
char nomi1[SIZE][30];
char nomi2[SIZE][30];
unsigned int i=0,k=0,h=0;
unsigned int longest1=0,longest2=0,lonpos1=0,lonpos2=0;

for (i=0; i<=SIZE; i++) {
h=i+1;
printf("Inserire %d° cognome per il primo array: ",h);
fgets(nomi1[i],sizeof(nomi1),stdin);
}

printf("I cognomi inseriti nel primo array sono: \n");

do {
for (i=0; i<=strlen(nomi1[k]); i++) {
printf("%c",nomi1[k][i]);
}

k++;
printf("\n");

} while (k<=SIZE);


for (i=0; i<=SIZE; i++) {
if (strlen(nomi1[i])>longest1) {
longest1=strlen(nomi1[i]);
lonpos1=i;
}

}

printf("Il nome + lungo del primo array è: %s",nomi1[lonpos1]);

printf("\n\n\n");

for (i=0; i<=SIZE; i++) {
h=i+1;
printf("Inserire %d° cognome per il secondo array: ",h);
fgets(nomi2[i],sizeof(nomi2),stdin);
}

printf("I cognomi inseriti nel secondo array sono: \n");
k=0;

do {

for (i=0; i<=strlen(nomi2[k]); i++) {
printf("%c",nomi2[k][i]);
}

k++;
printf("\n");

} while (k<=SIZE);

for (i=0; i<=SIZE; i++) {
if (strlen(nomi2[i])>longest2) {
longest2=strlen(nomi2[i]);
lonpos2=i;
}


}

printf("Il nome + lungo del secondo array è: %s",nomi2[lonpos2]);

printf("\n\n\n");

printf("Comparazione tra i 2 array. \n\n");

if (longest1 > longest2) {
printf("Il primo array contiene il cognome + lungo: %s",nomi1[lonpos1]);
}

else
if (longest2 > longest1) {
printf("Il secondo array contiene il cognome + lungo: %s",nomi2[lonpos2]);
}

else {
printf("I 2 array contengono un cognome della medesima lunghezzaa. \n%s\n%s",nomi1[lonpos1],nomi2[lonpos2]);
}

return 0;

}
Joestar è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 06:18   #5
Joestar
Member
 
Iscritto dal: Jun 2001
Messaggi: 19
Ciao,

domani quando sarò + lucido, aggiungerò il caso in cui ci siano + cognomi della stessa lunghezza massima nel medesimo array, in modo che li stampi tutti, indipendentemente da quanti sono.
Era complicato da gestire ed avevo sonno

Altra cosa da fare, abbellire il tutto e raggruppare il raggruppabile in procedure e funzioni.

Spero cmq che tutto ciò serva a darti un'idea generale su un possibile modo di affrontare il problema. Se hai qualche domanda chiedi pure, se sono in grado di rispondere lo farò
Joestar è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 10:45   #6
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
mmm perchè ti devi complicare la vita nella visaulizzazione dei cognomi???

do {
for (i=0; i<=strlen(nomi1[k]); i++) {
printf("%c",nomi1[k][i]);
}

k++;
printf("\n");

} while (k<=SIZE);


ti basta fare

for (i=0;i<SIZE;i++)
{
puts (nomi1[i]);
//oppure usi printf con %s
}

poi ti conveniva come avevo fatto io mettere sotto funzioni così oltre che a essere più leggibile scrivi meno codice e quindi meno probabilità di errore.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 10:47   #7
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
altra cosa che ho visto

(k<=SIZE) questo è sbagliato nei cicli perchè gli array vanno da 0 a n-1

quindi

k<SIZE

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 10:57   #8
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Ciao Lucas72,

ti riporto due link a dei corsi introdutttivi sul C:

http://www.beta.it/beta/ext/corsi/c-intro/index.htm

http://alpha.science.unitn.it/~fiore...ac/indexc.html

__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 11:44   #9
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3973
ops scusate !
mi serve in c++
C'è qualche differenza con quello scritto sopra?
Vi ringrazio
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 12:17   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In teoria va bene...ma dipende sempre come fai tu il C++
Usato oggetti e template della libreria standard ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 20:17   #11
Joestar
Member
 
Iscritto dal: Jun 2001
Messaggi: 19
Quote:
Originariamente inviato da Fenomeno85
altra cosa che ho visto

(k<=SIZE) questo è sbagliato nei cicli perchè gli array vanno da 0 a n-1

quindi

k<SIZE

~§~ Sempre E Solo Lei ~§~
Hai provato il programma prima di dire che è sbagliato ?
Rileggi la tua frase e capirai che non ha senso, in + è corretto così com'è.
Joestar è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 20:47   #12
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da Joestar
Hai provato il programma prima di dire che è sbagliato ?
Rileggi la tua frase e capirai che non ha senso, in + è corretto così com'è.
mmm la cosa non convince scusa se io ho una matrice le righe sono 0 e 1 se definisco size = 2 ... e se lo faccio partire da 0 fino a size fa 0 1 2 ... o no??

----------
0|come
---
1|ciao
----------

si la mia risposta precente non è corretta ma mi riferivo a questo

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2004, 21:08   #13
Joestar
Member
 
Iscritto dal: Jun 2001
Messaggi: 19
Quote:
Originariamente inviato da Fenomeno85
mmm la cosa non convince scusa se io ho una matrice le righe sono 0 e 1 se definisco size = 2 ... e se lo faccio partire da 0 fino a size fa 0 1 2 ... o no??

----------
0|come
---
1|ciao
----------

si la mia risposta precente non è corretta ma mi riferivo a questo

~§~ Sempre E Solo Lei ~§~
Dipende da come è definita questa "matrice".

Nel mio caso ho definito 2 array identici come segue:
nomearray[2][30];
Per come lo visualizzo io mentalmente la prima dimensione definisce il numero massimo di elementi la cui lunghezza massima è 30 (0-29). In questo caso sono 3 (0-2).
Joestar è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 14:35   #14
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da Joestar
In questo caso sono 3 (0-2).
non capisco ma se definisci da 2 come fai ad avere 3??

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 16:07   #15
fpucci
Senior Member
 
Iscritto dal: Jul 2002
Città: Roma
Messaggi: 806
Quote:
Originariamente inviato da Joestar
Dipende da come è definita questa "matrice".

Nel mio caso ho definito 2 array identici come segue:
nomearray[2][30];
Per come lo visualizzo io mentalmente la prima dimensione definisce il numero massimo di elementi la cui lunghezza massima è 30 (0-29). In questo caso sono 3 (0-2).
Se mi è consentito intervenire, vorrei dire che definire:
Codice:
#define SIZE  2
   ...
   char nomi1[SIZE][30];
e poi fare:
Codice:
   ...
   for (i=0; i<=SIZE; i++) { 
      h=i+1; 
      printf ("Inserire %d° cognome per il primo array: ",h); 
      fgets (nomi1[i],sizeof(nomi1),stdin); 
   }
   ...
stai accedendo ad una area di memoria al di fuori del contesto della variabile per cui è definita.
Può anche essere che ti funziona (il programma è di poche righe), ma prima o poi andresti ad accedere ad un area di memoria in cui si trovano altri valori, causando una eccezione.
Se facessi girare su Unix quel programma, anrà quasi sicuramente in crash!
Fidati

Pertanto quello che dice Fenomeno85 è vero.
Se tu definisci un array di dimensione 2, vuol dire che hai due elementi nell'array. E poiché in C gli indici dell'array partono da 0, gli unici indici validi sarebbero 0 e 1.
Quindi accedere all'elemento 2 è una operazione illecita e dannosa.

Ciauz
fpucci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 18:49   #16
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3973
prima di passare al conteggio dei cognomi ho provato
con i numeri (sembra più facile)
Ho scritto ( assemblato pezzi è il termine più corretto, forse)
questo codice in c++

#include <iostream.h>

const int DIM1 = 6;
const int DIM2 = 7;

// prototipi di funzioni
void leggiGruppo(int vettore[], int dimensione);
void leggiMassimo(const int vettore[], int dimensione, int &max);

main()
{
int gruppo1[DIM1], gruppo2[DIM2];
int max1, max2;

//visualizzazione di un messaggio iniziale
cout << endl << "Programma che calcola il massimo tra 2 array " << endl << endl;

//lettura del primo gruppo
cout <<"Inserisci i numeri del primo gruppo: "<<endl;
leggiGruppo(gruppo1, DIM1);

//lettura secondo gruppo
cout << endl<<"Inserisci i numeri del secondo gruppo: "<<endl;
leggiGruppo(gruppo2, DIM2);

//calcolo il massimo e visualizzazione
leggiMassimo(gruppo1, DIM1, max1);
cout << endl <<"Il massimo del primo gruppo e': " <<max1<<endl;

leggiMassimo(gruppo2, DIM2, max2);
cout << endl <<"Il massimo del secondo gruppo e': " <<max2<<endl<<endl;

if(max1>max2)
{
cout<<"il massimo tra i 2 vettori e': " <<max1<<"(nel primo gruppo)"<<endl;
}
else if(max1<max2)
{
cout<<"Il massimo tra i due vettori e'"<<max2<<" (nel secondo gruppo)"<<endl;
}
else if(max1=max2)
{
cout<<"Il massimo dei numeri dei 2 gruppi e' identico"<<endl;
}

system("PAUSE");
return 0;

}
void leggiGruppo(int vettore[], int dimensione)

{
for (int i = 0;i < dimensione; i++)
{
cout<<"inserisci numero: "<< i + 1<<" ";
cin>>vettore[i];
}
}
void leggiMassimo(const int vettore[], int dimensione, int &max)
{
max = 0;
int i;
for(i=0;i<dimensione;i++)
{
if(vettore[i]>max)
{
max= vettore[i];
}
}
}


Il programma, dopo numerosi tentativi ( tra messaggi di errori),
adesso funziona.
quello che mi interessa ora è il simbolo & delle funzioni,
scusatemi sarò di coccio
ma vorrei capire bene questo aspetto teoricamente e praticamente.
Se lascio nel codice sopra il simbolo &(vicino max per intenderci) il risultato (esatto) in consolle per esempio è:

Programma che calcola il massimo tra 2 array

Inserisci i numeri del primo gruppo:
inserisci numero: 1 1
inserisci numero: 2 2
inserisci numero: 3 3
inserisci numero: 4 4
inserisci numero: 5 5
inserisci numero: 6 6

Inserisci i numeri del secondo gruppo:
inserisci numero: 1 1
inserisci numero: 2 2
inserisci numero: 3 3
inserisci numero: 4 4
inserisci numero: 5 5
inserisci numero: 6 6
inserisci numero: 7 7

Il massimo del primo gruppo e': 6

Il massimo del secondo gruppo e': 7

Il massimo tra i due vettori e'7 (nel secondo gruppo)


se ometto il simbolo & abbiamo:

Programma che calcola il massimo tra 2 array

Inserisci i numeri del primo gruppo:
inserisci numero: 1 1
inserisci numero: 2 2
inserisci numero: 3 3
inserisci numero: 4 4
inserisci numero: 5 5
inserisci numero: 6 6

Inserisci i numeri del secondo gruppo:
inserisci numero: 1 1
inserisci numero: 2 2
inserisci numero: 3 3
inserisci numero: 4 4
inserisci numero: 5 5
inserisci numero: 6 6
inserisci numero: 7 7

Il massimo del primo gruppo e': 2293728

Il massimo del secondo gruppo e': 2293592

il massimo tra i 2 vettori e': 2293728(nel primo gruppo)
Premere un tasto per continuare . . .

Ecco!!
cosa succede in questo caso?
Devo capire bene questo punto.

Già che ci sono: se non volessi assegnare una dimensione definita per ogni array, ma far in modo che ne contenga massimo 100 di valori ad esempio come potrei fare?
Praticamente il codice sopra dovrebbe inglobare la caratteristica di quest'altro semplice codice che ho trovato :

//inizializzazioni
#include <iostream.h>

int main(){

// dichiarazione delle variabili
const int TAPPO = 0;
int num, max;

// stampa del titolo
cout << endl;
cout << "Calcolo del massimo" << endl << endl;

cout << "Inserisci una sequenza di numeri interi positivi "
<< "terminata da 0" << endl;

// Leggi il primo numero
cin >> num;
cout << endl;

max = 0;

// finchè (la sequenza non è finita)
while(num != TAPPO){

// Se (l'ultimo numero letto è > del massimo tra i
// numeri già letti)
if (num > max){

// Massimo tra i numeri letti = ultimo numero
// letto;
max = num;

}

// Leggi un altro numero
cin >> num;

} // fine while


// Se (è stato letto almeno un numero)
if (max != TAPPO){

// Stampa il massimo tra i numeri letti
cout << endl << "Il massimo e': " << max << endl << endl;
}

else{

// Stampa il messaggio "Non sono stati introdotti
// numeri"
cout << endl << "Non sono stati introdotti numeri" <<
endl << endl;

}
system("PAUSE");

return 0;
}

Ciao e vi ringrazio ancora per la pazienza.
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 19:25   #17
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
allora il parametro dim è inutile se la dimensione degli array è sempre uguale comunque per renderlo generico va bene, altra cosa, le funzioni le puoi mettere sopra il main così elimini la dichiarazione dei prototipi.
Un accorgimento che farei è quello di ricevere in ritorno dalla funzione i valori massimi.

Nella funzione che trova il valore massimo ti consiglio di inizializzare il valore max con il primo valore dell'array.

Poi non so a cosa ti serve mettere in pausa.


Non ho capito quello che vuoi fare nella seconda parte... ma se vuoi che al massimo leggi 100 persone, la condizione del ciclo la metti < 100

allora siccome utilizzi una variabile che è stata dichiarata in locale alla funzione e non globale, se vuoi modificare il valore contenuto nella variabile devi passare l'indirizzo.
Quindi nella dichiarazione dei parametri formali passi la variabile con & mentre nei parametri attuali devi mettere *.
Altra cosa che ti dico è che se passi gli array cosa che può succedere, nei parametri formali non devi mettere & perchè il nome dell'array indica già di per se un puntatore, mentre nei parametri attuali l'array lo richiami o con *array oppure array[]

Questi sono i cosidetti passaggi di parametri. Ricordati che nella funzione devi utilizzare la variabile come *variabile se non fai errore.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 23-02-2004 alle 19:31.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2004, 19:39   #18
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
per correttezza esistono due tipi di passaggi di parametro:

passaggio per valore

passaggio per indirizzo

Il passaggio per valore significa che passi solo il valore e, i cambiamenti a quellla variabile che vengono fatti non influenzano il valore contenuto nella variabile passata.
Al contrario se utilizzi il passaggio per indirizzo i cambiamenti di valore nella funzione influenzano direttamente la variabile passata perchè vai a modificare il valore della cella di memoria della variabile passata.
Per come passare spero che hai capito come devi fare comunque:

funzione (&variabile_indirizzo, variabile_valore); -> void funzione (tipo *valore, tipo valore);

funzione (array); -> void funzione (tipo array[] oppure tipo *array);

ricordati che è sbagliato passare così:

funzione (&array);

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
Le feste non placano Amazon, anzi: aggio...
Roborock Q10 S5+ a un super prezzo: robo...
Formula sceglie WINDTRE BUSINESS per gar...
EXPO 1.20: AMD migliora il supporto all'...
MacBook Pro con chip M4, 24GB di RAM e 1...
Lefant M330 da 6.000Pa a 139€ o ECOVACS ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v