Advertisement
samuelo123

appunti ultimo giorno

May 14th, 2019
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. consideriamo per esempio la possibilità di fare una rubrica:
  2. gestire un nome array stringa da trenta, analogamente per il cognome e per il numero di telefono;
  3. ci devono essere delle associazioni per indici:definire questri tre array e poi cercare un contatto attraverso il suo indice;
  4. questo modo di programmare è un modo barbaro di programmare.Sula cache ci stanno i dati per la locazione temporale e spaziale nella memoria. viene fatto apposta
  5. per far si che, anche se non ho maniera di lavorare con la cache, posso accedervi attraverso determinati programmi così da velocizzare rispetto a lavorare con la ram.
  6. i tre array nella rubrica se tutto va bene sono posti consecutivi in memoria, tuttavia per esempio per una stessa persona per accedere a nome()cognome()e numero() non li trovo viciini
  7. perciò il programma è lento. invece creando una struttura dati posso creare array di persone contenenti numeri indirizzi nomi e cognomi. Così facendo rendo più veloce il programma.
  8. possiamo anche creare strutture dati di strutture dati.non c'è la gestione di n array ma la gestione di array all'interno del quale ci sono strutture dati.
  9.  
  10. c'è bisogno di una type def per definire la struttura dati.
  11. typedef struct _individuo
  12. {unisgned short età;
  13. char nome[];
  14. char cognome[];
  15. char telefono[];
  16. char indirizzi[];
  17. } individuo; //questo individuo è proprio un nuovo tipo
  18. typedef individuo* pindividuo;
  19.  
  20. per accedere alla parte di memoria dove nella struttura individuo è contenuto l'età
  21. scrivo nel main e nel printf ciccio.età;
  22. se invece dobbiamo gestire un array dovremmo scrivere ciccio.nome[quale lettera del nome]
  23. comunque attraverso l'operatore punto!
  24. si può anche creare ad esempio la struttura dei numeri complessi:
  25. typedef struct _complex
  26. {float re
  27. float im
  28. } complex;
  29.  
  30. quindi per esempio se volessi definire una funzione che lavora con le strutture dati
  31. dovrò usare una funzione che mi restituisce intanto void inoltre per passare i dati usiamo sempre puntatori
  32.  
  33. c'è un operatore che si chiama puntato con cui possiamo vedere il contenuto di un puntatore ->
  34.  
  35. scriviamo la funzione somma
  36. {
  37. }
  38.  
  39. facciamo adesso la strutttura dati per i poligoni
  40. typedef struct _dot
  41. {float x;
  42. float y;
  43. } dot;
  44. abbiamo defnito il punto
  45. adesso il segmento fatto da due punti gli estremi
  46. typedef struct _segmento
  47. {dot a;
  48. dot b;
  49. }
  50. ora i poligoni, facciamo per un poligono fissoe poi a segmenti variabili
  51. typedef struct _triangolo
  52. {segmento s1;
  53. segmento s2;
  54. segmento s3;
  55. } triangoolo;
  56. però questo tipo di struttura non fa il controllo se effettivamente il poligono è un triangolo cioè se i lati sono contigui.
  57.  
  58. per salvare per esempio la rubrica possiamo salvarla in un file binario poichè la fwrite funziona in modo che sappiamo quanti dati salvare con
  59. sizeof(individuo)*100 in cui 100 sono le persone dentro la rubrica;
  60.  
  61. altro esempio: nel programmino che crea file binari si poteva fare una struttura dove leggiamo sia float che double
  62. perchè c'erano x e y rispettivamente di float e double al posto di creare due array.
  63.  
  64. come i dati lo stesso programma sta in memoria quindi si potrebbero fare puntatori a funzioni.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement