- •Лабораторна робота №1
- •Теоретичні відомості
- •Завдання для виконання
- •Int main()
- •Int main()
- •Лабораторна робота №2
- •Теоретичні відомості
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №3
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •Void main()
- •Int main()
- •Завдання для виконання
- •Лабораторна робота №4
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №5
- •Теоретичні відомості
- •Void main()
- •Void main()
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №6
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №7
- •Теоретичні відомості
- •Void fact(int k);
- •Void fact(k);
- •Int *I; //Вказівник - змінна на дані типу int
- •Int k, *vk; //Опис змінної - вказівника *vk
- •Приклади виконання завдання лабораторної роботи
- •Int fact(int n)// Функція, що обчислює n!
- •Void dryk(int Cnm) /* Функція, що виводить на екран значення Cnm */
- •Void main ( )
- •Int Factorial(int n) /*Рекурсивна функція,що обчислює n! */
- •Void main()
- •Void Vs(double &V, double &s, double r)
- •Void main ( )
- •Void Vs(double *V, double *s, double r)
- •Void main ( )
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №8
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •Void main()
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №9
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •If (!feof(f1))
- •Void main()
- •Void main()
- •Void main()
- •Void main ()
- •Void main ()
- •Ifstream in( "vvid" );
- •In.Close();
- •Завдання для виконання
- •Лабораторна робота №10
- •Теоретичні відомості
- •Char st[40]
- •Char st3[100]
- •Char str4[100]
- •Приклади виконання завдання
- •Void main()
- •Void insert (char *str, int p, char c)
- •Void main()
- •Insert(s,n,c);
- •Void main()
- •Завдання для виконання
- •Лабораторна робота 11
- •Теоретичні відомості
- •If(!strcmp(ms[I].Ngr,"m21"))
- •Завдання для виконання
- •Приклади виконання завдання
- •Void main()
- •Лабораторна робота 12
- •Теоретичні відомості
- •Void show_complex() /*вивід комплекснеого числа на екран */
- •Void show_complex();
- •Void complex::show_complex()
- •Void main()
- •Приклади виконання завдання
- •Завдання для виконання
- •Лабораторна робота 13
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void operator --();
- •Void operator --(int);
- •Void show_complex();
- •Завдання для виконання
- •Завдання для самостійного виконання
- •Додаток №2. Базові типи даних
- •Додаток №3. Основні специфікатори формату функції printf
- •Додаток №5. Основні математичні функції бібліотеки math.H
- •Додаток №6.
- •Додаток №7. Можливі специфікатори аргументу mode
- •Додаток №8. Основні функції для роботи із рядковими змінними бібліотеки string.H
- •Додаток №9. Основні функції для роботи із символами бібліотеки ctype.H
- •Література
- •Ткачук Валерій Михайлович
- •Лабораторний практикум
- •76000, М. Івано-Франківськ, вул. С. Бандери, 1
Void main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
float a;
double f;
cout<<"a=";
cin>>a;
f=stepin(a,2);
cout<<"f1="<<f<<endl;
//Обчислення цілої степені числа а
//Степінь 2 задається по замовчуванню
f=stepin(a);
cout<<"f2="<<f<<endl;
//Обчислення числа а в степені k/m
int k=1;
int m=3;
f=stepin(a,k,m);
cout<<"f3="<<f<<endl;
f=pow(a,(float(k)/float(m)));
cout<<"f4="<<f<<endl;
f=pow(a,k/m);
cout<<"f5="<<f<<endl;
}
Результат роботи програми:
В
ведено
значення a=-2.2
Примітка:
зверніть
увагу на результат обчислення від’ємного
числа a=-2.2
в степені
.
Результат рівний f3=-1.30059.
При спробі піднесення до степеня
числа за a
допомогою функції pow
виводиться або повідомлення про помилку
f4=-1.#IND
(f=pow(a,(float(k)/float(m)))),
або отримується неправильний результат
f5=1
(f=pow(a,
k/m)).
Завдання для виконання
Написати програму обчислення арифметичних виразів завдань лабораторної роботи №3. Завдання №1 реалізувати з використанням звичайної функції та можливості задання значень формальних параметрів по замовчуванню. Завдання №2 розв’язати або з використанням вказівників, або з використанням адресації змінних. Вивід результатів обчислення на екран організувати за допомогою окремих функцій (див. Приклад №1).
Лабораторна робота №8
Тема роботи: Вкладені цикли та задачі обробка масивів
Мета роботи: Формування навиків розробки циклічних алгоритмів обробки масиву в цілому та його окремих елементів.
Для виконання роботи необхідно знати:
поняття масиву та його опис;
вкладені цикли та їх використання;
використання вказівників при роботі з масивами;
базові алгоритми обробки масивів.
Теоретичні відомості
Масивом називають набір однотипних даних, для збереження та обробки яких служить одне ім’я. Будь-який масив попередньо повинен бути описаний. Одномірний масив описується наступним чином:
<тип> <імя_масиву> [розмір]= <ініціалізація>
де:
<тип> – тип елементів масиву;
<імя_масиву> – імя, що будується згідно прави побудови імен змінних;
[розмір] – кількість елементів масиву;
<ініціалізація> – задання початкового значення елементам масив. Вона може бути відсутньою.
Наприклад:
float mas[5]– масив 5 дійсних чисел;
int mas[7]={2,3,24,10,9,6,4}– масив 7 цілих чисел;
double mas[]={4,3.1,4,10.2,9,7.3}– масив 6 дійсних чисел подвійної точності. При такому описі розмірність масиву можна не вказувати.
Для звернення до елементів масиву необхідно вказати ім’я масиву та номер елементу в квадратних дужках. Необхідно пам’ятати, що індекси елементів масивів у С++ починаються з 0. Наприклад:
mas[2]=2 – присвоєння 3-тьому елементу значення 2;
mas[i+1]=4.2 - присвоєння i+2-му елементу масиву значення 4.2;
mas[2i-1]=2x*sin(s) – присвоєння 2i-му елементу масиву значення виразу 2x*sin(s).
Багатомірний масив у С++ розглядається як сукупність масивів меншої розмірності. Так, двомірний масив розглядається як сукупність одномірних масивів – його рядків. Тривимірний – як сукупність матриць, які в свою чергу є сукупністю одномірних масивів – рядків. Опис n – мірного масиву матиме наступний синтаксис:
<тип><імя_масиву>[розмір 1][розмір 2]…[розмір n]
Наприклад:
int
mas[5][7]–
масив цілих чисел розміром
;
float
x[5][6][10]–
масив дійсних чисел розміром
;
int
s[2][2]={1,2,5,6}–
масив цілих чисел розміром
з ініціалізацією.
Оскільки ділянка у оперативній пам’яті під масив задається на етапі компіляції і її розмір визначається типом елементів масиву та їх кількістю, розмір масиву повинен бути визначений у тексті програми, а не підчас її виконання.
До елементів масиву можна звертатися двома способами:
За допомогою імені масиву: до 5-го елементу одномірного масиву mas можна звернутися як mas[4] ;
За допомогою вказівника масиву *(mas+4. (Ім’я масиву є одночасно вказівником на його нульовий елемент).
Для доступу до всіх елементів масиву та їх опрацювання за тим чи іншим алгоритмом необхідно використовувати циклічні оператори. Наприклад для вводу всіх елементів двомірного масиву a[i0][j0] із клавіатури служить наступний фрагмент програми (із виводом додаткової пояснювальної інформації на екран):
for(i=0;i<i0;i++)
for(j=0;j<j0;j++)
{
printf(" Введіть A[%i,%i]= \n",i,j );
cin >>a[i][j];
}
Примітка: перевірка виходу індексів елементів за допустимі межі масиву не виконується і повідомлення в ході виконання програми не видається.
При використанні у функції в якості формального параметру масиву вона отримує тільки адресу його початку (першого елементу), а кількість елементів (розмірність масиву) при цьому має бути передана окремо за допомогою додаткового формального параметру. Наприклад, функція sum сумує елементи масиву p:
перший варіант (робота як з масивом):
/*формальні параметри - вказівник масиву та
кількість елементів*/
int sum(int *p, int n)
{
int result = 0;
for (int i = 0 ; i < n; i++)
{
result += p[i]; //Сумування елементів масиву
}
return result;
}
другий варіант (робота як з вказівником):
int sum(int *p, int n)
{
int result = 0;
for (int i = 0 ; i < n; i++)
{
result += *p; //Сумування елементів масиву
p++;
}
return result;
}
Тут *p отримує значення елементу масиву, на який вказує p , а p++ виконує зсув вправо на один елемент масиву.
