Aluno: No. 3ª. Avaliação 25 pontos

Documentos relacionados
Aluno: No. Exame Especial 100 pontos

Aluno: No. 3ª. Avaliação 32/30 pontos (2 pontos extras)

Lista de Exercícios 06 Modularização (Procedimentos e Funções) Todos os algoritmos devem ser descritos em PORTUGOL e implementados em Pascal e Matlab.

Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM

Lista de Exercícios 03b Algoritmos Repetição

Solução da Lista de Exercícios Algoritmos - 01

Lista de Exercícios 03a Algoritmos Repetição

Lista de Exercícios 03 Algoritmos Repetição

Lista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números

Lista de Exercícios Algoritmos Vetores

Lista de Exercícios 03a Algoritmos Repetição. 1) Escreva um algoritmo em PORTUGOL que imprima todos os números inteiros de 0 a 50.

Lista de Exercícios 06 Modularização (Procedimentos e Funções)

Lista de Exercícios 02 Algoritmos Estrutura Condicional

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

2. Construa um algoritmo para determinar os números primos menores ou iguais a 1000.

Lista de Exercícios 06 Modularização (Procedimentos e Funções)

Lista de Exercícios 06 Modularização (Procedimentos e Funções)

Lista de Exercícios 01 Algoritmos Seqüência Simples

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Lista de Exercícios 03a Algoritmos Repetição. 1) Escreva um algoritmo em PORTUGOL que imprima todos os números inteiros de 0 a 50.

Computação Eletrônica

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 05 Modularização

Lista de Exercícios Algoritmos Repetição. 1) Escreva um algoritmo em PORTUGOL que imprima todos os números inteiros de 0 a 50.

Lista de Exercícios 05 Estruturas de Dados Homogêneas - Matrizes

Lista de Exercícios 02 Algoritmos Estrutura Condicional

Elementos básicos das linguagens de programação

Resumo 2 - Mapeamento Portugol-Pascal

Algoritmos e Técnicas - Estruturas de Controle de Fluxo Laboratório

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Linguagem de programação: Pascal

Ciência da Computação

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

Modularização. Prof. Antonio Almeida de Barros Junior

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Exercícios. Resposta: a) var valor: real; i: integer. b)

Computação Eletrônica

Estrutura Condicional em Pascal

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Exercícios sobre o Capítulo III

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

p A modularização consiste num método utilizado para facilitar a construção de grandes programas;

Disciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

6) ESTRUTURA DE UM PROGRAMA

Estruturas de Controle. Estrutura de Seleção. Estrutura de Seleção

3. 1. Teste no Início do Ciclo (Repetição enquanto ):

Linguagem Algorítmica OO. Linguagem Algorítmica

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

Aula 8 Comandos de Seleção

PROF. MARCIO FERREIRA DE JESUS

Lista de Exercícios sobre Recursividade

Notas de Aula de Algoritmos e Programação de Computadores

Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM

Linguagem Pascal. Prof. Jonatas Bastos Site:

Introdução à Ciência da Computação

Algoritmos e Programação

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

LISTA DE EXERCÍCIOS: 1ª Unidade

Programação Introdução

Teste de P1 12 de Dezembro 2001

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Aula 11: Laços e exercícios

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Lista de Exercícios 02 Algoritmos Estrutura Condicional

Gabarito dos Exercícios da Apostila

Computação Eletrônica

Controle de Fluxo Comandos de repetição

Estruturas de Controle

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

Teste de Introdução à Computação 11 de Junho 2003, 17:00-19:00 (Duração: 2 horas) Universidade do Algarve

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

ALGORITMOS + PASCAL. Métodos de Pesquisa

TCC 00308: Programação de Computadores I Introdução

INFORMÁTICA PARA ENGENHARIA ESTRUTURAS DE DECISÃO. Prof. Dr. Daniel Caetano

Linguagens de Programação Aula 14

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Estruturas de Repetição

Aula 4 Estrutura Condicional

Introdução à Programação 2006/07. Algoritmos

Estrutura de Decisão - Case

Introdução à Computação II Unesp Rio Claro 2012Prof. Rafael Oliveira

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Recursão. Definição. Características. Recursividade 31/08/2010

Aulas Anteriores. Detalhes da linguagem de programação

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Linguagem de Programação Pascal - Introdução

Análise e Desenvolvimento de Algoritmos (2006/2007)

Subprogramação. Subprogramação. Subprogramação. A subprogramação é uma ferramenta que contribui com a tarefa de programar:

Transcrição:

Universidade Federal de Minas Gerais - UFMG Data: 22/06/2005 Instituto de Ciências Exatas - ICEx Disciplina: Programação de Computadores Professor: David Menoti (menoti@dcc.ufmg.br) Monitor: João Felipe Kudo (joao.felipe.kudo@terra.com.br) Aluno: No. A prova é individual e sem consulta, exceto o contido em sua mente; A interpretação das questões faz parte da avaliação; Faça as observações que achar necessário, por escrito, na folha de reposta; É obrigatório que as iáveis usadas dentro das funções e nos programas sejam diferentes; Em vez de apresentar o algoritmo em PORTUGOL, é permitido implementar as funções e os algoritmos em PASCAL ou MATLAB. No entanto, somente uma forma de expressão será aceita como resposta para cada questão. 3ª. Avaliação 25 pontos 1) (10 pontos) Escreva um procedimento em PORTUGOL que receba um número N, e imprima os N-menores números primos. O procedimento deve emitir uma mensagem de erro caso o parâmetro N passado seja inválido. Escreva também um algoritmo que execute o procedimento, passando a ele um número. 2) (5 pontos) Uma função do primeiro grau, em R 2, pode ser definida por dois pontos não coincidentes. Escreva uma função em PORTUGOL que receba quatro parâmetros X 1, Y 1, X 2 e Y 2 que correspondam à estes dois pontos e calcule: - o coeficiente angular (m); - o coeficiente linear (k), onde: Y1 Y2 m = k = Y1 mx1 = Y2 mx 2 X 1 X 2 os valores de m e k devem ser retornados por referencia. A função deve retornar 1, caso seja possível definir tal função, e 0 em caso contrário. Escreva também um algoritmo para testar a função criada. 3) (10 pontos) O mínimo múltiplo comum (M.M.C.) entre dois números inteiros e positivos X e Y é definido como sendo o menor inteiro positivo, que seja múltiplo comum a X e Y. Pede-se que seja criada uma função recursiva (não serão aceitas funções não recursivas) para o cálculo do M.M.C., onde a função deverá retornar 0 caso não seja possível computar o M.M.C. e o valor do M.M.C. entre X e Y em caso contrário. Então, apresenta-se a seguinte definição recursiva que deve ser implementada: Z X / Z, Y / Z), se X mod Z = 0 e Y mod Z = 0 para 1 < Z X, Y M. M. X, Y ) = Z X / Z, Y ) se X mod Z = 0 e Y mod Z 0 para1 < Z X, Y Z X, Y / Z ) se X mod Z 0 e Y mod Z = 0 para1 < Z X, Y M. M. 1,1) = 1 Escreva também um algoritmo para testar a função criada. UFMG ICEx DCC Programação de Computadores 1º. Sem 2005 David Menoti 1

inteiro : N; procedimento NPRIMO(inteiro : N); inteiro : I, J, K ; lógico : SIT; se ( N <= 0 ) então imprima("erro, N (",N,") invalido!"); K <- 2; { numero primo candidato } I <- 1; enquanto (I <= N) faça: SIT <- verdadeiro; J <- 2; enquanto ( SIT ) e ( J < K ) faça: se ( K mod J = 0 ) então SIT <- falso; J <- J + 1; -enquanto se ( SIT ) então imprima(i,"o. numero primo eh: ",K); I <- I + 1; K <- K + 1; -enquanto leia(n); NPRIMO(N); program T3Q1; N : integer; procedure NPRIMO(N : integer); I, J, K: integer ; SIT: boolean; if N <= 0 then writeln('erro, N (',N,') invalido!') K := 2; { numero primo candidato } I := 1; while (I <= N) do SIT := true; J := 2; while ( SIT ) and ( J < K ) do if ( K mod J = 0 ) then SIT := false; J := J + 1; if ( SIT ) then writeln(i,'o. numero primo eh: ',K); I := I + 1; K := K + 1; write('digite um numero: '); read(n); NPRIMO(N); UFMG ICEx DCC Programação de Computadores 1º. Sem 2005 David Menoti 2

real : X1L, Y1L, X2L, Y2L, ML, KL; função EQ1(real : X1, Y1, X2, Y2; real : M, K ) : real; se ( X1 - X2 = 0 ) então EQ1 <- 0; EQ1 <- 1; M <- ( Y1 - Y2 ) / ( X1 - X2); K <- Y1 - M * X1; leia(x1l,y1l); leia(x2l,y2l); se ( EQ1(X1L,Y1L,X2L,Y2L,ML,KL) = 0 ) então imprima("impossivel calcular M e K"); imprima("m = ",ML,", K = ",KL); program T3Q2; X1L, Y1L, X2L, Y2L, ML, KL : real; function EQ1(X1, Y1, X2, Y2 : real; M, K : real) : real; if ( X1 - X2 = 0 ) then EQ1 := 0 EQ1 := 1; M := ( Y1 - Y2 ) / ( X1 - X2); K := Y1 - M * X1; write('ponto 1 ( X1, Y1 ): '); readln(x1l,y1l); write('ponto 2 ( X2, Y2 ): '); readln(x2l,y2l); if EQ1(X1L,Y1L,X2L,Y2L,ML,KL) = 0 then writeln('impossivel calcular M e K') writeln('m = ',ML:4:4,', K = ',KL:4:4); UFMG ICEx DCC Programação de Computadores 1º. Sem 2005 David Menoti 3

inteiro : A, B, VAL ; função MMC(inteiro : X, Y) : inteiro; lógico : SIT; inteiro : Z; se ( X <= 0 ) ou ( Y <= 0 ) então MMC <- 0; se ( X = 1 ) e ( Y = 1 ) então MMC <- 1; Z <- 2; SIT <- verdadeiro; enquanto ( SIT ) e ( ( Z <= X ) ou ( Z <= Y ) ) faça: se ( X mod Z = 0 ) ou ( Y mod Z = 0 ) então SIT <- falso; Z <- Z + 1; -enquanto se ( X mod Z = 0 ) e ( Y mod Z = 0 ) então MMC <- Z * MMC(X div Z,Y div Z); se ( X mod Z = 0 ) e (Y mod Z <> 0 ) então MMC <- Z * MMC(X div Z, Y); { ( X mod Z <> 0 ) e ( Y mod Z = 0 ) } MMC <- Z * MMC(X, Y div Z); leia(a,b); VAL <- MMC(A,B); se ( VAL <> 0 ) então imprima(val); imprima("impossivel calcular MMC de ",A," e ",B); UFMG ICEx DCC Programação de Computadores 1º. Sem 2005 David Menoti 4

program T3Q3; A, B, VAL : integer; function MMC(X,Y: integer) : integer; SIT : boolean; Z : integer; if ( X <= 0 ) or ( Y <= 0 ) then MMC := 0 if ( X = 1 ) and ( Y = 1 ) then MMC := 1 Z := 2; SIT := true; while ( SIT ) and ( ( Z <= X ) or ( Z <= Y ) ) do if ( X mod Z = 0 ) or ( Y mod Z = 0 ) then SIT := false Z := Z + 1; if ( X mod Z = 0 ) and ( Y mod Z = 0 ) then MMC := Z * MMC(X div Z,Y div Z) if ( X mod Z = 0 ) and (Y mod Z <> 0 ) then MMC := Z * MMC(X div Z, Y) { ( X mod Z <> 0 ) and ( Y mod Z = 0 ) } MMC := Z * MMC(X, Y div Z); write('entre com um numero: '); readln(a); write('entre com um numero: '); readln(b); VAL := MMC(A,B); if ( VAL <> 0 ) then writeln(val) writeln('impossivel calcular MMC de ',A,' e ',B); UFMG ICEx DCC Programação de Computadores 1º. Sem 2005 David Menoti 5