User Tools

Site Tools


it:informatica:linguaggio_c:funzioni_e_matrici_1
Return to Home page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:informatica:linguaggio_c:funzioni_e_matrici_1 [2019/02/26 14:35] (current)
Line 1: Line 1:
 +====== Funzioni e Matrici (Esempio 1) ======
 +**Concetti:​**\\
 +Passaggio di matrici a funzioni (le matrici in C vengono passate alle funzioni sempre per riferimento)
  
 +**Testo:​**\\
 +Si realizzi una funzione che:
 +  * riceve in ingresso una matrice e la sua dimensione (''​nr''​ e ''​nc'',​ rispettivamente il numero di linee e di colonne). Il prototipo della funzione da realizzare è il seguente:
 +<code C>
 +void cambiaSegno(int matr[][C], int nr, int nc);
 +</​code>​
 +  * la funzione dovrà cambiare di segno tutti gli elementi delle righe della matrice con indice di riga pari (righe 0, 2, 4, 6,...)
 +
 +La funzione chiamante (''​main''​) dovrà stampare la matrice prima e dopo la trasformazione effettuata dalla funzione ''​cambiaSegno''​.
 +
 +**Soluzione:​**\\
 +<file C matrici_funzioni_1.c>​
 +/* Realizzare una funzione che riceve in ingresso una matrice e le sue dimensioni, cioè il suo numero di righe e di colonne. La funzione deve cambiare di segno tutte le righe con indice di riga pari (righe 0, 2, 4, 6,...). */
 +
 +#include <​stdio.h>​
 +
 +#define R 3
 +#define C 4
 +
 +void cambiaSegno(int matr[][C], int nr, int nc);
 +
 +int main(){
 +  int m[R][C] = {{1, 2 , 3, 4}, {-1, -2, 3, 4}, {1, -2, 3, -4}};
 +  int i, j;
 +
 +  printf("​Matrice iniziale\n"​);​
 +  for(i=0; i<R; i++){
 +    for(j=0; j<C; j++){
 +      printf("​%3d",​ m[i][j]);
 +    }
 +    printf("​\n"​);​
 +  }
 +
 +  cambiaSegno(m,​ R, C);
 +
 +  printf("​Matrice con elementi cambiati di segno\n"​);​
 +  for(i=0; i<R; i++){
 +    for(j=0; j<C; j++){
 +      printf("​%3d",​ m[i][j]);
 +    }
 +    printf("​\n"​);​
 +  }
 +
 +  return 0;
 +}
 +
 +
 +void cambiaSegno(int matr[][C], int nr, int nc){
 +  int r, c;
 +  ​
 +  for(r=0; r<nr; r++) {
 +    if(r%2==0) {
 +      for(c=0; c<nc; c++) {
 +        matr[r][c] = -1*matr[r][c];​
 +      }
 +    }
 +  }
 +}
 +</​file>​

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/funzioni_e_matrici_1?rev=1551188125&do=diff
/web/htdocs/www.skenz.it/home/data/pages/it/informatica/linguaggio_c/funzioni_e_matrici_1.txt · Last modified: 2019/02/26 14:35 (external edit)

Privacy Policy