🗊 Презентация Вывод строки символов на экран монитора. Ввод строки символов с клавиатуры. Создание и удаление файлов

Нажмите для полного просмотра!
Вывод строки символов на экран монитора. Ввод строки символов с клавиатуры. Создание и удаление файлов, слайд №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

Содержание

Вы можете ознакомиться и скачать презентацию на тему Вывод строки символов на экран монитора. Ввод строки символов с клавиатуры. Создание и удаление файлов. Доклад-сообщение содержит 41 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Ввод / вывод
Описание слайда:
Ввод / вывод

Слайд 2


Задачи Вывод строки символов на экран монитора Ввод строки символов с клавиатуры Создание и удаление файлов Чтение данных из файла Запись данных в...
Описание слайда:
Задачи Вывод строки символов на экран монитора Ввод строки символов с клавиатуры Создание и удаление файлов Чтение данных из файла Запись данных в файл Работа с командной строкой

Слайд 3


монады Монада ввода - вывода используется в Haskell как связующее звено между значениями, присущими функциональному языку, и действиями,...
Описание слайда:
монады Монада ввода - вывода используется в Haskell как связующее звено между значениями, присущими функциональному языку, и действиями, характеризующими операции ввода - вывода и императивное программирование в общем. Порядок вычисления выражений в Haskell ограничен только зависимостями данных; реализация обладает значительной свободой в выборе этого порядка. Действия, тем не менее, должны быть упорядочены определенным образом для выполнения программы и, в частности, ввода - вывода, для того чтобы быть правильно интерпретированы. В Haskell монада ввода - вывода предоставляет пользователю способ указать последовательное связывание действий, и реализация обязана соблюдать этот порядок.

Слайд 4


монады Термин монада происходит из отрасли математики, известной как теория категорий. Однако, с точки зрения программиста Haskell , лучше думать о...
Описание слайда:
монады Термин монада происходит из отрасли математики, известной как теория категорий. Однако, с точки зрения программиста Haskell , лучше думать о монаде как об абстрактном типе данных. В случае монады ввода - вывода абстрактными значениями являются упомянутые выше действия. Некоторые операции являются примитивными действиями, соответствующими обычным операциям ввода - вывода. Специальные операции последовательно связывают действия, соответствующие последовательным операторам (таким как точка с запятой) в императивных языках.

Слайд 5


