Главная | Обратная связь
МегаЛекции

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





1. Запустивши додаток C++Builder, створити новий проект, включити нову форму Form1.

2. На створену форму додати 3 кнопки (компонент Button) з написами “Заповнення масиву 5х10”, “Знайти середнє арифметичне”, “Наближене значення середнього арифметичного”. Задати різний розмір, тип і кольори шрифту за власним бажанням.

3. Додати на форму 5 міток (компонент Label) з відображенням за замовчуванням таких написів “Sr”, “Sr´”, “i”, “j”, “Координати i,j”.

Рисунок 3.1 – Загальний вигляд створеної форми Form1

4. Для кнопки “Заповнення масиву 5х10” задати оброблювач натискання, що заповнює двовимірний масив типу double (оголосити як глобальний) випадковим чином.

Функція randomize(), що використовується для заповнення масиву передбачає підключення додаткових бібліотек в хідер-файл.

#include <Math.hpp>

#include <System.hpp>

#include <stdlib.h>

При подвійному клацанні на кнопці, відкривається вікно Редактора Коду, у якому необхідно записати наступний код:

int i,j;

randomize();

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

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

{

B=random(1001);

A[i][j]=(B-500)/100;

}

5. Для кнопки “Знайти середнє арифметичне ” задати оброблювач натискання, що знаходить середнє арифметичне елементів масиву, а результат виводить на мітку “Sr”.

При подвійному клацанні на кнопці, відкривається вікно Редактора Коду, у якому необхідно записати наступний код:

int i,j;

Sr=A[0][0];

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

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

{

Sr+=A[i][j];

Sr/=50;

}

Label1->Caption=FloatToStr(Sr);

Змінну Sr оголосити як глобальну типу double.

6. Для кнопки “Наближене значення середнього арифметичного” задати оброблювач натискання, що знаходить елемент масиву найбільш близький до значення середнього арифметичного елементів масиву і його координати, результат пошуку виводить на мітки “Sr” і “Координати i, j”.

Для цього у вікні Редактора Коду необхідно записати наступний код:

int i,j;

Min=abs(Sr-A[0][0]);

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

for(j=1;j<10;j++)

if (abs(A[i][j]-Sr)<abs(Sr-Min))

{

Min=A[i][j];

min_i=i;

min_j=j;

Label2->Caption=FloatToStr(Min);

Label3->Caption=FloatToStr(min_i);

Label4->Caption=FloatToStr(min_j);

}

Змінну Min оголосити як глобальну типу double, а змінні min_i, min_j типу int;



7. Відкомпілювати проект, при необхідності виправити помилки (F9 або Run | Run).

8. Створити новий проект, включити нову форму, задавши їй ім'я Form2.

9. На створену форму додати 2 кнопки (компонент Button) з написами “Вихідний масив”, “Відсортований масив методом «Бульбашки»” та два компоненти Memo

Рисунок 3.2 – Загальний вигляд створеної форми Form2

10. Для кнопки “Вихідний масив” задати оброблювач натискання, що автоматично заповнює масив дійсними числами (масив глобальний типу float), створений масив вивести на компонент Memo1.

Для цього у вікні Редактора Коду необхідно записати наступний код (значення елементів можна задавати самостійно):

int j;

B[0]=4; B[1]=1; B[2]=2; B[3]=4; B[4]=5; B[5]=3; B[6]=6;

B[7]=7; B[8]=1; B[9]=8; B[10]=2;B[11]=11;

Memo1->Text="";

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

Memo1->Text=Memo1->Text+FloatToStr(B[j])+" ";

11. Об’явити глобальну функцію Sort(), якій в якості параметра передається покажчик на масив.

float B[12];

float D;

float *ptr;

Алгоритм роботи функції Sort( )

а) порівняти два перших елементи масиву, якщо елемент з меншим номером має більше значення, чим наступний, то поміняти елементи масиву місцями;

б) перемістити номера елементів, що порівнюються на одиницю і тд.;

в) якщо масив переглянуто до кінця і була хоч одна перестановка, то викликати рекурсивну функцію Sort( ).

Для реалізації даного алгоритму у header-файлі необхідно записати наступний код:

void Sort(float *ptr)

{

int a, flag;

float temp;

int size=11;

float *ptr1,*ptr2;

flag=0;

ptr1=ptr;

for(a=1;a<size;a++)

{

ptr2=ptr1;

ptr2++;

if(*ptr1>*ptr2)

{

flag=1;

temp=*ptr1;

*ptr1=*ptr2;

*ptr2=temp;

}

ptr1++;

}

if(flag) Sort(ptr);

};

12. Для кнопки “Відсортований масив методом «Бульбашки»” задати оброблювач натискання, що запускає функцію Sort( ), результат вивести на компонент Memo2.

У вікні Редактора Коду необхідно записати наступний код:

int j;

Memo2->Text="";

ptr=&B[0];

Sort(ptr);

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

Memo2->Text=Memo2->Text+FloatToStr(B[j])+" ";

Результат сортування показаний на рисунку 3.

Рисунок 3.3 – Вихідний і відсортований масив на формі Form2

13. Відкомпілювати проект, при необхідності виправити помилки





Рекомендуемые страницы:




Читайте также:


Воспользуйтесь поиском по сайту:
©2015- 2021 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.