Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 04-04-2004, 20.15.48   #16
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
Non ricordavo il limite degli int, ora funziona tutto alla grande.

Mo sto 7 a scuola non me lo toglie nessuno!!!

Grazie 1000 per il preziosissimo aiuto. (Y)
Di niente, figurati (Y)
Se vuoi magari prendere anche più di sette, prova a postare il codice che vediamo come si può prendere qualche mezzo voto in più!

Ciao
Dav82 non è collegato   Rispondi citando
Vecchio 04-04-2004, 20.20.34   #17
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Eccolo
Quota:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

void main()
{
long a[10];
long tot=1,i,n;

for (i=0;i<10;i++)
{
cout<<"Inserisci un valore: ";
cin>>a[i];
while (a[i]<2)
{
if (a[i]==0)
{
cout<<"Il valore inserito "<<a[i]<<" non è valido."<<endl;
cout<<"Reinserire il valore: ";
cin>>a[i];
}

if (a[i]==1)
{
cout<<"Il valore inserito è: "<<a[i]<<" non è valido."<<endl;
cout<<"Reinserire il valore: ";
cin>>a[i];
}
}

n=a[i];

do {
tot=tot*n;
n--;
} while (n>1);
a[i]=tot;
cout<<"Il risultato è: "<<a[i]<<endl;
tot=1;
}


getch();
}
Downloader non è collegato   Rispondi citando
Vecchio 04-04-2004, 21.04.41   #18
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Qualche piccola cosa che ti direi io se dovessi darti un voto:

0) Dichiara ogni variabile su una riga diversa, il codice è molto più leggibile

1) All'inizio, prima di ogni cosa, farei una print che informa su cosa il programma fa, su quanti input si possono dare etc...

2) Anche i numeri 0 e 1 hanno un fattoriale, poverini! Per definizione si ha 0! = 1; 1! = 1; Per lo zero non ci sono cacchi, devi fare un caso speciale (a meno di fare un while e non un do-while), mentre per il numero 1 il ciclo do-while che hai scritto va benissimo, dà il risultato corretto

3) "Signor Downloader , a cosa le serve un bell'array di 10 elementi che non usa?" (prof says). In sostanza: tu crei un array, e ci piazzi, di volta in volta in posizioni diverse, quello che leggi come input, poi questo input lo riversi in n, e solo quello usi; i valori nell'array non li usi più... tanto vale buttare direttamente l'input in n, senza sprecare memoria per l'array... ok ok, sono rompimenti di balle eh! Ma è una domanda che ti potrebbe essere fatta!


Tu pensa poi ad un ciclo così:
Codice:
tot = 1; //come da inizializzazione

while (n>1){
   tot = tot * n;
   n--;
}
Così all'inizio, qualunque sia l'input, hai tot = 1. Se l'input è 0 oppure 1, non entri nel while e il valore del fattoriale rimane 1, come corretto, altrimenti calcoli il valore del fattoriale con while. Il tutto senza bisogno di controlli per casi speciali. Rimane ovviamente validissimo il cotrollo sull'input che fai all'inizio, per beccare input negativi... (oppure input che ti darebbero valori del fattoriale troppi grandi e non gestibili con un programma semplice di poche righe...)

Oh, tieni presente che io sono uno scassamaroni di primissima categoria

Ah ecco... non so poi se vogliono anche qualche (pallosissimo: il codice è autoesplicativo!) commento nel codice...

Ciao
Dav82 non è collegato   Rispondi citando
Vecchio 04-04-2004, 22.33.57   #19
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Signor Dav82, ho messo un array perchè mi è stato richiesto nel problema.

Sto finendo di scrivere il programma perchè mi ero dimenticato che il num vettoriale è valido solo per i num positivi.
Downloader non è collegato   Rispondi citando
Vecchio 04-04-2004, 22.53.46   #20
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da Downloader
Signor Dav82, ho messo un array perchè mi è stato richiesto nel problema.

Sto finendo di scrivere il programma perchè mi ero dimenticato che il num vettoriale è valido solo per i num positivi.
Allora siamo a posto!
Mh... quindi non è che l'insegnante vuole che scrivi alla fine tutti i numeri con il loro fattoriale di fianco? Mi sembra l'unica utilità di avere degli array.... boh!

Vai e spacca domani
Dav82 non è collegato   Rispondi citando
Vecchio 04-04-2004, 23.50.34   #21
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Non so non ha specificato, poi è stato assente la settimana scorsa.

