Buscar

Revisão Algoritmos e Técnicas de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisão Algoritmos e Técnicas de Programação
Av1 - Algoritmos e Técnicas de Programação
1) Segundo MARC?ULA, “a linguagem de programação pode ser entendida como um conjunto de palavras (vocabulário) e um conjunto de regras gramaticais (para relacionar essas palavras) usados para instruir o sistema de computação a realizar tarefas específicas e com isso, criar os programas. Cada linguagem tem o seu conjunto de palavras-chave e sintaxes”.
Assinale a alternativa que apresenta corretamente em qual linguagem o sistema Unix foi implementado.
Alternativas:
 a)Linguagem C.
 b)Linguagem Pascal.
 c) Linguagem Java.
 d)Linguagem Basic.
 e)Linguagem Fortran.
2) As primeiras linguagens de computadores utilizadas foram as linguagens de máquina e a linguagem assembly. Esse cenário foi criado a partir da década de 1940. Desde então muitas linguagens foram aparecendo e como é natural, muitas não sobreviveram, como é o caso da linguagem Algol. 
De acordo com as informações apresentadas na tabela a seguir, faça a associação dos quatro tipos de linguagem apresentadas e suas respectivas características.
Coluna -A 	 Coluna-B
1 - Linguagem JavaScript 	 a) Linguagem criada pela Microsoft em 2002, possui plataforma dot net (.NET) para melhorar a comunicação de tecnologias na empresa. 
2 - Linguagem Java 	 b) É uma linguagem utilizada especificamente para programação em navegadores de internet.
3 - Linguagem C# 	 c) Teve seu início na empresa Sun Microsystems, a ideia era criar programas para comunicação entre diferentes dispositivos (vídeo cassete, TV, conversores de televisão a cabo entre outros). 
4 - Linguagem Object Pascal 	d) é uma linguagem orientada a objetos, suas principais ferramentas de programação estão ligadas a IDE Delphi da Embarcadero.
Assinale a alternativa que apresenta a associação correta.
Alternativas: 3-A 4-D 2-C 1-B
 a) 1-b, 2-c, 3-a, 4-d.
 b)1-c, 2-d, 3-a, 4-d.
 c) 1-b, 2-c, 3-d, 4-a.
 d) 1-a, 2-c, 3-b, 4-d.
 e)1-d, 2-c, 3-a, 4-b.
3) Segundo JOYANES, todas as linguagens de programação possuem elementos básicos que são utilizados como blocos construtivos, onde formam regras para que esses elementos se combinem. Essas regras são chamadas de sintaxes de linguagem ou comandos para programação.
Fonte: JOYANES Aguilar, Luís. Fundamentos de programação: algoritmos, estruturas de dados e objetos - 3. ed. – Porto Alegre : AMGH, 2011.
De acordo com as informações apresentadas na tabela a seguir, faça a associação do comando em Linguagem C com seus respectivos comando em Algoritmo.
	Linguagem C
	Algoritmo
	I. if
	1. escreva
	II. printf
	2. real
	III. scanf
	3. se
	IV. float
	4. leia
Assinale a alternativa que apresenta a associação correta. I-3 II-1 III-4 IV-2 
Alternativas:
a) I -3; II - 1; III - 4; IV - 2;
b) I -3; II - 4; III - 1; IV - 2;
c) I -2; II - 1; III - 4; IV - 3;
d) I -2; II - 3; III - 4; IV - 1;
e) I -1; II - 2; III - 3; IV - 4;
4) A função scanf() é um comando de entrada, isto é, são informações que possibilitam a entrada de dados pelo teclado, assim, a informação será armazenada em um determinado espaço da memória, como o nome e tipo específico da variável.
Para construir um programa em linguagem C, que realize a soma entre dois números e exiba o resultado é necessário seguir os seguintes passos:
1. printf("Digite o primeiro nº:");
scanf("%d",&n1);
printf("Digite o segundo nº:");
scanf("%d",&n2);
2. printf("%d",r);
3. int n1,n2,r;
4. r = n1 + n2;
Assinale a alternativa que apresenta a ordem correta dos passos realizados:
Alternativas:
 a) 1 - 3 - 4 - 2.
 b) 3 - 2 - 4 - 1.
 c) 3 - 1 - 4 - 2.
 d) 1 - 2 - 4 - 3.
 e)2 - 1 - 3 - 4.
5) Para atribuir um valor a uma variável em linguagem de programação C utilizamos o sinal de igual “=”, e utilizando algoritmos usamos o símbolo (?). Para desenvolver um algoritmo que realize o calculo da média aritmética entre dois números é necessário seguir os seguintes passos:
1. 	
escreva("Digite o primeiro valor:");
leia(valor1);
escreva("Digite o segundo valor:");
leia(valor2);
2. 	escreval(media);
3. 	var
real: valor1, valor2, media;
4. 	media ? (valor1 + valor2) / 2; 
Assinale a alternativa que apresenta a ordem correta dos passos realizados:
Alternativas: 3-1-2-4
 a) 1 - 3 - 2 - 4.
 b) 3 - 4 - 1 - 2.
 c) 1 - 3 - 4 - 2.
 d) 3 - 1 - 4 - 2.
 e) 2 - 1 - 4 - 3.
Aap1 - Algoritmos e Técnicas de Programação
Adg1 - Algoritmos e Técnicas de Programação
	
1) Um algoritmo é uma sequência finita de passos que podem levar à criação e execução de uma determinada tarefa com a intenção de resolver uma problemática segundo Forbellone e Eberspächer (2005). Um algoritmo pode ser desenvolvido de várias maneiras. Quais são os três tipos mais utilizados para desenvolver um algoritmo?
Alternativas:
a) Linguagem natural, diagrama de blocos (fluxograma) e pseudocódigo. Alternativa assinalada
 b) Linguagem natural, diagrama de blocos (fluxograma) e linguagem binária.
 c) Linguagem binária, diagrama de blocos (fluxograma) e pseudocódigo.
 d) Linguagem binária, diagrama condicional e pseudocódigo.
 e) Linguagem binária, diagrama condicional e código grama.
2) Um algoritmo é uma sequência finita de passos que podem levar à criação e execução de uma determinada tarefa com a intenção de resolver uma problemática, segundo Forbellone e Eberspächer. Podemos perceber que não existe somente uma forma para desenvolver um algoritmo, você pode criar outras formas e sequências para obter o mesmo resultado, ou seja, eles são independentes, porém, com a mesma finalidade de execução. Assinale a alternativa correta que apresenta as três partes básicas de um algoritmo:
Alternativas:
 a) Interface, módulos e saídas;
 b) Analise, compilação e processamentos.
 c) Sistemas, fluxogramas e saída de dados.
 d) Linguagens, blocos e estruturas de dados.
 e) Entrada de dados, processamento e saída de dados; Alternativa assinalada.
3) Sabemos que um algoritmo é uma sequência logica de procedimentos para conseguir chegar a um resultado desejado. Existem diversos tipos de algoritmos, dentre eles, podemos citar: Linguagem natural, Diagramas de blocos (fluxograma) e os Pseudocódigos. Neste contexto, relacione corretamente as colunas a seguir.
Coluna -A 	Coluna -B
a - Linguagem natural 	1 - Um conjunto de símbolos gráficos, onde cada um desses símbolos representa ações especificas a serem executadas pelo computador.
b - Diagramas de blocos (fluxograma) 	2 - Considerado uma ferramenta que pode auxiliar a programação, ela pode ser escrita em palavras similares ao inglês ou português para facilitar a interpretação e desenvolvimento de um programa.
c - Pseudocódigos 	3 - Na definição geral é uma forma de comunicação entre as pessoas de diversas línguas, ela pode ser falada, escrita, gesticulada entre outras formas de comunicação, tem uma grande contribuição quando vamos desenvolver uma aplicação computacional, pois ela pode direcionar de forma simples e eficiente as descrições dos problemas e suas soluções.
Assinale a alternativa que apresenta a associação CORRETA:
Alternativas:
 a) a-3, b-1, c-2. Alternativa assinalada
 b) a-3, b-2, c-1.
 c) a-1, b-3, c-2.
 d) a-1, b-2, c-3.
 e) a-2, b-3, c-1.
4) Segundo (Tucker,2010) da mesma forma que entendemos as linguagens naturais, essas utilizadas por todos no dia a dia, a linguagem de programação é a comunicação de ideias entre o computador e as pessoas.
Fonte: TUCKER, Allen B. Linguagens de programação: princípios e paradigmas. Porto Alegre: AMGH, 2010.
Neste contexto, julgue as afirmações que se seguem.
e- Linguagem Assembly consiste em uma linguagem programação consideradas de baixo nível.
II- Java é linguagem orientada a objetos
II-PHP é uma linguagem de máquina.
É correto apenas o que se afirma em:
Alternativas:
 a) I.
 b)II.
 c) III.
 d) I e II. Alternativa assinalada
 e) II e III.
Aap2 – Algoritmos e Técnicas de Programação
	
1) Ao se criar uma variávelo programador pode optar por já atribuir um valor ou não, mesmo existindo essa opção é uma boa prática de programação sempre inicializar as variáveis para evitar que recebam dados que estejam na memória.
#include <stdbool.h>
void main(){
 int altura = 1.86;
 float salario = 7500;
 double qtd_atomos;
 bool confirma = false;
 char genero = 'M';
}
Assinale a alternativa que apresenta corretamente a descrição do erro existente no programa anterior.
Alternativas:
 a) A variável confirma deveria estar recebendo o valor false entre aspas: "false".
 b) A variável salario não pode ser iniciada com um valor inteiro.
 c) A variável altura não pode ser iniciada com um valor de ponto flutuante (Real). Alternativa assinalada
 d) A variável gênero deveria estar recebendo o valor "M" sem as aspas: M.
 e) O tipo double na declaração da variável qtd_atomos não é válido.
2) Para suprir parte da limitação dos valores que uma variável pode assumir pelo seu tipo, foram criados modificadores de tipos. Estes são comandos usados na declaração da variável que modificam sua capacidade padrão.
De acordo com as informações apresentadas na tabela a seguir, faça a associação dos comandos usados na declaração da variável mostrado na coluna - A com suas respectivas definição apresentadas na coluna-B.
Coluna -A 	Coluna -B
I. unsigned 	1. Que aumenta a capacidade padrão.
II. short 	2. Usado para especificar que a variável irá armazenar somente a porte positiva do número.
III. long 	3. Que reduz o espaço reservado pela memória .
Assinale a alternativa que apresenta a associação correta.
Alternativas:
 a) I - 2; II - 3; III - 1; Alternativa assinalada
 b) I - 3; II - 2; III - 1;
 c) I - 2; II - 1; III - 3;
 d) I - 3; II - 1; III - 2;
 e) I - 1; II - 2; III - 3;
3) Uma variável é uma informação que você pode usar dentro de um programa C . Esta informação está associada com um lugar específico da memória (isso é feito pelo compilador). O nome da variável e o endereço da memória onde a informação está armazenada estão associados. O nome e o endereço não mudam. Mas, o valor da informação pode mudar (o valor do que está dentro da caixa pode mudar, embora o tipo seja sempre o mesmo). Cada variável tem um tipo associado. Alguns tipos de variáveis que discutiremos incluem int, char e float. Fonte: Disponível em <http://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula.pdf>Acesso.27.Jun.2018.
Neste contexto, julgue as afirmações que se seguem.
I - O especificador de formato %d indica que será impresso uma variável do tipo double.
II - O especificador de formato %c indica que será impresso uma variável do tipo caractere.
III - O especificador de formato %f indica que será impresso uma variável do tipo real (float).
É correto apenas o que se afirma em:
Alternativas:
 a) I. Alternativa assinalada
 b) II.
 c) III.
 d) II e III.
 e) I e II.
4) Os operadores aritméticos são utilizados nos programas toda vez que há a necessidade de calcular algum valor. Segundo SOFFNER (2013) devemos respeitar a ordem de execução dos operadores aritméticos. Um resultado poderá sofrer alterações caso a ordem de execução dos operadores aritméticos não for respeitado, pelo programador, quando o programa é criado.
Fonte:SOFFNER, Renato. Algoritmos e programação em linguagem C. São Paulo: Saraiva, 2013.
Os operadores aritméticos possuem prioridades de execução diferentes a seguir são listados os operadores.
 1. Os parênteses.
2. A multiplicação, divisão e módulo.
3. A potenciação e radiciação.
4. A soma e subtração.
Assinale a alternativa que apresenta a ordem correta da execução dos operadores aritméticos:
Alternativas:
 a) 3 – 1 – 4 – 2.
 b) 1 – 3 – 2 – 4. Alternativa assinalada
 c) 1 – 4 – 3 – 2.
 d) 1 – 2 – 3 – 4.
 e) 4 – 3 – 2 – 1.
Adg2 - Algoritmos e Técnicas de Programação
	
1) Para se usar uma variável em uma linguagem de programação é preciso criá-la e para isso usa-se a seguinte sintaxe: <tipo> <nome_da_variavel>;
Com relação à criação de variáveis na linguagem C, complete as lacunas da sentença a seguir:
#include <stdbool.h>
void main(){
 ____ idade = 23;
 ____ salario = 750.50; 
 ____ confirma = false;
 ____ genero = 'M';
}
Assinale a alternativa que completa as lacunas corretamente:
Alternativas:
 a) float / float / char / bool.
 b) int / int / bool / char.
 c) float / int / char / bool.
 d) int / float / bool / char. Alternativa assinalada.
 e) bool / float / char / bool.
2) Independente da linguagem de programação que se esteja usando, os dados serão armazenados em variáveis e para cada tipo de dado será especificado um tipo de variável e consequentemente, um determinado espaço físico será reservado na memória de trabalho. Um desses tipos de variáveis é utilizado para armazenar valores pertencentes ao conjunto dos números reais, ou seja, valores com casas decimais. São exemplos de variáveis desse grupo as que armazenam peso, altura, dinheiro, etc.
Assinale a alternativa que apresenta corretamente estas características de variáveis desse grupo.
Alternativas:
 a) Numérico inteiro.
 b) Numérico de ponto flutuante. Alternativa assinalada
 c) Caractere.
 d) Booleano.
 e) Constantes.
3) Uma variável é uma posição na memória onde um valor pode ser armazenado para ser utilizado por um programa. Com relação aos tipos primitivos de variáveis, complete as lacunas da sentença a seguir:
Variáveis do tipo __________ só podem armazenar um de dois valores: ________ ou ________. Costuma ser usado para validações, por exemplo, para verificar se o usuário digitou um certo valor, ou se ele selecionou uma determinada opção em uma lista, etc.
Assinale a alternativa que completa as lacunas corretamente:
Alternativas:
 a) Inteiro / negativos / positivos.
 b) Real / negativos / positivos.
 c) Booleano / verdadeiro / falso. Alternativa assinalada
 d) Constante / verdadeiro / falso.
 e) Caractere / Letras / Números.
4) Mizrahi (2008) afirma que devemos utilizar uma diretiva: #include toda vez que for necessário utilizar uma função de uma biblioteca da linguagem C. Utilizar uma função pronta acelera o trabalho do programador, basta importar a biblioteca para dentro do programa e podemos utilizar o conjuntos de funções prontas desta biblioteca.
Fonte: MIZRAHI, V. V. Treinamento em linguagem C. 2ª ed. São Paulo. Pearson Prentice Hall, 2008.
Tomando como referência o conceito apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas:
( v ) Para poder realizar a leitura de um dado digitado devemos utilizar a função scanf ( ).
( v ) A função printf ( ) imprime na tela o valor das variáveis e as mensagens para o usuário.
( v ) Para calcular a raiz quadrada é utilizado a função sqrt ( ).
( f ) A função free ( ) serve para encerrar o programa, deixando livre os valores das variáveis.
( f ) Para comparar duas strings e verificar se são iguais, devemos utilizar a função strcpy ( ).
Assinale a alternativa que apresenta a sequência correta.
Alternativas:
 a) V – F – F – V – V.
 b) F – V – V – F – V.
 c) V – V – F – V – F.
 d) V – V – V – F – F. Alternativa assinalada
 e) F – F – V – V – V.
Aap3 – Algoritmos e Técnicas de Programação
1) Em lógica de programação, usa-se condições para tomar decisões no decorrer da execução de um programa. Através de estruturas condicionais é possível alterar todo o fluxo de processamento. Nesse contexto, responda:
Num determinado Estado, para transferências de veículos, o DETRAN cobra uma taxa de 1% para carros fabricados antes de 2000 e uma taxa de 1,5% para os fabricados de 2000 em diante, taxa esta que incide sobre o valor de tabela do carro. Assinale a alternativa que apresenta o algoritmo capaz de ler o ano e o preço do carro, além de calcular e imprimir o imposto a ser pago.
Alternativas:
a) Algoritmo "ExemploCalculoDetran"
Var
AnoVeiculo : inteiro
ValorVeiculo, TaxaVeiculo : inteiro
Inicio
Escreva("Informe o ano do veículo: ")
leia(AnoVeiculo)
Escreva("Informe o valor do veículo: ")
leia(ValorVeiculo)SE (AnoVeiculo > 2000) ENTAO
TaxaVeiculo <- ValorVeiculo * 0.01
SENAO
TaxaVeiculo <- ValorVeiculo * 0.015
FIMSE
Escreval("A taxa para transferência: ", TaxaVeiculo)
Fimalgoritmo
b) Algoritmo "ExemploCalculoDetran"
Int
AnoVeiculo : real
ValorVeiculo, TaxaVeiculo : real
Inicio
Escreva("Informe o ano do veículo: ")
imprime(AnoVeiculo)
Escreva("Informe o valor do veículo: ")
imprime(ValorVeiculo)
SE (AnoVeiculo < 2000) ENTAO
TaxaVeiculo <- ValorVeiculo * 0.01
SENAO
TaxaVeiculo <- ValorVeiculo * 0.015
FIMSE
Escreval("A taxa para transferência: ", TaxaVeiculo)
Fimalgoritmo
c) Algoritmo "ExemploCalculoDetran"
Var
AnoVeiculo : inteiro
ValorVeiculo, TaxaVeiculo : real
Inicio
Escreva("Informe o ano do veículo: ")
leia(AnoVeiculo)
Escreva("Informe o valor do veículo: ")
leia(ValorVeiculo)
SE (AnoVeiculo < 2000) ENTAO
TaxaVeiculo <- ValorVeiculo * 0.01
SENAO
TaxaVeiculo <- ValorVeiculo * 0.015
FIMSE
Escreval("A taxa para transferência: ", TaxaVeiculo)
Fimalgoritmo
Alternativa assinalada
d) Algoritmo "ExemploCalculoDetran"
Var
AnoVeiculo : inteiro
ValorVeiculo, TaxaVeiculo : real
Inicio
Escreva("Informe o ano do veículo: ")
imprime(AnoVeiculo)
Escreva("Informe o valor do veículo: ")
imprime(ValorVeiculo)
SE (AnoVeiculo > 2000) ENTAO
TaxaVeiculo <- ValorVeiculo * 0.01
SENAO
TaxaVeiculo <- ValorVeiculo * 0.015
FIMSE
Leial("A taxa para transferência: ", TaxaVeiculo)
Fimalgoritmo
e) Algoritmo "ExemploCalculoDetran"
Var
AnoVeiculo : inteiro
ValorVeiculo, TaxaVeiculo : real
SE
Escreva("Informe o ano do veículo: ")
leia(AnoVeiculo)
Escreva("Informe o valor do veículo: ")
leia(ValorVeiculo)
SENAO (AnoVeiculo < 2000) ENTAO
TaxaVeiculo <- ValorVeiculo * 0.01
SE
TaxaVeiculo <- ValorVeiculo * 0.015
FIMSE
Escreval("A taxa para transferência: ", TaxaVeiculo)
Fimalgoritmo
2) Segundo Schildt (1997), a estrutura condicional de seleção de casos, “switch-case”, “testa sucessivamente o valor de uma expressão contra uma lista de constantes inteiras ou de caractere”. Quando os valores são avaliados o comando é executado. É preciso estar atento para algumas particularidades para o comando switch / case: caso nenhum dos valores seja encontrado, o comando default será executado e os comandos são executados até o ponto que o comando break for localizado. Na figura a seguir, o fluxograma representa a estrutura condicional de seleção de casos:
Figura 5 - Fluxograma de estrutura condicional de seleção de casos
Fonte: do autor.
Assinale a alternativa que contém a sintaxe em C que representa o fluxograma da figura anterior.
Alternativas:
a) case (variável)
{
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
b) switch (variável)
{
case constante1:
>comandos<
break;
switch (variável)
case constante2:
<comandos>
break;
default: <comandos>
}
c) {
switch (variável)
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
d) switch (variável)
{
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
Alternativa assinalada
e){switch (variável)
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>}
3) Existem casos em que é necessário estabelecer verificação de condições sucessivas, em que uma determinada ação poderá ser executada se um conjunto anterior de instruções ou condições for satisfeito. Sendo a ação executada, ela poderá ainda estabelecer novas condições. Isto significa utilizar uma condição dentro de outra condição. Fonte:Disponível em<http://estruturacondicional.blogspot.com/2008/07/estrutura-condicional-encadeada.html>Acesso.11.Jul.2018 (Modificado). Este tipo de estrutura poderá possuir diversos níveis de condição, sendo chamadas de:
Alternativas:
a) alinhamentos.
b) aninhamentos ou encadernamentos.
c) encadernamentos.
d) alinhamentos ou encadernamentos.
e) aninhamentos ou encadeamentos. Alternativa assinalada
4) A estrutura de repetição do-while parte do princípio de que deve-se fazer algo primeiro e só depois comparar uma variável para saber se o loop será executado mais uma vez. O uso desse comando deve proceder da seguinte maneira: DO {bloco de instruções} WHILE (comparação); Fonte:Disponível em< http://www.tiexpert.net/programacao/c/do-while.php> Acesso.16.Jul201. (Adaptado) Nesse contexto, organize os procedimentos a seguir  para o correto uso da estrutura de repetição do while.
1) Escrever tudo que o do deve fazer no bloco de instruções.
2) Neste caso, colocar ponto-e-vírgula após a comparação do while.
3) No final do bloco colocar o while.
4) Usar do.
5) A comparação deve ser colocada entre parênteses.
Assinale a alternativa que contém a sequência correta:
Alternativas:
a) 1-3-5-2-4.
b) 3-4-5-1-2.
c) 5-2-4-1-3.
d) 4-1-3-5-2. Alternativa assinalada
e) 2-3-4-5-1.
Aap3 – Algoritmos e Técnicas de Programação
1) A estrutura condicional possibilita a escolha de um grupo de ações e estruturas a serem executadas quando determinadas condições são ou não satisfeitas. A estrutura condicional pode ser simples ou composta. Nesse contexto, analise as asserções a seguir e marque (V) verdadeiro ou (F) falso:
( ) A estrutura condicional simples executa um comando ou vários comandos se a condição for verdadeira.
( ) Se a condição for falsa, a estrutura condicional simples é finalizada após executar todos os comandos.
( ) O comando que define a estrutura condicional simples é representado pela palavra SE.
( ) A estrutura condicional composta segue o mesmo princípio da estrutura condicional simples, com a diferença de que quando a condição não é satisfeita, o mesmo comando é executado até a condição ser satisfeita.
( ) O comando que define a estrutura é representado pelas palavras SE e SENÃO.
Assinale a alternativa que contém a sequência correta:
Alternativas:
 a) V-V-F-F-V.
 b) F-F-V-V-F.
 c) V-F-F-F-V.
 d) F-V-F-V-F.
 e) V-F-V-F-V. Alternativa assinalada
2) Em lógica de programação, usa-se condições para tomar decisões no decorrer da execução de um programa. Através de estruturas condicionais é possível alterar todo o fluxo de processamento. Um exemplo simples de estrutura de decisão é uma conta corrente de um banco. Fonte: Disponível em<Adaptado de http://profanderson.blog.etecarmine.com.br/estrutura-condicional-se-senao/>Acesso.11.Jul.2018. Neste contexto, complete corretamente as lacunas da asserção a seguir:
Entende-se que ____________ realizar saques na conta se houver saldo disponível, caso contrário, o saque será negado. Esta decisão, basicamente, é ____________, ou seja, ____________, a condição será verdadeira e _____________, senão, a condição falsa ____________.
Assinale a alternativa que completa corretamente as lacunas:
Alternativas:
 a) somente será possível / um verdadeiro ou falso / se houver saldo / o saque será permitido / negará o saque. Alternativa assinalada
b) sempre será possível / falsa / se houver saldo / o saque será permitido / negará o saque.
c) somente será possível / verdadeira / se não houver saldo / o saque será permitido / negará o saque.
d) sempre será possível / um verdadeiro ou falso / sem saldo / o saque será bloqueado / permitirá o saque.
e) somente será possível / um verdadeiro ou falso / sem saldo / o saque será bloqueado / negará o saque.
3) Segundo Schildt (1997), a estrutura condicional de seleção de casos, “switch-case”, “testa sucessivamente o valor de uma expressão contra uma lista de constantes inteiras ou de caractere”. Quando os valores são avaliados o comando é executado. 
É preciso estar atento para algumas particularidades para o comando switch / case:
Alternativas:
 a) caso algum dos valores seja encontrado, o comando default será executado e os comandos são executados até o ponto que o comando break for localizado.
b) caso nenhum dos valores seja encontrado, o comando default será executado e os comandos são executados até o ponto que o comando break for localizado. Alternativa assinalada
c) caso nenhum dos valores seja encontrado, o comando default será executado e os comandos são executados até o ponto queo comando break seja encerrado.
d) caso algum dos valores não seja encontrado, o comando default ficará em stand by e os comandos são executados até o ponto que o comando break seja encerrado.
e) caso nenhum dos valores seja encontrado, o comando default não será executado e os comandos aguardarão até o ponto que o comando break for localizado.
4) Segundo Manzano (2013), para a solução de um problema é possível utilizar a instruça~o “if” para tomada de decisão e também criar desvios dentro de um programa para uma condição verdadeira ou falsa. Seguindo essa premissa, as repetições com teste no início – while, para deixar claro, acontecem para que algo seja repetidamente executado enquanto uma condição verdadeira for verificada, somente após a sua negativa essa condição será interrompida. 
Sobre o comando while com teste no inicio é correto afirmar que:
Alternativas:
a) “não executara´ nenhuma repetição e ações que ali dentro estiverem programadas sem antes testar uma condição.” Alternativa assinalada
b) “não executara´ nenhuma condição e ações que ali dentro estiverem programadas sem antes testar uma repetição.”
c) “executara´ repetição e ações que ali dentro estiverem programadas, sem antes testar uma condição.”
d) “não executara´ condição e ações que ali dentro estiverem programadas, sem antes que o programador tecle enter.”
e) “executara´ inúmeras repetições e ações que ali dentro estiverem programadas antes de testar mais de uma condição.”
Aap4 – Algoritmos e Técnicas de Programação
1) De acordo com Mizrahi (2008) a linguagem C foi inventada e foi implementada no início dos anos 70 por Dennis Ritchie. A linguagem C é uma linguagem de alto nível, genérica. Foi desenvolvida por programadores para programadores tendo como meta características de flexibilidade e portabilidade. Utilizando funções podemos criar bibliotecas com funções previamente criadas para serem utilizadas quando houver necessidade, bastando inserir a diretiva #include e o nome da biblioteca. Um fato importante que a biblioteca não possui o comando main ( ), possui somente as funções.
Observe atentamente o programa que demonstra o uso de funções:
#include <stdio.h>
void imprimir1 ( )
{ int B;
 B = -100;
 printf(" %d ", B);
}
void imprimir2 ( )
{ int B;
 B = -200;
 printf (" %d", B);
}
int main()
{ int B;
 B = 10;
 printf(" %d", B);
 B = 20;
 imprimir1();
 printf(" %d", B);
 B = 30;
 imprimir2();
 printf(" - %d", B);
 return 1;
}
Assinale a alternativa correta que demonstra o que será impresso após o programa ser executado:
Alternativas:
 a) -100 20 -200 30 10
 b) 10 20 30 -100 -200
 c) 10 -200 30 -100 20
 d) 10 -100 20 -200 30 Alternativa assinalada
 e) 30 -200 20 -100 10
2) É comum utilizarmos ponteiros com funções. Um caso importante de ponteiros com funções é na alocação de memória dinâmica. A função malloc ( ) pertencente a biblioteca <stdlib.h> é usada para alocar memória dinamicamente. Entender o tipo de retorno dessa função é muito importante, principalmente para seu avanço, quando você começar a estudar estruturas de dados.
Observe atentamente o programa que demonstra o uso de funções:
#include<stdio.h>
#include<stdlib.h>
int* alocar(){
return malloc(200);
}
int main(){
int *memoria;
memoria = alocar();
if(memoria != NULL){
printf("Endereço de memória alocada = %x",memoria);
}
else{
printf("Memória não alocada");
}
return 0;
}
Conforme demonstrado no programa apresentado a função malloc ( ) irá reservar um espaço de memória dinamicamente, a função malloc ( ) pode retornar dois valores e são eles:
Alternativas:
a) null ou um ponteiro genérico (ponteiro genérico é do tipo void). Alternativa assinalada
 b) int ou um ponteiro genérico (ponteiro genérico é do tipo void)
 c) float ou um ponteiro genérico (ponteiro genérico é do tipo void)
 d) char ou numérico (int ou float)
 e) string ou null
3) As funções são utilizadas nos programas para acelerar o processo de programação. Muitas vezes precisamos fazer o mesmo tipo de programa que tem a seguinte opção: “leia um vetor de N números”. Para essa atividade, podemos criar uma função que gera automaticamente o vetor, utilizando a função rand (). A função rand () gera números aleatórios e basta então inserir esses números em um vetor. Suponha que seja necessário ordenar o vetor. As linguagens de programação já possuem métodos de ordenação, os mais populares métodos de ordenação são: Insertion Sort, Selection Sort, Bubble Sort, Comb Sort, Quick Sort, Merge Sort, Heap Sort e Shell Sort.
Observe atentamente o programa que demonstra o uso das funções para gerar o vetor e para ordenar o vetor com o método Bubble Sort:
#include<stdio.h>
#include <stdlib.h>
int r[10];
void gerarRandomico(){
int a;
for(a = 0; a < 10; ++a) {
r[a] = rand()%100;
}}
void ordena(){
 int i, j, aux;
for( i=0; i<10; i++ ){
 for( j=i+1; j<10; j++ ){
 if( r[i] > r[j] ){
 aux = r[i];
 r[i] = r[j];
 r[j] = aux;
 }}}}
int main(){
int i;
gerarRandomico();
ordena();
for ( i = 0; i < 10; i++ ) {
printf("\n Vetor[%d] = %d", i, r[i]);}
return 0; }
Tomando como referência o contexto apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas .
( ) Uma função criada para retornar um valor char, o comando return somente poderá retornar o valor char.
( ) Uma função pode ser chamada quantas vezes forem necessárias para realizar uma tarefa, a única exceção é de que não podemos fazer essa chamada dentro de uma estrutura de repetição for ( ), somente poderá ser utilizado o comando while ( ).
( ) No programa apresentado, existem duas funções que não utilizam o return porque elas são do tipo void.
( ) A variável que foi utilizada no comando for ( i = 0; i < 10; i++ ) foi declarada como tipo int e deveria ser float pois, quando usamos vetores os números podem ser maiores.
( ) No programa apresentado foi utilizado duas funções pois, cada função tem um objetivo específico, devemos evitar misturar as funcionalidades das funções.
Assinale a alternativa que apresenta a sequência correta:
Alternativas:
 a) V – V – V – V – V.
 b) F – V – V – F – V.
 c) F – F – V– F – V.
 d) V – F – V – F – V. Alternativa assinalada
 e) F – F – F – F – F.
4) O escopo é dividido em duas categorias, local ou global. Quando se tem variáveis que ambas são locais, elas existem e são notadas somente dentro do corpo da função onde foram definidas. Para definir uma variável global é preciso criá-la fora da função, assim ela será visível por todas as funções do programa. Fonte: SCHEFFER, V.C. Escopo e passagem de parâmetros.
Nesse contexto, analise as asserções a seguir:
I - A utilização de variáveis globais permite dimensionar o uso da memória.
II - As funções e procedimento tem pouca relevância em programação.
III - As variáveis locais são criadas e mantidas na memória ao fim da função
IV - As variáveis globais permanecem na memória durante todo o tempo de execução.
É correto apenas o que se afirma em:
Alternativas:
 a) I e II.
 b) III e IV.
 c) II e III.
 d) I e IV. Alternativa assinalada
 e) I, II, III e IV.
AV2 – Algoritmos e Técnicas de Programação
1) O laço do-while executa, pelo menos uma vez, o que está dentro dele e só ao final da execução é que ele faz o teste. Ou seja, tem-se a garantia que o laço vai ser executado uma vez, sem precisar inicializar variável ou pedir dados ao usuário antes do while. Um dos usos da estrutura do-while é em menus, nos quais você quer garantir que o valor digitado pelo usuário seja válido. Analise o programa a seguir:
Disponível em <http://mtm.ufsc.br/~azeredo/cursoC/aulas/c450.html> Acesso.13.jul.2018.
Considerando o contexto, avalie as afirmativas a seguir:
I. O usuário deverá digitar os números de 1 a 3 como entrada para ter como resultado a fruta de acordo com o número escolhido.
II. Ao digitar o número 0 mostrará o menu com as opções de frutas e o comando para escolher uma fruta pelo número.
III. Ao digitar o número 2, será exibida comoresultado a fruta abacaxi.
Considerando o contexto apresentado, assinale a alternativa correta.
Alternativas:
 a) Apenas a afirmativa II está correta.
 b) Apenas a afirmativa III está correta. 
 c) Apenas as afirmativas I e III estão corretas.
 d) Apenas as afirmativas I e II estão corretas.
 e) As afirmativas I, II e III estão corretas.
2) A diferença entre o comando while e o do…while é justamente o local onde a condição que controla o laço é testada. No comando while a condição é testada antes do bloco de instruções, e caso a condição seja falsa a repetição não será executada. No do…while o bloco de comandos é executado pelo menos uma vez de forma obrigatória, independente do resultado da expressão lógica. Analise o código a seguir.
Disponível em: <http://linguagemc.com.br/comando-do-while/> Acesso em: 22 out. 2018.
#include <stdio.h>
#include <stdlib.h>
main()
{
int cont=0; 
valor inicial de "0"
while (cont < 5)
printf("Teste \n");
cont++; 
}
system("PAUSE");
return 0;
}
De acordo com o contexto apresentado, avalie as afirmativas a seguir:
I. Um contador é utilizado para controlar as repetições, quando são determinadas. Por exemplo, o código será executado enquanto a cont for menor que 5.
II. O cont ++ é o incremento para que o número do contador seja aumentado ou diminuído.
III. Ao atingir o valor 5, é considerada uma condição de parada do while.
Considerando o contexto apresentado, assinale a alternativa correta.
Alternativas:
 a) Apenas as afirmativas I e II estão corretas.
 b) Apenas as afirmativas I e III estão corretas.
 c) Apenas a afirmativa I está correta.
 d) Apenas a afirmativa II está correta.
 e) As afirmativas I, II e III estão corretas.
3) O laço “for”, que em português significa “para”, segundo Mizrahi (2008), é geralmente usado para repetir uma informação por um número fixo de vezes, isto é, podemos determinar quantas vezes acontecerá a repetição. Análise o trecho do código a seguir.
for(x=5, y = 0; x>=0, y <= 5; x --, y++)
Considerando o contexto, avalie as afirmativas a seguir:
I. No primeiro valor x tem o valor iniciado em "5" e y iniciado em "0".
II. Na segunda expressão, o laço se repetirá apenas enquanto x for maior ou igual a 0 e enquanto y for menor ou igual a 5.
III. Ao final da execução dos comandos do laço de repetição, x será decrementado em 1 e x incrementado em 1.
Considerando o contexto apresentado, assinale a alternativa correta.
Alternativas:
 a) Apenas a afirmativa I está correta.
 b) Apenas a afirmativa II está correta.
 c) Apenas a afirmativa III está correta.
 d) Apenas as afirmativas I e II estão corretas.
 e) As afirmativas I, II e III estão corretas.
4) O código a seguir realiza o cálculo do fatorial de um número. No código é utilizada a estrutura while, com o while, uma instrução será repetidamente executado enquanto uma condição verdadeira for verificada, somente após a sua negativa essa condição será interrompida. Analise o código a seguir.
#include <stdio.h>
int main()
{
 int num;
 long long fatorial;
 printf("entrar com um número inteiro: ");
 scanf("%d",&num);
 fatorial = 1;
 while (number > 0)
 {
 fatorial *= num;
 --num;
 }
 printf("Fatorial= %lld", fatorial);
 return 0;
}
Considerando o contexto, avalie as afirmativas a seguir:
I. O fatorial de um número será calculado sempre que receber como entrada um valor maior que "0".
II. Nesse exemplo o loop (while) será finalizado se for menor ou igual a zero.
III. A opção --num realiza o decremento após calcular o valor do fatorial do número (num) e sempre que o comando while for maior que 0.
Considerando o contexto apresentado, assinale a alternativa correta.
e) As afirmativas I, II e III estão corretas.
5) Para fazer o preenchimento de uma matriz, devemos percorrer todos os seus elementos e atribuir-lhes um valor. Isto pode ser feito tanto gerando valores para cada elemento da matriz, como recebendo os valores pelo teclado. Um método interessante para percorrer uma matriz é usar duas estruturas de repetição for e duas variáveis inteiras, uma para a linha e a outra para a coluna.
Suponha que deseja-se implementar uma matriz do tipo inteiro. Para percorrer a matriz recebendo seus valores, podemos implementar conforme o trecho de código a seguir.
for ( i=0; i<3; i++ )
 for ( j=0; j<3; j++ )
 {
 scanf ("%d", &matriz[ i ][ j ]);
 }
Disponível em: <http://linguagemc.com.br/matriz-em-c/> Acesso em: 22 out. 2018.
Considerando o contexto apresentado, avalie as afirmativas a seguir:
I. A variável i representa a linha e j a coluna da matriz. Logo o primeiro for é utilizado para preencher as 3 linhas da matriz o qual é incrementado de 1.
II. A variável inicia de j = 0 e irá incrementar até j = 2 totalizando 2 colunas da matriz.
III. A utilização do for deveria ser de ( i=0; i<=3; i++ ), para que seja preenchida a matriz com 3 linhas.
Considerando o contexto apresentado, assinale a alternativa correta.
Alternativas:
a) Apenas a afirmativa I está correta.
Adg4 – Algoritmos e Técnicas de Programação

Continue navegando