\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[brazil]{babel}
\usepackage{pifont}
\setlength{\textheight}{8.5in}
\setlength{\textwidth}{6.5in}
\setlength{\evensidemargin}{0pt}
\setlength{\oddsidemargin}{0pt}
\setlength{\topmargin}{-30pt}


\begin{document}
\noindent
{\footnotesize {\sc MAC--IME--USP}} \hspace{4.9cm} \footnotesize{\textsc{ Imre
Simon}} \hfill {\footnotesize {\sc Carlos Eduardo Ferreira}}

\vspace{-1mm}
\hspace{4.7cm} \footnotesize{\textsc{Sala 290A Tel.: 3818 6142}}
\hfill {\footnotesize {\sc Sala 297A Tel.: 3818 6140}}

\vspace{-1mm}
\hspace{6cm} \footnotesize{\textsc{email} is@ime.usp.br}
\hfill {\footnotesize {\sc e-mail} cef@ime.usp.br}

\vspace{-1mm}
\hspace{4.3cm} \footnotesize{\textsc{Monitora: Elidia Y. Itikawa}}
\hfill {\footnotesize {\sc Monitor: Marcio C. Cabral}}

\vspace{1cm}

\begin{center}
{\large\bf MAC 122 -- Princípios de Desenvolvimento de Algoritmos}
\end{center}

\begin{center}
{\bf Segundo semestre de 2000}
\end{center}

\begin{center}
{\large  Exercício-Programa 1 -- Entrega: {\bf 19 de setembro de 2000}}

\vspace{0.3cm}
Contando os formados
\end{center}

Uma tarefa que todo ano é executada pelas seções de alunos das unidades é
verificar quais alunos completaram o curso e deverão portanto colar grau
naquele ano, e quais ainda estão devendo disciplinas. O objetivo deste
exercício-programa é automatizar esta tarefa. 

Seu programa deverá ler um arquivo \texttt{curriculo.txt} 
contendo a estrutura curricular de um curso
no seguinte formato: 

\begin{verbatim}
#obrig   #optativas #créditos em opt na área  #créditos em fora de área
obrig. 1
obrig. 2
.
.
.
opt. 1
opt. 2
.
.
.
\end{verbatim}

Na primeira linha é dado o número de disciplinas obrigatórias, disciplinas
optativas, número de créditos em optativas na área e o número de créditos em
disciplinas fora de área necessários para 
que o aluno se forme. No caso do currículo do BCC, o arquivo de entrada
contendo o currículo seria o abaixo. Você pode supor que fora de área é
qualquer disciplina que não aparece nas tabelas acima (a regra do BCC diz que
fora de área é qualquer disciplina de sigla diferente de MAC, MAE, MAP e
MAT. Se quiser, implemente esta regra). 

\begin{verbatim}
31 55 32 6
MAC110
MAE121
.
.
.
MAC499
MAC310
MAC322
.
.
.
PCS308
\end{verbatim}

Além disso, seu programa deverá ler um arquivo \texttt{alunos.txt} contendo as
informações dos alunos do curso. As informações armazenadas para cada aluno
são seu nome, data de nascimento, NUSP, número de disciplinas em que o aluno
obteve aprovação e a lista destas disciplinas, contendo, para
cada uma, a sigla da disciplina e o número de créditos. Abaixo segue um pedaço
do arquivo correspondente a um determinado aluno: 

\begin{verbatim}
.
.
José da Silva
21 12 1979
3267962
11
MAC110 4
MAE121 4
MAT131 12
MAE221 4
MAT138 4
MAC122 4
MAC323 4
MAC442 4
PCS305 4
FLM112 3
PST110 2
.
.
\end{verbatim}

Seu programa deverá ler todas as informações e produzir um relatório contendo
a lista de alunos formados do ano, ordenada em ordem alfabética, e uma outra
lista, também em ordem alfabética com os alunos que ainda não se formaram,
indicando, para cada aluno, o 
que ainda precisa ser cursado. Note que os arquivos de entrada não precisam
estar ordenados de nenhuma forma. 

A entrada correspondente ao aluno acima deverá ser algo como: 
\begin{verbatim} 
.
.
José da Silva  21/12/1979  3267962
Deve as obrigatórias: MAT139 MAT213 ... MAC499
Deve 24 créditos em optativas na área
Deve 1 crédito em optativas fora da área
.
.
\end{verbatim}

\textbf{Observações}

\begin{itemize}
\item Seja cuidadoso com suas estruturas de dados. A correção será feita
levando isso em conta. 
\item Organizem-se na turma para fazer bons testes. 
\item Sua nota será dada levando em conta documentação, apresentação, clareza
do código e corretude do programa. 
\item Seja criativo. Se seu programa fizer algo a mais do que foi pedido você
poderá ganhar algum bônus na nota. 
\end{itemize} 

\end{document}
