You are on page 1of 10

Блок №1 «Лінійні алгоритми». «Введення та виведення».

В додатках документу містяться рекомендації

до виконання, та деякі приклади, які дозволять виконати завдання

Задача №1

Знайти середнє арифметичне натуральних чисел x, y, z.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводяться три натуральні числа, кожне в окремому
рядку. 
Вихідні дані. В стандартний вихідний потік вивести одне натуральне число – середнє арифметичне
введених чисел, округлене до найближчого цілого.

Examples

InputOutput

1 2

27 29

59

Рішення:
#include <iostream>

using namespace std;

int main()
{
int a, b, c;
double z;
cin >>a>>b>>c;
z=(a+b+c)/3.0;
cout << z;
return 0;
}

Завдання №2

Знайти відстань між точками з координатами (x1, y1) та (x2, y2).

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводяться чотири дійсні числа x1, y1, x2, y2, кожне в
окремому рядку. 
Вихідні дані. В стандартний вихідний потік вивести одне дійсне число – значення відстані між
точками, округлене до трьох цифр після коми.

Examples

Input Output
0 5.780
4.1
-5
7
Рішення:
#include <iostream>
#include <cmath>
#include <stdio.h>

using namespace std;

int main()
{
double x1, x2, y1, y2, a;
cin>>x1>>y1>>x2>>y2;
a=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
printf("%.3f",a);
return 0;
}

Завдання №3

Знайти площу трикутника зі сторонами a, b, c.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводяться три дійсні числа a, b, c, кожне в окремому
рядку. 
Вихідні дані. В стандартний вихідний потік вивести одне дійсне число – значення площі
трикутника, округлене до двох цифр після коми.

Examples

Input Output
3 6.00
4
5
Рішення:
#include <iostream>
#include <cmath>
#include <stdio.h>

using namespace std;

int main()
{
float a, b, c, p, S;
cin>>a>>b>>c;
p=(a+b+c)/2.0;
S=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2f",S);
return 0;
}

Завдання №4

Знайти суму цифр тризначного цілого числа k.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводиться тризначне ціле число. 
Вихідні дані. В стандартний вихідний потік вивести одне ціле число – суму цифр введеного числа.

Examples

Input Output
794 20
Рішення:
#include <iostream>
using namespace std;

int main()
{
int a, x1, x2, x3;
cin>>a;
x1 = a/100;
a = a % 100;
x2 = a/10;
a=a%10;
x3 = a;
cout<<x1+x2+x3;
return 0;
}

Завдання №5

Вивести на екран першу цифру дробової частини додатного дійсного числа.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводиться дійсне число. 
Вихідні дані. В стандартний вихідний потік вивести першу цифру дробової частини введеного
числа.
Input Output
Examples
32.5975
Рішення:
#include <iostream>

using namespace std;

int main()
{
double x;
cin >>x;
x = x * 10;
int a = (float)x;
a = a %10;
cout << a;
}

Завдання №6

Обчислити периметр і площу правильного 17-кутника, який вписаний в коло заданого радіусу.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводиться дійсне число - радіус описаного навколо 17-
кутника кола. 
Вихідні дані. В стандартний вихідний потік через пробіл вивести два числа - периметр та площу
правильного 17-кутника з точністю до тисячних.

Examples

Input Output
24 149.940 1768.639
Рішення:
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
int r;
cin>>r;
float S=17*(r*r)*(0.1806208129);
float P=17*8.82;
printf("%0.3f",P);
cout<<endl;
printf("%0.3f",S);
return 0;
}

Завдання №7

Обчислити дробову частину середнього геометричного трьох заданих цілих чисел.

Технічні умови 
Вхідні дані. Зі стандартного вхідного потоку вводяться три додатних цілих числа розділених
пробілом. 
Вихідні дані. В стандартний вихідний потік вивести дробову частину середнього геометричного
введених чисел з точністю до трьох знаків після коми.

Examples

Input Output
234 0.884
Рішення:
#include <iostream>
#include <cmath>
#include <stdio.h>

using namespace std;

int main()
{
int a, b, c;
cin>>a>>b>>c;
double x=pow(a*b*c,1.0/3);
a=x;
x=x-a;
printf("%0.3f",x);
return 0;
}

Завдання №8

За координатами трьох вершин деякого трикутника знайти його площу і периметр.

Технічні умови 
Вхідні дані. У стандартному вхідному потоці знаходяться три рядки, кожен з яких містить по два
числа розділених пробілом – координати відповідної вершини трикутника. 
Вихідні дані. В стандартний вихідний потік у окремих рядках вивести два дійсних числа,
заокруглених до трьох знаків після коми – значення площі та периметра.

Examples

Input Output
00 0.500
10 3.414
11

Рішення:
#include <iostream>
#include <cmath>
#include <stdio.h>

using namespace std;

int main()
{
float x1,y1,x2,y2,x3,y3,ab,ac,bc;
cin>> x1>>y1>>x2>>y2>>x3>>y3;
ab=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
ac=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
bc=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
float P=ab+ac+bc;
float p=P/2;
float S=sqrt(p*(p-ab)*(p-ac)*(p-bc));
printf("%0.3f",P);
cout<<endl;
printf("%0.3f",S);
return 0;
}

Завдання №8

Знайти добуток цифр заданого чотиризначного числа.

