Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




1 - Elabore um programa que solicite ao usuário a altura (h) de um triângulo. Este triângulo será formado por 2 lados de mesmo tamanho (de acordo com h)e pela base. O tamanho da base é dada pela fórmula base = (h * 2)-1. O Usuário deverá fornecer o caracter que formará a borda do triângulo e o formato que o mesmo será impresso. O triângulo poderá ser impresso de cabeça para cima ou de cabeça para baixo, de acordo com as figuras abaixo:




#include "stdio.h"
#include "conio.h"

void main()
{

   int h,i,op,c1,c2,li,lf;
   char simb;

   clrscr();

   do
   {  
	 gotoxy(5,3);clreol();
	 printf("Qual a altura do triangulo ? (3 a 22) : ");
	 scanf("%d",&h);
   }while((h<3)||(h>22));

   gotoxy(5,5);
   printf("Qual o simbolo da borda ? : ");
   fflush(stdin);
   scanf("%c",&simb);

   do
   {
	 gotoxy(5,8);
	 printf("Digite sua opcao: ");
	 gotoxy(5,10);
	 printf("1- Triangulo em pe :");
	 gotoxy(5,11);
	 printf("2- Triangulo de cabeca para baixo ");
	 gotoxy(5,13);clreol();
	 printf("opcao : ");
	 scanf("%d",&op);
   }while((op<1)||(op>2));


   switch(op)
   {

	   case 1:       // em pe

		    clrscr();

		    c1=40;
		    c2=40;
		    li=(24-h)/2;
		    lf=li+h-1;

		    for(i=li;i<=lf;i++)      // lados
		    {
			  gotoxy(c1,i);printf("%c",simb);
			  gotoxy(c2,i);printf("%c",simb);
			  c1--;
			  c2++;
		    }

		    c1++;
		    c2--;

		    for(i=c1;i<=c2;i++)      //base
		    {
			  gotoxy(i,lf);printf("%c",simb);
		    }

		    break;

	   case 2:       //de cabeca para baixo

		    clrscr();

		    c1=40;
		    c2=40;
		    li=(24-h)/2;
		    lf=li+h-1;
							    //lados
		    for(i=lf;i>=li;i--)
		    {
			  gotoxy(c1,i);printf("%c",simb);
			  gotoxy(c2,i);printf("%c",simb);
			  c1--;
			  c2++;
		    }

		    c1++;
		    c2--;

		    for(i=c1;i<=c2;i++)      //base
		    {
			  gotoxy(i,li);printf("%c",simb);
		    }

		    break;

   }

   getch();

}