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

3 Методичні вказівки

1. Перед написанням програми ще раз переглянути теоретичний матеріал і приклади програм, що ілюструють особливості застосування функцій у С-програмах. Окрему увагу звернути на способи передавання масивів у функції.

  1. Обов'язковою для оформлення програми є функція, вказана в індивідуальному завданні. В програмі можна використати й інші функції, якщо це сприятиме кращій структуризації програми.

  2. Написати головну частину програми (головну функцію main() ), використовуючи в ній звертання до функцій відповідно до запропонованої структури програми. Визначити: які дані, в якому порядку і яким способом передаються у кожну функцію і як функція повертає у головну програму результати виконання.

  3. Написати відповідну функцію (чи декілька функцій), звертаючи увагу на типи опису параметрів і способи передачі масивів.

  4. Відкомпілювати програму і виконати її. Зафіксувати результати кожної реалізації.

4 Приклад виконання лабораторної роботи

Написати функцію, для пошуку максимального елемента в зазначеному рядку двовимірного масиву. З її допомогою знайти максимальні елементи кожного рядка двовимірного масиву розмірністю 45, який задати за допомогою функції вводу з клавіатуриscanf(). Максимальні значення вивести на екран.

Текст програми

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int f(int a[5][9],int x,int y,int r)

/*int f(int a[][],int x,int y,int r) */

{int i,m;

m=a[r][0];

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

if(a[r][i]>m) m=a[r][i];

return m; }

int b[5][9],i,j,k,max[5];

void main() { clrscr();

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

for(j=0;j<9;j++) {

printf("b[%d][%d]\n",i,j); scanf("%d",&b[i][j]); }

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

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

printf("%d\t",b[i][j]);

printf("\n"); }

for(i=0;i<5;i++) {max[i]=f(b,5,9,i);

printf("max[%d]=%d\n",i,max[i]);}

}

Результати:

4 5 6 7 5 3 8 9 7

6 5 4 5 6 7 8 5 4

6 7 5 6 7 6 4 6 5

43 6 6 7 78 8 4 6 7

7 7 5 5 4 4 4 6 7

max[0]=9

max[1]=8

max[2]=7

max[3]=78

max[4]=7

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

  1. Що називається функцією і чим вона характеризується?

  2. Чи потрібно описувати функцію?

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

  4. Скільки операторів return може бути в функції?

  5. Як передаються масиви у функцію?

  6. Чи співпадають формальні і фактичні параметри по кількості і типу?

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

Тема. Обчислення значень математичних функцій. Табуляція функцій

Мета: Навчитись писати програми на мові С для обчислення значень математичних функцій, які знаходяться в бібліотечному файлі math.h. Протабулювати задану функцію на заданому проміжку і з заданим кроком.

1 Короткі теоретичні відомості

Бібліотека математичних функцій. Велика частина можливостей мови С міститься в стандартних бібліотечних функціях. Розглядаються наступні класи функцій.

  • Математичні функції.

  • Функції роботи з часом і датами.

  • Функції обробки похибок.

  • Функції пошуку і сортування даних.

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

  1. Математичні функції.

  2. Функції роботи з часом і датами.

  3. Функції обробки похибок.

  4. Функції пошуку і сортування даних.

Прототипи математичних функцій знаходяться в бібліотечному файлі math.h. Всі вони повертають значення типу double. (дійсні числа з подвійною точністю). Аргументи тригонометричних функцій задаються в радіанах, а не в градусах.

1 рад. = 57.296

  1. = 2рі рад.

Прототипи математичних функцій наведено в табл. 1.

Таблиця.1 Прототипи математичних функцій

№ п/п

Функція

Прототип

Значення

2. Тригонометричні функції

1

arccosx

double acos(double x)

Повертає арккосинус x. Аргумент знаходиться в межах , значення функції - в інтервалі.

2

arcsinx

double asin(double x)

Повертає арксинус x. Аргумент знаходиться в межах , значення функції - в інтервалі.

3

arctgx

double atan(double x)

Повертає арктангенс x. Аргумент знаходиться в межах , значення функції - в інтервалі.

4

arctg2x

double atan2(double x, double y)

Повертає арктангенс . Аргумент знаходиться в межах, значення в інтервалі.

5

cosx

double cos(double x)

Повертає косинус x. Значення функції знаходиться в інтервалі

6

sinx

double sin(double x)

Повертає синус x. Значення функції знаходиться в інтервалі

7

tgx

double tan(double x)

Повертає тангенс x. Значення функції знаходиться в інтервалі .

3. Степеневі і логарифмічні функції

8

exp()

double exp(double x)

Повертає експоненту аргументу

9

log()

double log(double x)

Повертає натуральний логарифм аргументу , який має бути додатним

10

log10()

double log10(double x)

Повертає логарифм по основі 10 аргументу, який має бути додатним

11

ldexp()

double ldexp(double x, int y)

Повертає

4. Інші математичні функції

12

double sqrt(double x)

Повертає квадратний корінь аргументу x, який має бути додатнім

13

ceil()

double ceil(double x)

Повертає найменше ціле число, яке перевищує аргумент, 4.5=5, а –4.5=-4

14

int abs(int x)

Повертає абсолютне значення аргументу цілого типу

15

long int labs(long int x)

Повертає абсолютне значення аргументу довгого цілого

16

floor()

double floor(double x)

Повертає найбільше ціле число, яке не перевищує аргумент, -4.5=-5, а 4.5=4

17

double pow(double x, double y)

Повертає . Якщо, і у0 абоі у не ціле, то помилка

18

fmod()

double atan2(double x, double y)

Повертає дійсну остачу від ділення , з тим знаком , що в, якщо х=0, функція повертає 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]