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

Варіанти завдань

.

варіант

завдання

варіант

завдання

9

10

11

12

13

14

15

16

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

1. Дайте визначення програм лінійної і розгалуженої структур.

2. Наведіть правила оформлення програм ?

3. Дайте визначення: виразу, операнду, операції, сталої, змінної, логічного виразу.

4. Наведіть приклади запису сталих і змінних.

5. Наведіть правила запису арифметичних виразів.

6. Наведіть приорітети арифметичних і логічних операцій

7. Як працює умовний оператор?

8.Як працює безумовний оператор?

9.Які логічні функції можуть бути використані в умовних операторах.

Лабораторна робота 4

Тема: Використання керуючих конструкцій. Програмування алгоритмів табулювання функції

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

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

1) Цикл for. В загальному записується так:

for (вираз1; вираз2; вираз3)

{оператор}

Вираз1 описує ініціалізацію циклу; ї

вираз2 — перевіряє умову завершення цикла, якщо він істинний то виконується оператор; вираз3 — обчислюється після кожної ітерації. Цикл повторюється до тих пір, поки вираз 2 не стане хибним.

2) Цикл while:

while (вираз)

оператор

Дія команди: Якщо вираз є істинним, то оператор виконується до тих пір, поки вираз не стане хибним. Якщо вираз хибний з самого початку, то керування передається наступному оператору. При цьому цикл не виконується зовсім. Значення виразу визначається до виконання оператора.

3) Цикл do-while. Його синтаксис:

do

оператор

while(вираз);

Дія команди:Якщо вираз істинний, то оператор виконується та знову обчислюється значення виразу. Це повторюється, поки вираз не стане хибним. Оператор виконується не менше одного разу.

4) Оператор break перериває виконання найближчого вкладеного зовнішнього оператора switch, while, do або for. Керування передається наступному оператору.

5) Оператор продовження continue передає керування на початок найближчого зовнішнього оператора циклу switch, while, do або for, та викликає початок наступної ітерації.

Завдання для самостійної роботи

  1. Вивчити теми:

  • оператори циклу for, while, do;

  • оператори переходу break, continue, return,

  • оператор "вираз", порожній оператор;

  • директиви #define та #undef.

  1. Для свого варіанту скласти програму табулювання функції з використанням оператора циклу з параметром (завдання 1)

  2. Написати програму табулювання функції з використанням операторів циклу , while та do-while для заданої у варіанті функції (завдання 2).

Завдання1

Пояснення до виконання завдання:

Якщо за умовою задачі не заданий один з параметрів циклу (початкове, кінцеве значення параметра або крок зміни), то його необхідно визначити, користуючись залежністю

де N - кількість циклів;хп,хк - початкове і кінцеве значення параметра циклу;

- крок зміни параметра циклу.

Приклад виконання:

Скласти прграм у обчислень таблиці значень функції

y=bx2+ex-1, b=11.83.

Аргумент х змінюється від початкового значення х=2.6 з постійним кроком 0.15, кількість значень функції n=8.

Програму скласти з використанням оператора циклу з параметром. Визначимо кінцеве значення аргумента х:

, звідки

Программа алгоритму:

#include <stdio.h>

#include <math.h>

#define x1 2.6

#define x2 3.66

#define dx 1.5e-1

#define b 11.83

main( )

{

float x,y;

for(x=x1;x<x2;x+=dx)

{

y=b*x*x+exp(x-1);

printf(“\ny=%f x=%f,y,x);

}

}

Y=84.923828 X=2.600000

Y=95.218979 X=2.750000

Y=106.176201 X=2.900000

Y=117.816490 X=3.050000

Y=130.164230 X=3.200000

Y=143.247772 X=3.350000

Y=157.100037 X=3.500000

Y=171.759277 X=3.650001

Варіанти завдань:

варіанту

Функція

Константи

Аргу-

Почат- кове знач.

Кінце- ве зна-чення

Крок зміни Пара-

Кіль- кість інтер-

a

b

мент

пара-метра циклу

пара- метра циклу

Метра Циклу

валів пара- метра

1

2

3

4

5

6

7

8

9

1

21.4

1.95

x

4.6

-

1.5

8

2

121.2

3.8

q

1.4

1.85

-

9

3

8.3

1.43

p

-

-4.74

0.15

10

4

1.6

2.09

m

-

16

1.5

7

5

0.83

-

x

1.15

-

0.35

11

6

3.85

1.8

α

-

150

70

8

7

1.6

14.3

t

2.75

5.0

-

9

8

-

6.215

β

400

540

-

7

9

2.43

-

y

1.62

-

0.15

8

10

1.85

2.63

α

-3.45

-

-1.6

11

11

-

3.85

d

-2.3

0.01

-

7

12

2.65

1.48

x

0.75

0.012

-

9

13

3.2

-

y

-4.8

0.1

-

7

14

-

8.45

z

-

0.24

3.2

9

15

-16.3

-

x

-16.3

-

-9.3

9

Завдання 2

Обчислити і вивести на екран у вигляді таблиці значення функції f на інтервалі від Xp до Xk з кроком Dx. Де a,b – задано. Значення Xp, Xk, Dx задано у таблиці.

Варіанти завдань:

функція

Хр

Хк

Dx

6.435

1.87

0.5

3.65

1.321

0.3

4.63

0.68

0.8

1.361

-

0.5

8.3

6.8

0.3

0.261

1.658

0.2

4.652

3.825

0.5

  1. 0

1.5

10.638

0.9

  1. 1

12.83

0.863

0.8

3.651

5.82

0.7

6.347

21.4

0.5

0.854

3.625

0.4

1.265

3.126

0.1

0.265

-0.883

0.6

4.735

8.216

0.8

2.876

12.393

0.4

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

  1. Що таке цикл? Складові частини циклу?

  2. Чому в циклічних процесах з регулярною зміною аргумента мовою С++l необхідно вводити додаткову керуючу змінну?

  3. Які дані необхідні для організації циклу?

  4. В яких межах змінюється параметр циклу в приведених програмах?

  5. Який оператор в наведені програмах контролює умову виходу з циклу?

Лабораторна робота 5

Тема: Програмування алгоритмів ітераційної циклічної структури

Мета роботи : Набуття навиків роботи з операторами циклу, умовними операторами та операторами переходу. Вивчення методів чисельного інтегрування.

Завдання для самостійної роботи

1. Вивчити теми:

  • оператори циклу for, while, do;

  • умовні оператори if, switch;

  • оператори переходу break, continue, return, goto;

  • оператор "вираз", порожній оператор;

  • директиви #define та #undef.

2. Для свого варіанта скласти програму розрахунку суми ряду з заданою точністю.

3. Написати програму обчислення інтеграла методом, вказаним у конкретному варіанті, для заданої у варіанті функції.

  1. Підключити необхідні бібліотеки. Похибку (EPS) оголосити за допомогою директиви препроцесора #define. Введення даних для завдань здійснити з клавіатури. Розрахункові значення вивести на екран.

  2. Обчислювати суму ряду доти, поки член ряду не стане меншим заданої похибки.

  3. Для обчислення визначеного інтеграла проміжок від до розбивається на n рівних частин, і для точок розподілу обчислюються значення функції, що інтегрується y=f(x). Потім використовується один із методів, заснованих на заміні інтеграла кінцевою сумою:

  • модифікований метод прямокутників базується на представленні f(x) ординатами, зміщеними на величину 0.5h, де . Тоді . При методі прямокутників на цьому відрізку.

  • метод трапецій полягає в лінійній апроксимації f(x) на відрізку . Для зменшення похибки відрізок розбивається на n частин довжини . Формула трапецій:

.

  • метод Сімпсона (метод парабол) заснований на інтерполяції f(x) у 2-х проміжках поліномом Лагранжа. У загальному випадку f(x) повинна задаватися трьома ординатами. При розбивці відрізка на n частин довжини одержимо узагальнену формулу Сімпсона:

.

Формула Сімпсона точна навіть якщо f(x) многочлен третього ступеня.

Приклад виконання завдання

а) З точністю не меншою ніж розрахувати суму ряду . б) Методом прямокутників розрахувати значення визначеного інтеграла від функції sin(x) у межах від 0 до π

#include<iostream. h>

#include<math. h>

#define EPS 1e-5

void main()

{

/* Розрахунок інтеграла */

float a,b;

int n;

cout<<"Задайте межі інтегрування - a,b та число розбивок - n\n";

cin>>a>>b>>n);

float h, Integral, x;

int j;

h=(b-a)/n; Integral=0;

for (j=0; j<=n-1; j++){

x=a+h*j;

Integral +=sin(x);

}

Integral *=h;

Cout<<”Integral=\t"<<Integral;

/* Розрахунок суми ряду */

float A, sum;

A=sum=1;

