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...
|