Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.71 KB | None | 0 0
  1. ---
  2. # Casting
  3. Il casting è il cambio temporaneo di tipo. Si reinterpreta il significato di una variabile.
  4.  
  5. - Si può cambiare temporaneamente da una lettera ad un numero (secondo la tabella dei caratteri)
  6. - Si può cambiare uno dei 2 operandi, se entrambi interi, con un float per renderlo frazionario.
  7.  
  8. Esistono 2 tipi di casting: esplicito ed implicito:
  9.  
  10. - Il casting esplicito si fa con le parentesi tonde specificando il tipo
  11. - Il casting implicito lo fa il compilatore quando i tipi di dato non sono compatibili tra loro, ma esiste un processo di conversione.
  12.  
  13. Es di sintassi del casting esplicito:
  14. double a;
  15. int b = 3, c = 5;
  16. a = b/c;
  17. a = (float) b / c; //a risulterà un float
  18. //OPPURE
  19. a = b / (char) c;
  20.  
  21. (Nel primo esempio si casta b da int a float e nel secondo si casta c da int a char)
  22.  
  23. Es di sintassi del casting implicito:
  24. int d = (float) b / c
  25. Il valore del risultato finale sarà un int e una volta calcolato eliminerà la parte frazionaria che era stata calcolata dalla divisione.
  26.  
  27. Tabella dei codisci ASCII (conversione da numero a char):
  28. ![enter image description here](https://cdn.discordapp.com/attachments/444558751488409602/671366991482716160/7AsciiPrnChr.png)
  29.  
  30. ---
  31.  
  32. # Libreria (Cin & Cout)
  33.  
  34. Una libreria è un insieme di funzioni già scritte in passato e pronte per essere utilizzate.
  35. Nel C++ ci sono varie librerie standard. Es:
  36. #include \<iostream>
  37.  
  38. La firma di una funzione seguita da ";" è chiamata anche "Prototipo".
  39.  
  40. Per creare una libreria bisogna aggiungere dei file al progetto. Vengono aggiunti (almeno) 1 file ".cpp" e uno ".h". Il file ".cpp" avrà al suo interno una funzione o un comando scritto da noi. Il file ".h" avrà al suo interno il prototipo per richiamare la funzione del ".cpp". Nel caso in cui entrambi i file abbiano lo stesso nome (ovviamente con l'estensione diversa) saranno collegati tra loro.
  41. All'interno del file ".cpp" dovrà essere incluso il file ".h"(Es: #inlcude "NomeLibreria.h"). Quindi sarà possibile richiamare una determinata funzione del file ".cpp" richiamando la libreria nel nostro file "main" / "origine" scrivendo:
  42. #include "NomeLibreria.h".
  43. Il nome della libreria si scrive tra i doppi apici perché dovrà essere cercato all'interno della cartella del programma.
  44.  
  45. ## Libreria standard
  46.  
  47. Questa gerarchia si chiama std::ios
  48. ![enter image description here](https://cdn.discordapp.com/attachments/444558751488409602/671718934910599173/Schema_informatica.png)
  49. ---
  50.  
  51. # Stringhe
  52.  
  53. Le stringhe non sono un tipo primitivo. Si usa con "string". Serve a contenere più caratteri.
  54.  
  55. Es di sintassi di una stringa:
  56. ``` cpp
  57. #include <string>
  58. #include <iostream>
  59. using namespace std;
  60. int main() {
  61. string Parola = "Qualcosa";
  62. string Parola2 = "AltreParole";
  63. cout << Parola << endl; //stampa la stringa
  64. cout << Parola.length() << endl; //stampa la lunghezza
  65. cout << Parola + Parola2 << endl; //concateni le stringhe
  66. cout << Parola[2] << endl; //stampa la lettera nella 3° cella
  67. /* Per confrontare non si usa l'if, ma il "compare"
  68. (restituisce un intero).
  69. Nell'esempio usiamo l'if per controllare se sono uguali
  70. confrontando lo 0 come risultato. */
  71. if (Parola.compare(Parola2)==0) {
  72. /* controlliamo se le parole sono uguali. Se restituisce
  73. 0 come numero intero le parole sono uguali. Se
  74. restituisce un altro numero corrisponderà al numero delle
  75. lettere diverse tra le stringhe */
  76. }
  77. }
  78. ```
  79. Es di come scrivere una stringa con gli spazi:
  80. ```cpp
  81. /* Fai in modo di richiamare una funzione per stampare ogni volta
  82. il nome, cognome e classe dell'alunno che ha inserito i dati.
  83. #############
  84. Nome e Cognome Alunno
  85. Classe Alunno
  86. ############# */
  87.  
  88. #include <string>
  89. #include <iostream>
  90. using namespace std;
  91. void StampaIntestazione(string x, string y) {
  92. cout << "#############" << endl;
  93. cout << "Alunno: " << x << endl;
  94. cout << "Classe: " << y << endl;
  95. cout << "#############" << endl;
  96. }
  97. //Se non si usa getline allora string considererà lo spazio
  98. //come un cambio di stringa (una stringa diversa)
  99. int main() {
  100. string Nome, Classe;
  101. cout << "Inserisci il tuo nome" << endl;
  102. getline(cin,Nome);
  103. //getline è una funzione all'interno della libreria string.
  104. cout << "inserisci la tua classe" << endl;
  105. getline(cin, Classe);
  106. cout << "Benvenuto" << endl;
  107. StampaIntestazione(Nome, Classe);
  108. }
  109. ```
  110. # Stampa su file (lettura e scrittura)
  111. Es di scrittura su un file:
  112. ``` cpp
  113. //Stampa su il tuo nome su un file.
  114. #include <string>
  115. #include <iostream>
  116. #include <fstream> //libreria necessaria per stampare su file
  117. using namespace std;
  118. int main() {
  119. string Nome = "Vittorio";
  120. //fstream NomeVariabileFile("Nomefile.txt", ios::out);
  121. fstream Testo("Nome.txt", ios::out);
  122. /* Abbiamo aperto un file in modalità scrittura.
  123. ios::out = modalità di scrittura di base. Se il file non
  124. esiste viene creato, se no viene sovrascritto. */
  125. if (Testo.is_open()) {
  126. //NomeVariabileFile.is_open()
  127. Testo << Nome;
  128. }
  129. else {
  130. cout << "Errore di apertura" << endl;
  131. }
  132. //NomeVariabileFile.close();
  133. Testo.close();
  134. /* Si verifica che il file non sia già aperto perché può
  135. essere modificato da un solo programma alla volta. Alla fine
  136. si chiude per poterlo sbloccare. */
  137. }
  138. ```
  139. Es di lettura su un file:
  140. ``` cpp
  141. //Stampa il tuo nome su un file.
  142. #include <string>
  143. #include <iostream>
  144. #include <fstream> //libreria necessaria per stampare su file
  145. using namespace std;
  146. int main() {
  147. string Nome = "Vittorio";
  148. fstream Testo("Nome.txt", ios::out);
  149. /* Abbiamo aperto un file in modalità scrittura.
  150. ios::out = modalità di scrittura di base. Se il file non
  151. esiste viene creato, se no viene sovrascritto. */
  152. if (Testo.is_open()) {
  153. Testo << Nome;
  154. }
  155. else {
  156. cout << "Errore di apertura" << endl;
  157. }
  158. Testo.close();
  159. }
  160. ```
  161. ---
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement