МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ імені Тараса Шевченка
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра програмних систем і технологій



Дисципліна:
«Функціональне програмування»


Лабораторна робота № 7
на тему:
«Обробка рядків та файлів
мовами функціонального програмування»


Виконав:
студент групи ІПЗ-44мс
Косенко Клим Сергійович

Перевірила:
Ніколаєнко Анастасія Юріївна


Київ 2023












Мета роботи

Опанувати теоретичні основи обробки рядків та текстових файлів мовами
функціонального програмування та розробити програми їх реалізації




Умова завдання
Умова завдання


Код
        "#lang scheme
        (define (capitalize-initial-letters str)
          (string-join
           (map
            (lambda (word)
              (if (string=? (substring word 0 1) (string-upcase(substring word 0 1)))
                  (string-upcase word)
                  word))
            (string-split str " "))
           " "))
        
        (define text '("зчитати рядки із Створеного програмою Файлу"
                       "вивести їх на Екран"
                       "зробити Великою усі літери кожного слова"
                       "яке Починається з великої літери"))
        (display text)
        (newline)
        (define processed-lines (map (lambda (line) (capitalize-initial-letters line)) text))
        (display processed-lines)
        
        (let ((port (open-output-file "input.txt")))
        (map (lambda (line) (write line port)) processed-lines)
        (close-output-port port))
        
        (define (print-file name) 
          (let ((port (open-input-file name))) ;відкрити порт
            (print-file-helper port)           ;вивести рядки файлу
            (close-input-port port)            ; закрити порт
            'done))
        
        (define (print-file-helper port)     ; допоміжна процедура друку файлу
          (let ((action (read port)))         ; читати порт    
              (if (eof-object? action)        ;якщо кінець файлу 
                'done                         ; робота звкінчена
                (begin (write action)         ; інакше писати файл
                      (print-file-helper port)))))
        
        (newline)
        (display "Виведення тексту з файлу")
        (newline)
        (print-file "input.txt")
        "
      



Скріншот роботи та результату
Результат виконання
Результат виконання



Висновок

Лабораторна робота дозволила успішно опанувати теоретичні аспекти обробки рядків та текстових файлів у функціональному програмуванні.
Розроблені програми виявилися ефективними для обробки та маніпуляції рядками, а також для читання та запису даних у текстових файлах.
Оволодіння цими концепціями розширило знання та навички у функціональному програмуванні, забезпечуючи можливість практичного
використання цих знань у реальних задачах.