Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Met_C++.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
620.54 Кб
Скачать

2.4 Варіанти індивідуальних завдань

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

1.

2.

3. а=5; у=3 ;

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

x і a змінюються одночасно.

16. Обчислити функцію

а - має початкове значення 0.1 і змінюється одночасно з x з кроком . Підказка: використовується один цикл.

17. Обчислити функцію двох перемінних

18. Обчислити функцію:

При якому значенні х функція буде найменшою?

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

20. Увести координати 10 крапок на площині і визначити, у якій із чвертей більше всього крапок.

21. Увести п'ять наборів сторін трикутника а, b, c і визначити для яких сторін висота буде найбільшою.

Підказка: де

22. Увести координати п'яти крапок і визначити, яка з них потрапить в окружність з радіусом R і координатами центра (а, b).

Підказка: рівняння окружності має вид:

23. Увести п'ять шостиразрядних цілих чисел і знайти, для яких з них сума «лівих» трьох цифр більше суми «правих» трьох.

24. Підрахувати скількох разів функція

приймає негативне значення, якщо .

25. Обчислити функцію у виді формули

для кожного значення i.

  1. МАСИВИ В С++

3.1 Мета роботи

Навчитися складати та реалізовувати у середовищі Visual C++ програми обробки масивів.

3.2 Методичні вказівки до організації самостійної роботи студентів

При роботі з масивами треба звернути увагу на введення та виведення даних. При програмуванні обов'язково треба використовувати покажчики. Покажчик - особливий тип даних, призначений для збереження адреси в пам'яті.

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

Тісний зв'язок з покажчиками має визначений у мові C++ тип даних – масив, або вектор. Масиви - це структурований тип даних, які представляють собою безупинні блоки пам'яті, що містять безліч елементів того самого типу. Ознакою масиву при описі є наявність парних дужок –“[ ]”. Елементи масива нумеруються з 0. Наприклад:

int arr1[32]; char arr2[79];

де оголошені вектор arr1, що містить 32 елемента типу int і вектор arr2, що містить 79 елементів типу char.

У C++ дозволені два способи доступу до елементів вектора: з використанням механізму покажчиків і класичний - за допомогою індексу.

Застосування механізму покажчиків засновано на використанні факту, що ім'я вектора є покажчиком - константою, що дорівнює адресі початку вектора - першого байта першого елемента вектора (arr1==&arr1[0]). У результаті цього, використовуючи операцію разіменування «*» можна забезпечити доступ до будь-якого елемента вектора. Так, еквівалентними будуть звертання до i-го елементу вектора з використанням індексу - arr1[i] і посилання *(arr1+i), оскільки (arr1+i)==&arr1[i].

Багатомірні масиви в C++ представляються у виді векторів покажчиків на вектори - багатомірні вектора

Використання механізму покажчиків для доступу до деякого і,j,k-го елементу тривимірного вектора може бути таким:

BV[і][j][k]= = *(BV[і][j]+k)= =*(*(BV[і]+j)+k)= =*(*(*(BV+і)+j)+k) .

У цих звертаннях використаний той факт, що, ім'я багатомірного вектора є покажчиком-константою на вектор покажчика - констант вектора рядка, перший елемент якого є теж покажчик- константа рядка. Елементи багатомірних векторів зберігаються в пам'яті в порядку зростання самого правого індексу - по рядках, тобто останній індекс змінюється швидше.

Приклад 3.1

Відсортувати масив дійсних чисел розміром 10 елементів за збільшенням.

#include <iostream.h>

void main()

{

int i,j;

float mas[10],rab;

cout<<"Vvеdі 10 elem \n";

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

cin>>*(mas+i);

cout<< " Isxodnik\n";

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

cout<<*(mas+i)<<" ";

cout<<"\n";

cout<< " Otsort massiv\n"<<"\n";

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

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

if *(mas+j)>*(mas+j+1))

{ rab=*(mas+j);

*(mas+j)=*(mas+j+1);

*(mas+j+1)=rab;}

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

cout<<*(mas+i)<<" ";

}

Приклад 3.2

В багатовимірному масиві 5*6 знайти суму елементів кожного рядка. Отриманий масив відсортувати по зростанню.

#include <stdio.h>

#include <conio.h>

void main()

{int i,j,sum,stk;

int matr[5][6], mas[5];

cout<<“Input matr\n”;

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

for(j=0;j<6;j++) cin>>matr[i][j];

//=============

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

{sum=0;

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

sum+=*(*(matr+i)+j); *(mas+i)=sum;}

//=============

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

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

if (mas[j]>mas[j+1])

{stk=mas[j]; mas[j]=mas[j+1]; mas[j+1]=stk;}

cout<< “Result mas\n”;

for(i=0;i<5;i++) cout<<*(mas+i);

getch();

}

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