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:
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:
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 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}
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