- •З дисципліни “Системне програмування”
- •Мета виконання лабораторно-практичних робіт
- •Порядок виконання лабораторно-практичних робіт
- •Оформлення звітів про виконання лабораторно-практичних робіт
- •Лабораторна робота № 1
- •1 Короткі теоретичні відомості
- •1.4 Основні типи даних. Основні типи даних наведено в таблиці.
- •1.5 Операції.
- •Int printf (фороматний рядок, [, argument, ...]);
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Лабораторна робота № 2
- •1 Короткі теоретичні відомості Умовний оператор if. Уморвний оператор – це оператор, який виконується в залежності від виконання деякої умови.
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 3
- •Оператор циклу while. Цикл while – це ітераційний цикл із передумовою. Це оператор циклу, який працює до тих пір, поки деяка умова буде істинною.
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 4
- •1 Короткі теоретичні відомості
- •1.2 Опис масивів. Ім’я масиву це звичайний ідентифікатор. Він має бути унікальним, за ним іде розмірність. Розмір масиву може бути як літеральна константа, так і символьна.
- •Int array[a];
- •Int array[12];
- •Int array[a];
- •1.5 Одновимірні масиви. Одномірні масиви. Одномірний масив має один індекс.. Індекс – це номер в квадратних дужках після імені масиву.
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •5 Питання вихідного контролю
- •Лабораторна робота № 5
- •1 Короткі теоретичні відомості
- •2 Постановка завдання.
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Контрольні запитання
- •Лабораторна робота № 6
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Лабораторна робота № 7
- •1 Короткі теоретичні відомості
- •Int putchar(int c);
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 8
- •1 Короткі теоретичні відомості
- •2 Постановка задачі
- •3 Варіанти індивідуальних завдань
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 9
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Лабораторна робота № 10
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Лабораторна робота № 11
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Практична робота № 1
- •1 Короткі теоретичні відомості
- •1.1 Умовний оператор if. Уморвний оператор – це оператор, який виконується в залежності від виконання деякої умови.
- •Оператор виконує наступні дії:
- •Приклад: Написати програму, яка виводить на екран числа від 1 до 7.
- •Оператор while виконує наступні дії:
- •Приклад: Вивести на екран додатні числа менші від 10.
- •Оператор виконує наступні дії:
- •2 Питання вхідного контролю
- •3 Постановка завдання на використання оператора switch
- •4 Варіанти індивідуальних завдань на використання оператора switch
- •5 Варіанти індивідуальних завдань на оператори циклів
- •6 Методичні вказівки
- •7 Приклад розв’язку завдання
- •8 Питання вихідного контролю
- •Практична робота № 2
- •1 Короткі теоретичні відомості
- •Void func( ) /*нічого не повертає*/
- •2 Варіанти індивідуальних завдань:
- •3 Методичні вказівки
- •4 Приклад виконання практичної роботи
- •5 Контрольні запитання
- •Практична робота № 3
- •1 Короткі теоретичні відомості
- •Int putchar(int c);
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Практична робота № 4
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Список рекомендованої літератури
4 Методичні вказівки
1 Для опрацювання елементів масиву використати оператори циклу.
2 При описі масивів врахувати задану кількість елементів і типи елементів. Елементи масиву вводити з клавіатури або задавати при описі.
3 Розробити алгоритм розв'язку задачі, дати короткий опис основних кроків алгоритму.
4 Для розгалужених процесів використати умовний оператор if.
5 Ввести текст програми і запустити її на компіляцію. У випадку необхідності виправити синтаксичні помилки.
6 Запустити програму на виконання. У випадку необхідності виправити семантичні помилки.
5 Приклад розв’язку завдання
Задати двовимірний масив з цілими елементами розмірністю (4 4). Елементи, які належать відрізку [5;10], зменшити на 7, всі інші елементи збільшити на 7. Новий масив вивести на екран.
Текс програми
#include <stdio.h>
#include<conio.h>
int i, j:
int A[4][4]={1, 4, 3, 7 -8, 5, 3, 0, 56, 34, -6,45, 45, 12, 0, 46};
int B[4][4];
void main()
{ clrscr();
printf («Programa Lab_4\n»);
for (i=0; i<4; i=i+1)
for (j=0; j<4; j=j+1)
{if ((A[i][j]>=5) && (A[i][j]<=10)) B[i][j]= A[i][j]-7;
else B[i][j]= A[i][j]+7; }
for (i=0; i<4; i=i+1)
{for (j=0; j<4; j=j+1)
printf(“B[%d][%d]=%d\t”, i, j, B[i][j]);
printf (“\n”);}
}
5 Питання вихідного контролю
1 За допомогою яких операторів опрацьовуються елементи масиву?
2 Яке значення має індекс 1-го елементу одновимірного масиву?
3 Яке значення має індекс 1-го елементу двовимірного масиву ?
4 Яке значення має індекс останнього елементу двовимірного масиву розміром (5 5)?
5 Як задаються масиви при описі?
Лабораторна робота № 5
Тема. Обчислення значень математичних функцій
Мета роботи: Навчитись писати програми на мові С для обчислення значень математичних функцій, які знаходяться в бібліотечному файлі math.h.
1 Короткі теоретичні відомості
Означення функції. Функцією називається незалежний фрагмент програми, який має ім’я, призначена для виконання конкретної задачі, і повертає значення в викликаючу програму (що не обов’язково). Розглянемо складові частини означення функції:
Ім’я. Кожна функція має своє унікальне ім’я, використовуючи яке в іншій частині програми, можна виконати оператори, які містяться в цій функції. Це називається викликом функції. Функцію можна викликати з іншої функції.
Незалежність. Функція може виконати свою задачу, не вмішуючись в інші функції, і в свою чергу не вмішуватися в їх роботу.
Спеціалізація. Це зокрема закінчена частина загальної роботи програми, наприклад вивід на екран, добування кубічного кореня.
Повернення значення. Коли програма викликає функцію, виконуються оператори цієї функції, при необхідності функція може передати певну інформацію назад у викликаючу програму.
Опис функції. Функції при використанні потрібно описувати. Опис функції називають прототипом функції. Синтаксис опису: (прототип функції)
Тип функції (значення, яке повертає функція) ім’я функції(тип арг1. імя-арг. 1, тип арг2. імя-арг.2, тип арг3. імя арг.3);
Оператор опису функції повідомляє компілятору функцію, яка буде визначена в програмі пізніше. Опис включає тип значення, яке повертає функція, ім’я функції і типи аргументів, які передаються в функцію. Оператор опису закінчується ;
Приклад float cube(float x);
Для того, щоб до функції можна було звернутися, у тому ж файлі повинно бути опис функції (прототип).
double line(double x1,double y1,double x2,double y2);
double square(double a, double b, double c);
Це прототипи функцій, описаних вище.
Прототипи функцій повинні бути бути в тексті швидше аніж виклик функції, щоб компілятор міг здійснити перевірку правильності виклику.
Виклик функції. Для того, щоб виконувалися оператори, записані в тілі функції, функцію необхідно викликати. При виклику вказуються: ім'я функції й фактичні параметри. Фактичні параметри заміняють формальні параметри при виконанні операторів тіла функції. Фактичні й формальні параметри повинні співпадати по кількості й типу.
Параметри функції.В багатьох функцій є аргументи-значення, які передаються в функцію при її виклику. Функції має бути відомий тип даних кожного аргументу. Інформація про типи приводиться в заголовку функції в виді списку параметрів. Для кожного аргументу список параметрів має відповідний пункт, який складається з типу даних і імені параметру. Якщо параметрів декілька, то вони відділяються комами.
Бібліотека математичних функцій. Велика частина можливостей мови С міститься в стандартних бібліотечних функціях. Розглядаються наступні класи функцій.
Математичні функції.
Функції роботи з часом і датами.
Функції обробки похибок.
Функції пошуку і сортування даних.
Математичні функції. Велика частина можливостей мови С міститься в стандартних бібліотечних функціях. Розглядаються наступні класи функцій.
Математичні функції.
Функції роботи з часом і датами.
Функції обробки похибок.
Функції пошуку і сортування даних.
Прототипи математичних функцій знаходяться в бібліотечному файлі math.h. Всі вони повертають значення типу double. (дійсні числа з подвійною точністю). Аргументи тригонометричних функцій задаються в радіанах, а не в градусах.
1 рад. = 57.296
= 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) |
Повертає
.
Якщо
|
18 |
fmod() |
double atan2(double x, double y) |
Повертає
дійсну остачу від ділення
,
з тим знаком , що в
|