while(fabs(A)>EPS){

A /= -2. ;

sum +=A;

}

cout<<”Сума ряду = \t"<<sum);

}

Результат виконання програми:

Задайте межі інтегрування – a, b та число розбивок - n

0 3.14159 25

Integral = 1.997

Сума ряду = 0.67

Варіанти завдань

  1. а) З точністю не меншою розрахувати суму ряду б) Методом Сімпсона розрахувати значення визначеного інтеграла від функції в межах від 0 до π /2.

  2. а) З точністю не меншою розрахувати величину зворотну сумі ряду б) Модифікованим методом прямокутників розрахувати значення визначеного інтеграла від функції ln(ln(x)) у межах від 1 до 2.

  3. а) З точністю не меншою розрахувати експоненту від суми ряду б) Методом Сімпсона розрахувати значення визначеного інтеграла від функції sin(ln(x)) у межах від 0 до π /2.

  4. а) З точністю не меншою розрахувати суму ряду б) Методом трапецій розрахувати значення визначеного інтеграла від функції sin(x)ln(sin(x)) у межах від 0 до π /2.

  5. а) З точністю не меншою розрахувати у чотири рази більшу ніж сума ряду б) Методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до 1.

  6. а) З точністю не меншою розрахувати суму ряду б) Модифікованим методом прямокутників розрахувати значення визначеного інтеграла від функції ln(3-2cos(x)) у межах від 0 до π.

  7. а) З точністю не меншою розрахувати суму ряду б) Методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до 0.1

  8. а) З точністю не меншою розрахувати суму ряду б) Модифікованим методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до 1

  9. а) З точністю не меншою розрахувати суму ряду б) Методом трапецій розрахувати значення визначеного інтеграла від функції в межах від 0 до 1

  10. а) З точністю не меншою розрахувати суму ряду б) Методом прямокутників розрахувати значення визначеного інтеграла від функції 1+ + у межах від 0 до 1

  11. а) З точністю не меншою розрахувати суму ряду б) Модифікованим методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до π

  12. а) З точністю не меншою розрахувати суму ряду б) Методом трапецій розрахувати значення визначеного інтеграла від функції в межах від 0 до

  13. а) З точністю не меншою розрахувати суму ряду б) Методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до 1.

  14. а) З точністю не меншою розрахувати суму ряду б) Модифікованим методом прямокутників розрахувати значення визначеного інтеграла від функції в межах від 0 до π

  15. а) З точністю не меншою розрахувати суму ряду б) Методом трапецій розрахувати значення визначеного інтеграла від функції в межах від 0 до

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

1. Як організувати нескінченний цикл за допомогою оператора for?

2. Чим відрізняється дія оператора break і continue.

3. У яких випадках користуються оператором return?

4. Поясніть дію оператора if.

5. Як працює оператор case і яким чином можна вийти з нього?

6. У яких випадках користуються оператором циклу while, а в яких do?

7. Які можуть виникнути ускладнення при використанні оператора goto при передачі керування усередину складового оператора (блока операторів)?

8. У яких випадках використовують порожній оператор?

9. Де повинні бути розташовані оголошення, включені в складовий оператор (блок операторів)?

10. Поясніть дію директив препроцесора #define, #undef.

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

Тема: Опрацювання одновимірних масивів

Мета роботи: Оволодіння навичками використання індексних виразів та вказівників при роботі з одновимірними масивами

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

Масив — це набір об'єктів однакового типу, розташованих один за одним у пам'яті комп'ютера. Масив можна описати наступним чином:

тип_даних ім'я масиву [розмір_масиву]

Кожний масив має им'я. Значення індексу повинні знаходитись у диапазоні від нуля до величини, що на одиницю менше розміру масиву, вказаного під час його опису. Тип_даних задає тип елементів масиву. Розмір_масиву — константа чи константний вираз, що задає кількість елементів масиву. Ім'я масиву є вказівником-константою, що дорівнює адресі початку масива (першого байта першого елемента масива).

Доступ до окремих елементів масива може здійснюватись або за допомогою імені масива та індексу (порядковому номеру) або за вказівником (операція *). Іншими словами, наступні посилання будуть повністю еквівалентними:

array[i]

*(array+i)

Кожний раз, коли при виконанні програми у виразі зв'являється ідентифікатор типу масиву, він перетворюється у вказівник на перший елемент масиву.

Завдання для самостійної роботи

1. Вивчити теми:

- оголошення масивів;

- звертання до елементів масиву з використанням індексованих змінних та вказівників;

- ініціалізація масивів;

2. Виконати завдання. Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту.

- задачу розв'язати двома способами: використовуючи доступ до елементів масиву через індексні вирази та вказівники.

- результати роботи оформити протоколом.

Приклад виконання завдання

//Пошук мінімального елемента у масиві з використаннням вказівників

//1-й спосіб

# include<iostream.h>

#include<conio.h>

#difine HB 5

Void main()

{

// оголошення та ініціалізація масиву

float a[HB]={34.59,1.59,7.94,0.345,22.17};

Int I, nmin=0;

Float Min;

// пошук мінімального елементу

Min=*(a);

For(i=1;i<HB;i++) if (*(a+i)<Min)

{ Min=*(a+i);

nmin=i;}

cout<<”Min=”<<min<<”\tномер мінімального елементу=”<<nmin;endl;

}

//Пошук мінімального елемента у масиві з використаннням вказівників

//2-й спосіб

# include<iostream.h>

#include<conio.h>

#difine HB 5

Void main()

{

// оголошення масиву

float a[HB];

// введення елементів масиву

Int I;

For(i=0;i<HB;i++) { cout<<”введіть ”<<i+1<<”-й елемент масиву”

cin>>*(a+i);};

Float Min, nmin=0;

// пошук мінімального елементу

Min=*(a);

For(i=1;i<HB;i++) if (*(a+i)<Min)

{ Min=*(a+i);

nmin=i;}

cout<<”Min=”<<min<<”\tномер мінімального елементу=”<<nmin<<”\n”;

}

Завдання роботи

Створити масив.Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту. Задачу розв'язати двома способами: використовуючи доступ до елементів масиву через індексні вирази та вказівники. Результати роботи оформити протоколом.

Варіанти завдань

1. Перший додатний елемент поміняти місцями з максимальним.

2. Перший від’ємний елемент замінити мінімальним.

3. Обчислити суму перших чотирьох від’ємних елементів

4. Максимальний елемент поміняти місцями з другим нульовим.

5. Вивести номери двох найбільших елементів

6. Третій додатний елемент замінити максимальним

7. Обчислити добуток перших трьох додатних елементів.

8. Вивести добуток двох найменших елементів серед додатних

9. Чи третій додатний елемент є останнім в масиві

10. Обчислити суму максимального та мінімального елемента

11. Третій додатний елемент замінити максимальним

12. Визначити суму номерів максимального та мінімального елемента

13. Від’ємні елементи замінити максимальним

14. Знайти суму третього та шостого додатних елементів

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

  1. Що таке масиви?

  2. Що таке вказівник, як його оголосити? Поясніть унарні операції & та *.

  3. Як вказівники використовуються для доступу до елементів масивів?

  4. Вкажіть основні правила організації циклів.

  5. Як описується одновимірний масив в програмі?

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

Тема: Опрацювання двовимірних масивів

Мета роботи: Оволодіння навичками використання індексних виразів та вказівників при роботі з двовимірними масивами та використання масивів в якості параметрів функцій

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

Якщо елемент масиву має не один, а декілька індексів, то такі масиви називаються багатовимірними. Конструкція опису багатовимірного максиву така:

<тип> <ім’я масиву> [<p1>] [<p2>] … [<pn>]

де p1, p2 … pn – задають розміри для кожного виміру.

Кількість індексів визначає вимірність масиву: двовимірні масиви мають два індекси, тривимірні – три і т.д..

Елементи двовимірного масиву визначаються іменами масиву та двома індексами : перший індекс визначає номер рядка. а другий – номер стовпця. Наприклад, масив int doba[24] [60] містить елементи цілого типу і складаються з 24-х рядків і 60 стовпців.

Двовимірні масиви компілятор розглядає як послідовність одновимірних. Тому до елементів двовимірного масиву , як і для одновимірних, можна звертатися через вказівники. У такому випадку це вказівник на вказівник одновимірного масиву.

*(*(<назва вказівника > +<зміщення по рядках >) +<зміщення по стовпцях>).

Наприклад елемент *(*(doba+2) + 15) розміщений на перетині 3-го рядка та 16-го стовпця.

Завдання для самостійної роботи

  1. Вивчити теми:

  • оголошення багатовимірних масивів;

  • організація розташування елементів двовимірного масиву в пам’яті комп’ютера

  • звертання до елементів двовимірного масиву;

  • ініціалізація двовимірного масиву.

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

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

