Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Programação Estruturada: Algoritmos para Dev Questão 1 Correta Deitel e Deitel (2011) afirma que as comparações entre valores faz parte do processamento de um programa e, a partir do resultado realizar novas ações. Na programação, para compararmos valores usamos operadores relacionais os operadores usados nas linguagens de programação. Para cálculos podemos utilizar os operadores matemáticos, com poucas adaptações. Assinale a alternativa que apresenta o valor que a variável result receberá considerando o seguinte comando result = (a * b + (c - b) / (a-c)+ (c/b) - b) e, os seguintes valores a= 8 ,b= 3,c= 10. Sua resposta Correta O valor em result será 21. Questão 2 Correta Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Veja um exemplo de comando para declaração de variáveis na linguagem C: int idade[3]; float altura[3] = {1,1.5,1.7} Assinale a alternativa que apresenta corretamente a função do comando exemplificado anterior. Sua resposta Correta Declaração de variáveis compostas do tipo vetor. Questão 3 Correta Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos. Analise o programa a seguir. #include<stdio.h> int main() { int vetor[19],i; for (i = 0; i <= 19; i++) { vetor[i] = 1; } for (i = 0; i <= 19; i++) { printf ("vetor[%d] = %d \n", i, vetor[i]); } return 0; } Considerando o programa apresentado, julgue as afirmações a seguir. I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória”. É correto apenas o que se afirma em: Sua resposta Correta I, II, III e IV. Questão 4 Correta No contexto da programação de computadores, um paradigma é uma forma ou um estilo de se programar. Segundo Tucker (2010), um paradigma de programação está relacionado a um padrão de soluções de problemas, onde por sua vez estão relacionados a uma determinada linguagem de programação. Considerando o contexto, avalie as afirmativas a seguir: I - A Programação Imperativa é considerada o paradigma mais antigo, a programação imperativa pode armazenar o programa e suas variáveis, as atribuições, as sequências, os laços e os comandos condicionais. II - A Programação Orientada a Objeto é considerado uma coleção de objetos onde se inter- relacionam, facilitando assim a programação. III - A Programação Funcional são caraterizadas por possuírem atuação matemática, cada uma com um espaço de entrada (domínio) e resultado (faixa). IV- A Programação Lógica é considerada uma programação declarativa, onde um programa pode modelar uma situação problema declarando qual resultado o programa deve obter, em vez de como ele deve ser obtido. Agora, assinale a alternativa correta. Revisar Questão Sua resposta Correta As afirmativas I, II, III e IV estão corretas. Questão 5 Correta Analise o trecho de programa a seguir e responda: #include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; } printf ( “%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0; } Observe que dentro de um laço “for” para uma determinada condição, existe um comando forçando o término do laço. Que comando é esse? Sua resposta Correta break. Questão 1 Correta 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, usando o velho e conhecido laço while. 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. Vale lembra que do, em inglês e nesse contexto, do significa "faça" e while significa "enquanto". Fonte: Adaptado de cprogressivo.net. Esse laço do-while quer dizer: Sua resposta Correta "faça isso" -> código -> "enquanto essa condição for verdadeira, repita". Questão 2 Correta Diz-se que um número é triangular se ele é produto de três números naturais consecutivos (e.g.: 120 é triangular pois 120 = 4*5*6). Dado um natural n, determinar se n é triangular. O trecho de programa a seguir demonstra esse conceito: #include <stdio.h> #include <stdlib.h> int main () { int cont, num; printf("Entre com um número: "); scanf("%d", &num); for (cont=1; num < cont*(cont+1)*(cont+2); cont++); if (cont*(cont+1)*(cont+2) == num) printf("O numero %d e perfeito\n"); else printf("O numero %d nao e perfeito\n"); system("pause"); return 0; } Muitos dos problemas em computação podem ser reduzidos a uma forma de "busca", onde o computador gera todas as combinações possíveis até encontrar a solução desejada. De acordo com o programa criado, como foi gerada todas as soluções? Sua resposta Correta Basicamente, é preciso definir 3 coisas: início - qual o primeiro candidato a solução a ser testado?; fim - a partir de que valor não é mais necessário procurar a solução?; e incremento - como gerar a próxima solução a ser testada? Questão 3 Correta O comando do-while é uma estrutura de repetição que garante que o bloco de instruções seja executado no mínimo uma vez, já que a condição que controla o laço é testada apenas no final do comando. Ou seja, usando 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 trecho de programa a seguir e complete corretamente as lacunas: #include<stdio.h> int main(void) { ____________; int resp; ____________ { printf("Digite a primeira nota: "); scanf("%f",¬a1); printf("Digite a segunda nota: "); scanf("%f",¬a2); ____________; printf("Media do aluno = %f\n",media); printf("Digite 1 para continuar ou 2 para sair\n"); ____________; _____________; return 0; } Assinale a alternativa que completa corretamente as lacunas: Sua resposta Correta float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while (resp==1). Questão 4 Correta O laço for é uma estrutura de repetição muito utilizada nos programas em C. É muito útil quando se sabe de antemão quantas vezes a repetição deverá ser executada. Este laço utiliza uma variável para controlar a contagem do loop, bem como seu incremento. O trecho de programa a seguir exemplifica o comando: #include <stdio.h> #include <conio.h> int main(void) { int contador; for(contador = 1; contador <= 10; contador++) { printf("%d ", contador); } getch(); return(0); } Considerando o código apresentado, julgue as afirmações que se seguem I. Primeiramente o contador foi inicializado com um valor igual a 0. II. Depois foi testado se a condição que envolve o contador é verdadeira (contador <= 10). III. A cada nova repetição a variável do contador foi decrementada. É correto apenas o que se afirma em: Sua resposta Correta II. Questão 5 Correta Chama-se de estruturas de decisão encadeadas,quando uma estrutura de decisão está localizada dentro do lado falso da outra. Este tipo de estrutura também é conhecida como seleção “aninhada” ou seleção “encaixada”. Qualquer que seja o termo usado para identificar a estrutura, o importante é que esse formato com uma estrutura de seleção dentro da outra permite fazer a escolha de apenas um entre vários comandos possíveis. A figura 2 a seguir mostra uma tela após execução de uma estrutura de decisão encadeada: Figura 2 – tela após execução de uma estrutura de decisão encadeada Em linguagem C usa-se estruturas if-else-if encadeadas para construir códigos equivalentes. Analise o programa a seguir e complete as lacunas: #include <stdio.h> #include ____________ int main (void) { int N1, N2 ; printf("Digite o primeiro numero: "); _____________ printf("Digite o segundo numero: "); scanf("%d", &N2); _____________ printf("Os numeros são iguais!"); else if (N1 > N2) printf("O maior valor e = %d", N1); ____________ printf("O maior valor e = %d", N2); printf("\n"); system("pause"); ____________ }. Assinale a alternativa que completa corretamente as lacunas: Sua resposta Correta <stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0); Questão 1 Correta Conforme Forbellone e Eberspächer (2000), os operadores relacionais são utilizados para realizar comparações entre dois valores de um mesmo tipo. Esses valores podem ser representados por variáveis ou constantes. A uma comparação realizada utilizando um operador relacional dá-se o nome de relação. O resultado obtido de uma relação é sempre um valor lógico, ou seja, o valor será verdadeiro ou falso. Observe o trecho de um programa que demonstra o uso de dois if’s sequenciais ou encadeados. if (num>=0) if(num%2==0) printf(“O número é par e é positivo. \n”); Os operadores lógicos podem ser utilizados para otimizar os comandos de seleção, levando em consideração o trecho de programa apresentado, a alternativa que otimiza o comando if com a utilização de operadores lógicos é: Sua resposta Correta Revisar Questão if ((num>=0) && (num%2==0)) printf (“O número é positivo e é par. \n”); Questão 2 Correta Questão com problema? O laço for é uma estrutura de repetição muito utilizada nos programas em C. É muito útil quando se sabe de antemão quantas vezes a repetição deverá ser executada. Este laço utiliza uma variável para controlar a contagem do loop, bem como seu incremento. O trecho de programa a seguir exemplifica o comando: #include <stdio.h> #include <conio.h> int main(void) { int contador; for(contador = 1; contador <= 10; contador++) { printf("%d ", contador); } getch(); return(0); } Considerando o código apresentado, julgue as afirmações que se seguem I. Primeiramente o contador foi inicializado com um valor igual a 0. II. Depois foi testado se a condição que envolve o contador é verdadeira (contador <= 10). III. A cada nova repetição a variável do contador foi decrementada. É correto apenas o que se afirma em: Sua resposta Correta II. Questão 3 Correta Questão com problema? O comando while executa repetições com teste no início enquanto uma condição verdadeira for verificada. Somente após a sua negativa essa condição será interrompida. Analise a aplicação do comando while no trecho a seguir: #include <stdio.h> #include <stdlib.h> main() { int cont=0; while (cont < 20) { printf("PROVA \n"); cont++; } system("PAUSE"); return 0; } O trecho de programa do texto é um exemplo de aplicação do comando while para: Sua resposta Correta mostrar a palavra “PROVA” vinte vezes. Questão 4 Correta Questão com problema? 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, usando o velho e conhecido laço while. 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. Vale lembra que do, em inglês e nesse contexto, do significa "faça" e while significa "enquanto". Fonte: Adaptado de cprogressivo.net. Esse laço do-while quer dizer: Sua resposta Correta "faça isso" -> código -> "enquanto essa condição for verdadeira, repita". Questão 5 Incorreta Questão com problema? Segundo Soffner (2013 p. 64), o programa “não executará nenhuma repetição (e as ações que ali dentro estiverem programadas) sem antes testar uma condição”. Em alguns casos, quando se utiliza o teste no início, pode ocorrer o famoso loop (laço) infinito (quando um processo é executado repetidamente). Para que isso não aconteça, é possível utilizar os seguintes recursos: contador, incremento e decremento, acumulador e condição de parada. Baseado nestes recursos, julgue as afirmações que se seguem: I. Contador – é utilizado para contar as repetições quando não são determinadas. II. Incremento e decremento – trabalha o número do contador, seja ele, aumentado ou diminuído. III. Acumulador somará as entradas de dados de cada iteração da repetição, gerando um somatório a ser utilizado quando iniciar a repetição. IV. Condição de parada – utilizada para determinar o momento de parar quando não se tem um valor exato desta repetição. É correto apenas o que se afirma em: Sua resposta Incorreta I, II e III. Solução esperada II e IV. Questão 1 Correta Questão com problema? Linguagem de programação são métodos padronizados que determinam instruções para uma máquina ou computador. Segundo Tucker (2010), podemos dizer que a linguagem Assembly é uma forma mais viável de conseguir ler a linguagem de máquina, lembrando que a linguagem Assembly é voltada para máquina, ou seja, trabalha diretamente nas memórias e registros do computador, elas são executadas diretamente pelo processador. Com base nas afirmações sobre a linguagem de programação, avalie as seguintes asserções e a relação proposta entre elas: I. Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível. Os computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. PORQUE II. A linguagem de baixo nível está mais próxima à linguagem de máquina. Assim compreendem as características da arquitetura do computador. Por utilizar somente as instruções do processador é necessário conhecer os registradores da máquina. Uma linguagem de alto nível está muito mais próxima do programador do que do dispositivo, ou seja, é uma linguagem muito mais intuitiva. A respeito dessas asserções, assinale a alternativa correta. Sua resposta Correta As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. Questão 2 Correta Questão com problema? Pode-se otimizar o uso de variáveis usando as estruturas compostas (vetor e matriz), porém só se pode armazenar valores de um mesmo tipo. Além das estruturas homogêneas, as linguagens de programação oferecem um tipo de variável composta heterogênea chamada de estruturas (structs), ou ainda de registros por alguns autores (SOFFNER, 2013). Assim como se associa os vetores e matrizes com tabelas, pode-se associar uma estrutura a uma ficha de cadastro com diversos campos. Na linguagem C, a criação de uma estrutura deve ser feita antes da função main() e deve possuir a seguinte sintaxe: struct <nome>{ <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... }; De acordo com a sintaxe apresentada, julgue as afirmações que se seguem I. <nome> é o nome da variável. II. As variáveis internas dessa estrutura são os campos que se deseja guardar. III. Uma estrutura funciona como um“tipo de dado”.IV. O uso da estrutura sempre será atribuído à uma ou mais variáveis. É correto apenas o que se afirma em: Sua resposta Correta II, III e IV. Questão 3 Correta Questão com problema? Pseudocódigos é 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. Neste contexto, analise o seguinte algoritmo escrito em pseudocódigo. var real: v1, v2, v3, v4, N1, x; Início escreva (“Digite Nota 1:”); leia v1; escreva (“Digite Nota 2:”); leia v2; escreva (“Digite Nota 3:”); leia v3; escreva (“Digite Nota 4:”); leia v4; N1 ← v1 + v2 + v3 + v4; x ← N1 / 4; escreva(“Resultado = ”, x); Fim. Agora, assinale a alternativa correta. Sua resposta Correta Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em X e por fim é exibido. Questão 4 Correta Questão com problema? Segundo Manzano (2015), os algoritmos criados por você deverão ser convertidos em linguagens de alto nível, como por exemplo: a linguagem Java, Pascal, C, C++ entre outras conceituadas nesta seção. Você deverá escrever os códigos fontes na linguagem escolhida para que os mesmos se tornem executáveis, porém, cada linguagem adota um método particular para gerar o código executável. Considerando o contexto apresentado, faça a correta associação entre as Colunas. COLUNA A COLUNA B I. São gerados códigos intermediários, onde não exige tanto espaço de memórias quanto realizado pelo código fonte. Sua vantagem é ter independência da arquitetura que realizará a execução final, porém, necessita de um interpretador específico para sua geração. 1. Compiladores II. Lê uma instrução do código fonte, transforma em código binário e executa, repete esse processo até que todas as instruções do código fonte sejam executadas. O código é interpretado e executado em tempo real, sem a geração de código executável. 2. Interpretadores III. É gerado um código executável sem a necessidade de interpretar comando por comando. Sua vantagem é a execução mais rápida, porém, caso necessite de alterações, o código fonte deverá ser editado e executado em máquinas de mesma arquitetura. 3. Tradutores Assinale a alternativa que apresenta a associação correta. Sua resposta Correta I - 3; II - 2; III - 1. Questão 5 Correta Questão com problema? Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos. Analise o programa a seguir. #include<stdio.h> int main() { int vetor[19],i; for (i = 0; i <= 19; i++) { vetor[i] = 1; } for (i = 0; i <= 19; i++) { printf ("vetor[%d] = %d \n", i, vetor[i]); } return 0; } Considerando o programa apresentado, julgue as afirmações a seguir. I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória”. É correto apenas o que se afirma em: Sua resposta Correta I, II, III e IV. Questão 1 Respondida Segundo Mizrahi (2008) uma matriz de uma dimensão é conhecida como vetor. Da mesma maneira que as variáveis, os vetores podem ser inicializados, podemos inicializar utilizando as chaves, observe: int vetor [4] = { 1, 2, 3, 4}; outra forma poderá ser: vetor[0]= 1; vetor[0]= 2; vetor[0]= 3; vetor[0]= 4. Caso seja utilizado caracteres, podemos utilizar o \n como final do vetor, devemos inclusive acrescentar e contar o \n como um integrante do vetor. Analise o programa a seguir. #include <stdio.h> int main ( ) { char mensagem[17] = {'V','a','m','o','s',' ', 'P', 'r', 'o', 'g', 'r', 'a', 'm', 'a','r','!' ,'\n' }; int indice; for (indice=0 ; mensagem[indice] != '\n' ; indice++) printf("%c", mensagem[indice]); } Após execução do programa será impresso, Sua resposta Vamos Programar! A frase corretamente preenchida é: Vamos Programar! Observe que precisamos sempre deixar um valor reservado par o caractere '\0' que representa o final da string e poderemos utilizar o \n dentro da string. Questão 2 Respondida No contexto da programação de computadores, um paradigma é uma forma ou um estilo de se programar. Segundo Tucker (2010), um paradigma de programação está relacionado a um padrão de soluções de problemas, onde por sua vez estão relacionados a uma determinada linguagem de programação. Considerando o contexto, avalie as afirmativas a seguir: I - A Programação Imperativa é considerada o paradigma mais antigo, a programação imperativa pode armazenar o programa e suas variáveis, as atribuições, as sequências, os laços e os comandos condicionais. II - A Programação Orientada a Objeto é considerado uma coleção de objetos onde se inter-relacionam, facilitando assim a programação. III - A Programação Funcional são caraterizadas por possuírem atuação matemática, cada uma com um espaço de entrada (domínio) e resultado (faixa). IV- A Programação Lógica é considerada uma programação declarativa, onde um programa pode modelar uma situação problema declarando qual resultado o programa deve obter, em vez de como ele deve ser obtido. Agora, assinale a alternativa correta. Revisar Questão Sua resposta As afirmativas I, II, III e IV estão corretas. A frase corretamente preenchida é: As afirmativas I, II, III, IV e V estão corretas. O tipo caractere pode armazenar somente um único valor, qualquer caractere da tabela ASCII. O tipo inteiro não possui parte fracionária e pode ser positivo ou negativo, O tipo real pode possuir parte fracionária e pode ser positivo ou negativo, permitindo o uso de números inteiros. Os dados do tipo literal podem conter sequências de letras, dígitos ou símbolos especiais, ideais para textos. O tipo lógico possui somente dois valores possíveis: V (Verdadeiro) ou F (Falso) ou (True – False). Questão 3 Respondida O comando switch precisa que a variável a qual está guardado o valor e que será avaliada pelo case, fique entre parênteses. Após, é necessário a utilização das chaves para abrir o bloco de comandos cases. Após cada case, é obrigatório utilizar os dois pontos (:). Observe atentamente o programa que demonstra o comando switch: #include <stdio.h> int main ( ) { int num1, num2, result; float operador; printf("Digite o 1o valor: "); scanf("%d",&num1); printf("Digite o 2o valor: "); scanf("%d",&num2); printf("Escolha: 1- Somar"); printf("Escolha: 2- Subtração"); printf("Escolha: 3- Multiplicação"); scanf("%f",&operador); switch (operador){ case 1: result=num1+num2; printf("A Soma é: %d ",result); break; case 2: result=num1- num2; printf("A Subtração é: %d ",result); break; case 3: result=num1+num2; printf("O Produto é: %d ",result); break; default: printf("Escolha Errada"); } return 0; } Ao compilar o programa foi constato um erro que impediu o seu funcionamento. Assinale a alternativa correta que apontao erro do programa. Sua resposta O erro do programa é a variável operador que foi declarada como float, o comando switch precisa que a variável seja do tipo int ou char. A frase corretamente preenchida é: O erro do programa é a variável operador que foi declarada como float, o comando switch precisa que a variável seja inteira ou caractere. Não é permitido utilizar o float na estrutura de seleção switch. Os operadores precisam ser inteiros ou caracteres para não ocasionar dúvidas sobre a entrada no case. Questão 4 Respondida Segundo Soffner (2013 p. 64), o programa “não executará nenhuma repetição (e as ações que ali dentro estiverem programadas) sem antes testar uma condição”. Em alguns casos, quando se utiliza o teste no início, pode ocorrer o famoso loop (laço) infinito (quando um processo é executado repetidamente). Para que isso não aconteça, é possível utilizar os seguintes recursos: contador, incremento e decremento, acumulador e condição de parada. Baseado nestes recursos, julgue as afirmações que se seguem: I. Contador – é utilizado para contar as repetições quando não são determinadas. II. Incremento e decremento – trabalha o número do contador, seja ele, aumentado ou diminuído. III. Acumulador somará as entradas de dados de cada iteração da repetição, gerando um somatório a ser utilizado quando iniciar a repetição. IV. Condição de parada – utilizada para determinar o momento de parar quando não se tem um valor exato desta repetição. É correto apenas o que se afirma em: Sua resposta I, II e III. A resposta certa é a alternativa c). I - FALSA - Contador: é utilizado para CONTROLAR AS REPETIÇÕES QUANDO ESTA É DETERMINADA. II - VERDADEIRA - Incremento e decremento: trabalha o número do contador, seja ele, aumentado ou diminuído. III - FALSA - Acumulador: que segundo Soffner (2013), somará as entradas de dados de cada iteração da repetição, gerando um somatório a ser utilizado quando DA SAÍDA DA REPETIÇÃO. IV - VERDADEIRA - Condição de parada: utilizada para determinar o momento de parar quando não se tem um valor exato desta repetição. Questão 5 Respondida Observe o trecho de programa a seguir e julgue as afirmações que se seguem. #include <stdio.h> void main () { int num[5]; printf(“Entre com um numero\n”); scanf(“%d”, &num[0]); printf(“O valor digitado foi: %d”, num [0]*2); getchar(); } I. Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de armazenar diversos valores “ao mesmo tempo”. II. O vetor usa vários endereços na memória. III. Por armazenar diversos valores, também é chamado de variável aleatória, ou ainda, estrutura de matricial de valores. IV. A sintaxe para utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade de vetores alocados. É correto apenas o que se afirma em: Sua resposta I e IV. A resposta certa é a alternativa a). I - VERDADEIRA - Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de armazenar diversos valores “ao mesmo tempo”. II - FALSA - O vetor usa UM MESMO ENDEREÇO na memória. III - FALSA - Por armazenar diversos valores, também é chamado de VARIÁVEL COMPOSTA, ou ainda, estrutura de MATRICIAL DE DADOS. IV - FALSA - A sintaxe para utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade de colunas E DE LINHAS. Questão 6 Respondida Analise o trecho de programa a seguir e responda: #include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; } printf ( “%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0; } Observe que dentro de um laço “for” para uma determinada condição, existe um comando forçando o término do laço. Que comando é esse? Sua resposta break. A resposta certa é a alternativa b). Observe que dentro de um laço “for” para uma determinada condição, existe um comando forçando o término do laço. Esse comando chama-se break. Questão 7 Respondida As variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Podemos armazenar a idade de uma pessoa em uma variável do tipo int, a altura em um tipo float, e assim por diante, mas e se fosse necessário armazenar quinze medidas da temperatura de um dispositivo? A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar: Sua resposta variáveis compostas. CORRETO ao indicar variáveis compostas. Questão 8 Respondida Uma forma de estrutura seletiva é a estrutura de seleção switch. Dentro dos switch há o case. Este comando é muito parecido com o comando if com várias possibilidades, mas com algumas diferenças importantes. Na figura a seguir é apresentado o fluxograma da execução dos cases, de uma estrutura switch. Com base no contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas: I. No comando switch, os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação. Isso limita o case a utilizar apenas valores definidos. PORQUE II. O comando switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 3 comandos cases, o switch executará todos os outros 2 comandos cases a não ser que, for utilizado o comando para sair da estrutura switch e que é o break. Analise atentamente as asserções e assinale a alternativa correta. Sua resposta As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. CORRETO Questão 9 Respondida O comando while executa a repetição de um bloco de instruções enquanto uma condição é verdadeira. Analise o trecho de programa a seguir. #include <stdio.h> #include <conio.h> int main(void) { int contador = 1; while (contador <= 10) { printf("%d ", contador); contador++; } getch(); return 0; } Agora, julgue as afirmações que se seguem. I. A variável de controle denominada contador foi declarada e inicializada com o valor 1. O teste da condição while é realizado, e como o contador é menor ou igual 10, então a condição é verdadeira. II. Como a condição é verdadeira, o programa entra dentro do corpo do laço e executa o printf, exibindo o valor da variável contador. Após executar o comando printf, o contador é decrementado. III. Depois do decremento, a condição é testada novamente e enquanto for verdadeira, os comandos são executados até que a condição se torne falsa. IV. A condição falsa faz com que o laço seja encerrado. É correto apenas o que se afirma em: Sua resposta I e IV. A resposta certa é a alternativa d). I - VERDADEIRA - A variável de controle denominada contador foi declarada e inicializada com o valor 1. O teste da condição while é realizado, e como o contador é menor ou igual 10, então a condição é verdadeira. II - FALSA - Como a condição é verdadeira, o programa entra dentro do corpo do laço e executa o printf, exibindo o valor da variável contador. Após executar o comando printf, o contador é INCREMENTADO. III - FALSA - Depois do INCREMENTO, a condição é testada novamente e enquanto for verdadeira, os comandos são executados até que a condição se torne falsa. IV - VERDADEIRA - A condição falsa faz com que o laço seja encerrado. Questão 1 Correta Questão com problema? Pode-se otimizar o uso de variáveis usando as estruturas compostas (vetor e matriz), porém só se pode armazenar valores de um mesmo tipo. Além das estruturas homogêneas, as linguagens de programação oferecem um tipo de variável composta heterogênea chamada de estruturas (structs), ou ainda de registros por algunsautores (SOFFNER, 2013). Assim como se associa os vetores e matrizes com tabelas, pode-se associar uma estrutura a uma ficha de cadastro com diversos campos. Na linguagem C, a criação de uma estrutura deve ser feita antes da função main() e deve possuir a seguinte sintaxe: struct <nome>{ <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... }; De acordo com a sintaxe apresentada, julgue as afirmações que se seguem I. <nome> é o nome da variável. II. As variáveis internas dessa estrutura são os campos que se deseja guardar. III. Uma estrutura funciona como um “tipo de dado”.IV. O uso da estrutura sempre será atribuído à uma ou mais variáveis. É correto apenas o que se afirma em: Sua resposta Correta II, III e IV. Comentário Resposta correta : Apenas as afirmações II, III e IV estão corretas. I - FALSA - <nome> é o nome da ESTRUTURA. II - VERDADEIRA - As variáveis internas dessa estrutura são os campos que se deseja guardar. III - VERDADEIRA - Uma estrutura funciona como um “tipo de dado”.IV - VERDADEIRA - O uso da estrutura sempre será atribuído à uma ou mais variáveis. Questão 2 Incorreta Questão com problema? Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos. Analise o programa a seguir. #include<stdio.h> int main() { int vetor[19],i; for (i = 0; i <= 19; i++) { vetor[i] = 1; } for (i = 0; i <= 19; i++) { printf ("vetor[%d] = %d \n", i, vetor[i]); } return 0; } Considerando o programa apresentado, julgue as afirmações a seguir. I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória”. É correto apenas o que se afirma em: Sua resposta Incorreta II, III e IV. Solução esperada I, II, III e IV. Comentário A frase corretamente preenchida é: As afirmativas I, II, III e IV estão corretas. Todas as afirmativas estão corretas. Devemos sempre inicializar um vetor para evitar que ao executar o programa, um lixo de memória seja utilizado. Observe que há um problema no programa, no comando: for (i = 0; i <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i = 0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. (Correto) II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto) III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. (Correto) IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória” (Correto) Questão 3 Incorreta Questão com problema? No contexto da programação de computadores, um paradigma é uma forma ou um estilo de se programar. Segundo Tucker (2010), um paradigma de programação está relacionado a um padrão de soluções de problemas, onde por sua vez estão relacionados a uma determinada linguagem de programação. Considerando o contexto, avalie as afirmativas a seguir: I - A Programação Imperativa é considerada o paradigma mais antigo, a programação imperativa pode armazenar o programa e suas variáveis, as atribuições, as sequências, os laços e os comandos condicionais. II - A Programação Orientada a Objeto é considerado uma coleção de objetos onde se inter- relacionam, facilitando assim a programação. III - A Programação Funcional são caraterizadas por possuírem atuação matemática, cada uma com um espaço de entrada (domínio) e resultado (faixa). IV- A Programação Lógica é considerada uma programação declarativa, onde um programa pode modelar uma situação problema declarando qual resultado o programa deve obter, em vez de como ele deve ser obtido. Agora, assinale a alternativa correta. Revisar Questão Sua resposta Incorreta Apenas as afirmativas I, II e IV estão corretas. Solução esperada As afirmativas I, II, III e IV estão corretas. Questão 4 Correta Questão com problema? Salvetti e Barbosa (1998) afirmam que devemos utilizar os parênteses para ter certeza de que a ordem de precedência das operações seja realizada e os cálculos não sofrerem alterações nos seus valores. Considerando o contexto, avalie o programa a seguir: #include <stdio.h> int main( ) { float C, F; printf("Escreva a Temperatura em graus Celsius: "); scanf("%f", &C); F = ((9 * C) / 5) + 32; printf("Temperatura Fahrenheit = %.2f .\n", F); return 0; } Analisando o programa proposto, caso o valor da variável C receber o valor igual a 10, o comando printf irá imprimir: Sua resposta Correta Temperatura Fahrenheit = 50.00 . Comentário A frase corretamente preenchida é: Temperatura Fahrenheit = 50.00 . O uso dos parênteses garante com eficiência o resultado de uma expressão matemática. Neste caso a conversão da temperatura, primeiramente é executada a multiplicação, após a divisão e por último a soma. Questão 5 Incorreta Questão com problema? Os operadores aritméticos podem ser classificados em unário ou binário (MANZANO, 2015). Os binários são operadores que usam dois componentes e os operadores unários usam apenas um componente. É o caso dos operadores aritméticos de incremento (++) e decremento (--). Esses operadores acrescentam ou diminuem “um” ao valor de uma variável e podem ser usados de duas formas: Após a variável: x++ . Nesse caso, é adicionado um após a primeira execução. Após a variável: x-- .Nesse caso, é decrementado um após a primeira execução. Antes da variável: ++x. Nesse caso, é adicionado um antes da primeira execução. Antes da variável: --x.Nesse caso, é decrementado um antes da primeira execução. Baseado no conceito de operadores unários, complete as lacunas do quadro 2 a seguir: Operador Exemplo Descrição Resultado ++ x++ x + 1 ++ ++x x + 1 -- x-- x - 1 -- --x x - 1 Assinale a alternativa que contém a sequência correta: Sua resposta Incorreta Pós incremento / pré decremento / pós decremento / pré incremento. Solução esperada Pós incremento / pré incremento / pós decremento / pré decremento. Comentário A resposta certa é a alternativa c). Operador Descrição Exemplo Resultado ++ Pós incremento x++ x + 1 ++ Pré incremento ++x x + 1 -- Pós decremento x-- x - 1 -- Pré decremento --x x - 1 Questão 2 Correta Questão com problema? Mizrahi (2008) afirma que uma matriz de duas dimensões são inicializadas na mesma maneira que vetor. Precisamos sempre observar que todos os valores que serão armazenados na matriz sejam do mesmo tipo. Analise o programa a seguir: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. #include<stdio.h> int main( ) { int i, j, matriz[2][2] = {10,20,30,40}; for (i = 0; i <= 1; i++) { for (j = 0; j <=1; j++) { printf ("matriz[%d][%d] = %d\n", i,j, matriz[i][j]); } } return 0; } Após a execução do programa é será impresso em telaSua resposta Correta matriz [0][0] = 10 matriz [0][1] = 20 matriz [1][0] = 30 matriz [1][1] = 40 Comentário A frase corretamente preenchida é: matriz [0][0] = 10 matriz [0][1] = 20 matriz [1][0] = 30 matriz [1][1] = 40 Assim que o programa for compilado irá imprimir a posição da matriz e o valor que recebeu, após irá pular uma linha para imprimir o próximo valor de matriz e assim por diante. Questão 1 Correta Questão com problema? Na repetição com variáveis de controle, ou seja, usando o laço “for”, o comando iterativo “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 é, pode-se determinar quantas vezes acontecerá a repetição. Para facilitar ainda mais, veja a seguinte representação: for(x = 10,y = 0; x >= 0, y <= 10; x--,y++) De acordo com a representação, analise as asserções a seguir: I. x = 10,y = 0 – Neste trecho, “x” tem o seu valor encerrado em “10” e “y” encerrado em “0”. II. x >= 0, y <= 10 – Neste trecho, o laço se repetirá enquanto x for menor ou igual a zero e enquanto y for maior ou igual a “10”. III. x--,y++ - Ao final da execução dos comandos do laço de repetição, x será decrementado de 1 e y será incrementado de 1. É correto apenas o que se afirma em: Sua resposta Correta III. Questão 2 Incorreta Questão com problema? Analise a aplicação da estrutura de repetição condicional realizando um programa que simula uma conta bancária (tela de opções das transações), adaptado do livro do Soffner (2013). Ele escreve um programa que repete uma entrada de dados até que determinada condição de saída seja atingida e, em seguida, acumule os valores digitados. #include <stdio.h> #include <stdlib.h> main() { float s=0, v; int op; do { printf("\n Digite sua Operacao"); printf("\n 1. Deposito"); printf("\n 2. Saque"); printf("\n 3. Saldo"); printf("\n 4. Sair"); printf("\n Opcao? "); scanf("%d", &op); switch(op) { case 1: printf("\n Valor do deposito? "); scanf("%f", &v); s=s+v; break; case 2: printf("\n Valor do saque? "); scanf("%f", &v); s=s-v; break; case 3: printf("\n Saldo atual = R$ %.2f \n", s); break; default: if(op!=4) printf("\n Opcao Invalida! \n"); } } while (op!=4); printf("Fim das transacoes. \n\n"); system("pause"); return 0; } Foi utilizado o laço do-while para implementar o menu do programa, onde a função desejada é executada pelo menos uma vez dentro do laço, isto é: Sua resposta Incorreta foi comparada uma estrutura de repetição com uma de condição. Solução esperada foi aplicada uma estrutura de repetição usando comparativo. Questão 3 Incorreta Questão com problema? Uma forma de estrutura seletiva é a estrutura de seleção switch. Dentro dos switch há o case. Este comando é muito parecido com o comando if com várias possibilidades, mas com algumas diferenças importantes. Na figura a seguir é apresentado o fluxograma da execução dos cases, de uma estrutura switch. Com base no contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas: I. No comando switch, os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação. Isso limita o case a utilizar apenas valores definidos. PORQUE II. O comando switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 3 comandos cases, o switch executará todos os outros 2 comandos cases a não ser que, for utilizado o comando para sair da estrutura switch e que é o break. Analise atentamente as asserções e assinale a alternativa correta. Sua resposta Incorreta A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. Solução esperada As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. Questão 4 Correta Questão com problema? O comando switch precisa que a variável a qual está guardado o valor e que será avaliada pelo case, fique entre parênteses. Após, é necessário a utilização das chaves para abrir o bloco de comandos cases. Após cada case, é obrigatório utilizar os dois pontos (:). Observe atentamente o programa que demonstra o comando switch: #include <stdio.h> int main ( ) { int num1, num2, result; float operador; printf("Digite o 1o valor: "); scanf("%d",&num1); printf("Digite o 2o valor: "); scanf("%d",&num2); printf("Escolha: 1-Somar"); printf("Escolha: 2-Subtração"); printf("Escolha: 3- Multiplicação"); scanf("%f",&operador); switch (operador){ case 1: result=num1+num2; printf("A Soma é: %d ",result); break; case 2: result=num1-num2; printf("A Subtração é: %d ",result); break; case 3: result=num1+num2; printf("O Produto é: %d ",result); break; default: printf("Escolha Errada"); } return 0; } Ao compilar o programa foi constato um erro que impediu o seu funcionamento. Assinale a alternativa correta que aponta o erro do programa. Sua resposta Correta O erro do programa é a variável operador que foi declarada como float, o comando switch precisa que a variável seja do tipo int ou char. Questão 5 Correta Questão com problema? Conforme Forbellone e Eberspächer (2000), os operadores relacionais são utilizados para realizar comparações entre dois valores de um mesmo tipo. Esses valores podem ser representados por variáveis ou constantes. A uma comparação realizada utilizando um operador relacional dá-se o nome de relação. O resultado obtido de uma relação é sempre um valor lógico, ou seja, o valor será verdadeiro ou falso. Observe o trecho de um programa que demonstra o uso de dois if’s sequenciais ou encadeados. if (num>=0) if(num%2==0) printf(“O número é par e é positivo. \n”); Os operadores lógicos podem ser utilizados para otimizar os comandos de seleção, levando em consideração o trecho de programa apresentado, a alternativa que otimiza o comando if com a utilização de operadores lógicos é: Sua resposta Correta Revisar Questão if ((num>=0) && (num%2==0)) printf (“O número é positivo e é par. \n”); Questão 1 Correta Questão com problema? Os operadores aritméticos podem ser classificados em unário ou binário (MANZANO, 2015). Os binários são operadores que usam dois componentes e os operadores unários usam apenas um componente. É o caso dos operadores aritméticos de incremento (++) e decremento (--). Esses operadores acrescentam ou diminuem “um” ao valor de uma variável e podem ser usados de duas formas: Após a variável: x++ . Nesse caso, é adicionado um após a primeira execução. Após a variável: x-- .Nesse caso, é decrementado um após a primeira execução. Antes da variável: ++x. Nesse caso, é adicionado um antes da primeira execução. Antes da variável: --x.Nesse caso, é decrementado um antes da primeira execução. Baseado no conceito de operadores unários, complete as lacunas do quadro 2 a seguir: Operador Exemplo Descrição Resultado ++ x++ x + 1 ++ ++x x + 1 -- x-- x - 1 -- --x x - 1 Assinale a alternativa que contém a sequência correta: Sua resposta Correta Pós incremento / pré incremento / pós decremento / pré decremento. Questão 2 Correta Questão com problema? Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Veja um exemplo de comando para declaração de variáveis na linguagem C: int idade[3]; float altura[3] = {1,1.5,1.7} Assinalea alternativa que apresenta corretamente a função do comando exemplificado anterior. Sua resposta Correta Declaração de variáveis compostas do tipo vetor. Questão 3 Correta Questão com problema? As variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Podemos armazenar a idade de uma pessoa em uma variável do tipo int, a altura em um tipo float, e assim por diante, mas e se fosse necessário armazenar quinze medidas da temperatura de um dispositivo? A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar: Sua resposta Correta variáveis compostas. Questão 4 Correta Questão com problema? Mizrahi (2008) afirma que uma matriz de duas dimensões são inicializadas na mesma maneira que vetor. Precisamos sempre observar que todos os valores que serão armazenados na matriz sejam do mesmo tipo. Analise o programa a seguir: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. #include<stdio.h> int main( ) { int i, j, matriz[2][2] = {10,20,30,40}; for (i = 0; i <= 1; i++) { for (j = 0; j <=1; j++) { printf ("matriz[%d][%d] = %d\n", i,j, matriz[i][j]); } } return 0; } Após a execução do programa é será impresso em tela Sua resposta Correta matriz [0][0] = 10 matriz [0][1] = 20 matriz [1][0] = 30 matriz [1][1] = 40 Questão 5 Correta Questão com problema? Analise o trecho de programa a seguir e responda: #include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; } printf ( “%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0; } Observe que dentro de um laço “for” para uma determinada condição, existe um comando forçando o término do laço. Que comando é esse? Sua resposta Correta break. Questão 1 Respondida Chama-se de estruturas de decisão encadeadas, quando uma estrutura de decisão está localizada dentro do lado falso da outra. Este tipo de estrutura também é conhecida como seleção “aninhada” ou seleção “encaixada”. Qualquer que seja o termo usado para identificar a estrutura, o importante é que esse formato com uma estrutura de seleção dentro da outra permite fazer a escolha de apenas um entre vários comandos possíveis. A figura 2 a seguir mostra uma tela após execução de uma estrutura de decisão encadeada: Figura 2 – tela após execução de uma estrutura de decisão encadeada Em linguagem C usa-se estruturas if-else-if encadeadas para construir códigos equivalentes. Analise o programa a seguir e complete as lacunas: #include <stdio.h> #include ____________ int main (void) { int N1, N2 ; printf("Digite o primeiro numero: "); _____________ printf("Digite o segundo numero: "); scanf("%d", &N2); _____________ printf("Os numeros são iguais!"); else if (N1 > N2) printf("O maior valor e = %d", N1); ____________ printf("O maior valor e = %d", N2); printf("\n"); system("pause"); ____________ }. Assinale a alternativa que completa corretamente as lacunas: • <stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0); • h> / scanf("%d", &N1); / else (N1 == N2) / else / return (0); • <stdlib.h> / scanf("%d", %N1); / if (N1 == N2) / if / return (0); • <stdlib.h / ("%d", &N1); / if (N1 == N2) / else / return (0); • <stdlib.h> / scan("&d", &N1); / else (N1 == N2) / if / return (0); Sua resposta <stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0); Questão 3 Respondida Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Veja um exemplo de comando para declaração de variáveis na linguagem C: int idade[3]; float altura[3] = {1,1.5,1.7} Assinale a alternativa que apresenta corretamente a função do comando exemplificado anterior. • Declaração de variáveis simples do tipo vetor. • Declaração de variáveis compostas do tipo matriz. • Declaração de variáveis simples do tipo matriz. • Declaração de variáveis simples de tipos primitivos. • Declaração de variáveis compostas do tipo vetor. Sua resposta Declaração de variáveis simples do tipo vetor. INCORRETO, porque deveria indicar que é declaração de vetor. Questão 4 Respondida O comando do-while é uma estrutura de repetição que garante que o bloco de instruções seja executado no mínimo uma vez, já que a condição que controla o laço é testada apenas no final do comando. Ou seja, usando 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 trecho de programa a seguir e complete corretamente as lacunas: #include<stdio.h> int main(void) { ____________; int resp; ____________ { printf("Digite a primeira nota: "); scanf("%f",¬a1); printf("Digite a segunda nota: "); scanf("%f",¬a2); ____________; printf("Media do aluno = %f\n",media); printf("Digite 1 para continuar ou 2 para sair\n"); ____________; _____________; return 0; } Assinale a alternativa que completa corretamente as lacunas: • float nota1=0,nota2=1,media=0 / do / media = (nota1 + nota2)/2 / scanf("%s", &resp) / }while (resp==1). • float nota1=0,nota2=0,media=0 / while / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }do (resp==1). • float nota1=0,nota2=0,media=0 / do / media = (nota1 * nota2)/2 / scanf("%f", &resp) / }while (resp==0). • float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while (resp==1). • float nota1=0,nota2=1,media=0 / while / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }do (resp==0). Sua resposta float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while (resp==1). Questão 5 Respondida Segundo Manzano (2015), os algoritmos criados por você deverão ser convertidos em linguagens de alto nível, como por exemplo: a linguagem Java, Pascal, C, C++ entre outras conceituadas nesta seção. Você deverá escrever os códigos fontes na linguagem escolhida para que os mesmos se tornem executáveis, porém, cada linguagem adota um método particular para gerar o código executável. Considerando o contexto apresentado, faça a correta associação entre as Colunas. COLUNA A COLUNA B I. São gerados códigos intermediários, onde não exige tanto espaço de memórias quanto realizado pelo código fonte. Sua vantagem é ter independência da arquitetura que realizará a execução final, porém, necessita de um interpretador específico para sua geração. 1. Compiladores II. Lê uma instrução do código fonte, transforma em código binário e executa, repete esse processo até que todas as instruções do código fonte sejam executadas. O código é interpretado e executado em tempo real, sem a geração de código executável. 2. Interpretadores III. É gerado um código executável sem a necessidade de interpretar comando por comando. Sua vantagem é a execução mais rápida, porém, caso necessite de alterações, o código fonte deverá ser editado e executado em máquinas de mesma arquitetura. 3. Tradutores Assinale a alternativa que apresenta a associação correta. • II - 3; III - 2; I - 1. • I - 2; II - 3; III - 1. • II - 1; III - 2; I - 3. • I - 3; II - 2; III - 1. • III - 3; II - 1; I - 2. Sua resposta I - 3; II - 2; III - 1. Questão 6 Sem resposta Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidadegrande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos. Analise o programa a seguir. #include<stdio.h> int main() { int vetor[19],i; for (i = 0; i <= 19; i++) { vetor[i] = 1; } for (i = 0; i <= 19; i++) { printf ("vetor[%d] = %d \n", i, vetor[i]); } return 0; } Considerando o programa apresentado, julgue as afirmações a seguir. I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória”. É correto apenas o que se afirma em: • II, III e IV. • I, III e IV. • I, II e III. • I, II e IV. • I, II, III e IV. Sua resposta I, III e IV. A frase corretamente preenchida é: As afirmativas I, II, III e IV estão corretas. Todas as afirmativas estão corretas. Devemos sempre inicializar um vetor para evitar que ao executar o programa, um lixo de memória seja utilizado. Observe que há um problema no programa, no comando: for (i = 0; i <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i = 0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. (Correto) II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto) III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. (Correto) IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória” (Correto) Questão 7 Sem resposta Pseudocódigos é 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. Neste contexto, analise o seguinte algoritmo escrito em pseudocódigo. var real: v1, v2, v3, v4, N1, x; Início escreva (“Digite Nota 1:”); leia v1; escreva (“Digite Nota 2:”); leia v2; escreva (“Digite Nota 3:”); leia v3; escreva (“Digite Nota 4:”); leia v4; N1 ← v1 + v2 + v3 + v4; x ← N1 / 4; escreva(“Resultado = ”, x); Fim. Agora, assinale a alternativa correta. • Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em N1 e por fim é exibido. • Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente em N1 e o restado final é armazenado em X e por fim é exibido. • Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente em X e o restado final é armazenado em N1 e por fim é exibido. • Este algoritmo não exibi nenhum resultado. • Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em X e por fim é exibido. Sua resposta Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em N1 e por fim é exibido. INCORRETO, porque o correto seria: Este algoritmo armazena as notas em variáveis: escreva (“Digite Nota 1:”); leia v1; escreva (“Digite Nota 2:”); leia v2; escreva (“Digite Nota 3:”); leia v3; escreva (“Digite Nota 4:”); leia v4; ...para depois realizar um calculo: N1 ← v1 + v2 + v3 + v4; ...onde o restado final é armazenado em X: x ← N1 / 4; ...e por fim é exibido: escreva(“Resultado = ”, x); Questão 8 Sem resposta As variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos primitivos. Podemos armazenar a idade de uma pessoa em uma variável do tipo int, a altura em um tipo float, e assim por diante, mas e se fosse necessário armazenar quinze medidas da temperatura de um dispositivo? A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar: • variáveis simples. • constantes compostas. • constantes simples. • arquivo texto. • variáveis compostas. Sua resposta variáveis compostas. Questão 9 Sem resposta Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos. Analise o programa a seguir. #include<stdio.h> int main() { int vetor[19],i; for (i = 0; i <= 19; i++) { vetor[i] = 1; } for (i = 0; i <= 19; i++) { printf ("vetor[%d] = %d \n", i, vetor[i]); } return 0; } Considerando o programa apresentado, julgue as afirmações a seguir. I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória”. É correto apenas o que se afirma em: • II, III e IV. • I, III e IV. • I, II e III. • I, II e IV. • I, II, III e IV. Sua resposta I, III e IV. A frase corretamente preenchida é: As afirmativas I, II, III e IV estão corretas. Todas as afirmativas estão corretas. Devemos sempre inicializar um vetor para evitar que ao executar o programa, um lixo de memória seja utilizado. Observe que há um problema no programa, no comando: for (i = 0; i <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i = 0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1. (Correto) II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto) III.O programa não irá imprimir as informações do vetor corretamente porque estamos atribuindo mais valores ao vetor do que foi declarado. (Correto) IV. Caso não seja inicializado o vetor, como foi feito no comando for da linha 5, será impresso os valores que estão na memória do computador, esses valores são conhecidos como “lixo de memória” (Correto) Questão 10 Sem resposta Observe o trecho de programa a seguir e julgue as afirmações que se seguem. #include <stdio.h> void main () { int num[5]; printf(“Entre com um numero\n”); scanf(“%d”, &num[0]); printf(“O valor digitado foi: %d”, num [0]*2); getchar(); } I. Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de armazenar diversos valores “ao mesmo tempo”. II. O vetor usa vários endereços na memória. III. Por armazenar diversos valores, também é chamado de variável aleatória, ou ainda, estrutura de matricial de valores. IV. A sintaxe para utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade de vetores alocados. É correto apenas o que se afirma em: • I. • II. • I e IV.• III e IV. • II e III. Sua resposta I.
Compartilhar