'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