Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week06 / index.du
blob: 052737eb7801c814f8247795496f03291187c52c (plain) (blame)
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
# Задачи - ООП, Седмица 6, 25.03.2026

'define expected-reading 3 min
'define created 24 March 2026
'define edited 24 March 2026
[$pagenav]

## За решаване

### Задача 1

Реализирайте програма, която създава [=текстов=] файл "HelloWorld.txt" и записва в него низа [`Hello World!`].
Уверете се че файла се създава и това е неговото съдържание.

### Задача 2

От входа получавате име на [=текстов=] файл.
След това трябва да принтирате съдържанието на този файл.

### Задача 3

Реализирайте програма, която приема на първия ред име на файл и след това текст.
Този текст може да е на няколко реда, като [=няма ограничение в дължината на редовете=]!
Знака [`@`] обозначава край на входния текст (и съответно, край на програмата).

Трябва като резултат да е създаден [=текстов=] файл с подаденото име и съдържание.

### Задача 4

От входа получавате име на [=текстов=] файл.
Трябва да изкарате всички редове във файла, в обратен ред (последния ред става първи, пред-последния втори и так. нат.).

.important
Използвайте минимално количество памет!

### Задача 5

От входа получавате на един ред име на файл.
След това неотрицателно цяло число [`N`] и накрая [`N`] на брой 64-битови числа с плаваща запетая.

Трябва да запазите всички тези числа в [=двоичен=] файл с подаденото име.

.question
Каква е разликата между [`<<`] и [`write`]?
Кое е по-удачно тук?

### Задача 6

От входа получавате на един ред име на [=двоичен=] файл.
Този файл съдържа 64-битови числа с плаваща запетая.

Изкарайте на екрана всички числа от файла.

Изтеглете следните файлове и проверете дали вашата програма изкарва коректен изход:
.table_2
|= Файл
|= Изход
|: [url ./simple.dat simple.dat]
|: 1.1 2.2 3.3 4.4 5.5
|: [url ./empty.dat empty.dat]
|: [*нищо, файла е празен*]
|: [url ./constants.dat constants.dat]
|: 2.71828 3.14159 1.61803 0.57721

### Задача 7

Реализирайте структура [`Smartphone`], която съдържа цяло 16-битово число за номер на версията на операционната система, неотрицателно 64-битово число за сериен номер, 32-битово число с плаваща запетая за [url https://www.gsmarena.com/glossary.php3?term=sar SAR] и буква за ревизия на хардуера, [=в този ред=].

От входа получавате неотрицателно цяло число [`N`] и след това данни за [`N`] на брой смартфона.
Трябва да запишете всички тези стойности в [=двоичен=] файл.

### Задача 8

Реализирайте структура [`Smartphone`] със същите полета като в предходната задача.

От входа получавате на един ред името на [=двоичен=] файл.
Трябва да изкарате на екрана (стойностите на) всички смартофони във файла.

Изтеглете следните файлове и проверете дали вашата програма изкарва коректен изход:
.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