Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С#.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.13 Mб
Скачать

Вказівки до виконання завдання

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

Таким чином, треба виконувати наступні правила:

Одномірний масив int a[5];

Двомірний масив int b[5][5];

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

int func1 (int array1[]);

або

int func1 (int *array1);

В дужках указано формальний параметр-покажчик на перший елемент одномірного масиву

int func2 (int aray2[][5]);

або

int func2 (int (*array2)[5]);

В дужках указано формальний параметр-покажчик на перший елемент двомірного масиву

2. Виклик функції в основній програмі

func1(a);

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

func2(b);

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

3. Визначення функції

int func1 (int array1[])

{

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

}

або

int func1 (int *array1)

{

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

}

int func2 (int array2[][5])

{

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

}

або

int func2 (int (*array2)[5])

{

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

}

Приклад: Дано дві матриці розмірністю [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];

}

Звіт про роботу повинний включати стислий опис роботи, алгоритм виконання індивідуального завдання у виді блок-схеми, текст програми і результати її виконання.