Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFC - UNIVERSIDADE FEDERAL DO CEARÁ Centro de Tecnologia - Faculdade de Engenharia Departamento de Computação Lista de Exercícios Programação Computacional para Engenharia 2018 / 1 Introdução e Algoritmo Professor: José Caminha Alencar Araripe Júnior Fortaleza, 16 de Abril de 2018 UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 1 Universidade Federal do Ceará – UFC Departamento de Computação - Disciplina Programação Computacional para Engenharia - 2018.1 Lista de Exercício - Questões de Introdução e Algoritmo. Elaborar conforme solicitado. O aluno deverá enviar por e-mail, em um único arquivo, a solução das questões relacionadas a seguir. Nome do Arquivo: Será formado pelo nome do próprio aluno conforme formato a seguir: “nome_aluno-Engenharia-ALGORITMO-2018-1” Onde “nome_aluno” corresponde ao primeiro nome do aluno junto com o último sobrenome. Como Deve ser Entregue: Enviar o trabalho por e-mail. Data da Entrega: Até a data da 1ª Avaliação. O trabalho realizado vale um ponto a ser adicionado a nota da 1ª Avaliação. UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 2 Questões 1. Faça o que se pede: (a) Execute, como se fosse um computador, as instruções do algoritmo listado a seguir e informe, passo a passo, os resultados obtidos e explique o que o algoritmo realiza: INICIO VARIAVEL Controle1, Controle2, Controle3: INTEIRO; LEIA (VR1); ESCREVA (“UFC – Engenharia – 2018.1”); ESCREVA (“Programação Computacional para Engenharia”); ESCREVA (“CURSO DE xxxxxxxxxxxxxxxxxxxx”); ESCREVA (“ALGORITMO QUESTAO _1.”); Controle2 := -2; Controle3 := 13; REPITA ENQUANTO Controle3 <= Controle1 ESCREVA (Controle3); SE Controle2 = -2 ENTAO Controle2 := 3; SENAO Controle2 := -2; FIMSE; Controle3 = Controle3 + Controle2; FIMREPITA; ESCREVA (“Maximo = ”, Controle1); FIM. Dados de entrada: Resultado gerado: Mapa da Memória Controle1 Controle2 Controle3 23 UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 3 (b) Execute, como se fosse um computador, o algoritmo listado a seguir e informe o resultado e o que faz o algoritmo: INICIO VARIAVEL INF, SUP, NE, EL, SO, I: INTEIRO; LEIA (NE, INF, SUP); SO = 0; I = 0; ESCREVA (“UFC - Programação Computacional para Engenharia”); ESCREVA (“CURSO: x-------------------x”); ESCREVA (“NOME: x------------------x”); ESCREVA (“NUMERO ELEMENTOS = ”, NE); ESCREVA (“ELEMENTOS”); REPITA ENQUANTO I <= NE I = I + 1; LEIA (EL); ESCREVA (EL); SE EL / 2 * 2 = EL E EL >= INF OU EL <= SUP ENTAO SO = SO + EL; FIMSE; FIMREPITA; ESCREVA (“Somatorio = ”, SO); ESCREVA (“Limite I = ”, INF); ESCREVA (“Limite S = ”, SUP); FIM. Dados de entrada: Resultado gerado: Mapa da Memória NE SO EL INF I SUP 10 15 25 12 24 26 20 19 30 41 28 17 10 23 18 UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 4 2. Apresente comentários sobre a memória principal dos computadores: (a) Descreva como é constituída a memória dos computadores; (b) como nossas informações são armazenadas; (c) qual a terminologia utilizada para representar a quantidade de memória que indica a sua capacidade, cite exemplos. 3. O nosso sistema de numeração que utilizamos para representar quantidades e para executar operações aritméticas é o decimal. (a) O computador também utiliza esse mesmo sistema para representar internamente as informações? (b) Explique como é feito para representar os caracteres das letras do alfabeto? (c) Explique claramente sua resposta. 4. Explique de forma clara e sucinta: (a) o que você entende por HARDWARE e SOFTWARE. (b) Cite exemplos; (c) Qual o principal SOFTWARE utilizado em computador para permitir uma melhor convivência entre o homem e a máquina, explique qual a sua finalidade; (d) É obrigatório que todo computador possua instalado esse SOFTWARE? (e) Cite exemplos desses SOFTWARE´s. (f) Quais as principais diferenças entre eles? (g) Cite exemplos de tarefas que são executadas por esse aplicativo. (h) Onde no computador está localizado esse SOFTWARE? 5. Em um computador temos diversos dispositivos para armazenamento das informações de forma temporária e permanente. (a) Identificar esses dispositivos; (b) Citar exemplos dessas memórias e suas características; (c) Qual a finalidade de cada uma? (d) Quais as diferenças, capacidade de armazenamento e vantagens/desvantagens de cada uma delas quando comparamos os mesmos; (e) Velocidade de acesso para leitura e gravação, etc. 6. O que é algoritmo e como se escolher uma opção quando estamos trabalhando em algoritmo, explique a sua forma e apresente exemplo. UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 5 7. Explique sobre “variável”: (a) O que é ? (b) Quais são os tipos; (c) Apresente alguns exemplos. 8. Um computador é formado por diversos componentes que exercem funções variadas: (a) descreva esses equipamentos de forma agrupada, isto é, classificando-os conforme a sua finalidade quando utilizado em computador; (b) cite exemplos de cada um. 9. Elaborar um algoritmo para processar os N elementos de um conjunto e realizar o que é solicitado a seguir: (i) calcular o somatório dos elementos cujos índices sejam impares e os valores também sejam pares; (ii) determinar quantos atendem as condições; (iii) apresentar resultado conforme modelo a seguir; (iv) gerar um novo conjunto onde os elementos estão em ordem inversa; (v) realizar os mesmos procedimentos para os itens (i) e (ii) para o conjunto gerado. Imprimir o resultado na forma abaixo. 10. Escreva uma definição clara sobre o que é “Programa”. (a) Para que eles servem? Cite exemplos daquilo que podem ser considerados como exemplos de “Programas”. (b) Os programas elaborados por nós são entendidos diretamente pelos computadores? UFC - Programação Computacional para Engenharia Nome: X--------------------X Numero de Elementos do Conjunto = XX CONJUNTO INICIAL: XX XX .... XX Soma dos Valores = XX Numero de Elementos que Atende a Condicao = XX CONJUNTO INVERTIDO: XX XX .... XX Soma dos Valores = XX Numero de Elementos que Atende a Condicao = XX UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 6 (c) Em um mesmo computador seria possível se processar programas escritos em linguagens de programação diferentes? Explicar sua resposta. (d) O que devemos fazer para executar em um computador um programa que acabamos de elaborar em uma linguagem de alto nível? (e) Esse procedimento é sempre necessário independente da linguagem de programação que estamos utilizando? (f) O que precisamos utilizar para fazer o que você descreveu no item anterior? (g) Citar as diferenças entre linguagem de máquina, linguagem fonte e linguagem objeto. Quem elabora cada um desses programas? 11. Em uma Linguagem de Programação / Algoritmo têm vários tiposde comandos / ferramentas que são utilizados para determinar o que o computador deverá executar. Em relação a esses tipos de comandos/ferramentas, explique, de forma clara e sucinta, o solicitado em cada item a seguir, apresentando a forma geral do comando/ferramenta, esclarecendo a sua finalidade, o seu funcionamento, suas diversas formas, além de apresentar 2 exemplos para cada item: (a) Comando de seleção; (b) Comando de repetição; (c) Função; (d) Subprograma. 12. Realizar pesquisa para identificar o que é “Programa Compilador” e o que é “Programa Interpretador”. Quais as diferenças entre eles, vantagens e desvantagens. (a) o que você entende por “Programa Compilador”; (b) explique qual a finalidade do programa compilador, para que é utilizado; (c) represente graficamente como seria a sua utilização e o que é gerado. (d) em um mesmo computador seria possível se processar programas escritos em linguagens de programação diferentes? (e) informe também se para processar um programa em linguagem fonte no computador é necessário que no mesmo exista um compilador qualquer; (f) explicar sua resposta. 13. Quando desejamos que o computador execute algum trabalho, precisamos informar ao computador que queremos e como deve ser feito. (a) como realizamos isto? (b) o que necessitamos? (c) em todo computador podemos realizar esse trabalho? UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 7 (d) represente graficamente como seria feito. (e) Explicar claramente sua resposta. 14. Alguns números inteiros possuem a capacidade de se autoelogiarem através de seus dígitos. Esses são números que formam a família dos Números Narcisistas. A característica que identifica os Números Narcisistas clássicos corresponde aquela onde a soma de cada um dos dígitos que compõe o número, elevados à potência do valor igual a quantidade de dígitos que compõe o número. Por exemplo, o número 153 é um narcisista clássico porque a soma de cada um de seus dígitos elevados ao cubo (total de dígitos que compõe o número 153), é exatamente 153. 153 = 13 + 53 + 33 = 1 + 125 + 27 = 153 Crie um algoritmo para listar todos os Números Narcisistas no intervalo de 0 até N. Apresentar resultado em layout semelhante ao utilizado neste trabalho conforme definido pelo aluno. 15. Um problema típico em ciência da computação consiste em converter um número da sua forma decimal, base dez, para a forma binária, base dois. Por exemplo, o número 12 na base decimal, base dez, tem sua representação binária igual a 1100, base dois. A forma mais simples de fazer isso é dividir, o número que está na base 10, sucessivamente pelo valor da base que se deseja converter, no caso a base 2, binária. O resto da i-ésima divisão vai ser o dígito i do número binário (da direita para a esquerda). Por exemplo: 12 / 2 = 6, resto = 0, que vai ser o 1º dígito da direita para a esquerda na base binária. Continuando, 6 / 2 = 3, resto = 0, que vai ser o 2º dígito da direita para a esquerda na base binária. Continuando, 3 / 2 = 1, resto = 1, que vai ser o 3º dígito da direita para a esquerda na base binária. Continuando, 1 / 2 = 0, resto = 1, que vai ser o 4º dígito da direita para a esquerda na base binária. Resultado, 12 na base decimal corresponde a 1100 na base binária. Faça um algoritmo para conhecer um valor na base decimal e determinar o valor correspondente na base binária. Apresentar resultado em layout semelhante ao utilizado na questão a seguir definido pelo aluno. Apresentar resultado em layout semelhante ao utilizado neste trabalho conforme definido pelo aluno. 16. O algoritmo codificado a seguir tem a finalidade de processar N elementos de um conjunto. Durante o processamento é para realizar o cálculo do somatório dos elementos cujos valores sejam pares e que o valor do elemento seja divisível por 3, inclusive. UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 8 Sendo assim, analisar todos os comandos do algoritmo listado a seguir para avaliar se está executando conforme definido. Se for necessário, introduzir as alterações para que o solicitado seja realizado. Explicar de forma clara a sua resposta. INICIO VARIAVEL N, NL: INTEIRA; SO := 0; ESCREVA (“UFC – 2018.1”); ESCREVA (“Curso: x-------------------x”); ESCREVA (“Nome: x------------------x”); ESCREVA (“NUMERO ELEMENTOS = ”, N); ESCREVA (“ELEMENTOS”); REPITA ENQUANTO I <= N ESCREVA (EL); SE EL / 2 * 2 = EL E EL >= 3 FIMSE; FIMREPITA; ESCREVA (“VALOR = ”, P); ESCREVA (“VALOR DE Q = ”, Q); FIM. Layout 17. Escreva um conjunto de instruções para determinar qual o maior valor dentre os N elementos de um conjunto. Identificar também a posição desse elemento dentro do conjunto. Apresentar, no final do processo, todos os elementos do conjunto, qual o maior valor e a posição desse valor dentro do conjunto. UFC – 2018.1 Curso: xxxxxxxxxxxxxxxxxxxxxxxxxx Nome: x-----------------x NUMERO DE ELEMENTOS = XX ELEMENTOS XX XX .... XX Somatorio = XXX UFC – 2018.1 CURSO: x------------x NOME: x-----------------x NUMERO DE ELEMENTOS = XX ELEMENTOS XX XX ....... XX MAIOR VALOR = XX POSIÇÃO DO MAIOR VALOR = XX UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 9 18. Desenvolver um algoritmo e para ler e imprimir os N elementos de um conjunto calculando durante esse processo o somatório dos valores que sejam divisíveis por Y. O resultado a ser gerado deve ser conforme o modelo indicado a seguir: UFC – ENGENHARIA – 2018.1 NOME: x-----------------x NUMERO DE ELEMENTOS = XX Y = XX ELEMENTOS: XX XX ...... XX SOMATORIO = XXX 19. Faça um algoritmo para processar um primeiro vetor (vetor1) com 10 números inteiros, e um segundo vetor (vetor2) com cinco números inteiros. O algoritmo deve gerar dois outros vetores (vetor3 e vetor4) resultantes de cálculos realizados com os valores do vetor1 e do vetor2. O valor do primeiro elemento do vetor3 será composto pelo primeiro valor par do vetor1 somado com todos os valores do vetor2. O valor do segundo elemento do vetor3 será igual ao segundo valor par do vetor1 somado com todos os valores do vetor2, e assim para os demais valores pares do vetor1. O vetor3 terá número de elementos igual a quantidade de pares do vetor1. vetor1 8 7 3 4 6 9 15 10 19 12 1 2 3 4 5 6 7 8 9 10 vetor2 4 8 11 3 5 1 2 3 4 5 vetor3 39 35 37 O vetor4 terá número de elementos igual a quantidade de valores impares do vetor1. O valor do primeiro elemento do vetor4 corresponderá a quantidade de divisores que o 8+4+8+11+3+5 4+4+8+11+3+5 UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 10 primeiro valor impar do vetor1 tenha no vetor2 e assim para os demais valores impares do vetor1. vetor4 0 1 1 2 0 20. Elaborar um algoritmo para gerar e imprimir a série de Fibonacci. A série deve ser gerada até o valor N e na forma do exemplo abaixo: 0 1 0 1 1 0 1 1 2 0 1 1 2 3 0 1 1 2 3 5 0 1 1 2 3 5 8 ...........................N Apresentar resultado em layout semelhante ao utilizado na questão a seguir. 21. Codificar um algoritmo para calcular e imprimir o valor da expressão dada abaixo. Os valores de K e de L serão informados por ocasião do processamento do algoritmo, ou seja, serão conhecidas no início do processamento. Gerar relatório no formato a seguir.3 tem um divisor UFC – 2018.1 CURSO DE X-------------X VALOR DE K = XX VALOR DE L = XX VALOR DA FUNÇÃO F = XX L L KKK KF 32 32 9 tem um divisor 7 não tem divisor 15 tem dois divisores UFC - Programação Computacional para Engenharia - 1ª Lista de Exercícios – 2018.1 11 22. O Diretor Presidente de uma empresa de vendas tem o controle das informações de produtividade de cada vendedor totalizada por semana de cada mês. Considerar que os meses tem 4 semanas. São 4 meses. Na lista do Presidente constam seis vendedores que estão relacionados por ordem de matricula, um abaixo do outro. Os valores de produtividade de cada semana de cada mês estão registrados na horizontal do lado direito da matricula, por ordem crescente das semanas e meses do ano. Dito isso, escreva um algoritmo para gerar uma nova lista dos vendedores, a partir da lista do Presidente, com a totalização de vendas de cada mês. Calcular, também, o total para cada vendedor para o período considerado. Apresentar o resultado conforme modelo a seguir: F I M UFC – Engenharia 2018.1 NOME: x-----------------x NUMERO DE VENDEDORES = X NUMERO DE MESES = X VENDEDORES X VENDAS POR SEMANA: XX XX ...... XX XX XX ...... XX .... ..... ..... XX XX ...... XX VENDEDORES X VENDAS TOTALIZADAS POR MÊS: XX XX XX XX XX XX XX XX XX XX XX XX .... .... .... .... .... .... XX XX XX XX XX XX
Compartilhar