Ir ao conteúdo
  • Cadastre-se

ynp

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que ynp postou

  1. Fiz um programa para um exercício da faculdade, ele consiste em simular uma lista de espera de um hospital, aparentemente ele está certo, porém depois da terceira repetição do while ele fecha sem nenhum aviso #include <iostream> #include <locale.h> #include <stdlib.h> #include <string> using namespace std; //========== dados que vou guardar dentro da lista struct paciente{ int prioridade; string nome; }; //========== criando a estrutura de lista encadeada struct elemento{ struct paciente dados; // estrutura guardada dentro da lista struct elemento *prox; // ponteiro de ponteiro }; typedef struct elemento elem; typedef struct elemento* lista; //========== criar lista lista* lista_cria(){ lista* li = (lista*) malloc(sizeof(lista)); // criando nó de inicio if(li != NULL){ *li = NULL; } return li; } //========== imprimir pacientes void lista_imprime_E(lista* li){ cout << "Atendimento emergencial: " << endl; elem *no = *li; while(no != NULL){ cout << no->dados.nome << endl; no = no->prox; } cout << endl; } void lista_imprime_P(lista* li){ cout << "Atendimento prioritário: " << endl; elem *no = *li; while(no != NULL){ cout << no->dados.nome << endl; no = no->prox; } cout << endl; } void lista_imprime_N(lista* li){ cout << "Atendimento comum: " << endl; elem *no = *li; while(no != NULL){ cout << no->dados.nome << endl; no = no->prox; } cout << endl; } //========== insere final int lista_insere_final(lista* li, struct paciente pacienteX){ if(li == NULL){ return 0; } elem* no = (elem*) malloc(sizeof(elem)); if(no == NULL){ return 0; } no->dados = pacienteX; no->prox == NULL; if((*li) == NULL){ *li = no; }else{ elem *aux = *li; while(aux->prox != NULL){ aux = aux->prox; } aux->prox = no; } return 1; } //========== ver se a lista está vazia int lista_vazia(lista* li){ if(li == NULL){ return -1; } if(*li == NULL){ return -1; } return 0; } //========== função para remover o paciente já atendido da fila int lista_remove(lista* li){ if(li == NULL){ return 0; } if(lista_vazia(li)){ return 0; } elem *no = *li; *li = no->prox; free(no); return 1; } int main(){ setlocale (LC_ALL, "portuguese"); int op, op3, i=0; lista *lip; lip = lista_cria(); lista *lin; lin = lista_cria(); lista *lie; lie = lista_cria(); paciente pacienteX = {0, "a"}; while(i != 13){ cout << "========================================" << endl; cout << "== Qual operação deseja realizar? ==" << endl; cout << "== 1 - Imprimir fila de pacientes ==" << endl; cout << "== 2 - Adicionar novo paciente ==" << endl; cout << "== 3 - Remover paciente atendido ==" << endl; cout << "== 4 - Sair ==" << endl; cout << "========================================" << endl; cout << endl << endl; cin >> op; if(op == 1){ cout << endl << endl; lista_imprime_E(lie); lista_imprime_P(lip); lista_imprime_N(lin); system("pause"); cout << endl; } if(op == 2){ cout << "Digite o nome do paciente: " << endl; cin >> pacienteX.nome; cout << endl; cout << "Digite a prioridade do paciente: (1 - Emergência, 2 - Prioritário, 3 - Normal)" << endl; cin >> pacienteX.prioridade; cout << endl; if(pacienteX.prioridade == 1){ lista_insere_final(lie, pacienteX); } if(pacienteX.prioridade == 2){ lista_insere_final(lip, pacienteX); } if(pacienteX.prioridade == 3){ lista_insere_final(lin, pacienteX); } } if(op == 3){ cout << "Informe a prioridade do paciente atendido: (1 - Emergência, 2 - Prioritário, 3 - Normal)" << endl; cin >> op3; if(op3 == 1){ lista_remove(lie); } if(op3 == 2){ lista_remove(lip); } if(op3 == 3){ lista_remove(lin); } } if(op == 4){ i=13; } }; system("pause"); return 0; } no momento está while(i != 13) porque coloquei um número aleatório para testar, mas já tentei usar while(i != 1), do-while, até mesmo um for(i=0; i<9999; i++), e nenhum deles deu certo, sinceramente não sei o que estou fazendo de errado ou se quer tem algo errado com meu código raramente ele roda mais do que 3x como no caso da foto, mas no final o erro é o mesmo, ele simplesmente desiste. obs: isso acontece tanto no vs code como no terminal externo, mesmo com o arquivo construído e fora do vs code ele ainda fecha enquanto o while está ativo
  2. Recebi uma tarefa de um professor para fazer um programa que converta números decimais para binário, octal e hexadecimal, estou tentando usar o VisualG por estar no meu primeiro ano da faculdade e ser a única linguagem que conheço o básico, e estou tendo dificuldades, pois estou com um código que faz as conversões corretamente, porém ele faz sempre as 3 de uma vez, e eu gostaria de poder escolher a conversão que desejo fazer, tentei usar o "caso" mas não está dando certo. Meu código é esse, se alguém puder me ajudar ou me dizer algo que está errado eu agradeceria. Algoritmo "conversãodecimal" Var Num, Valor: inteiro Resultado1, Resultado2, Resultado3, opcao, binario, octal, hexadecimal: Caractere Inicio // primeira parte, onde eu desejo criar a "interface" permitindo o usuário escolher qual conversão deseja fazer escreval("para qual base você deseja converter seu número decimal?") escreval("binário") escreval("octal") escreval("hexadecimal") leia(opcao) escolha opcao // conversão para binário caso(opcao=binario) faca escreval ("Digite um valor Decimal: ") leia (Num) Valor <- (Num) enquanto (Num > 0) faca escolha (Num mod 2) caso 0 Resultado1 <- ("0" + Resultado1) caso 1 Resultado1 <- ("1" + Resultado1) fimescolha Num <- (Num div 2) fimenquanto escreval ("O valor: ", Valor, " em Decimal será de: ", Resultado1, " em Binários!!") // conversão para octal caso (opcao="octal") faca escreval ("Digite um valor Decimal: ") leia (Num) Valor <- (Num) enquanto (Num > 0) faca escolha (Num mod 8) caso 1 Resultado2 <- ("1" + Resultado2) caso 2 Resultado2 <- ("2" + Resultado2) caso 3 Resultado2 <- ("3" + Resultado2) caso 4 Resultado2 <- ("4" + Resultado2) caso 5 Resultado2 <- ("5" + Resultado2) caso 6 Resultado2 <- ("6" + Resultado2) caso 7 Resultado2 <- ("7" + Resultado2) fimescolha Num <- (Num div 8) fimenquanto escreval ("O valor: ", Valor, " em decimal será de: ", Resultado2, " em octal") // conversão para hexadecimal caso (opcao = hexadecimal) faca escreval ("Digite um valor Decimal: ") leia (Num) Valor <- (Num) enquanto (Num > 0) faca escolha (Num mod 16) caso 1 Resultado3 <- ("1" + Resultado3) caso 2 Resultado3 <- ("2" + Resultado3) caso 3 Resultado3 <- ("3" + Resultado3) caso 4 Resultado3 <- ("4" + Resultado3) caso 5 Resultado3 <- ("5" + Resultado3) caso 6 Resultado3 <- ("6" + Resultado3) caso 7 Resultado3 <- ("7" + Resultado3) caso 8 Resultado3 <- ("8" + Resultado3) caso 9 Resultado3 <- ("9" + Resultado3) caso 10 Resultado3 <- ("A" + Resultado3) caso 11 Resultado3 <- ("B" + Resultado3) caso 12 Resultado3 <- ("C" + Resultado3) caso 13 Resultado3 <- ("D" + Resultado3) caso 14 Resultado3 <- ("E" + Resultado3) caso 15 Resultado3 <- ("F" + Resultado3) fimescolha Num <- (Num div 16) fimenquanto escreval ("O valor: ", Valor, " em decimal será de: ", Resultado3, " em hexadecimal.") fimalgoritmo

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...