Все монады представлены в лице класса типов Monad - IO class Monad m where (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b return :: a ->...
Описание слайда:
Все монады представлены в лице класса типов Monad - IO class Monad m where (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b return :: a -> m a fail :: String -> m a

Слайд 6


Компоновка >>= Метод (>>=) - это оператор последовательной компоновки (sequentially composition). Иногда его ещё называют оператором связывания...
Описание слайда:
Компоновка >>= Метод (>>=) - это оператор последовательной компоновки (sequentially composition). Иногда его ещё называют оператором связывания (bind): он связывает два IO-действия воедино, извлекая результат, возвращённый левым действием, и передавая его в качестве аргумента правому действию (>>=) :: IO a -> (a -> IO b) -> IO b Первый аргумент - это IO-действие, которое, выполнив свою работу, вернёт значение некоторого типа a. Второй аргумент - это функция, принимающая значение типа a в качестве аргумента и возвращающая IO-действие, которое, выполнив свою работу, вернёт значение некоторого типа b.

Слайд 7


пример main :: IO () main = do text
Описание слайда:
пример main :: IO () main = do text

Слайд 8


Затем >> Монадический оператор >> - это оператор “затем” (then). Это простейший случай связывания: действия связываются без извлечения значений.
Описание слайда:
Затем >> Монадический оператор >> - это оператор “затем” (then). Это простейший случай связывания: действия связываются без извлечения значений.

Слайд 9


return obtainTextFromUser :: IO String obtainTextFromUser = do putStrLn "Enter your text, please: " firstText
Описание слайда:
return obtainTextFromUser :: IO String obtainTextFromUser = do putStrLn "Enter your text, please: " firstText

Слайд 10


Пример IO в do нотации: Пример IO в do нотации: main = do putStrLn "Hello, what is your name?" name > getLine >>= \name -> putStrLn...
Описание слайда:
Пример IO в do нотации: Пример IO в do нотации: main = do putStrLn "Hello, what is your name?" name > getLine >>= \name -> putStrLn ("Hello " ++ name ++ "!") или, очень примитивно, без специальной формы для bind: main = putStrLn "Hello, what is your name?" >>= \x -> getLine >>= \name -> putStrLn ("Hello " ++ name ++ "!")

Слайд 11


Функции вывода putChar :: Char -> IO () putStr :: String -> IO () putStrLn :: String -> IO () --добавляет символ новой строки print :: Show a => a ->...
Описание слайда:
Функции вывода putChar :: Char -> IO () putStr :: String -> IO () putStrLn :: String -> IO () --добавляет символ новой строки print :: Show a => a -> IO ()

Слайд 12


Исполняемый файл main = putStrLn "hello, world" Сохраняем в файле Helloword.hs и компилируем В текущей директории ghc --make helloworld.hs...
Описание слайда:
Исполняемый файл main = putStrLn "hello, world" Сохраняем в файле Helloword.hs и компилируем В текущей директории ghc --make helloworld.hs Появились объектный и интерфейсный файлы Запускаем Exe

Слайд 13


Функции ввода getChar :: IO Char -- читаем символ getLine :: IO String -- читаем строку getContents :: IO String -- Считывание всего ввода interact...
Описание слайда:
Функции ввода getChar :: IO Char -- читаем символ getLine :: IO String -- читаем строку getContents :: IO String -- Считывание всего ввода interact :: (String -> String) -> IO () readIO :: Read a => String -> IO a readLn :: Read a => IO a

Слайд 14


getLine main = do putStrLn "Hello, what's your name?" name
Описание слайда:
getLine main = do putStrLn "Hello, what's your name?" name

Слайд 15


getLine import Data.Char main = do putStrLn "What's your first name?" firstName
Описание слайда:
getLine import Data.Char main = do putStrLn "What's your first name?" firstName

Слайд 16


программа считывает и суммирует два числа типа Integer import System.IO main = do hSetBuffering stdout NoBuffering putStr "Введите новое целое...
Описание слайда:
программа считывает и суммирует два числа типа Integer import System.IO main = do hSetBuffering stdout NoBuffering putStr "Введите новое целое число: " x1

Слайд 17


getChar Программа принимает три символа с клавиатуры и выводит их в обратном порядке: import Control.Applicative f :: Char -> Char -> Char -> String...
Описание слайда:
getChar Программа принимает три символа с клавиатуры и выводит их в обратном порядке: import Control.Applicative f :: Char -> Char -> Char -> String f a b c = reverse $ [a,b,c] main :: IO () main = print =

Слайд 18


Файлы type FilePath = String writeFile :: FilePath -> String -> IO () appendFile :: FilePath -> String -> IO () readFile :: FilePath -> IO String
Описание слайда:
Файлы type FilePath = String writeFile :: FilePath -> String -> IO () appendFile :: FilePath -> String -> IO () readFile :: FilePath -> IO String

Слайд 19


readFile readFile readFile :: FilePath -> IO String import System.IO main = do contents
Описание слайда:
readFile readFile readFile :: FilePath -> IO String import System.IO main = do contents

Слайд 20


writeFile writeFile :: FilePath -> String -> IO () import System.IO import Data.Char main = do contents
Описание слайда:
writeFile writeFile :: FilePath -> String -> IO () import System.IO import Data.Char main = do contents

Слайд 21


Добавление данных в файл appendFile import System.IO main = do todoItem
Описание слайда:
Добавление данных в файл appendFile import System.IO main = do todoItem

Слайд 22


openFile import System.IO main = do handle
Описание слайда:
openFile import System.IO main = do handle

Слайд 23


data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode withFile :: FilePath -> IOMode -> (Handle -> IO a) -> IO a. import System.IO main =...
Описание слайда:
data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode withFile :: FilePath -> IOMode -> (Handle -> IO a) -> IO a. import System.IO main = do withFile “test.txt" ReadMode (\handle -> do contents

Слайд 24


withFile' :: FilePath -> IOMode -> (Handle -> IO a) -> IO a withFile' path mode f = do handle
Описание слайда:
withFile' :: FilePath -> IOMode -> (Handle -> IO a) -> IO a withFile' path mode f = do handle

Слайд 25


Аргументы командной строки getArgs :: IO [String] import System.Environment import Data.List main = do args
Описание слайда:
Аргументы командной строки getArgs :: IO [String] import System.Environment import Data.List main = do args

Слайд 26


Основные подходы
Описание слайда:
Основные подходы

Слайд 27


Простой ввод-вывод import System.IO import Data.Char main :: IO () main = do contents String operate = ... -- ваша функция
Описание слайда:
Простой ввод-вывод import System.IO import Data.Char main :: IO () main = do contents String operate = ... -- ваша функция

Слайд 28


Список действий Если шаблон, описанный в предыдущем разделе, недостаточен для ваших задач, то следующим шагом будет использование списка действий....
Описание слайда:
Список действий Если шаблон, описанный в предыдущем разделе, недостаточен для ваших задач, то следующим шагом будет использование списка действий. Функцию main можно написать так: main :: IO () main = do x1

Слайд 29


Копирование файлов import System.IO import Data.Char ( toUpper ) import System.Environment main = do [f1,f2]
Описание слайда:
Копирование файлов import System.IO import Data.Char ( toUpper ) import System.Environment main = do [f1,f2]

Слайд 30


import System.IO import System.IO import System.Directory import Data.List main = do handle
Описание слайда:
import System.IO import System.IO import System.Directory import Data.List main = do handle

Слайд 31


View , Add , Remove import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String, [String] -> IO ())]...
Описание слайда:
View , Add , Remove import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String, [String] -> IO ())] dispatch = [ ("add", add) , ("view", view) , ("remove", remove) ] main = do (command:args) < getArgs let (Just action) = lookup command dispatch action args

Слайд 32


View , Add , Remove add :: [String] -> IO () add [fileName, todoItem] = appendFile fileName (todoItem ++ "\n") view :: [String] -> IO ()...
Описание слайда:
View , Add , Remove add :: [String] -> IO () add [fileName, todoItem] = appendFile fileName (todoItem ++ "\n") view :: [String] -> IO () view [fileName] = do contents show n ++ " - " ++ line) [0..] todoTasks putStr $ unlines numberedTasks

Слайд 33


View , Add , Remove remove :: [String] -> IO () remove [fileName, numberString] = do handle
Описание слайда:
View , Add , Remove remove :: [String] -> IO () remove [fileName, numberString] = do handle

Слайд 34


import System.Environment import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String, [String] -> IO...
Описание слайда:
import System.Environment import System.Environment import System.Directory import System.IO import Data.List dispatch :: [(String, [String] -> IO ())] dispatch = [ ("add", add) , ("view", view) , ("remove", remove) ] main = do (command:args) IO () add [fileName, todoItem] = appendFile fileName (todoItem ++ "\n")

Слайд 35


$ ./todo view todo.txt $ ./todo view todo.txt 0 - Iron the dishes 1 - Dust the dog 2 - Take salad out of the oven $ ./todo add todo.txt "Pick up...
Описание слайда:
$ ./todo view todo.txt $ ./todo view todo.txt 0 - Iron the dishes 1 - Dust the dog 2 - Take salad out of the oven $ ./todo add todo.txt "Pick up children from drycleaners" $ ./todo view todo.txt 0 - Iron the dishes 1 - Dust the dog 2 - Take salad out of the oven 3 - Pick up children from drycleaners $ ./todo remove todo.txt 2 $ ./todo view todo.txt 0 - Iron the dishes 1 - Dust the dog 2 - Pick up children from drycleaners

Слайд 36


Обработка исключений в монаде ввода - вывода Монада ввода - вывода включает простую систему обработки исключений. Любая операция ввода - вывода может...
Описание слайда:
Обработка исключений в монаде ввода - вывода Монада ввода - вывода включает простую систему обработки исключений. Любая операция ввода - вывода может вызвать исключение вместо возвращения результата. Исключения в монаде ввода - вывода представлены значениями типа IOError. Это абстрактный тип: его конструкторы скрыты от пользователя. Библиотека IO определяет функции, которые конструируют и изучают значения IOError . Единственной функцией Prelude, которая создает значение IOError, является userError. Пользовательские значения ошибок включают строку с описанием ошибки. userError :: String -> IOError Исключения вызываются и отлавливаются с помощью следующих функций: ioError :: IOError -> IO a catch :: IO a -> (IOError -> IO a) -> IO a Функция ioError вызывает исключение; функция catch устанавливает обработчик, который получает любое исключение, вызванное действием, защищенным catch. Исключение отлавливается самым последним обработчиком, установленным catch. Эти обработчики не действуют выборочно: они отлавливают все исключения. Распространение исключения нужно явно обеспечить в обработчике путем повторного вызова любого нежелательного исключения. Например, в f = catch g (\e -> if IO.isEOFError e then return [] else ioError e) функция f возвращает [], когда в g возникает исключение конца файла, иначе исключение передается следующему внешнему обработчику. Функция isEOFError является частью библиотеки IO. Когда исключение передается за пределы главной программы, система Haskell выводит связанное с ним значение IOError и выходит из программы. Метод fail экземпляра IO класса Monad вызывает userError так: instance Monad IO where ...bindings for return, (>>=), (>>) fail s = ioError (userError s)

Слайд 37


Ошибки ввода - вывода Ошибки типа IOError используются монадой ввода - вывода. Это абстрактный тип; библиотека обеспечивает функции для опроса и...
Описание слайда:
Ошибки ввода - вывода Ошибки типа IOError используются монадой ввода - вывода. Это абстрактный тип; библиотека обеспечивает функции для опроса и конструирования значений в IOError: isAlreadyExistsError --- операция завершилась неуспешно, потому что один из ее аргументов уже существует. isDoesNotExistError --- операция завершилась неуспешно, потому что один из ее аргументов не существует. isAlreadyInUseError --- операция завершилась неуспешно, потому что один из ее аргументов является однопользовательским ресурсом, который уже используется (например, открытие одного и того же файла дважды для записи может вызвать эту ошибку). isFullError --- операция завершилась неуспешно, потому что устройство заполнено. isEOFError --- операция завершилась неуспешно, потому что был достигнут конец файла. isIllegalOperation --- операция невозможна. isPermissionError --- операция завершилась неуспешно, потому что пользователь не имеет достаточно привилегий операционной системы на выполнение этой операции. isUserError --- определенное программистом значение ошибки вызвано использованием fail.

Слайд 38


Ошибки ввода - вывода Все эти функции возвращают значение типа Bool, которое равно True, если ее аргументом является соответствующий вид ошибки, и...
Описание слайда:
Ошибки ввода - вывода Все эти функции возвращают значение типа Bool, которое равно True, если ее аргументом является соответствующий вид ошибки, и False иначе. Любая функция, которая возвращает результат IO, может завершиться с ошибкой isIllegalOperation. Дополнительные ошибки, которые могут быть вызваны реализацией, перечислены после соответствующей операции. В некоторых случаях реализация не способна различить возможные причины ошибки. В этом случае она должна вернуть isIllegalOperation. Имеются три дополнительные функции для того, чтобы получить информацию о значении ошибки, --- это ioeGetHandle, которая возвращает Just hdl, если значение ошибки относится к дескриптору hdl, и Nothing иначе; ioeGetFileName, которая возвращает Just имя, если значение ошибки относится к файлу имя, и Nothing иначе; и ioeGetErrorString, которая возвращает строку. Для "пользовательских" ошибок (которые вызваны использованием fail), строка, возвращенная ioeGetErrorString, является аргументом, который был передан в fail; для всех остальных ошибок строка зависит от реализации. Функция try возвращает ошибку в вычислении, явно использующем тип Either . Функция bracket охватывает обычный способ выделения памяти, вычисления и освобождения памяти, в котором шаг освобождения должен произойти даже в случае ошибки во время вычисления. Это аналогично try-catch-finally в Java.

Слайд 39


Обработка ошибок import System.Environment import System.IO import System.Directory main = do (fileName:_)
Описание слайда:
Обработка ошибок import System.Environment import System.IO import System.Directory main = do (fileName:_)

Слайд 40


import System.Random import System.Random import Control.Monad(when) main = do gen IO () askForNumber gen = do let (randNumber, newGen) = randomR...
Описание слайда:
import System.Random import System.Random import Control.Monad(when) main = do gen IO () askForNumber gen = do let (randNumber, newGen) = randomR (1,10) gen :: (Int, StdGen) putStr "Which number in the range from 1 to 10 am I thinking of? " numberString

Слайд 41


Дополнительная литература О монадах Объяснение ввода-вывода в Haskell без монад Система ввода/вывода
Описание слайда:
Дополнительная литература О монадах Объяснение ввода-вывода в Haskell без монад Система ввода/вывода



Похожие презентации
Mypresentation.ru
Загрузить презентацию