As condições switch
A estrutura switch ... endswitch é uma alternativa ao if ... else ... endif, mais prática para quando um valor pode assumir diversos valores.
Índice
Exercício
Uma sequência de DNA é uma série de letras representando a estrutura primária de uma molécula ou cadeia de DNA. As letras possíveis são A, C, G e T que representam as bases nitrogenadas Adenina, Citosina, Guanina e Timina.
Escreva um programa que, dada uma letra, diga qual a base correspondente. Por exemplo, se for indicada a letra 't', deve responder 'timina'.
Solução com IF
# dada a primeira letra de uma base, apresenta o nome correspondente # as bases possiveis sao: # Adenina, Citosina, Guanina e Timina letra = input("Indique a letra da base [ACGT]?", "s"); if (letra == "a") disp("Adenina"); elseif (letra == "c") disp("Citosina"); elseif (letra == "g") disp("Guanina"); elseif (letra == "t") disp("Timina"); else disp("Nao existe nenhuma base correspondente"); endif
Solução com SWITCH
# dada a primeira letra de uma base, apresenta o nome correspondente # as bases possiveis sao: # Adenina, Citosina, Guanina e Timina letra = input("Indique a letra da base [ACGT]?", "s"); letraminuscula = lower(letra); switch letraminuscula case "a" disp("Adenina"); case "c" disp("Citosina"); case "g" disp("Guanina"); case "t" disp("Timina"); otherwise disp("Nao existe nenhuma base correspondente"); endswitch
Outra solução com SWITCH
# dada a primeira letra de uma base, apresenta o nome correspondente # as bases possiveis sao: # Adenina, Citosina, Guanina e Timina letra = input("Indique a letra da base [ACGT]?", "s"); switch letra case {"a" "A"} disp("Adenina"); case {"c" "C"} disp("Citosina"); case {"g" "G"} disp("Guanina"); case {"t" "T"} disp("Timina"); otherwise disp("Nao existe nenhuma base correspondente"); endswitch
Exercício
Escreva um programa que, dada uma distância em metros, e dada uma unidade, apresenta a distância nessa unidade. Ou seja, data uma distância em metros, o utilizador pode pedir para que a mesma distância seja apresentada noutra unidade.
Por exemplo, considere os seguintes dados e o respetivo resultado:
Dados | |
---|---|
distância | 560 (m) |
unidade | km |
Total | |
distância | 0,56 (km) |
# convertemetros.m # script octave # lê uma distância em metros e converte para um múltiplo ou submúltiplo distancia = input("Qual a distância em metros?\n"); opcao = menu("Indique a unidade pretendida", "Quilómetro","Hectómetro", "Decâmetro" , "Decímetro" , "Centímetro" , "Milímetro"); switch (opcao) case 1 fator = 0.001; case 2 fator = 0.01; case 3 fator = 0.1; case 4 fator = 10; case 5 fator = 100; case 6 fator = 1000; endswitch resultado=distancia*fator; disp(resultado);
Exercício
Escreva um programa que lê um determinado valor em Euros. Depois, permita que o mesmo possa ser convertido para dólares americanos, libras esterlinas, francos suíços ou coroas norueguesas.