Jump to content
danielzamignani

Existe uma maneira de simplificar mais esse meu algoritimo?

Recommended Posts

Bom dia galera!

Então, eu fiz esse algoritimo para resolver um exercicio (Faça um Programa que leia três números e mostre-os em ordem decrescente). Ele esta funcional, tudo certinho(eu acho). O que eu realmente queria saber é se existe uma forma de eu simplificar ele utilizando apenas as estruturas condicionais ou se dessa forma que eu fiz já é o mais simples possivel ?

Valeu pela atenção pessoal!!!

Segue o codigo criado no visualg

 

//Faça um Programa que leia três números e mostre-os em ordem decrescente
algoritmo "ex009"
var
n1, n2, n3: inteiro
inicio
      escreva("Primeiro numero: ")
      leia(n1)
      escreva("Segundo numero: ")
      leia(n2)
      escreva("Terceiro numero: ")
      leia(n3)
      se (n1<n2) e (n2<n3) entao
         escreva(n3,n2,n1)
      senao
         se (n1<n3) e (n3<n2) entao
            escreva(n2,n3,n1)
         senao
            se (n2<n1) e (n1<n3) entao
               escreva(n3,n1,n2)
            senao
               se (n2<n3) e (n3<n1) entao
                  escreva(n1,n3,n2)
               senao
                  se (n3<n1) e (n1<n2) entao
                     escreva(n2,n1,n3)
                  senao
                     se (n3<n2) e (n2<n1) entao
                        escreva(n1,n2,n3)
                     fimse
                  fimse
               fimse
            fimse
         fimse
      fimse
fimalgoritmo

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By g.dmatos
      Preciso desenvolver um algoritmo no Visualg, da função y=3x+8, onde, a partir da informação de um valor para a variável independente x, o sistema automaticamente informe o valor da variável dependente y.
       
      porém quando vou executar da erro no código:
      var x, y: real inicio escreval("Digite o valor do coeficiente x") leia(x) Escreval ("O valor da conta é igual a:" + y) Leia (y) y=(3.x)+8 fimdoalgoritmo  
    • By TEC2587
      Quando eu excuto o algoritmo, a primeira condição comporta-se bem, mas apartir da segunda aparece o erro:
       
      Esperava-se encontrar ENTAO na linha  "se((med=<8.9) e (med>=8))entao"
      Esperava-se encontrar ENTAO na linha  "escreval("Seu rendimento foi muito bom"
       
      Algoritmo "semnome"
       
       
      Var
         med: real
      Inicio
         escreval("-------------------")
         escreval(" RENDIMENTO ESCOLAR")
         escreval("--------------------")
         escreval("Qual é a sua média: ")
         leia(med)
         se ((med=10) ou (med>=9))entao
            escreval ("Seu rendimento foi excelente")
         senao
            se ((med=<8.9) e (med>=8))entao
               escreval("Seu rendimento foi muito bom")
            senao
               se ((med= 7.9) e (med>=7))entao
                  escreval("Seu rendimento foi bom")
               senao
                  se ((med=6.9) e (med>=6))entao
                     escreval("Seu rendimento foi regular")
                  senao
                     se ((med=5.9) e (med>=5))entao
                        escreval("Seu rendimento foi insuficiente")
                     senao
                        escreval("Seu rendimento foi ruim")
                     fimse
                  fimse
               fimse
            fimse
         fimse
      Fimalgoritmo
    • By vanessalopes
      Olá Gente me ajudam a resolver esses exercícios? Vamos lá   ( TODOS ESSES PROGRAMAS A ESTRUTURA DE REPETIÇÃO E ENQUANTO E SE TAMBÉM OBRIGADA)
       
      1 - Imprima Os Números Primos Compreendidos entre 1 e 100 e faça um algoritmo para resolver esse problema.
       
      Eu Montei o Algoritmo dessa forma, ele roda mais o resultado não tá exato no Visual G, se puder me ajudar com essa questão 
       
      var p,n:inteiro
      inicio
       
      leia (n) 
      p<- 1
      enquanto p<=100 faca
      se p mod = 0 entao
      escreva (" Esse Numero é Primo",p)
      senao
      escreva (" Esse numero não é Primo")
      fimse
      fimenquanto
      fimalgoritmo
       
      2 - faça um algoritmo para que seja digitado a idade e diga se a pessoa e maior de idade ou não faça isso até que alguém digite 100 anos.
       
      estrutura de repetição enquanto faca/se entao
       
      3 -faça um algoritmo que imprima de 1 a 100 de forma decrescente 
       
      estrutura de repetição enquanto
      acrescentei o exemplo d<-d-1  mesmo assim não rodou
       
      4- construa um algoritmo que diga os divisores de 100 compreendidos de 1 a 20 
       
      bom, esse também eu fiz mais não conseguir roda 
       
       
      5 - DIVISOES DO TRIANGULO E DIZER SE O MESMO E ISOCELE, ESCALENO OU EQUILATERIO 
       
      LEIA (L1)
      LEIA (L2)
      LEIA (L3)
      ....
      (SE)
    • By igor.js167
      Boa tarde,
       
      No banco de dados tenho as informações a seguir, em diferentes tabelas: Acesso,  Dose prescrita, tempo e volume. Preciso, de acordo com essas informações, calcular dois valores chamados bolus e rate seguindo uma condicional. O problema é como vou retornar estes dois valores, se não tem atributo onde eu possa inseri-los?
       
      Eu deveria criar uma nova tabela pra eles? Existe como retornar estes atributos sem ter de mexer em nenhuma tabela?
      O código atual que tenho, é:
      select a.nr_atendimento ATENDIMENTO, obter_nome_pf_atend(a.nr_atendimento) NOME, obter_data_nascto_pac_atend(a.nr_atendimento) NASCIMENTO, 'DOSE: ' || decode(a.qt_dose,',5','2.500 UI','1','5.000 UI','1,5','7.500 UI','2','10.000 UI','2,5','12.500 UI','3','15.000 UI','3,5','17.500 UI', '4','20.000 UI','4,5','22.500 UI','5','25.000 UI','5,5','27.500 UI','6','30.000 UI') DOSE, 'VOLUME: ' || a.qt_volume || ' ml' VOLUME, obter_desc_material(a.cd_material) MEDICAMENTO, d.qt_hora_min_sessao TEMPO, e.nr_seq_tecnica ACESSO -- Inserir aqui condicionais para cálculo de BOLUS e RATE from CPOE_material a, atend_paciente_unidade b, hd_escala_dialise c, cpoe_dialise d, hd_acesso e where a.cd_material = 49749 and a.nr_atendimento = b.nr_atendimento and d.nr_atendimento = b.nr_atendimento and obter_cd_pes_fis_atend(b.nr_atendimento) = c.cd_pessoa_fisica and b.dt_saida_unidade is null and a.dt_liberacao is not null and a.dt_suspensao is null and d.dt_liberacao is not null and d.dt_suspensao is null and c.dt_fim is null and e.cd_pessoa_fisica = obter_pessoa_atendimento(b.nr_atendimento,'C') and e.ie_adequado = 'S' and e.dt_perda_retirada is null and c.nr_seq_turno = :turno and c.nr_seq_escala = :escala E as condicionais que quero inserir é mais ou menos assim:
      SE acesso arteriovenoso então: se dose_prescrita = 2500 então bolus = volume e rate = '-' se dose_prescrita = 5000 então: se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 6,0 e rate = 1,6 se tempo = 3:30h ou 3:35 então Bolus = 6,0 e rate = 1,3 se tempo = 4:00 ou 4:05h então bolus = 6,0 e rate = 1,1 se dose_prescrita = 7500 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 8,0 e rate = 2,8 se tempo = 3:30h ou 3:35 então Bolus = 8,0 e rate = 2,3 se tempo = 4:00 ou 4:05h então bolus = 8,0 e rate = 2,0 se dose_prescrita = 10000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 10,0 e rate = 4,0 se tempo = 3:30h ou 3:35 então Bolus = 10,0 e rate = 3,3 se tempo = 4:00 ou 4:05h então bolus = 10,0 e rate = 2,9 se dose_prescrita = 12500 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 11,0 e rate = 5,6 se tempo = 3:30h ou 3:35 então Bolus = 11,0 e rate = 4,7 se tempo = 4:00 ou 4:05h então bolus = 11,0 e rate = 4,0 se dose_prescrita = 15000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 13,0 e rate = 6,8 se tempo = 3:30h ou 3:35 então Bolus = 13,0 e rate = 5,7 se tempo = 4:00 ou 4:05h então bolus = 13,0 e rate = 4,9 se dose_prescrita = 30000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 23,0 e rate = 14,8 se tempo = 3:30h ou 3:35 então Bolus = 23,0 e rate = 12,3 se tempo = 4:00 ou 4:05h então bolus = 23,0 e rate = 10,6 se não então null SE acesso cateter então: se dose_prescrita = 2500 então bolus = volume e rate = '-' se dose_prescrita = 5000 então: se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 6,0 e rate = 1,3 se tempo = 3:30h ou 3:35 então Bolus = 6,0 e rate = 1,1 se tempo = 4:00 ou 4:05h então bolus = 6,0 e rate = 1,0 se dose_prescrita = 7500 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 8,0 e rate = 2,3 se tempo = 3:30h ou 3:35 então Bolus = 8,0 e rate = 2,0 se tempo = 4:00 ou 4:05h então bolus = 8,0 e rate = 1,8 se dose_prescrita = 10000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 10,0 e rate = 3,3 se tempo = 3:30h ou 3:35 então Bolus = 10,0 e rate = 2,9 se tempo = 4:00 ou 4:05h então bolus = 10,0 e rate = 2,5 se dose_prescrita = 12500 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 11,0 e rate = 4,7 se tempo = 3:30h ou 3:35 então Bolus = 11,0 e rate = 4,0 se tempo = 4:00 ou 4:05h então bolus = 11,0 e rate = 3,5 se dose_prescrita = 15000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 13,0 e rate = 5,7 se tempo = 3:30h ou 3:35 então Bolus = 13,0 e rate = 4,9 se tempo = 4:00 ou 4:05h então bolus = 13,0 e rate = 4,3 se dose_prescrita = 30000 então se tempo = 2:00h, 2:05h, 2:30h ou 2:35h então Bolus = volume e rate = '-' se tempo = 3:00h ou 3:05 então Bolus = 23,0 e rate = 12,3 se tempo = 3:30h ou 3:35 então Bolus = 23,0 e rate = 10,6 se tempo = 4:00 ou 4:05h então bolus = 23,0 e rate = 9,3 Atenciosamente,
      Igor
       
    • By lemao_code()
      Bom dia Galera, não sei se este é a div certa para a postagem (div sacou?)
      Mas vamos lá,
      A uns 2meses to estudando linguagens de programação, comecei pela Logica de Programação com o professor Guanabara,Agora estou em Python e HTML5 CSS e Java.
      Python estou no que o professor chama de Mundo 2, aprendendo if, elif, else, já sei operadores aritméticos etc.
      HTML5 está mais no inicio, to aprendendo a trabalha com o css para dar estilo na pagina.(Também sei Banco de Dados no MySQL)
      Mas vamos ao assunto, to procurando colegas que estejam na parecida situação como eu, para realmente estudarmos juntos.
      Certa vez o professor falou que isso ajudaria e muito, e concordo, alguém para ajudar, e alguem para você ajudar, é um crescimento e tanto, então convido-os quem tiver interesse
      duas cabeças pensam mais que 1. (ou não se a outra cabeça for de um gênio!Jobs,BIl,Einsten,Hawking esses cara kk)
      Geralmente, estudos das 4h manhã ate as 6hrs da manhã, depois a noite das 19 até a hora que os olhos sangrarem!
       
      Pode mandar msg aqui no meu perfil, estou online!
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.