Chat del 28 Marzo 2019 dalle 19:32:36 alle 20:07:46
- Stefano Salvi
- Scusate il ritardo...
- Lara TANFOGLIO
- Salve
- Cristian ROSSINI
- Buonasera
- Stefano Salvi
- Buonasera a tutti. Posiamo cominciare con le domande.
- Daniele SCARDOVELLI
- Buonasera
- Lara TANFOGLIO
- Prof non è che riuscirebbe a spiegarmi velocemente come funzionano gli struct? Perchè io mancavo quando li ha spiegati e non so se li ho capiti bene
- Stefano Salvi
- Tanfoglio: una struct è un dato che chntiene più valori anche di tipo diverso (a differenza dell\'array che ha più valori dello stesso tipo). I singoli valori di una struct si indicano con un nome. Prima di poter usare una struct (creare una variabile o un array di variabili "struct") occorre descriverla, indicandone un nome e indicando come è composta: i nomi dei vari valori ed il loro tipo. (riassunto più che minimo)
- Martina MONTORIO
- Nell\'esercizio figure piane bisogna creare dei valori double casuali per le lunghezze dei lati. Visto che usando la solita rand()%.. non funziona, come si può fare?
- Lara TANFOGLIO
- ok andrà male
- Cristian ROSSINI
- Anche io l\'argomento struct lo sento ancora molto fresco, forse troppo, non sono ancora riuscito a capirlo bene e a consolidarlo...
- Stefano Salvi
- Montorio: in effetti la solita rand % funziona, se tu hai deciso un numero preciso di decimali. Se ad esempio hai deciso di usare numeri con 2 decimali, dividi il risultato del % per 100.0 ed ottieni numeri con due decimali. Ci puoi lavorare su?
- Martina MONTORIO
- Ok proverò, grazie
- Stefano Salvi
- Forza, non siate pessimisti. Le struct sono una gran stupidata, se ci pensate bene. Le definite come volete ed avete un nuovo tupo "composto" (si dice "strutturato"). Le variabili (o gli elementi di array) di questo tipo si utilizzano chaimandoli con il . seguito dal nome del pezzo. Ad esempio definisco "struct g { int a; float b};" a quel punto posso crearmi una variabile s di tipo struct g -> "struct g s;" e poii posso assegnare due valori ai due membri (si chiamano campi) di s così: "s.a = 5; s.b=12.3".
- Lara TANFOGLIO
- Ok grazie forse ho capito
- il livello di difficoltà dell\'esercizio che ci darà in verifica sarà circa come quello dell\'esempio che ci ha appena fatto vero?
- Stefano Salvi
- Circa come quello delle figure cui vi riferivate prima (che è poi la stessa cosa).
- Lara TANFOGLIO
- ok grazie
- Stefano Salvi
- D\'altronde sulle struct non è che si possano fare grandi voli... Sono quelle e basta... (come gli array, ma più facili...)
- Montorio: visto che non ci sono domande, trniamo ai numeri coi decimali. Se devo produrre un numero casuale tra 1 e 10 con due decimali, produco un numero tra 100 e 1000 e poi lo divido per 100.0 ... pensaci che è facilissimo.
- Daniele SCARDOVELLI
- Prof per i numeri casuali se io ho numeri con la virgola il % non funziona ad esempio se devo fare numeri casuali da 1.05 a 12.52 come posso fare?
- Stefano Salvi
- Scardovelli: generi un numero casuale tra 105 e 1252 e lo dividi per 100.0
- Daniele SCARDOVELLI
- A ok scusi per la domanda ripetuta
- Lara TANFOGLIO
- Cosa intende con funzioni di conversione?
- Stefano Salvi
- Tanfoglio: Convertire una stringa in numero (con basi varie) o convertire un numero in stringa (sempre con basi varie).
- Lara TANFOGLIO
- Ah okok perfetto
- Jaspreet SINGH
- è finita
- Stefano Salvi
- Dai, questa volta cerchiamo di farlo bene. Io ho cercato di non farlo troppo lungo e voi impegnatevi a farlo bene!!!
- Jaspreet SINGH
- ok grazie
- Larissa BERNARDI
- Prof per passare ad esempio la parola "ciao" ad un "elemento"/"oggetto" dello struct devo sempre usare la strcpy?
- Stefano Salvi
- Cos\'è ch è finita, singh? Abbiamo ancora qualche minuto "ufficiale" e se poi avete domande, non scappo.
- Lara TANFOGLIO
- Grazie per la magnanimità, ma forse è un po\' troppo positivo
- Stefano Salvi
- Bernardi: certamente, l\'elemento della struct deve essere una stringa (array di char) e quindi devi per forza usare l\'strcpy.
- Bernardi: naturalmente i tipi devono coincidere... mica puoi copiare una stringa in un int...
- Larissa BERNARDI
- Mentre per passargli un valore/numero basta fare ....=35 (esempio)
- Stefano Salvi
- Bernardi: esattamente, com e nel mio esempio.
- Larissa BERNARDI
- Capito grazie
- Stefano Salvi
- Bernardi: l\'unicom problema è che (come d\'altronde per gli array) non puoi copiare un\'intera struct in un\'altra con un\'istruzione, devi copiarla pezzo per pezzo.
- Larissa BERNARDI
- E quando faccio una struct, i prototipi delle funzioni vanno scritti solo dopo la struct giusto e prima del main giusto?
- Sisi capito
- Stefano Salvi
- Bernardi: il C ha una degola d\'oro: tutto quello che usi deve essere dichiarato PRIMA di usarlo... Una buona regola potrebbe essere dichaiare prima le costanti, poi le struct, poi i prototipi delle funziono, poi le funzioni, partendo con main.
- Larissa BERNARDI
- Oks grazie
- Martina MONTORIO
- Si prof, adesso l\'ho sistemato e ho generato un numero casuale tra 100 e 1250, poi l\'ho diviso per 100
- Stefano Salvi
- Bene bene! Nessun problema allora domani (almeno per questo)!
- Allora, siamo a posto? (e siate positivi, sicuri di voi e calmi!)
- Ok, allora buona cena, buon riposo ed in bocca al lupo.
|