Baixe o app para aproveitar ainda mais
Prévia do material em texto
EXERCÍCIOS DE ALGORITMOS - GBARITO Acompanhe a reprodução do código com os comentários ao lado. Antes, entretanto, devemos lembrar que, na linguagem C, uma divisão entre inteiros terá como resultado o valor inteiro da divisão. int x = 10, y = 3, z, k;---> as variáveis x, y, z e k são declaradas do tipo inteiro, sendo x=10 e y=3 y = x + y - 1;---> y=10+3-1=12 z = x/y;---> z= 10/12 = 0 (o valor inteiro da divisão) k = y % x; ---> k = 12%10 = 2 (resto da divisão de 12 por 10) if ( k != 0)---> esta condição será verdadeira pois k=2 é diferente de zero(0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; ---> exibe a saída: x = 10 y = 12 z = 0 k=2 Acompanhe o código da questão com os comentários ao lado: 1ª EXECUÇÃO int num; cout << "Digite um numero: "; cin >> num; - O usuário informa 7 if (num != 2 || num != 4 || num != 6) esta condição será verdadeira, pois num é diferente de 2 ou de 4, ou de 6 { num = num + 2; num é incrementado de , isto é num = 7 +2 = 9 cout << num << " "; exibe o valor de num: 9 } if (num != 8) esta condição será verdadeira, pois num é diferente de 8 { num--; num é decrementado de 1, passando para 8 cout << num << " "; exibe o valor de num: 8 } else cout << num * 5 ; 2ª EXECUÇÃO int num; cout << "Digite um numero: "; cin >> num; - O usuário informa 8 if (num != 2 || num != 4 || num != 6) esta condição será verdadeira, pois num é diferente de 2 ou de 4, ou de 6 { num = num + 2; num é incrementado de , isto é num = 8 +2 = 10 cout << num << " "; exibe o valor de num: 10 } if (num != 8) esta condição será verdadeira, pois num é diferente de 8 { num--; num é decrementado de 1, passando para 9 cout << num << " "; exibe o valor de num: 9 } else cout << num * 5 ; Portanto, ao final das duas execuções serão exibidos os valores: 9 8 10 9 Teste de Mesa PRIMEIRA EXECUÇÃO z Saídas Obtidas 10 11 /2 * 10 = 50 10 * 10 -10 = 90 SEGUNDA EXECUÇÃO z Saídas Obtidas 5 3 * 5 = 15 11/2 *5 = 25 5 * 5 -10 = 15 Portanto, ao final das duas execuções, foram impressos na tela, respectivamente, os valores: 50 90 15 25 15 Na estrutura for (x = 1; x <= 5; x++), a variável x assumirá os valores: 1, 2, 3, 4 e 5. Desta forma, dois aspectos relevantes devem ser ressaltados: A estrutura será repetida 5 vezes; Nenhum dos valores de x atenderá à condição (x % 3 == 0 && x % 5 == 0) Sendo assim, o comando de saída do else (cout << x + 1 << " ";) será executado todas as 5 vezes, gerando a saída: 2 3 4 5 6 . No programa são declaradas as variáveis: i do tipo int; x e y do tipo double. A seguir pede-se que o usuário informe um valor qualquer que ficará guardado na variável x. Segue-se uma estrutura for que será repetida 5 vezes, para os valores de i iguais a 0, 1, 2, 3 e 4. Em cada uma das cinco repetições será lido um valor para y, e caso este valor seja maior que x, a própria variável x armazenará este valor lido. Assim sendo, ao final das 5 repetições a variável x armazenará o maior de todos os elementos digitados, que será retornado para o usuário. Teste de mesa: num num % 2 == 0 Comando executado 11 Falso Nenhum 11-1=10 Verdadeiro cout << num << "\n"; 10 10-1=9 Falso Nenhum 9-1=8 Verdadeiro cout << num << "\n"; 8 8-1=7 Falso Nenhum 7-1=6 Verdadeiro cout << num << "\n"; 6 6-1=5 Falso Nenhum 5-1=4 Verdadeiro cout << num << "\n"; 4 4-1=3 Falso Nenhum 3-1=2 Verdadeiro cout << num << "\n"; 2 2-1=1 Falso Nenhum 1-1=0 FIM DA EXECUÇÃO FIM DA EXECUÇÃO Portanto, pelo teste de mesa acima pode-se afirmar que: O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 2, nesta ordem. Na linguagem C/C++, a declaração de uma função (seu cabeçalho) deve obedecer à seguinte sintaxe: TIPO_VALOR_RETORNO NOME_FUNÇÃO (LISTA_PARÂMETROS), onde: TIPO_VALOR_RETORNO – corresponde ao tipo do valor que será retornado pela função. Este tipo deverá ser void caso a função não retorne valor. NOME_FUNÇÃO – corresponde ao identificador (nome) da função e será usado, sempre, para fazer a sua chamada. LISTA-PARÂMETROS – corresponde à declaração dos parâmetros que a função receberá. Tal lista é opcional, isto é, uma função pode não receber qualquer parâmetro. Esta lista é indicada pelo tipo de dado do parâmetro e seu respectivo nome. Pelo enunciado da questão identificamos que a mesma não retornará valor. Além disso, receberá dois parâmetros correspondentes ao raio da base e altura do cilindro, respectivamente. Estes dois parâmetros deverão ser do tipo float, Assim sendo, entre as alternativas indicada, aquela que corresponde corretamente ao cabeçalho da função especificada é: void V_Cilindro(float r, float h). De acordo com o proposto, o programa deverá usar uma matriz unidimensional para cada uma das informações: peso, altura e IMC. O tipo de dado para essas informações deve ser float, e como o cadastro possui 1000 pacientes, cada um destes vetores deverá ter capacidade para 1000 elementos. Dessa forma, a declaração destas variáveis deverá ser: float peso[1000], altura[1000], imc[1000];
Compartilhar