Website Summary Files Commits Branches @commit @diff @stats
path: root / Week03
NameSize
..
Exercise01.cpp114 Blog stats plain blame
Exercise02.cpp131 Blog stats plain blame
Exercise03.cpp407 Blog stats plain blame
Exercise05.cpp123 Blog stats plain blame
Exercise06.cpp336 Blog stats plain blame
Exercise07.cpp674 Blog stats plain blame
Exercise08.cpp180 Blog stats plain blame
Exercise10.cpp184 Blog stats plain blame
Exercise12.cpp156 Blog stats plain blame
Exercise13.cpp369 Blog stats plain blame
README.md6.5 KiBlog stats plain blame

Задачи

https://syndamia.com/teaching/upp-2025/week03/

За решаване

Задача 1

Получавате цяло число. Трябва да върнете 0 ако е нечетно и 1 ако е четно.

Вход Изход
5 0
10 1

Задача 2

Получавате главна буква. Трябва да върнете съответната малка буква.

Вход Изход
A a
Z z
U u

Задача 3

Получавате 3 цели числа, трябва да върнете 1 ако образуват аритметична прогресия и 0 иначе.

Вход Изход
1 2 3 1
4 5 7 0
4 6 7 0
-3 5 13 1

Задача 5

Получавате десетично число: сума в левове. Трябва да върнете същата сума в евро, като 1 € = 1.95583 лв.

Поради прецизност при такива числа, вашите изходи може с много малко да се различават.

Вход Изход
1 0.511292
1.95583 1
15 7.66938
199.99 102.253
450 230.081

Задача 6

Получавате две булеви стойности. Трябва да върнете 1 ако свойството "би-импликация" е изпълнено за тях. Иначе върнете 0.

Припомняме, че би-импликацията и импликацията се дефинират по следния начин:

p <-> q = (p -> q) ^ (q -> p) ; p -> q = !p v q

Вход Изход
0 1 0
1 1 1
1 0 0
0 0 1

Задача 7

Получавате 4 цели числа от входа. За тях трябва да изкарате:

  • средно аритметично,
  • сума,
  • сума от вида 1/<първо число> + 1/<второ число> + ...,
  • умножение.
Вход Изход
1 2 3 4 2.5 10 2.08333 24
13 151 7 29 50.0 200 0.260886 398489
-293 6 0 -1 -72.0 -288 inf 0

Задача 8

Получавате 5 реални числа: коефициентите на полином от трета степен a (a различно от 0), b, c, d и потенциален негов корен x.

Трябва да върнете 1 ако x е корен на уравнението и 0 ако не е.

Припомняме, че x е корен на кубично уравнение, когато:

ax^3 + bx^2 + cx + d = 0

Вход Изход
2 3 -11 -6 2 1
2 3 -11 -6 -0.5 1
2 3 -11 -6 -3 1
2 3 -11 -6 -2 0
3 -3 -90 0 0 1
5 -2 5 -2 0.4 1

Задача 10

Получавате 6 реални числа: коефициентите на два (ортонормирани) триизмерни вектора. Върнете тяхното точково умножение.

Припомняме, че алгебричата дефиниция на точковото умножение е:

a . b = a1b1 + a2b2 + ...

Вход Изход
1 3 -5 4 -2 -1 3
1.5 2.45 3.8 1.01 5 7.005 40.384
-1 -2 3 4 0 -8 -28
3 2 1 6 5 2 30

За самоподготовка

Задача 12

Първите релефни етикети (които човек може сам да попълни) са въведени през 1958 от DYMO.

Механични устройства съдържат диск с букви (знаци), който се завърта докато не се избере желаната буква. Чрез стискане на дръжката, малък чук прищипва лентата върху диска (който има релефи на буквите), пластмасовата лента се изкривява и буква се отпечтва (подобно на пишеща машина).

Нека нашия диск съдържа само малки букви. Във входа получавате две малки букви: коя буква е избрана в момента и коя буква е желана. Трябва да върнете с колко позиции на ляво (обратно на часовниковата стрелка) трябва да се завърти диска, така че желаната буква да се избере.

Вход Изход
a a 0
a b 1
a z 25
z a 1
k j 25
w d 7

Задача 13

През 629, индийския математик Бхаскара 1ви представя една забележителна апроксимация на синус функцията (в радиани):

sin x ~= (16x(pi-x)) / (5pi^2 - 4x(pi-x)), 0 <= x <= pi

От входа ще получите два ъгъла в радиани, α и β, чиято сума е между 0 и π/2 (включително).

Използвайки единствено апроксимацията на Бхаскара 1ви, пресметнете tg(α + β). Не може да използвате коренуване!

За константата π, използвайте поне 5 цифри след десетичната запетая. Подсказка Използвайте факта, че може да представите косинус чрез отместване на синус.

Вход Изход
0 0 0
0.392698 0.392698 1
0 1.047196 1.72973
3.14159 -1.570795 inf
-0.523598 1.047196 0.578125
0.523598 0.392698 1.30265

Задача 16

Получавате 8 реални числа: всеки две последователни образуват координат в равнината. Първите два координата представят горния ляв и долния десен ъгъл на първи правоъгълник. Вторите два координата представят горния ляв и долния десен ъгъл на втори правоъгълник.

Трябва да върнете 1 ако правоъгълниците се пресичат и 0 иначе.

Вход Изход
0 6 4 0 6 6 8 2 0
0 6 4 0 4 6 8 2 1
0 6 4 0 3 3 8 2 1
-3 4.5 2.1 0.5 0 6 4 0 1
-4 8 5 -2 0 6 4 0 1