Você está na página 1de 9

UNIVERSIDADE FEDERAL DO ESP IRITO SANTO CENTRO TECNOLOGICO PET - Engenharia de Computaao c

Entrada e Sada de Dados


Programaao 1 c

Vitria, 28 de Maio de 2010 o

Ivan de Oliveira Nunes Engenharia de Computaao c ivanoliv.1@gmail.com

Juan Frana Muniz de Souza c Engenharia de Computao ca juan.franca@gmail.com

Marcos Vin cius Caus Couto Engenharia de Computaao c marcoscaus@gmail.com

Sumrio a
1 Introduo ca 2 Funes bsicas I/O co a 2.1 getChar e putChar . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Operador do . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 getLine, putStr e putStrLn . . . . . . . . . . . . . . . . . . . . 3 Tratando arquivos 3.1 readFile e writeFile . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Import, openFile, hGetLine . . . . . . . . . . . . . . . . . . . 4 Consideraes Finais co 3 4 4 4 5 7 7 8 9

Introduo ca

Haskell, como outras linguagens de programaao, possui funoes que se comuc c nicam com o sistema operacional para realizar entrada e sa de dados. Esda tas operaes trabalham com valores do tipo (IO t), e durante a sua avaliao co ca requisitam operaoes de IO ao sistema operacional. O sistema de I / O em c Haskell puramente funcional, mas tem todo o poder expressivo encontrae dos em linguagens de programao convencionais. Aoes t ca c picas incluem a leitura, gravao de arquivos, leitura de entrada. ca

2
2.1

Funes bsicas I/O co a


getChar e putChar

getChar :: IO Char A funo getChar serve para capturar um char. ca putChar :: Char IO() A funo putChar serve para imprimir um char na tela. ca

2.2

Operador do

Aoes so sequenciadas pelo operador do. c a Exemplo: main :: IO() main = do c getChar putChar c Em primeiro lugar, atribu ` varivel c o caracter escrito. Em seguida e do a a impresso o seu contedo na tela atravs da funao putChar.Veja abaixo: e u e c

Agora iremos para funoes mais interessantes. :-) c

2.3

getLine, putStr e putStrLn

getLine:: IO String A funo getLine serve para capturar o que for escrito em uma linha. ca putStr:: String IO () A funo putStr serve para imprimir uma string. ca putStrLn:: String IO () A funo putStrLn serve para imprimir uma string seguida de um enter. ca Exemplo 1: main = do x getLine putStr x Primeiramente, atribu a varivel x o que for escrito. Em segundo lugar, e do a impresso na tela a varivel x. e a Veja a gura abaixo:

Exemplo 2: main = do putStrLn Digite seu nome nome getLine putStr nome

Veja abaixo:

Com o que j vimos podemos fazer algo interessante.Veja: a JOGO DA PALAVRA

Segue abaixo o cdigo: o main = do putStrLn Digite a palavra tentativa getLine if tentativa == palavra then putStr Acertou! else putStr Errou! where palavra = PET 6

3
3.1

Tratando arquivos
readFile e writeFile

readFile:: FilePath IO String Sintaxe: varivel readFile endereo do arquivo a c A funo readFile serve para leitura de um arquivo. ca writeFile::FilePath String IO () Sintaxe: writeFile nome do arquivo(o que deseja inserir ) A funo writeFile serve para escrever em um arquivo. ca Exemplo: adiciona = do putStr (Escreva uma linha para adicionar ao arquivo Haskell.txt:) linha getLine arquivo readFile Haskell.txt writeFile Haskell.txt(arquivo ++ \n++ linha) putStr (Linha adicionada!)

Antes:

Depois:

Vale ressaltar que se o arquivo Haskell.txtno estiver na pasta, ele ser a a criado. Observe tambm que o \ninuencia na quebra de linha. e

3.2

Import, openFile, hGetLine

openFile::FilePath IOMode IO Handle Sintaxe: openFile endereo do arquivoReadMode c A funo textit serve para abrir um arquivo de texto. ca Exemplo import IO main = do x openFile /Haskell.txtReadMode y hGetLine x putStr y

Como hGetLine e openFile no so denidas no mdulo prelude, necessrio a a o e a importar o mdulo IO, na qual tais funes pertencem. hGetLine idntica o co e e a getLine visto acima. Porm, trata-se de um arquivo. E de forma similar, e temos hGetChar, hPutChar, etc.

Consideraoes Finais c

Essa simples apostila introdutria. Portanto segue abaixo uma lista de e o sites que tratam do assunto com certo aprofundamento http://www.zvon.org/other/haskell/Outputglobal/index.html http://www.haskell.org/tutorial/io.html http://book.realworldhaskell.org/read/io.html Fora as inmeras apostilas que podem ser achadas na internet. Qualquer u dvida, entrem em contato com os monitores da disciplina. u

Você também pode gostar