Технічні умови 
Вхідні дані. У стандартному вхідному потоці міститься додатне чотиризначне число. 
Вихідні дані. В стандартний вихідний потік вивести число, яке є добутком всіх цифр заданого
числа.

Examples

InputOutput

1234 24

Рішення:
#include <iostream>
using namespace std;

int main()
{
int a, x1, x2, x3, x4;
cin>>a;
x1 = a/1000;
a = a % 1000;
x2 = a/100;
a=a%100;
x3 = a/10;
a=a%10;
x4=a;
cout<<x1*x2*x3*x4;
return 0;
}

Завдання №9

Визначити число, яке утворюється із заданого шляхом виписування цифр у зворотному порядку. 
Вхідні дані. У стандартному вхідному потоці міститься додатне чотиризначне число. 
Вихідні дані. В стандартний вихідний потік вивести число, яке утворюється із заданого шляхом
виписування цифр у зворотному порядку.

Examples

Input Output
2015 5102
Рішення:
#include <iostream>

using namespace std;


int main()
{
int a,z;
cin>>a;
while(a!=0)
{
z=a%10;
a=a/10;
cout<<z;
}
return 0;
}
Додаток №1 «приклади рішення деяких задач»
Додаток №2 «потрібні теоретичні знання»

У мові C++ дії, що пов’язані з операціями введення і виведення, виконуються за


допомогою функцій бібліотек. Функції ведення і виведення бібліотек мови дозволяють
читати дані з файлів та пристроїв і писати дані у файли і на пристрої.
Бібліотека мови C++ підтримує три рівня введення-виведення даних:
 введення-виведення потоку;
 введення-виведення нижнього рівня;
 введення-виведення для консолі і порту.
При введенні-виведенні потоку всі дані розглядаються як потік окремих байтів. Для
користувача потік — це файл на диску або фізичний пристрій, наприклад, дисплей чи
клавіатура, або пристрій для друку, з якого чи на який направляється потік даних.
Операції введення-виведення для потоку дозволяють обробляти дані різних розмірів і
форматів від одиночного символу до великих структур даних. Програміст може
використовувати функції бібліотеки, розробляти власні і включати їх у бібліотеку. Для
доступу до бібліотеки цих класів треба включити в програму відповідні заголовні файли.
За замовчуванням стандартні введення і виведення повідомлень про помилки відносяться
до консолі користувача (клавіатури та екрана). Це означає, що завжди, коли програма
очікує введення зі стандартного потоку, дані повинні надходити з клавіатури, а якщо
програма виводить дані — то на екран.
У мові C++ існує декілька бібліотек, які містять засоби введення-виведення,
наприклад:stdio.h, iostream.h. Найчастіше застосовують потокове введення-виведення
даних, операції якого включені до складу класів istream або iostream. Доступ до бібліотеки
цих класів здійснюється за допомогою використання у програмі директиви
компілятора #include <iostream.h>.
Для потокового введення даних вказується операція «>>» («читати з»). Це перевантажена
операція, визначена для всіх простих типів і покажчика на char. Стандартним потоком
введення є cin.
Формат запису операції введення має вигляд:
сin [>> values];
де values — змінна.
Так, для введення значень змінних х і у можна записати:
сin >> х >> у;
Кожна операція «>>» передбачає введення одного значення. При такому введенні даних
необхідно дотримуватись конкретних вимог:
 для послідовного введення декількох чисел їх слід розділяти символом пропуску («
») або Enter (дані типу char роздiляти пропуском необов’язково);
 якщо послідовно вводиться символ і число (або навпаки), пропуск треба
записувати тільки в тому випадку, коли символ (типу char) є цифрою;
 потік введення ігнорує пропуски;
 для введення великої кількості даних одним оператором їх можна розташовувати в
декількох рядках (використовуючи Enter);
 операція введення з потоку припиняє свою роботу тоді, коли всі включені до нього
змінні одержують значення. Наприклад, для операції введення х і у, що вказана
вище, можна ввести значення х та у таким чином:
2.345   789
або   2.345
789.
Для потокового виведення даних необхідна операція «<<» («записати в»), що
використовується разом з ім’ям вихідного потоку cout. Наприклад, вираз
cout << х;
означає виведення значення змінної х (або запис у потік). Ця операція вибирає необхідну
функцію перетворення даних у потік байтів.
Формат запису операції виведення представляється як:
cout << data [<< data1];,
де data, data1 — це змінні, константи, вирази тощо.
Потокова операція виведення може мати вигляд:
cout << “у =” << x + а – sin(x) << “\n“;.
Застосовуючи логічні операції, вирази треба брати в дужки:
cout << “р =” << (а && b || с) << “\n“;.
Символ переведення на наступний рядок записується як рядкова константа, тобто “\n”,
інакше він розглядається не як символ керуючої послідовності, а як число 10 (код
символу). Таких помилок можна уникнути шляхом присвоювання значення керуючих
символів змінним, тобто:
#define << sp " "
#define << ht "\t"
#define << hl "\n".
Тепер операцію виведення можна здійснити так:
cout << “у =” << x + а – sin(x)<< hl; .
Слід пам’ятати, що при виведенні даних з використанням «cout <<» не виконується
автоматичний перехід на наступний рядок, для реалізації такого переходу
застосовується так переведення рядка “\n” або операція endl. Тобто, вивести рядкову
константу можна, наприклад, так:
cout << “О деле суди по исходу \n“; 
або   cout << “О деле суди по исходу” << endl;.

You might also like