Programação imperativa
|
|
- Rui Caetano Veiga
- 6 Há anos
- Visualizações:
Transcrição
1 Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga qual é a diferença entre o operador de atribuição e o operador de nomeação. 4. Diga quais são as vantagens e os inconvenientes da programação imperativa. 5. Diga o que é um efeito. Qual é o comportamento de um procedimento baseado em efeitos? 6. Quando é que se diz que um objecto tem estado? O que caracteriza o estado de um objecto? 7. Explique a diferença entre o método de passagem de parâmetros por valor e por referência. Explique estes dois métodos com exemplos em Scheme. 8.2 Exercícios de programação 1. (2) Diga o que é escrito pelo interpretador de Scheme ao avaliar cada uma das seguintes expressões. Suponha que as expressões são avaliadas pela ordem apresentada. Se a avaliação de uma expressão originar um erro, explique a razão do erro. (define x 5) (set! x "FP") (set! b 2) (vector x b 5 (* 3 2)) (define a 3) (set! a "ola") (+ a 1) a a 79
2 80 CAPÍTULO 8. PROGRAMAÇÃO IMPERATIVA Ciclos 1. (2) Utilizando programação imperativa e um ciclo apropriado, escreva um procedimento chamado potencia que recebe dois inteiros, x e n, e que devolve x n. 2. (2) Considere o algoritmo de Euclides para calcular o máximo divisor comum entre dois inteiros: (1) o máximo divisor comum entre um número e zero é o próprio número; (2) quando dividimos um número por um menor, o máximo divisor comum entre o resto da divisão e o divisor é o mesmo que o máximo divisor comum entre o dividendo e o divisor. Usando programação imperativa e o ciclo apropriado, escreva um procedimento chamado mdc para calcular o máximo divisor comum entre dois números utilizando o algoritmo de Euclides. 3. (2) Utilizando programação imperativa e um ciclo apropriado, escreva um procedimento chamado raiz que calcula a raiz quadrada de um número positivo utilizando o algoritmo de Heron de Alexandria (ver a sua descrição nas páginas 66 a 70 do livro). 4. (2) Considere o procedimento somatorio apresentado na Página 204 do livro: (define (somatorio calc-termo lim-inf proximo lim-sup) (if (> lim-inf lim-sup) 0 (+ (calc-termo lim-inf) (somatorio calc-termo (proximo lim-inf) proximo lim-sup)))) Escreva este procedimento utilizando programação imperativa e um ciclo apropriado Listas 1. (2) Usando o ciclo mais adequado, escreva um procedimento cria-lista-inteiros que recebe um número inteiro positivo n e devolve uma lista com os números inteiros entre 0 e n. > (cria-lista-inteiros 5) ( ) 2. (2) Usando o ciclo mais adequado, escreva um procedimento soma-elementos-lista que recebe uma lista de números e devolve a soma dos elementos da lista. > (soma-elementos-lista ( )) 3 3. (2) Usando o ciclo mais adequado, escreva um procedimento algum-satisfaz-lista que recebe uma lista e um predicado e devolve verdadeiro de algum dos elementos da lista satisfizer o predicado e falso em caso contrário.
3 8.2. EXERCÍCIOS DE PROGRAMAÇÃO 81 > (algum-satisfaz-lista ( ) even?) > (algum-satisfaz-lista ( ) (lambda (x) (> x 10))) 4. (2) Usando o ciclo mais adequado, escreva um procedimento quantos-satisfazem-lista que recebe uma lista e um predicado e devolve o número de elementos da lista que satisfazem o predicado. > (quantos-satisfazem-lista ( ) even?) 3 > (quantos-satisfazem-lista ( ) (lambda (x) (> x 10))) 0 5. (2) Usando o ciclo mais adequado, escreva um procedimento aplica-proc-lista que recebe uma lista e um procedimento e devolve uma lista que resulta de aplicar o procedimento a cada um dos elementos da lista original. > (aplica-proc-lista ( ) sqr) ( ) > (aplica-proc-lista ( ) (lambda (x) (> x 10))) ( ) 6. (2) Usando o ciclo mais adequado, escreva um procedimento escolhe-pred-lista que recebe uma lista e um predicado e devolve uma lista que contém os elementos da lista original que satisfazem o predicado. > (escolhe-pred-lista ( ) odd?) (1 3 5) > (escolhe-pred-lista ( ) (lambda (x) (> x 10))) () vectores 1. (2) Escreva um procedimento produto-vector que recebe um vector e devolve o produto de todos os elementos do vector. > (produto-vector (vector 4 5 6)) 120 > (produto-vector (vector)) 1 2. (2) Escreva um procedimento de ordem superior chamado transforma-vector! que recebe como argumentos um vector e uma operação aplicável aos elementos do vector e que modifica destrutivamente o vector recebido, aplicando a operação a cada um dos elementos do vector original. Por exemplo,
4 82 CAPÍTULO 8. PROGRAMAÇÃO IMPERATIVA > (define v1 (vector )) > (escreve-vector v1) [ ] > (transforma-vector! v1 (lambda (x)(/ x 2.0))) > (escreve-vector v1) [ ] (a) Utilize o ciclo do. (b) Utilize o ciclo dotimes. 3. (2) Utilizando o procedimento transforma-vector!, escreva uma combinação que dado um vector altera destrutivamente o vector original de modo a que cada posição passe a ter o quadrado do elemento que estava nessa posição do vector original. 4. (2) Escreva um procedimento conta-pares-vector que recebe um vector e devolve o número de elementos pares no vector. > (conta-pares-vector (vector 4 5 6)) 2 > (conta-pares-vector (vector 3 5 7)) 0 5. (2) Escreva um procedimento numero-ocorrencias-vector que recebe um vector e um número, e devolve o número de vezes que o número ocorre no vector. > (numero-ocorrencias-vector (vector 4 5 6) 5) 1 > (numero-ocorrencias-vector (vector 3 5 7) 2) 0 6. (2) Escreva um procedimento conta-vector que recebe um vector e um predicado unário, e devolve o número de elementos do vector que satisfazem o predicado. > (conta-vector (vector 4 5 6) (lambda(x) (> x 5))) 1 7. (2) Escreva os procedimentos dos exercícios 4 e 5 utilizando o procedimento conta-vector. 8. (2) Escreva um procedimento maximo-vector que recebe um vector não vazio de números e devolve o maior elemento do vector. > (maximo-vector (vector 4 5 6)) 6 > (maximo-vector (vector 7 3 6)) 7 9. (2) Escreva um procedimento todos-pares-vector? que recebe um vector e devolve verdadeiro se o vector for constituído exclusivamente por números pares e falso em caso contrário.
5 8.2. EXERCÍCIOS DE PROGRAMAÇÃO 83 > (todos-pares-vector? (vector 4 5 6)) > (todos-pares-vector? (vector 4 4 6)) 10. (2) Escreva um procedimento todos-vector? que recebe um vector e um predicado unário, e devolve verdadeiro caso todos os elementos do vector satisfaçam o predicado e falso em caso contrário. > (todos-vector? (vector 4 5 6) (lambda(x) (> x 5))) > (todos-vector? (vector 4 5 6) (lambda(x) (>= x 4))) 11. (2) Escreva o procedimento do exercício 9 utilizando o procedimento todos-vector?. 12. (2) Escreva um procedimento ocorre-vector? que recebe um vector e um número, e devolve verdadeiro se o número ocorrer no vector e falso em caso contrário. > (ocorre-vector? (vector 3 2 4) 3) > (ocorre-vector? (vector 3 2 4) 1) 13. (2) Escreva um procedimento existe-vector? que recebe um vector e um predicado unário, e devolve verdadeiro caso exista um elemento do vector que satisfaça o predicado e falso em caso contrário. > (existe-vector? (vector 4 5 6) (lambda(x) (> x 5))) > (existe-vector? (vector 4 5 6) (lambda(x) (>= x 4))) 14. (2) Escreva o procedimento do exercício 12 utilizando o procedimento existe-vector?. 15. (2) Escreva um procedimento quadrados-vector! que recebe um vector, e altera destrutivamente o vector original de modo a que cada posição passe a ter o quadrado do elemento que estava nessa posição do vector original. > (quadrados-vector! (vector 3 2 4)) #(9 4 16) 16. (2) Escreva um procedimento substitui-vector! que recebe um vector, um número v e um número n, e altera destrutivamente o vector substituindo todas as ocorrências de v por n. > (substitui-vector! (vector ) 4 5) #( )
6 84 CAPÍTULO 8. PROGRAMAÇÃO IMPERATIVA 17. (2) Escreva um procedimento aplica-f-vector! que recebe um vector v e um procedimento unário f, e altera destrutivamente o vector original aplicando o procedimento a cada um dos elementos do vector. > (aplica-f-vector! (vector ) (lambda(x) (- x 1))) #( ) > (aplica-f-vector! (vector ) (lambda(x) (>= x 4))) #( ) 18. (2) Escreva os procedimentos dos exercícios 15 e 16 utilizando o procedimento aplica-f-vector!. 19. (2) Escreva um procedimento inverte-vector que recebe um vector, e devolve um novo vector que resulta de inverter o vector original. > (inverte (vector 3 2 4)) #(4 2 3) 20. (2) Escreva um procedimento vector-simetrico! que recebe como argumento um vector e que altera esse vector trocando os elementos nas posições simétricas em relação ao elemento que se encontra no centro do vector. > (vector-simetrico (vector 3 2 4)) #(4 2 3) 21. (2) Escreva um procedimento junta-vectores que recebe dois vectores, e devolve o vector que resulta de juntar o segundo vector ao final do primeiro. > (junta-vectores (vector 3 2 4) (vector 1 2 3)) #( ) > (junta-vectores (vector) (vector 4 5 3)) #(4 5 3) 22. (2) Escreva um procedimento selecciona-pares-vector que recebe um vector, e devolve o vector com todos os números pares do vector original. > (selecciona-pares-vector (vector )) #(4 2 4) > (selecciona-pares-vector (vector 7 3 5)) #() 23. (2) Escreva um procedimento selecciona-menores-vector que recebe um vector e um número n, e devolve o vector com todos os números do vector original menores que n. > (selecciona-menores-vector (vector ) 4) #(3 2) > (selecciona-menores-vector (vector 7 3 5) 1) #()
7 8.2. EXERCÍCIOS DE PROGRAMAÇÃO (2) Escreva um procedimento selecciona-primos-vector que recebe um vector, e devolve o vector com todos os números primos do vector original. > (selecciona-primos-vector (vector )) #(3 2) > (selecciona-primos-vector (vector )) #() 25. (2) Escreva um procedimento remove-elemento-vector que recebe um vector e um número n, e devolve o vector que resulta de remover todas as ocorrências do número n do vector original. Sugestão: utilize o procedimento numero-ocorrencias-vector do exercício 5. > (remove-elemento-vector (vector ) 4) #(3 2) > (remove-elemento-vector (vector 7 3 5) 1) #(7 3 5) 26. (2) Escreva um procedimento filtra-vector que recebe um vector v e um predicado p, e devolve o vector que resulta de ficar com todos os elementos do vector v que satisfazem o predicado p. Sugestão: utilize o procedimento conta-vector definido no exercício 6. > (filtra-vector (vector ) (lambda(x) (< 1 x 4))) #(3 2) 27. (2) Escreva os procedimentos dos exercícios 22, 23, 24 e 25 utilizando o procedimento filtra-vector. 28. (2) Escreva um procedimento posicao-vector que recebe um vector e um número, e devolve a posição da primeira ocorrência desse número no vector. Caso o número não ocorra no vector deverá devolver falso. > (posicao-vector (vector ) 4) 0 > (posicao-vector (vector ) 1) 4 > (posicao-vector (vector ) 6) 29. (2) Escreva um procedimento posicoes-vector que recebe um vector e um número, e devolve a lista de todas as posições em que o número ocorre no vector. > (posicoes-vector (vector ) 4) (0 5) > (posicoes-vector (vector ) 6) ()
8 86 CAPÍTULO 8. PROGRAMAÇÃO IMPERATIVA 30. (2) Escreva um procedimento posicoes-dos-pares-vector que recebe um vector, e devolve a lista de todas as posições do vector em que ocorrem números pares. > (posicoes-dos-pares-vector (vector )) ( ) > (posicoes-dos-pares-vector (vector )) () 31. (2) Escreva um procedimento posicoes-p-vector que recebe um vector e um predicado, e devolve a lista de todas as posições em que o elemento do vector satisfaz o predicado. > (posicoes-p-vector (vector ) (lambda(x) (< x 3))) (2 3 4) > (posicoes-p-vector (vector ) (lambda(x) (> x 4))) () 32. (2) Escreva os procedimentos dos exercícios 29 e 30 utilizando o procedimento posicoes-p-vector. 33. (2) Escreva um procedimento ordenado-vector? que recebe um vector de números, e devolve verdadeiro se o vector estiver ordenado de forma crescente e falso em caso contrário. > (ordenado-vector? (vector )) > (ordenado-vector? (vector )) 34. (2) Escreva um procedimento capicua-vector? que recebe um vector, e devolve verdadeiro se o vector for uma capicua e falso em caso contrário. > (capicua-vector? (vector )) > (capicua-vector? (vector )) > (capicua-vector? (vector )) 35. (2) Escreva um procedimento remove-duplicados-vector que recebe um vector v, e devolve a lista que resulta de ficar apenas com a primeira cópia de cada elemento de v. > (remove-duplicados-vector (vector )) ( ) > (remove-duplicados-vector (vector )) ( ) 36. (2) Escreva um procedimento elementos-repetidos-vector que recebe um vector, e devolve a lista com uma cópia de cada elemento que aparece repetido no vector.
9 8.2. EXERCÍCIOS DE PROGRAMAÇÃO 87 > (elementos-repetidos-vector (vector )) (3 4) > (elementos-repetidos-vector (vector )) () 37. (2) Defina um procedimento aplica que recebe como argumentos um vector e uma função, e devolve o resultado de aplicar essa função à soma dos elementos do vector. 38. (2) Defina um procedimento aplica-talvez! que recebe como argumentos um vector, um elemento, e um procedimento de um argumento, e que altera destrutivamente cada elemento do vector que não seja igual ao elemento recebido para o resultado produzido pelo procedimento recebido aplicado ao elemento do vector. > (define v (vector )) > v #( ) > (aplica-talvez! v 3 sqr) > v #( ) 39. (2) Defina um procedimento ocorre-par que recebe um vector e um objecto e devolve verdadeiro se o vector contiver esse objecto um número par de vezes e falso em caso contrário. Considere que 0 é um número par. > (ocorre-par (vector ) 2) > (ocorre-par (vector ) 2) 40. (2) Defina um procedimento vector->lista que recebe um vector e devolve uma lista com todos os elementos do vector. Pode utilizar as operações primitivas de listas e vectores que achar necessárias. > (vector->lista (vector )) ( ) 41. (3) Um acumulador é um funcional que recebe como argumentos uma lista e uma operação aplicável aos elementos da lista, e aplica sucessivamente essa operação aos elementos da lista original, devolvendo o resultado da aplicação da operação a todos os elementos da lista, no caso de ela não ser vazia. Defina acumuladores não destrutivos para vectores e listas, nas versões recursivas e usando ciclos. 42. (3) O procedimento ocorre-vector? do exercício 12 tem que percorrer todos os elementos do vector no caso de estar a procurar um elemento que não existe no vector. (a) No caso de o elemento a procurar existir no vector, quantos elementos do vector, em média, serão percorridos?
10 88 CAPÍTULO 8. PROGRAMAÇÃO IMPERATIVA (b) Supondo que o vector está ordenado por ordem crescente, defina um nova versão do procedimento ocorre-vector? que efectua uma procura sequencial mas que não tenha que percorrer todos os elementos do vector quando o elemento a procurar não existe no vector. (c) Em média, quantos elementos do vector são percorridos quando o número não existe no vector? E quando existe? 43. (3) Sabendo que o vector está ordenado por ordem crescente, é possível realizar uma procura binária, que é mais eficiente que a procura sequencial do exercício anterior. Esta procura baseia-se no facto de que se compararmos o elemento a procurar com o elemento do meio do vector podemos obter um de três resultados diferentes: 1) os dois elementos são iguais, o que significa que encontrámos o elemento que procurávamos; 2) o elemento do meio é menor, o que significa que o elemento que procuramos, se existir, estará na metade do vector com índices maiores; 3) o elemento do meio é maior, o que significa que o elemento que procuramos, se existir, estará na metade do vector com índices menores. Defina o procedimento procura-binaria-vector que realiza uma procura binária num vector. Qual a ordem de crescimento deste procedimento?
Fundamentos de Programação
Fundamentos de Programação Solução do Segundo Teste 23 de Janeiro de 2012 09:00 10:30 Nome: Número: 1. (1.0) Explique em que consiste a abstracção de dados, usando os termos barreiras de abstracção, encapsulação
Leia mais2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Leia maisExercícios da cadeira de Introdução à Programação
Exercícios da cadeira de Introdução à Programação Cláudia Antunes Ana Cardoso Cachopo João Cachopo Francisco Couto António Leitão Inês Lynce César Pimentel H. Sofia Pinto Ano Lectivo 2002/2003 Parte II
Leia maisFundamentos de Programação
Fundamentos de Programação Segundo Teste 9 de Junho de 2012 9:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 6 páginas com 12 perguntas. A cotação de cada pergunta está assinalada entre
Leia maisEstruturação de Procedimentos
Capítulo 4 Estruturação de Procedimentos 4. Exercícios de revisão. Diga o que entende por linguagem estruturada em blocos. Descreva a regra associada a esta estrutura, e diga qual a sua importância. 2.
Leia maisTextos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio
Computação e Programação Textos de apoio às aulas práticas Jaime Ramos, Francisco Miguel Dionísio DMIST, Dezembro de 2010 Parte I MATLAB 1 Capítulo 1 Exercícios preliminares 1. Defina a função conta divisores
Leia maisFundamentos de Programação
Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 21 de Abril de 2012 11:30 13:00 Nome: Número: Esta prova, individual e sem consulta, tem 5 páginas com 10 perguntas. A cotação de cada pergunta está assinalada
Leia maisExercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas
Exercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas Pedro Adão, Fausto Almeida, Ana Cardoso-Cachopo, Pedro Amaro de Matos (editores) Departamento de Engenharia Informática Instituto
Leia maisif not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)
Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b -, c - ) if not(isinstance(a,
Leia maisPROGRAMAÇÃO EM SCHEME:
Exercícios para PROGRAMAÇÃO EM SCHEME: Introdução à Programação Utilizando Múltiplos Paradigmas Departamento de Engenharia Informática Instituto Superior Técnico Universidade Técnica de Lisboa 2 Conteúdo
Leia maisAula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Leia maisFundamentos da Programação
Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada
Leia maisExercícios da cadeira de Inteligência Artificial. Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos
Exercícios da cadeira de Inteligência Artificial Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos Ano Lectivo 2001/2002 1 Prefácio Este documento reúne os exercícios
Leia maisTipo de argumentos. valor. argumentos
Operação Numero de argumentos Tipo de argumentos valor (+ ) 2 ou + Numérico Soma ( ) 2 ou + Numérico Subtração ( ) 1 Numérico Simétrico (/ ...) 2 ou + Numérico Divisão (cos
Leia maisif not(isinstance(a, int)) or a < 0: raise ValueError ( misterio: arg devia ser inteiro nao negativo ) else: return misterio_aux(a, a + 1)
Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b - 2, c - 2) if not(isinstance(a,
Leia maisAlgoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição
Algoritmos e Lógica de Programação 6ª Lista de Exercícios Comandos de Repetição 1. Qual a saída do programa abaixo? int i; for (i = 0; i < 10; i += 2) printf("%d\n", i / 2); 2. Qual a saída do programa
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisFundamentos de Programação
Fundamentos de Programação Segundo Teste 6 de Janeiro de 2010 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Segundo Teste 18 de Janeiro de 2013 09:00 10:30 1. (2.0) Escolha a única resposta incorrecta para as seguintes questões. Cada resposta certa vale 1 valor e cada resposta
Leia maisInteligência Artificial
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Guia de Exercícios das Aulas Práticas Inteligência Artificial Prof Joaquim Filipe Eng. Adelaide
Leia maisExercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas
Exercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas Pedro Adão, Fausto Almeida, Ana Cardoso-Cachopo, Pedro Amaro de Matos (editores) Departamento de Engenharia Informática Instituto
Leia maisFundamentos da Programação de Computadores
Universidade do Minho Escola de Engenharia Departamento de Sistemas de Informação Fundamentos da Programação de Computadores Licenciatura em Tecnologias e Sistemas de Informação 1º Ano 1º Semestre Ano
Leia maisFundamentos da Programação
Fundamentos da Programação Solução da Repescagem do Primeiro Teste 31 de Janeiro de 2013 09:00 10:30 1. De um modo sucinto, (a) (0.5) Diga o que é um processo computacional. Um processo computacional é
Leia maisFundamentos da Programação
Fundamentos da Programação Exame 9 de Janeiro de 2015 09:00 11:00 1. De um modo sucinto, explique o que é: (a) (0.5) Um processo computacional. Um ente imaterial que existe dentro de um computador durante
Leia maisa) Defina uma função para obter o máximo entre dois números
IP, Resoluções comentadas, Semana 2 jrg, vs 002, Out-2012 a) Defina uma função para obter o máximo entre dois números A versão mais imediata talvez seja esta: public static int maior ( int a, int b ) {
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 6 de Novembro de 200 09:00 0:30 SOLUÇÃO. (.0) Escolha a única afirmação incorrecta. Uma resposta certa vale valor e uma resposta errada desconta 0.4 valores. A.
Leia maisElementos Básicos de Programação
Capítulo 2 Elementos Básicos de Programação 1. Escreva um programa em Python que pede ao utilizador que lhe forneça dois números (x e y) equeescreveovalorde(x + 3 * y) * (x - y). Oseuprogramadevegerarumainteraçãocomoaseguinte:
Leia maisLista de Exercícios Estrutura de Repetição
Universidade Federal Fluminense Instituto de Computação Programação de Computadores III Luciana Brugiolo Gonçalves Lista de Exercícios Estrutura de Repetição E15. Desenvolva um algoritmo para exibir todos
Leia maisProgramação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Leia maisÍNDICE. PREFÁCIO xv. 3 PROCESSOS GERADOS POR PROCEDIMENTOS Recursão Linear Cálculo de potências Cálculo de factoriais 91
ÍNDICE PREFÁCIO xv 1 NOÇÕES BÁSICAS 1 1.1 Algoritmos 5 1.2 O Desenvolvimento de Programas 8 1.3 Programas em Scheme 11 1.3.1 Sintaxe e semântica 13 1.3.2 Construção de formas 15 1.4 Expressões 16 1.4.1
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação MIEA 1º Semestre Frequência Resolução 13/12/2016 1. Escreva uma expressão lógica em linguagem C para cada uma das seguintes condições: (a) o valor da variável
Leia maisFundamentosde Programação
Fundamentosde Programação Soluçãodo Primeiro teste 19 de Novembrode 2005 1. (1.0) Utilizando a notação BNF, apresente a definição completa da forma define. Explique cada um dos constituintes da sua definição.
Leia maisInteligência Artificial
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Guia de Exercícios Complementares de Lisp Inteligência Artificial Prof Joaquim Filipe Eng.
Leia maisSCC Capítulo 2 Recursão
SCC-501 - Capítulo 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
Leia maisInterpretador Hall - Calculando o MDC
Interpretador Hall - Calculando o MDC Veja no exemplo abaixo um algoritmo para se calcular o MDC (Maior Divisor Comum) entre dois números inteiros e positivos. O algoritmo implementa o método de Euclides
Leia mais>>> concatena_strings_lista([ ola,, bom,, dia! ]) ola bom dia!
Capítulo 5 Listas 1. (2) Escreva uma função concatena_strings_lista que recebe uma lista de cadeias de caracteres, e devolve uma cadeia de caracteres que resulta de concatenar todos os elementos da lista.
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 26 de Outubro de 2013 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Leia maisElementos Básicos de Programação
Capítulo 2 Elementos Básicos de Programação 1. Escreva um programa em Python que pede ao utilizador que lhe forneça dois números (x e y) equeescreveovalorde(x + 3 * y) * (x - y). Oseuprogramadevegerarumainteraçãocomoaseguinte:
Leia mais6. Pesquisa e Ordenação
6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação
Leia maisLista de Exercício de Linguagens de Programação Prog. Funcional
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE CIÊNCIA E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO Lista de Exercício de Linguagens de Programação Prog. Funcional 1) Construa uma função del_posicao_n ::
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 29 de Março de 2014 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Leia maisOficina: Programação para Android com o App Inventor. Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim
Oficina: Programação para Android com o App Inventor Profª. Alana Gama Licencianda em Ciências da Computação IF Baiano Campus Senhor do Bonfim Desenvolver o quinto Item da lista (Programação) Testa uma
Leia maisAlgoritmia e Programação
Algoritmia e Programação Conteúdo Pesquisa em Vectores Apresentação e discussão de vários algoritmos de pesquisa. Pesquisa linear ou sequencial Pesquisa binária Ordenação de Vectores Exemplos de aplicação
Leia maisExercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 27 de Outubro de 2012 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Leia maisNúmeros Primos, Fatores Primos, MDC e MMC
Números primos são os números naturais que têm apenas dois divisores diferentes: o 1 e ele mesmo. 1) 2 tem apenas os divisores 1 e 2, portanto 2 é um número primo. 2) 17 tem apenas os divisores 1 e 17,
Leia maisExercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
Leia maisAlgoritmo de Euclides Estendido, Relação de Bézout e Equações Diofantinas. Tópicos Adicionais
Algoritmo de Euclides Estendido, Relação de Bézout e Equações Diofantinas Relação de Bézout e Aplicações Tópicos Adicionais Algoritmo de Euclides Estendido, Relação de Bézout e Equações Diofantinas Relação
Leia maisCap Escrever uma função que aceite como parâmetro um número inteiro e retorne o número que corresponde a trocar os dígitos do parâmetro (por exe
Cap 1 - Escreva um programa que leia um número real e escreva, separadamente, a sua parte inteira e a sua parte fraccionária. - Escreva um programa que leia um número real e positivo e o converta para
Leia maisTécnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008
Leia maisExercícios de Teoria da Computação Computabilidade
Licenciatura em Engenharia Informática e de Computadores - LEIC Licenciatura em Engenharia de Redes de Computadores -LERC Exercícios de Teoria da Computação Computabilidade Secção de Lógica e Computação
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Revisão Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Exame 13 de Janeiro de 2017 09:00 11:00 1. Indique se cada uma das seguintes afirmações é verdadeira ou falsa. No caso de ser falsa, justifique de forma sucinta. (a)
Leia maisMATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco
MATEMÁTICA 1 Professor Matheus Secco MÓDULO 2 Divisibilidade 1. DIVISIBILIDADE 1.1 DEFINIÇÃO: Dizemos que o inteiro a é divisível pelo inteiro b (ou ainda que a é múltiplo de b) se existe um inteiro c
Leia maispuras um ou mais apenas mesmos
Funções Relembrando um dos objetivos do paradigma de programação funcional: Escrever funções puras Na prática, uma função pura apresenta as seguintes características: Possui um ou mais parâmetros; Realiza
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Exame 1 de Fevereiro de 2019 09:00 11:00 1. Usando palavras suas e, no máximo, em cinco linhas responda às seguintes questões. Respostas dadas através de exemplos
Leia maisMatemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017
Matemática Discreta Fundamentos e Conceitos da Teoria dos Números Professora Dr. a Donizete Ritter Universidade do Estado de Mato Grosso 4 de setembro de 2017 Ritter, D. (UNEMAT) Matemática Discreta 4
Leia maisPortal da OBMEP. Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano
Material Teórico - Módulo de Divisibilidade MDC e MMC - Parte 1 Sexto Ano Autor: Prof. Angelo Papa Neto Revisor: Prof. Antonio Caminha M. Neto 1 Máximo divisor comum Nesta aula, estudaremos métodos para
Leia maisDivisibilidade e Números primos. George Darmiton da Cunha Cavalcanti CIn - UFPE
Divisibilidade e Números primos George Darmiton da Cunha Cavalcanti CIn - UFPE Divisibilidade de inteiros Sejam a e b dois inteiros. Dizemos que a divide b, a é um divisor de b ou b é um múltiplo de a
Leia maisMatemática para Ciência dos Computadores 30 de Dezembro, Docente: Luís Antunes & Sandra Alves
Matemática para Ciência dos Computadores 30 de Dezembro, 2003 Docente: Luís Antunes & Sandra Alves Mais exercícios de MCC 1. Sejam p, q, r e p 1, p 2, p 3 as seguintes afirmações primitivas e premissas
Leia maisLayout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs
Layout Ao contrário de quase todas as linguagens de programação, o Haskell não necessita de marcas para delimitar as diversas declarações que constituem um programa. Em Haskell a identação do texto (isto
Leia maisLista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Leia maisAula 7 - Mais problemas com inteiros
Aula 7 - Mais problemas com inteiros Já vimos nas aulas anteriores alguns detalhes de operações com inteiros. a) A divisão é inteira e o resultado é truncado b) Existe o operador % (resto da divisão) c)
Leia maisLista de Exercícios sobre Recursividade
Lista de Exercícios sobre Recursividade 1) Dado os algoritmos recursivos abaixo, apresente suas funções de complexidade de tempo. a) void Pesquisa(int n) if (n > 1) Inspecione n*n*n elementos; // custo
Leia maisFicha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Leia maisLista de Exercícios 06 Modularização (Procedimentos e Funções)
Lista de Exercícios 06 Modularização (Procedimentos e Funções) Procedimentos: Passagem de parâmetros. 1) Escreva um procedimento que receba um número inteiro e imprima o mês correspondente ao número. Por
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisPesquisa sequencial e pesquisa binária
Pesquisa sequencial e pesquisa binária Armando Matos Departamento de Ciência de Computadores Universidade de Porto 2008 2 problemas importantes... Pesquisa: Procurar um valor numa lista ou, por exemplo,
Leia maisÁrvores Binárias de Busca
0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).
Leia maisFundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.
1 INSTRUÇÃO DE SAÍDA Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018 Exercícios 1 Instrução de Saída 1. Implementar um programa
Leia maisExercícios da cadeira de Introdução à Programação. Ana Cardoso Cachopo João Cachopo António Leitão
Exercícios da cadeira de Introdução à Programação Ana Cardoso Cachopo João Cachopo António Leitão Ano Lectivo 2000/2001 1 Prefácio Este documento reúne os exercícios propostos nas aulas práticas da cadeira
Leia maisConceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
Leia maisPesquisa: operação elementar
Pesquisa: operação elementar uma das operações mais usadas em programação pesquisas em: vectores, matrizes, tabelas de registos, ficheiros, tipos de dados estruturados (hierarquicos),... necessidade de
Leia maisFunções. Capítulo (2) Considere a seguinte interacção em Python: >>> def f1(x):... return x * x... >>> f1(5) 25 >>> f2 = f1 >>>
Capítulo 3 Funções 1. (2) Considere a seguinte interacção em Python: def f1(x): return x * x f1(5) 25 f2 = f1 (a) Qual o valor retornado pela chamada f2(5)? Justifique a sua resposta. (b) Suponha que agora
Leia maisExame de Programação Imperativa
Exame de Programação Imperativa Exercício 1. Rodar uma letra Escreva uma definição da função char rodar_letra(char ch); para efetuar uma rotação por uma posição de um carater representado uma letra: A
Leia mais4.1 Cálculo do mdc: algoritmo de Euclides parte 1
page 92 92 ENCONTRO 4 4.1 Cálculo do mdc: algoritmo de Euclides parte 1 OAlgoritmodeEuclidesparaocálculodomdcbaseia-senaseguintepropriedade dos números naturais. Observamos que essa propriedade está muito
Leia maisDefinição. Diremos que um número inteiro d é um divisor de outro inteiro a, se a é múltiplo de d; ou seja, se a = d c, para algum inteiro c.
Divisores Definição. Diremos que um número inteiro d é um divisor de outro inteiro a, se a é múltiplo de d; ou seja, se a = d c, para algum inteiro c. Quando a é múltiplo de d dizemos também que a é divisível
Leia maisResolva os exercícios utilizando a linguagem de programação C
MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO CAMPUS DE PRESIDENTE EPITÁCIO Resolva os exercícios utilizando a linguagem de programação C 1 Manipulação de dados
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Leia maisFilas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:
Filas de Prioridade e Heaps 9.1 Filas de Prioridade Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: inserir um elemento na fila; remover o elemento
Leia maisLista Encadeada (Linked List)
Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de
Leia maisIntrodução à Ciência da Computação (ICC) PROVA P2 Sexta-feira 1 de Junho de 2001
Introdução à Ciência da Computação (ICC) 2001.1 PROVA P2 Sexta-feira 1 de Junho de 2001 Nome do Aluno: Matrícula PUC: Questões P2 Revisão 1 (1.5) 2 (1.5) 3a (1.0) 3b (1.0) 3c (1.0) 3d (1.0) 4 (2.0) Prova
Leia maisCorreção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre
Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do exame 12 de Janeiro de 2018 09:00 11:00 1. Indique se cada uma das seguintes afirmações é verdadeira ou falsa. No caso de ser falsa, justifique de forma sucinta. (a)
Leia maisListas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisCapítulo 4- Procedimentos como objectos de 1ª classe
Capítulo 4- Procedimentos como objectos de 1ª classe Procedimentos com um número não fixo de argumentos Procedimentos como argumentos Procedimentos como valores de retorno Procedimentos como elementos
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 3 Tipos, Expressões,Operadores Tipos de dados Variáveis Constantes Constantes Simbólicas Expressões Operadores aritméticos, relacionais
Leia maisFicheiros. Capítulo 8
Capítulo 8 Ficheiros 1. (2) Escreva a função concatena que recebe uma lista de cadeias de caracteres, cada uma correspondendo ao nome de um ficheiro, e uma cadeia de caracteres, correspondendo ao nome
Leia mais- Dizemos que um número é divisor de outro quando o resto da divisão é igual a zero. Ex.: 5 é divisor de 30, pois 30: 5 = 6 e o resto é 0.
Noções conceituais MDC - Dizemos que um número é divisor de outro quando o resto da divisão é igual a zero. Ex.: 5 é divisor de 30, pois 30: 5 = 6 e o resto é 0. - Todo número natural é produto de dois
Leia maisBCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 05 Modularização
BCC Introdução à Programação (4-) Prof. Reinaldo Silva Fortes Funções: Passagem de parâmetros. Prática 5 Modularização ) Escreva uma função que receba um número inteiro e imprima o mês correspondente ao
Leia maisTipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Leia maisLista de Exercícios 03a Algoritmos Repetição. 1) Escreva um algoritmo em PORTUGOL que imprima todos os números inteiros de 0 a 50.
Universidade Federal de Minas Gerais - UFMG Instituto de Ciências Eatas - ICE Disciplina: Programação de Computadores Professor: David Menoti (menoti@dcc.ufmg.br) Monitor: João Felipe Kudo (joao.felipe.kudo@terra.com.br)
Leia mais5. De um bloco formado por cubos retiraram-se alguns cubos como mostra a figura. Quantos cubos foram retirados?
AGRUPAMENTO DE ESCOLAS D. JOSÉ I - VRSA MATEMÁTICA 6.º ANO 014/1 NOME N.º Turma Nas questões 1 a, assinale com x a opção correta. 1. O valor de 4 : 4 10. A soma de dois números negativos é um número: Positivo
Leia mais(a) Indique, em português, o que realiza a seguinte função. [4 pontos]
Universidade Federal do ABC Avaliação: Prova 02 Disciplina: MCTA028 - Programação Estruturada Turma: Noturno - A1 Professor: Jesús P. Mena-Chalco Data: 01/12/2016 Nome completo: RA: Instruções para a prova
Leia maisTeoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014
Teoria da Computação 2013/2014 Exercícios 1 Máquinas de Registos Ilimitados 1. Construa programas URM sem módulos que calculem as seguintes funções (a) quatro(x) = 4 (b) sg(x) retorna 0 se x > 0, 1 no
Leia maisAnálise e Desenvolvimento de Algoritmos (2006/2007)
Análise e Desenvolvimento de Algoritmos (2006/2007) Alguns desenvolvimentos em série de Taylor: e x = 1 + x + x2 2! + x3 3! + + xn n! +, x IR sin(x) = x x3 3! + x5 5! x7 7! +, x IR cos(x) = 1 x2 2! + x4
Leia mais