Eu sou iniciante do curso de programação e ate consegui tocar o barco na programação ate aqui mas me atrapalhei na codificação e não consigo corrigir um "erro", esta entre aspas porque não é bem um erro, o programa compila certinho e executa, mas não faz o que eu gostaria que fizesse, e também preciso finalizar o programa mas estou sem ideia...
vou copiar o codigo aqui, espero que possam me ajudar...
so para contextualizar, o programa se trata de um cronograma de estudos, com bloco de tempo separados, solicitei todos os dados que me importam, como nome, instituição de ensino, curso, e quantos dias da semana a pessoa tem disponivel de estudo, bem como a carga horaria disponivel respectiva de cada dia, posteriormente eu classifiquei as materias com grau de dificuldade, justamente para dar mais prioridade para as materias com mais dificuldade, ainda mais se o tempo for curto de estudo.
os estudos são divididos com bloco de estudos, o certo são 4 blocos de estudos e um de pausa entre eles:
ex: Materia: Fisica - grau de dificuldade 1 (o mais dificultoso)
estudar 4 blocos de 20 minutos com 3 blocos de 5 min de intervalo entre eles e sendo o ultimo bloco, o 4° com um tempo maior de 10 min
ex para materias com grau de dificulade 2
estudar 4 blocos de 15 min com os mesmos intervalos
ex materias com grau de dificuldade 3
estudar 4 blocos de 10 min com os mesmos intervalos
quanto mais facil o grau da materia, menos tempo de estudo, como o famoso metodo pomodoro, conhecido metodo utilizado por estudantes que querem passar no enem
eu ate consegui fazer uma boa parte do codigo, mas agora preciso mostrar o resultado para o usuario como uma especia de tabela, mostrando os dias da semana que ele precisa estudar conforme ele mesmo me disse no "cadastro, e quais seram as materias que devem ser estudas, por conta do tempo que ele tambem me disse, so preciso saber qualbloco de estudos encaixar em dias que maais tem horas disponiveis, como os blocos de tempo maiores, e em dias com menos tempo de estudo, bloco de tempo menores
vai ter vezes que a carga horaria disponivel para estudo vai ser menor do que a que effetivamente precisa para estudar, então deve ter uma variavel que vai reportar a quantidade de tempo que ainda preccisa para que o objetivo seja atingido, ou seja, todos os blocos de tempo de todas as materias devem ser estudos, isso semanalmente
toda dica e concelho é bem vindo...
o codigo é um pouco extenso, então se quiserem por favor me chamem no email, vinicius.donetti@hotmail.com ou pelo telefone 11993358779, o trabalho esta bem encaminhado já so preciso corrigir e finalizar, ofereço ate um valor em dinheiro pela ajuda, detalhe, trabalho deve ser entregue dia 04/11/2021
int org_temp_estudo(int x, int tm);
int org_temp_intervalo(int y);
int menu_inicializacao ();
int dias_p_estudar(int z, int w, int v);
int main ()
{
setlocale(LC_ALL, "Portuguese");
char resp, c, d, f;
char materias [50][100];
char nome [50], curso[100], faculdade[150];
int qtde_materias = 0, i, j, dificuldade, t_semana =0, t_medio, op, n = 0, e = 0, g = 0, final = 0;
int blocos_de_tempo[2][100], dias_estudo[7][100];
int temp_semana[7];
op = menu_inicializacao();
system ("cls");
if (op == 1)
{
printf("Que bom que decidiu começar e dar o primeiro passo rumo ao desejado 10!\n\n");
printf("Vamos iniciar a organização e personalização do seu cronograma de estudos!\n\n");
system("pause");
printf ("\n\nDigite seu nome: ");
fflush(stdin);
do
{
c=getch();
if (isalpha(c)!=0 || c==32)
{
nome[n] = c;
n++;
printf ("%c", c);
}
else if(c==8&&n)
{
nome[n]='\0';
n--;
printf("\b \b");
}
}while(c!=13);
nome[n]='\0';
printf ("\n\nOlá %s, Seja muito bem vindo(a)!\n\n", nome);
printf ("Insira seu curso: ");
fflush(stdin);
do
{
f=getch();
if (isalpha(f)!=0 || f==32)
{
curso[g] = f;
g++;
printf ("%c", f);
}
else if(f==8&&g)
{
curso[g]='\0';
g--;
printf("\b \b");
}
}while(f!=13);
curso[g]='\0';
printf ("\n\nInsira sua instituição de ensino: ");
fflush(stdin);
do
{
d=getch();
if (isalpha(d)!=0 || d==32)
{
faculdade[e] = d;
e++;
printf ("%c", d);
}
else if(d==8&&e)
{
faculdade[e]='\0';
e--;
printf("\b \b");
}
}while(d!=13);
faculdade[e]='\0';
system("pause");
system("cls");
printf("Muito bem, dados iniciais armazenados!");
printf("\n\n\t\t\t\t\t\t\tPróximo passo!\n\n");
system("pause");
system("cls");
printf("\n%s considere que sua semana começa no DOMINGO e termina no SÁBADO...\n", nome);
printf("\nDigite abaixo o número de horas que você pretende estudar por dia, respectivamente! (digite 0 se não for estudar no dia)");
do
{
for(i=0; i<7; i++)
{
printf("\n\nTempo de estudo no dia %dº dia da semana: ", i+1);
fflush(stdin);
scanf("%d", &temp_semana[i]);
t_semana = t_semana + temp_semana[i];
}
system ("pause");
t_medio = t_semana / 7;
if(t_semana < 0)
printf("\nSeu tempo de estudo não é o suficiente ou é inválido, por favor tente novamente ou feche o programa");
system("cls");
}
while(t_semana < 0);
printf("\n\n\t\t\t\t\t\t\tPróxima etapa!\n\n");
printf("A seguir, digite as matérias que você deseja estudar...");
do
{
printf ("\n\nDigite a matéria: ");
gets (materias[qtde_materias]);
fflush(stdin);
do
{
printf("\nInsira a dificuldade da matéria para VOCÊ (ALTA = 1/MÉDIA = 2/BAIXA = 3): ");
scanf("%i", &dificuldade);
if (dificuldade == 1 || dificuldade == 2 || dificuldade == 3)
{
blocos_de_tempo[1][qtde_materias]= org_temp_estudo(dificuldade, t_medio);
blocos_de_tempo[2][qtde_materias]= org_temp_intervalo(dificuldade);
}
else
printf("\nDificuldade não identificada, por favor, digite novamente...\n");
fflush(stdin);
} while(dificuldade != 1 && dificuldade != 2 && dificuldade != 3);
do
{
printf ("\nDeseja digitar outra? (S/N)\0\0");
scanf("%c", &resp);
if(toupper(resp) != 'S' && toupper(resp) != 'N')
printf("Opção inválida, por favor, insira apenas as letras S ou N...");
fflush(stdin);
}while(toupper(resp) != 'S' && toupper(resp) != 'N');
qtde_materias++;
system("cls");
}while(toupper(resp) == 'S');
system("cls");
printf ("\n\n\nAbaixo, visualize as matérias digitadas e seus respectivos tempos de estudo:\n\n\n ");
for (i=0;i<qtde_materias;i++)
{
printf ("%s - Quatro blocos de %i minutos de estudo, intercalando-se com 4 blocos de %i minutos de intervalo\n\n", materias[i], blocos_de_tempo[1][i]/4, blocos_de_tempo[2][i]/4);
for(j = 0; j < 7; j++)
{
dias_estudo[j][i] = dias_p_estudar(temp_semana[j], blocos_de_tempo[1][i], blocos_de_tempo[2][i]);
if(dias_estudo[j][i] == 1)
temp_semana[j] = temp_semana[j] - (blocos_de_tempo[1][i] + blocos_de_tempo[2][i]);
}
}
getch();
system("cls");
printf("\n\nJá foram coletados todos dados necessários para entregar seu planjemento de estudos, neste momento estamos compilando e formatando suas informações...\n\n");
system("pause");
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\tMuito bem %s! Seu cronograma de estudos está pronto!\n\n ", nome);
system("pause");
final = 1;
}
else if (op == 2 || final == 1)
printf("Muito obrigado por utilizar nosso sistema, até mais!!!");
return(0);
}
int menu_inicializacao ()
{
int op;
do
{
printf("\nOlá estudante! Seja muito bem-vindo(a) a sua nova ferramenta de gestão de aprendizado!!!\n");
printf("\nGostaria de começar o seu cronograma de estudos?\n");
printf("1 - Começar\n");
printf("2 - Sair\n");
fflush(stdin);
scanf("%d", &op);
if (op == 1 || op == 2)
return op;
else
printf("Opção incorreta, digite novamente...\n\n");
}while(op != 1 && op != 2);
}
int org_temp_estudo(int x, int tm)
{
int t;
switch(x)
{
case 1:
t = tm* 0.20;
break;
case 2:
t = tm* 0.15;
break;
case 3:
t = tm* 0.10;
}
return (t);
}
int org_temp_intervalo(int y)
{
int intervalo;
switch (y)
{
case 1:
intervalo = 20;
break;
case 2:
intervalo = 15;
break;
case 3:
intervalo = 10;
}
return (intervalo);
}
int dias_p_estudar(int z, int w, int v)
{
int op, t;
t = w+v;
if (z != 0)
{
if(z - t > 0)
z = 1;
else
z = 0;
}
else
z = 0;
return (z);
}
Pergunta
Vinicius Gustavo
Olá amigos do fórum!!
Eu sou iniciante do curso de programação e ate consegui tocar o barco na programação ate aqui mas me atrapalhei na codificação e não consigo corrigir um "erro", esta entre aspas porque não é bem um erro, o programa compila certinho e executa, mas não faz o que eu gostaria que fizesse, e também preciso finalizar o programa mas estou sem ideia...
vou copiar o codigo aqui, espero que possam me ajudar...
so para contextualizar, o programa se trata de um cronograma de estudos, com bloco de tempo separados, solicitei todos os dados que me importam, como nome, instituição de ensino, curso, e quantos dias da semana a pessoa tem disponivel de estudo, bem como a carga horaria disponivel respectiva de cada dia, posteriormente eu classifiquei as materias com grau de dificuldade, justamente para dar mais prioridade para as materias com mais dificuldade, ainda mais se o tempo for curto de estudo.
os estudos são divididos com bloco de estudos, o certo são 4 blocos de estudos e um de pausa entre eles:
ex: Materia: Fisica - grau de dificuldade 1 (o mais dificultoso)
estudar 4 blocos de 20 minutos com 3 blocos de 5 min de intervalo entre eles e sendo o ultimo bloco, o 4° com um tempo maior de 10 min
ex para materias com grau de dificulade 2
estudar 4 blocos de 15 min com os mesmos intervalos
ex materias com grau de dificuldade 3
estudar 4 blocos de 10 min com os mesmos intervalos
quanto mais facil o grau da materia, menos tempo de estudo, como o famoso metodo pomodoro, conhecido metodo utilizado por estudantes que querem passar no enem
eu ate consegui fazer uma boa parte do codigo, mas agora preciso mostrar o resultado para o usuario como uma especia de tabela, mostrando os dias da semana que ele precisa estudar conforme ele mesmo me disse no "cadastro, e quais seram as materias que devem ser estudas, por conta do tempo que ele tambem me disse, so preciso saber qualbloco de estudos encaixar em dias que maais tem horas disponiveis, como os blocos de tempo maiores, e em dias com menos tempo de estudo, bloco de tempo menores
vai ter vezes que a carga horaria disponivel para estudo vai ser menor do que a que effetivamente precisa para estudar, então deve ter uma variavel que vai reportar a quantidade de tempo que ainda preccisa para que o objetivo seja atingido, ou seja, todos os blocos de tempo de todas as materias devem ser estudos, isso semanalmente
toda dica e concelho é bem vindo...
o codigo é um pouco extenso, então se quiserem por favor me chamem no email, vinicius.donetti@hotmail.com ou pelo telefone 11993358779, o trabalho esta bem encaminhado já so preciso corrigir e finalizar, ofereço ate um valor em dinheiro pela ajuda, detalhe, trabalho deve ser entregue dia 04/11/2021
me ajudem por favor...
#include <stdio.h>
#include <locale.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>
int org_temp_estudo(int x, int tm);
int org_temp_intervalo(int y);
int menu_inicializacao ();
int dias_p_estudar(int z, int w, int v);
int main ()
{
setlocale(LC_ALL, "Portuguese");
char resp, c, d, f;
char materias [50][100];
char nome [50], curso[100], faculdade[150];
int qtde_materias = 0, i, j, dificuldade, t_semana =0, t_medio, op, n = 0, e = 0, g = 0, final = 0;
int blocos_de_tempo[2][100], dias_estudo[7][100];
int temp_semana[7];
op = menu_inicializacao();
system ("cls");
if (op == 1)
{
printf("Que bom que decidiu começar e dar o primeiro passo rumo ao desejado 10!\n\n");
printf("Vamos iniciar a organização e personalização do seu cronograma de estudos!\n\n");
system("pause");
printf ("\n\nDigite seu nome: ");
fflush(stdin);
do
{
c=getch();
if (isalpha(c)!=0 || c==32)
{
nome[n] = c;
n++;
printf ("%c", c);
}
else if(c==8&&n)
{
nome[n]='\0';
n--;
printf("\b \b");
}
}while(c!=13);
nome[n]='\0';
printf ("\n\nOlá %s, Seja muito bem vindo(a)!\n\n", nome);
printf ("Insira seu curso: ");
fflush(stdin);
do
{
f=getch();
if (isalpha(f)!=0 || f==32)
{
curso[g] = f;
g++;
printf ("%c", f);
}
else if(f==8&&g)
{
curso[g]='\0';
g--;
printf("\b \b");
}
}while(f!=13);
curso[g]='\0';
printf ("\n\nInsira sua instituição de ensino: ");
fflush(stdin);
do
{
d=getch();
if (isalpha(d)!=0 || d==32)
{
faculdade[e] = d;
e++;
printf ("%c", d);
}
else if(d==8&&e)
{
faculdade[e]='\0';
e--;
printf("\b \b");
}
}while(d!=13);
faculdade[e]='\0';
system("pause");
system("cls");
printf("Muito bem, dados iniciais armazenados!");
printf("\n\n\t\t\t\t\t\t\tPróximo passo!\n\n");
system("pause");
system("cls");
printf("\n%s considere que sua semana começa no DOMINGO e termina no SÁBADO...\n", nome);
printf("\nDigite abaixo o número de horas que você pretende estudar por dia, respectivamente! (digite 0 se não for estudar no dia)");
do
{
for(i=0; i<7; i++)
{
printf("\n\nTempo de estudo no dia %dº dia da semana: ", i+1);
fflush(stdin);
scanf("%d", &temp_semana[i]);
t_semana = t_semana + temp_semana[i];
}
system ("pause");
t_medio = t_semana / 7;
if(t_semana < 0)
printf("\nSeu tempo de estudo não é o suficiente ou é inválido, por favor tente novamente ou feche o programa");
system("cls");
}
while(t_semana < 0);
printf("\n\n\t\t\t\t\t\t\tPróxima etapa!\n\n");
printf("A seguir, digite as matérias que você deseja estudar...");
do
{
printf ("\n\nDigite a matéria: ");
gets (materias[qtde_materias]);
fflush(stdin);
do
{
printf("\nInsira a dificuldade da matéria para VOCÊ (ALTA = 1/MÉDIA = 2/BAIXA = 3): ");
scanf("%i", &dificuldade);
if (dificuldade == 1 || dificuldade == 2 || dificuldade == 3)
{
blocos_de_tempo[1][qtde_materias]= org_temp_estudo(dificuldade, t_medio);
blocos_de_tempo[2][qtde_materias]= org_temp_intervalo(dificuldade);
}
else
printf("\nDificuldade não identificada, por favor, digite novamente...\n");
fflush(stdin);
} while(dificuldade != 1 && dificuldade != 2 && dificuldade != 3);
do
{
printf ("\nDeseja digitar outra? (S/N)\0\0");
scanf("%c", &resp);
if(toupper(resp) != 'S' && toupper(resp) != 'N')
printf("Opção inválida, por favor, insira apenas as letras S ou N...");
fflush(stdin);
}while(toupper(resp) != 'S' && toupper(resp) != 'N');
qtde_materias++;
system("cls");
}while(toupper(resp) == 'S');
system("cls");
printf ("\n\n\nAbaixo, visualize as matérias digitadas e seus respectivos tempos de estudo:\n\n\n ");
for (i=0;i<qtde_materias;i++)
{
printf ("%s - Quatro blocos de %i minutos de estudo, intercalando-se com 4 blocos de %i minutos de intervalo\n\n", materias[i], blocos_de_tempo[1][i]/4, blocos_de_tempo[2][i]/4);
for(j = 0; j < 7; j++)
{
dias_estudo[j][i] = dias_p_estudar(temp_semana[j], blocos_de_tempo[1][i], blocos_de_tempo[2][i]);
if(dias_estudo[j][i] == 1)
temp_semana[j] = temp_semana[j] - (blocos_de_tempo[1][i] + blocos_de_tempo[2][i]);
}
}
getch();
system("cls");
printf("\n\nJá foram coletados todos dados necessários para entregar seu planjemento de estudos, neste momento estamos compilando e formatando suas informações...\n\n");
system("pause");
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\tMuito bem %s! Seu cronograma de estudos está pronto!\n\n ", nome);
system("pause");
final = 1;
}
else if (op == 2 || final == 1)
printf("Muito obrigado por utilizar nosso sistema, até mais!!!");
return(0);
}
int menu_inicializacao ()
{
int op;
do
{
printf("\nOlá estudante! Seja muito bem-vindo(a) a sua nova ferramenta de gestão de aprendizado!!!\n");
printf("\nGostaria de começar o seu cronograma de estudos?\n");
printf("1 - Começar\n");
printf("2 - Sair\n");
fflush(stdin);
scanf("%d", &op);
if (op == 1 || op == 2)
return op;
else
printf("Opção incorreta, digite novamente...\n\n");
}while(op != 1 && op != 2);
}
int org_temp_estudo(int x, int tm)
{
int t;
switch(x)
{
case 1:
t = tm* 0.20;
break;
case 2:
t = tm* 0.15;
break;
case 3:
t = tm* 0.10;
}
return (t);
}
int org_temp_intervalo(int y)
{
int intervalo;
switch (y)
{
case 1:
intervalo = 20;
break;
case 2:
intervalo = 15;
break;
case 3:
intervalo = 10;
}
return (intervalo);
}
int dias_p_estudar(int z, int w, int v)
{
int op, t;
t = w+v;
if (z != 0)
{
if(z - t > 0)
z = 1;
else
z = 0;
}
else
z = 0;
return (z);
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.