Guest User

Untitled

a guest
May 20th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iostream>
  4. #define R 100
  5. #define C 100
  6. #define V 100
  7.  
  8. using namespace std;
  9.  
  10. typedef double elem;
  11. typedef int matrice[R][C];
  12. typedef int vettore[V];
  13.  
  14. void carica_matrice( matrice mat, int &r, int &c);
  15. void stampa_matrice (matrice mat, int r, int c);
  16. void ricerca_min (matrice mat, int r, int c);
  17. void ricerca_max (matrice mat, int r, int c);
  18. void ricerca_min_rig( matrice mat, vettore vet, int r, int c);
  19. void ricerca_max_rig ( matrice mat, vettore vet, int r, int c);
  20. void ricerca_min_col (matrice mat, vettore vet, int r, int c);
  21. void ricerca_max_col ( matrice mat, vettore vet, int r, int c);
  22. void diagonale_maggiore ( matrice mat, vettore vet, int r, int c);
  23. void diagonale_minore ( matrice mat, vettore vet, int r, int c);
  24. void massimo_matrice( matrice mat, int r, int c, int posrig, int poscol);//da le coordinate dela posizione in cui si trova l'elemento minore nella matrice
  25. void scrittura_mat_infile ( matrice mat, int r, int c);
  26.  
  27. int main ()
  28. {
  29. matrice mat1;
  30. vettore vet1;
  31. int rig;
  32. int col;
  33. int posrig1;
  34. int poscol1;
  35.  
  36.  
  37. carica_matrice( mat1, rig, col);
  38. stampa_matrice ( mat1, rig, col);
  39. ricerca_min (mat1, rig, col);
  40. ricerca_max (mat1, rig, col);
  41. ricerca_min_rig (mat1, vet1, rig, col);
  42. ricerca_max_rig (mat1, vet1, rig, col);
  43. ricerca_min_col (mat1, vet1, rig, col);
  44. ricerca_max_col (mat1, vet1, rig, col);
  45. diagonale_maggiore (mat1, vet1, rig, col);
  46. diagonale_minore (mat1, vet1, rig, col);
  47. massimo_matrice (mat1, rig, col, posrig1, poscol1);
  48. scrittura_mat_infile (mat1, rig, col);
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. cout<<endl;
  58. system("pause");
  59. }
  60.  
  61. void carica_matrice( matrice mat, int &r, int &c)
  62. {
  63. cout<<"inserisci numero righe : ";
  64. cin>>r;
  65. cout<<"inserisci numero colonne : ";
  66. cin>>c;
  67. for (int i=0;i<r;i++)
  68. { for (int j=0;j<c;j++)
  69. {cout<<"Inserisci elemento in posizione : ["<<i+1<<","<<j+1<<"] : ";
  70. cin>>mat[i][j];
  71. }
  72. }
  73. }
  74.  
  75.  
  76. void stampa_matrice (matrice mat, int r, int c)
  77. { cout<<"La matrice e' : "<<endl;
  78. for(int i=0;i<r;i++)
  79. { for (int j=0;j<c;j++)
  80. {cout<<mat[i][j]<<" ";
  81. }
  82. cout<<endl;
  83. }
  84. }
  85.  
  86.  
  87. void ricerca_min (matrice mat, int r, int c)
  88. { int min=mat[0][0];
  89. for(int i=0; i<r; i++)
  90. {for(int j=0;j<c;j++)
  91. {if ( mat[i][j]<min)
  92. min=mat[i][j];
  93. }
  94. }
  95. cout<<"\nL'elemento piu' piccolo presente nella matrice e' : "<<min;
  96. }
  97.  
  98.  
  99. void ricerca_max (matrice mat, int r, int c)
  100. { int max=mat[0][0];
  101. for( int i=0;i<r;i++)
  102. {for ( int j=0;j<c;j++)
  103. {if ( mat[i][j]>max)
  104. mat[i][j]=max;
  105. }
  106. }
  107. cout<<"\nL'elemento piu' grande presente nella matrice e' : "<<max;
  108. }
  109.  
  110. void ricerca_min_rig( matrice mat, vettore vet, int r, int c)
  111. { for (int i=0;i<r;i++)
  112. {vet[i]=mat[i][0];
  113. for ( int j=0;j<c;j++)
  114. { if (mat[i][j]<vet[i])
  115. vet[i]=mat[i][j];
  116. }
  117. }
  118. cout<<"\nIl vettore contenente gli elementi piu' piccoli presenti sulle righe e' : ";
  119. for( int i=0;i<r;i++)
  120. cout<<vet[i];
  121. }
  122.  
  123. void ricerca_max_rig ( matrice mat, vettore vet, int r, int c)
  124. { for( int i=0;i<r;i++)
  125. { vet[i]=mat[i][0];
  126. for (int j=0;j<c;j++)
  127. { if (mat[i][j]>vet[i])
  128. vet[i]=mat[i][j];
  129. }
  130. }
  131. cout<<"\nIl vettore contenente gli elementi piu' grandi presenti sulle righe e' : ";
  132. for(int i=0;i<r;i++)
  133. cout<<vet[i];
  134. }
  135.  
  136. void ricerca_min_col (matrice mat, vettore vet, int r, int c)
  137. { for (int j=0;j<c;j++)
  138. {vet[j]=mat[0][j];
  139. for( int i=0;i<c;i++)
  140. { if ( mat[i][j]<vet[j])
  141. vet[j]=mat[i][j];
  142. }
  143. }
  144. cout<<"\nIl vettore contenente gli elementi piu' piccoli presenti sulle colonne e' : ";
  145. for(int j=0;j<c;j++)
  146. cout<<vet[j];
  147. }
  148.  
  149.  
  150. void ricerca_max_col ( matrice mat, vettore vet, int r, int c)
  151. { for (int j=0;j<c;j++)
  152. { vet[j]=mat[0][j];
  153. for (int i=0;i<c;i++)
  154. { if ( mat[i][j]>vet[j])
  155. vet[j]=mat[i][j];
  156. }
  157. }
  158. cout<<"\nIl vettore contenente gli elementi piu' grandi presenti sulle colonne' : ";
  159. for ( int j=0;j<c;j++)
  160. cout<<vet[j];
  161. }
  162.  
  163. void diagonale_maggiore ( matrice mat, vettore vet, int r, int c)
  164. { if( r==c)
  165. { for ( int i=0;i<r;i++)
  166. {cout<<"\nIl vettore formato dagli elementi della diagonale maggiore della matrice e': ";
  167. for (i=0;i<r;i++)
  168. cout<<mat[i][i];
  169. }
  170. }
  171. else
  172. cout<<"La matrice deve avere il numero di righe uguale al numero di colonne!";
  173. }
  174.  
  175. void diagonale_minore ( matrice mat, vettore vet, int r, int c)
  176. { if (r==c)
  177. {for ( int i=0;i<r;i++)
  178. {cout<<"\nIl vettore formato dagli elementi della diagonale minore della matrice e': ";
  179. for ( i=0;i<r;i++)
  180.  
  181. cout<<mat[i][r-i-1];
  182. }
  183. cout<<endl;
  184. }
  185. else
  186. cout<<"La matrice deve avere il numero di righe uguale al numero di colonne!";
  187. }
  188.  
  189.  
  190.  
  191.  
  192. void massimo_matrice( matrice mat, int r, int c, int posrig, int poscol)
  193. { int i, j;
  194. elem max=mat[0][0];
  195. posrig=0;
  196. poscol=0;
  197. for (i=0;i<r;i++)
  198. {
  199. for (j=0;j<c;j++)
  200. { if ( max<mat[i][j])
  201. max=mat[i][j];
  202. posrig=i;poscol=j;
  203. }
  204. }
  205. cout << "\nL'elemento ricercato e' in posizione [ " << posrig+1 << " ][ " << poscol+1 << " ] ";
  206. }
  207.  
  208.  
  209.  
  210.  
  211. void scrittura_mat_infile ( matrice mat, int r, int c)
  212. { fstream file;
  213. char nomefile[20];
  214. cout<<"\bInserire nome file con estensione : ";
  215. cin>>nomefile;
  216. file.open(nomefile,ios::out);
  217. for( int i=0;i<r;i++)
  218. { for (int j=0;j<c;j++)
  219. {file<<mat[i][j];
  220.  
  221. }
  222. file<<endl;
  223. }
  224.  
  225. file.close();
  226. }
  227. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  228.  
  229. #include <iostream>
  230. #include <fstream>
  231.  
  232. using namespace std;
  233.  
  234. void carica(int **mat,int &r,int &c);
  235. void stampa(int **mat,int r,int c);
  236. void minimo(int **mat,int r,int c);
  237. void massimo(int **mat,int r,int c);
  238. void max_rig(int **mat,int r,int c,int *vet);
  239. void min_rig(int **mat,int r,int c,int *vet);
  240. void max_col(int **mat,int r,int c,int *vet);
  241. void min_col(int **mat,int r,int c,int *vet);
  242. void somma_elem_riga(int **mat, int r,int c, int *vet);
  243. void somma_elem_col(int **mat,int r,int c,int *vet);
  244. void diagonale_maggiore(int**mat,int r,int c);
  245. void diagonale_minore(int **mat,int r,int c);
  246. void mat_in_file(int **mat,int r,int c);
  247.  
  248. int main()
  249. {
  250. int **matrice;
  251. int rig,col;
  252. fstream file;
  253.  
  254. int *vettore;
  255. vettore = new int [100];
  256.  
  257. cout<<"Inserisci riempimento riga: ";
  258. cin>>rig;
  259. cout<<"\nInserisci riempimento colonne: ";
  260. cin>>col;
  261.  
  262. matrice=new int*[rig];
  263. for (int i=0;i<rig;i++)
  264. matrice[i]=new int[col];
  265.  
  266. carica(matrice,rig,col);
  267. stampa(matrice,rig,col);
  268. minimo(matrice,rig,col);
  269. massimo(matrice,rig,col);
  270. max_rig(matrice,rig,col,vettore);
  271. min_rig(matrice,rig,col,vettore);
  272. max_col(matrice,rig,col,vettore);
  273. min_col(matrice,rig,col,vettore);
  274. somma_elem_riga(matrice,rig,col,vettore);
  275. somma_elem_col(matrice,rig,col,vettore);
  276. diagonale_maggiore(matrice,rig,col);
  277. diagonale_minore(matrice,rig,col);
  278. mat_in_file(matrice,rig,col);
  279.  
  280.  
  281. delete matrice;
  282. system ("pause");
  283. }
  284.  
  285. void carica(int **mat,int &r,int &c)
  286. { for (int i=0;i<r;i++)
  287. { for (int j=0;j<c;j++)
  288. { cout<<"\nInserisci l'elemento in posizione ["<<i+1<<"]["<<j+1<<"] : ";
  289. cin>>mat[i][j];
  290. }
  291. }
  292. }
  293.  
  294. void stampa(int **mat,int r,int c)
  295. { cout<<"\nLa matrice e': \n";
  296. for (int i=0;i<r;i++)
  297. { for (int j=0;j<c;j++)
  298. { cout<<mat[i][j]<<" ";
  299. }
  300. cout<<endl;
  301. }
  302. }
  303.  
  304. void minimo(int **mat,int r,int c)
  305. { int min=mat[0][0];
  306. for (int i=0;i<r;i++)
  307. { for (int j=0;j<c;j++)
  308. { if (mat[i][j]<min)
  309. min=mat[i][j];
  310. }
  311. }
  312. cout<<"\nIl minimo della matrice e': "<<min<<endl;
  313. }
  314.  
  315. void massimo(int **mat,int r,int c)
  316. { int max=mat[0][0];
  317. for (int i=0;i<r;i++)
  318. { for (int j=0;j<c;j++)
  319. { if (mat[i][j]>max)
  320. max=mat[i][j];
  321. }
  322. }
  323. cout<<"\nIl massimo della matrice e': "<<max<<endl;
  324. }
  325.  
  326. void max_rig(int **mat,int r,int c,int *vet)
  327. { for (int i=0;i<r;i++)
  328. { int max=mat[i][0];
  329. for (int j=0;j<c;j++)
  330. { if (mat[i][j]>max)
  331. max=mat[i][j];
  332. }
  333. vet[i]=max;
  334. }
  335. cout<<"\nVettore con i massimi di ogni riga: ";
  336. for (int i=0;i<r;i++)
  337. cout<<vet[i]<<" ";
  338. }
  339.  
  340. void min_rig(int **mat,int r,int c,int *vet)
  341. { for (int i=0;i<r;i++)
  342. { int min=mat[i][0];
  343. for (int j=0;j<c;j++)
  344. { if (mat[i][j]<min)
  345. min=mat[i][j];
  346. }
  347. vet[i]=min;
  348. }
  349. cout<<"\nVettore contenente i minimi di ogni riga: ";
  350. for (int i=0;i<r;i++)
  351. cout<<vet[i]<<" ";
  352. }
  353.  
  354. void max_col(int **mat,int r,int c,int *vet)
  355. { for (int j=0;j<c;j++)
  356. { int max=mat[0][j];
  357. for (int i=0;i<r;i++)
  358. { if (mat[i][j]>max)
  359. max=mat[i][j];
  360. }
  361. vet[j]=max;
  362. }
  363. cout<<"\nVettore contenente i massimi di ogni colonna: ";
  364. for (int j=0;j<c;j++)
  365. cout<<vet[j]<<" ";
  366. }
  367.  
  368. void min_col(int **mat,int r,int c,int *vet)
  369. { for (int j=0;j<c;j++)
  370. { int min=mat[0][j];
  371. for (int i=0;i<r;i++)
  372. { if (mat[i][j]<min)
  373. min=mat[i][j];
  374. }
  375. vet[j]=min;
  376. }
  377. cout<<"\nVettore contenente i minimi di ogni colonna: ";
  378. for (int j=0;j<c;j++)
  379. cout<<vet[j]<<" ";
  380. }
  381.  
  382. void somma_elem_riga(int **mat, int r,int c, int *vet)
  383. { for (int i=0;i<r;i++)
  384. { int somma=0;
  385. for (int j=0;j<c;j++)
  386. { somma=somma+mat[i][j];
  387. }
  388. vet[i]=somma;
  389. }
  390. cout<<"\nVettore contenente le somme degli elementi delle righe: ";
  391. for (int i=0;i<r;i++)
  392. cout<<vet[i]<<" ";
  393. }
  394.  
  395. void somma_elem_col(int **mat,int r,int c,int *vet)
  396. { for (int j=0;j<c;j++)
  397. { int somma=0;
  398. for (int i=0;i<r;i++)
  399. { somma+=mat[i][j];
  400. }
  401. vet[j]=somma;
  402. }
  403. cout<<"\nVettore contenente le somme degli elementi delle colonne: ";
  404. for (int j=0;j<c;j++)
  405. cout<<vet[j]<<" ";
  406. }
  407.  
  408. void diagonale_maggiore(int **mat,int r,int c)
  409. { if (r==c)
  410. { for (int i=0;i<r;i++)
  411. { cout<<"\nDiagonale maggiore: ";
  412. for (i=0;i<r;i++)
  413. cout<<mat[i][i];
  414. }
  415. }
  416. else
  417. cout<<"\nErrore, la matrice non e' quadrata.";
  418. }
  419.  
  420. void diagonale_minore(int **mat,int r,int c)
  421. { if (r==c)
  422. { for (int i=0;i<r;i++)
  423. { cout<<"\nLa diagonale minore e': ";
  424. for (i=0;i<r;i++)
  425. cout<<mat[i][r-i-1];
  426. }
  427. }
  428. else
  429. cout<<"\nErrore, la matrice non e' quadrata.";
  430. }
  431.  
  432. void mat_in_file(int **mat,int r,int c)
  433. { fstream file;
  434. char nome_file[20];
  435. cout<<"\nInserire il nome del file con estensione: ";
  436. cin>>nome_file;
  437. file.open(nome_file,ios::out);
  438. for (int i=0;i<r;i++)
  439. { for (int j=0;j<c;j++)
  440. { file<<mat[i][j];
  441. }
  442. }
  443. file.close();
  444. }
Add Comment
Please, Sign In to add comment