Gabarito da Lista 2


Módulo 2:  Aula 3: Variáveis, Constantes, Operadores e Expressões

Exercício 1: página c330.html

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;
}

 

Exercício 2: página c350.html

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: página c360.html

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ício 4: pagina c380.html

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ícios de Fixação

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 20

Soluçã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