- •Технологія створення програм
- •Кодування і документування програми
- •Структурний підхід до програмування
- •Етапи створення програм
- •Створення програмного проекту
- •Методика відладки програми
- •Програмна реалізація алгоритмів лінійної структури
- •Програмна реалізація алгоритмів розгалужених структур
- •Програмна реалізація алгоритмів циклічних структур
- •Програмування вкладених циклів
- •Програмна реалізація функцій користувача
- •Програмна обробка одновимірних масивів
- •Список використаної літератури
Програмування вкладених циклів
Цикл — різновид керуючої конструкції у високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій (команд). Також циклом може називатися будь-яка багатократно виконувана послідовність команд, організована будь-яким чином. Цикли можуть бути вкладені один в одний. Приклад: Скласти програму для упорядкування елементів масиву (а 1, а 2,... а 100), розташувавши їх по зростанню в тому ж масиві. Алгоритм рішення: кожен i-й елемент масиву з першого по 99-й необхідно порівнювати з усіма j-ми елементами, що мають більш високий порядковий номер. Наприклад, перший елемент треба порівнювати з другим, третім, четвер-тим і т.д.
Другий елемент треба порівнювати з третім, четвертим, п'ятим і т. д. Якщо значення j-го елемента виявиться менше, ніж i-го, ці елементи треба поміняти місцями в масиві. Для цього вводиться проміжна змінна amin. Спочатку змінної amin присвоюється значення j-го елемента, потім j-му еле-менту присвоюється значення i-го елемента, і потім i-му елементу присвоюється-ється значення змінної amin.
У внутрішньому циклі відбувається порівнювання та обмін значень елементів, у зовнішньому циклі змінюється номер i-го елемента. При вирішенні ряду задач необхідно повторювати одні й ті ж дії при різних значеннях параметрів у різних частинах програми. Для цього використо- вують підпрограми - процедури та функції.
Задача 3.4.1
Постановка задачі.
Надрукувати числа у вигляді наступної таблиці:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
Схема алгоритму рішення задачі.
int i=1; i<=5; i++
int j=1; j<=i; j++
return 0
Рис. 25 Схема алгоритму задачі 3.4.1
Лістинг програми.
#include <iostream>
#include <iomanip>
using namespace std;
int main ( )
{
for (int i=1; i<=5; i++)
{
for (int j=1; j<=i; j++)
cout << i << " ";
cout << endl;
}
cout << endl;
system("pause");
return 0;
}
Тестування програми.
Рис.26 Результат тестування задачі 3.4.1
Програмна реалізація функцій користувача
Функція користувача - група команд, що має унікальне ім'я, оголошена в заголовку файлів або в основній програмі, а так само описана в модулі або в основній програмі.
Перед викликом функції її потрібно оголосити, для цього:
<Тип функції> <назва функції> (<список формальних параметрів>);
Тип функції - тип значення, якщо функція не вертає результат, то вона оголошується типом void.
У списку формальних параметрів для кожної змінної потрібно окремо вказувати тип. Вказувати імена змінних не обов'язково (наприклад, (float, float, int) ;). Змінним при їх перерахуванні можна відразу присвоювати початкові значення.
Опис функції користувача
<Тип функції> <назва функції> (<список формальних параметрів>)
{
<Тіло функції>;
Return (<назва змінної, значення якої потрібно повернути>):
}
Функцію можна описати і до основної функції, тоді оголошувати її не обов'язково
Виклик функції
<Назва функції> (<список фактичних параметрів>);
Типи фактичних змінних повинні збігатися з типами формальних змінних.
Прототипи функції
Так само можна використовувати прототип функції, це оголошення функції без їх визначення. Тобто перед головною функцією йде оголошення функції, в головній функції її використання, а після головної функції сам опис.
Задача 3.5.1
Постановка задачі.
Дані сторони двох трикутників. Знайти суму їх периметрів і суму їх площ.(Визначити функцію для розрахунку периметра і площі трикутника по його сторонах.)
Вхідні дані.
Цілого типу
Вихідні дані.
Цілого типу
Лістинг програми.
#include <iostream>
#include <iomanip>
using namespace std;
int fact(int);
int main()
{
cout << (2*fact(5)+3*fact(8))/(fact(6)+fact(4)) << endl;
return 0;
}
int fact(int n)
{
int f=1;
for (int i=1; i<=n; i++)
f=f*i;
return f;
}
Тестування програми
Рис.27 Результат тестування задачі 3.5.1
Задача 3.5.2
Постановка задачі.
Розрахувати значення y, визначивши і використавши необхідну функцію
Вхідні дані.
Цілого типу
Вихідні дані.
Цілого типу
Лістинг програми.
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double a(int, int);
int main()
{
cout << a(1, 4)+ a(7, 5) + a(3, 2) << endl;
return 0;
}
double a(int n1, int n2)
{
return ((n1+sin(n2))/(n2+sin(n1)));
}
Тестування програми
Рис.28 Результат тестування задачі 3.5.2