Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(ЭМ-22)Метод вказівки до курсової роботи з інфо...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
246.27 Кб
Скачать
    1. Масиви, як аргументи функції

Використовуючи масив як аргумент функції, у цю функцію передається покажчик на його перший елемент, іншими словами, передається за адресою. У мові С ім’я масиву, одновимірного або двовимірного, є покажчиком на перший елемент масиву. При цьому інформація про кількість елементів масиву втрачається, і тому доцільно передавати його розмірність через окремий параметр. Якщо розмірність масиву є константою, то можна навести її при описі формального параметра і як межі циклів при обробці масиву усередині функції.

Усередині функції масив інтерпретується як одновимірний, а його індекс зазначається в програмі.

Розглянемо одномірний масив int A[5] і двовимірний масив int B[5][5].

Одновимірні і двовимірні масиви, що використовуються у функціях-підпрограмах, повинні бути передані у функцію за певними правилами, а саме:

  1. Опис функції або створення прототипу функції. Звичайно описується функція в головній програмі перед описом змінних. Так само її можна описати в заголовку функції main(). У дужках зазначають формальні параметри і їх тип. Якщо формальним параметром є масив, то записують покажчик на перший елемент масиву. Перед ім’ям функції-підпрограми наводять тип функції, у нашому випадку – int. Тип функції визначається типом значення, яке повертається з функції-підпрограми в головну функцію.

Опис функції в основній програмі

int func1 (int А1[]); або int func1 (int *А1);

int func2 (int А2[][5]); або int func2 (int (*А2)[5]);

  1. Виклик функції в основній програмі. У головній функції викликається функція із зазначенням імен і списку фактичних параметрів:

func1(A);

func2(В);

При виклику у функцію передається ім’я фактичного масиву (адреси першого елемента), тобто того масиву, що використовується в основній програмі.

  1. Визначення функції. Після головної функції створюють функцію-

підпрограмму, причому в тому самому порядку, що і функцію main():

int func1 (int А1[])

{

Тіло функції;

}

int func2 (int А2[][5])

{

Тіло функції;

}

Приклад 3. Дано дві матриці розмірністю [3х4]. Знайти суму матриць. Оформити розв’язання основної задачі у вигляді функції-підпрограми.

#include <stdio.h>

#include <graph.h>

#define M 3

#define N 4

//опис функції-підпрограми, у дужках записуємо покажчик на перший //елемент масиву.

int slogenie (int T[][M],int K[][M],int s,int F[][M]);

int main (void)

{

int A[M][N],B[M][N],C[M][N];

int i,j;

_clearscreen(_GCLEARSCREEN);

printf("Вводимо матрицю A[3][4]\n");

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

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

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

printf("Вводимо матрицю B[3][4]\n");

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

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

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

printf("Матриця суми: C[3][4]\n\n");

slogenie (A,B,4,C); //виклик функції-підпрограми в дужках //указуємо фактичні параметри

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

{

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

printf("%5d",C[i][j]);

putchar('\n');

}

}

/* **************************************************** */

//визначення функції – підпрограми

int slogenie (int (*T)[M],int K[][M],int s,int F[][M])

{

int i,j;

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

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

F[i][j]=T[i][j]+K[i][j]; }