PDA

Visualizza la versione completa : [C] Esercizi con vettori


bad.alex
18-04-2008, 16:44
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 = (2*n)/(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

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

bad.alex
18-04-2008, 16:48
#include <stdio.h>
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????

mlipreri
18-04-2008, 16:54
if (n θ pari)
{
svolgi 1)
}
else
{
svolgi 2)
}

bad.alex
18-04-2008, 17:03
:cry: questo lo so.....ho difficoltΰ ad inizializzare le variabili s1 e s2 nel doppio costrutto. la somma se θ pari .... il prodotto se θ dispari...la media armonica....non so come fare... :bhς: sapresti aiutarmi???

mlipreri
18-04-2008, 17:10
fai un for sul vettore, controlli l'indice, se θ pari fai la somma altrimenti il prodotto....
1)
for (i=0;i<size(vettore);i++)
{
if(i θ pari)
S1=S1+vettore[i]
else
S2=S2*vettore[i]
}
idem per 2) la struttura θ la stessa

bad.alex
18-04-2008, 17:13
il size sarebbe N<=/>=.....di cosa???
non ho capito come :dhς: fare la somma dei numeri aventi indice pari</dispari....

mlipreri
18-04-2008, 17:17
in un vettore o array θ associato un indice ad ogni elemento contenuto...se nel mio array ho 3 elementi, il primo ha indice 0, il secondo indice 1, ecc... te devi controllare l'indice dell'array per vedere se θ pari o dispari, se faccio array[indice] ottengo l'elemento con indice "indice"
si il size θ N, cioθ la dimensione del tuo array

bad.alex
18-04-2008, 17:24
ma se nel testo io devo inserire un numero >=50 il mio size qual θ?
ancora la questione degli indici non mi θ chiara
praticamente come devo svolgere la somma, per esempio....vedendo un caso potrei applicarlo negli altri....spero. se non ti θ disturbo....

bad.alex
18-04-2008, 18:03
per favore...potreste illustrarmi come svolgere il prodotto per la S2 a partire dal ciclo for?

vi ringrazio moltissimo. sono disperato. non riesco a svolgere questo programma e sono due giorni giΰ che perdo senza capirne alcunchθ. :bhς:

bad.alex
19-04-2008, 00:40
nell'esercizio pubblicato precedentemente si richiedeva di svolgere :




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 :
an = 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.
sapreste aiutarmi a correggere gli errori presenti nel programma sottostante, nonchθ a suggerirmi come inizializzare la variabile S2? grazie moltissimo,

alex


else if ( (N%2!=0 ) && (N>=50) ) {
somma=0.0;
p[0]=2 ;
n=1;
for ( n=1; n<=N-1; n++) {
somma = somma + p[n];
n=n+1;
exp=2.0/(n+1);
p[n]=p[n]*exp;
}
S1= N/somma;

Loading