Topic: iterare al contrario  (Letto 3151 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #15 il: Luglio 27, 2013, 08:50 »
beh magari per  quelle precedenti ma per questo ho fatto il possibile :p
« Ultima modifica: Luglio 27, 2013, 10:37 da ivelios75 »

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #16 il: Luglio 27, 2013, 11:08 »
un problemino del cavolo 3 giorni..

Non è del cavolo se ci vuole quel tempo, solo che forse il problemino non è dove credi.

Cioè, lo scopo degli esercizi non è quello di finirli prima possibile vada come vada basta che in qualche modo funzionino, e una volta fatti vuol dire che si è imparato.

Lo scopo è far ragionare su come usare "gli attrezzi" per arrivare ad un certo risultato, e far capire quali attrezzi si hanno a disposizione.

Se un esercizio non si riesce a risolvere, probabilmente si è saltato o non si è compreso un concetto basilare precedente (anche se gli esercizi precedenti si sono in "qualche modo" risolti).

Il concetto di cui parlo non è ovviamente l'imparare a memoria una definizione, ma farsi un proprio schema mentale di cosa questa definizione significa e in quali casi è applicabile.

Ad esempio bisogna sempre avere chiaro a cosa si riferiscono le variabili (numeri interi? numeri float? stringhe? liste? se liste, liste di cosa? di numeri? di stringhe?), i loro nomi dovrebbero anche far capire a cosa si riferiscono (ad esempio parola per riferirsi ad una stringa con una parola, riga o linea per riferirsi ad una stringa letta da un file, carattere per riferirsi ad un singolo carattere di una stringa). Bisogna avere chiaro quali operazioni si possono effettuare con i vari tipi di dati e come si convertono da un tipo all'altro. Inoltre deve essere chiaro anche l'ordine di esecuzione delle istruzioni, nel senso che soprattutto all'inizio è importante fare finta di essere il computer e di dover eseguire il codice scritto, se i risultati ottenuti dalla propria simulazione e quelli forniti dal computer sono diversi vi è qualcosa di sbagliato nella propria simulazione, e allora si devono testare una per una le varie istruzioni, vedere se le variabili si riferiscono ai dati giusti ecc.

Confusione può nascere anche non comprendendo bene la differenza tra una stringa contenente caratteri numerici e un numero intero:
[codice]print("1234")    # ---> 1234  stampa una stringa
print(1234)      #---> 1234  stampa un numero intero
[/codice]In effetti negli esercizi in cui si parla di "stringa di bit" sarebbe meglio parlare di rappresentazione binaria sotto forma di stringa... non esiste una stringa di bit.

Detto questo, esempi specifici per chiarire un singolo dubbio non credo si neghino mai, ma vedere come si sarebbe dovuto/potuto risolvere l'esercizio "solo" per poter passare al successivo non ha senso.

« Ultima modifica: Luglio 27, 2013, 11:18 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #17 il: Luglio 27, 2013, 12:57 »
un problemino del cavolo 3 giorni..

Non è del cavolo se ci vuole quel tempo, solo che forse il problemino non è dove credi.

Cioè, lo scopo degli esercizi non è quello di finirli prima possibile vada come vada basta che in qualche modo funzionino, e una volta fatti vuol dire che si è imparato.

Lo scopo è far ragionare su come usare "gli attrezzi" per arrivare ad un certo risultato, e far capire quali attrezzi si hanno a disposizione.

Se un esercizio non si riesce a risolvere, probabilmente si è saltato o non si è compreso un concetto basilare precedente (anche se gli esercizi precedenti si sono in "qualche modo" risolti).

Il concetto di cui parlo non è ovviamente l'imparare a memoria una definizione, ma farsi un proprio schema mentale di cosa questa definizione significa e in quali casi è applicabile.

Ad esempio bisogna sempre avere chiaro a cosa si riferiscono le variabili (numeri interi? numeri float? stringhe? liste? se liste, liste di cosa? di numeri? di stringhe?), i loro nomi dovrebbero anche far capire a cosa si riferiscono (ad esempio parola per riferirsi ad una stringa con una parola, riga o linea per riferirsi ad una stringa letta da un file, carattere per riferirsi ad un singolo carattere di una stringa). Bisogna avere chiaro quali operazioni si possono effettuare con i vari tipi di dati e come si convertono da un tipo all'altro. Inoltre deve essere chiaro anche l'ordine di esecuzione delle istruzioni, nel senso che soprattutto all'inizio è importante fare finta di essere il computer e di dover eseguire il codice scritto, se i risultati ottenuti dalla propria simulazione e quelli forniti dal computer sono diversi vi è qualcosa di sbagliato nella propria simulazione, e allora si devono testare una per una le varie istruzioni, vedere se le variabili si riferiscono ai dati giusti ecc.

Confusione può nascere anche non comprendendo bene la differenza tra una stringa contenente caratteri numerici e un numero intero:
[codice]print("1234")    # ---> 1234  stampa una stringa
print(1234)      #---> 1234  stampa un numero intero
[/codice]In effetti negli esercizi in cui si parla di "stringa di bit" sarebbe meglio parlare di rappresentazione binaria sotto forma di stringa... non esiste una stringa di bit.

Detto questo, esempi specifici per chiarire un singolo dubbio non credo si neghino mai, ma vedere come si sarebbe dovuto/potuto risolvere l'esercizio "solo" per poter passare al successivo non ha senso.







Hai ragione :) , penso di aver capito l'errore,Claudio mi fai proprio venire la voglia di studiare  :angel:.
Purtroppo anche seguendo il libro non capisco come fare... seguendo anche l'esempio che trasforma i numeri in decimale a binario non ho idea di come si faccia, ho provato a usare il while ma senza risultati.
« Ultima modifica: Luglio 27, 2013, 14:47 da ivelios75 »

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #18 il: Luglio 27, 2013, 15:21 »
Per la soluzione sarebbe bastato leggere il Giornale

