- •Технологія створення програм
- •Кодування і документування програми
- •Структурний підхід до програмування
- •Етапи створення програм
- •Створення програмного проекту
- •Методика відладки програми
- •Програмна реалізація алгоритмів лінійної структури
- •Програмна реалізація алгоритмів розгалужених структур
- •Програмна реалізація алгоритмів циклічних структур
- •Програмування вкладених циклів
- •Програмна реалізація функцій користувача
- •Програмна обробка одновимірних масивів
- •Програмна обробка двовимірних масивів
- •Список використаної літератури
Програмна реалізація алгоритмів розгалужених структур
Умовний оператор if використовується для розгалуження процесу обчислень на два напрямки.
1 0
Блок
операторів 1 Блок
операторів 2
рис.5 алгоритмічна конструкція розгалуження
Формат оператора:
if (вираз) оператор_1; [else оператор_2;]
Спочатку обчислюється вираз, який може мати арифметичний тип або тип покажчика. Якщо воно не дорівнює нулю (має значення true), виконується перший оператор, інакше - другий. Після цього управління передається на оператор, наступний за умовним. Одна з гілок може бути відсутнім, логічніше опускати Друга гілка разом з ключовим словом еlse. Якщо у якої гілки потрібно виконати кілька операторів, їх необхідно укласти в блок, інакше компілятор не зможе зрозуміти, де закінчується розгалуження. Блок може містити будь-які оператори, в тому числі опису та інші умовні оператори (але не може складатися з одних описів). Необхідно враховувати, що змінна, описана в блоці, поза блоком не існує. Поширена помилка при записі умовних операторів - використання у виразах замість перевірки на рівність ('== ^ простого присвоєння (='), наприклад, 1f (a=l) b=0;
Синтаксичної помилки немає, так як операція присвоювання формує результат, який оцінюється на рівність / нерівність нулю. У даному прикладі присвоювання змінної b буде виконано незалежно від значення змінної а. Тому у виразах перевірки змінної на рівність константі константу рекомендується записувати зліва від операції порівняння: if (1 == а) b = 0;. Друга помилка - невірний запис перевірки на приналежність діапазону. Наприклад, щоб перевірити умову 0 <х <1, можна записати його в умовному операторі безпосередньо ,так як буде виконано спочатку порівняння 0 <х, а йогорезультат(true або false,перетворене в int) буде порівнюватися з 1. Правильний спосіб запису: 1f (0 <x && x <1) .
Задача 3.2.1
Відомо дві швидкості: одна в кілометрах за годину, інша — в метрах за секунду. Яка зі швидкостей більша?
Вхідні дані: v1, v2.
Вихідні дані: більша зі швидкостей.
#include<iostream.h>
int main()
{
int v1, v2;
cout<<”Введіть швидкості: v1 (км/год), v2(м/с) “;
cin>>v1>>v2;
v1 = v1*1000/3600;
if (v1>v2)
cout<<”v1>v2”<<endl;
else
cout<<”v1<v2”<<endl;
return0;
}
1 0
рис.6 блок-схема до задачі 3.2.1
Задача 3.2.2
Обчислити y при різних значеннях x.
Вхідні дані: x
Вихідні дані: y
include<iostream.h>
include<math.h>
int main()
{
double x, y;
const float a = 1.8;
const float pi = 3.14;
cout<<” x = “;
cin>>x;
if(x<=0)
y = 0;
else
if(x<=1)
y = x*x – x/a;
else
y = pow(x, 3) – sin(x*x*pi)-1;
cout<<”y = “<<y<<endl;
return 0;
}
1 0
1 0
рис.7 блок-схема до задачі 3.2.2
Задача 3.2.3
Нехай елементами круга є радіус(перший елемент), діаметр(другий елемент) і довжина кола(третій елемент). Скласти програму, яка по номеру елемента запрошувала б його відповідне значення і обчислювала б площу круга.
Вхідні дані: радіус, діаметр, довжина кола.
Вихідні дані: площа круга.
#include<iostream.h>
int main()
{
int s;
float r, d, l;
constfloatp= 3.14;
cout<<”Введіть номер елемента круга(1, 2, 3)”;
cin>>s;
switch(s)
{
case 1: cout<<”r = “;
cin>>r;
s = p*r*r;
cout<<”Площа круга:»<<s<<endl;break;
case 2: cout<<”d = “;
cin>>d;
s = p*(d/2)*(d/2);
cout<<”Площа круга:»<<s<<endl;break;
case 3: cout<<”l = “;
cin>>l;
r =l/(2*p);
s = p*r*r;
cout<<”Площа круга:»<<s<<endl;break;
default:cout<<”Помилка введення!”<<endl;
}
return 0;
}
0
1
0
1
0
1
0
рис.8 блок-схема до задачі 3.2.3