Forum >> Principianti >> non so dove mettere mano

Pagina: 1

Sono al primo anno di informatica e non riesco minimamente a capire cosa fare. L'unica cosa che ho capito è cosa devo fare però non riesco a scriverlo su python, premetto che ho seguito dei tutorial ma in confronto a ciò che i si chiede è impossibile.



grazie in anticipo.
Allegati
Ehm ok, capisci però che se stai frequentando un corso di informatica e "non sai dove mettere mano", forse dovresti... non so, la butto lì, frequentare il corso e studiare i testi adottati dal corso (dubito fortemente che "il tutorial di python" sia l'unico testo suggerito in un corso di informatica, no? O se lo è, abbandona il corso e pretendi i soldi indietro).

Tieni conto che il tuo esercizio è *molto* facile, anche per gli standard degli esercizi introduttivi. Se utilizzi una lista per rappresentare la tua struttura, tutto quello che devi fare è qualche operazione con gli indici di lista, e rimuovere man mano gli elementi dalla lista. Puoi provare a scrivere prima un diagramma di flusso, o comunque a scrivere l'algoritmo in Italiano con molta chiarezza... poi non è difficile trasformarlo in codice vero e proprio.


Il cuore di questo esercizio, per semplificare ancora la cosa, è la "somma circolare": ovvero devi sommare due numeri ma il risultato non può superare (per esempio) il 10: se supera il 10 allora torni da capo a 1 e aggiungi la rimanenza. Puoi provare a scrivere prima una funzione "somma_circolare" che fa questa operazione, nella forma:

def somma_circolare(a, b, n):
    pass
la funzione deve essere scritta in modo che per esempio:

somma_circolare(2, 3, 10) -> restituisce 5 (2+3)
somma_circolare(3, 7, 10) -> restituisce 10 (3+7)
somma_circolare(5, 7, 10) -> restituisce 2 (5+7=12: superato il 10, riparti da 1)
Se scrivi questa funzione, vedrai che puoi utilizzarla come funzione ausiliaria per aiutarti con i tuoi calcoli sugli indici di lista nell'esercizio che devi risolvere. Probabilmente a un certo punto ti inciamperai sul fatto che gli indici di lista in python partono da 0 e non da 1, ma se ci fai attenzione è facile compensare. Al limite, dopo un po' di prove te ne accorgi.





(Oh, a proposito: in futuro per cortesia non allegare il file dell'esercizio: fai la piccola fatica di ricopiare il testo nel post, in modo che chi ti legge non debba dover scaricare un file. Gli allegati servono quando il codice è troppo lungo, o per le immagini, insomma quando proprio non se ne può fare a meno)

Capito i corsi si li ho seguiti l'unico problema è che il docente da per scontato troppe cose, se una persone che comincia per la prima volta a progettare non può dare per scontato le basi.
io ho pensato di scrivere un ciclo while dato che si ripete finchè una condizione è vera, ma non so come impostare l'inizio da un che non sia l'uno ma quello dopo il numero che è stato eliminato. una sommatoria circolare non me l'ha spiegata nessuno ce io come faccio a capire come si fa se nessuno me lo spiega?
> il docente da per
scontato troppe cose
Mah forse... questo esercizio però è davvero solo un po' di ragionamento con carta e penna, e sapere gli indici di lista. A un certo punto, *qualcosa* per scontato bisognerà pur dare, non credi? Non è che un corso universitario può rimettersi a spiegare le quattro operazioni (perché si tratta davvero solo di questo, qui).


> un ciclo while
Un ciclo while non è un ragionamento. Non è neppure l'inizio di un ragionamento. Quello di cui hai bisogno è un ragionamento, non un ciclo while.





> una sommatoria
circolare non me l'ha spiegata nessuno
Nessuno ti deve "spiegare" una somma circolare. Devi ragionarci sopra e scrivere la formula. (E a proposito: "somma", non "sommatoria". Se pensi che i termini siano equivalenti... è già un problema, non credi?).





Guarda, mettiamola così. Questa forse è una buona occasione per farti delle domande di base sulla tua preparazione. Se non te le fai adesso, forse non te le farai mai più. Allora, procedi in questo modo:
ISTRUZIONI PER FARE LA SOMMA CIRCOLARE
- spegni il telefonino
- chiedi ai tuoi genitori, fidanzata/o, compagni di stanza, etc di NON disturbarti per due ore
- spegni il computer (stampa questa pagina su un foglio), non ascoltare musica, non tenere televisione o radio accesa
- prendi un quaderno e una matita
- procurati dei numeri della tombola, o anche solo un certo numero di biglietti di carta numerati da 1 a ... quello che vuoi, diciamo una ventina
- metti dei numeri in ordine davanti a te, da sinistra a destra, partendo da 1. Per cominciare, mettine 12 (cioè, vai da 1 a 12, da sinistra a destra: 1, poi 2, poi 3... fino a 12)
- adesso diciamo che vuoi fare la somma "3 + 2". Metti la matita in modo da indicare il numero "3", e poi spostala di una posizione verso destra contando ad alta voce: "UNO!". Poi ancora: "DUE!" e sposti la matita di un'altra posizione verso destra. Adesso guarda dove è finita la matita: è finita sul numero "5", perché effettivamente "3 + 2" fa "5".
- adesso ripeti l'esercizio facendo la somma "2 + 7". Metti la matita sul 2, e poi conta ad alta voce "UNO! DUE! TRE!... SETTE!", spostando ogni volta la matita. Dopo sette spostamenti vedrai che alla fine la matita finisce sul "9" perché "2 + 7" fa "9".
- adesso prova a fare "8 + 6". Metti la matita sull'8, e poi conta: "UNO! DUE! TRE! QUATTRO!" a questo punto la matita è sul 12, vero? Non puoi più andare avanti, giusto? Perché ci sono solo 12 numeri... ok? Quindi tu sposti la matita sull'1 e conti "CINQUE!", e poi vai avanti: sposti la matita a destra e conti "SEI!". Vedi dove è finita la matita? E' finita sul 2 perché "8 + 6" (in una somma circolare con 12 numeri) fa 2.
- adesso prova a fare "7 + 8". Metti la matita sul 7 e conta "UNO!, DUE! eccetera". Quando la matita è arrivata sul 12, rimettila sull'1 continuando a contare. Quando hai contato fino a "OTTO!", controlla dove si è fermata la matita: vedrai che si è fermata sul 3 perché "7 + 8" (in una somma circolare con 12 numeri) fa 3.
- adesso prova con altri periodi: invece di 12 bigliettini, mettine 7, e poi 15, e poi 5, e poi 13... insomma fai degli esperimenti. Per esempio verifica che:

5 + 6 = 11 in una somma circolare di periodo 14;
7 + 9 = 7 in una somma circolare di periodo 9;
2 + 7 = 1 in una somma circolare di periodo 4;
- continua a fare esperimenti con i bigliettini e la matita finché non hai interiorizzato il movimento. Fai almeno una ventina di somme, con diversi periodi (diversi "limiti", chiamali come vuoi).


Adesso scrivi sul quaderno una FORMULA per fare la somma circolare di due addendi, dato il periodo. Un sistema per cui puoi sempre calcolare che
"a" + "b" = ? in una somma circolare di periodo "n"
Non usare python! Non pensare a python! Non usare il computer! Niente telefonino! Niente distrazioni! Solo tu, il tuo quaderno e la tua matita. Nient'altro, assolutamente nient'altro.


Se in due ore non riesci a buttare giù una formula per questo, io sinceramente credo che tu debba farti qualche domanda, a monte del tuo corso di informatica. Se invece ci riesci, allora a quel punto sarà facile convertire questa formula in codice python, e di lì continuare a risolvere il tuo esercizio.






Pagina: 1



Esegui il login per scrivere una risposta.