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

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}– масив цілих чисел розміром з ініціалізацією.

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

До елементів масиву можна звертатися двома способами:

  1. За допомогою імені масиву: до 5-го елементу одномірного масиву mas можна звернутися як mas[4] ;

  2. За допомогою вказівника масиву *(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++ виконує зсув вправо на один елемент масиву.