Grande é a eficiência deste programa, no qual usa um vetor dinâmico para armazenar
a quantidade de inteiros que são inseridos pelo usuário, dentro de limitações
estabelecida pela #Macro tam, apoiado por um if onde a condição não deixa ultrapassar,
Já na declaração deste if temos as mensagens de advertência ao usuário, onde são apagadas
após suas exibições pela função clreol(); que por sua vez trabalha apontada pela função gotoxy();
Más nada disto teria sentido se não fosse o repetidor do{}while(); que confirma as condições do if
e força a repetição do bloco.
Passando pelas condições estabelecidas, um bloco comandado por um único laço for(); colhe a quantidade de números escolhido pelo usuário e armazena num vetor estático que foi declarado
e está pronto para isto, más paro por aqui nos meus comentários, e deixo por conta dos interessados no código procurar entender como tudo foi feito.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
a quantidade de inteiros que são inseridos pelo usuário, dentro de limitações
estabelecida pela #Macro tam, apoiado por um if onde a condição não deixa ultrapassar,
Já na declaração deste if temos as mensagens de advertência ao usuário, onde são apagadas
após suas exibições pela função clreol(); que por sua vez trabalha apontada pela função gotoxy();
Más nada disto teria sentido se não fosse o repetidor do{}while(); que confirma as condições do if
e força a repetição do bloco.
Passando pelas condições estabelecidas, um bloco comandado por um único laço for(); colhe a quantidade de números escolhido pelo usuário e armazena num vetor estático que foi declarado
e está pronto para isto, más paro por aqui nos meus comentários, e deixo por conta dos interessados no código procurar entender como tudo foi feito.
Veja abaixo imagens do programa em execução:
#include <stdio.h>
#include <conio.h>
#define tam 50
void Janela5 ( ) {
int lin, col;
col = 0;
system ( "Color 00" );
for ( lin = 2; lin < 25; lin++ )
for ( col = 2; col < 80; col++ ) {
gotoxy ( col, lin );
textbackground ( WHITE );
printf ( " " );
}
}
int continuando ( ) {
int nr;
do {
system ( "Color 90" );
Janela5 ( );
textcolor ( LIGHTRED );
gotoxy ( 20, 3 );
printf ( "INTEIROS -
PESQUISANDO E REMOVENDO OCORRÊNCIAS " );
textcolor ( BROWN );
gotoxy ( 25, 7 );
printf ( "Programa
desenvolvido por:" );
textcolor ( GREEN );
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 ( BLACK );
gotoxy ( 36, 16 );
printf ( "\aopcão errada!" );
getche ( );
} while ( 1 );
return 0;
}
int main ( ) {
system ( "title
INTEIROS - PESQUISANDO E REMOVENDO OCORRÊNCIAS" );
continuando ( );
Janela5 ( );
unsigned int cont, i, j, p;
int *Ve_t;
Ve_t = ( int* ) malloc ( tam * sizeof(int) );
int Vet [ tam ];
textcolor ( LIGHTRED );
gotoxy ( 20, 3 );
printf ( "INTEIROS -
PESQUISANDO E REMOVENDO OCORRÊNCIAS " );
do {
textcolor ( LIGHTBLUE );
gotoxy ( 20, 5 );
printf ( "Quantos números
deseja inserir ? " );
textcolor ( LIGHTRED );
scanf ( "%d", &p );
fflush ( stdin );
textcolor ( BLACK );
gotoxy ( 28, 9 );
if ( p < 1 || p > tam ) {
printf ( "\aNúmero
acima de 0 e menor que %d ", tam );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 20, 23 );
printf ( "Pressione
qualquer tecla para tentar outra vez" );
getche ( );
gotoxy ( 7, 13 );
clreol ( );
gotoxy ( 20, 9 );
clreol ( );
gotoxy ( 52, 5 );
clreol ( );
gotoxy ( 20, 23 );
clreol ( );
}
} while ( ( p < 1 ) || ( p > tam ) );
for ( i = 0; i < p; i++ ) {
textcolor ( LIGHTBLUE );
gotoxy ( 20, 7 );
printf ( "Insira o
" );
textcolor ( LIGHTRED );
gotoxy ( 28, 7 );
printf ( " %do", i + 1 );
textcolor ( LIGHTBLUE );
gotoxy ( 32, 7 );
printf ( " número :
" );
textcolor ( LIGHTRED );
scanf ( "%d", &Vet [ i ] );
fflush ( stdin );
}
textcolor ( LIGHTBLUE );
gotoxy ( 7, 9 );
printf ( "Números
digitados ==> " );
for ( i = 0; i < p; i++ ) {
textcolor ( BLACK );
printf ( " %d", Vet [ i ] );
}
getche ( );
do {
textcolor ( LIGHTBLUE );
gotoxy ( 7, 11 );
printf ( "Digite um número
para ser removido ==> " );
i = 0;
textcolor ( LIGHTRED );
scanf ( "%d", &Ve_t [ i ] );
fflush ( stdin );
cont = 0;
for ( i = 0; i < p; i++ )
for ( j = 0; j < p - 1; j++ )
if ( Vet [ i ] == Ve_t [ j ] && Vet [ i ] != 0 )
cont++;
if ( cont == 0 ) {
textcolor ( LIGHTBLUE );
gotoxy ( 7, 13 );
printf ( "Não há
Nenhuma ocorrência de " );
textcolor ( LIGHTRED );
printf ( "%d", Ve_t [ cont ] );
textcolor ( LIGHTBLUE );
printf ( " entre os números
digitados" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 7, 15 );
printf ( "Pressione
qualquer tecla para tentar outra vez" );
getche ( );
gotoxy ( 46, 11 );
clreol ( );
gotoxy ( 7, 13 );
clreol ( );
gotoxy ( 7, 15 );
clreol ( );
}
} while ( cont == 0 );
textcolor ( LIGHTBLUE );
gotoxy ( 7, 13 );
printf ( "Entre os números
==> " );
for ( i = 0; i < p; i++ ) {
textcolor ( BLACK );
printf ( "%d ", Vet [ i ] );
}
textcolor ( LIGHTBLUE );
gotoxy ( 7, 15 );
printf ( "Foram
encontrados " );
textcolor ( LIGHTRED );
printf ( " %d ", cont );
textcolor ( LIGHTBLUE );
printf ( " números" );
i = 0;
textcolor ( LIGHTRED );
printf ( " %d ", Ve_t [ i ] );
textcolor ( LIGHTBLUE );
gotoxy ( 7, 17 );
printf ( "Mostrando
abaixo os números ==> " );
for ( i = 0; i < p; i++ ) {
textcolor ( BLACK );
printf ( "%d ", Vet [ i ] );
}
textcolor ( LIGHTBLUE );
gotoxy ( 7, 19 );
printf ( "Sem seus
" );
textcolor ( LIGHTRED );
printf ( " %d ", cont );
textcolor ( LIGHTBLUE );
printf ( " dígitos
" );
i = 0;
textcolor ( LIGHTRED );
printf ( " %d ", Ve_t [ i ] );
textcolor ( LIGHTBLUE );
printf ( " que foram
removidos " );
textcolor ( BLACK );
gotoxy ( 7, 21 );
for ( i = 0; i < p; i++ ) {
for ( j = 0; j < p - 1; j++ )
if ( Vet [ i ] == Ve_t [ j ] )
break;
if ( j == p - 1 ) {
printf ( " %d", Vet [ i ] );
}
}
Sleep ( 1000 );
textcolor ( LIGHTRED );
gotoxy ( 36, 23 );
printf ( "MUITO
OBRIGADO" );
getche ( );
free ( Ve_t );
return ( 0 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.