O programa principal deve apresentar ao usuário um menu com as possibilidades de execução de cada função acima. Além disso, deve fazer a verificação de entrada de cada valor que o usuário tiver que digitar e deve apresentar os resultados de forma adequada e deve esperar que o usuário decida voltar ao menu principal. O menu deve apresentar também a possibilidade de sair do programa principal e, nesse caso, este deve apresentar uma mensagem de fim de execução do programa.
Passo 1
Beleza, vamos dar uma olhada no que a gente precisa fazer aqui. O enunciado está pedindo para criar um programa principal que mostre um menu para o usuário com diferentes opções de funções que já foram definidas antes (as “funções acima” mencionadas). Além disso, precisamos garantir que:
- Verificar se as entradas do usuário estão corretas.
- Mostrar os resultados de maneira apropriada.
- Esperar o usuário decidir voltar ao menu principal.
- Incluir uma opção para sair do programa, exibindo uma mensagem de fim.
Vamos usar conceitos de programação de menus, controle de fluxo e validação de entradas para resolver isso.
Passo 2
Primeiro, precisamos pensar em como criar um menu no programa. Em muitas linguagens de programação, isso é feito usando uma estrutura de repetição (como
while
ou do-while
) que continua exibindo o menu até que o usuário escolha sair.Por exemplo, se estivermos usando Python, podemos fazer algo assim:
while True:
# Exibir o menu
print("1. Função A")
print("2. Função B")
print("3. Sair")
# Receber a escolha do usuário
escolha = input("Escolha uma opção: ")
if escolha == '1':
funcao_a()
elif escolha == '2':
funcao_b()
elif escolha == '3':
print("Fim do programa.")
break
else:
print("Opção inválida. Tente novamente.")
Aqui, usamos um
while True
para manter o menu aparecendo até que o usuário escolha sair (opção ‘3’).Passo 3
Agora, vamos falar sobre validação de entradas. É importante garantir que o usuário está inserindo valores válidos. No exemplo acima, verificamos se a escolha é ‘1’, ‘2’ ou ‘3’. Se não for, mostramos uma mensagem de erro.
Podemos melhorar isso verificando se a entrada é realmente um número e está dentro das opções disponíveis. Por exemplo:
while True:
print("1. Função A")
print("2. Função B")
print("3. Sair")
escolha = input("Escolha uma opção: ")
if escolha.isdigit():
escolha = int(escolha)
if escolha == 1:
funcao_a()
elif escolha == 2:
funcao_b()
elif escolha == 3:
print("Fim do programa.")
break
else:
print("Opção inválida. Tente novamente.")
else:
print("Entrada inválida. Por favor, digite um número.")
Aqui, usamos
isdigit()
para verificar se a entrada é um número antes de converter para inteiro e comparar.Passo 4
Vamos agora considerar que cada função (como
funcao_a()
e funcao_b()
) pode exigir entradas do usuário. Precisamos validar essas entradas também.Por exemplo, se
funcao_a()
deve receber um número, podemos fazer assim:def funcao_a():
while True:
valor = input("Digite um número para a Função A: ")
if valor.isdigit():
valor = int(valor)
resultado = valor ** 2 # Exemplo de operação
print(f"O resultado é {resultado}")
break
else:
print("Entrada inválida. Por favor, digite um número.")
Nesse caso, garantimos que o usuário digite um número antes de realizar a operação.
Passo 5
Por fim, vamos juntar tudo e garantir que o programa retorna ao menu principal após executar uma função, permitindo que o usuário escolha outra opção ou saia.
Aqui está o código completo:
def funcao_a():
while True:
valor = input("Digite um número para a Função A: ")
if valor.isdigit():
valor = int(valor)
resultado = valor ** 2 # Exemplo de operação
print(f"O resultado é {resultado}")
break
else:
print("Entrada inválida. Por favor, digite um número.")
def funcao_b():
while True:
valor = input("Digite um número para a Função B: ")
if valor.isdigit():
valor = int(valor)
resultado = valor + 10 # Exemplo de operação
print(f"O resultado é {resultado}")
break
else:
print("Entrada inválida. Por favor, digite um número.")
def menu_principal():
while True:
print("\nMenu Principal")
print("1. Função A")
print("2. Função B")
print("3. Sair")
escolha = input("Escolha uma opção: ")
if escolha.isdigit():
escolha = int(escolha)
if escolha == 1:
funcao_a()
elif escolha == 2:
funcao_b()
elif escolha == 3:
print("Fim do programa.")
break
else:
print("Opção inválida. Tente novamente.")
else:
print("Entrada inválida. Por favor, digite um número.")
if __name__ == "__main__":
menu_principal()
Resposta
Pronto! Agora você tem um programa principal que exibe um menu com as opções de Função A, Função B e Sair. Ele valida as entradas do usuário, executa as funções escolhidas, mostra os resultados e permite que o usuário retorne ao menu ou encerre o programa com uma mensagem de fim de execução.
Exercícios relacionados
Faça uma função que receba um inteiro n como argumento e retorno uma lista de Abcde, Bcdef, Cdefg, …, Zabcd,
ABcde, BCdef, CDefg, …, ZAbcd,
ABCde, BCDef, CDEfg, …, ZABcd,
ABCDe, BCDEf, CDEFg, …, ZABCd,
ABCDE, BCDEF, CDEFG, … ,ZABCD,
ZBCDE, ZCDEF, ZDEFG, … ,ZZABC,
ZZBCD, ZZCDE, ZZDEF, … ,ZZZAB,
ZZZBC, ZZZCD, ZZZDE, … ,ZZZZA,
ZZZZB, ZZZZC, ZZZZD, … ,ZZZZZ.
A função deve retornar uma lista com todos os strings gerados de tamanho n:
ABcde, BCdef, CDefg, …, ZAbcd,
ABCde, BCDef, CDEfg, …, ZABcd,
ABCDe, BCDEf, CDEFg, …, ZABCd,
ABCDE, BCDEF, CDEFG, … ,ZABCD,
ZBCDE, ZCDEF, ZDEFG, … ,ZZABC,
ZZBCD, ZZCDE, ZZDEF, … ,ZZZAB,
ZZZBC, ZZZCD, ZZZDE, … ,ZZZZA,
ZZZZB, ZZZZC, ZZZZD, … ,ZZZZZ.
A função deve retornar uma lista com todos os strings gerados de tamanho n:
Cabeçalho da função: | gera_nomes ( n ) |
Argumento: | n, int: tamanho dos nomes. |
Saída: | [str]: lista de strings com os nomes de tamanho n. |
Descreva o problema, as motivações para resolvê-lo e os desafios que exigem o uso de uma solução computacional e a aplicação dos recursos do GeoPandas;
Programe uma função Python que gere uma lista de n
inverte os 2 primeiros dígitos:
inverte os 3 primeiros dígitos:
…
inverte os 9 dígitos e pára:
inverte os 2 primeiros dígitos:
inverte os 3 primeiros dígitos:
…
inverte os 9 dígitos e pára:
A função terá outro argumento inteiro inv que informará o número máximo de dígitos que serão invertidos na geração de \begin{tabular}{r|l}
\hline Cabeçalho da função: & gera_numeros_de_telefone(n,inv) \
\hline Cabeçalho da função: & gera_numeros_de_telefone(n,inv) \
\hline Argumento: &
\
n, int: quantidade de inv, int: quantidade máxima de dígitos a serem invertidos na |
geração de |
\hline Saída: &
\
([str], bool): tupla com a lista dos n um booleano indicando se foram gerados todos os n telefone |
\hline
\end{tabular}
\end{tabular}
Assinale a alternativa que contenha uma memória SRAM
a)Registrador
b)Memória Principal
c)Memória Flash
d)Disco magnético
e)ROM
a)Registrador
b)Memória Principal
c)Memória Flash
d)Disco magnético
e)ROM