sábado, 31 de janeiro de 2015

Struct - atribuindo e alterando valor

Declarei uma variável ponteiro para ponteiro do tipo char de nome char **p_t;
como membro da estrutura "ssss".
Também declarei na função principal duas estruturas xxxx e yyyy.
Colhemos do teclado uma frase e guardamos na variável char *str;
Note que scanf(); trabalha com a entrada formatada impedindo que passe acima de 11 caracteres
contando com o espaço.
O membro ponteiro para ponteiro **p_t; de ssss está recebendo o endereço de memória
da vaviável que aponta para ela.
Quando copiamos a estrutura xxxx em yyyy, o valor do membro ponteiro para ponteiro
em xxxx também é copiado para o membro de yyyy.
Sendo assim, os membros apontarão para o mesmo endereço de memória, e para a mesma variável.
A prova disto é que se alterarmos o valor que aponta pelo membro de uma das duas estruturas.
elas passarão a receber o mesmo valor, o que foi alterado.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa:

#include<stdio.h>
#include<conio.h>
struct ssss{
    char **p_t;
};
void Janela5(){
    int lin, col;textattr ( 3 );
    for ( lin = 0; lin <= 25; lin++ ){
        for ( col = 0; col <= 80; col++ ){
            gotoxy( col, lin );
            if ( lin == 2 ){textattr ( 3 );printf( " ");}
            if ( col == 1 ){textattr ( 3 );printf(" ");}
            if ( col == 80 ){textattr ( 3 );printf(" ");}
        }
    }
}
int continuando ( ){
    system ("title STRUCT - ATRIBUINDO E ALTERANDO VALOR");
    int nr; do{system("cls");system("Color 20");Janela5();
    textcolor(LIGHTRED);gotoxy(25,3);printf("STRUCT - ATRIBUINDO E ALTERANDO VALOR");
    textcolor(BROWN);gotoxy(25,7);printf("Programa desenvolvido por:");
    textcolor(WHITE);gotoxy(52,7);printf("Samuel Lima");
    textcolor(BLUE);gotoxy(34,9);printf("sa_sp10@hotmail.com");
    textcolor(LIGHTBLUE);gotoxy(23,11);printf ("Digite ");
    textcolor(LIGHTRED);printf (" 0 ");
    textcolor(LIGHTBLUE);printf (" para sair ou ");
    textcolor(LIGHTRED);printf (" 1 ");
    textcolor(LIGHTBLUE);printf (" para continuar ");
    textcolor(LIGHTRED);gotoxy(24,13);
    scanf ( "%d", &nr );fflush(stdin);
    if( nr == 0 ){
        textcolor(LIGHTRED);gotoxy(36,18);printf("MUITO OBRIGADO");
        getche();exit(0);
    }
    else if( nr == 1 ){
        return 1;
    }
    textcolor(YELLOW);gotoxy(36,16);printf ("\aopcão errada!");
    getche();
    }while ( 1 );
    return 1;
}
int main(){
    char *str;
    struct ssss xxxx, yyyy;
    continuando ( );system("cls");system("Color 90");Janela5();
    textcolor(LIGHTRED);gotoxy(25,3);printf("STRUCT - ATRIBUINDO E ALTERANDO VALOR");
    textcolor(LIGHTBLUE);gotoxy(23,5);printf("Digite uma frase: ");
    str = ( char* ) malloc ( 10 );gotoxy(23,7);textcolor(YELLOW);
    scanf ("%11[^\n]s",str);fflush(stdin);
    xxxx . p_t = &str;
    textcolor(LIGHTBLUE);gotoxy(23,9);printf("Frase digitada: ");
    textcolor(YELLOW);printf("%s", *xxxx.p_t);
    getche();
    yyyy = xxxx;
    strcpy( *yyyy.p_t, "Programador C/C++");
    textcolor(LIGHTBLUE);gotoxy(17,13);
    printf("Valor apontado por struct ");
    textcolor(LIGHTRED);printf("yyyy ");
    textcolor(YELLOW);printf("%s", *yyyy.p_t );
    textcolor(LIGHTBLUE);gotoxy(17,15);
    printf("Valor apontado por struct ");
    textcolor(LIGHTRED);printf("xxxx ");
    textcolor(YELLOW);printf("%s", *xxxx.p_t );
    Sleep(1000);
    textcolor(LIGHTRED);gotoxy(35,23);
    printf("MUITO OBRIGADO");
    getche();
    return 0;
}

sexta-feira, 30 de janeiro de 2015

Struct - copiando e passando valores de endereço

Em linguagem C somos obrigados a usar apontadores para passagem
de parâmetros por valor.Neste exemplo,
Os valores que estão guardados no endereço da estrutura
são copiados e passados por parâmetros para função.
A função Vetor_struct ( Imp_Par *a ); recebe as cópias dos valores
que foram declarados no vetor de struct e imprime com printf();
Já a função Epar_Impar ( Imp_Par *a ); está encarregada de separar
os números ímpares dos pares, porque também recebe uma cópia fiel
dos mesmos valores do vetor de struct.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa:

#include <stdio.h>
#include <conio.h>
#define TAM 9
void Janela5(){
    int lin, col;textattr ( 3 );
    for ( lin = 0; lin <= 25; lin++ ){
        for ( col = 0; col <= 80; col++ ){
            gotoxy( col, lin );
            if ( lin == 2 ){textattr ( 3 );printf( " ");}
            if ( col == 1 ){textattr ( 3 );printf(" ");}
            if ( col == 80 ){textattr ( 3 );printf(" ");}
        }
    }
}
int continuando ( ){
    system ("title STRUCT - COPIANDO E PASSANDO VALORES DE ENDEREÇO");
    int nr; do{system("cls");system("Color 40");Janela5();
    textcolor(LIGHTRED);gotoxy(20,3);printf("STRUCT - COPIANDO E PASSANDO VALORES DE ENDEREÇO");
    textcolor(BROWN);gotoxy(25,7);printf("Programa desenvolvido por:");
    textcolor(WHITE);gotoxy(52,7);printf("Samuel Lima");
    textcolor(BLUE);gotoxy(34,9);printf("sa_sp10@hotmail.com");
    textcolor(LIGHTBLUE);gotoxy(23,11);printf ("Digite ");
    textcolor(LIGHTRED);printf (" 0 ");
    textcolor(LIGHTBLUE);printf (" para sair ou ");
    textcolor(LIGHTRED);printf (" 1 ");
    textcolor(LIGHTBLUE);printf (" para continuar ");
    textcolor(LIGHTRED);gotoxy(24,13);
    scanf ( "%d", &nr );fflush(stdin);
    if( nr == 0 ){
        textcolor(LIGHTRED);gotoxy(36,18);printf("MUITO OBRIGADO");
        getche();exit(0);
    }
    else if( nr == 1 ){
        return 1;
    }
    textcolor(YELLOW);gotoxy(36,16);printf ("\aopcão errada!");
    getche();
    }while ( 1 );
    return 1;
}
typedef struct {
    int imp_par [ 9 ];
}Imp_Par;
int Vetor_struct ( Imp_Par *a ){
    int i;system("cls");system("Color 80");Janela5();
    textcolor(LIGHTRED);gotoxy(20,3);printf("STRUCT - COPIANDO E PASSAND0 VALORES DE ENDEREÇO");
    textcolor(LIGHTBLUE);gotoxy(28,5);printf("Imprimindo o vetor de struct");
    gotoxy(28,7);textcolor(LIGHTRED);
    for ( i = 0; i < 9; i++ ){
        printf(" %d ", a -> imp_par [ i ] );
    }
    getche();
    return (0);
}
int Epar_Impar ( Imp_Par *a ){
    int i;i = 0;
    textcolor(LIGHTBLUE);gotoxy(29,9);printf("Definindo pares e ímpares ");
    for (i = 1; i <=  9; i++){
        gotoxy( 37, i + 11 );
        if ( i % 2 == 1 ){
            textcolor(LIGHTRED); printf(" %d ", i );
            textcolor(LIGHTBLUE);printf("é ímpar ");
        }
        else{
            textcolor(LIGHTRED); printf(" %d ", i );
            textcolor(LIGHTBLUE);printf("é par ");
        }
    }
    return 0;
}
int main(){
    int i, k;
    Imp_Par a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    continuando ( );
    i = Vetor_struct ( &a );
    k = Epar_Impar ( &a );
    Sleep(1000);
    textcolor(YELLOW);gotoxy(35,23);
    printf("MUITO OBRIGADO");
    getche();
}

quarta-feira, 28 de janeiro de 2015

Fatorial em struct

À prática de se multiplicar um número por todos os seus
antecessores, denomina-se "fatorial".
Definindo o fatorial de 3 representa-se por 3! e lê-se 3 fatorial.

Veja abaixo o fatorial de alguns números:

3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120
6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40 320
9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362 880
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3 628 800

Más estamos em linguagem c, que é nossa paixão, portanto já
aviso que o propósito deste código e mostrar passagem por cópia de valor da estrutura,
na verdade estamos passando a struct inteira como parâmetros para função.

Veja abaixo algumas imagens do programa em execução:



#include <stdio.h>
#include <conio.h>
#define TAM 3
void Janela5(){
    int lin, col;
    col = 0;
    for ( lin = 2; lin <= 24; lin++ )
        for ( col = 2; col <= 78; col++ ){
            gotoxy(col,lin);textbackground(LIGHTGRAY);printf(" ");
        }
}
int continuando ( ){
    system ("title FATORIAL EM STRUCT");
    int nr; do{system("cls");system("Color 20");Janela5();
    textcolor(LIGHTRED);gotoxy(34,3);printf("FATORIAL EM STRUCT");
    textcolor(BROWN);gotoxy(25,7);printf("Programa desenvolvido por:");
    textcolor(WHITE);gotoxy(52,7);printf("Samuel Lima");
    textcolor(BLACK);gotoxy(34,9);printf("sa_sp10@hotmail.com");
    textcolor(LIGHTBLUE);gotoxy(23,11);printf ("Digite ");
    textcolor(LIGHTRED);printf (" 0 ");
    textcolor(LIGHTBLUE);printf (" para sair ou ");
    textcolor(LIGHTRED);printf (" 1 ");
    textcolor(LIGHTBLUE);printf (" para continuar ");
    textcolor(LIGHTRED);gotoxy(24,13);
    scanf ( "%d", &nr );fflush(stdin);
    if( nr == 0 ){
        textcolor(LIGHTRED);gotoxy(36,18);printf("MUITO OBRIGADO");
        getche();exit(0);
    }
    else if( nr == 1 ){
        return 1;
    }
    textcolor(YELLOW);gotoxy(36,16);printf ("\aopcão errada!");
    getche();
    }while ( 1 );
    return 1;
}
struct fact{
    int fat1, fat2, fat3;
};
struct fatorial{
    struct fact fatorando;
};
int Vetor_struct ( struct fatorial fator [ TAM ] ){
    int i;int cont = 1;
    int fat = 1;
    system("cls");system("Color 90");Janela5();
    textcolor(LIGHTRED);gotoxy(34,3);printf("FATORIAL EM STRUCT");
    textcolor(LIGHTBLUE);gotoxy(31,5);printf("Abaixo o vetor de struct");
    for ( i = 0; i < 3; i++ ){
        gotoxy(30, i + 7 );textcolor(LIGHTRED);
        printf("%5d %5d %5d", fator [ i ].fatorando.fat1,
                fator [ i ].fatorando.fat2,
                fator [ i ].fatorando.fat3 );
    }
    getche();
    for ( i = 0; i  < 3; i++ ){
        gotoxy( 16, i + 11 );
        while ( cont <= fator [ i ].fatorando.fat1  ){
            fat *= cont;
            cont += 1;
        }
        textcolor(LIGHTBLUE);printf("Fatorial de ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fator [ i ].fatorando.fat1 );Sleep(500);
        textcolor(LIGHTBLUE);printf(" Equivale a ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fat );Sleep(500);
    }
    for ( i = 0; i  < 3; i++ ){
        gotoxy( 16, i + 14 );
        while ( cont <= fator [ i ].fatorando.fat2  ){
            fat *= cont;
            cont += 1;
        }
         textcolor(LIGHTBLUE);printf("Fatorial de ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fator [ i ].fatorando.fat2 );Sleep(500);
        textcolor(LIGHTBLUE);printf(" Equivale a ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fat );Sleep(500);
    }
    for ( i = 0; i  < 3; i++ ){
        gotoxy( 16, i + 17 );
        while ( cont <= fator [ i ].fatorando.fat3  ){
            fat *= cont;
            cont += 1;
        }
        textcolor(LIGHTBLUE);printf("Fatorial de ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fator [ i ].fatorando.fat3 );Sleep(500);
        textcolor(LIGHTBLUE);printf(" Equivale a ");Sleep(500);
        textcolor(LIGHTRED);printf(" %d ", fat );
    }
    Sleep(1000);
    textcolor(LIGHTRED);gotoxy(36,23);
    printf("MUITO OBRIGADO");
    getche();
    return (0);
}
int main(){
    continuando ( );
    int i;
    struct fatorial fator [ TAM ] =
           {{1, 4, 7  },
           { 2, 5, 8  },
           { 3, 6, 9 }};
    i = Vetor_struct ( fator );
    return (0);
}

sábado, 24 de janeiro de 2015

Matriz - contando vogais consoantes e espaços


Em linguagem C uma string é um vetor de caracteres, 
não esquecendo, de adicionar o terminador nulo,
que é obrigação do programador.
Formalmente usa-se aspas simples com barra invertida mais zero:'\0'. 
Na declaração de um vetor de caracteres, que pode ser qualquer string, 
sempre usamos o seguinte formato: char nome_da_string [ tamanho ]; 
Sendo assim, devemos na hora da declaração acrescentar um caractere
a mais sobre o comprimento da string.
Este código apresenta uma matriz de string, e um punhado de códigos
simples para mostrarmos a quantidade de cada um dos caracteres encontrado, 
numa matriz de string, mostramos cuidadosamente ainda os espaços e 
caracteres acentuados observe primeiro na imagem.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa:


#include<stdio.h>
#include<conio.h>
void Janela5 ( ) {
    system ( "Color F0" );
    int lin, col;
    for ( lin = 0; lin <= 25; lin++ ) {
         for ( col = 0; col <= 80; col++ ) {
             gotoxy ( col, lin );
             if ( lin == 2 ) {
                 textbackground ( LIGHTBLUE );
                 printf ( " " );
             }
             if ( col == 1 ) {
                 textbackground ( LIGHTBLUE );
                 printf ( " " );
             }
             if ( lin == 25 ) {
                 textbackground ( LIGHTBLUE );
             }
             if ( col == 80 ) {
                 textbackground ( LIGHTBLUE );
                 printf ( " " );
             }
         }
    }
    textbackground ( BLACK );
}
void inicio ( ) {
    system ( "title MATRIZ : CONTANDO VOGAIS CONSOANTES E ESPAÇOS" );
    int i;
    do {
         Janela5 ( );
         textbackground ( WHITE );
         textcolor ( LIGHTRED );
         gotoxy ( 21, 7 );
         printf ( "MATRIZ : CONTANDO VOGAIS CONSOANTES E ESPAÇOS" );
         textcolor ( BROWN );
         gotoxy ( 25, 10 );
         printf ( "Programa desenvolvido por:" );
         textcolor ( BLACK );
         gotoxy ( 52, 10 );
         printf ( "Samuel Lima" );
         textcolor ( BLUE );
         gotoxy ( 34, 12 );
         printf ( "sa_sp10@hotmail.com" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 24, 14 );
         printf ( "DIGITE    PARA SAIR OU   PARA CONTINUAR  " );
         textcolor ( LIGHTRED );
         gotoxy ( 32, 14 );
         printf ( "1" );
         textcolor ( LIGHTRED );
         gotoxy ( 47, 14 );
         printf ( "2" );
         gotoxy ( 41, 16 );
         scanf ( "%d", &i );
         fflush ( stdin );
         if ( i == 1 ) {
             textcolor ( LIGHTRED );
             gotoxy ( 35, 20 );
             printf ( "MUITO OBRIGADO" );
             Sleep ( 1800 );
             exit ( 0 );
         }
         if ( i == 2 ) {
             system ( "cls" );
             return;
         } else {
             textcolor ( LIGHTRED );
             gotoxy ( 37, 20 );
             printf ( "\aOPÇÃO ERRADA" );
             Sleep ( 1800 );
             system ( "cls" );
         }
    } while ( i );
}
int main ( ) {
    inicio ( );
    textbackground ( WHITE );
    char ch = 0;
    int totvogmi = 0, totvogma = 0, totacet = 0, totced = 0, totcon = 0,
             totcar = 0;
    int j, w, x, y = 0, et = 0, ced = 0, ced01 = 0, a = 0, e = 0, i = 0, o = 0,
             u = 0, A = 0, E = 0, I = 0, O = 0, U = 0, a0 = 0, a01 = 0, a02 = 0,
             a03 = 0, e01 = 0, e02 = 0, i01 = 0, o01 = 0, o02 = 0, o03 = 0, u01 =
                     0, u02 = 0, A0 = 0, A01 = 0, A02 = 0, A03 = 0, E01 = 0,
             E02 = 0, I01 = 0, O01 = 0, O02 = 0, O03 = 0, U01 = 0, U02 = 0;
    char Vet [ 16 ];
    char matriz [ 11 ] [ 16 ] = { { "João Eugênio" }, { "Átila Antônio" }, {
             "Irene Patrícia" }, { "Mônica Simões" }, { "Ester Büeno" }, {
             "Graça Núbia" }, { "Fábio Júnior" }, { "Ozéias Gonçalo" }, {
             "Lúcia Píres" }, { "Ulisses Ângelo" }, { "Ítalo Guimarães" } };
    system ( "cls" );
    Janela5 ( );
    textbackground ( WHITE );
    textcolor ( LIGHTRED );
    gotoxy ( 20, 3 );
    printf ( "MATRIZ : CONTANDO VOGAIS CONSOANTES E ESPAÇOS" );
    textcolor ( LIGHTRED );
    gotoxy ( 9, 5 );
    printf ( "Nomes da Matriz" );
    textcolor ( LIGHTRED );
    gotoxy ( 36, 5 );
    printf ( "Cada linha" );
    textcolor ( LIGHTRED );
    gotoxy ( 52, 5 );
    printf ( "Conteúdo da Matriz" );
    for ( w = 0; w < 11; w++ ) {
         gotoxy ( 5, w + 7 );
         textcolor ( BLACK );
         for ( j = 0; j < 16; j++ ) {
             printf ( " %c", matriz [ w ] [ j ] );
             Vet [ y ] = matriz [ w ] [ j ];
             y++;
         }
         x = 11 * 16;
         textcolor ( LIGHTRED );
         printf ( "%d ", strlen ( matriz [ w ] ) );
         textcolor ( LIGHTBLUE );
         printf ( "letras" );
         totcar += strlen ( matriz [ w ] );
    }
    for ( y = 0; y < x; y++ ) {
         ch = Vet [ y ];
         if ( ch == 'a' )
             a++;
         if ( ch == 'e' )
             e++;
         if ( ch == 'i' )
             i++;
         if ( ch == 'o' )
             o++;
         if ( ch == 'u' )
             u++;
         if ( ch == 'A' )
             A++;
         if ( ch == 'E' )
             E++;
         if ( ch == 'I' )
             I++;
         if ( ch == 'O' )
             O++;
         if ( ch == 'U' )
             U++;
         if ( ch == 'à' )
             a0++;
         if ( ch == 'á' )
             a01++;
         if ( ch == 'ã' )
             a02++;
         if ( ch == 'â' )
             a03++;
         if ( ch == 'é' )
             e01++;
         if ( ch == 'ê' )
             e02++;
         if ( ch == 'í' )
             i01++;
         if ( ch == 'ó' )
             o01++;
         if ( ch == 'õ' )
             o02++;
         if ( ch == 'ô' )
             o03++;
         if ( ch == 'ú' )
             u01++;
         if ( ch == 'ü' )
             u02++;
         if ( ch == 'À' )
             A0++;
         if ( ch == 'Ã' )
             A01++;
         if ( ch == 'Á' )
             A02++;
         if ( ch == 'Á' )
             A03++;
         if ( ch == 'É' )
             E01++;
         if ( ch == 'Ê' )
             E02++;
         if ( ch == 'Í' )
             I01++;
         if ( ch == 'Ó' )
             O01++;
         if ( ch == 'Õ' )
             O02++;
         if ( ch == 'Ô' )
             O03++;
         if ( ch == 'Ú' )
             U01++;
         if ( ch == 'Ü' )
             U02++;
         if ( ch == 'ç' )
             ced++;
         if ( ch == 'Ç' )
             ced01++;
         if ( ch == ' ' )
             et++;
    }
    totvogmi = ( a + e + i + o + u );
    totvogma = ( A + E + I + O + U );
    totacet = ( a0 + a01 + a02 + a03 + e01 + e02 + i01 + o01 + o02 + o03 + u01
             + u02 + A0 + A01 + A02 + A03 + E01 + E02 + I01 + O01 + O02 + O03
             + U01 + U02 );
    totced = ( ced + ced01 );
    totcon = totcar - ( totvogmi + totvogma + totacet + totced );
    textcolor ( BLACK );
    gotoxy ( 50, 7 );
    printf ( "vogais a minúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", a );
    textcolor ( BLACK );
    gotoxy ( 50, 8 );
    printf ( "vogais e minúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", e );
    textcolor ( BLACK );
    gotoxy ( 50, 9 );
    printf ( "vogais i minúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", i );
    textcolor ( BLACK );
    gotoxy ( 50, 10 );
    printf ( "vogais o minúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", o );
    textcolor ( BLACK );
    gotoxy ( 50, 11 );
    printf ( "vogais u minúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", u );
    textcolor ( BLACK );
    gotoxy ( 50, 12 );
    printf ( "vogais A maiúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", A );
    textcolor ( BLACK );
    gotoxy ( 50, 13 );
    printf ( "vogais E maiúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", E );
    textcolor ( BLACK );
    gotoxy ( 50, 14 );
    printf ( "vogais I maiúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", I );
    textcolor ( BLACK );
    gotoxy ( 50, 15 );
    printf ( "vogais O maiúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", O );
    textcolor ( BLACK );
    gotoxy ( 50, 16 );
    printf ( "vogais U maiúsculo = " );
    textcolor ( LIGHTRED );
    printf ( "%d", U );
    textcolor ( BLACK );
    gotoxy ( 50, 17 );
    printf ( "total de espaços   = " );
    textcolor ( LIGHTRED );
    printf ( "%d", et );
    textcolor ( BLACK );
    gotoxy ( 50, 18 );
    printf ( "Cedilhas minúscula = " );
    textcolor ( LIGHTRED );
    printf ( "%d", ced );
    textcolor ( BLACK );
    gotoxy ( 50, 19 );
    printf ( "Cedilhas maiúscula = " );
    textcolor ( LIGHTRED );
    printf ( "%d", ced01 );
    textcolor ( BLACK );
    gotoxy ( 5, 19 );
    printf ( "Todas consoantes   = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totcon );
    textcolor ( BLACK );
    gotoxy ( 5, 20 );
    printf ( "vogais minúscula   = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totvogmi );
    textcolor ( BLACK );
    gotoxy ( 5, 21 );
    printf ( "vogais maiúscula   = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totvogma );
    textcolor ( BLACK );
    gotoxy ( 5, 22 );
    printf ( "Todos acentuados   = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totacet );
    textcolor ( BLACK );
    gotoxy ( 5, 23 );
    printf ( "Todos as cedilhas  = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totced );
    textcolor ( BLACK );
    gotoxy ( 50, 21 );
    printf ( "Todos Caracteres = " );
    textcolor ( LIGHTRED );
    printf ( "%d", totcar );
    Sleep ( 1800 );
    textcolor ( LIGHTRED );
    gotoxy ( 50, 23 );
    printf ( "MUITO OBRIGADO" );
    getche ( );
    return ( 0 );
}