Aiuto con programma da compilare linguaggio C

bad.alex
Ho parecchie difficoltà nello solgere il seguente esercizio, soprattutto nella parte relativa all'inizializzazione delle variabili S1 e S2 ( questione di indici ) e nella parte dell'else. potreste aiutarmi??? è urgente. grazie.


Si dichiarino le variabili S1 e S2 e si immetta da tastiera , verificandone la correttezza , un intero pari N ≥ 50 . Si allochi uno spazio di Memoria sufficiente per contenere un vettore ad N componenti di tipo non intero , e si memorizzino nelle sue componenti i valori dei primi N elementi della successione { an } di termine generale :

a n = $(2n)/ (n!) $ con n = 1 , 2 , 3 , …….

Adoperando un costrutto condizionale a selezione doppia ( if else if) si inizializzino le variabili S1 e S2
rispettivamente con : 1 ) la somma delle componenti del vettore aventi inidice pari e con il prodotto delle componenti aventi indice dispari , se N è pari . 2 ) la media armonica delle componenti e con la somma del triplo degli inversi delle componenti , se N è dispari .


si richiede aiuto urgentemente....è per compito d'informatica....

grazie.

alex disperato :cry:

il mio problema adesso è rivolto all'else per N dispari e per gli indici della if.....come si fa??? :(

Risposte
Gummitch1
"bad.alex":
si richiede aiuto urgentemente....è per compito d'informatica....

grazie.

alex disperato :cry:

Non stai chiedendo che qualcuno faccia i compiti per te, vero? ;) Ti scrivo lo pseudocodice in base alle indicazioni.
"bad.alex":
Esercizio
Si dichiarino le variabili S1 e S2 e si immetta da tastiera , verificandone la correttezza , un intero pari N ≥ 50 .

Cioè con un if controlli se davvero è stato inserito un numero minore di 50 (e possibilmente non negativo), sennò lo fai inserire di nuovo (ossia metti l'inserimento dentro un loop, per esempio un while, dal quale si esce solo se corretto).
"bad.alex":
Si allochi uno spazio di Memoria sufficiente per contenere un vettore ad N componenti di tipo non intero ,
Puntatore e poi malloc, siccome ti si chiede di inserire poi dei float, sarà float*.
"bad.alex":
e si memorizzino nelle sue componenti i valori dei primi N elementi della successione { an } di termine generale :

a n = $(2n)/ (n!) $ con n = 1 , 2 , 3 , …….
tramite un for

"bad.alex":
Adoperando un costrutto condizionale a selezione doppia ( if else if) si inizializzino le variabili S1 e S2
rispettivamente con : 1 ) la somma delle componenti del vettore aventi inidice pari e con il prodotto delle componenti aventi indice dispari , se N è pari . 2 ) la media armonica delle componenti e con la somma del triplo degli inversi delle componenti , se N è dispari .

Con un altro for, if (il contatore è un numero pari) allora assegni a S1 la somma, else assegni a S2 la formuletta (media più prodotto).

P.S. Nel for tieni conto che in C un array di dimensione N ha indici 0...N-1

Ciao,
Gummitch

bad.alex
"Gummitch":
[quote="bad.alex"]si richiede aiuto urgentemente....è per compito d'informatica....

grazie.

alex disperato :cry:

Non stai chiedendo che qualcuno faccia i compiti per te, vero? ;) Ti scrivo lo pseudocodice in base alle indicazioni.
"bad.alex":
Esercizio
Si dichiarino le variabili S1 e S2 e si immetta da tastiera , verificandone la correttezza , un intero pari N ≥ 50 .

Cioè con un if controlli se davvero è stato inserito un numero minore di 50 (e possibilmente non negativo), sennò lo fai inserire di nuovo (ossia metti l'inserimento dentro un loop, per esempio un while, dal quale si esce solo se corretto).
"bad.alex":
Si allochi uno spazio di Memoria sufficiente per contenere un vettore ad N componenti di tipo non intero ,
Puntatore e poi malloc, siccome ti si chiede di inserire poi dei float, sarà float*.
"bad.alex":
e si memorizzino nelle sue componenti i valori dei primi N elementi della successione { an } di termine generale :

a n = $(2n)/ (n!) $ con n = 1 , 2 , 3 , …….
tramite un for

"bad.alex":
Adoperando un costrutto condizionale a selezione doppia ( if else if) si inizializzino le variabili S1 e S2
rispettivamente con : 1 ) la somma delle componenti del vettore aventi inidice pari e con il prodotto delle componenti aventi indice dispari , se N è pari . 2 ) la media armonica delle componenti e con la somma del triplo degli inversi delle componenti , se N è dispari .

Con un altro for, if (il contatore è un numero pari) allora assegni a S1 la somma, else assegni a S2 la formuletta (media più prodotto).

P.S. Nel for tieni conto che in C un array di dimensione N ha indici 0...N-1

Ciao,
Gummitch[/quote]


la prima parte l'ho svolta, è stata facile....il mio problema risiede nell'inizializzazione delle variabili S1 e S2. non saprei come svolgerle....per questo sono disperato...il programma risulta essere svolto per meno della metà. una volta inizializzato il vettore e non le variabili il compito è insufficiente e malgrado tutto ho studiato le lezioni e saprei la teoria...una teoria che non può essere messa in pratica grazie alla mia inettitudine:(
puoi aiutarmi quanto meno a capirne lo svolgimento? ti ringrazio, alex

Gummitch1
"bad.alex":
la prima parte l'ho svolta, è stata facile....il mio problema risiede nell'inizializzazione delle variabili S1 e S2. non saprei come svolgerle....per questo sono disperato...il programma risulta essere svolto per meno della metà. una volta inizializzato il vettore e non le variabili il compito è insufficiente e malgrado tutto ho studiato le lezioni e saprei la teoria...una teoria che non può essere messa in pratica grazie alla mia inettitudine:(
puoi aiutarmi quanto meno a capirne lo svolgimento? ti ringrazio, alex


Io penserei a una cosa del tipo:
for (contatore da 0 a N-1)
if (contatore è un numero pari) /* si fa dividendo per due e controllando il resto */
S1=blabla (somma)
else /* se non è pari allora sarà dispari */
S2=formuletta (media più prodotto ecc)

E' più comprensibile?

No, avevo letto male. Non è così semplice (sempre con dei cicli si fa, solo che serviranno, penso, un po' di variabili d'appoggio). Solo che sto per disconnettere... te lo scrivo poi

bad.alex
"Gummitch":
[quote="bad.alex"]la prima parte l'ho svolta, è stata facile....il mio problema risiede nell'inizializzazione delle variabili S1 e S2. non saprei come svolgerle....per questo sono disperato...il programma risulta essere svolto per meno della metà. una volta inizializzato il vettore e non le variabili il compito è insufficiente e malgrado tutto ho studiato le lezioni e saprei la teoria...una teoria che non può essere messa in pratica grazie alla mia inettitudine:(
puoi aiutarmi quanto meno a capirne lo svolgimento? ti ringrazio, alex


Io penserei a una cosa del tipo:
for (contatore da 0 a N-1)
if (contatore è un numero pari) /* si fa dividendo per due e controllando il resto */
S1=blabla (somma)
else /* se non è pari allora sarà dispari */
S2=formuletta (media più prodotto ecc)

E' più comprensibile?

No, avevo letto male. Non è così semplice (sempre con dei cicli si fa, solo che serviranno, penso, un po' di variabili d'appoggio). Solo che sto per disconnettere... te lo scrivo poi[/quote]

avevo pensato anch'io di usare un ciclo for ....però non so cosa inserirvi dentro:( sono troppo messo male con gli esercizi....sembra che io non abbia fatto un fico secco tutto l'anno...che angoscia! ti chiederò non appena potrai, so che è tanto ma ne sono costretto, un favore: per la S1 e la S2 di spiegarle bene, di illustrarmi passo a passo, se hai già ben capito come va svolto. non saprei metter mano sulla seconda else: media armonica e triplo degli inversi....per me è troppo complicato ma necessito di un aiuto e credimi: siete stati più chiari voi nell'altro esercizio che la prof stessa. grazie mille per l'aiuto che mi stai dando. ti sono debitore. alex

bad.alex
raga...potreste aiutarmi con la seconda parte del programma, relativo all'inizializzazione della variabile s2 e del caso n dispari?

vi ringrazio infinitamente, alex

bad.alex
"bad.alex":
raga...potreste aiutarmi con la seconda parte del programma, relativo all'inizializzazione della variabile s2 e del caso n dispari?

vi ringrazio infinitamente, alex

#include
int main ( void )
{
/* = sezione dichiarativa ………………………………………………………………………………………………………………………………………. */
double *p , S1 , S2 , exp ;
int n , N ;
/* - Sezione esecutiva …………………………………………………………………………………………………………………………………………. */
printf ( " Esecuzione \n” ) ;
do {
printf ( “ Digita l’intero N >= 50 ” ) ;
scanf ( “%d” , &N ) ;
} while ( ( N%2 != 0 ) || ( N < 50 ) ) ;

/* si inizializzano le componenti del vettore …………………………………………………………………………………… */
p [ 0 ] = 2 ;
n = 1 ;
while ( n <= N - 1 ) {
exp = 2.0 / ( n + 1 ) ;
p [ n ] = p [ n - 1 ] * exp ;
n = n + 1 ;
}


e adesso??????

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