ASPER
UNIBRATEC

Gabarito da Lista 2

Aula 4: Variáveis, Constantes, Operadores e Expressões

Exercício 1:


Enunciado:
Escreva um programa que declare uma variável inteira global e atribua o valor 10
a ela. Declare outras 5 variáveis inteiras locais ao programa principal e
atribua os valores 20, 30, ..., 60 a elas. Declare 6 variáveis caracteres e
atribua a elas as letras c, o, e, l, h, a . Finalmente, o programa deverá
imprimir, usando todas as variaveis declaradas:
As variaveis inteiras contem os numeros: 10, 20, 30, 40, 50, 60
O animal contido nas variaveis caracteres e a coelha


Solução:
#include <stdio.h>
int i; /* Variavel inteira global */
int main()
{
int j1, j2, j3, j4, j5; /* Variaveis inteiras locais */
char ch1, ch2, ch3, ch4, ch5, ch6; /* Variaveis caracteres locais */
i = 10; /* Atribuicao: variavel global */
j1 = 20; j2 = 30; j3 = 40; j4 = 50; j5 = 60; /* Atribuicao: variaveis
inteiras locais */
ch1 = 'c'; ch2 = 'o'; ch3 = 'e'; ch4 = 'l'; ch5 = 'h'; ch6 = 'a';
printf("\nAs variaveis inteiras contem os numeros: %d, %d, %d, %d, %d, %d",
i, j1, j2, j3, j4, j5);
printf("\nO animal contido nas variaveis caracteres e' a %c%c%c%c%c%c", ch1,
ch2, ch3, ch4, ch5, ch6);
return 0;
}

Exercício 2:


Enunciado:
Diga o resultado das variáveis x, y e z depois da seguinte sequência de
operações:
int x,y,z;
x=y=10;
z=++x;
x=-x;
y++;
x=x+y-(z--);


Solução:
x = -11
y = 11
z = 10
Comentários:
- Em z = ++x, x é incrementado e então o seu valor e atribuído a z , isto é, ao
final da atribuição x=11 e z=11; Em x = -x, x passa a ser igual a -11; Em y++
y passa a ser igual a 11;
- Em x = x+y-(z--), primeiramente é resolvido o parenteses, o valor de z é
retornado (11) e então ocorre o decremento (z passa a ser 10). O resultado
armazenado em x é calculado: -11 + 11 -11 => x = -11.

Exercício 3:

Enunciado:
Diga se as seguintes expressões serão verdadeiras ou falsas:
-> ((10>5)||(5>10))
-> (!(5==6)&&(5!=6)&&((2>1)||(5<=4)))


Solução:
-> ((10>5)||(5>10)) => Verdadeira
TRUE || FALSE = TRUE
-> (!(5==6)&&(5!=6)&&((2>1)||(5<=4))) => Verdadeira
!(FALSE)&&(TRUE)&&(TRUE)



Exercícios de Fixação

Exercício 1:
Faca um programa que apresente na tela a tabela de conversão de graus Celsius
para Fahrenheit, de -100 C a 100 C. Use um incremento de 10 C.
OBS: Farenheit = (9/5)*(Celsius) + 32
.
Solução:
#include <stdio.h>
int main()
{
int tempC;
float tempF;
int LIMITE_INF = -100, LIMITE_SUP = 100, INCREMENTO = 10;
printf("\n\nTemperatura Celsius Temperatura Farenheit\n");
for (tempC = LIMITE_INF; tempC<=LIMITE_SUP; tempC += INCREMENTO)
{
tempF = 32+ (float) 9*tempC/5; /* Farenheit = (9/5)*(Celsius) + 32*/
printf("\t%d\t\t %f\n", tempC, tempF);
}
printf("\n\n");
return 0;
}


Exercício 2:
Faca um programa em C para ler números em ponto flutuante (representando ângulos
em radianos) e imprima o seno do numero. Ao ler o numero zero, o programa devera
terminar. Teste seu programa para verificar seu funcionamento. OBS: para
calcular o seno, voce pode usar a funcao sin(x), onde x e dado em radianos. Para
usar esta funcao, voce deve incluir o arquivo cabecalho math.h . Alem disto, no
instante de link voce deve usar a biblioteca matematica. No gcc, usar a opcao -lm;


Solução:
#include <stdio.h>
#include <math.h> /* Necessário para a função de cálculo do seno, sin() */
/* Este programa recebe um angulo e apresenta o valor de seu seno. */
int main()
{
int i;
float angulo = -1.; /* angulo inicializado para evitar erro de
lógica caso o lixo inicial na variável fosse zero */
float seno;
for (i=0; angulo != 0; i++)
{
printf("\n\nEntre com o angulo: ");
scanf("%f", &angulo);
seno = sin(angulo);
printf("\n Seno de %f: %f\n", angulo, seno);
}
return 0;

}