You are on page 1of 7

МІНІСТЕРСТВО ОСВІТИ І НАУКИ

ВІННИЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ


ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ ТА
КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ

Кафедра обчислювальної техніки

Лабораторна робота № 5
з дисципліни «Програмування»
за темою: ”Програмування розгалужених
алгоритмів. Умовний оператор if - else”

Виконав:
студент групи 1-КІ-21МС
Гром Ю. С.
Викладач:
Томчук М.А

Вінниця 2021
Лабораторна робота №5
Програмування розгалужених алгоритмів. Умовний оператор if – else
Мета: визначити особливості використання умовного оператора

Оператор розгалуження призначений для виконання тих або інших дій


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

Синтаксис оператора :
if (<умова>)
<оператор1>;
[else <оператор2;>]

Синтаксис оператора if

Умова хибна, якщо вона дорівнює нулю, в інших випадках вона


істинна. Це означає, що навіть від’ємні значення розглядаються як істинні.
До того ж, умова, що перевіряється, повинна бути скалярною, тобто
зводитися до простого значення, яке можливо перевірити на рівність нулю.
Взагалі не рекомендується використання змінних типу float або double в
логічних виразах перевірки умов з причини недостатньої точності подібних
виразів. Більш досвідчені програмісти скорочують оператори типу:
if (вираз!=0) оператор;
до наступного:
if (вираз) оператор;.
Обидва логічні вирази функціонально еквівалентні, тому що будь- яке
ненульове значення розцінюється як істина.

Завдання 1. Створити проект, який буде реалізовувати рішення квадратного


рівняння ах2 + bх + с = 0. З клавіатури повинні вводитися три числа a, b, c. На
екран потрібно вивести значення дискримінанту і рішення квадратного
рівняння. При цьому, якщо рішень два, то на екрані має бути відображено
значення двох чисел - x1 і x2. Якщо рішення одне, то тільки одне значення x.
Якщо рішень немає, то на екран потрібно вивести інформацію про це.

Блок схема основного алгоритму програми:


Лістинг:
#include <stdio.h>
#include <conio.h>
#include <math.h>

void
discriminant (float b, float a, float c, float *B)
{
*B = b * b - 4 * a * c;
}

int
main ()
{
float a, b, c, x1, x2, d, o;
printf ("enter a,b,c\n");
scanf ("%f %f %f", &a, &b, &c);
discriminant (b, a, c, &d);

if (d > 0)
{
x1 = (-b + sqrt (d)) / 2 * a;
x2 = (-b - sqrt (d)) / 2 * a;
printf ("x1=%f\nx2=%f\n", x1, x2);
}
else if (d == 0)
{
x1 = -b / 2 * a;
printf ("x=%f\n", x1);
}
else if (d < 0)
{
printf ("no");
}

return 0;

Результат виконання:

Завдання 2.

Блок схема:
Лістинг:
#include <stdio.h>
#include <math.h>

int
main ()
{
float finalResult, x = 2, y = 3, z = 4;
float result0 = (x+y)-7;
float result1 = (y+2*z);

finalResult = ((result0 < result1) ? result0 : result1) - 4;


printf("%f", finalResult);

return 0;
}

Результат виконання:

Завдання 3. Задано три числа x, y, z. Знайти значення виразу (для


знаходження max, min використовувати оператор if)

Блок схема алгоритму пошуку максимального та мінімального значень:

Лістинг:
#include <stdio.h>
#include <math.h>

int min(int x, int y, int z){


if (x<y&&x<z) { return x; }
if (y<z&&y<x) { return y; }
if (z<y&&z<x) { return z; }
}
int max(int x, int y, int z){
if (x>y&&x>z) { return x; }
if (y>z&&y>x) { return y; }
if (z>y&&z>x) { return z; }
}

int
main ()
{
int x = 2, y = 3, z = 4;
int result0 = max(x, y, z) - pow(2, x) * pow(min(x, y, z), 2);
int result1 = sin(2*x) + max(x, y, z) * pow(min(x, y, z), 2);

printf("%f", (float)result0/result1);

return 0;
}

Результат виконання:

Висновок: на даній лабораторній роботі я визначив та навчився


використовувати особливості умовного оператора.

You might also like