Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка з ОП 2 курс (2семестр).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
492 Кб
Скачать
☆

Приклад програми

/*Функція y=t**n*/       int power(int t,int p)            { int y; y=t*p;

return(y);    } }

/*Піднесення до ступеню - головна програма*/    #include <stdio.h>

    main() {      int a,n;      printf("Введи a,n \n");      scanf("%d %d",&a,&n);      printf("%d в степени %d = %d",a,n power(a,n)); }

Контрольні запитання

  1. Яка область видимості локальних даних?

  2. Яка область видимості глобальних даних?

  3. Що таке формальні та фактичні параметри?

Лабораторна робота№13

Тема: Використання параметрів-показників в функціях.

Мета : Набуття практичних навичок з використанням в функціях параметрів-показників.

Література: Б.И.Березин, С.Б. Березин, Навчальний курс С и С++.

Теоретичні відомості

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

Завдання

Створити програми обробки даних з функціями з параметрами-вказівниками. Всі первісні дані вводяться з клавіатури. Вивести результати роботи програми на екран монітору і занести їх у звіт.

Варіант №1

  1. Ввести з клавіатури одновимірний масив з 5 чисел , вибрати з нього не нульові елементи та вивести їх на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів першого рядка.

Варіант №2

  1. Ввести з клавіатури одновимірний масив з 5 чисел , вибрати з нього елементи менше нуля та вивести їх на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів другого рядка.

Варіант №3

  1. Ввести з клавіатури одновимірний масив з 5 чисел , вибрати з нього елементи більше нуля та вивести їх на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів третього рядка.

Варіант №4

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати елементи більше нуля та вивести суму цих елементів на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів першого стовпчика.

Варіант №5

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати елементи менше нуля та вивести суму цих елементів на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів другого стовпчика.

Варіант №6

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати середньоарифметичне елементів масиву та вивести результат на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів третього стовпчика.

Варіант №7

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати суму елементів масиву та вивести результат на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів які розташовані на діагоналі.

Варіант№8

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати суму елементів більше нуля та вивести результат на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму елементів всього масиву.

Варіант№9

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати суму елементів менше нуля та вивести результат на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму від’ємних елементів всього масиву.

Варіант№10

  1. Ввести з клавіатури одновимірний масив з 5 чисел , підрахувати кількість нульових елементів та вивести результат на екран монітору.

  2. Ввести з клавіатури двовимірний масив з 9 чисел, підрахувати суму додатних елементів всього масиву.

Приклад програми

#include <stdio.h>

#include <conio.h>

void input(int *a,int n)

{int i;

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

{printf(“введіть %і елемент масиву:”,і+1);

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

void main(){

int a[10],i;

input(a,10);

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

printf("%5i",a[i]);}

Контрольні запитання

  1. Які вимоги до фактичних та формальних параметрів в функціях?

  2. Як масив зв’язав з вказівниками?

  3. Що дає використання в програмах параметрів-вказівників?

Лабораторна робота№14

Тема: Використання показників на функцію.

Мета : Набуття практичних навичок з використанням показників на функцію.

Література: Б.И.Березин, С.Б. Березин, Навчальний курс С и С++.

Теоретичні відомості

Для того, щоб використовувати в програмі покажчик на функцію, необхідно виконати наступні дії:

• прийняти адресу функції;

• оголосити покажчик на функцію;

• використовувати покажчик на функцію для виклику цієї функції.

Кожна функція характеризується типом поверненого значення, ім'ям і списком типів її параметрів. Якщо ім'я функції використовувати без подальших дужок ( ) і параметрів, то воно виступатиме як покажчик на цю функцію, і його значення визначатиметься як адреса розміщення функції в пам'яті (перший байт). ). Це значення можна буде привласнити іншому покажчику. Тоді цей новий покажчик можна буде використовувати для виклику функції. Покажчик на функцію як змінна вводиться окремо від визначення і оголошення (прототипу) якій-небудь функції. Покажчик на функцію – змінна, яка містить адресу деякої функції. Відповідно, непряме звернення по цьому покажчику є викликом функції.

Синтаксис визначення покажчика на функцію:

тип _функції(*ім’я _ показника)(специфікация_параметрів)

де тип

_функції – визначає тип поверненого функцією значення;

ім’я _ показника – ідентифікатор;

специфікація _ параметрів – визначає склад і типи параметрів функції.

Наприклад:

int (*pf)(); // без контролю параметрів виклику

int (*pf)(void); // без параметрів, з контролем по прототипу

int (*pf)(int, char*); // з контролем по прототипу

Синтаксис виклику функції за допомогою покажчика:

(*ім’я _ показника)(список _ фактичних_параметрів);

значенням ім’я _ показника служить адреса функції, а за допомогою операції розіменування * забезпечується звернення за адресою до цієї функції.

Арифметичні операції над покажчиками на функції заборонені.