You are on page 1of 10

ПВНЗ БУКОВИНСЬКИЙ УНІВЕРСИТЕТ

Кафедра комп’ютерних систем і технологій

ЗВІТ
Про виконання лабораторної роботи № 3
“Алгоритмічна конструкція розгалуження”
з дисципліни “АЛГОРИТМІЗАЦІЯ І ПРОГРАМУВАННЯ”
Варіант №16

Виконав студент групи “К-11”


Лебідь Е.Ю.
Прийняв викладач
Артеменко О.І.

2020
Лабораторна робота №3
Тема: Алгоритмічна конструкція розгалуження
Мета: Реалізація алгоритмів з розгалуженнями мовою C.
Завдання: Здобути навички створення, відлагодження та реалізації програм з
різними видами алгоритмічних розгалужень мовою C.

GitHub: https://github.com/Aves2001/GitHub_Lab_3_Lebid_Eduard

Завдання 1. Створити програму згідно свого варіанта. Виконати


завдання двома способами:
A) з використанням скороченої форми оператора розгалуження if
B) з використанням повної форми оператора розгалуження if … else або
за необхідності вкладення if…else if

16. Дано ціле число а та дійсне c. Якщо не можливо обчислити значення

{
a 2−4 c
, a=2
b= 4 ac
виразу – повідомити користувача про це.
√ ac−2 a , a=4
2
c −4 a , a=6

A)
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

int a = 0;
float b = 0;
float c = 0;

int chcp, chcpOut = 0;


int main(void)
{
// память chcp
chcp = GetConsoleCP();
chcpOut = GetConsoleOutputCP();

// UTF-8
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
//

printf("a = ");
scanf ("%d",&a);
printf("c = ");
scanf ("%f",&c);

if (a == 2) b = (a*a-4*c) / (4*a*c);
if (a == 4) b = sqrt(a*c-2*a);
if (a == 6) b = c*c-4*a;

if (a == 2 || a == 4 || a == 6) printf("\r\nb = %g\r\n", b);


if (a !=2 && a != 4 && a !=6) printf("\r\nНеможливо обчислити!\r\n");

// Вертаєм chcp
SetConsoleCP(chcp);
SetConsoleOutputCP(chcpOut);
//
getch();
return 0;
}

B)

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

int a = 0;
float b = 0;
float c = 0;

int chcp, chcpOut = 0;


int main(void)
{
// память chcp
chcp = GetConsoleCP();
chcpOut = GetConsoleOutputCP();

// UTF-8
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
//
printf("a = ");
scanf ("%d",&a);
printf("c = ");
scanf ("%f",&c);

if (a == 2) b = (a*a-4*c) / (4*a*c);
else if (a == 4) b = sqrt(a*c-2*a);
else if (a == 6) b = c*c-4*a;

if (a == 2 || a == 4 || a == 6) printf("\r\nb = %g\r\n", b);


else printf("\r\nНеможливо обчислити!\r\n");

// Вертаєм chcp
SetConsoleCP(chcp);
SetConsoleOutputCP(chcpOut);
//
getch();
return 0;
}
Завдання 2. Створити програму згідно свого варіанта:
Частина 1: використати if … else або за необхідності вкладення if…else if

16. Дано точку А з координатами (х, y). Визначити місцезнаходження цієї


точки в декартовій системі координат (вказати номер квадранта)

#include <stdio.h>
#include <conio.h>
#include <windows.h>

float x = 0;
float y = 0;

int chcp, chcpOut = 0;


