programaparasimularsorteiodamegasena

1. programaparasimularsorteiodamegasena

jose erivando brasil
eri.brasil

(usa Outra)

Enviado em 18/05/2011 - 07:15h

Preciso de ajudar urgente

Pela primeira vez recorro a vocês:
sou estudante, tenho 15 anos faço do 2 grau e não consigo resolver esse problema que o meu professor passou:


Escreva um programa usando a linguaguem C que simule o sorteio da Megasena. Seu programa deverá sortear aleatoriamente 6 números de 01 a 60


1 – Você poderá usar um vetor de inteiro global
2 – Não poderá ter números repetidos entre seis números sorteados
3 – seu programa deverá ter a opção de mostrar a data e hora do sorteio e o resultado do sorteio
4 – Seu programa deverá ter uma opção para gravar o arquivo na memória secundária(HD, por exemplo)
5 – O Arquivo gravado não deverá apagar os resultados já gravados anteriormente
6 – Deverá gravar a data e hora do sorteio e o resultado do próprio


Agradeço muito que me ajudar


  


2. Re: programaparasimularsorteiodamegasena

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 28/06/2011 - 08:12h

Bom, a parte mais 'complicada' desse programa seria a randomização dos numeros sem repetição.
Essa parte eu 'fiz' pra você. Você vai ter que aterar algumas coisas pra ficar igual o progrmaa que você quer, mais funciona perfeitamente. Se algum dia tiver sem ideia e quiser jogar, só rodar o programa.

Agora, hora, gravação no HD, e não apagar o arquivo, você descobre bem fácil....


fopen('file.txt', 'a' ); // isso chamase APPEND. Você abre um arquivo para escrever no final dele sem aterar os dados que já estavam lá.

A hora... bem, como mostrar a hora você descobre, força de vontade moleque ;)

http://google.com

-------------------------------- megasena.c ------------------------------------------
#include <stdio.h>
#include <stdlib.h>

#define NUMEROS 60
#define RESULT 6

int main ( void )
{
register int i, j;

int megasena[ NUMEROS ];
int resultado[ RESULT ];
int atual;

printf ( "MEGASENA\n\n");

srand(time(NULL));

for ( i = 0; i < RESULT; i++ ) {
// vai randomizar um numero até que ele não seja repedito
while ( 1 ) {
atual = rand() % NUMEROS;

// checa se o numero já existe
for ( j = 0; j < i; j++ ) if ( resultado[j] == atual ) atual = (-1);

if ( atual > -1 ) {
resultado[i] = atual;
printf ( "[%d]: %d\n", i, atual );
break;
}
}
}
return 0;
}

-------------------------------- megasena.c ------------------------------------------

--------------------------------- SAIDA ----------------------------------------------
G:\Documents and Settings\Enzo\Desktop>megasena
MEGASENA

[0]: 33
[1]: 59
[2]: 41
[3]: 14
[4]: 32
[5]: 42

G:\Documents and Settings\Enzo\Desktop>megasena
MEGASENA

[0]: 37
[1]: 8
[2]: 17
[3]: 9
[4]: 27
[5]: 54

G:\Documents and Settings\Enzo\Desktop>megasena
MEGASENA

[0]: 40
[1]: 8
[2]: 1
[3]: 4
[4]: 22
[5]: 36
--------------------------------- SAIDA ----------------------------------------------


Espero ter ajudado,
Qualquer coisa posta denovo.
Enzo Ferber
[]'s


3. Re: programaparasimularsorteiodamegasena

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/06/2011 - 10:35h

Já fiz algo parecido, só que em batch. É interessante comparar os dois código e ver que, mesmo tendo princípios completamente diferentes, as duas linguagens seguem o mesmo princípio básico de programação (linguagens? desde quando batch é uma linguagem de programação? kkk)

Bom, eu achei interessante comparar, só por curiosidade mesmo, fica ai o código:

