\documentclass[brazil]{article}

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

\title{2$^{\rm \underline{a}}$ Lista de Exercícios}

\author{Prof.: Carlos Camar\~ao}

\date{Data limite para entrega: 4 de Maio de 2009}

\addtolength\textwidth{15mm}
\setlength{\parindent}{0pt}

\pagestyle{empty}

\begin{document}

\maketitle

\begin{enumerate}

\item Escreva um programa que leia valores inteiros positivos,
separados por espaços ou linhas, e imprima, para cada valor lido, a
sua representação em notação binária. 

Cada valor da saída pode estar separado do seguinte por um ou mais
espaços ou linhas.

A entrada termina quando um valor zero ou negativo for lido.

\item Escreva um programa que leia valores de tipo {\it String\/}
(cadeias de caracteres) que representam valores (inteiros positivos em
notação binária, separados por espaços ou linhas, e imprima, para cada
valor lido, a sua representação em notação decimal.

Cada valor da saída pode estar separado do seguinte por um ou mais
espaços ou linhas.

A entrada termina quando uma cadeia de caracteres sem nenhum caractere
{\tt '1'} for lida.

\item Considere uma entrada de dados que consiste no seguinte (nesta ordem):

  \begin{enumerate}

   \item inicialmente, dois valores inteiros positivos $m$ e $n$,
   entre {\tt 2} e {\tt 10}, separados por um ou mais espaços ou
   linhas;

   \item uma sequência $S$ de valores inteiros positivos na base $m$,
   separados entre si por um ou mais espaços ou linhas;

   \end{enumerate}

Escreva um programa que leia os dados de entrada e imprima, para cada
valor da sequência $S$ lida, na base $m$, o valor correspondente na
base $n$.

Cada valor de saída deve ser impresso em uma linha.

A leitura deve ser feita no dispositivo de entrada padrão e a saída no
dispositivo de saída padrão. 

Para testar o fim dos dados, use o método {\it hasNext\/} definido na
classe {\it Scanner\/}: se $s$ é uma expressão (tipicamente uma
variável) de tipo {\it Scanner}, então {\tt $s$.{\it hasNext\/}()}
retorna {\tt true} se e somente se não há mais dados de entrada a
serem lidos, no dispositivo de entrada $s$. No caso da entrada ser o
teclado, o fim dos dados pode ser indicado pressionando o caractere
{\it Control-d\/} (i.e.~pressionando a tecla {\it Control\/} e,
mantendo pressionada essa tecla, pressionando também a tecla {\it
d\/}).

\item Escreva um programa que leia um valor positivo $x$ de tipo {\tt
double} e um valor positivo $n$ de tipo {\tt int} e calcule e imprima
valores aproximados de {\tt {\it sen\/}($x$)} e {\tt {\it
cos\/}($x$)}, usando as fórmulas mostradas no exercício 11 (seção 5.5)
do livro-texto do curso, considerando $n$ como o número de parcelas a
serem usadas no somatório das fórmulas para cálculo de {\it sen\/} e
{\it cos}. 

Os valores devem ser impressos de modo a indicar que representam
respectivamente o cosseno e o seno do valor lido.

O seu programa não deve usar funções para cálculo de fatorial e
exponencial diretamente para cada parcela (pois isso é
desnecessariamente ineficiente) mas, para cada parcela, calcular
fatorial e exponencial a partir de valores obtidos no cálculo da
parcela anterior (se existir; no primeiro caso, quando não há parcela
anterior, o valor é um valor inicial conhecido).

\item Escreva um programa que leia, repetidamente um caractere $c$ e
em seguida valores inteiros positivos $n$ e imprima, para cada valor
$n$ lido, um triângulo de caracteres $c$ com $n$ linhas, como mostrado
a seguir para os casos em que i) {\tt $c$ = '*'} e {\tt $n$ = 6} e ii)
{\tt $c$ = '*'} e {\tt $n$ = 3}:

i):
\begin{verbatim}
     *                   
    ***
   *****
  *******
 *********
***********
\end{verbatim}

ii):
\begin{verbatim}
  *                   
 ***
*****
\end{verbatim}

A entrada de valores positivos (para um determinado caractere $c$)
deve terminar quando um valor inteiro zero ou negativo for lido.

A entrada de dados termina quando {\tt $c$} for igual a {\tt ' '} ou
{\tt '$\backslash$n'} ou {\tt '$\backslash$t'}.

\item Escreva um programa para imprimir uma tabela de conversão entre
graus Centígrados e graus Fahrenheit. 

O programa deve inicialmente perguntar se o usuário quer uma tabela de
conversão de graus Centígrados para graus Fahrenheit ou vice-versa; em
seguida deve ler o intervalo de graus e o passo desejados para
montagem da tabela. 

Por exemplo, se o usuário desejar uma tabela de conversão de graus
Fahrenheit para Centígrados, e especificar o intervalo entre 10 e 100
graus Centígrados e passo 10, a tabela gerada deve ser a seguinte:

  \begin{tabular}{ll}
   Fahrenheit & Centígrados \\
    10        & -12,22\\
    20        & -6,67 \\
    30        & -1,11 \\
    40        & 4,44  \\
    50        & 10,00 \\
    60        & 15,56 \\
    70        & 21,11 \\
    80        & 26,67 \\
    90        & 32,22 \\
   100        & 37,78 
  \end{tabular}

A fórmula para conversão pode ser encontrada no Exercício 13 da seção
5.5 do livro-texto.


    



\end{enumerate}

\end{document}