int main(void)
{
// память chcp
chcp = GetConsoleCP();
chcpOut = GetConsoleOutputCP();

// UTF-8
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
//

printf("\r\nВведіть координати точки\r\n");


printf("\r\nx = ");
scanf ("%f",&x);
printf("y = ");
scanf ("%f",&y);

if ((x>0) && (y>0)) printf("\r\n 1 квадрант\n");


else if ((x<0) && (y>0)) printf("\r\n 2 квадрант\n");
else if ((x<0) && (y<0)) printf("\r\n 3 квадрант\n");
else if ((x>0) && (y<0)) printf("\r\n 4 квадрант\n");
else if (x==0 && y==0) printf("\r\n Точка на початку
координат\n");
else if ((x==0) && (y>0) || (y<0)) printf("\r\n
Точка на осі Y\n");
else if ((x<0) || (x>0) && (y==0)) printf("\r\n
Точка на осі X\n");

// Вертаєм chcp
SetConsoleCP(chcp);
SetConsoleOutputCP(chcpOut);
//
getch();
return 0;
}
Частина 2: використати конструкцію switch…case (1 бал)

16. Задано ціле число n, 1 ≤n ≤ 12, яке вказує порядковий номер місяця в році.
За введеним значенням n надрукувати назву відповідного місяця

#include <stdio.h>
#include <conio.h>
#include <windows.h>

char n = 0;

int chcp, chcpOut = 0;


int main(void)
{
// память chcp
chcp = GetConsoleCP();
chcpOut = GetConsoleOutputCP();

// UTF-8
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
//

printf ("\r\nn = ");


scanf ("%d", &n);
printf ("\r\n");
if (1 <= n && 12 >= n)
{
switch (n)
{
case 1: printf("СІЧЕНЬ\n"); break;
case 2: printf("ЛЮТИЙ\n"); break;
case 3: printf("БЕРЕЗЕНЬ\n"); break;
case 4: printf("КВІТЕНЬ\n"); break;
case 5: printf("ТРАВЕНЬ\n"); break;
case 6: printf("ЧЕРВЕНЬ\n"); break;
case 7: printf("ЛИПЕНЬ\n"); break;
case 8: printf("СЕРПЕНЬ\n"); break;
case 9: printf("ВЕРЕСЕНЬ\n"); break;
case 10: printf("ЖОВТЕНЬ\n"); break;
case 11: printf("ЛИСТОПАД\n"); break;
case 12: printf("ГРУДЕНЬ\n"); break;
}
} else printf("Неправильне введення!!!\n");
// Вертаєм chcp
SetConsoleCP(chcp);
SetConsoleOutputCP(chcpOut);
//
getch();
return 0;
}

Завдання 3. Створити програму для обчислення значень функції згідно


свого варіанту. Передбачити у програмі попередню перевірку
допустимості вхідних параметрі для арифметичних операцій, які при
певних значеннях аргументу можуть давати невизначений результат
(ділення на нуль, корінь з від’ємного числа, логарифмування числа,
меншого за нуль тощо). Повідомити користувача про це. Наприклад
«для заданих значень y та z у обчислюваному виразі виконується
ділення на 0»

16. Задані значення цілих змінних x,y. Обчислити значення функції:


x+ y x y
f= 2 2
+ 2
+ 2
x + xy − y 1− y 1+ x

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

double x = 0;
double y = 0;
double f = 0;

int chcp, chcpOut = 0;


int main(void)
{
// память chcp
chcp = GetConsoleCP();
chcpOut = GetConsoleOutputCP();

// UTF-8
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
//

printf ("\r\nx = ");


scanf ("%lf", &x);

printf ("y = ");


scanf ("%lf", &y);

double a1 = x+y;
double a2 = pow(x,2);
double a3 = x*y;
double a4 = pow(y,2);
double a5 = a4;
double a6 = a2;
double b1 = a2+a3-a4; //n1
double b2 = 1-a5; //n2
double b3 = 1+a6; //n3
double c1 = a1; //v1
double c2 = x; //v2
double c3 = y; //v3
double f1 = (c1/b1);
double f2 = (c2/b2);
double f3 = (c3/b3);
double f = f1 + f2 + f3;

if (b1 == 0 || b2 == 0 || b3 == 0)
{
printf("\r\nДля заданих значень X та Y у обчислюваному виразі
виконується ділення на 0\r\n");
} else printf ("\r\nf = %.2f\r\n", f);

// Вертаєм chcp
SetConsoleCP(chcp);
SetConsoleOutputCP(chcpOut);
getch();
return 0;
}
GitHub: https://github.com/Aves2001/GitHub_Lab_3_Lebid_Eduard

Висновок: виконуючи лабораторну роботу №3 я здобув навички створення,


відлагодження та реалізації програм з різними видами алгоритмічних
розгалужень мовою C.

You might also like