Programma semplice in C

Sheker
Raga, domani devo consegnare un programma fatto in C al mio professore di informatica

Caricare un vettore e calcolare il valore massimo, il valore minimo e la media

Ora, io non so dove mettermi le mani dato che ha cominciato a spiegare il c martedì scorso e perlopiù il mio libro di informatica è solo sui sistemi.
mi potreste dare una mano??
(so "programmare" in pseudocodifica, ma non so quanto possa essere utile)[/code]

Risposte
codino75
"Sheker":


Ora, io non so dove mettermi le mani


:roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll:

_Tipper
Detto v il vettore, con N componenti, il massimo si calcola così

max=v[0];
for(i=1; i<=N-1; ++i)
{
     if(v[i] >= v[i-1])
          max=v[i];
}

Ovviamente al posto di N devi inserire il numero delle componenti, magari con una #define, o tramite un'allocazione dinami della memoria, faì un po' te, e le variabili max e i devono essere dichiarate. i deve essere intera, max e v come vuoi, ma dello stesso tipo.

Per il minimo si fa uguale, solo con un accorgimento. Per calcolare la media la parte più difficile (nemmeno iù di tanto) è calcolare la somma. Inizializza fuori dal for una variabile somma a zero. Fai un for come il precedente e nel ciclo inserisci l'istruzione somma=somma+v.

eugenio.amitrano
ti scrivo i punti fondamentali di un programma che calcola min, max e madia per un vettore di 100 elementi compresi tra -1000 e +1000

#define N 100 // Nr. elementi del vettore
// intervallo [A,B] del vettore
#define A -1000
#define B +1000
.
.
int Vettore[N]; // Vettore di N elementi
int i; // indice del vettore
int min, max, media; // valori da calcolare
.
.
'' assegnazione casuale valori
for(i = 0; i < N; i++)
   Vettore[i] = A + rand() % (B-A+1);
.
.
'' calcolo
min = B;
max = A;
media = 0;
for(i = 0; i < N; i++)
{
   media += Vettore[i];
   if(Vettore[i] < min) min = Vettore[i];
   if(Vettore[i] > max) max = Vettore[i];
}
media /= N;

eugenio.amitrano
forse per la media e' meglio un float.

eugenio.amitrano
"Tipper":
Detto v il vettore, con N componenti, il massimo si calcola così

max=v[0];
for(i=1; i<=N-1; ++i)
{
     if(v[i] >= v[i-1])
          max=v[i];
}

Ovviamente al posto di N devi inserire il numero delle componenti, magari con una #define, o tramite un'allocazione dinami della memoria, faì un po' te, e le variabili max e i devono essere dichiarate. i deve essere intera, max e v come vuoi, ma dello stesso tipo.

Per il minimo si fa uguale, solo con un accorgimento. Per calcolare la media la parte più difficile (nemmeno iù di tanto) è calcolare la somma. Inizializza fuori dal for una variabile somma a zero. Fai un for come il precedente e nel ciclo inserisci l'istruzione somma=somma+v.


dici la verita'!
mi hai letto nel pensiero prima che io lo pensassi ?

_Tipper
Non a tutti è concesso il dono della telepatia... :-D

Sheker
"eugenio.amitrano":
ti scrivo i punti fondamentali di un programma che calcola min, max e madia per un vettore di 100 elementi compresi tra -1000 e +1000

#define N 100 // Nr. elementi del vettore
// intervallo [A,B] del vettore
#define A -1000
#define B +1000
.
.
int Vettore[N]; // Vettore di N elementi
int i; // indice del vettore
int min, max, media; // valori da calcolare
.
.
'' assegnazione casuale valori
for(i = 0; i < N; i++)
   Vettore[i] = A + rand() % (B-A+1);
.
.
'' calcolo
min = B;
max = A;
media = 0;
for(i = 0; i < N; i++)
{
   media += Vettore[i];
   if(Vettore[i] < min) min = Vettore[i];
   if(Vettore[i] > max) max = Vettore[i];
}
media /= N;



scusa, ma il problema richiede che i valori non siano casuali ma vengano inseriti
scusate la domanda ma è normale che dopo poco più di una settimana di spiegazione ci chieda di fare programmi del genere??

_Tipper
for(i=0; i<N; ++i)
{
   printf("v[%d] = ", i);
   scanf("%d", v+i); /* nel caso che v sia intero */
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.