Обчислити суму елементів двовимірного масиву х та добуток асолютних величин елементів масиву y. Надркувати ці величини та обчислити і надрукувати величину . На друк також вивести вхідні масиви.

// 1-й спосіб. Доступ до елементів масиву з використання індексних змінних

# include <iostream.h>

# include <stdlib.h>

# include <math.h>

#include <conio.h>

void main()

{

randomize ();

// формуємо масиви x,y

float x[10][10],y[10][10];

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

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

{ x[i][j]=random(100);

y[i][j]=random(100);}

// знаходження суми

float ss,d,f;

for(int i=0,ss=0;i<10;i++)

for (int j=0; j<10; j++)

ss+=x[i][j];

// знаходження добутку

d=1;

float d; for (int j=0; i<10; i++)

for(int j=0;j<10;j++)

d*=abs(y[i][j]);

f=ss+d;

cout<<"f="<<f<<"\n";

getch();

}

}

// 2-й спосіб. Доступ до елементів масиву з використання вказівників

# include <iostream.h>

# include <stdlib.h>

# include <math.h>

#include <conio.h>

void main()

{

randomize ();

// формуємо масиви x,y

float x[10][10],y[10][10];

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

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

{*( x+i)+j)=random(100);

*(y+i)+j)=random(100);}

float ss,d,f;

// знаходження суми

for(int i=0,ss=0;i<10;i++)

for (int j=0; j<10; j++)

ss+=*(*(x+i)+j);

// знаходження добутку

d=1;

float d;

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

for(int j=0;j<10;j++)

d*=abs(*(*(y+i)+j));

f=ss+d;

cout<<"f="<<f<<"\n";

getch();

}

Завдання до роботи

Опрацювати на комп’ютері двомірний масив у відповідності до варіанту завдання, вказаного в таблиці.

Варіанти завдань

Варіант

Масив

Операції

1

X[10,15]

Обчислити суму S(і) елементів, що не перевищують , в кожному непарному рядку.

2

A[10,5]

Обчислити середнє арифметичне S квадратів всіх елементів, більших 2,5 по модулю і їх кількість К в непарних стовпчиках.

3

X[5,6]

Обчислити суму S1 відміних від нуля елементів з парними номерами рядків та їх кількість К1, а також суму S2 відміних від нуля елементів з непарними номерами рядків та їх кількість К2.

4

C[6,8]

Взнати середнє геометричне Р додатніх елементів і їх кількість К в парних рядках.

5

D[4,4]

Знайти добуток Р0 відмінних від нуля елементів з парними номерами стовпчиків і їх кількість К0, добуток Р1 відміних від нуля елементів з непарними номерами стовпчиків і їх кількість К1.

6

Y[5,5]

Взнати середнє арифметичне S від”ємних елементів і їх кількість К в непарних стовпчиках.

7

Z[6,8]

Взнати середнє арифметичне А(і) від”ємних елементів кожної стрічки.

8

A[6,6]

Знайти суму S(і) додатніх елементів кожної стрічки.

9

B[4,8]

Знайти суму S0 додатніх елементів з парними номерами рядків і їх кількість К0, а також суму S1 додатніх елементів з непарними номерами рядків і їх кількість К1.

10

A[7,7]

Знайти добуток Р1 додатніх елементів і їх кількість К1, а також добуток Р2 від”ємних елементів і їх кількість К2 по головній діагоналі.

11

Y[6,7]

Обчислити суму S1 елементів з парними номерами стовпчиків і суму S2 елементів з непарними номерами стовпчиків.

12

Y[8,8]

Знайти середнє арифметичне S елементів, що не перевищують 15 по модулю і їх кількість К.

13

L[6,6]

Елементи масиву, які містяться нижче головної діагоналі замінити їх модулями.

14

M[5,6]

Із елементів масиву М сформувати одновимірний масив В, в якого розміщені елементи масиву М по рядках.

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

  1. Що таке масиви?

  2. Як вказівники використовуються для доступу до елементів багатовимірних масивів?

  3. Вкажіть основні правила організації внутрішніх циклів.

  4. Як описується двовимірний масив в програмі?

  5. Які умови виходу з внутрішнього циклу?

  6. Як реалізувати в програмі перегляд по рядках (стовпчиках) ?

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

Тема роботи: Опрацювання символьної інформації

Мета роботи: Ознайомитися та функціями опрацювання символьної інформації, оволодіти з методами та прийомами опрацювання даних символьного типу

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