Ir ao conteúdo
  • Cadastre-se
Main.cpp

C Tabuada em Janela gráfica - linguagem C

Recommended Posts

Esta tabuada criada em linguagem C, usa como saída uma janela
gráfica da biblioteca graphics.h.
Não há nada de complicado neste exemplo, na verdade só tive
mais trabalho para fazer a impressão na tela.
Com certeza alguns vão se assustar com o tamanho do código,
e outros até dirão: Porque duas funções para criar a tabuada
sendo que só uma bem arranjada já funcionaria?
Tudo isto foi tomado como solução para uma boa impressão
das saídas na tela.
Então não se preocupem com estes montes de ifs cobrindo
a função moveto(); isto foi necessário para
posicionamento das saídas formatadas onde foram copiadas em matriz
de char dentro da função sprintf();

 

Veja abaixo uma imagem do programa em execução:

 

Tabuada.jpg.d7acf71fb58e79aecb5690825993d2ef.jpg

 

Veja abaixo o código do programa:

 

 #include <stdio.h>
#include <graphics.h>
#define tam 10
void imp_jan ( int x, int y, int lin, int col, int n ) {
     for ( int i = 0; i <= n; i++ ) {
         line ( x + i, y, x + i, y + lin );
         line ( x + col + i, y, x + col + i, y + lin );
         line ( x, y + i, x + col, y + i );
         line ( x, y + i + lin, x + col + n, y + i + lin );
     }
}
int Tabuada_1 ( int n, int num [ tam ] [ tam ] ) {
     char buf [ 50 ];
     char buf_1 [ 50 ];
     int a = 0, i;
     n = 0;
     while ( n < 5 ) {
         setcolor ( 14 );
         n++;
         settextstyle ( DEFAULT_FONT, HORIZ_DIR, 0 );
         setcolor ( 0 );
         if ( n == 1 )
              a = 60;
         if ( n == 2 )
              a = 200;
         if ( n == 3 )
              a = 340;
         if ( n == 4 )
              a = 480;
         if ( n == 5 )
              a = 620;
         for ( i = 1; i <= 10; i++ ) {
              if ( i == 1 )
                   moveto ( a, 70 );
              if ( i == 2 )
                   moveto ( a, 90 );
              if ( i == 3 )
                   moveto ( a, 110 );
              if ( i == 4 )
                   moveto ( a, 130 );
              if ( i == 5 )
                   moveto ( a, 150 );
              if ( i == 6 )
                   moveto ( a, 170 );
              if ( i == 7 )
                   moveto ( a, 190 );
              if ( i == 8 )
                   moveto ( a, 210 );
              if ( i == 9 )
                   moveto ( a, 230 );
              if ( i == 10 )
                   moveto ( a, 250 );
              sprintf ( buf, "%d x %d = ", n, i );
              setcolor ( 9 );
              outtext ( buf );
              sprintf ( buf_1, "%d", num [ n ] [ i ] );
              setcolor ( 15 );
              outtext ( buf_1 );
              Sleep ( 80 );
         }
     }
     return 0;
}
int Tabuada_2 ( int n, int num [ tam ] [ tam ] ) {
     char buf [ 50 ];
     char buf_1 [ 50 ];
     int a = 0, i;
     n = 5;
     while ( n < 10 ) {
         setcolor ( 14 );
         n++;
         settextstyle ( DEFAULT_FONT, HORIZ_DIR, 0 );
         if ( n == 6 )
              a = 60;
         if ( n == 7 )
              a = 200;
         if ( n == 8 )
              a = 340;
         if ( n == 9 )
              a = 480;
         if ( n == 10 )
              a = 620;
         for ( i = 1; i <= 10; i++ ) {
              if ( i == 1 )
                   moveto ( a, 290 );
              if ( i == 2 )
                   moveto ( a, 310 );
              if ( i == 3 )
                   moveto ( a, 330 );
              if ( i == 4 )
                   moveto ( a, 350 );
              if ( i == 5 )
                   moveto ( a, 370 );
              if ( i == 6 )
                   moveto ( a, 390 );
              if ( i == 7 )
                   moveto ( a, 410 );
              if ( i == 8 )
                   moveto ( a, 430 );
              if ( i == 9 )
                   moveto ( a, 450 );
              if ( i == 10 )
                   moveto ( a, 470 );
              sprintf ( buf, "%d x %d = ", n, i );
              setcolor ( 9 );
              outtext ( buf );
              sprintf ( buf_1, "%d", num [ n ] [ i ] );
              setcolor ( 15 );
              outtext ( buf_1 );
              Sleep ( 80 );
         }
         if ( n == 10 ) {
              settextstyle ( TRIPLEX_FONT, 0, 2 );
              setcolor ( 10 );
              outtextxy ( 260, 510, "MUITO OBRIGADO" );
              getch ( );
              exit ( 0 );
         }
     }
     return 0;
}
int main ( ) {
     int i_ = 1;
     int n, i, num [ tam ] [ tam ];
     for ( n = 1; n <= tam; n++ ) {
         for ( i = 1; i <= tam; i++ ) {
              num [ n ] [ i ] = ( n * i );
         }
     }
     initwindow ( 780, 563, "TABUADA EM C" );
     setcolor ( 14 );
     imp_jan ( 1, 96 * i_ - 97, 545, 760, 20 );
     settextstyle ( TRIPLEX_FONT, HORIZ_DIR, 2 );
     setcolor ( 12 );
     outtextxy ( 260, 40, "TABUADA EM C" );
     Tabuada_1 ( n, num );
     Tabuada_2 ( n, num );
     closegraph ( );
     return 0;
}






 

  • Obrigado 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×