Avisos
- 18/06/2018, 13:00: definição da avaliação final divulgada
Avaliação final
A avaliação final consiste na implementação de um programa que reproduza parcialmente o funcionamento de um terminal Linux.
O programa funcionará de forma interativa, respondendo a comandos indicados através do teclado.
Por exemplo, caso seja indicado o comando pwd
, deverá ser exibido o diretório/pasta corrente.
Como outro exemplo, para o comando ls
, deverá ser listado o conteúdo da pasta atual.
É sugerido que seja implementado o maior número possível de comandos.
Listas de comandos básicos de Linux são facilmente encontradas na Internet [1, 2].
Dito isto, considere os comandos a seguir listados como básicos e esperados para o trabalho, mas não necessariamente os únicos que devem ser implementados: pwd
, ls
, cd
, cp
, mv
, rm
, cat
, head
, tail
, diff
, history
, cat
, wc
.
Alguns comandos tem funcionalidades diversas além das básicas.
Por exemplo, o comando cp
permite copiar até mesmo diretórios inteiros através de parâmetros como o -a
.
A reprodução da funcionalidade básica de cada comando é considerada suficiente.
Sendo assim, o comando cp
pode se limitar a copiar apenas arquivos individuais, por exemplo.
Ou, num outro exemplo, o comando diff
pode apenas indicar se dois arquivos são diferentes um do outro, sem fornecer detalhes sobre as diferenças.
Todavia, a implementação de outros recursos será vista com bons olhos e recompensada de acordo, obviamente.
Por fim, um recurso considerado necessário é a indicação do não reconhecimento de um comando que seja fornecido e não esteja entre aqueles suportados.
Nesse caso, uma mensagem de erro deverá ser apresentada e o programa deverá seguir seu funcionamento normal.
Além disso, outro recurso a ser considerado são os redirecionadores de saída dos comandos, >
e >>
.
Este último recurso contará para a nota do trabalho em caráter especial, superiormente aos comandos propriamente ditos.
Conteúdo Programático
- Entrada e saída básicos
- Variáveis
- if, else e else if
- Loops (for, while e do while)
- Vetores e matrizes
- Funções
- Bibliotecas básicas (stdio, math, string etc)
- Structs
- Ponteiros
- Arquivos
- Recursos diversos da linguagem
Listas de Exercícios
O site https://www.urionlinejudge.com.br/ foi utilizado para divulgação e avaliação das primeiras listas de exercícios. Sendo assim, para ter acesso às mesmas, fazer cadastrar-se no site e entrar em contato solicitando permissão para acesso a elas.
Monitoria
Monitor: Igor Lordeiro (igor.queirozlordeiro@gmail.com)
Atendimento presencial: 4as-feiras, das 14:00 às 18:00, no Laboratório de Arquitetura
Atendimento online: via facebook ou whatsapp, a qualquer hora
Links úteis
http://www.learn-c.org/
https://learnxinyminutes.com/docs/c/
http://www.cprogramming.com/tutorial/c-tutorial.html
https://www.programiz.com/c-programming
http://fresh2refresh.com/c-programming/
http://www.w3schools.in/c-tutorial/
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/index.htm