Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria, Trigonometria e Figuras Geométricas |
Como testar se um retângulo cabe dentro de um círculo usando C - Desafio de Programação Resolvido em CQuantidade de visualizações: 924 vezes |
Pergunta/Tarefa: Vamos começar este exercício analisando a imagem abaixo: ![]() Note que temos um círculo e, dentro dele, um retângulo (lembre-se: um quadrado é um retângulo também). Pela imagem podemos ver que o retângulo cabe perfeitamente dentro do círculo. Escreva um programa C que pede para o usuário informar a altura e a largura do retângulo. Em seguida leia também o raio do círculo. Finalmente crie uma função C que receberá estes dados e informará se o retângulo cabe dentro do círculo, de acordo com as informações inseridas pelo usuário. Sua saída deverá ser parecida com: Largura do retângulo: 6 Altura do retângulo: 4 Raio do círculo: 5 O retângulo cabe no círculo. Veja a resolução comentada deste exercício em C: Antes de vermos o código C, dê uma olhada na imagem abaixo: ![]() Sabemos que o raio é a distância que vai do centro do círculo até a sua extremidade. Da mesma forma, podemos traçar uma distância a partir do centro do retângulo e tratar esta distância como a hipotenusa do nosso triângulo retângulo imaginário, que terá como cateto adjascente a largura do retângulo dividida por dois e como cateto oposto a altura do retângulo dividida por dois também. O retângulo vai caber no círculo se o raio do círculo for maior ou igual à hipotenusa que obtemos. Veja o código C completo para a resolução: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> // cabeçalho da função que recebe a largura e a altura do retângulo e o // raio do círculo e retorna true se o retângulo couber no // círculo e false em caso contrário int retangulo_cabe_circulo(int largura, int altura, int raio); // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int largura, altura, raio; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar as medidas // do retângulo printf("Largura do retângulo: "); scanf("%d", &largura); printf("Altura do retângulo: "); scanf("%d", &altura); // agora vamos pedir o raio do círculo printf("Raio do círculo: "); scanf("%d", &raio); // vamos testar se o retângulo informado cabe no círculo // gerado a partir do raio dado if(retangulo_cabe_circulo(largura, altura, raio)){ printf("O retângulo cabe no círculo."); } else{ printf("O retângulo não cabe no círculo."); } printf("\n\n"); system("PAUSE"); return 0; } // função que recebe a largura e a altura do retângulo e o // raio do círculo e retorna true se o retângulo couber no // círculo e false em caso contrário int retangulo_cabe_circulo(int largura, int altura, int raio){ // vamos tratar metade da largura do retângulo como // sendo o cateto adjacente float cat_adjacente = pow((largura / 2.0), 2); // vamos tratar metade da altura do retângulo como // sendo o cateto oposto float cat_oposto = pow((altura / 2.0), 2); // obtemos a hipotenusa do triângulo retângulo que // extraímos a partir do retângulo informado pelo // usuário float hipotenusa = sqrt(cat_adjacente + cat_oposto); // para que o retângulo caiba no círculo, a hipotenusa que // obtemos não pode ser maior que o raio do círculo return raio >= hipotenusa; } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
PHP - Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |