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:

Documentos relacionados
Computação e Programação (2009/2010-1º Semestre)

TÉCNICO DE INFORMÁTICA - SISTEMAS

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

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Exame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE

Desenho de algoritmos

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008

Introdução à Programação

Programação: Vetores

CADERNO DE EXERCÍCIOS ALGORITMOS

PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

Computação e Programação

Cell arrays e estruturas: exemplos

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Exercícios de VBA. Paulo Melo Joana Dias Óscar Lourenço 17 de Maio de 2006

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

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

Aula Teórica 06. Material Didático Proposto. Conteúdos da Aula. Estruturas de Repetição Exercícios

Instruções de repetição

4ª Lista de Exercícios de Programação I

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

PROVA ESPECÍFICA MODELO. Duração da prova: 120 minutos

Algoritmo e Introdução a Programação. Prof. Josino Rodrigues

Conceitos básicos de programação

Computação e Programação (2007/2008-1º Semestre)

Aula 4 Objetivos if/else while

Introdução à Programação. Vanessa Braganholo

CONCEITOS DE ALGORITMOS

Programação de Computadores:

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Para cada programa, por mais simples que seja, comece sempre por esboçar a solução desenhando um fluxograma.

MC102 Algoritmos e Programação de Computadores

PROVA MODELO Duração da prova: 120 minutos

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

Matemática. Versão 1 COTAÇÕES. Teste Intermédio de Matemática. Versão 1. Teste Intermédio. Duração do Teste: 90 minutos

Programação de Computadores:

Introdução à Algoritmos INF 1005 e INF Programação I

REVISÕES DA SESSÃO ANTERIOR

Slides trabalhados durante a quinta aula

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Linguagem C (estruturas condicionais)

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

Prova Escrita de Matemática

Algoritmo e Programação Matemática

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

Introdução à Programação LP JAVA

ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza

Introdução ao MATLAB. Parte 2

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

Nome: N.º: Turma: Classificação: Professor: Enc. Educação:

Grupo B Estruturas de Repetição

Matemática A. Teste Intermédio Matemática A. Versão 1. Teste Intermédio. Versão 1. Duração do Teste: 90 minutos º Ano de Escolaridade

Algoritmos e Estruturas de Dados. Grupo 1

Algoritmos e Programação I

LISTA DE ATIVIDADES ...

Introdução à Computação. Estruturas de Decisão. ISEP DEI, Angelo Martins 2006 Estruturas de Decisão - 1

Introdução à Programação

Teste Intermédio de Matemática A Matemática A Versão 1 10.º Ano de Escolaridade COTAÇÕES GRUPO I 50 pontos GRUPO II 150 pontos

LP II Estrutura de Dados

Instruções de repetição

Pretende-se calcular uma aproximação para a menor raiz positiva da equação

Introdução à Lógica de Programação

Programação de Computadores III

Iteração e Pontos Fixos

Estruturas de controle: Estrutura de DECISÃO

CURSO BÁSICO DE PROGRAMAÇÃO AULA 6. Revisão Laços de Repetição

1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de º Semestre

Linguagens de programação. Introdução ao C (continuação)

Leitura e Validação de Dados I

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

Programação Universidade da Beira Interior Departamento de Informática 2007/08

Tópicos avançados sobre funções

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Algoritmos e Programação

ESTRUTURAS DE CONTROLE

Comandos em C (cont.)

Linguagem de Programação I. Aula 03 Estruturas de Controle

Programação de Computadores III

Projecto e Desenvolvimento de Programas

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Introdução à Programação em C

Computação e Programação. MEMec - LEAN 1º Semestre

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Conceitos Básicos de Algoritmos

Sintaxe Básica de Java Parte 2

INTRODUÇÃO AO SCILAB

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

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

Lógica de Programação Atividade Avaliativa 1 RESPOSTAS

LISTA DE EXERCÍCIOS - ro. 04

double x; x = enigmab1(100);

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

JSP Prof. Daniela Pires. VARIAVEIS... 2 Tipos de Dados... 2 String Float Integer Boolean... 3

Transcrição:

Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha, e número, primeiro e último nome nas restantes. Não desagrafe as folhas. Não se tiram dúvidas durante a realização do teste. O teste é sem consulta. Escreva as suas respostas nos espaços indicados. Pode utilizar as duas últimas folhas como rascunho ou, caso tenha falta de espaço, para responder a questões (deve identificar a questão); Nas perguntas de Verdadeiro e Falso assinale as respostas como no quadrado respectivo. Caso queira emar uma resposta, risque completamente o quadrado respectivo e coloque à esquerda da opção que considera correcta o símbolo. Cada resposta errada nas perguntas de escolha múltipla desconta metade da cotação da pergunta (na cotação global do teste)! Inicie o teste apenas quando o docente der indicação. Nome Número 1/16

2/16

P1 Escolha múltipla (4.5 valores) NOTA IMPORTANTE: cada resposta errada nas perguntas de escolha múltipla desconta metade da cotação da pergunta (na cotação global do teste). 1.a) Um algoritmo é: (0.75v) Seleccione a resposta correcta: Uma sequência de instruções máquina que determinam como o computador irá resolver um dado problema Uma sequência ordenada de tarefas, escritas em pseudo-código, com a finalidade de resolver um dado problema Uma lista não ordenada de tarefas a ser implementadas numa linguagem de programação Nenhuma das anteriores 1.b) A abordagem top-down utiliza-se para dividir os problemas complexos em problemas mais simples até que: (0.75v) Seleccione a resposta correcta: O código do programa esteja completo, resolvo o problema original. Esteja definida uma sequência ordenada de tarefas simples que devem ser cumpridas para se resolver o problema original. Os problemas simples sejam iguais entre si. Nenhuma das anteriores 1.c) Qual dos símbolos representa um operador lógico na linguagem do Matlab? (0.75v) Seleccione a resposta correcta: ~= ~ >= == Nenhuma das anteriores 3/16 Número: Primeiro e Último Nome

1.d) Numa função em Matlab o âmbito de um parâmetro de saída é: (0.75v) Seleccione a resposta correcta: O ambiente de trabalho A própria função A função ou script onde é feita a chamada à função Todo o Matlab Nenhuma das anteriores 1.e) Em que circunstância escolheria utilizar um ciclo controlado por um contador? (0.75v) Seleccione a resposta correcta: Quando for desconhecido o número de vezes a executar a repetição Sempre que não for desejada nenhuma a repetição Quando a repetição for para ser executada um número conhecido N de vezes Nenhuma das anteriores 1.f) No Matlab, por omissão, as variáveis são do tipo: (0.75v) Seleccione a resposta correcta: Lógico Double Caracter Nenhuma das anteriores 4/16

P2 Análise de código em Matlab (4.5 valores) 2.a) Qual é ou quais são os resultados apresentados no monitor, para cada um dos seguintes 3 programas (scripts)? programa1.m a = 6; for i = 1:3:a for j = 1:4:a fprintf('%d\t',i+j) fprintf('\n') RESPOSTA: 2 6 5 9 (1.5v) programa2.m a=0; while (a<3) a=func1(a); fprintf('\n%.2f',a); fprintf('\n'); func1.m function b = func1(a) b = a+1; fprintf('\n%.1f',a); RESPOSTA: 0.0 1.00 1.0 2.00 2.0 3.00 (1.5v) 5/16 Número: Primeiro e Último Nome

programa3.m x = 0; y = 0; for k=10:-5:x z = func2(y,k); disp(z(1)) y = 2*y -1; func2.m function [res] = func2(val1,val2) res = [val1+val2, val1-val2]; RESPOSTA: 10 4-3 (1.5v) 6/16

P3 Análise de Problema e Algoritmo (5 valores) NOTA IMPORTANTE: a robustez dos programas ao tipo de entrada apenas deve ser considerada quando explicitamente pedida no enunciado da pergunta! 3. As raízes de um polinómio de segunda ordem podem ser calculadas utilizando a fórmula resolvente, onde e 0. Prete-se escrever um programa que determine o tipo das raízes do polinómio, de acordo com a seguinte classificação: Exemplo de saída:, duas raízes reais distintas, uma raiz dupla, duas raízes complexas distintas a b c Tipo das raízes 2 5 1 2 raízes reais distintas 0.25 1 1 1 raiz dupla 5 5 5 2 raízes complexas distintas 3.a) Descreva o contexto do problema Determinar o tipo das raízes de um polinómio de segunda ordem. (0.2v) 3.b) Descreva o esquema de processamento (0.3v) Entradas: Saídas: a, b, c a, b, c, tipo das raízes 3.c) Descreva as especificações funcionais e requisitos (1.0v) Especificações Funcionais - Pedir, ao utilizador, os valores de a, b e c; - Determinar o valor de Δ; - Mediante o valor de Δ, apresentar no monitor os valores de a,b, c e o tipo das raízes. Requisitos - o valor do coeficiente a tem que ser diferente de zero. 7/16 Número: Primeiro e Último Nome

3.d) Descreva o fluxo de dados (0.6v) Utilizador Programa Introduz os valores dos coeficientes Pede ao utilizador os valores dos coeficientes Apresenta os valores dos coeficientes e o tipo das raízes do polinómio 3.e) Descreva os métodos de processamento (0.2v) 3.f) Descreva a abordagem top-down (0.5v) Tipo de raízes Obter coeficientes Calcular Δ Apresentar resultados Pedir coeficientes Ler valores introduzidos 8/16

3.g) Descreva a lista de tarefas (0.8v) Pedir coeficientes Ler valor introduzidos Calcular Δ Apresentar resultados 3.h) Descreva o algoritmo (1.4v) 1) Pedir valores dos coeficientes a, b e c. 2) Ler valores de a, b e c para coef_1, coef_2 e coef_3, respectivamente. 3) Repetir enquanto coef_1 = 0: a) Pedir valores dos coeficientes a, b e c. b) Ler valores de a, b e c para coef_1, coef_2 e coef_3, respectivamente. 4) Calcular delta = coef_2 2-4 coef_1 coef_3. 5) Apresentar os valores de coef_1, coef_2 e coef_3. 6) Se delta > 0 apresentar mensagem: 2 raízes reais distintas. Caso contrário: a) Se delta = 0 apresentar mensagem: 1 raiz dupla. Caso contrário: apresentar mensagem: 2 raízes complexas distintas. 9/16 Número: Primeiro e Último Nome

10/16

P4 Codificação (6 valores) NOTA IMPORTANTE: a robustez dos programas ao tipo de entrada apenas deve ser considerada quando explicitamente pedida no enunciado da pergunta! 4.a) Escreva na linguagem do Matlab uma função denominada procuraaluno correspondo às seguintes especificações: (3.0v) Parâmetros de entrada: numaluno número de um aluno, escalar, valor inteiro matrizdealunos matriz em que cada linha corresponde aos dados de um aluno. Cada coluna possui a seguinte informação: [Núm. de aluno][nota 1ºtrab][nota 2ºtrab][nota 1ºTeste][nota 2ºTeste][nota 1ºExame][nota 2ºExame] Parâmetros de saída: numlinha número da linha, escalar, valor inteiro A função deve devolver o número da linha da matriz em que o aluno foi encontrado. Caso o aluno não seja encontrado deve devolver o valor zero. function numlinha = procuraaluno(numaluno,matrizdealunos) numlinha=0; [lin,col]=size(matrizdealunos); for k=1:lin if (matrizdealunos(k,1)==numaluno) numlinha=k; return % opcional 11/16 Número: Primeiro e Último Nome

4.b) Escreva na linguagem do Matlab um script que lê a partir de um ficheiro, denominado dados.mat, a matriz matrizdealunos especificada na alínea 4.a). O script deve pedir ao utilizador um número de aluno e verificar se este é um valor inteiro. Caso não o seja, deve apresentar a mensagem respectiva ao utilizador, e pedir novamente o número. Caso o valor seja inteiro, deve ser utilizada a função procuraaluno especificada na alínea 4.a), e ser apresentado ao utilizador a nota do 2º Trabalho do aluno, apenas com uma casa decimal. Caso o aluno não exista na matriz matrizdealunos a mensagem respectiva deve ser apresentada no monitor. Não é necessário que o programa funcione ciclicamente. O programa deve utilizar a função definida na alínea 4.a) para procurar o aluno. (3.0v) clear all; clc; close all; load dados.mat matrizdealunos; pede_num = true; while(pede_num) numero = input('\nescreva o número de aluno [val. inteiro]: '); if (round(numero)==numero) pede_num=false; num_linha = procuraaluno(numero,matrizdealunos); if (num_linha~=0) else fprintf('\nnota do 2º trabalho: %.1f\n', matrizdealunos(num_linha,3)); fprintf('\no aluno nº %d não existe!\n',numero); 12/16

13/16 Número: Primeiro e Último Nome

14/16

15/16 Número: Primeiro e Último Nome

16/16