Gerador de lero-lero

blabla

Nesse problema você irá criar um divertido gerador de frases prolixas e que não fazem sentido algum, mais conhecido como Gerador de Lero-Lero. Esse gerador de Lero-Lero poderá usar frases de acordo com o que você quer fazer. Se você quer um gerador para criar notícias aleatórias, você vai poder usar frases comuns em sites de notícias. Se você quer um gerador simplesmente para entreter outras pessoas, você pode usar frases comuns do dia-dia. Isso só é limitado pela sua imaginação.

 

 

Índice

  • Versão 1
    • 1.1 Como desenvolver o Gerador de Lero Lero
    • 1.2 Criar vetores com partes de frases pré-prontas
    • 1.3 Criar as variáveis
    • 1.4 Construção de frases criativas
  • Versão 2
    • 2.1 Exibir acentos em C
    • 2.2 Salvar em arquivo
  • Versão 3

 

Versão 1

A primeira versão desse gerador contará somente com o funcionamento básico, sem pensar em interface gráfica.

Entrada: número inteiro que representa o total de frases que você quer

Explicação: o seu programa deve receber como entrada um número inteiro que representa o total de frases que a pessoa deseja gerar. Por exemplo, para um bate-bato curto ou uma mensagem no Twitter, um usuário pode querer que o seu gerador de lero-lero crie apenas 1 ou 2 frases. Agora, para gerar uma tese de doutorado, o usuário pode pedir para o programa criar algumas centenas ou talvez milhares de frases bem criativas.

Veja por exemplo esta tela:

Entradalerolero

Saída: Um texto escrito na tela com o número de frases pedido.

Saida_lerolerov1

 

Como desenvolver o Gerador de Lero Lero

O desenvolvimento o Gerador de Lero-Lero exige 3 partes:

  • declaração de vetores com partes de frases pré-prontas
  • declaração de variáveis de trabalho
  • criação de mecanismo de criação de frases criativas

A criação de uma frase aleatória segue um modelo pré-pronto. Por exemplo, podemos considerar que frases serão compostas de 4 partes: sujeito, verbo, predicado e complemento.

  Você       quer     bolo      hoje?
  Arthur     tem      dengue    mesmo?

Das 16 possíveis misturas, duas podem ser: Você tem dengue mesmo? e Arthur quer bolo hoje?

 

 

Criar vetores com partes de frases pré-prontas

As frases pré-prontas são a argamassa do nosso Gerador de Lero-Lero. Os vetores para as frases são bem simples e quanto maior o número deles, melhor. Um arquivo com sugestões pode ser obtido aqui para você economizar tempo [1].

 

Criar as variáveis

Iremos descrever nessa parte as variáveis de maior importância que devem ser criadas. Você irá precisar de:

  • um vetor de inteiros com o número de posições igual ao número de partes as frases terão (armazenará os valores sorteados),
  • um inteiro que receba a quantidade de frases a serem criadas e

 

Construção de frases criativas

A construção de frases exige criatividade. Afinal, se o gerador só gerar uma frase fica sem graça. Para adicionarmos criatividade no gerador vamos usar números aleatórios. Em C, números aleatórios são criados em sequências que devem ser inicializadas com a seguinte chamada de função:

  srand(time(NULL));

A função srand permite escolher uma sequência de valores. Nesse caso para que essa sequência sempre seja diferente a cada nova execução do programa, colocamos time(NULL) como argumento para usar a hora atual do relógio do seu computador a escolha da sequência do srand. Lembre-se de que srand deve ser usada apenas uma vez e nunca dentro de um laço. Caso contrário, a sequência sempre se reiniciará e muitos os valores podem se repetir.

O próximo passo no desenvolvimento do Gerador é criar um laço que inicia em 0 e incrementa de um em um até chegar ao valor inserido pelo usuário do programa.

A cada iteração do laço você deve sortear uma parte de uma frase. Cada parte é identificada pela posição que ela fica no vetor de frases pré-prontas. Note que a função rand() retorna um número inteiro qualquer. Se rand() for chamada duas vezes muito provavelmente ela vai retornar dois valores diferentes.

  posicao = (rand() % NUMERO_DE_FRASES);

O número inteiro na variável “posicao” vai indicar qual parte de frase pré-pronta que será usada no momento.

A posição vai indicar a posição no vetor de frases pré-prontas. Por exemplo, se no vetor existem 30 partes de frases vai resultar que rand()%30 gerará um número aleatório de 0 a 29.

Lembrete: Quanto mais vetores de frases pré-prontas você possuir, mais posições você deve gerar na mesma iteração do laço, portanto é aconselhado que a variável que armazenará as posições, seja um vetor de inteiros que possa receber a mesma quantidade de valores que você tem de vetores de frases. Por exemplo, se você fez 4 vetores de frases pré-prontas você terá que utilizar um vetor[4] e em cada posição, guardar um número aleatório diferente. Isso ajudará a manter a formatação de suas frases finais.

Por fim, basta que ainda dentro da iteração do laço, você coloque um printf utilizando a formatação que desejar para exibição das frases.

No printf a seguir, as partes de frases são guardadas pelas variáveis tab0, tab1, tab2, tab3.

  printf("%s %s %s %s\n", tab0[sorteador[0]],tab1[sorteador[1]],tab2[sorteador[2]],tab3[sorteador[3]]);

Codigo LeroLeroV1

 

 

Versão 2

Nesta versão você pode melhorar o seu programa para funcionar com acentuação em português e para permitir o programa guardar mensagens em um arquivo.

Exibir acentos em C

Observe que na versão inicial do gerador as frases existem acentos são exibidos de forma errada no console:

Saida_lerolerov1

para fazer a correção disto basta setar a linguagem de onde o programa está sendo executado.

Para isso, adicione a seguinte importação em seu código:

 #include <locale.h>

Coloque no começo do código dentro da declaração da função main, o seguinte trecho de código:

 setlocale(LC_ALL, "Portuguese");

Dessa forma os acentos agora irão funcionar em todo o seu programa.

Saida_lerolerov2

COLETAR MAIS INFORMAÇÕES BASEADAS NO SLIDE ORI01

Salvar em arquivo

Todos os passos a seguir devem ser feitos tendo como base o código da versão 1 do gerador de Lero-Lero.

  • Crie um vetor de caracteres que aceite até 1000 caracteres.
  • Crie um ponteiro do tipo FILE
  • Abra o arquivo utilizando a função fopen, dê a ele o nome que desejar, porém use o modo de abertura w+, dessa forma sempre será criado um novo arquivo em cima do antigo.

No laço criado para realizar o sorteio das frases na versão 1 do gerador, realize as seguintes modificações:
Abaixo do printf feito na versão 1, utilize a função sprintf que colocará as frases finais formatadas no vetor de caracteres de 1000 posições que você criou anteriormente.

Para usar o sprintf, como primeiro argumento da função coloque o nome da variável que receberá o texto, como segundo argumento, coloque o texto como se estivesse coloca em um printf. Exemplo:

  char variavel[10] = "oi";
  sprintf(variavel,"%s testes testes testes\n", variavel);

Ainda no laço, utilize a função fputs e coloque como argumento dessa função o vetor que foi criado para guardar as frases finais.

Agora como medida segura, fora do laço de repetição utilize a função fclose para que o arquivo criado seja liberado da memória.
Pronto! Você agora tem um gerador de Lero-Lero que produz um arquivo de texto com suas frases.
codigoLeroLeroV2

 

 

Versão 3

Nessa versão utilizaremos o código produzido na versão 3 e criaremos uma interface gráfica simples para o programa.

Usaremos o seguinte rascunho como meta para essa interface:

Interfacegerador
Código feito pelo programador

 Tempo para a criaçao do codigo(programador intermediário): 60min
 Tempo para a criação do codigo(programador iniciante): *dificuldade com as funçoes de randomização. Não concluiu o código