Gabarito da Lista 2
Módulo 2: Aula 3: Variáveis, Constantes, Operadores e Expressões
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, o . 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 o coelho#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 = 'o';
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' o %c%c%c%c%c%c", ch1, ch2, ch3, ch4, ch5, ch6);
return 0;
}
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 = 10Comentá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.
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)
Enunciado:
Compile o exemplo da página sem usar o modelador, e verifique os resultados. Compile-o novamente usando o modelador e compare a saída com os resultados anteriores.Solução:
Quando se usa o modelador (float) o resultado impresso na tela é 1.428571, que é o valor exato de 10 dividido por sete. Quando não se usa o modelador o resultado apresentado é 1.0000, que é o valor do inteiro resultante da operação 10/7 (=1) transformado depois para float.
Exercício 1:
Faça 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 20 C. Defina constantes com os limites usando a diretiva #define , conforme apresentado na aula 8.Exemplo:
#define INCREMENTO 20Solução:
#define LIMITE_INF -100
#define LIMITE_SUP 100
#define INCREMENTO 20
#include <stdio.h>
void main()
{
int tempC;
float tempF;
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");
}Obs: A maior vantagem de se usar as constantes está na portabilidade estabelecida no programa. Veja que e fácil modificar os limites da tabela ou mesmo o incremento. Se os valores fossem usados outras vezes no programa você não precisaria ficar procurando onde eles estavam para mudar, bastaria mudar as constantes.
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 inteiro e apresenta o valor de seu seno. */
void 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);
}
}
Curso de C do CPDEE/UFMG - 1996-1999