Exercícios de desvio condicional

Dois exercícios simples e que envolvem apenas o uso da estrutura condicional (if). O primeiro é o mais simples, envolvendo apenas uma questão de identificar se dois valores foram um quadrado ou um retângulo e o cálculo de área de perímetro. O segundo exige um pensamento maior, tendo que identificar a forma de determinar o que se pede.

Exercício 1 – (Quadrado) ou (área e perímetro do retângulo)

Elabore um algoritmo que receba dois valores. Os valores correspondem a base e a altura de um retângulo.

Seu algoritmo deve verificar inicialmente se os valores formam um retângulo ou um quadrado. Caso formem um quadrado imprima a palavra QUADRADO e caso seja um retângulo, mostre o perímetro (soma de todos os lados) e a área (base vezes a altura) do retângulo. Separe esses valores com um hífen.

Solução em linguagem C

#include <stdio.h>

int main() {
    int a, b, area, per;
    scanf("%i %i", &a, &b);

    if (a == b) {
        printf("QUADRADO");
    } else {
        area = a * b;
        per = a*2 + b*2;
        printf("%i - %i", per, area);
    }

    return 0;
}

Casos de teste para o Laboratório Virtual de Programação

case = teste1
input = 5
5
output = QUADRADO

case = teste2
input = 20
20
output = QUADRADO

case = teste4
input = 5
20
output = 50 - 100

case = teste5
input = 5
6
output = 22 - 30

case = teste6
input = 11
10
output = 42-110

Exercício 2 – Menor diferença

Elabore um algoritmo que leia 3 valores. Em seguida determine qual valor, o segundo ou o terceiro, possui menor diferença com relação ao primeiro, imprimindo o valor da diferença.

Exemplo:

Valores de entrada: 1 2 3
Saída: 1

Valores de entrada: 8 5 0
Saída: 3

Solução em linguagem C

A dificuldade nesse exercício está em que o primeiro valor não necessariamente será o menor de todos. Isso exige um tratamento adicional.

#include <stdio.h>

int main() {
    int a, b, c, dif1, dif2;
    scanf("%i %i %i", &a, &b, &c);
    dif1 = b - a;
    dif2 = c - a;
    
    if (dif1 < 0) {
        dif1 = dif1 * -1;
    }
    if (dif2 < 0) {
        dif2 *= -1;
    }

    if (dif1 < dif2) {
        printf("%i", dif1);
    } else {
        printf("%i", dif2);
    }

    return 0;
}

Casos de teste para o Laboratório Virtual de Programação

case = teste1
input = 0
2
3
output = 2

case = teste2
input = 0
4
3
output = 3

case = teste3
input = -5
2
3
output = 7

case = teste4
input = 80
20
30
output = 50

case = teste5
input = 10
2
0
output = 8
Share

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.