Chat del 23 Febbraio 2018 dalle 19:02:05 alle 19:46:02
- Stefano Salvi
- passati, non apssati...
- Buona sera a tutti.
- Se hai domande, comincia!
- Dove si sono perdi gli altri?
- Federico DI GIACOMO
- prof non ho capito esattamente che cos\' è un operatore ternario
- Andrea POTITO
- Buonsera
- Riccardo MIRANDOLA
- Buonasera
- Luca TRAZZI
- Buonasera
- Serghej COCCONI
- buona sera
- Riccardo MIRANDOLA
- Prof perché se faccio ad esempio char a[15] gets (a) mi fa stampare anche +di 15 elementi?
- Stefano Salvi
- Di Giacomo: l\' "operatore ternario" è un operatore che, invece ci avere un solo operando (unaroio, come il cambio di segno) o due (come ad esempio la somma), ne ha TRE. L\'operatore ternario è quelloc he assume il valore del secondo o del terzo operando a seconda che il primo operando sia vero o falso. Potremmo descriverlo così: <condizione> ? <operando epr vero> : <operando per falso>.
- Luca TRAZZI
- In che senso vero o falso
- ?
- Serghej COCCONI
- è l\' esempio che ci ha fatto in classe quindi, return(a>b) ? a:b?
- Andrea POTITO
- Ma dopo aver scritto l\'operatore ternario, come facciamo a scrivere l\'azione che deve fare se è vero o quella che deve fare se è falso?
- Stefano Salvi
- Mirandola: la gets non ti richiede il numero di cartteri del vettore passato come parametro, quindi "va sulla fiducia", non essendoci alcun metodo in C per scoprire la dimensione di un vettore dal suo indirizzo. Naturalmente se l\'utente scrive troppi caratteri, fuoriescono dla vettore apssato creando grossi guai. Per questo si suggerisce di utilizzare la fgets.
- Sebastiano GASPARINI
- Buonasera prof, cosa intende per strutture di programmazione?
- Stefano Salvi
- Trazzi:il primo operando viene valutato come condizione, quindi può essere vera o falsa.
- Riccardo MIRANDOLA
- Grazie. Può per favore spiegarmi cosa cambia da char e const Char?
- Stefano Salvi
- Cocconi: si, in classe ho fatto proprio quell\'esempio per l\'operatore ternario.
- Serghej COCCONI
- ok grazie !
- Stefano Salvi
- Potito: l\'operatore ternario è un OPERATORE, quindi ha un VALORE, non fa un\'azione (non è un IF).
- Andrea POTITO
- e a cosa serve allora?
- Stefano Salvi
- Gasparini S: le strutture di programmazione sono l\'IF, il FOR, il WHILE, il DO-WHILE e lo SWITCH-CASE (che dobbiamo ancora fare).
- Sebastiano GASPARINI
- ok grazie mille
- Stefano Salvi
- Mirandola: "const" è un attributo da associare al tipo. In questo caso lo associo a (char *), non a (char) ed indica che i caratteri del vettore NON POSSONO ESSERE MODIFICATI, difatti una stringa tra apici è una COSTANTE...
- Federico DI GIACOMO
- può fare un esempio di funzione con operatore ternario? non ho capito in che contesto andrebbe utilizzato
- Riccardo MIRANDOLA
- Ok, Grazie prof
- Stefano Salvi
- POTITO: posso ad esempio utilizzarlo per assegnare ad una variabile un valore diverso a seconda di una condizione senza usare un IF.
- Luca TRAZZI
- Volevo sapere su cosa potrebbero capitare domande teoriche?
- Andrea POTITO
- Potrebbe fare un esempio?
- Stefano Salvi
- DI Giacomo: l\'operatore ternario, come tutti gli operatori, si usa nelle ESPRESSIONI. Posso usarlo ovunque ci sia un\'epressione.
- Riccardo MIRANDOLA
- Domani chiede anche quel poco che abbiamo fatto oggi sui puntatori o ce lo risparmia?
- Stefano Salvi
- TRAZZI: mi pare da nessuna parte... Ma non ne sono ceerto.
- Serghej COCCONI
- quale può essere una tipologia di esercizio riguardante le funzioni e macro su stringhe e caratteri?
- Filippo BELLANZA
- quindi prof in verifica non ci saranno domande teoriche ma solo esercizi?
-
- Stefano Salvi
- Mirandola: direi che domani ci saranno parametri apssati per riferimento. Non dovrebbero essere una completa novità, già prima di oggi.
- Bellanza (forse): un esempio di uso dell\'operatore ternario protrebbe essere: int a = 3; int b = 4; printf ("Il massimo tra %d e %d è %d\n", a, b, (a>b) ? a : b); - ho usato l\'operatore ternario nel calcolo del quarto parametro della printf.
- Riccardo MIRANDOLA
- Perfetto Grazie
- Stefano Salvi
- Non rispondo a domande sui tipi di esercizio o domnada che farò!
- Serghej COCCONI
- pardon
- Andrea POTITO
- Ero stato io a chiederlo, grazie mille prof
- Dominique DONNICI
- Ah quindi vanno sempre nel printf i parametri dell\'operatore ternario?
- Stefano Salvi
- DONICI: altro esempio: int a = 22; int b= 0; b = (a%2) ? a : -a; - prova a dirmi quanto vale b...
- Dominique DONNICI
- Allora prof se non sparo un razzo,b ha due valori...?
- Stefano Salvi
- DONNICI: NOOOOO b ha sempre un valore. Visto che a%2 vale 0, quindi è falso, prendo ilmterzo operanco che è -a, quindi b varrà -22.
- Dominique DONNICI
- Ah ci siamoooo,per 0 intendo falso e quindi uso il terzo
- Andrea POTITO
- e se lei avesse scritto a%2=0, b sarebbe diventato a?
- Serghej COCCONI
- in teoria si
- Stefano Salvi
- POTITO: Esatto, quidni b sarebbe diventato 22.
- Andrea POTITO
- Ok grazie
- Serghej COCCONI
- vuoto di memoria ,operazioni sulle stringhe
- Dominique DONNICI
- Ci sono ho capito ahah grazie
- Serghej COCCONI
- in che senso,mi ricordo che ne abbiamo trattato in classe
- Stefano Salvi
- Cocconi: operazioni sulle stringhe sono "come le operazioni sui vetori", ma senza sapere la dimensione in anticipo... E tenedo conto che le stringhe sono fatte di caratteri, quindi magari usando dei confronti con caratteri tra \'.
- Cocconi: un esempio è quello di invertire i caratteri di una stringa, oppure di metterla tutta in minuscolo, oppure di contare le aprole, oppure di convertire una stringa numerica nel corrispondente numero intero... Un mondo...
- Andrea POTITO
- potrebbe fare un piccolo esempio di confronto tra stringhe con strcmp? e come faccio a capire quale viene prima in ordine alfabetico?
- Serghej COCCONI
- quindi dobbiamo mettere anche ,se necesari ,dei controlli sia per la lunghezza che per il contenuto?
- Stefano Salvi
- Cocconi: per la lunghezza è sempre necessario, per il contenuto, dipende dalla domanda.
- Serghej COCCONI
- in pratica l\'esercizio affrontato in classe mentre si trattava dell\'argomento ,o erro?
- ok,la lunghezza sempre poi cambia da domanda a domanda la richiesta ,ci sono.
- Stefano Salvi
- Potito: Bah... char s1[]="Abba"; char s2[]="883"; printf("tra %s e %s vengono prima gli %s\n", s1, s2, (strcmp(s1,s2) < 0) ? s1, s2);
- Cocconi: ovviamente... Se stavo spiegnado le stringhe...
- Andrea POTITO
- ok prof, ma se fossero uguali?
- Serghej COCCONI
- ahaha ,ok ok ho capito ,grazie mille!
- Stefano Salvi
- Proviamo a chiudere?
- Serghej COCCONI
- non le rubo altro tempo
- Stefano Salvi
- Per gli altri? Dubbi?
- Andrea POTITO
- No no va bene
- Dominique DONNICI
- Apposto
- Andrea POTITO
- Grazie mille buona cena
- Stefano Salvi
- Ok. Alora buona cena, buon riposo ed in bocca al lupo!
|