Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Kiölçülü massivlər




İkiölçülü massivlər (matrislər) – vektorlar massividir və kvad­rat mötərizədə iki ədədlə verilirlər.

Elementin_ tipi massivin_adı [ölçü 1] [ölçü 2];

Burada ölçü 1 – sətirlərin sayı, ölçü 2 – sütunların sayı­dır.

Üçölçülü massivlər:

Elementin_tipi massivin_adı [ölçü 1] [ ölçü 2][ölçü 3];

Məsələn:

double matre [100][10];

int i_matrix [10] [20];

char cube [10][20][3];

Kompüterin yaddaşında matrislər aşağıdakı ardıcıllıqla yer­ləş­dirilmiş oyuqları tuturlar: əvvəlcə I sətir, sonra II sətir və s.

Çoxölçülü massivlərin emalında bir-birinə daxil olan dövr­­­lərdən istifadə edilir. Bu vaxt ən yavaş sol kənar indeks, ən tez isə sağ kənar indeks dəyişir.

Çoxölçülü massivlərlə işləyərkən ən daxili dövr sağ kə­nar­, ən xarici dövr isə sol kənar indeksə uyğun gəlir.

Ikiölçülü massivlərin də emalı zamanı bir sıra tipik al­qo­ritm­­lər istifadə olunur. Onlardan bir neçəsini verək.

Klaviaturadan tamqiymətli matrisin daxil edil­məsi:

const int max_row=5;

const int max_col=4;

...........

for (i=0; i<max_row; i++)

{ for (j=0; j< max_ col; j++)

{ printf (“ \ n x [%d][%d]”, i, j);

scanf (“%d, &x[i][j]); }

}

İkiölçülü massivin ekrana çıxarılması:

const int max_row=5;

const int max_col=4;

...........

for (i=0; i<max_row; i++)

{ for (j=0; j< max_ col; j++)

printf (“ %4d”, x [i] [j]”);

printf (“ \ n”); }

}

Massivin maksimal elementinin hesablanması:

..........

int arr [n][k], max;

...........

max=arr [0][0];

for (i=0; i<n; i++)

for (j=0; j<k; j++)

{ if (max< arr [i][j]) max=arr [i][j]; }

 

Matrisin hər sətrinin maksimal elementinin tapılması:

int arr [n][k], int max[n];

...........

for (i=0; i<n; i++)

{ max[i]=arr [i][0];

for (j=0; j<k; j++)

if (max[i]< arr [i][j]) max[i]=arr [i][j]; }

}

Misal 7.3. Matrisdə sıfırdan kiçik qiymətli ilk elementin yerini təyin edən proqram yazın.

 

#include <stdlib.h>

main()

{

int a[10][10];

int i, j;

randomize();

for (i = 0; i<10; i++)

for (j = 0; j<10; j++)

a[i][j] = (rand() % 100) - 20;

for (i = 0; i<10; i++)

for (j = 0; j<10; j++)

if (a[i][j] < 0)

goto bul;

printf("Sıfırdan kiçik element yoxdur\n");

goto son;

bul:

printf("elementin mövqeyi və qiyməti (%d, %d) = %d \n",i, j, a[i][j]);

son:

return 0;

}

Misal 7.4. “Qabarcıq” üsulu ilə massivlərin nizam­lan­ması

#include<stdio.h>

#define n 1000

int main() {

int n, i, j;

int a[n];

scanf("%d", &n);

for(i = 0; i < n; i++) {

scanf("%d", &a[i]);

}

for(i = 0; i < n; i++) {

//iki qonşu elementin müqayisəsi

for(j = 0; j < n - i - 1; j++) {

if(a[j] > a[j+1]) {

// əgər şərt doğrudursa,onda

// onların yerləri dəyişdirilir.

int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp;

}

}

}

}

n elementli massivlərin nizamlanması üçün n-1 sayda əmə­liy­yat lazımdır.

 

Misal 7.5. Binomial əmsalların hesablanması (Paskal üç­­bucağı)

 

#include <stdio.h>

#define N 1000

long c[N];

int main () {

long n, i, j;

scanf ("%ld",&n);

for(i = 1; i <= n; i++) c[i] =0;

c[0] = 1;

for(j = 1; j <= n; j++)

for(i = j; i >= 1; i--)

c[i] = c[i-1] + c[i];

for(i = 0; i <= n; i++)

printf ("%ld ", c[i]);

return 0;

}





Поделиться с друзьями:


Дата добавления: 2017-01-21; Мы поможем в написании ваших работ!; просмотров: 1027 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студенческая общага - это место, где меня научили готовить 20 блюд из макарон и 40 из доширака. А майонез - это вообще десерт. © Неизвестно
==> читать все изречения...

2317 - | 2272 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.