domingo, 2 de março de 2014

Preenchendo uma Matriz com laço for

Este programa Demonstra na prática como preencher uma Matriz
 através de um contador com laço for.
Depois de gerar os números de 1 a 100 pelo contador com laço for, os números
são imprimidos por printf(); e em seguida são introduzidos num vetor de inteiros
e assim são repassados pra uma Matriz também de inteiros, quadrática de 10 x 10,
que também é  imprimida por printf(); No bloco de pesquisa, os números são colhidos
do teclado e armazenado num vetor de char, más logo são convertidos pra inteiros
graças a função atoi();  É de se admirar a capacidade do programa mesmo  sendo bem
simples é capaz de barrar caracteres e números negativos exceto o -1 que faz a saída do programa,
também impede que números acima de 100 passem pela filtragem.



Eis o código do programa abaixo:

#include <stdio.h>
#include <conio.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 );
}
void Imprime_Matriz( char *v, int Vet [ 100 ], int V [10] [10] );int main();
int Imp_Matr ( char *num ){
    unsigned int i;
    for( i = 0; i < strlen ( num ); i++ ){
        if ( num [ i ] < '0' || num [ i ] > '9' )
            return 0;
    }
    return 1;
}
void Preenche_Matriz_For( int Vet [ 100 ], int V [10] [10] ){
    system ("title PREENCHENDO UMA MATRIZ COM LACO FOR");
    Janela5();
    int a = 0, b = -1, i = 0, j = 0;
    textcolor(LIGHTRED);gotoxy(26,3);printf("PREENCHENDO UMA MATRIZ COM LACO FOR");
    textcolor(LIGHTBLUE);gotoxy(29,5);printf("Imprimindo abaixo o contador");
    textcolor(YELLOW);gotoxy(2,7);
    for( i = 1; i <= 100; i++ ){
        printf(" %d ",  i  );
        Vet [ j  ] = i;
        j++;
    }
    for( j = -1; j <= 100; j++ ){
        V [ a  ] [ b ] = Vet [ j ];
        b++;
    }
    getche();
}
void Imprime_Matriz( char *num, int Vet [ 100 ], int V [10] [10] ){
    int a, b, i, j, n = 0;
    system("cls");do{Janela5();
    textcolor(LIGHTRED);gotoxy(26,3);printf("PREENCHENDO UMA MATRIZ COM LACO FOR");
    textcolor(LIGHTBLUE);gotoxy(29,5);printf("Imprimindo agora a Matriz");
    textcolor(YELLOW);gotoxy(2,7);
    for( a = 0; a <= 10 - 1; a++ ){gotoxy(23, a + 8);
    for( b = 0; b <= 10 - 1; b++ ){
        printf(" %d ",  V [ a  ] [ b ] );
    }
    }
    textcolor(LIGHTBLUE);gotoxy(20,19);
    printf("Digite um N%c pra pesquisa ou [ -1 ] Para sair  ", 167);
    textcolor(YELLOW);gets ( num );fflush(stdin);
    n =  atoi (num);
    if ( n == 0 ){
        textcolor(LIGHTGREEN);gotoxy(25,21); printf("\aCaracteres e zero nao sao aceitos !");
        Sleep(1800); textcolor(LIGHTGREEN);gotoxy(25,22);printf("\aVoce digitou: %s", num );
        Sleep(1800); textcolor(LIGHTGREEN);gotoxy(25,23); printf("\a%s Nao e Valido !", num );
        Sleep(1800);Imprime_Matriz( num, Vet, V);system("cls");
    }
    if( n == -1 ){
        textcolor(LIGHTRED);gotoxy(33,22);printf ("O ROCCO AGRADECE");Sleep(1800);exit(0);
    }
    if ( n < 0  ){
        textcolor(LIGHTGREEN);gotoxy(25,21);printf("\aO Unico Negativo Valido e o -1");
        Sleep(1800);
    }
    if ( n > 100 ){
        textcolor(LIGHTGREEN);gotoxy(22,22);printf("\aSo sao aceitos Numeros menores que 100 ");
        Sleep(1800);system("cls");
    }
    if ( Imp_Matr ( num ) == 0 ){
        textcolor(LIGHTGREEN);gotoxy(25,22);printf("\aVoce digitou: %s", num );
        Sleep(1800);textcolor(LIGHTGREEN);gotoxy(25,23); printf("\a%s Nao e Valido !", num );
        Sleep(1800);system("cls");
    }
    else{
        for ( i = 0; i < 10; i++ ){
            for ( j = 0; j < 10; j++ ){
                if( n == V [ i ] [ j ] ){
                    textcolor(LIGHTGREEN);gotoxy(26,21);
                    printf("O valor %d foi encontrado ", n);
                    gotoxy(26,22);printf("Na linha %d e coluna %d ", i, j ) ;
                    getche();Imprime_Matriz( num, Vet, V);}
            }
        }
    }
    }while(1);
}
int main(){
    char num [3];
    int Vet [ 100 ], V [10] [10];
    Preenche_Matriz_For( Vet, V );
    Imprime_Matriz( num, Vet, V);
}

Nenhum comentário:

Postar um comentário

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