\documentclass{article}

\usepackage[portuguese]{babel}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{color}

\author{Carlos Camar\~ao}

\date{25 de Agosto de 2008}

\title{Primeira Lista de Exerc\'{\i}cios}

\begin{document}
\maketitle
\input{meta.keys}

\begin{enumerate}

\item Escreva um programa que leia um n\'umero inteiro positivo $n$ e
imprima, um em cada linha: i) o dobro de $n$; ii) $-n$; iii) mensagem
que indica se $n$ \'e par ou \'{\i}mpar; iv) a metade de $n$ (como um
valor de tipo {\tt float}). 

O programa deve ler valores do dispositivo de entrada padr\~ao e
imprimir no dispositivo de sa\'{\i}da padr\~ao.

\item Escreva um program que estenda o programa do exerc\'{\i}cio
anterior de forma a ler tamb\'em uma op\c{c}\~ao de impress\~ao, que
pode ser:

  \begin{enumerate}

    \item Impress\~ao dos valores em uma linha separados {\tt ' '}
    (espa\c{c}o em branco);

    \item Impress\~ao dos valores em uma linha separados por {\tt
    '$\backslash$t'};

    \item Impress\~ao de um valor por linha (como no exerc\'{\i}cio
    anterior).

  \end{enumerate}

\item Escreva um programa que leia tr\^es n\'umeros de ponto flutuante
do dispositivo de entrada padr\~ao, imprima se eles podem ou n\~ao
formar um tri\^angulo e, em caso positivo, imprima tamb\'em mensagem
informando os valores do per\'{\i}metro e da \'area do tri\^angulo.

A \'area pode ser calculada usando a f\'ormula $\sqrt{(s\times
(s-a)\times(s-b)\times(s-c))}$.

onde $s$ \'e o semiper\'imetro (i.e. $p/2$, onde $p$ \'e o
per\'{\i}metro) do tri\^angulo de lados $a$,$b$,$c$.  A raiz quadrada
de um valor de tipo {\tt double} deve ser calculada por meio de uma
chamada ao m\'etodo \text{{\tt Math}.{\tt sqrt}}, um m\'etodo
est\'atico da classe {\tt Math} de {\tt java.lang}.

\item A seguinte defini\c{c}\~ao de fun\c{c}\~ao determina se um dado
valor inteiro positivo representa um ano bissexto ou n\~ao. No
calend\'ario gregoriano, usado atualmente, um ano \'e bissexto se for
divis\'{\i}vel por 4 e n\~ao for divis\'{\i}vel por 100, ou se for
divis\'{\i}vel por 400.

  \progb{st\=atic boolean {\it bissexto\/} (int {\it ano\/}) \{ \+\\
           return \=(({\it ano\/} \% 4 == 0 \&\& {\it ano\/} \% 100 != 0) 
                       \+\\
                       || {\it ano\/} \% 400 == 0 ); \-\-\\
        \} }

Reescreva a defini\c{c}\~ao de {\it bissexto} de maneira a usar uma
express\~ao condicional em vez de usar, como acima, os operadores
l\'ogicos {\tt \&\&} e {\tt ||}.

Use sua defini\c{c}\~ao com uma express\~ao condicional para escrever
um programa que leia um n\'umero inteiro positivo e imprima uma
mensagem indicando se o n\'umero lido representa um ano bissexto ou
n\~ao.

\item Escreva um programa que leia um n\'umero inteiro representado
com at\'e tr\^es algarismos e imprima a soma dos seus algarismos.

Por exemplo, ao ler {\tt 123}, o programa deve imprimir {\tt 6}.

\item Escreva um programa que leia um n\'umero inteiro representado
com at\'e tr\^es algarismos e imprima o n\'umero cuja
representa\c{c}\~ao \'e obtida invertendo a ordem desses
algarismos. 

Por exemplo: ao ler {\tt 123}, o programa deve imprimir {\tt 321}.

\item Use o valor aproximado do n\'umero $\pi$ definido por {\tt
Math.PI} para escrever um programa que leia um n\'umero de ponto
flutuante que representa o tamanho aproximado do raio de uma
circunfer\^encia e imprima o comprimento apro\-xi\-ma\-do dessa
circunfer\^encia.

\item Defina uma fun\c{c}\~ao que, dados cinco n\'umeros inteiros,
retorna {\tt true} se o conjunto formado pelos 2 \'ultimos n\'umeros
\'e um subconjunto daquele formado pelos 3 primeiros, e {\tt false} em
caso contr\'ario.

\item Escreva um programa que leia um valor inteiro de 0 a 100, que
representa a nota de um aluno em uma disciplina, e imprima o conceito
obtido por esse aluno nessa disciplina, de acordo com a tabela:

 \begin{center}
 \begin{tabular}{|c|c|}\hline
  {\bf Nota}   & {\bf Conceito} \\ \hline
  0 a 59 & R        \\
 60 a 74 & C        \\
 75 a 89 & B        \\
 90 a 100& A        \\ \hline      
 \end{tabular} 
 \end{center}

\item Escreva um programa que leia dois n\'umeros inteiros $a$ e $b$
de 0 a 9 e imprima o maior n\'umero inteiro que pode ser escrito com
esses dois algarismos. 

Por exemplo, se forem lidos 1 e 2, o programa deve imprimir 21.

Voc\^e n\~ao precisa considerar o caso em que os n\'umeros lidos n\~ao
est\~ao entre 0 e 9.

\end{enumerate}

\end{document}