@echo off
:comeco
TITLE MRK - MEGA SENA GERADOR V 2.3
if exist Megasena2.txt Del /Q Megasena2.txt
setlocal enabledelayedexpansion
Mode 43,7
Color 9
Cls
Echo.
Set /P Jog="Quantidade de jogos: > "
if not defined Jog (cls&echo.&echo.&echo Quantidade invalida&ping -n 5 0.0.0.0 >nul&goto comeco)
Echo.
Set /P PRECO="Valor Atual da aposta ?: >R$ "
call :calcula
Cls
set /a linhas=%Jog%+9
set inicio=%Time%
Mode 35,%linhas%
echo Gerando Combina‡äes
:INI
Set /A N+=1
:gera1
Set /A Num1=(%random% %% ((61) - (0))) - (0) >nul
IF %Num1% lss 10 set Num1=0%Num1%
IF %Num1% equ 00 (goto gera1)
(call :duplicado %Num1% 1)
:gera2
Set /A Num2=(%random% %% ((61) - (0))) - (0) >nul
IF %Num2% lss 10 set Num2=0%Num2%
IF %Num2% equ 00 (goto gera2)
IF %Num2%==%Num1% (goto :gera2) ELSE (call :duplicado %Num2% 2)
:gera3
Set /A Num3=(%random% %% ((61) - (0))) - (0) >nul
IF %Num3% lss 10 set Num3=0%Num3%
IF %Num3% equ 00 (goto gera3)
IF %Num3%==%Num1% (goto :gera3)
IF %Num3%==%Num2% (goto :gera3) ELSE (call :duplicado %Num3% 3)
:gera4
Set /A Num4=(%random% %% ((61) - (0))) - (0) >nul
IF %Num4% lss 10 set Num4=0%Num4%
IF %Num4% equ 00 (goto gera4)
IF %Num4%==%Num1% (goto :gera4)
IF %Num4%==%Num2% (goto :gera4)
IF %Num4%==%Num3% (goto :gera4) ELSE (call :duplicado %Num4% 4)
:gera5
Set /A Num5=(%random% %% ((61) - (0))) - (0) >nul
IF %Num5% lss 10 set Num5=0%Num5%
IF %Num5% equ 00 (goto gera5)
IF %Num5%==%Num1% (goto :gera5)
IF %Num5%==%Num2% (goto :gera5)
IF %Num5%==%Num3% (goto :gera5)
IF %Num5%==%Num4% (goto :gera5) ELSE (call :duplicado %Num5% 5)
:gera6
Set /A Num6=(%random% %% ((61) - (0))) - (0) >nul
IF %Num6% lss 10 set Num6=0%Num6%
IF %Num6% equ 00 (goto gera6)
IF %Num6%==%Num1% (goto :gera6)
IF %Num6%==%Num2% (goto :gera6)
IF %Num6%==%Num3% (goto :gera6)
IF %Num6%==%Num4% (goto :gera6)
IF %Num6%==%Num5% (goto :gera6) ELSE (call :duplicado %Num6% 6)
CALL :TESTE
echo.
@for /l %%a in (1,1,61) do (set v%%a=)
@for /l %%a in (1,1,61) do (set Num%%a=)
SET ordenados=
IF %N%==%Jog% ping -n 5 0.0.0.0 >nul&call :fim&goto SAIR
goto INI
:TESTE
set "vg=%N% "
IF %vg:~0,3% lss 10 set "vg=0%N% "
set desordenados=%Num1% %Num2% %Num3% %Num4% %Num5% %Num6%
call :ordenar %desordenados%
echo.# Resultado %vg:~0,3%:- %ordenados%#>>Megasena2.txt
TITLE Gerando Resultado Num. %N% de %Jog%
IF %N%==1 (echo.&echo.&echo ...::: RESULTADOS GERADOS :::...&echo.)
@FOR %%# IN (R E S U L T A D O " " %vg:~0,3%: " " %ordenados: =% ) DO @SET/P=%%~#<NUL&>NUL PING -n 1 0
goto :eof
:ordenar
for /f "tokens=*" %%a in (
'
^(for %%_ in ^(%*^) do @echo.%%_^)^|sort
'
) do set ordenados=!ordenados!%%a

goto :eof

:duplicado
IF Num%2 lss 10 set Num%2=0%2
if defined v%1 (goto gera%2)
set v%1=%1
goto:eof

:fim
set "qt=%Jog% "
set "tt=%VALOR:~0,-2%,%VALOR:~-2% "
Echo #####################################>>Megasena.txt
Echo # MRK - MEGA SENA GERADOR VER. 2.3 #>>Megasena.txt
Echo # #>>Megasena.txt
ECHO # Qtd. Combinações solicitado:%qt:~0,3% #>>Megasena.txt
Echo # Horário de Inicio: %inicio:~0,-3% #>>Megasena.txt
Echo # Horário de Termino: %Time:~0,-3% #>>Megasena.txt
Echo ------------------------------------->>Megasena.txt
Echo # Combinações geradas: # >>Megasena.txt
Echo # #>>Megasena.txt
type Megasena2.txt>>Megasena.txt
Echo # #>>Megasena.txt
Echo ------------------------------------->>Megasena.txt
ECHO # Valor total das apostas R$ %tt:~0,6% #>>Megasena.txt
Echo ------------------------------------->>Megasena.txt
Echo # #>>Megasena.txt
Echo # BoA SoRTE #>>Megasena.txt
ECHO # VISITE: #>>Megasena.txt
ECHO # fretsonfirebrasil.forumclan.com #>>Megasena.txt
ECHO # CODED BY Viny Corporation #>>Megasena.txt
Echo ------------------------------------->>Megasena.txt
:CONFIRM
if exist Megasena2.txt Del /Q Megasena2.txt
echo.
set/p cho=Imprimir os resultados ? (S/N):
if /I %cho%==S (notepad.exe /p "%cd%\Megasena.txt"&&goto:eof)
if /I %cho%==N (
cls
echo Obrigado e ate logo
ping -n 5 0.0.0.0 >nul
) else (
cls
echo Opcao invalida
ping -n 5 0.0.0.0 >nul
goto CONFIRM
)

start notepad.exe Megasena.txt
goto:eof

:sair
exit

:duplicado
if defined v%1 (goto gera%2)
set v%1=%1
goto:eof

:CALCULA
if not defined PRECO (set PRECO=1,75)
set/a VALOR=%PRECO:,=%*%Jog%
set/a TOTAL=%VALOR:~0,-2%,%VALOR:~-2%
goto:eof

melhor visualizado: http://paste.ubuntu.com/492090/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts