Ir para conteúdo

Recommended Posts

Olá mundo, tudo certo?

Espero que alguém possa me ajudar, vamos lá.

Estou com um problema para resolver a respeito de um trabalho na faculdade.

Preciso desenvolver um código em PORTUGOL que execute um MENU para agendar consultas com diversos médicos, mostrando data, hora, especialização do médico, enfim. Precisa ser completo.

Programa solicita nome do paciente

Programa solicita especialidade médica desejada

Programa solicita que o paciente escolha o médico

Programa mostra datas e horas disponíveis para agendar a consulta com aquele médico

(OBS.: O horário não pode bater com o horário de outra consulta)

(OBS.: Cada consulta tem um intervalo de 45 minutos ou 1 hora se facilitar)

(OBS.: A clínica funciona de 8h as 18h de segunda a sexta)

Paciente seleciona a data e hora

Programa mostra confirmação contendo nome do paciente, nome e especialização do médico, data e hora da consulta.

Programa retorna para o menu inicial.

Estou estagnado na parte de datas e horas. Não consigo pensar uma maneira de fazê-lo. Exemplo: Como vou determinar os meses com 28, 29(ano bissexto), 30 ou 31 dias? E como mostrar apenas os dias e horários disponíveis para o paciente escolher sua consulta? Os horários escolhidos previamente por outros pacientes não podem aparecer para não causar conflito.

Se alguém puder me dar uma luz, será muito bem-vindo.

Segue parte do código que fiz. Está muito incompleto ainda, porém não sei mais como prosseguir a partir do "caso 1" no código abaixo..

algoritmo "Menu Clínico"
// Função : Efetuar o agendamento de consultas com o médico específico
// Autor : GRUPO 6!
// Data : 11/14/2016
// Seção de Declarações
var
opcao1, cardio, opcao_cardio, neuro, opcao_neuro, nutri, opcao_nutri, geri, opcao_geri: inteiro
paciente: caractere
inicio
// Seção de Comandos
escreval ("==========================================================")
escreval ("||  OLÁ, SEJA BEM VINDO AO PERSONAL CONSULTA AGENDATOR  ||")
escreval ("==========================================================")
escreval ("Por favor, informe seu nome: ")
leia (paciente)
procedimento menu_inicial
inicio
escreval ("==========================================================")
escreval ("||               ESPECIALIZAÇÕES MÉDICAS!               ||")
escreval ("==========================================================")
escreval ("||1. Cardiologista                                      ||")
escreval ("||2. Neurologista                                       ||")
escreval ("||3. Nutricionista                                      ||")
escreval ("||4. Geriatra                                           ||")
escreval ("||5. SAIR                                               ||")
escreval ("==========================================================")
fimprocedimento
procedimento menu_cardio
inicio
escreval ("==========================================================")
escreval ("||                     CARDIOLOGISTAS                     ||")
escreval ("||======================================================||")
escreval ("||1. Dra. Cristiane Guedes Pita                         ||")
escreval ("||2. Dr. George Paulo Cobe Fonseca                      ||")
escreval ("||3. Voltar                                             ||")
escreval ("==========================================================")
fimprocedimento
procedimento menu_neuro
inicio
escreval ("==========================================================")
escreval ("||                    NEUROLOGISTAS                     ||")
escreval ("||======================================================||")
escreval ("||1. Dr. Carlos Trigueiro de Souza                      ||")
escreval ("||2. Dr. Antônio Tomás Turbano                          ||")
escreval ("||3. Voltar                                             ||")
escreval ("==========================================================")
fimprocedimento
procedimento menu_nutri
inicio
escreval ("==========================================================")
escreval ("||                    NUTRICIONISTAS                    ||")
escreval ("||======================================================||")
escreval ("||1. Mônica Cristina Salgado Galvão                     ||")
escreval ("||2. Fernanda Tarcélia de Oliveira Pinto                ||")
escreval ("||3. Voltar                                             ||")
escreval ("==========================================================")
fimprocedimento
procedimento menu_geri
inicio
escreval ("==========================================================")
escreval ("||                       GERIATRAS                      ||")
escreval ("||======================================================||")
escreval ("||1. Dr. Carlos Antonio Batista de Medeiros             ||")
escreval ("||2. Dr. Anceio Botelho Pinto                           ||")
escreval ("||3. Voltar                                             ||")
escreval ("==========================================================")
fimprocedimento
repita
   menu_inicial
   escreval ("Olá ", paciente,", por favor, escolha uma opção:")
   leia (opcao1)
   limpatela
   se opcao1>=6 então
      escreval ("**********************************************************")
      escreval ("*************OPÇÃO INVÁLIDA, TENTE NOVAMENTE**************")
      escreval ("**********************************************************")
   fimse
ate (opcao1=1) ou (opcao1=2) ou (opcao1=3) ou (opcao1=4) ou (opcao1=5)
escolha (opcao1)
caso 1
   repita
      menu_cardio
      escreval ("Digite o número referente ao seu médico de preferência: ")
      leia (opcao_cardio)
      limpatela
   ate opcao_cardio=3
caso 2
   menu_neuro
caso 3
   menu_nutri
caso 4
   menu_geri
caso 5
   escreval ("==========================================================")
   escreval ("|| Obrigado por utilizar o PERSONAL CONSULTA AGENDATOR! ||")
   escreval ("==========================================================")
fimescolha
fimalgoritmo

Gratidao e boas vibrações! <3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por AlexandreHenrique
      Olá 
      tenho uma função JS para mudar valor de atributos de uma imagem.
      A imagem é essa:
      <img src="capa.jpg"  data-desc="2018 - Aventura" alt="titulo do filme" onclick="teste(this,2);" id="video" />  A função:
      function teste(arg,p){ var pos = p; document.getElementById('video').src="novacapa.jpg"; // muda src document.getElementById('video').alt="Titulo do novo video"; // muda alt     document.getElementById('video').attr('data-desc', 'valor a atribuir'); // ??? } A função muda o "src" e "alt" mas não consigo mudar o valor do atributo 'data-desc", como faço isso?
      Essa é a linha em questão: 
      document.getElementById('video').attr('data-desc', 'valor a atribuir'); 
       
       
    • Por irwingato
      Var // Seção de Declarações das variáveis romano:caractere subtexto :caractere i:inteiro letra1:caractere Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escreval("Digite um número em romano para ser convertido em arábico") escreval("menor que 4000 e maior que 0") leia(romano) para i de 1 ate Compr(romano) faca subtexto <- Copia(romano,i,1) escreval(subTexto) fimpara Consegui fazer somente isso, o problema está na hora de salvar letra por letra num vetor e saber a posição de cada letra pois se for uma letra menor que a posterior subtrai-se um exemplo é o X antes de C subtrai-se 10 ficando 90 e quando o C vale 100 e quando vem antes de um número maior que ele um exemplo é D ficando 400, acho que somente a letra I, X, C, subtraem-se se estiver antes de um número maior o resto soma-se, o problema está em saber a posição da letra.
      Alguém  tem alguma ideia?
      Acho que sei como finalmente fazer primeiramente eu pegaria o valor em romano digitado, pegaria o tamanho da letra valor atribuído seria n tamanho da letra e desse tamanho da letra tiraria n-1, depois tentaria dividir a letra, não sei o comando no VisualG para separar as letras e criaria um variável para armazenar o separamento dessas letras nesse caso separador criaria outra variável nesse caso s e receberia zero depois faria um para onde i =0 e i tem que ser menor que o tamanho da letra nessa e iria somando por +1 depois abriria um se verificando se a divisão da letras separador = "M" então s= s+1000 e dentro desse se abriria outro se  e se se separador[i-1]= "C" então s= s-200, terminaria esse se depois abriria outro se verificando se separador = "D" então s=s+500 e dentro abriria outro se e se separador[i-1] = "C" então s=s-200 depois fecharia esse se e abriria outro se separador = "C" então s=s+100 e dentro desse se abriria outro se se separador[i-1] = "X" e então s=s-20 depois terminaria esse se e abriria outro se, se separador = "L" então s=s+50 dentro abriria outro se, se separador[i-1] = "X" então
      s=s-20 depois terminaria esse se e abriria outro se, se separador="X" então s=s+10 abriria outro se, se separador[i-1] = "I" então s=s-2 depois fecharia esse se depois abriria outro se, se separador="V" então s=s+5 e dentro desse se abriria outro se, se separador[i-1] = "I" então s=s-2 fecharia esse se depois abriria outro se se separador = "I" então s=s+1
      depois daria um escreval(s)
      O problema está na hora de separar as letras qual o comando no VisualG para separar letra ou não tem?
      O comando copia é útil somente se separar letra por letra porém falha na hora, por exemplo de copiar um número romano, eu eu tenho que já passar esse comando com parâmetros já pré-deficinidos copie desta casa até esta casa (romano;1;2), que no não teria como colocar todos os parâmetros para todos os números de 1 a 3999
       
    • Por alekaspary
      Bom dia.
      Preciso de ajuda para montar uma view com mostre os reservatórios de modo hierárquico.
      Tenho a seguinte tabela.
       
      Reservatorios(
      -id
      -nome
      -pai_id
      )
       
      cada reservatório tem como pai outro reservatório, e gostaria de saber qual a melhor forma de mostrar isso em uma treeview por exemplo, sendo que cada reservatório fique dentro de seu 'pai'. OBS: não existe limite de níveis.
       
    • Por irwingato
      Var // Seção de Declarações das variáveis Fatorial,Numero,x : Inteiro Primo,Resposta : Inteiro vetorr : vetor[0..1000] de inteiro Flag : Logico Inicio // Seção de Comandos, procedimento, funções, operadores, etc... Limpatela Mudacor("Amarelo","Frente") Escreva("Deseja até que número primo: ") leia(Numero) Escreval Escreva(" 1") Para Primo de 2 ate Numero faca Fatorial<- 2 Flag <- Falso enquanto (Primo<>fatorial) faca Resposta <- Primo MOD Fatorial Fatorial <- Fatorial + 1 se Resposta = 0 entao Flag <- Verdadeiro fimse fimenquanto se (Nao Flag) entao escreva(" , ",Primo) vetorr[x] := primo x := x + 1 fimse fimpara escreval escreval escreval("O Número Primo Anterior A ",numero," é ",vetorr[x-1]) O código ficou bom mas contém um erro o número 1 não é primo e preciso otimizá-lo ainda para ficar mais eficiente gostaria de quando você múltiplo de um número já removesse da contagem e passasse para o próximo número, pois quando é múltiplo já não é mais primo pois somente precisa ter 2 divisores exatos que no caso seria o 1 e o número digitado, a e outra falha no algoritmo tem que ser um número primo anterior e caso o número digitado seja primo deve informar o número primo anterior a este digitado
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.