Na biblioteca stdilb.h que é uma das bibliotecas padrão do C, encontramos a função
rand(); para aplicações onde um valor randômico é exigido, e isto é um procedimento
muito normal em programação.
Esta função geralmente trabalha com valores pré-definidos limitados por uma constante
que se encontra também na mesma biblioteca.
Más o que ocorreu, foi que os valores declarados nas matrizes de string sempre se repetiam,
eram sempre iguais.Notei então depois de algumas pesquisa que a função rand(); assume um valor
real, forçando sempre a mesma sequência serem apresentadas.
Com muita paciência recorri a função srand(); que trabalha dando um ponta-pé na função rand();
injetando um determinado valor diferente a cada execução do programa.
Este valor foi obtido usando o comando time da biblioteca time.h.
Para usar a função srand(); a seguinte declaração se fez necessária: srand ( time ( NULL ) );
Este programa forma nomes com sobrenomes, em um giro automático comandado por um do while,
com os tempos determinados pela função Sleep();
Quando o nome "Sandro" é encontrado, a função strcmp(); barra a execução e imprime a mensagem
"fim do programa!!".
Neste código passei os valores das matrizes de string como parâmetros na função
Nome_sobrenome ( char *No_me, char *Sobre_Nomes ); e esta por sua vez retorna os endereços
para a função main();
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
rand(); para aplicações onde um valor randômico é exigido, e isto é um procedimento
muito normal em programação.
Esta função geralmente trabalha com valores pré-definidos limitados por uma constante
que se encontra também na mesma biblioteca.
Más o que ocorreu, foi que os valores declarados nas matrizes de string sempre se repetiam,
eram sempre iguais.Notei então depois de algumas pesquisa que a função rand(); assume um valor
real, forçando sempre a mesma sequência serem apresentadas.
Com muita paciência recorri a função srand(); que trabalha dando um ponta-pé na função rand();
injetando um determinado valor diferente a cada execução do programa.
Este valor foi obtido usando o comando time da biblioteca time.h.
Para usar a função srand(); a seguinte declaração se fez necessária: srand ( time ( NULL ) );
Este programa forma nomes com sobrenomes, em um giro automático comandado por um do while,
com os tempos determinados pela função Sleep();
Quando o nome "Sandro" é encontrado, a função strcmp(); barra a execução e imprime a mensagem
"fim do programa!!".
Neste código passei os valores das matrizes de string como parâmetros na função
Nome_sobrenome ( char *No_me, char *Sobre_Nomes ); e esta por sua vez retorna os endereços
para a função main();
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.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 FUNÇÃO RAND E SRAND" );
int nr;
do {
system ( "cls" );
system ( "Color 20" );
Janela5 ( );
textcolor ( LIGHTRED );
gotoxy ( 32 , 5 );
printf ( "FUNÇÃO RAND E
SRAND" );
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;
}
int Nome_sobrenome ( char *No_me , char *Sobre_Nomes ) {
srand ( time ( NULL ) );
int b, c;
return b = rand ( ) % 12;
return c = rand ( ) % 12;
return 0;
}
int main ( ) {
int b, c = 0;
continuando ( );
char nomes [ 12 ] [ 10 ] = { { "Mara" }, { "João" }, { "Sílvia" }, {
"Cláudio" }, { "Lucas" }, { "Stefani" }, { "Sandro" }, { "Suelen" },
{ "Henrike" }, { "Claudete" }, { "Cícero" }, { "Júlia" } };
char sobre_nomes [ 12 ] [ 10 ] = { { "Mendonça" }, { "Soares" },
{ "Santana" }, { "Lima" }, { "Alves" }, { "Neto" }, { "Costa" }, {
"Dutra" }, { "Gomes" }, { "Ferreira" }, { "Amorin" }, {
"Lemos" } };
char *nome;
nome = ( char* ) malloc ( 50 );
do {
system ( "cls" );
system ( "Color
20" );
Janela5 ( );
b = Nome_sobrenome ( &nomes [ 12 ] [ 10 ] ,
&sobre_nomes [ 12 ] [ 10 ] );
c = Nome_sobrenome ( &nomes [ 12 ] [ 10 ] ,
&sobre_nomes [ 12 ] [ 10 ] );
textcolor ( LIGHTRED );
gotoxy ( 32 , 3 );
printf ( "FUNÇÃO RAND E
SRAND" );
textcolor ( LIGHTBLUE );
gotoxy ( 25 , 5 );
printf ( "Abaixo Nomes
com sobrenomes" );
gotoxy ( 25 , 7 );
textcolor ( LIGHTRED );
printf ( "%s %s" , nomes [ b ] , sobre_nomes [ c ] );
strcpy ( nome , nomes [ b ] );
if ( strcmp ( nomes [ b ] , "Sandro" ) == 0 ) {
textcolor ( BLACK );
gotoxy ( 35 , 18 );
printf ( "Fim do
programa!!" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 36 , 21 );
printf ( "MUITO
OBRIGADO" );
getche ( );
exit ( 0 );
}
Sleep ( 800 );
} while ( 1 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.