Se invece il dubbio riguarda l'algoritmo in generale, indipendentemente dal linguaggio, se ne può parlare.
« Ultima modifica: Novembre 20, 2013, 18:54 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #19 il: Luglio 27, 2013, 15:34 »
Nel algoritmo di quello nel libro  esce in binario e mettere rovesciati i numeri e giusto benchè in binario si legge da destra a sinistra , in ottale si legge da sinistra a destra, nel libro in quell esempio non dice nulla per capovolgere i numeri.

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #20 il: Luglio 27, 2013, 15:46 »
I valori rappresentati in qualsiasi base hanno sempre le unità a destra e le cifre più significative a sinistra  ;)

In ogni caso, quando le singole cifre sono contenute in una sequenza (come una stringa o una lista), la sequenza si può capovolgere in vari modi, ma ancora meglio può già essere costruita nell'ordine voluto (aggiungendo le cifre una alla volta all'inizio o alla fine a seconda di quello che serve).

Nel caso della conversione di base tramite resto della divisione le cifre vanno aggiunte sempre all'inizio perché sono via via sempre più significative (cioè rappresentano valori sempre più grandi rispetto alle unità che stanno a destra).

Che poi, anche questo fa confusione all'inizio, è una conversione per modo di dire, in realtà non si converte niente, si rappresenta un valore in una certa base tramite una stringa di caratteri. Il procedimento è identico anche se lo volessi rappresentare (con una stringa) in decimale, semplicemente dividi per dieci:

Voglio rappresentare in decimale (base dieci) il valore centoventisette:
Divido per dieci, il resto sono le unità  --> 7
Divido ancora per dieci, il resto sono le decine --> 2
Divido ancora per dieci, il resto sono le centinaia --> 1
Non c'e' più niente da dividere, procedimento terminato.
I simboli 1 2 7 messi in fila rappresentano il mio valore centoventisette espresso in base dieci.

Stessa identica cosa per tutte le altre basi.



« Ultima modifica: Luglio 27, 2013, 16:40 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #21 il: Luglio 27, 2013, 16:54 »
Tra poco sclero!!!!!!!
Allora il for non va, Il while non va,l operatore per invertire le stringhe non va.

