Ir ao conteúdo
  • Cadastre-se

ningumx

Membro Pleno
  • Posts

    23
  • Cadastrado em

  • Última visita

Reputação

13
  1. Instalei a versão 64 bits da ArduinoIDE no site oficial. Ao extrair a pasta e abri-la no terminal, aparece que o arquivo install.sh não existe (que é o que preciso para instalar).
  2. Adotei o Ubuntu em meu computador (Intel Core i7) recentemente e gostaria de saber como configurar minha placa de vídeo. Vi vários sites explicando como mas ainda não consegui. A placa é uma NVIDIA GeForce GTX.
  3. Versão 4.5 https://courses.missouristate.edu/kenvollmar/mars/download.htm
  4. sim, o arquivo já está completo. eu inseri o "[50]" depois porque aparecia isto: format specifies type 'char *' but the argument has type 'char (*)[50]'
  5. Fiz um código para ler um arquivo, no qual contém o id e o nome de 24 alunos. o que está dando errado é que na hora de consultar e aparecer o relatório, a parte dos dados fica vazio. Creio que tenha feito a leitura errada. Alguém poderia me ajudar? #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <time.h> // STRUCT DO ALUNO typedef struct aluno { int id_aluno; char nm_aluno[50]; } arq_aluno; // VARIÁVEIS GLOBAIS int quant_alunos = 0; arq_aluno arq_alunos[24]; int escolha; // FUNÇÃO CONSULTA POR ID void consulta() { FILE *entrada = fopen("alunos.txt", "r"); int id; if(entrada == NULL) { printf("Erro na leitura do arquivo...\n"); } else { printf("\n------BUSCA DE ALUNOS------\n"); printf("Digite o id do aluno: "); scanf("%i", &id); getchar(); for (int i = 1; i <= quant_alunos; i++) { if (id == arq_alunos[i].id_aluno) { printf("Aluno: %s\n", arq_alunos[i].nm_aluno); } else if (id != arq_alunos[i].id_aluno) printf("Aluno não existe na base!\n"); } printf("---------------------------\n"); } fclose(entrada); } // FUNÇÃO RELATÓRIO void relatorio() { FILE *entrada = fopen("alunos.txt", "r"); for (int i = 1; i <= 24; i++) { fscanf(entrada, "%d", &arq_alunos[i].id_aluno); fscanf(entrada, "%s", &arq_alunos[i].nm_aluno[50]); } if (entrada == NULL) { printf("Erro na leitura do arquivo...\n"); } else { struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); int i; printf("_____________________________\n"); printf("\n"); printf("----RELATÓRIO DE ALUNOS----\n"); printf("___________________________\n"); printf("---------------------------\n"); printf("| ID | NOME |\n"); for (int i = 1; i <= quant_alunos; i++) { printf("| %d\t |", arq_alunos[i].id_aluno); printf(" %s\t |", arq_alunos[i].nm_aluno); } printf("\n-----------------------------\n"); printf("_______________________________ Gerado em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon + 1, data_hora_atual->tm_year + 1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); } fclose(entrada); } int main() { do { setlocale(LC_ALL, ""); struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); printf("Acesso em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon + 1, data_hora_atual->tm_year + 1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); printf("--MENU PRINCIPAL--\n"); printf("------------------\n"); printf("| [1] - Consultar por id |\n| [2] - Relatório |\n| [3] - " "Sair |\n"); printf("------------------\n"); printf("Opção: "); scanf("%d", &escolha); switch (escolha) { case 1: consulta(); break; case 2: relatorio(); break; } } while (escolha != 3); return 0; }
  6. é windows instalei o 64-bit deste link: https://www.java.com/en/download/manual.jsp ao executar o comando, a saída foi esta: java version "1.8.0_351" Java(TM) SE Runtime Environment (build 1.8.0_351-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)
  7. Quero usar o MARS MIPS e, para isso, precisa instalar Java 8 primeiro, mas não abre. A mensagem que aparece é que não foi possível instalar o Java, porém no próprio Java diz que já está tudo certo. Alguém sabe o que fazer?
  8. Tenho duas tabelas do google sheets e as juntei em uma, porém quero separar uma das colunas (notas) em três colunas (nota 1, nota 2 e nota 3) de acordo o identificador dela (id_nota). Já tentei fazer isso com várias funções: loc(), assign() etc, mas nenhuma deu certo ainda pois estou confusa em como colocar as condições. Conheço quase nada de python, alguém poderia me dar um norte? Agradeço. #aqui são as duas tabelas: tabela_alunos = pd.DataFrame(page_alunos.get_all_records()) tabela_notas = pd.DataFrame(page_notas.get_all_records()) #as concatenei: tabelas_alunos_notas = pd.merge(tabela_alunos, tabela_notas, how = 'left', on = 'id_aluno') #a tabela segue estas colunas: print(tabulate(tabelas_alunos_notas, headers = ['id_aluno', 'Nome', 'Excluído', 'id_nota', 'Nota']))
  9. Terminei as funções e mudei os menus também. No entanto, ainda estou com dúvida com a declaração das funções. Os principais erros são: - error: unknown type name 'tab_notas' tab_notas tab_notas[30]; - declaração implícita das funções - warning: conflicting types for 'cadastro_aluno' void cadastro_aluno() Poderia me dar o exemplo com uma para eu poder arrumar? Agradeço. #include <stdio.h> #include <string.h> #include <locale.h> #include <ctype.h> #include <math.h> #include <time.h> //STRUCTS typedef struct alunos { int id_aluno; char nm_aluno[50]; int quant_notas; int delete; tab_notas tab_notas[30]; } aluno; typedef struct notas { int id_aluno; int id_nota; float vl_nota; } notas; //-----------------------------------------// //VARIÁVEIS GLOBAIS aluno tab_alunos[10]; notas tab_notas[30]; int quant_alunos = 0; int indice = 1; int escolha; //-----------------------------------------// //MENUS SECUNDÁRIOS int menu_aluno(){ int opcao; do { printf("\ =====MENU ALUNO=====\n\ \n\ 1. Cadastrar\n\ 2. Consultar por ID\n\ 3. Exlcuir por ID\n\ 4. Alterar por ID\n\ 5. Relatório\n\ \n\ 6. Voltar "); scanf("%d", &opcao); getchar(); switch(opcao) { case 1: cadastro_aluno(); break; case 2: consulta_id(); break; case 3: exclui_id(); break; case 4: altera_id(); break; case 5: relatorio(); break; } } while(opcao != 6); } int menu_notas(){ int opcao; do { printf("\ =====MENU NOTAS=====\n\ \n\ 1. Incluir nota do aluno\n\ 2. Alterar nota do aluno\n\ 3. Excluir nota do aluno\n\ 4. Consultar notas do aluno\n\ \n\ 5. Voltar "); scanf("%d", &opcao); switch(opcao) { case 1: inclui_nota(); break; case 2: altera_nota(); break; case 3: exclui_nota(); break; case 4: consulta_nota(); break; } } while(opcao != 5); } void menu_relatorios(){ int opcao; do { printf("\ =====MENU RELATÓRIO=====\n\ \n\ 1. Relatório de notas\n\ 2. relatório de médias\n\ \n\ 3. Voltar "); scanf("%d", &opcao); switch(opcao) { case 1: rel_notas(); break; case 2: rel_medias(); break; } } while(opcao != 3); } //-----------------------------------------// //FUNÇÕES MENU ALUNO void cadastro_aluno(){ quant_alunos++; tab_alunos[quant_alunos].id_aluno = quant_alunos; printf("\t\t\t\t=======Cadastro do Aluno=======\n\n\n"); printf("Cógido do aluno: %d\n", quant_alunos); do { printf("Digite o nome do aluno: "); fgets(tab_alunos[quant_alunos].nm_aluno, 50, stdin); tab_alunos[quant_alunos].nm_aluno[strcspn(tab_alunos[quant_alunos].nm_aluno, "\n\n")] = 0; if(strlen(tab_alunos[quant_alunos].nm_aluno) <= 4) printf("O nome deve ter mais de três caracteres.\n\n"); } while (strlen(tab_alunos[quant_alunos].nm_aluno) <= 4); tab_alunos[quant_alunos].delete = 0; printf("\n\nAluno cadastrado!\n\n"); printf(" \n ------------------------------------------------------------------------\n"); } void consulta_id(){ int i, cod; printf("\t\t\t\t=======Consulta do Aluno=======\n\n\n"); printf(" \nCódigo do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((cod == tab_alunos[i].id_aluno) && (tab_alunos[i].delete == 0)) printf("Aluno: %s\n", tab_alunos[i].nm_aluno); else if((cod == tab_alunos[i].id_aluno) && (tab_alunos[i].delete == 1)) printf("Não existe o ID na base de alunos!"); } if(cod > quant_alunos || (quant_alunos == 0)) printf("Aluno não cadastrado!"); printf(" \n ------------------------------------------------------------------------\n"); } void exclui_id(){ int i, cod; char opcao; printf("\t\t\t\t=======Exclusão de Aluno=======\n\n\n"); printf("Qual o ID a ser excluído? \n"); scanf("%d", &cod); for(i = 1 ; i <= quant_alunos ; i++) { if((cod == tab_alunos[i].id_aluno) && (tab_alunos[i].delete == 0)){ printf("Confirmar exclusão?\n[S]im\n[N]ão\n"); getchar(); fgets(opcao, 2, stdin); opcao[0] == toupper(opcao[0]); //deixar maiúscula if(strcmp(opcao, "S") == 0){ tab_alunos[i].delete = 1; printf("Aluno excluído!\n"); } else printf("Cancelado."); } } if((quant_alunos == 0) || (cod > quant_alunos) || (tab_alunos[i].id_aluno) == 1); printf("Aluno não existe na base!\n"); printf(" \n ------------------------------------------------------------------------\n"); } void altera_id(){ int i, cod; char opcao[2], nm_aluno2[50]; printf("\t\t\t\t=======Alterar Aluno=======\n\n\n"); printf(" \nCódigo do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((cod == tab_alunos[i].id_aluno) && (tab_alunos[i].delete == 0)){ printf("Aluno: %s\nNovo nome: \n", tab_alunos[i].nm_aluno); fgets(nm_aluno2, 50, stdin); printf("Confirmar alteração?\n[S]im\n[N]ão\n"); getchar(); fgets(opcao, 2, stdin); opcao[0] == toupper(opcao[0]); //deixar maiúscula if(strcmp(opcao, "S") == 0){ strcpy(tab_alunos[i].nm_aluno, nm_aluno2); tab_alunos[i].nm_aluno[strcspn(tab_alunos[i].nm_aluno, "\n")] = 0; printf("\nNome alterado!\n"); } else { if(strcmp(opcao, "N") == 0); printf("Cancelado.\n"); else if((cod == tab_alunos[i].id_aluno) && (tab_alunos[i].delete == 1)) printf("Aluno não existe na base!"); } } } printf(" \n ------------------------------------------------------------------------\n"); } void relatorio(){ struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); int i; char delete[2]; printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf(" RELATÓRIO DE ALUNOS \n"); printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf(" | ID | NOME | EXCLUÍDO |\n"); for(i = 1 ; i <= quant_alunos ; i++){ printf("| %d \t|", tab_alunos[i].id_aluno); printf(" %s\t |", tab_alunos[i].nm_aluno); printf(" %i |\n", tab_alunos[i].delete); } printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf("___________________________________________________________________________Gerado em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon+1, data_hora_atual->tm_year+1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); } //-----------------------------------------// //FUNÇÕES MENU NOTAS void inclui_nota(){ int i, cod; float nota; printf("\t\t\t\t=======Alterar Aluno=======\n\n\n"); printf("Código do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 0) && (tab_alunos[i].quant_notas <= 4)){ printf("Aluno: %s\n", tab_alunos[i].nm_aluno); for(tab_alunos[i].quant_notas = 1 ; tab_alunos[i].quant_notas <= 3 ; tab_alunos[i].quant_notas++){ printf("Digite a nota %d (0 a 10): ", tab_alunos[i].quant_notas); scanf("%f", &nota); tab_alunos[i].tab_notas[tab_alunos[i].quant_notas].vl_nota = nota; } printf("Nota cadastrada!\n"); } else{ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 1)) printf("Aluno não existe na base!\n"); else if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 0) && (tab_alunos[i].quant_notas > 3)) printf("Aluno com todas as notas cadastradas!\n"); } } if((quant_alunos == 0) || (cod > quant_alunos)) printf("Aluno não cadastrado!\n"); printf(" \n ------------------------------------------------------------------------\n"); } void altera_nota(){ int i, cod, j, k, nota2; float vl_nota2; printf("\t\t\t\t=======Alterar Nota=======\n\n\n"); printf("Código do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 0) && (tab_alunos[i].quant_notas != 0)){ printf("Aluno: %s\n", tab_alunos[i].nm_aluno); for(j = 1 ; j <= quant_alunos ; j++) printf("Nota [%d]: %.2f\n", j, tab_alunos[i].tab_notas[j].vl_nota); for(k = 1 ; k <= 2 ; k++){ printf("Qaul nota deseja alterar? "); scanf("%d", &nota2); if(nota2 < 3){ printf("Digite a nova nota [%d] (0 a 10): ", nota2); scanf("%f", vl_nota2); tab_alunos[i].tab_notas[k].vl_nota = vl_nota2; printf("Nota alterada!\n"); } else printf("Nota não existe!\n"); } } else if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 1)) printf("Aluno não existe na base!\n"); else if (tab_alunos[i].quant_notas == 0) printf("Aluno sem notas cadastradas!\n"); } if((quant_alunos == 0) || (cod > quant_alunos)) printf("Aluno não cadastrado!\n"); printf(" \n ------------------------------------------------------------------------\n"); } void exclui_nota(){ int i, cod, j, k, nota_exc; printf("\t\t\t\t=======Alterar Nota=======\n\n\n"); printf("Código do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 0) && (tab_alunos[i].quant_notas != 0)){ printf("Aluno: %s\n", tab_alunos[i].nm_aluno); for(j = 1 ; j <= quant_alunos ; j++) printf("Nota [%d]: %.2f\n", j, tab_alunos[i].tab_notas[j].vl_nota); for(k = 1 ; k <= 2 ; k++){ printf("Qual nota deseja excluir? "); scanf("%d", &nota_exc); if(nota_exc < 3) if(nota_exc <= 3){ tab_alunos[i].tab_notas[k].vl_nota == 0; printf("Nota excluída!\n"); } else printf("Nota inválida!\n"); } } else{ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 1)) printf("Aluno não existe na base!\n"); else if(tab_alunos[i].quant_notas == 0) printf("Aluno sem notas cadastradas!\n"); } } if((quant_alunos == 0) || (cod > quant_alunos)) printf("Aluno não cadastrado!\n"); printf(" \n ------------------------------------------------------------------------\n"); } void consulta_nota(){ int i, cod, j, k; printf("\t\t\t\t=======Consultar Nota=======\n\n\n"); printf("Código do aluno: \n"); scanf("%d", &cod); getchar(); for(i = 1 ; i <= quant_alunos ; i++){ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 0) && (tab_alunos[i].quant_notas != 0)){ printf("Aluno: %s\n", tab_alunos[i].nm_aluno); for(j = 1 ; j <= quant_alunos ; j++) printf("Nota [%d]: %.2f\n", j, tab_alunos[i].tab_notas[j].vl_nota); } else{ if((tab_alunos[i].id_aluno == cod) && (tab_alunos[i].delete == 1)) printf("Aluno não existe na base!\n"); else if(tab_alunos[i].quant_notas == 0) printf("Aluno sem notas cadastradas!\n"); } } if((quant_alunos == 0) || (cod > quant_alunos)) printf("Aluno não cadastrado!\n"); printf(" \n ------------------------------------------------------------------------\n"); } //-----------------------------------------// //FUNÇÕES MENU RELATÓRIO void rel_notas(){ system("cls"); struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); int i, k; printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf(" RELATÓRIO DE NOTAS \n"); printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf("| ID | NOME | NOTA 1 | NOTA 2 | NOTA 3 |\n"); for(i = 1 ; i <= quant_alunos ; i++){ printf("| %d \t|", tab_alunos[i].id_aluno); printf(" %s\t |", tab_alunos[i].nm_aluno); for(k = 1 ; k <= 3 ; k++) printf(" %.2f |", tab_alunos[i].tab_notas[k].vl_nota); printf("\n")/ } printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf("___________________________________________________________________________Gerado em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon+1, data_hora_atual->tm_year+1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); } void rel_medias(){ struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); int i; printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf(" RELATÓRIO DE MÉDIAS \n"); printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf("| ID | NOME | MÉDIA |\n"); for(i = 1 ; i <= quant_alunos ; i++){ printf("| %d \t|", tab_alunos[i].id_aluno); printf(" %s\t |", tab_alunos[i].nm_aluno); printf(" %.2f |\n", (tab_alunos[i].tab_notas[3].vl_nota + tab_alunos[i].tab_notas[1].vl_nota + tab_alunos[i].tab_notas[2].vl_nota) / 3); } printf("\n\n\n\n\n__________________________________________________________________________________\n\n\n\n\n"); printf("___________________________________________________________________________Gerado em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon+1, data_hora_atual->tm_year+1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); } //-----------------------------------------// int main(){ setlocale(LC_ALL, ""); do { struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); printf("Acesso em %d/%d/%d %i:%i:%i\n", data_hora_atual->tm_mday, data_hora_atual->tm_mon+1, data_hora_atual->tm_year+1900, data_hora_atual->tm_hour, data_hora_atual->tm_min, data_hora_atual->tm_sec); int opcao; printf("\ =====MENU PRINCIPAL=====\n\ \n\ 1. Menu Aluno\n\ 2. Menu Notas\n\ 3. Menu Relatórios\n\ \n\ 4. Voltar "); scanf("%d", &escolha); getchar(); switch (escolha){ case 1: menu_aluno(); break; case 2: menu_notas(); break; case 3: menu_relatorios(); break; } } while(escolha != 4); return 0; }
  10. Com certeza, preciso mudar tudo. Vamos lá. Defini uma struct para o código e o nome dos 10 alunos e outra para colocar 3 notas de cada aluno: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Aluno { int id_aluno; char nm_aluno[50]; int delete; int ativo; } Aluno; typedef struct notas { int id_aluno; int id_nota; float vl_nota; } Notas; Declarei uma série de funções pois terá mais de um menu, então preferi separar cada coisa: Obs: Preciso mudar o "void" ainda. //FUNÇÃO MENU PRINCIPAL void menu(); //Funções ALUNO void aluno(); void cadastro_aluno(); void consulta_id(); void exclui_id(); void altera_id(); void relatorio(); //Funções NOTA void notas(); void inclui_nota(); void altera_nota(); void exclui_nota(); void consulta_nota(); //Funções RELATÓRIO void relatorios(); void rel_notas(); void rel_medias(); Na "main" coloquei os menus que o programa irá ter. Dentro de cada menu coloquei as funções. int main(){ menu(); aluno(); notas(); relatorios(); return 0; } //-------------FUNÇÕES MENU-------------- //menu principal para acessar os outros menus void menu(){ int opcao1; while(opcao1 != 4){ system("cls"); printf("\t\t\t=====MENU====="); printf("\n\n\n\t\t\t\t 1. Aluno\n"); printf("\t\t\t\t 2. Notas\n"); printf("\t\t\t\t 3. Relatório\n"); printf("\t\t\t\t 4. Sair\n"); printf("\t\t\t\t _____________________\n"); printf("\t\t\t\t "); scanf("%d", &opcao1); getchar(); switch (opcao1){ case 1: aluno(); break; case 2: notas(); break; case 3: relatorios(); break; case 4: printf("\n\t\t\t\tVolte sempre.\n\n"); exit(0); break; default: printf("\n\t\t\t\t\tEscreva um número válido.\n\n"); break; } } } void aluno(){ int opcao; do { system("cls"); printf(" \n=====MENU ALUNO===== "); printf(" \n1. Cadastrar"); printf(" \n2. Consultar por ID"); printf(" \n3. Excluir por ID"); printf(" \n4. Alterar por ID"); printf(" \n5. Relatório"); printf(" \n6. Voltar"); scanf("%d", &opcao); switch(opcao) { case 1: cadastro_aluno(); break; case 2: consulta_id(); break; case 3: exclui_id(); break; case 4: altera_id(); break; case 5: relatorio(); break; case 6: menu(); break; default: printf("Digite um número válido!"); break; } } while(opcao != 0); } void notas(){ int opcao; do { system("cls"); printf(" \n=====MENU NOTAS===== "); printf(" \n1. Incluir nota do aluno"); printf(" \n2. Alterar nota do aluno"); printf(" \n3. Excluir nota do aluno"); printf(" \n4. Consultar notas do aluno"); printf(" \n5. Voltar"); scanf("%d", &opcao); switch(opcao) { case 1: inclui_nota(); break; case 2: altera_nota(); break; case 3: exclui_nota(); break; case 4: consulta_nota(); break; case 5: menu(); break; default: printf("Digite um número válido!"); break; } } while(opcao != 0); } void relatorios(){ int opcao; do { system("cls"); printf(" \n=====MENU RELATÓRIOS===== "); printf(" \n1. Relatório de notas"); printf(" \n2. Relatório de médias"); printf(" \n3. Voltar"); scanf("%d", &opcao); switch(opcao) { case 1: rel_notas(); break; case 2: rel_medias(); break; case 3: menu(); break; default: printf("Digite um número válido!"); break; } } while(opcao != 0); } Após isso, estou fazendo as funções para cada coisa. Porém estou bem confusa no funcionamento do struct no meu programa. void cadastro_aluno(Aluno){ system("cls"); printf("\t\t\t\t=======Cadastro do Aluno=======\n\n\n"); for(int i = 0 ; i < 10 ; i++) { for(int j = 0 ; j < 10 ; j++){ printf("Cógido do aluno: "); scanf("%d", &aluno[i].id_aluno[j]); } printf("Digite o nome do aluno: "); fgets(aluno[i].nm_aluno, 50, stdin); } //Analisar se o aluno está ativo for(int k = 0 ; k < 10 < i++){ if(alunos[k].ativo == 0){ strcpy(alunos[k].id_aluno, id_aluno); alunos[k].ativo = 1; break; } } printf(" \n ------------------------------------------------------------------------\n"); } void consulta_id(Aluno){ system("cls"); printf(" \n Digite um código: "); scanf("%d", &cod); for(i = 0 ; i < 10 ; i++) { if(strcmp(cod, aluno[i].id_aluno) == 0) { printf("\n Registro encontrado! "); posicao = i; } else { posicao = -1; } } if(posicao = -1) { printf(" \nNão existe o ID na base de alunos!"); } else { printf(" \nRegistro Encontrado: "); printf(" \nCódigo do aluno: %d ", aluno[posicao].id_aluno); printf(" \nAluno: %s ", aluno[posicao].nm_aluno); } } void exclui_id(Aluno){ system("cls"); int codigo; printf("Qual o ID a ser excluído? \n"); scanf("%d", &codigo); for(i = 0 ; i < 10 ; i++) { if(strcmp(codigo, aluno[i].id_aluno) == 0) { printf(" \nCódigo do aluno: %d ", aluno[codigo].id_aluno); printf(" \nAluno: %s ", aluno[codigo].nm_aluno); printf("Confirmar exclusão? \n1- Sim\n2- Não"); scanf("%d", &x); if(x = 1){ codigo--; aluno[codigo].ativo = 0; } else { posicao = -1; } else aluno(); } printf("Código do aluno: \n", aluno[codigo].id_aluno); printf("Aluno: \n", aluno[codigo].nm_aluno); printf("Confirmar exclusão? \n1- Sim\n2- Não"); if(x = 1) codigo--; aluno[codigo].ativo = 0; else aluno(); } void altera_id(Aluno){ system("cls"); }
  11. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct aluno { int id_aluno; char nm_aluno[50]; int delete; int ativo; } Aluno; Aluno alunos[10]; //FUNÇÃO MENU PRINCIPAL void menu(); //Funções ALUNO void aluno(); void cadastro_aluno(); void consulta_id(); void exclui_id(); void altera_id(); void relatorio(); //Funções NOTA void notas(); void inclui_nota(); void altera_nota(); void exclui_nota(); void consulta_nota(); int main(){ menu(); aluno(); notas(); relatorios(); return 0; } //-------------FUNÇÕES MENU-------------- void menu(){ int opcao1; while(opcao1 != 4){ system("cls"); printf("\t\t\t=====MENU====="); printf("\n\n\n\t\t\t\t 1. Aluno\n"); printf("\t\t\t\t 2. Notas\n"); printf("\t\t\t\t 3. Relatório\n"); printf("\t\t\t\t 4. Sair\n"); printf("\t\t\t\t _____________________\n"); printf("\t\t\t\t "); scanf("%d", &opcao1); getchar(); switch (opcao1){ case 1: aluno(); break; case 2: notas(); break; case 3: relatorios(); break; case 4: printf("\n\t\t\t\tVolte sempre.\n\n"); exit(0); break; default: printf("\n\t\t\t\t\tEscreva um número válido.\n\n"); break; } } } void cadastro_aluno(Aluno){ system("cls"); printf("\t\t\t\t=======Cadastro do Aluno=======\n\n\n"); for(int i = 0 ; i < 10 ; i++) { for(int j = 0 ; j < 10 ; j++){ printf("Cógido do aluno: "); scanf("%d", &aluno[i].id_aluno[j]); } printf("Digite o nome do aluno: "); scanf("%s%*c", &aluno[i].nm_aluno); //Analisar se o aluno está ativo for(int k = 0 ; k < 10 < i++){ if(alunos[k].ativo == 0){ strcpy(alunos[k].id_aluno, id_aluno); alunos[k].ativo = 1; break; } } //Nome maior que 3 caracteres if(strlen(aluno[i].nm_aluno) < 3){ printf("Digite o nome do aluno: "); printf(" \n ------------------------------------------------------------------------\n"); } } } void consulta_id(Aluno){ system("cls"); printf(" \n Digite um código: "); scanf("%d", &cod); for(i = 0 ; i < 10 ; i++) { if(strcmp(cod, aluno[i].id_aluno)== 0) { printf("\n Registro encontrado! "); posicao = i; } else { posicao = -1; } } Estou fazendo um programa que faz um cadastro de 10 alunos, 3 notas cada. A questão é que estou meio confusa com os structs e já na primeira função "aluno" dá erro. Alguém poderia dizer como posso melhorar? (Essa é apenas uma parte do código). Valeu!
  12. Preciso encontrar a porcentagem de professores por grau acadêmico de uma tabela. Fiz isto, porém retorna o erro: #1140 - In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'Exercício.PROFESSOR.grau_acad'; this is incompatible with sql_mode=only_full_group_by. Alguém sabe como arrumar? select grau_acad, case grau_acad when grau_acad = 'Mestre' then (((sum(grau_acad))/11) * 100) end as porcentagem from PROFESSOR
  13. Refiz o código, porém os valores retornados do vetor invertido ainda não estão corretos. Minha entrada: 1 2 3 4 5 6 Saída do vetor invertido: 1 2 3 5 6 7995497 #include <stdio.h> #include <stdlib.h> #define LIM 100 int main() { int n, v[LIM], i, j, aux; printf("Digite o tamanho do vetor: \n"); scanf("%d",&n); printf("Digite os %d valores do vetor: \n",n); for(i = 0 ; i < n ; i++) scanf("%d",&v[i]); printf("Vetor original: \n"); for(i = 0 ; i < n ; i++) printf("%d\n",v[i]); j = n - 1; for(i = 0 ; i < n / 2 ; i++){ aux = v[n]; v[n] = v[j]; v[j] = aux; j--; } printf("\n\nVetor invertido: \n"); for(i = 0 ; i < n ; i++) printf("%d\n",v[i]); return 0; }
  14. Fiz este algoritmo para ler um vetor e imprimí-lo na ordem inversa, por exemplo: o primeiro troca com o último, o segundo com o penúltimo etc. Porém ao rodar o programa, apenas retorna: "*** stack smashing detected ***: terminated Aborted". Alguém sabe o por quê? #include <stdio.h> #include <stdlib.h> #define N 30 int main() { int i, j, tmp, vet[N]; for(i = 0 ; i < N ; i++) vet[N] = rand(); int fim = N-1; for(i = 0; i < N/2; i++){ tmp = vet[i]; vet[i] = vet[fim]; vet[fim] = tmp; fim--; } for(i = 0 ; i < N; i++) printf("%d",vet[i]); return 0; }
  15. Arrumei o código e acrescentei outras coisas. A resposta para alguns números está correta, mas para outros, não, por que será? #include <stdio.h> int main(int argc, char *argv[]) { int resposta = 1; while(resposta == 1){ int a,b; printf("Digite um numero inteiro e positivo: "); scanf("%d",&a); printf("Digite outro numero inteiro e positivo: "); scanf("%d",&b); int mmc = 1; int mdc = 1; int primo; int i = 1, j = 1, k = 1; if((a > 0) && (b > 0)){ while(a != 1 && b != 1){ for(primo = 2 ; primo > 0 ; primo++){ if((a % primo == 0) && (b % primo == 0)){ a = a / primo; b = b / primo; i = i * primo; mdc = mdc * primo; } if((a % primo == 0) && (b % primo != 0)){ a = a / primo; j = j * primo; } if((b % primo == 0) && (a % primo != 0)){ b = b / primo; k = k * primo; } mmc = i * j * k; } } printf("MMC = %d\n",mmc); printf("MDC = %d\n",mdc); } else printf("Valor invalido!"); printf("\nCalcular novamente? \n Sim - digite 1 \n não - digite 2\n"); scanf("%d",&resposta); } return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...