stevemb Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 ci son un paio di esercizi che non so fare e non ne vengo a capo. dunque: 1.scrivere un programma che richieda all utente 2 numeri positivi N e M(con m maggiore o uguale a n) e calcoli la media dei numeri interi appartenenti all intervallo. ad esempio se n=20 e M=26,il programma deve calcolare(21+22+23+24+25)/5. 2.scrivere un programma che carichi 2 vettori,entrambi con n elementi(n costante,simbolica predefinita),e ne faccia la somma in un terzo vettore,anch'esso di n elementi.(e fin qui ci sono).Il programma dovrà inoltre determinare massimo e minimo del vettore v3. 3.scrivere un programma che carichi 3 vettori,tutti di n elementi,nel modo seguente: 1°vett: 01010101010101.... 2°vett: 0,3,-9,27,-81,243 (insomma:potenza di 3,e posizioni pari positive,posizioni dispari negative) 3°vett: 123123123123... come azzo si fanno??? (il problema per me è l'algoritmo da dare ai vettori per fargli fare quelle robe li,per visualizzarli,caricarli e tutto il resto lo so fare;)) thanks Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Autore Segnala Condividi Inviato 20 Gennaio 2010 nessuno che li sappia fare? Link al commento Condividi su altri siti Altre opzioni di condivisione...
m@rco Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 scusa la franchezza, ma l'algoritmo che ti manca è proprio lo scopo dell'esercizio. A imparare un linguaggio di programmazione sono capaci tutti, ogni linguaggio è simile agli altri. Imparare a programmare invece richiede il saper sviluppare algoritmi e questo non lo sanno fare tutti. Detto ciò, se tu devi fare degli esercizi è perchè devi imparare, quindi sinceramente non posso darti la soluzione perchè verrebbe meno lo scopo del tuo sbattere la testa. Non voglio farti la morale, però studia, prova e vedrai che 1. ce la farai 2. ne sarai soddisfatto ma soprattutto imparerai che "programmare" è ben diverso da "usare il computer" Di nuovo, spero tu non te la prenda per queste parole! ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Autore Segnala Condividi Inviato 20 Gennaio 2010 logico,ma capisci anche tu che se io non so proprio dove metterli sti logaritmi non è che ci concluda poi molto,no? Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 Soluzione del primo esercizio: se guardi bene l'esempio il numero 5 è dato da 26-20-1. In più se guardi ancora meglio 21=20+1 22=21+1=20+2 23=22+1=20+3 24=23+1=20+4 25=24+1=20+5 25<26 Io piazzerei un ciclo for da qualche parte Il resto prossimamente. Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Autore Segnala Condividi Inviato 20 Gennaio 2010 Soluzione del primo esercizio: se guardi bene l'esempio il numero 5 è dato da 26-20-1.In più se guardi ancora meglio 21=20+1 22=21+1=20+2 23=22+1=20+3 24=23+1=20+4 25=24+1=20+5 25<26 Io piazzerei un ciclo for da qualche parte Il resto prossimamente. #include <stdio.h> #include <stdlib.h> int media,n1,n2,i; int main () { printf("inserisci il primo numero\n"); scanf("\t%d",&n1); printf("inserisci il secondo numero;dev'essere maggiore o uguale al primo!\n"); scanf("\t%d",&n2); for (i=n1; i<n2; n1++) { printf("\t%d",n1); } } così mi va in loop a somma continuamente +1,anche se supera n2 Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 Perché fai il test su i, mentre aumenti n1. n1 aumenta ma i no, quindi i<n2 sarà sempre vero int i; for (i=1; i<n2-n1-1; i++) printf ("%d\n", n1+i); Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Autore Segnala Condividi Inviato 20 Gennaio 2010 verissimo! adesso ho messo i=n1;n1<n2;n1++ e funziona,adesso l'incognita è la media,provo un po e poi riposto;) grazie mille !!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 Ok allora soluzione del secondo esercizio. Facciamo un esempio: a={0,5,2,3,4,6,1,9,7,8} Come trovi il massimo tra due numeri? Prendi il primo numero e lo confronti col secondo, il maggiore dei due lo confronti col terzo, il maggiore dei due lo confronti col quarto e così via. Quindi 0<5->massimo temporaneo=5 5>2->massimo temporaneo=5 5>4->massimo temporaneo=5 5<6->massimo temporaneo=6 eccetera. Quando confronti il massimo temporaneo con l'ultimo numero cosa ti trovi? E per il minimo come si fa? La cosa bella sarebbe scrivere una sola funzione che calcola massimo e minimo contemporaneamente. Ti sfido Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 20 Gennaio 2010 Autore Segnala Condividi Inviato 20 Gennaio 2010 certo che se ste robe ce le spiegassero a lezione magari non sarebbe una brutta idea:confused: comunque,come si confrontano 2 elementi di un vettore? Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 i vettori sono altro che celle di memoria consecutive. E' come se tu confrontassi due varibili con lo stesso nome di cui cambia solo il penultimo carattere. a[0]==a[1] Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 20 Gennaio 2010 Segnala Condividi Inviato 20 Gennaio 2010 Terzo esercizio time. Ti faccio notare due piccole cose: 0 diviso 5 = 0 con resto di 0 1 diviso 5 = 0 con resto di 1 2 diviso 5 = 0 con resto di 2 3 diviso 5 = 0 con resto di 3 4 diviso 5 = 0 con resto di 4 5 diviso 5 = 1 con resto di 0 6 diviso 5 = 1 con resto di 1 7 diviso 5 = 1 con resto di 2 8 diviso 5 = 1 con resto di 3 9 diviso 5 = 1 con resto di 4 10 diviso 5 = 2 con resto di 0 Nota che nel caso di 5 il resto varia da 0 a 4 e sono un totale di 5 numeri. In oltre - 9= 3*-3 27=- 9*-3 -81= 27*-3 Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 22 Gennaio 2010 Autore Segnala Condividi Inviato 22 Gennaio 2010 #include <stdio.h> #include <stdlib.h> int somman,diff,n1,n2,i,j,somman,n3[100]; float media; int main () { 1; printf("inserisci il primo numero\n"); scanf("\t%d",&n1); printf("inserisci il secondo numero;dev'essere maggiore o uguale al primo!\n"); scanf("\t%d",&n2); if (n2<n1) { printf("errore\triprova!\n"); printf("inserisci il primo numero\n"); scanf("\t%d",&n1); printf("inserisci il secondo numero;dev'essere maggiore o uguale al primo!\n"); scanf("\t%d",&n2); } diff=(n2-n1)-1; for (i=0; i<diff; i++) { for (n1=n1+1;n1<n2; n1++) { printf("\t%d",n1); } for (j=0; j<diff; j++) { n3[j]=n1; somman=n3[j++]+n3[j]; printf("\t\t%d",somman); } } printf("\ni numeri in mezzo e'/sono'"); printf("%d",i); media=somman/i; printf("\n\n\t%f",media); } questo è il nuovo codice,solo che la media la calcola sbagliata Link al commento Condividi su altri siti Altre opzioni di condivisione...
numerone Inviato 22 Gennaio 2010 Segnala Condividi Inviato 22 Gennaio 2010 Scusa per il ritardo. Tu n1 lo aumenti nel primo for, il che significa che se n1 è 3 ed n2 è 6 alla fine del primo for n1sarà n2. In oltre la parola somman=n3[j++]+n3[j]; può essere scomposta in: vedi n3[j] aumenta j di 1 vedi n3[j] (che sarebbe n3[j+1]) somma i due numeri piazza la somma in somma n n3[j+1] non è inzializzato ed ancora nel secondo for non c'è nessun collegamento tra le varie esecuzioni di somman, di conseguenza la somma precedente viene persa. Dio@paradiso:~$ gcc -o Terra World.cpp Link al commento Condividi su altri siti Altre opzioni di condivisione...
stevemb Inviato 23 Gennaio 2010 Autore Segnala Condividi Inviato 23 Gennaio 2010 #include <stdio.h> #include <stdlib.h> int somman,diff,n1,n2,i,j,somman,n3[100],somman1,x,n4[100]; float media; int main () { printf("inserisci il primo numero\n"); scanf("\t%d",&n1); printf("inserisci il secondo numero;dev'essere maggiore o uguale al primo!\n"); scanf("\t%d",&n2); if (n2<n1) { printf("errore\triprova!\n\n"); printf("inserisci il primo numero\n"); scanf("\t%d",&n1); printf("inserisci il secondo numero;dev'essere maggiore o uguale al primo!\n"); scanf("\t%d",&n2); } diff=(n2-n1)-1; for (i=0; i<diff; i++) { for (n1=n1+1;n1<n2; n1++) { printf("%d\t",n1); n3[i]=n1; somman=somman+n3[i]; } } printf("\ni/il numeri dell'intervallo e'/sono'"); printf("%d",i); media=somman/i; printf("\nla media calcolata e'\t%f",media); } il primo programma l'ho fatto Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.