Ti faccio sapere domani!
Downloader non è collegato   Rispondi citando
Vecchio 05-04-2004, 00.05.09   #22
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
mmm... pero l'unico dubbio che ho è quello dell'1! perchè io non lo considero come un numero da calcolare e dico di sovrascrivere un altro valore al suo posto.

boh
Downloader non è collegato   Rispondi citando
Vecchio 05-04-2004, 00.21.17   #23
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
nel dubbio ne ho fatti 2 tipi.
Downloader non è collegato   Rispondi citando
Vecchio 05-04-2004, 01.01.34   #24
pholcus
Linux Supporter
 
L'avatar di pholcus
 
Registrato: 02-12-2000
Loc.: Monza
Messaggi: 1.987
pholcus promette bene
Ma perche' assegni a n il valore di a[i]?
Mi sembra inutile ( anzi lo e' )
Codice:
cin>>a[i];

do {
	tot=tot*a[i];
	a[i]--;
} while (a[i]>0);
a[i]=tot;
a questo punto togli n e nel for metti i < 10, risparmiando cosi una variabile..

Ciao
pholcus non è collegato   Rispondi citando
Vecchio 05-04-2004, 17.52.46   #25
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Dav allora gle l'ho fatto vedere al prof, ma...



lo voleva in modo diverso!

praticamente voleva che prima popolassi l'array e dopo facessi i controlli senza che quast'ultimi in presenza di numeri particolari mi dicessero di reinserire il numero e i calcoli.

Alla fine un po' + sempliciotto.


X phlocus: hai ragione
Downloader non è collegato   Rispondi citando
Vecchio 05-04-2004, 22.52.36   #26
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Oh vabbè, alla fine cmq era più complicato, non più facile... quindi non ti può dire niente no?
Piuttosto... quanto ti ha dato?
Perchè il programma, a quanto ho capito per il vostro livello (visto che non voleva neppure i controlli ), era un figata!

Ciao
Dav82 non è collegato   Rispondi citando
Vecchio 06-04-2004, 00.31.43   #27
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Non mi ha messo nulla perchè lo voleva fatto in un altro modo, modificato in 30 secondi ora aspetto mercoledi molto impaziente.

Per quanto riguarda i controlli forse mi sono spiegato male.
Intendevo dire che io avevo svolto tutto il programma all'interno di una for, mentre il prof ne voleva 2 di for di cui una per svolgere i calcoli.
I coltrolli ovviamente andavono svolti lo stesso anche se ipoteticamente il numero fosse stato negativo, veniva comunque tenuto nell'array e non riscritto mandando solo a schermo che il numero non era valido.

Insomma piu facile.
Downloader non è collegato   Rispondi citando
Vecchio 06-04-2004, 00.33.31   #28
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Alla fine ho fatto il programma in 3 modi diversi
Downloader non è collegato   Rispondi citando
Vecchio 06-04-2004, 09.21.08   #29
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Ma si, va bene ugualmente, basta che funzioni (almeno a scuola).
Ciò che è importante è che tu abbia capito che lo stesso esercizio può essere svolto in molti modi ma nella tua testa ciò che conta deve essere sempre questo:
"Scrivere meno codice possibile per ottenere il massimo risultato !" (Y)
LoryOne non è collegato   Rispondi citando
Vecchio 06-04-2004, 19.36.47   #30
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Quota:
Originariamente inviato da LoryOne
"Scrivere meno codice possibile per ottenere il massimo risultato !" (Y)
Clap clap clap!

E anche "E' assolutamente inutile scrivere il javadoc di una classe se tanto poi l'unico che usa quella classe sei e sicuramente sarai solo tu".

Cmq ha pienamente ragione LoryOne: tu hai capito come andava fatto, se poi l'insegnante non ha un minimo di elasticità per capire che tanto lo sai fare e quella è solo presentazione beh... fo@@#@$ne (a simbolo uguale corrisponde lettera uguale)

Ciao
Dav82 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Lo Spammangolo [Nait, ce pensi tu?] Sbavi Chiacchiere in libertà 2007 18-01-2008 16.55.09
[C] Ricorsività Downloader Programmazione 9 09-11-2007 17.17.46
Combinazioni di un array paoloGrezzo Programmazione 2 23-06-2007 14.08.20
Numeri cumulati Downloader Programmazione 16 19-05-2004 01.17.56
Funzioni ricorsive GiulioCesare Programmazione 2 08-09-2003 23.40.11

Orario GMT +2. Ora sono le: 15.26.59.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.