Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.67 KB | None | 0 0
  1.  
  2. /**
  3. *
  4. * @author chesi.luca
  5. */
  6.  
  7. #include <iostream>
  8. #include <cstdlib>
  9. #include <ctime>
  10.  
  11. using namespace std;
  12.  
  13. const int N=3, M=3;
  14.  
  15. void leggiMatrice(int matrice[N][M]);
  16. void visualizzaMatrice(int matrice[N][M]);
  17. void diagonalePrincipale(int matrice [N][M]);
  18. void calcolaVisualizzaTrasposta(int m[N][M], int t[M][N]);
  19. void calcolaVisualizzaProdotto(int m1[N][M],int m2[M][N], int prodotto[N][N]);
  20. void randMatrice(int matrice[N][M]);
  21. void visualizzaRandMatrice(int matrice[N][M]);
  22. void sostituzioneValoreMatriciale(int matrice[N][M]);
  23.  
  24. int main(){
  25. //system("COLOR 1F");
  26. srand(time(0));
  27. int matrice[N][M], trasposta[M][N], prodotto[N][N];
  28.  
  29. int ciclo = 1, scelta = 0;
  30.  
  31.  
  32. // s==1 programma ciclico
  33. //
  34. //
  35. while (ciclo == 1)
  36. {
  37.  
  38. cout << "Inserisci:\n0) Per uscire\n1) LETTURA MATRICE\n2) VISUALIZZA MATRICE\n3) VISUALIZZA MATRICE TRASPORTATA";
  39. cout << "\n4) VISUALIZZA PRODOTTO\n5) VISUALIZZA DIAGONALE PRINCIPALE\n6) RAND MATRICE\n7) VISUALIZZA RAND MATRICE";
  40. cout <<"\n8) SOSTITUISCI MATRICE\n\tScelta:";
  41. cin >> scelta;
  42.  
  43. switch (scelta) {
  44.  
  45. case(0): //esco dal programma
  46. cout << "Hai scelto 0, quindi il programma verra' chiuso\n";
  47. ciclo = 0;
  48. system("cls");
  49.  
  50.  
  51. break;
  52.  
  53. case(1): //LETTURA MATRICE
  54. cout << "LETTURA MATRICE\n";
  55.  
  56. leggiMatrice(matrice);
  57.  
  58. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  59. cin >> ciclo;
  60.  
  61. system("cls");
  62.  
  63. break;
  64.  
  65. case(2): //VISUALIZZA MATRICE
  66. cout << "VISUALIZZA MATRICE\n";
  67.  
  68. visualizzaMatrice(matrice);
  69.  
  70.  
  71.  
  72. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  73. cin >> ciclo;
  74.  
  75. system("cls");
  76.  
  77. break;
  78.  
  79.  
  80. case(3): //VISUALIZZA MATRICE TRASPORTATA
  81. cout << "VISUALIZZA MATRICE TRASPORTATA\n";
  82.  
  83. calcolaVisualizzaTrasposta(matrice,trasposta);
  84.  
  85. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  86. cin >> ciclo;
  87.  
  88. system("cls");
  89.  
  90. break;
  91.  
  92.  
  93. case(4): //VISUALIZZA PRODOTTO
  94. cout << "VISUALIZZA PRODOTTO\n";
  95.  
  96. calcolaVisualizzaProdotto(matrice,trasposta,prodotto);
  97.  
  98. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  99. cin >> ciclo;
  100.  
  101. system("cls");
  102.  
  103. break;
  104.  
  105. case(5): //VISUALIZZA DIAGONALE PRINCIPALE
  106. cout << "VISUALIZZA DIAGONALE PRINCIPALE\n";
  107.  
  108. diagonalePrincipale (matrice);
  109.  
  110. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  111. cin >> ciclo;
  112.  
  113. system("cls");
  114.  
  115. break;
  116.  
  117. case(6): //RAND MATRICE
  118. cout << "RAND MATRICE\n";
  119.  
  120. randMatrice(matrice);
  121.  
  122. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  123. cin >> ciclo;
  124.  
  125. system("cls");
  126.  
  127. break;
  128.  
  129.  
  130. case(7): //VISUALIZZA RAND MATRICE
  131. cout << "VISUALIZZA RAND MATRICE\n";
  132.  
  133. visualizzaRandMatrice(matrice);
  134.  
  135. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  136. cin >> ciclo;
  137.  
  138. system("cls");
  139.  
  140. break;
  141.  
  142.  
  143. case(8): //SOSTITUISCI MATRICE
  144. cout << "SOSTITUISCI MATRICE\n";
  145.  
  146. sostituzioneValoreMatriciale(matrice);
  147.  
  148. cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
  149. cin >> ciclo;
  150.  
  151. system("cls");
  152.  
  153. break;
  154.  
  155. }
  156.  
  157. if (ciclo != 1)
  158. {
  159. cout << "\nSicuro di voler davvero uscire?\nInserisci 1 per ripetere il programma ";
  160. cin >> ciclo;
  161. system("cls");
  162. }
  163. }
  164. }
  165.  
  166. void leggiMatrice(int matrice[N][M]){
  167. cout << "Inserisci la matrice " << N << " x " << M << ": " <<endl;
  168. for (int i=0; i<N; i++)
  169. for(int j=0; j<M; j++)
  170. cin >> matrice[i][j];
  171. return;
  172. }
  173.  
  174. void randMatrice(int matrice[N][M]){
  175. for (int i=0; i<N; i++)
  176. {
  177. for(int j=0; j<M; j++)
  178. {
  179. matrice[i][j] = 1+(rand()%100);
  180. }
  181. }
  182. return;
  183. }
  184.  
  185. void visualizzaRandMatrice(int matrice[N][M]){
  186. cout << "La matrice inserita in modo randomico e': " <<endl;
  187. for (int i=0; i<N; i++){
  188. for(int j=0; j<M; j++){
  189. cout << matrice[i][j] << "\t";
  190. }
  191. cout <<endl;
  192. }
  193. return;
  194. }
  195.  
  196. void visualizzaMatrice(int matrice[N][M]){
  197. cout << "La matrice inserita e': " <<endl;
  198. for (int i=0; i<N; i++){
  199. for(int j=0; j<M; j++){
  200. cout << matrice[i][j] << "\t";
  201. }
  202. cout <<endl;
  203. }
  204. return;
  205. }
  206. void diagonalePrincipale (int matrice [N][M])
  207. {
  208.  
  209. for (int i=0;i<N;i++)
  210. {
  211. cout << matrice [i][i] << " ";
  212. }
  213. cout << endl;
  214.  
  215. }
  216. void calcolaVisualizzaTrasposta(int m[N][M], int t[M][N]){
  217. cout << "La matrice trasposta e': " <<endl;
  218. //determina la matrice trasposta
  219. for (int i=0; i<N; i++){
  220. for(int j=0; j<M; j++){
  221. t[j][i]=m[i][j];
  222. }
  223. }
  224. //visualizza la matrice trasposta
  225. for(int i=0; i<M; i++){
  226. for(int j=0; j<N; j++){
  227. cout << t[i][j] << "\t";
  228. }
  229. cout <<endl;
  230. }
  231. return;
  232. }
  233.  
  234. void calcolaVisualizzaProdotto(int m1[N][M],int m2[M][N], int prodotto[N][N]){
  235. int k;
  236. //determina la matrice prodotto
  237. for(int i=0; i<N; i++){ //i: blocca la riga di m1 da moltiplicare m1[i][?]
  238. for(int j=0; j<N; j++){ //j: blocca la colonna di m2 da moltiplicare m2[?][j]
  239. prodotto[i][j] = 0;
  240. for(k=0; k<M; k++){
  241. prodotto[i][j] += m1[i][k] * m2[k][j];
  242. }
  243. }
  244. }
  245. //visualizza la matrice prodotto
  246. cout << "La matrice prodotto delle due e': " <<endl;
  247. for (int i=0; i<N; i++){
  248. for(int j=0; j<N; j++){
  249. cout << prodotto[i][j] << "\t";
  250. }
  251. cout <<endl;
  252. }
  253. return;
  254. }
  255.  
  256. void sostituzioneValoreMatriciale(int matrice[N][M])
  257. {
  258. int numero;
  259. cout << "Inserisci il minimo valore per cui sostituire esso con 100: ";
  260. cin >> numero;
  261. cout << "La nuova matrice coi valori sostituiti e': "<<endl;
  262. for (int i=0; i<N; i++){
  263. for(int j=0; j<M; j++){
  264. if(matrice[i][j] <= numero)
  265. {
  266. cout << matrice[i][j] << "\t";
  267. }else{
  268. matrice[i][j] = 100;
  269. cout << matrice[i][j] << "\t";
  270. }
  271. }
  272. cout <<endl;
  273. }
  274. return;
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement