<< Chapter < Page Chapter >> Page >
Се покажува како во програмскиот јазик C се користат матриците: како се декларираат, означуваат, иницијализираат и како се пристапува до нив.

Матрици-двоиндексни полиња

Матрица или двоиндексно поле е правоаголна шема од елементи со заедничко име и два индекса кои го определуваат местото на секој елемент во матрицата преку позицијта на редот и колоната во матрицата. На пример, ознака за матрица е A ( i × j ) size 12{A \( i times j \) } {} , каде A size 12{A} {} е името на матрицата, i - е бројот на редици, j - е бројот на колони. Оваа матрица ќе има вкупно i x j елементи. Секој елемент a i , j size 12{a rSub { size 8{i,j} } } {} од матрицата А во програмскиот јазик C се означува со a [ i ] [ j ] size 12{a \[ i \] \[ j \]} {} .

Матрица А (3х3)

При користење на матрица во програма се врши нејзина декларација, а во декларацијата на матрица прво се определува имато, потоа редиците, па потоа колоните во формат:

tip Ime [ Redovi ] [ Koloni ];

Иницијализација на вредностите од матрица

Матриците може да се иницијализираат со декларацијата:

int mat[2][2]= {{1,2},{3,4}};

или

int mat [3][4]= { {100, 101, 102, 103},{104, 105, 106, 107}, {108, 109, 110, 111}};

Пристап до елемент од матрица

До елемент од матрица се пристапува преку неговото име и по него се задава редот, а потоа колоната во која припаѓа елементот.

Форматот е:

imePole[IndeksRED][IndeksKOLONA]

Пример 1.

Со наредбата

printf( "%d", b[0][1]);

се печати елементот b[0][1]

Пример 2.

Да се прочита и отпечати квадратна матрица (бројот на редови и колони е ист) со вредности на елементите кои ќе се внесат преку тастатура.

Програма:

#include<stdio.h>#define RED 10 #define KOLONA 3int main() {int n,a[MAX][MAX], i, j; printf("Dimenzija: ");scanf("%d",&n); printf("Vnesi gi elementite\n");for (i=0; i<n; i++) for (j=0; j<n; j++) scanf("%d",&a[i][j]); printf("Pecatenje\n");for (i=0; i<n; i++) {for (j=0; j<n; j++) {printf("%d\t",a[i][j]); }printf("\n"); }return 0; }

Пример 3.

Да се формира матрица со елементи чии вредности се формираат преку сумата на индексите на елементот од дадената позиција.

Програма:

#include<stdio.h>#define MAX 10 int main(){ int red, kol, pole[RED][KOLONA];for(red=0; red<RED; red++) for(kol=0; kol<KOLONA; kol++) pole[red][kol]=red+kol;for(red=0; red<RED; red++) for(kol=0; kol<KOLONA; kol++) printf(“Vektor[%d][%d] = %d”, red, kol, vek[red][kol]);return 0; }

Пример 4.

Да се прочита една квадратна матрица, а потоа да се помножат сите парни елементи со 2, а сите непарни со 3 и да се отпечати резултантната матрица.

Програма:

#include<stdio.h>#define RED 10 #define KOLONA 3int main() {int n,a[MAX][MAX], i, j;printf("Dimenzija: "); scanf("%d",&n); printf("Vnesi gi elementite\n");for (i=0; i<n; i++) for (j=0; j<n; j++) scanf("%d",&a[i][j]); for (i=0; i<n; i++) for (j=0; j<n; j++) {if (a[i][j]%2==1) a[i][j]*=3;else a[i][j]*=2;} printf("Pecatenje\n");for (i=0; i<n; i++) {for (j=0; j<n; j++) {printf("%d\t",a[i][j]); }printf("\n"); }return 0; }

Пример 5.

Да се прочита една квадратна матрица, да се помножат сите елементи од главната дијагонала со 10, а сите елементи од споредната дијагонал да се поделат со 5 и да се отпечати резултантната матрица.

Програма:

#include<stdio.h>#define RED 10 #define KOLONA 3int main() {int n, a[MAX][MAX], i, j; printf("Dimenzija: ");scanf("%d",&n); printf("Vnesi gi elementite\n");for (i=0; i<n; i++) for (j=0; j<n; j++) scanf("%d",&a[i][j]); for (i=0; i<n; i++) for (j=0; j<n; j++) {if (i==j) a[i][j]*=10;else if (i+j==n-1) a[i][j]/=5;}printf("Pecatenje\n"); for (i=0; i<n; i++) {for (j=0; j<n; j++) {printf("%d\t",a[i][j]); }printf("\n"); }return 0; }

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Вовед во програмирање. OpenStax CNX. Oct 28, 2013 Download for free at http://cnx.org/content/col11379/1.12
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Вовед во програмирање' conversation and receive update notifications?

Ask