Logo Passei Direto
Buscar
Um algoritmo eficiente possui como característica otimizar ao máximo o desempenho computacional, utilizando o mínimo necessário de recursos em memória. Dado o seguinte algoritmo:

uf=str(input("Digite o Estado: "))

if (uf == "PR"):

print ("Paraná")

if (uf == "SC"):

print("Santa Catarina")

if (uf == "RS"):

print("Rio Grande do Sul")

if (uf != "PR") and (uf != "SC") and (uf != "RS"):

print("Estado inválido ou pertencente a outra região")

Assinale a alternativa correta referente ao que pode ser melhorado nesse algoritmo.


Criar uma variável para cada descrição de Estado.
Utilizar um vetor para armazenar todos os Estados da região Sul.
Trocar todas as estruturas condicionais if por uma única estrutura de decisão múltipla elif.
Trocar os operadores de igualdade (==) por operadores de diferença (!=).
Trocar as instruções e colocar os teste de verificação em um loop.
User badge image
Progresso com Exercícios

há 2 anos

Respostas

User badge image

Ed Verified user icon

há 8 meses

Vamos analisar as alternativas para identificar qual delas pode melhorar o algoritmo apresentado: 1. Criar uma variável para cada descrição de Estado. - Isso não melhora a eficiência do algoritmo, apenas tornaria o código mais extenso e menos organizado. 2. Utilizar um vetor para armazenar todos os Estados da região Sul. - Essa abordagem poderia ser útil, mas não é a solução mais direta para melhorar a estrutura condicional do algoritmo. 3. Trocar todas as estruturas condicionais if por uma única estrutura de decisão múltipla elif. - Essa é uma boa prática, pois torna o código mais limpo e eficiente, evitando múltiplas verificações desnecessárias. 4. Trocar os operadores de igualdade (==) por operadores de diferença (!=). - Isso não faz sentido no contexto do algoritmo, pois o objetivo é verificar a igualdade. 5. Trocar as instruções e colocar os testes de verificação em um loop. - Isso não é necessário, já que o algoritmo não precisa ser repetido em um loop para a tarefa que está realizando. A alternativa que realmente melhora a eficiência e a clareza do algoritmo é: Trocar todas as estruturas condicionais if por uma única estrutura de decisão múltipla elif. Portanto, a resposta correta é a terceira opção.

Essa resposta te ajudou?

0
Dislike0
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar essa resposta. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

User badge image

Ed Verified user icon

há 2 anos

A alternativa correta para melhorar o algoritmo apresentado é: Trocar todas as estruturas condicionais if por uma única estrutura de decisão múltipla elif. Dessa forma, o código ficaria mais limpo e fácil de ser lido, além de ser mais eficiente em termos de desempenho computacional.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

No processo de desenvolvimento de sistemas utilizamos diversas estruturas para deixar o código mais dinâmico e simples, tais estruturas são importantes. Uma dessas são os laços de repetição que se baseiam em dados que podem ser agrupados. Considere o código-fonte:

i = 5;

while(i > 0):

i = i + 1;

printf("%d ", i);

Com base no código fonte apresentado acima, realize o teste de mesa e assinale a alternativa correta.


Ao término de sua execução, o algoritmo irá imprimir a seguinte mensagem, na tela: 5 4 3 5 1 0.
Ao término de sua execução, o algoritmo irá imprimir a seguinte mensagem, na tela: 5 4 3 2 1.
Ao término de sua execução, o algoritmo irá imprimir a seguinte mensagem, na tela: 1 2 3 4 5.
Ao término de sua execução, o algoritmo irá imprimir a seguinte mensagem, na tela: 0 1 2 3 4 5.
O algoritmo entrará em loop infinito.

Utilize seus conhecimentos adquiridos ao longo da disciplina para interpretar as afirmacoes abaixo.

I - Uma função recursiva precisa de uma condição de parada ou caso base que, geralmente, é expresso por uma estrutura de decisão.

II - A chamada recursiva de uma função é feita quando a função invoca a si mesma dentro do seu próprio bloco de comandos.

III - A função para calcular o n-ésimo termo da Série de Fibonacci é um exemplo de função inerentemente recursiva.

Sendo assim, é correto o que se afirma em:

Uma função recursiva precisa de uma condição de parada ou caso base que, geralmente, é expresso por uma estrutura de decisão.
A chamada recursiva de uma função é feita quando a função invoca a si mesma dentro do seu próprio bloco de comandos.
A função para calcular o n-ésimo termo da Série de Fibonacci é um exemplo de função inerentemente recursiva.
II, apenas.
I e II, apenas.
I e III, apenas.
II e III, apenas.
I, II e III.

Com base no trecho apresentado, é possível dizer que:

A conversão de dados na variável custoViagem ocasionará em um erro de sintaxe.
O uso dos parênteses no segundo print ocasionará em um erro semântico.
A variável custoViagem têm armazenado o resultado do cálculo total da viagem.
No primeiro print é apresentado o KM a percorrer, o resultado a ser impresso está armazenado na variável kmPercorrer.
Ao executar o código, teremos um erro, pois não é permitido converter dados que originalmente são do tipo int para float.
a) Apenas a afirmativa 1 está correta.
b) Apenas a afirmativa 2 está correta.
c) Apenas a afirmativa 3 está correta.
d) Apenas as afirmativas 1 e 4 estão corretas.
e) Todas as afirmativas estão corretas.

A barragem da hidrelétrica apresentou algumas fissuras na última verificação de rotina. Os técnicos estão traçando um plano para fazer um reforço antes que comece a temporada de chuvas, até o momento foi dito que a barragem não deve suportar mais do que 60% da sua capacidade. Dessa forma, solicitaram à equipe de TI a elaboração de um programa que fique constantemente verificando o nível da barragem, essa verificação deve permanecer ativa enquanto a capacidade for menor do que 55, depois a verificação encerra e as contramedidas devem ser adicionadas, como a abertura do vertedouro para diminuir o nível de água acumulada. A partir do contexto exposto acima, qual delas representa as condições descritas no problema?


while (nivelAgua < 55).
while (nivelAgua <= 55).
while (nivelAgua == 55).
while (nivelAgua != 55).
while (nivelAgua < 60).

Considerando as informações anteriores, assinale a alternativa que indique o tipo da variável, que deverá ser declarada para o armazenamento do CPF.


STRING.
STR.
FLOAT.
INT.
LONG FLOAT.

Realizando o teste de mesa, avalie as alternativas abaixo e assinale a que corresponde à realidade.

Quando o algoritmo atingir a execução da linha 15, será impresso o número 8 (oito) na tela.
Quando o algoritmo atingir a execução da linha 15, será impresso o número 13 (treze) na tela.
Quando o algoritmo atingir a execução da linha 15, será impresso o número 0 (zero) na tela.
Quando o algoritmo atingir a execução da linha 15, será impresso o número 1 (hum) na tela.
Quando o algoritmo atingir a execução da linha 15, será impresso o número 7 (sete) na tela.

Mais conteúdos dessa disciplina