NON VA NULLA!

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #22 il: Luglio 27, 2013, 17:01 »
Se non va nulla significa che il modello mentale che hai del codice che hai scritto, cioè quello che credi debba fare, non corrisponde al funzionamento reale del linguaggio. Pertanto non resta che indagare riga per riga cosa fa esattamente il linguaggio.

Non è il computer a dover fare quello che vuoi, ma sei tu a doverglielo "spiegare" nel modo a lui comprensibile.

Quindi devi capire cosa significano per lui le istruzioni che gli dai, in modo da potergliele scrivere nel modo corretto.
« Ultima modifica: Luglio 27, 2013, 17:07 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #23 il: Luglio 27, 2013, 17:23 »
Modello mentale o no , non funziona nulla.
Poi leggo esempi su internet e non mi funziona nemmeno quello, ma visto che ho cercato dappertutto non riesco ad arrivarci non mi potete dare degli "indizi" in piu?

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #24 il: Luglio 27, 2013, 17:35 »
Modello mentale o no , non funziona nulla.



Citazione
non mi potete dare degli "indizi" in piu?



Per quanto riguarda quello che non funziona nel tuo codice sto accendendo la mia:

ma non ha mai funzionato molto bene, anzi... come dicono in giappone: "na fetenzìa"
Se potessi darci una mano forse faremmo prima.
« Ultima modifica: Novembre 20, 2013, 18:54 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #25 il: Luglio 27, 2013, 18:45 »
Non so che altro chiedere tanto piu di qualche risposta  filosofica non mi vengono date, non so perchè giusto a me non aiutate.

 E voi risponderete: "per farti ragionare"

Sto ore attaccato al pc come un mongoloide e non riesco a fare nulla magari con qualche risposta inerente al problema non le classiche risposte "rileggiti bene il libro","vai su internet","ragionaci" che ho gia provato,mi sarebbero di aiuto.

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: iterare al contrario
« Risposta #26 il: Luglio 27, 2013, 19:00 »
Non so che altro chiedere tanto piu di qualche risposta  filosofica non mi vengono date, non so perchè giusto a me non aiutate.

Allora, io sto provando veramente a vedere il tuo codice, sto prendendo a calci e pugni la sfera per riuscire a vederci qualcosa, ma il codice continua ad apparire sfuocato e fluttuante, deve essere il solito maledetto modulatore di Kazinsky.

Quindi se lo potessi postare tu il codice, quello che non va niente, e *solo di quello* discutiamo, come dicevo, faremmo prima  ;)
« Ultima modifica: Luglio 28, 2013, 11:33 da Claudio_F »

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #27 il: Luglio 27, 2013, 19:14 »
Le ho provate tutte questo è quello base:
[codice]decimale=int(input("Inserisci un numero decimale da convertire in base 8: "))
while decimale>0:
    numero=decimale%8
    decimale=decimale//8
    print(numero)
   [/codice]

Offline micio

  • python habilis
  • **
  • Post: 73
  • Punti reputazione: 0
    • Mostra profilo
Re: iterare al contrario
« Risposta #28 il: Luglio 27, 2013, 19:34 »
non mi potete dare degli "indizi" in piu?
Eccoti le istruzioni da eseguire:
1. spegni il computer;
2. prendi carta e penna;
3. scrivi il numero che intendi convertire;
4. fai tutti i passaggi con carta e penna;
5. controlla di aver ottenuto il risultato corretto;
6. accendi il computer;
7. scrivi in python i vari passaggi che hai fatto a mano.

PS: non è uno scherzo. I passaggi da 3 a 5 servono a crearti il modello mentale dell'algoritmo da eseguire.

Offline ivelios75

  • python neanderthalensis
  • ****
  • Post: 268
  • Punti reputazione: -3
    • Mostra profilo
Re: iterare al contrario
« Risposta #29 il: Luglio 27, 2013, 19:42 »
Gia provato questa mattina senza risultati  :eyeroll: