Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo 10
Números Aleatórios
Argumentos da Linha de Comando
Arquivos
Departamento de Computação
Universidade Federal de Ouro Preto
1/16
1 Valores aleatórios
3 Arquivos
2/16
Tópicos
1 Valores aleatórios
3 Arquivos
3/16
Valores aleatórios
4/16
Exemplo: lançamento de dados
lancadados.hs
module Main (main) where
main :: IO ()
main =
do putStrLn "Lançamento de dois dados"
x <- randomRIO (1,6::Int)
y <- randomRIO (1,6::Int)
putStrLn ("Faces obtidas: " ++ show x ++ " e " ++ show y)
5/16
Exemplo: lançamento de dados (cont.)
Execução do programa:
$ ./lancadados
Lancamento de dois dados
Faces obtidas: 3 e 5
$ ./lancadados
Lancamento de dois dados
Faces obtidas: 4 e 1
6/16
Tópicos
1 Valores aleatórios
3 Arquivos
7/16
Argumentos da linha de comando
getArgs :: IO [String]
8/16
Exemplo: argumentos do programa
args.hs
module Main (main) where
main =
do progName <- getProgName
putStrLn "The program name is:"
putStrLn progName
putStrLn ""
args <- getArgs
putStrLn "The arguments are:"
mapM putStrLn args
9/16
Exemplo: argumentos do programa (cont.)
Execução do programa:
$ ./args a b c -o test
The program name is:
args
10/16
Tópicos
1 Valores aleatórios
3 Arquivos
11/16
Arquivos
12/16
Exemplo: processar notas em arquivo
Criar um programa para ler de um arquivo os dados dos alunos de uma turma
– o código, o nome, a nota na primeira avaliação, a nota na segunda
avaliação – calcular a média aritmética das notas e determinar a situação de
cada aluno, gravando os resultados em outro arquivo.
13/16
Exemplo: processar notas em arquivo (cont.)
Arquivo de entrada:
1234 Pedro 1.5 1.7
1111 Carla 6.2 7.0
2121 Rafael 8.1 8.8
4321 Ivan 5.0 5.2
14/16
Exemplo: processar notas em arquivo (cont.)
Arquivo de saída:
1234 Pedro 1.5 1.7 1.6 reprovado
1111 Carla 6.2 7.0 6.6 exame especial
2121 Rafael 8.1 8.8 8.45 aprovado
4321 Ivan 5.0 5.2 5.1 exame especial
15/16
Fim
16/16