Prévia do material em texto
Usuário WALTER ANTONIO RODRIGUES JUNIOR
Curso 2203-ALGORITMOS E PROGRAMAÇÃO I
Teste Clique aqui para iniciar o Quiz
Iniciado 27/10/22 16:45
Enviado 27/10/22 16:59
Data de vencimento 07/12/22 23:59
Status Completada
Resultado da tentativa 5 em 10 pontos
Tempo decorrido 13 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
• Pergunta 1
1 em 1 pontos
Leia com atenção o texto a seguir:
Muitos problemas quantitativos e centrados em dados podem ser resolvidos usando o
pensamento computacional e uma compreensão do pensamento computacional lhe
dará uma base para resolver diversos tipos de problemas.
Dentre as habilidades do pensamento computacional, o componente principal que
permite um programador criar um conjunto de etapas para desenvolver um programa de
computador responsável por resolver problemas que têm impacto social no mundo real
é a(o)
Resposta Selecionada:
algoritmo.
Respostas: abstração.
algoritmo.
depuração.
decomposição.
avaliação.
Comentário da
resposta:
Dentre as habilidades que norteiam o pensamento computacional, o
pensamento algorítmico é a capacidade de escrever instruções em
etapas para resolver um determinado tipo de problema.
• Pergunta 2
1 em 1 pontos
Em C# e em outras linguagens de programação, para que seja possível manipular
dados, uma das necessidades é criar variáveis que armazenem temporariamente
valores os quais podem ser numéricos (int ou float), texto (string) ou booleano (bool).
Observe o código a seguir escrito em C#:
1 a = 5.95681545;
2 b = Console.ReadLine();
3 c = 7 % 2;
4 d = 3.5 * c;
Marque a alternativa que apresenta corretamente os tipos das variáveis a, b, c e d,
respectivamente.
Resposta Selecionada:
a: float; b: string; c: int; d: float.
Respostas: a: int; b: string; c: float; d: int.
a: float; b: int; c: float; d: float.
a: int; b: string; c: int; d: int.
a: float; b: string; c: int; d: float.
a: int; b: int; c: float; d: int.
Comentário
da resposta:
Em a) temos um número que é ponto flutuante, isso pode ser observado
pelo uso de casas decimais; em b) a variável recebe um conteúdo da
linha de comando via o método input, logo, independentemente de o valor
digitado ser um número ou letra, o tipo sempre será string; em c)
estamos encontrando o resto de uma divisão, logo, o valor é inteiro; em
d) estamos multiplicando um ponto flutuante por um inteiro, o que resulta
em um ponto flutuante ou float.
• Pergunta 3
1 em 1 pontos
A linguagem C#, assim como outras, permite que criemos funções para organizar o
nosso código. Dentro destas funções, podemos adicionar estruturas de repetição,
estruturas condicionais e também invocar outras funções nativas da linguagem.
Observe com atenção o código a seguir escrito em C#, o qual utiliza funções.
1 public string print(string str){
2 Console.WriteLine(str);
3 }
4
5 public static void Main (string[] args) {
6 Program x = new Program();
7
8 string cont = “0”;
9
10 while(cont < 10){
11 x.print(cont);
12 cont = Console.ReadLine();
13 }
14 }
Considerando as informações apresentadas, assinale a alternativa correta.
Resposta
Selecionada:
Este código executará uma vez e apresentará uma mensagem
informando que cont não é uma variável do tipo numérica, dando erro
na linha 10.
Respostas:
Este código executará uma vez e apresentará uma mensagem
informando que cont não é uma variável do tipo numérica, dando erro
na linha 10.
Neste código, enquanto o usuário digitar um número menor do que 10,
todo o conteúdo interno (linhas 6 a 12) será repetido ou iterado. Ao
digitar um número maior ou igual a 10, o loop encerra.
Haverá um erro na linha 11, pois a função print está enviando um
contador que é inteiro, porém na linha 1 recebe uma string como
parâmetro.
O while da linha 10, bem como todo o seu conteúdo, entrará em loop
infinito, pois o valor de cont é zero e não existe um incremento para
esta variável.
O erro que ocorrerá em tempo de execução na linha 11 pode ser
resolvido se substituirmos a função print pela função nativa do C#,
WriteLine.
Comentário
da resposta:
Na primeira execução, quando chega na linha 8, a variável cont é
declarada do tipo string, logo, mesmo que receba um número, o tipo da
variável é texto (string). Logo, quando encontra o loop do while na linha
10, estamos comparando um tipo texto (cont) com um numérico (10).
Deste modo, ocorrerá um erro, pois não é possível realizar este tipo de
comparação.
• Pergunta 4
1 em 1 pontos
Observe com atenção os blocos da figura a seguir:
Analisando os blocos, é correto afirmar que:
Resposta
Selecionada:
a operação aritmética realizada nos blocos laranja (altera) e azul claro
(anda) terá o mesmo resultado, porém com comportamentos
diferentes.
Respostas: ao clicar na bandeira verde, o usuário informa dois números, os quais
serão somados e armazenados na variável soma.
se o valor das variáveis numA e numB receberem os valores 8 e 10, o
resultado será apresentado na tela pelo gato e ele andará 18 passos.
existe uma operação de soma que será executada assim que alguém
pressionar a bandeira verde, mostrando o resultado da operação na
tela.
a operação aritmética realizada nos blocos laranja (altera) e azul claro
(anda) terá o mesmo resultado, porém com comportamentos
diferentes.
a instrução realizada no bloco azul (anda) resultará em erro, uma vez
que operações aritméticas devem ser atribuídas a uma variável.
Comentário
da resposta:
Nos blocos laranja e azul temos a mesma operação de soma, com a
diferença de que, enquanto o bloco laranja atribui o valor da operação de
soma para uma variável, o bloco azul atribui para o bloco anda uma
quantidade de passos para o gato caminhar. Logo, se o valor da variável
numA for 8 e a variável numB for 10, então a variável soma recebe 18 e o
gato caminha 18 passos.
• Pergunta 5
0 em 1 pontos
Leia e associe as duas colunas com relação aos pilares do pensamento computacional.
I. Decomposição A. Resolve problemas menores e mais
fáceis de serem gerenciados obtidos a
partir de um problema complexo.
II. Abstração B. Divide um problema em passo a passo
para que ele seja resolvido por meio de
instruções ou regras.
III. Algoritmo C. Separa do problema apenas as partes
importantes, ignorando as partes menos
importantes.
Assinale a alternativa que traz a associação correta entre as duas colunas:
Resposta Selecionada:
I-C; II-A; III-B.
Respostas:
I-A; II-C; III-B.
I-B; II-C; III-A.
I-C; II-A; III-B.
I-C; II-B; III-A.
I-B; II-A; III-C.
Comentário
da
resposta:
A alternativa correta é a) I-A; II-C; III-B.
I. Decomposição A. Resolve problemas menores e mais fáceis de serem
gerenciados obtidos a partir de um problema complexo.
II. Abstração C. Separa do problema apenas as partes importantes,
ignorando as partes menos importantes.
III. Algoritmo B. Divide um problema em passo a passo para que ele
seja resolvido por meio de instruções ou regras.
• Pergunta 6
1 em 1 pontos
Leia o texto a seguir:
Uma variável possui papel fundamental em um código: guardar dados. Elas podem
armazenar apenas um dado por vez, logo, se uma variável chamada nome possui o
conteúdo “João”, ao receber o valor “Maria”, a palavra “João” é perdida. Por outro lado,
temos as estruturas condicionais, cuja principal característica é modificar o fluxo de um
código de acordo com uma condição e, consequentemente, modificar o conteúdo de
uma variável. Veja um exemplo de código fonte em C# que manipula uma única variável
chamada txt e possui uma condicional.1 string txt;
2 Console.WriteLine(“Digite seu nome”);
3 txt = Console.ReadLine();
4
5 if(txt != “Maria”){
6 Console.WriteLine(txt + “seu acesso não está autorizado”);
7 } else {
8 Console.WriteLine(txt + “seu acesso foi autorizado”);
9 Console.WriteLine(“bem vindo!”);
10 }
Marque a alternativa que explica corretamente a execução deste código:
Resposta
Selecionada:
O valor digitado pelo usuário na linha 3 será armazenado na variável
txt e apresentado na linha 6 ou na linha 8.
Respostas: Se a variável txt receber o valor “Maria”, será apresentado na tela que
o acesso não está autorizado (linha 6) e três pontos (linha 9).
O valor digitado pelo usuário na linha 3 será armazenado na variável
txt e apresentado na linha 6 ou na linha 8.
A linha 6 deste código apresentará a mensagem “Digite seu nome”,
pois este é o valor da variável txt.
Uma característica do C# pode ser observada na linha 9, o uso de três
pontos para encerrar um fluxo de código.
Independente do conteúdo de txt, o conteúdo da linha 9 será
apresentado pois ele está fora da estrutura if/else.
Comentário da
resposta:
Na linha 3 o usuário entrará com um valor que, conforme solicitado,
deve ser um nome. Se o nome for diferente de Maria, então será
apresentado o valor da linha 6, caso contrário, será apresentado o valor
da linha 8.
• Pergunta 7
0 em 1 pontos
Leia com atenção o texto a seguir.
Um algoritmo é um procedimento computacional bem definido que pega algum valor
como entrada e gera algum valor como saída. Em palavras simples, é uma sequência de
etapas computacionais que converte a entrada em saída.
A respeito dos algoritmos e seus tipos de representações, analise as afirmativas a
seguir e assinale V para a(s) Verdadeira(s) e F para a(s) Falsa(s).
I. ( ) O algoritmo fornece ao designer uma descrição consistente dos requisitos e
objetivos dos problemas.
II. ( ) O pseudocódigo, um método para representar algoritmos, resume o fluxo de um
programa, apresentando os detalhes subjacentes.
III. ( ) A detecção de erros ou o fluxo de programa incorreto no estágio de
pseudocódigo é benéfica para o desenvolvimento.
IV. ( ) Os fluxogramas melhoram a condição e a eficiência do trabalho, possuindo
quatro símbolos básicos que são o início, o fim, o processo e a decisão.
Assinale a alternativa que possui a sequência correta.
Resposta Selecionada:
F-V-V-F.
Respostas: F-V-F-V.
V-V-F-F.
F-V-V-F.
V-V-F-V.
F-F-V-V.
Comentário
da resposta:
A afirmativa I é verdadeira, pois a escrita de um algoritmo facilita o
entendimento, de toda equipe, dos requisitos de um projeto de software.
A afirmativa II é falsa, pois o pseudocódigo é um método de
representação textual de um algoritmo, usado principalmente para
destacar as principais funcionalidades, excluindo os detalhes
subjacentes.
A afirmativa III é verdadeira, pois por ser um processo realizado no início
do desenvolvimento de software, encontrar um erro ou qualquer tipo de
problema durante a elaboração do fluxograma é mais barato e menos
prejudicial para a empresa. Logo, o fluxograma auxilia a encontrar erros
que podem causar prejuízos para a empresa.
A afirmativa IV é verdadeira, pois um fluxograma possui essencialmente
quatro símbolos básicos que contêm código escrito para programação.
Eles fornecem comandos como início, processo, decisão e fim, e esses
símbolos são a parte crucial dos fluxogramas de programação.
• Pergunta 8
0 em 1 pontos
Analise com atenção o código a seguir que utiliza função com passagem de parâmetros,
com três argumentos.
1 public int calcular(int x, ref int y, ref int z){
2 x = x + 10;
3 y = y + 10;
4 z = z + 10;
5 Console.WriteLine(x + " "+ y+ " "+ z);
6 return y;
7 }
8
9 public static void Main (string[] args) {
10 int a = 4;
11 int b = 3;
12 int c = 2;
13
14 Program p = new Program();
15 p.calcular(a, ref b, ref c);
16
17 Console.WriteLine(a + " - "+ b + " - " + c);
18 }
Os valores impressos na instrução da linha 17 serão:
Resposta Selecionada:
4 - 3 - 2
Respostas:
4 - 13 - 12
4 - 3 - 2
14 - 13 - 12
14 - 3 - 2
4 - 12 - 13
Comentário
da resposta:
Na função main há a invocação da função calcular passando três argumentos
por parâmetro, sendo que o primeiro (variável a) é passado por valor, por outro
lado, as variáveis b e c são passadas como referência. Logo, qualquer
alteração nas variáveis y e z na função calcular, impactará no valor das
variáveis b e c que estão na função main. Deste modo, os valores finais das
variáveis a, b e c serão, respectivamente, 4, 13 e 12.
• Pergunta 9
0 em 1 pontos
Analise com atenção o código a seguir:
1 public static void Main (string[] args) {
2 Console.WriteLine("Digite um numero");
3 string op = Console.ReadLine();
4
5 while(op > 0 || op < 50){
6 Console.WriteLine("Digite um número: ");
7 op = Console.ReadLine();
8 }
9 }
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. O laço de repetição while da linha 5 será executado indiferentemente do valor digitado
pelo usuário, uma vez que temos o operador OU (||).
II. O laço de repetição while apresentará um erro, pois a variável op é do tipo string e o
valor zero é um número inteiro.
III. O laço de repetição while será interrompido assim que o usuário digitar um número
fora do intervalo entre zero e cinquenta.
IV. O laço de repetição while está com sua sintaxe escrita corretamente, porém, ele
apresentará um erro de execução.
É correto o que se afirma em:
Resposta Selecionada:
I e II, apenas.
Respostas:
II e IV, apenas
I e III, apenas.
I e II, apenas.
III e IV, apenas.
II e III, apenas.
Comentário
da resposta:
A afirmativa I está incorreta, pois o laço de repetição não será executado
pois há uma tentativa de comparar uma string com um valor inteiro, o
que irá gerar um erro. Para resolver isso, é possível converter o tipo da
variável op de string para inteiro.
A afirmativa II está correta, pois haverá um erro devido ao tipo da variável
op que é string.
A afirmativa III está incorreta, pois mesmo que a variável op fosse do tipo
inteiro isso não ocorreria, afinal, existe uma condição ou, logo,
independentemente do valor digitado pelo usuário, sempre este laço
seria executado (considerando op como inteiro).
A afirmativa IV está correta, pois sintaxe se refere a forma de escrita e,
neste caso, o while está com sua sintaxe correta. Existe uma expressão
interna entre os parênteses com um operador lógico conectando duas
operações de comparação. Entretanto, o erro é semântico, uma vez que o
tipo não é condizente com o esperado, que seria o inteiro.
• Pergunta 10
0 em 1 pontos
Analise com atenção o código a seguir, o qual possui duas variáveis (a e b), bem como
uma estrutura condicional if na linha 4, que, caso seja verdadeira, irá executar o
conteúdo interno que correspondem às instruções das linhas 5, 6 e 7.
1 int a, b, aux;
2
3 a = 41;
4 b = 9;
5
6 if(a > b){
7 aux = a;
8 a = b;
9 b = aux;
10 }
11 Console.WriteLine(“O valor de a é “ + a);
12 Console.WriteLine(“O valor de b é “ + b);
Considerando as informações apresentadas, assinale a opção correta.
Resposta
Selecionada:
As linhas 7 e 9 poderiam ser suprimidas, ficando apenas os comandos
a = b e b = a dentro do escopo do if.
Respostas: O código apresentará um erro quando o valor de a for igual ao valor de
b, uma vez que não existe uma condição que contemple esta
igualdade.
O código apresentará erro na linha 6 uma vez que o sinal de chavesestá na mesma linha que a estrutura if, ela deveria estar na linha
seguinte.
O objetivo deste código é apresentar uma sequência ordenada nas
linhas 11 e 12, e a linha 7 é essencial neste processo.
O valor de a e b, após a execução dos comandos das linhas 8 e 9, será
41, o mesmo valor da variável aux.
As linhas 7 e 9 poderiam ser suprimidas, ficando apenas os comandos
a = b e b = a dentro do escopo do if.
Comentário
da resposta:
O algoritmo realiza a troca dos valores entre as variáveis a e b sempre
que a variável a for maior que a variável b. Entretanto, se fizer uma troca
direta, ou seja, a receber b e b receber a, perderemos o valor da variável
a. Deste modo, precisamos de um auxiliar que guarde para nós o valor de
a, então isso é feito na linha 7. A única condição de entrarmos neste if é
quando a variável a for maior que a variável b, logo, estamos ordenando
os valores.
Quinta-feira, 27 de Outubro de 2022 17h00min40s BRT