Istituto Tecnico Industriale "Enrico Fermi"

Help On Chat

[Ritorna all'elenco sessioni]

Chat del 21 Febbraio 2019 dalle 15:10:50 alle 15:42:09

Francesco GROSSI
Prof per i metodi di conversioni tra basi, impariamo quelli fatti in classe?
Jaspreet SINGH
se io voglio inserire pippo con fgets il numero di caratteri minimi suono 7??? Poichè(pippo+\0+\n)
Stefano Salvi
Non so perché si è chiusa la chat-....
Jaspreet SINGH
bene
Daniele SCARDOVELLI
prof con funzioni di connessione dati cosa intende?
Stefano Salvi
Scardovelli: "Connessione"? Mon era "richiesta"? Aspetta che controllo.
Daniele SCARDOVELLI
prof è conversione di dati
Lara TANFOGLIO
Intende conversioni tra basi?
Daniele SCARDOVELLI
si
Stefano Salvi
Ah, no, "conversione", da in a stringa di qualeche tipo o da stringa/carattteri di qualche tipo a int.
Per i metodi di conversione numeriche, sono quelli fatti in lanboratorio/classe, ma la base sarà "originale"...
Lorenzo BIGLIARDI
Prof Ma il carattere che dimensione ha e tipo di dato è ?
Lara TANFOGLIO
Quindi per esempio trasformazione da char a intero?
Stefano Salvi
Bigliardi: direi che qui per carattere intendo codice ASCII, che quindi sta in qualunque ipo di intero. Se poi parlo di stringhe, sono array di char.
Jaspreet SINGH
se io voglio inserire pippo con fgets il numero di caratteri minimi suono 7??? Poichè(pippo+\0+\n)
Larissa BERNARDI
Prof io non ho capito cosa significa \0
Stefano Salvi
Tanfoglio: quindi ad esempio leggi da tastiera con getchar un numero scritto in base (....) e convertilo in una variabile int (o cose simili), oppure dato un numero in una variabile int trasformalo in una stringa in base (...) oppure direttamente stampalo.
Singh: esattto (salvo l\'ordine del \'\n\' e \'\0\').
Lara TANFOGLIO
ah ok
Stefano Salvi
Bernardi: \'\0\' è un carattere il cui codice ASCII è 0 (quinndi uno 0, ma sottolineando che va insieme a caratteri ASCII).
Larissa BERNARDI
Ma a cosa serve?
Lorenzo BIGLIARDI
Non ho capito in che senso conversioni
Stefano Salvi
Bernardi: (l\'ho scritto anche più sopra, o almenno nell\'altro pezzo di chat) serve alle funzioni di libreria che trattano le stringhe (ad esempio anche la printf) per capire che una stringa è terminata.
Bigliardi: scrivo sulla tastiera 1000 e la funzione mi ritorna un int che vale 1000 (in una qualche base che ti avrò richiesto - esiste un 1000 in ogni base conosciuta...).
Bigliardi: oppure il contrario, ti do un int e tu tiri fuori o stampi la stringa.
Lorenzo BIGLIARDI
Ok
Lara TANFOGLIO
Però quando facevamo gli esercizi usavamo sempre \'\n\', per esempio do...while(stringa[i]!=\'\n\'), quindi teoricamente non serve a niente il \'\0\' giusto?
Larissa BERNARDI
okk grazie
Lara TANFOGLIO
nel senso serve ma non lo usiamo?
Stefano Salvi
Tanfoglio: dipende da cosa stai facendo. Una RIGA DI TESTO (per definizione) termina con "invio" che si traduce in \'\n\'. Una stringa può contenre più \'\n\' per essere stampata su più righe o non contenerne nessuno. Elasticià ed attenzione al problema! mi raccomando.
Lara TANFOGLIO
Ahhhh okok grazie
Francesco GROSSI
Prof ma se abbiamo una stringa che rappresenta un numero in base 8, come facciamo a convertirlo in base 10?
Stefano Salvi
Grossi: non lo convertirai mai direttamente in 10. Prima lo converti in numero (e basta, in int) e poi converti il numero in base 10. Io poi o ti chiedo una conversione o l\'altra, mai entrambe insieme.
Daniel DEGOBI
buongiorno prof
Stefano Salvi
Degobi: mi trovi per un pelo...
Francesco GROSSI
Allora come si fa a convertire un numero in base 8 in un numero int??
Cristian ROSSINI
Esatto Francesco, anche io nelle conversioni con basi continuo ad avere qualche problema
Stefano Salvi
Grossi: parti dalla prima cifra immessa (quella più a sinistra), e da una variabile int n = 0; per ogni cifra che leggi prima moltiplichi per 8 n, poi sommi l cifra trasformata in numero (ad esempio toglienddo \'0\', nel caso semplice delle basi fino alla 10).
Lara TANFOGLIO
volendo si potrebbe usare il metodo che ci aveva spiegato in classe (quello per la base 2) però cambiando ovviamente l\'operazione per la base che ci serve?
quello in*=2; in+=car .... ovviamente con al posto del due la base che ci serve
Cristian ROSSINI
Ah ok perfetto grazie
Francesco GROSSI
"(ad esempio toglienddo \'0\', nel caso semplice delle basi fino alla 10)."Non ho capito questa parte
Stefano Salvi
Tanfoglio: penso proprio di si. Ricordate che se la base supera la 10, poi i simboli successivi sono lettere (\'a\' per 10, \'b\' per 11 ecc.), qundi non basta semplicemente sottrarre \'0\'.
Lara TANFOGLIO
okok
Stefano Salvi
Grossi: penso di averlo appena detto alla Tanfoglio.
Lara TANFOGLIO
ci può mettere cose semp
lici?*
Stefano Salvi
No, se non non posso dare i 2 e i 3... (diciamo che qualcosa di semplice per evitare i 2 i 3 ed eventualmente anche i 4 ci sarà, ma anche qualcosa di più complicato per giustificare i 10).
Francesco GROSSI
Quindi per trasformare un numero in base n<10 in un numero semplice prendo la prima cifra a sinistra la moltiplico per n poi n*n ...... e poi tolgo \'0\'?
Stefano Salvi
Grossi: ... moltiplico per la base e poi sommo la cifra trasformata in numero (togliendo lo \'0\' ASCII).
Lara TANFOGLIO
Ma se la base supera il numero delle lettere come si fa?
Stefano Salvi
Tanfoglio: diciamo che NON supera il numero delle lettere più le cifre (ma viene una bella base grossa...).
Francesco GROSSI
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ok ho capito
garzie prof
Lara TANFOGLIO
ok :(
Stefano Salvi
Potremmo esserci? Io dovrei cominciare ad andare...
Cristian ROSSINI
Si, grazie prof
Stefano Salvi
Allora buon pomeriggio e in bocca al lupo per domani...

[Ritorna all'elenco sessioni]