sábado, 7 de fevereiro de 2015

Filtrando caracteres

Em eletrônica Os filtros passa-faixa ou passa-banda,filtros passa-baixas e passa-altas
são largamente usados em circuitos onde determinadas frequências devem ser rejeitadas,
passando apenas só mesmo a frequência ideal. Fórmulas matemáticas eram usadas para se obter
um cálculo exato das frequências exigidas, onde envolvia a bitola do fio esmaltado, o número
de espiras num bastão de ferrite, onde o tamanho e o diâmetro também fazia parte dos cálculos.
Saudades deste tempo dos transmissores e receptores didáticos que agente montava e via funcionar.
O código aqui proposto atua como um filtro impedindo que caracteres que não seja "f" ou "m"
possam passar, existe várias formas de fazer isto, e este é um método fácil e seguro.

Veja abaixo imagens do programa em execução:






Veja abaixo o código do programa:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
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 FILTRANDO CARACTERES" );
     int nr;
     do {
         system ( "cls" );
         system ( "Color 90" );
         Janela5 ( );
         textcolor ( LIGHTRED );
         gotoxy ( 32, 5 );
         printf ( "FILTRANDO CARACTERES" );
         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 ( BLACK );
         gotoxy ( 36, 16 );
         printf ( "\aopcão errada!" );
         getche ( );
     } while ( 1 );
     return 1;
}
int main ( ) {
     char string [ 9 ] [ 2 ];
     int i, cont;
     continuando ( );
     for ( i = 0; i < 9; i++ ) {
         do {
              system ( "cls" );
              system ( "Color 50" );
              Janela5 ( );
              textcolor ( LIGHTRED );
              gotoxy ( 32, 3 );
              printf ( "FILTRANDO CARACTERES" );
              textcolor ( LIGHTBLUE );
              gotoxy ( 22, 5 );
              printf ( "Informe o " );
              textcolor ( LIGHTRED );
              printf ( " %do", i + 1 );
              textcolor ( LIGHTBLUE );
              printf ( " caracter : " );
              textcolor ( LIGHTRED );
              scanf ( "%s", string [ i ] );
              fflush ( stdin );
              strlwr ( string [ i ] );
              if ( *string [ i ] == 'f' || *string [ i ] == 'm' ) {
                   break;
              } else {
                   textcolor ( LIGHTBLUE );
                   gotoxy ( 22, 7 );
                   printf ( "\aSó digite " );
                   textcolor ( LIGHTRED );
                   printf ( "F" );
                   textcolor ( LIGHTBLUE );
                   printf ( " ou" );
                   textcolor ( LIGHTRED );
                   printf ( " M " );
              }
              getche ( );
         } while ( 1 );
     }
     cont = 0;
     for ( i = 0; *string [ i ] != '\0'; i = i + 1 ) {
         if ( *string [ i ] == 'f' )
              cont = cont + 1;
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 22, 7 );
     printf ( "Número de caracteres " );
     textcolor ( BLACK );
     printf ( "F" );
     textcolor ( LIGHTBLUE );
     printf ( " digitado" );
     textcolor ( LIGHTRED );
     printf ( " %d", cont );
     getche ( );
     cont = 0;
     for ( i = 0; *string [ i ] != '\0'; i = i + 1 ) {
         if ( *string [ i ] == 'm' )
              cont = cont + 1;
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 22, 9 );
     printf ( "Número de caracteres " );
     textcolor ( BLACK );
     printf ( "M" );
     textcolor ( LIGHTBLUE );
     printf ( " digitado" );
     textcolor ( LIGHTRED );
     printf ( " %d", cont );
     Sleep ( 1000 );
     textcolor ( BLACK );
     gotoxy ( 35, 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
     return ( 0 );
}

Nenhum comentário:

Postar um comentário

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