Programação de Computadores

O propósito da disciplina é ensinar a linguagem C para microcontroladores.

Aula 01 - Linguagem C

Aula 02 - Linguagem C

Aula 03 - Linguagem C

Aula 04 - Linguagem C

Aula 05 - Linguagem C

Aula 06 - Linguagem C

Aula 07 - Linguagem C

Aula 08 - Linguagem C

Trabalho/Avaliação para o dia 19/11/2018

Montar um programa para sortear os números da Mega Sena e LotoFácil. A criatividade e as melhorias serão levadas em consideração.

Regras (sem repetição):

Mega Sena: Sortear 6 números dentre 60
Resultado de imagem para mega sena cartao

LotoFácil: Sortear 15 de 25 números
Resultado de imagem para lotofacil cartao

O programa deve conter um menu como abaixo:

Escolha a Opção:

1 - Mega Sena
2 - LotoFácil
3 - Sair

Os valores devem ser armazenados em vetores:

int megasena[5];
int lotofacil[14];

Exemplo com menu (DO WHILE):

#include
#include
int main(int argc, char *argv[]) {
int megasena[5];
int lotofacil[14];
int opcao;
do
{
printf("Escolha a Opcao:\n");
printf("1 - Mega Sena\n");
printf("2 - LotoFacil\n");
printf("3 - Sair\n\n");
printf("Qual a sua opcao?");
scanf("%d",&opcao);
}while (opcao!=3);
return 0;
}





Selecionando uma opção (SWITCH CASE):

#include
#include
int main(int argc, char *argv[]) {
int megasena[6];
int lotofacil[15];
int opcao;
do
{
printf("Escolha a Opcao:\n");
printf("1 - Mega Sena\n");
printf("2 - LotoFacil\n");
printf("3 - Sair\n\n");
printf("Qual a sua opcao?");
scanf("%d",&opcao);
switch (opcao){
case 1: {
printf ("Mega Sena \n");
break;
}
case 2: {
printf ("LotoFacil \n");
break;
}
}
}while (opcao!=3);
return 0;
}

Exemplo de sorteio (TIME.H, RAND, SRAND):

#include
#include
#include
int sorteio (int max){
return rand() % max;
}
int main(int argc, char *argv[]) {
srand(time(NULL)); // para evitar sortear repetido
int megasena[6];
int lotofacil[15];
int opcao;
int i, j; // para usar no FOR
do
{
printf("Escolha a Opcao:\n");
printf("1 - Mega Sena\n");
printf("2 - LotoFacil\n");
printf("3 - Sair\n\n");
printf("Qual a sua opcao?");
scanf("%d",&opcao);
switch (opcao){
case 1: {
printf ("Mega Sena \n");
printf ("%d",sorteio(60));
break;
}
case 2: {
printf ("LotoFacil \n");
printf ("%d",sorteio(25));
break;
}
}
}while (opcao!=3);
return 0;
}

Agora vamos colocar os sorteios dentro dos vetores de acordo com o tamanho:

#include
#include
#include
int sorteio (int max){
return rand() % max;
}
int main(int argc, char *argv[]) {
srand(time(NULL)); // para evitar sortear repetido
int megasena[6];
int lotofacil[15];
int opcao;
int i, j; // para usar no FOR
do
{
printf("Escolha a Opcao:\n");
printf("1 - Mega Sena\n");
printf("2 - LotoFacil\n");
printf("3 - Sair\n\n");
printf("Qual a sua opcao?");
scanf("%d",&opcao);
switch (opcao){
case 1: {
printf ("Mega Sena \n");
// Sortear 6 numeros no vetor
for (i=0;i<6 font="" i="">
{
megasena[i]=sorteio(60);
}
// Mostra os números
for (i=0;i<6 font="" i="">
{
printf("%d -",megasena[i]);
}
break;
}
case 2: {
printf ("LotoFacil \n");
printf ("%d",sorteio(25));
// Sortear 15 numeros no vetor
for (i=0;i<15 font="" i="">
{
lotofacil[i]=sorteio(25);
}
// Mostra os números
for (i=0;i<15 font="" i="">
{
printf("%d -",lotofacil[i]);
}
break;
}
}
}while (opcao!=3);
return 0;
}

Essa é a última versão para o trabalho de amanhã (19/11/2018). Ainda falta completar, mas o problema da repetição está resolvido para a MegaSena, o objetivo é melhor a aparência do programa e do código e completar a parte da repetição para a LotoFácil.

#include
#include
#include
int sorteio (int max){
return rand() % max;
}

int main(int argc, char *argv[]) {
srand(time(NULL)); // para evitar sortear repetido
int megasena[6];
int lotofacil[15];
int opcao;
int i, j; // para usar no FOR
int repetido; // 0 - nao e 1 - sim
int sorteado;
do
{
printf("Escolha a Opcao:\n");
printf("1 - Mega Sena\n");
printf("2 - LotoFacil\n");
printf("3 - Sair\n\n");
printf("Qual a sua opcao?");
scanf("%d",&opcao);
switch (opcao){
case 1: 
{
printf ("Mega Sena \n");
// Sortear 6 numeros e guarda no vetor
for (i=0;i<6 font="" i="">
{
do
{
sorteado = sorteio(60);
// como não repetido
repetido = 0; 
for(j=0;j
if (megasena[j]==sorteado)
repetido = 1; 
// caso tenha um igual
} while (repetido==1);
megasena[i] = sorteado;
}
// Mostra os números
for (i=0;i<6 font="" i="">
{
printf("%d -",megasena[i]);
}
break;
}
case 2: 
{
printf ("LotoFacil \n");
printf ("%d",sorteio(25));
// Sortear 15 numeros e guarda no vetor
for (i=0;i<15 font="" i="">
{
lotofacil[i]=sorteio(25);
}
// Mostra os números
for (i=0;i<15 font="" i="">
{
printf("%d -",lotofacil[i]);
}
break;
}
}
}while (opcao!=3);
return 0;
}



Comentários

  1. professor manda as provas nesse email eletronica20181nsn1@gmail.com

    ResponderExcluir
  2. Professor, se puder ajudar qual comando uso para fazer a soma dos números digitados antes do zero no 1º exercício. :)
    A primeira parte consegui fazer, não consigo o comando da soma.

    ResponderExcluir
  3. Bom dia, Maikon,

    Lembre-se que temos que ter uma variável para o número e outra para soma.

    A soma começa com zero:

    soma = 0;

    Após a entrada do número (scanf), você tem que fazer a soma:

    soma = soma + numero;

    Ai você se pergunta como assim? A variável soma esta na memória com um valor, eu pego o valor da memória e somo com o novo número digitado.


    ResponderExcluir
  4. Boa noite, professor Wellington, eu estou tendo um problema com o primeiro programa do trabalho.
    Eu consegui montar a estrutura do programa, mas no fim, quando entra a condição (} while (a==0);) ele não compara o valor digitado com a variável e encerra o programa com qualquer número que eu digite.
    Se mudar para } while (a>0); ou } while (a<0); ele funciona, mas não da forma que você quer.
    Agradeço muito se puder ajudar.

    ResponderExcluir
  5. Bom dia, Felipe,

    Tem como colar o pedaço do programa DO... WHILE...?

    ResponderExcluir

Postar um comentário