Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2018:alunos:trabalho_final:silara_fatima:fun2

Plano B: Um menu variado

Contexto: Com a vida corrida da pós, é comum que comamos mal (isso quando lembramos de comer). Pensar no que comprar para a semana a cada vez que vamos ao mercado então é mais difícil ainda. Muitas vezes, repetimos algumas das classes de alimento (proteínas, carboidratos, legumes, verduras, gorduras), por não lembrar sequer o que comemos no dia anterior! Assim a função que proponho como plano B irá, com base em um arquivo .csv de alimentos possíveis, aleatorizar os mesmos e planejar uma compra (1 tipo de cada classe)por semana. A função fará com que nenhuma das classes sejam repetidas durante o mês (ou seja, repetições somente a cada quatro semanas), e nem que a mesma combinação entre as classes sejam repetidas também.

Entrada de dados: Um arquivo .csv, sem acentuação, com as classes de alimentos nas colunas e os tipos possíveis de cada classe nas linhas. Tal arquivo deverá ser criado pelo usuário e os tipos possíveis dentro de cada classe irão variar conforme a gosto do usuário e/ou a disponibilidade na região de residência do usuário. A função terá os seguintes argumentos: data (arquivo.csv a ser lido), alet.col(aleatorizar os dados de cada coluna separadamente), rep.col (repete colunas, criando uma nova (ex.verduras1,verdurs2,…), caso o usuário queria mais de um tipo de determinada classe, por semana).

Verificando os parâmetros de entrada:

1.As colunas e linhas foram lidas corretamente? Se não, escreve: “data não lido corretamente. Verifique a tabulação.

2.As colunas tem o mesmo número de linhas? Se não, cicla a coluna com menor número de linhas, para fazer a combinação.

Saída de dados: Um arquivo .txt com as classes nas colunas e 4 linhas de combinações dessas classes, aleatorizadas para a compra semanal. Caso rep.col=T, a coluna indexada pelo usuário será repetida, a partir da criação de uma nova coluna, que será aleatorizada também independentemente.

Pseudo-código:

1.Cria a função menu a partir da leitura de data e dos argumentos: alet.col, rep.col.

2.Lê o data e verifica os tamanhos de cada coluna. Se uma for maior que a outra, inicia um ciclo for nas menores colunas, até que todas estejam igualadas em números de linhas.

3. Aleatoriza cada coluna de uma vez. Se rep.col conter argumentos para repetição, cria uma nova coluna com o nome e classe alimentar selecionada pelo usuário e a aleatoriza também.

4.Cria um ciclo for, de tamanho l até o número total de linhas de data, escolhendo 4 linhas aleatoriamente, para criar o arquivo de saída.

5.Cria o objeto menusemanal onde são guardados as linhas e colunas selecionadas a partir dos ciclos.

7.Exporta o objeto menusemanal como um arquivo .txt a ser salvo no diretório de trabalho.

05_curso_antigo/r2018/alunos/trabalho_final/silara_fatima/fun2.txt · Última modificação: 2020/08/12 06:04 (edição externa)