quinta-feira, 12 de dezembro de 2013

Vetor de Char para inteiro

Algumas vêzes precisamos preencher posições de um vetor, com alguns dígitos específicos, por exemplo:
preencher posições de um vetor com algarismos menores que 10, que é o caso deste programa, ou um outro valor pré-determinado.
Más este programa vai além disto, ele está programado para reprovar qualquer caractere que não seja dígitos menores que 10, reprovando também,
números negativos, exceto o -1, que faz a saída do programa.
Está mais que claro que este programa pode fazer parte de um mais elaborado, servindo de base para se obter o máximo de desempenho.

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








Eis abaixo, o código do programa:

#include <stdio.h>
#include <conio.h>
#include <string.h>
void Janela5(){
    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 );
}
int Vetor ( char num [ 4 ] ){
    int i;
    for( i = 0; i < strlen ( num ); i++ ){
        if ( num [ i ] < '0' || num [ i ] > '9' )
            return 0;
    }
    return 1;
}
void Titulo(){int i = 0;Janela5();
char *titulo = {"VETOR DE CHAR PARA INTEIRO"
        "CRIADO POR SAMUEL LIMA"
        "sa_sp10@hotmail.com"
        "PRESSIONE QUALQUER TECLA"};
textcolor(YELLOW);gotoxy(18,7);for ( i = 0; i < 26; i++){
    printf ("%c ",titulo [ i ]  );Sleep(50);
}
textcolor(LIGHTRED);gotoxy(34,9);for ( i = 26; i < 37; i++){
    printf ("%c ",titulo [ i ]  );Sleep(100);
}
textcolor(LIGHTGREEN);gotoxy(33,11);for ( i = 37; i < 48; i++){
    printf ("%c ",titulo [ i ]  );Sleep(100);
}
textcolor(LIGHTBLUE);gotoxy(25,13);for ( i = 48; i < 67; i++){
    printf ("%c ",titulo [ i ]  );Sleep(100);
}
textcolor(WHITE);gotoxy(21,19);for ( i = 67; i < 91; i++){
    printf ("%c ",titulo [ i ]  );Sleep(100);
}
getche();
}
void Vet_Char_Int(){
    char num [ 9 ][ 2 ];
    int a = 0,  i = 0, n = 0, vet [ 10 ];
    for( i = 0; i < 10; i++ ){
        system("cls");Janela5();
        textcolor(LIGHTRED);gotoxy(29,3);printf("VETOR DE CHAR PARA INTEIRO" );
        textcolor(LIGHTBLUE);gotoxy(19,5);printf("Digite um numero para a posicao " );
        textcolor(LIGHTRED);printf(" %d%c ", i + 0, 167 );
        textcolor(LIGHTBLUE);printf("do Vetor A" );
        textcolor(YELLOW);gotoxy(66, 5);scanf("%s", num [ i ] );fflush(stdin);
        n =  atoi ( num [ i ] );
        if( n == -1 ){
            textcolor(LIGHTRED);gotoxy(33,20);printf ("O ROCCO AGRADECE");Sleep(1800);exit(0);
        }
        if ( n < 0  ){
            textcolor(LIGHTGREEN);gotoxy(25,9);printf("\aO Unico Negativo Valido e o -1");
            getche();
        }
        if ( n > 9 ){
            textcolor(LIGHTGREEN);gotoxy(22,11);printf("\aSo sao aceitos Numeros menores que 10 ");
            getche();Vet_Char_Int();system("cls");
        }
        if ( Vetor ( num [ i ] ) == 0 ){
            textcolor(LIGHTGREEN);gotoxy(34,11);printf("Voce digitou: %s", num [ i ] );
            textcolor(LIGHTGREEN);gotoxy(25,13); printf("\aIsso nao e um numero Valido !");
            getche();Vet_Char_Int();system("cls");
        }
    }system("cls");Janela5();
    textcolor(LIGHTRED);gotoxy(29,3);printf("VETOR DE CHAR PARA INTEIRO" );
    textcolor(LIGHTBLUE);gotoxy(24,5);printf("Imprimindo abaixo, o Vetor de char" );
    textcolor(YELLOW);gotoxy(24,7);for( i = 0; i < 10; i++ ){
        printf(" %s ", num  [ i ] );
        vet [ a ] =  atoi ( num [ i ] );
        a++;
    }getche();
    textcolor(LIGHTBLUE);gotoxy(14,9);printf("Imprimindo abaixo, o Vetor de char convertido para Inteiro" );
    textcolor(YELLOW);gotoxy(24,11);for( a = 0; a < 10; a++ )
        printf(" %d ", vet  [ a ] );
    textcolor(LIGHTRED);gotoxy(33,20);printf ("O ROCCO AGRADECE");getche();exit(0);
}
int main(){
    system ("title VETOR DE CHAR PARA INTEIRO");
    Titulo();
    Vet_Char_Int();
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.