Baixe o app para aproveitar ainda mais
Prévia do material em texto
Campus Araranguá Rua Pedro João Pereira, 150 Bairro Mato Alto Araranguá - Santa Catarina – Brasil / CEP 88900-000 www.ararangua.ufsc.br / +55 (48) 3721.6448 Avaliação 1 de 2012.2 – U1, U2 e U3 Disciplina Programação em Computadores I ARA7140 2012.2 1655 Professor Carlos A S Rocha Data 18-04-2013 1. Justifique a afirmação “Um fluxograma é uma técnica de algoritmo menos eficiente que a técnica baseada em pseudocódigo”. Utilize como base para a sua justificativa o conceito de fluxograma e pseudocódigo e suas aplicabilidades como recursos na descrição de algoritmos. R – Ela é ineficiente do ponto de vista de implementação em uma linguagem de programação já que lida com símbolos gráficos, mas é vantajosa, pois permite uma maior facilidade de observação para os elementos de um algoritmo como variáveis de entrada e saída, pontos de decisão, processamentos e inicializações, etc. 2. Assinale como verdadeiro (V) ou falso (F) as afirmações das sentenças abaixo. A seguir, justifique suas escolhas para as questões apontadas como falsas. OBS: Uma justificativa incorreta, ou a falta dela, invalida a sentença. 2.1. Considerando as declarações das variáveis, suas inicializações e o trecho de código abaixo, avalie as afirmações de cada sentença assumindo que podem ocorrer erros de execução: 1 A <- 1 B <- 2 C <- A D <- "A" L <- verdadeiro A,B,C: inteiro D: literal L: logico Trecho 1 se(((A>B) e (C<>A)) ou (L=falso))entao escreva("Sentença 1") fimse se(((L) <> (C<>A)) e (D = "B"))entao escreva("Sentença 2") fimse se (nao((B<C) e (L)) e ((L) <> (C<>A)))entao escreva("Sentença 3") fimse 2.1.1.(F) Para que as mensagens 2 e 3 sejam impressas, as condições relativas a sentença 1 devem retornar um resultado falso, pois se forem verdadeiras o programa para ao escrever a mensagem “Sentença 1” e não executa os demais testes condicionais. Justificativa: Como um programa executa cada uma de suas das linhas de instrução e a estrutura SE presente é de estrutura simples, todas serão testadas. 2.1.2.(V) A utilização da estrutura composta “SE” agrupando os blocos condicionais das sentenças 2 e 3 ao bloco da sentença 1 tornaria o programa mais rápido do que a versão apresentada no trecho 1. 2.1.3. (V) Para L inicializada com L falso, e D inicializada com D “B” o trecho 1 imprime “Sentença 1”. 2.1.4. (F) Para L inicializada com L falso o trecho 1 imprime “Sentença 3”. Justificativa: A mensagem impressa é “Sentença 1”. 3. Identifique e descreva os três elementos básicos associados na execução lógica de um algoritmo e, consequentemente, na execução de um programa. Ao final, cite um exemplo para cada um destes elementos. R – Os elementos são: entrada, processamento e saída. Entrada: dois números inteiros; Processamento: realização da divisão de dois números verificando se o divisor é diferente de zero; Saída: o resultado da divisão. 4. Desenvolva um programa, usando a notação do VisualG, para ler o nome de um funcionário, seu CPF, seu ano de admissão na empresa, o seu salário inicial, e utilizando as tabelas abaixo: Ano Admissão Reajuste (%) 2012 5 2011 2x de 2012 2 2010 2x de 2011 2009 2x de 2010 Qualquer outro ano Não existe 4.1. Calcule o reajuste do salário de um funcionário (perdas salariais) de acordo com o seu ano de admissão. 4.2. O salário com reajuste pode ainda ter um adicional por tempo de empresa. 4.3. Apresente o salário antigo e o salário novo com o adicional e também com o reajuste, quando for o caso. 4.4. Utilize a estrutura de controle ESCOLHA/CASO para as condições de reajuste, ou para as condições de tempo de empresa, ou para ambas as condições. Observe que o salário do funcionário pode incorporar o adicional sem um reajuste. algoritmo "semnome" // Função : // Autor : // Data : 18/04/2013 // Seção de Declarações var nome, cpf: caractere anoAdmissao, tempoEmpresa, anoAtual: inteiro Adicional (Tempo Empresa) Tempo (anos) % 0 0 1 2,5 2 3,5 3 4,0 Mais 3 5,0 3 salarioInicial, reajuste, salarioNovo: real inicio // Seção de Comandos reajuste <- (5/100) anoAtual <- 2013 leia(nome, cpf, anoAdmissao, salarioInicial) escolha (anoAdmissao) caso 2012 reajuste <- reajuste caso 2011 reajuste <- 2*reajuste caso 2010 reajuste <- 4*reajuste caso 2009 reajuste <- 8*reajuste outrocaso reajuste <- 0 fimescolha salarioNovo <- salarioInicial + reajuste*salarioInicial escrevaL("Salario com reajuste: ", salarioNovo) tempoEmpresa <- (anoAtual - anoAdmissao) se (tempoEmpresa = 0) entao reajuste <- 0 senao se (tempoEmpresa = 1) entao reajuste <- (2,5/100) senao se (tempoEmpresa = 2) entao reajuste <- (3,5/100) senao se(tempoEmpresa = 3) entao reajuste <- (4/100) 4 senao //tempo de empresa maior que 3 anos reajuste <- (5/100) fimse fimse fimse fimse salarioNovo <- salarioNovo + reajuste*salarioNovo escreva("Salario com reajuste e com tempo de empresa: ", salarioNovo) fimalgoritmo 5
Compartilhar