1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
'def title Задачи - ООП, Седмица 6, 25.03.2026
'def desc Условията на задачите за упражнение.
# {title}
{pagenav 3 min;24 March 2026;24 March 2026}
## За решаване
### Задача 1
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise01.cpp}
Реализирайте програма, която създава {b текстов} файл "HelloWorld.txt" и записва в него низа {` Hello World!}.
Уверете се че файла се създава и това е неговото съдържание.
### Задача 2
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise02.cpp}
От входа получавате име на {b текстов} файл.
След това трябва да принтирате съдържанието на този файл.
### Задача 3
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise03.cpp}
Реализирайте програма, която приема на първия ред име на файл и след това текст.
Този текст може да е на няколко реда, като {b няма ограничение в дължината на редовете}!
Знака {` @} обозначава край на входния текст (и съответно, край на програмата).
Трябва като резултат да е създаден {b текстов} файл с подаденото име и съдържание.
### Задача 4
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise04.cpp}
От входа получавате име на {b текстов} файл.
Трябва да изкарате всички редове във файла, в обратен ред (последния ред става първи, пред-последния втори и так. нат.).
.important
Използвайте минимално количество памет!
### Задача 5
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise05.cpp}
От входа получавате на един ред име на файл.
След това неотрицателно цяло число {` N} и накрая {` N} на брой 64-битови числа с плаваща запетая.
Трябва да запазите всички тези числа в {b двоичен} файл с подаденото име.
.question
Каква е разликата между {` <<} и {` write}?
Кое е по-удачно тук?
### Задача 6
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise06.cpp}
От входа получавате на един ред име на {b двоичен} файл.
Този файл съдържа 64-битови числа с плаваща запетая.
Изкарайте на екрана всички числа от файла.
Изтеглете следните файлове и проверете дали вашата програма изкарва коректен изход:
.table
.2
|= Файл
|= Изход
|: {url simple.dat;./simple.dat}
|: 1.1 2.2 3.3 4.4 5.5
|: {url empty.dat;./empty.dat}
|: {i нищо, файла е празен}
|: {url constants.dat;./constants.dat}
|: 2.71828 3.14159 1.61803 0.57721
### Задача 7
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise07.cpp}
Реализирайте структура {` Smartphone}, която съдържа цяло 16-битово число за номер на версията на операционната система, неотрицателно 64-битово число за сериен номер, 32-битово число с плаваща запетая за {url SAR;https://www.gsmarena.com/glossary.php3?term=sar} и буква за ревизия на хардуера, {b в този ред}.
От входа получавате неотрицателно цяло число {` N} и след това данни за {` N} на брой смартфона.
Трябва да запишете всички тези стойности в {b двоичен} файл.
### Задача 8
.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week06/Exercise08.cpp}
Реализирайте структура {` Smartphone} със същите полета като в предходната задача.
От входа получавате на един ред името на {b двоичен} файл.
Трябва да изкарате на екрана (стойностите на) всички смартофони във файла.
Изтеглете следните файлове и проверете дали вашата програма изкарва коректен изход:
.table
.2
|= Файл
|= Изход
|: {url galaxyS26Ultra.dat;./galaxyS26Ultra.dat}
|: 16 83001852 1.09 B
|: {url oneplus15.dat;./oneplus15.dat}
|: 16 55929 1.17 A\n16 95200 1.17 T\n16 110999 1.08 R
|