- •ВСТУП
- •1 ЛАБОРАТОРНА РОБОТА №1. ОПЕРАТОРИ УМОВНОГО ПЕРЕХОДУ ТА ОПЕРАТОРИ ЦИКЛІВ
- •Мета роботи: отримання навичок з використання умовних операторів, операторів циклів, операторів вводу – виводу у програмі; отримання навичок з використання простих типів даних; програмування циклічних обчислювальних процесів.
- •1.1 Теоретичні відомості
- •Цикли. Цикли, або ітераційні структури, дозволяють повторювати виконання окремих операторів чи групи операторів. Кількість повторень в деяких випадках фіксовано, а в інших визначається в процесі роботи на основі одної чи декількох перевірок умов.
- •1.2 Методичні вказівки:
- •1.3 Контрольні запитання:
- •1.4 Варіанти завдань
- •2 ЛАБОРАТОРНА РОБОТА №2. РОБОТА ІЗ МАСИВАМИ ЧИСЕЛ
- •Мета роботи: отримати практичні навички по роботі з масивами; оволодіти навичками алгоритмізації та програмування структур із вкладеними циклами, способами введення та виведення матриць.
- •2.1 Теоретичні відомості
- •2.2 Методичні вказівки
- •2.3 Контрольні запитання
- •2.4 Варіанти завдань
- •3 ЛАБОРАТОРНА РОБОТА №3. ПРОГРАМУВАННЯ З ВИКОРИСТАННЯМ ПІДПРОГРАМ КОРИСТУВАЧА
- •Мета роботи: отримання навичок з алгоритмізації і програмування задач з використанням підпрограм та звертання до них; навичок з вибору параметрів підпрограм.
- •3.1 Теоретичні відомості
- •3.2 Методичні вказівки:
- •3.3 Контрольні запитання
- •3.4 Варіанти завдань
- •4 ЛАБОРАТОРНА РОБОТА №4. ОБРОБКА СИМВОЛЬНИХ ДАНИХ
- •4.1 Теоретичні відомості
- •4.2 Методичні вказівки
- •4.3 Контрольні запитання
- •4.4 Варіанти завдань
- •5 ЛАБОРАТОРНА РОБОТА №5. РОБОТА ЗІ СТРУКТУРАМИ ТА ФАЙЛАМИ
- •5.1 Теоретичні відомості
- •5.2 Методичні вказівки
- •5.3 Контрольні запитання
- •5.4 Варіанти завдань
- •СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ
- •ДОДАТОК А – РОБОТА В СЕРЕДОВИЩІ BORLAND С++
- •ДОДАТОК Б – ПРИКЛАД ТИТУЛЬНОГО ЛИСТА ЗВІТУ ПО ЦИКЛУ ЛАБОРАТОРНИХ РОБІТ
34 |
|
|
|
|
|
|
|
|
|
|
{ int a[k],i; f1(a,k); |
|
|
|
|
||||
|
for (i=0; i<k; i++) printf("%d;",a[i]); } |
|
|||||||
|
Функція, що викликається, може бути записана і у вигляді: |
||||||||
|
void f1 (int x[], int k) |
|
|
|
|||||
|
{int i; for (i=0; i<k; i++) x[i]=i;} |
|
|||||||
|
або |
|
|
|
|
|
|
|
|
|
void f1(int *x,int k) |
|
|
|
|||||
|
{int i; for (i=0; i<k; i++) x[i]=i;} |
|
|||||||
Приклад вирішення лабораторного завдання: |
|
||||||||
Задача: Скласти програму для |
|
|
|||||||
обчислення |
значення |
функції, |
|
Початок |
|||||
використовуючи |
|
підпрограму: |
|
|
|||||
w = |
x + |
y3 |
+ |
y + |
z3 |
+ |
z + |
x3 . |
Ввести x,y,z |
|
Блок-схема і текст програми: |
w=f(x,y)+f(y,z)+f(z,x) |
|||||||
|
|
||||||||
#include <stdio.h> |
|
|
|
|
Вивести w |
||||
#include <math.h> |
|
|
|
|
|
||||
#include <conio.h> |
|
|
|
|
Кінець |
||||
float f(float a, float b) |
|
|
|
{
return sqrt(a+pow(b,3/2));
}
void main()
{
float x,y,z,w; clrscr();
printf(“Введіть значення х,y,z:”); scanf(“%f%f%f”,&x,&y,&z); w=f(x,y)+f(y,z)+f(z,x); printf(“w=%f”,w);
getch();
}
float f(float a, float b)
Початок
return a + b3
Кінець
3.2 Методичні вказівки:
а) вивчити правила запису підпрограм різних типів та засобів звертання до них;
б) вивчити засоби передачі параметрів до підпрограми ; в) засвоїти правила запису програм, які використовують підпрограми
різних видів; г) розробити алгоритми розв`язання задач свого варіанту, записавши їх у
вигляді блок-схем; д) підготувати текстовий варіант програми та попередніх даних.
35
3.3 Контрольні запитання
1. Використання підпрограм-функцій у програмі.
2. Формальні та фактичні параметри.
3. Передача параметрів до функції і повернення значень.
4. Локальні та глобальні змінні.
5. Особливості складання блок-схеми програми, що має підпрограми. 6. Рекурсія.
3.4 Варіанти завдань
Варіант 1
Задача1: Написати програму знаходження кутів багатокутника IKLMN зі сторонами i,k,l,m,n та діагоналями dl dm.
|
|
|
L |
|
|
|||
|
|
k |
|
l |
|
|
||
|
|
K dl |
|
|
|
M |
||
|
|
i |
dm |
|
|
|||
|
|
|
m |
|
|
|||
|
|
I |
|
N |
|
|
||
|
|
n |
|
|
|
|
|
|
Вказівки: кут А трикутника виражається через його сторони a,b,c за |
||||||||
формулою: |
A=2arctg |
( p −b)( p −c) |
, де p= |
a +b +c |
|
– напівпериметр. Попередні |
||
p( p −a) |
|
|
|
|||||
|
|
2 |
|
|
|
|
||
дані задавати самостійно. |
|
|
|
b |
d |
|||
|
|
|
|
|
|
|||
Задача2: Обчислити наступні функції: x= |
a |
+ c |
;y=(x+7)3+(x−7)5; |
|||||
c |
d |
|||||||
|
|
|
|
|
a |
+ b |
w=ln(xa+yb); v=xsinb+(8−x)cosb;
Вказівки: попередні дані задавати самостійно; операцію піднесення до ступеня оформити у вигляді функції.
Задача1: |
|
|
Варіант 2 |
|
||
Написати |
програму знаходження наближеного значення |
|||||
|
20 |
dxx |
|
|
|
|
інтеграла I= |
10∫ |
, використовуючи наступну наближену формулу: |
||||
|
|
|
x n |
n −1 |
|
|
|
|
І= ∫f( x )dx ≈ ∑ h |
[f( xi ) + f( xi +1 )], |
де h=xi+1−xi |
||
|
|
|
x 0 |
i =0 2 |
|
|
Вказівки: прийняти h=0.01; знаходження підінтегральної функції оформити у вигляді підпрограми.
Задача2: Дано дійсні додатні числа a,b,c. Обчислити:
36
max(c,a +b) +max(a,b +c) 1+max(a +bc,b +ac,15) .
Вказівки: попередні дані задавати самостійно; знаходження max оформити у вигляді аналога процедури.
|
|
|
Варіант 3 |
|
|
|
|
|||||
Задача1: Обчислити визначений інтеграл: |
|
|
|
|
||||||||
|
a |
|
|
|
|
b −a |
|
|
|
b +a |
|
|
|
І= ∫ 2x +1dx , за формулою: І= |
[f(a) +4f( |
) +f(b)]. |
|||||||||
|
|
|||||||||||
|
b |
|
|
|
|
b |
|
|
b |
|||
Вказівки: попередні дані задавати самостійно; знаходження |
||||||||||||
підінтегральної функції оформити у вигляді підпрограми. |
||||||||||||
Задача2: Обчислити величину: |
|
|
|
|
|
|
|
|
||||
y= |
2 th(1/ 2) −3th(t −1/10) |
, де |
значення |
гіперболічного тангенса |
||||||||
5 −th(4t −1) |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
обчислюється за формулою: |
|
∑5 |
|
|
|
|
|
|
|
|
||
|
|
|
x2 k +1 /(2k +1)! |
|||||||||
|
th(x)= |
k =0 |
|
|
|
|
|
. |
|
|
||
|
|
|
5 |
|
|
|
|
|
∑x2 k /(2k )!
k =1
Вказівки: обчислення значень факторіала та th(x) оформити у вигляді аналога процедури; значення t задавати самостійно.
Варіант 4
Задача1: Задані дійсні числа a1,a2,a3; b1,b2,b3; c1,с2,с3. Отримати:
min(b1,b2 ,b3) +min(c1,c2 ,c3 ), |
|
якщо | min(a1,a2 ,a3) |>10, |
||||
|
|
|
|
|
|
|
е= |
3 |
3 |
3 |
2 |
− |
в іншому випадку. |
1 |
+[min(∑ai ,∑bi ,∑ci )] , |
|||||
|
i=1 |
i=1 |
i=1 |
|
|
|
Вказівки: попередні дані задавати самостійно; знаходження min оформити у вигляді функції, а обчислення ∑ та введення ai ,bi,, ci– у вигляді аналога процедур.
Задача2: Задані дійсні числа e,m,n,o. Знайти площу п`ятикутника:
1 |
2 |
e |
m |
||
|
|
2.5 |
o |
|
n |
Вказівки: значення e,m,n,o задавати самостійно; знаходження площі |
||
трикутника за формулою Герона S= |
p( p −a)( p −b)( p −c) , де p=(a+b+c)/2 |
|
оформити у вигляді підпрограми. |
|
|
37
|
|
Варіант 5 |
|
|
|
|
||
Задача1: По заданим дійсним числам a0, a1, .... a10; b0, b1, .... b10; c0, c1, .... |
||||||||
|
(a x10 |
+a x9 |
+L+a )2 |
−(b y10 +b y9 |
+L+b ) |
|||
c10; x, y, z обчислити величину: |
0 |
1 |
|
10 |
0 |
1 |
10 |
|
|
|
10 |
|
9 |
+....+c |
|
|
|
|
|
c (x+y) |
+c (x+y) |
|
|
|||
|
|
0 |
|
1 |
|
10 |
|
Вказівки: попередні дані задавати самостійно; введення елементів векторів задати у вигляді процедури; знаходження ступеневого багаточлена задати у вигляді функції, яка реалізує схему Горнера: p=a0xn+ a1xn-1 +…+ an- 1x+an=(...(( a0x+a1)x+a2)x+...+an-1)x+an));
Задача 2: Створити підпрограми для обчислення опору паралельного та послідовного з’єднання n резисторів. В якості параметрів підпрограм використати кількість резисторів і масив з номіналів опорів цих резисторів.
Вказівки: За допомогою створених підпрограм порахувати паралельне та послідовне з’єднання наступних резисторів:
а)1.5, 330, 200, 1500; б) 2200, 390, 1000, 4700, 56000, 750; в)8200, 430, 150;
Варіант 6
Задача1: Дано дійсні числа x1,y1,....x10,y10. Знайти периметр десятикутника, вершини якого мають відповідні координати: (x1,y1),....(x10,y10).
Вказівки: операцію знаходження довжини між двома точками, які задані своїми координатами, оформити у вигляді процедури.
Задача 2: Створити підпрограму для переведення числа із двійкової до десяткової системи числення.
Вказівки: двійкове число задавати як одномірний масив.
Задача 1: Вирахувати вираз: |
|
Варіант 7 |
|
|||||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
X |
|
y |
|
|
|
|
2 x5 +∑(2 i + |
|
), |
якщо x ≤10; |
|||||||
i + |
|
|||||||||
|
|
|
i=0 |
|
1 |
|
|
|||
k = |
|
|
|
X |
|
|
x |
|
|
|
|
20 |
|
6 |
|
|
|
|
|||
|
−∑(8 |
|
|
|
|
|||||
y |
|
−x |
|
i − |
|
|
), |
якщо x >10. |
||
|
|
i |
||||||||
|
|
|
|
i=10 |
|
|
|
|
Вказівки: вирахування суми оформити у вигляді підпрограми; значення x, y вводити з клавіатури (x>0).
Задача 2:
Вирахувати величину |
g = |
2 k(x, y, z) + k2 (x, y, z) |
||||
(k(x, y, z) −k2 (x, y, z))2 |
||||||
|
|
|||||
|
|
|
a b c |
|
, ÿêùî |
|
k(a, b, c)= |
|
|
||||
a − b − c |
||||||
|
|
|
a b c |
|
, â ³íøèõ |
|
|
|
|
|
|
||
|
|
a + b + c |
|
|
, де
a> b > c; випадках .
Вказівки: вирахування k(a, b, c) оформити у вигляді аналога процедури; значення x, y, z вводити з клавіатури.
38
Варіант 8 |
|
|
|
|||
Задача 1: Вирахувати вираз: p = |
2 x5 |
+ 4 x30 +8 |
y! |
. |
||
2 y + y |
15 |
−25 x! |
||||
|
|
|
Вказівки: піднесення до ступеня та знаходження факторіалу оформити у вигляді підпрограми; значення x та y вводити з клавіатури.
|
2 th( |
1 |
) − 25 th(t − |
1 |
) |
|
|
2 |
|
||||
Задача 2: Вирахувати вираз: y = |
|
|
5 |
, де значення |
||
5 |
− th(3 t − 2) |
|
||||
|
|
|
|
гіперболічного тангенсу вирахувати по формулі:
|
∑6 |
|
x 2k +1 |
|
|||
th (x) ≈ |
k =0 (2k + 1)! |
. |
|||||
|
|||||||
|
∑6 |
|
x 2k |
|
|||
|
2k! |
||||||
|
k =1 |
|
Вказівки: вираховування значення факторіалу оформити у вигляді підпрограми; вираховування значення th(x) оформити у вигляді аналога процедури; значення t вводити з клавіатури.
Варіант 9
Задача 1: Дано дійсні числа a, b. Знайти: u=max(a, b), v=max(ab, a+b), с=max(u5+v5, 256).
Вказівки: попередні дані задавати самостійно; знаходження max оформити у вигляді підпрограми.
Задача2: Змінній t присвоїти значення 1, якщо рівняння x2+6.2x+a2=0 та x2+ax+b−1=0 мають дійсні корені та в той-же час обидва корені першого рівняння лежать між коренями другого, і присвоїти значення 0 в усіх інших випадках.
Вказівки: a,b задавати самостійно так, щоб перевірити усі можливі випадки. Вирішення будь-якого квадратного рівняння оформити у вигляді підпрограми-процедури.
Варіант 10
Задача 1: Задані два комплексні числа (a+ib) і (c+id) і тип операції (додавання, множення, віднімання, ділення). Створити функції для виконання арифметичних операцій над комплексними числами і вирахувати значення модулів заданих комплексних чисел.
Вказівки: a, b, c та d вводити з клавіатури.
Задача2: Дано дійсні числа s,t. Отримати g(1.2, s) + g(t, s) − g(2s−1, st), де
a2 +b2 g(a,b)= a2 +2ab+3b2 +4
Вказівки: попередні дані задавати самостійно; знаходження функції g(a, b) оформити у вигляді підпрограми.