COMPUTAÇÃO E PROGRAMAÇÃO

Documentos relacionados
Computação e Programação 201*/201* - 1º Semestre

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

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:

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

Computação e Programação (2010/2011-1º Semestre)

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012

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

Computação e Programação

COMPUTAÇÃO E PROGRAMAÇÃO

Introdução à Programação. Ciclos 2ª parte

Computação e Programação (2010/2011-1º Semestre)

MATLAB. Programação básica

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Computação e Programação. Exame Época Normal

Computação e Programação

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Computação e Programação Exame Época de recurso

Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Apresentação do projecto

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

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

Computação e Programação Exame Época de recurso

Tópicos avançados sobre funções (cont.)

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003

Lista de Exercícios Programação Procedimental Universidade Federal de Uberlândia

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010

Apontadores/ponteiros

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Introdução à Programação

Introdução à Programação em C

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função.

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos]

Introdução à Programação. Ciclos 1ª parte

Computação e Programação. Exame Época de Recurso

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS

UNIVERSIDADE DA BEIRA INTERIOR

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Programação em MATLAB

Computação e Programação Exame Resolvido 1ª Época

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

LEI 2016 LICENCIATURA EM ENGENHARIA INFORMÁTICA

MAC 2166 Introdução à Computação para Engenharia

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

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

C/C++; biblioteca stdio

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Introdução à Programação em C Input / Output

Computação e Programação

O objetivo deste questionário é levá-lo a rever os fundamentos da linguagem C. Nomeadamente, a utilização de instruções de seleção e de repetição.

Introducao a Programacao Estruturas de decisão

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

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

Introdução à Programação

Introdução à Programação em C (II)

Computação e Programação

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

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

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

Legibilidade do código fonte

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Estruturas de Repetição

Computação e Programação

UNIVERSIDADE DA BEIRA INTERIOR

Aula teórica: /6. Enunciado

LEIA ATENTAMENTE AS INSTRUÇÕES PARA A RESOLUÇÃO DO

Introdução à Programação

Módulo 3 Controle de Fluxo

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Terceira Aula Prática - 10 de setembro de 2010

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

Programação Estruturada Aula - Estruturas de Repetição

Modularidade - Funções e Procedimentos

Treinamento Olimpíada Brasileira de Informática

FUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

C Comandos de Controle

Informática para as Ciências e Engenharias - 2º semestre 2017/2018

Trabalho Linguagem e Programação de Compiladores

Computação e Programação

Instituto de Física Segundo Semestre de Diurno. Prova Substitutiva 15/12/2000

GFM015 Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional

PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

DURAÇÃO DA PROVA: 2 horas

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Linguagem C (repetição)

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Terceira Prova 20 de junho de 2011

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

1 Da aula teórica ao Java

Transcrição:

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2014/2015 MEMec, LEAN Ficha da Aula Prática 1 Exercícios escritos Sumário das tarefas e objectivos da aula: 1. Realizar exercícios escritos, em condições semelhantes às de exame NOTA: ver também exames de anos anteriores disponibilizados na página da disciplina! João Reis, v1.2@2015 1

1. Exercícios 1. Uma linguagem de programação de alto nível é: Seleccione a resposta correcta: Qualquer linguagem de programação que permita criar programas Uma linguagem mais próxima das linguagens próprias dos microprocessadores do que das dos seres humanos Uma linguagem que permite criar aplicações gráficas Uma linguagem mais próxima das linguagens próprias dos seres humanos do que das dos microprocessadores Nenhuma das anteriores 2. Numa função em Matlab o âmbito de um argumento de entrada é: Seleccione a resposta correcta: A directoria onde o ficheiro com a função está guardado A função ou script onde é feita a chamada à função A própria função O ambiente de trabalho do Matlab (Workspace) Nenhuma das anteriores 3. Explique sucintamente em que consiste a abordagem top-down. 4. Diga (a) o que é, (b) em que tipo de instrução pode ocorrer e (c) em que circunstâncias pode ocorrer um ciclo infinito. 5. Indique três vantagens de criar um programa de forma modular? 6. Diga (a) o que são, (b) ondem podem ocorrer e (c) como se detectam erros lógicos. 7. Escreva o(s) resultado(s) apresentados ao utilizador na linha de comando em cada um dos seguintes casos, respeitando a respectiva formatação gráfica. Código fonte Código fonte João Reis, v1.2@2015 2

Código fonte 8. Escreva o(s) resultado(s) apresentados ao utilizador na linha de comando em cada um dos seguintes casos, respeitando a respectiva formatação gráfica. Considere neste caso as seguintes definições das funções e a sua respectiva chamada na linha de comando: Definição da função function F = func(n) switch n case 0, 1 F = n; otherwise F = func(n-2) + func(n-1); end disp( func(4) ) Chamada da função 9. O programa seguinte tem cinco erros. Assinale e corrija os erros de forma a que o programa execute correctamente. NOTA IMPORTANTE - Para modificar o código deve proceder do seguinte modo: Na sua resposta deve apenas indicar o número da linha se o código estiver correcto, caso o código esteja incorrecto deve indicar a linha e a respectiva alteração. Caso necessite de adicionar novas linhas numere-as utilizando a linha anterior como base, seguida de um ponto e das letras a, b, etc. 1: 4: 7: letra = input('(s/n): ',s); if letra == 's' letra == 'S' disp('continuar') elseif letra == 'n' letra == 'N' else end disp('parar') disp(erro) 1: letra = input('(s/n): ','s'); 4: elseif letra == 'n' letra == 'N' 7: disp('erro') João Reis, v1.2@2015 3

1: 4: 7: 9: 10: 11: 1 1 14: 1 1 17: 1 turma = inseriraluno(turma) % Função que acrescenta um novo aluno % ao vector turma max_nome = 25; % Pedir dados do novo aluno fprintf(fid, 'Insira os dados:\n\n'); novo_aluno.numero = input('número: '); novo_aluno.nome = input('nome: ',s); novo_aluno.nota = input('nota: '); % Corrigir dados do novo aluno if length(novo_aluno.nome) <= max_nome novo_aluno.nome(max_nome+1:end) = []; % Acrescentar o novo aluno à turma turma = [turma, novo_aluno]; 1: 4: 7: 9: 10: 11: 1 1 14: 1 1 17: 1 10. Crie um programa (script) que peça ao utilizador para introduzir dois algarismos em numeração romana no intervalo de I a X, e que indique ao utilizador se os algarismos são iguais, ou se o primeiro é maior ou menor do que o segundo. Por exemplo, se o utilizador introduzir os valores VI e III o programa deverá responder: VI > III 11. Crie uma função chamada my_string_compare que realize a mesma tarefa da função strcmp do Matlab (recebe duas strings como argumentos de entrada, verifica se são iguais, e devolve um valor lógico verdadeiro ou falso). Neste exercício não deve utilizar a capacidade de vectorização do Matlab, e a única função pré-definida permitida é a função length, ou seja, a comparação terá que ser feita letra-a-letra. (Note que as estruturas de selecção e de repetição, if, for, while, etc., não são funções pré-definidas, são instruções de controlo, logo podem, e devem, ser utilizadas). 12. Crie uma função chamada my_string_find que realize a mesma tarefa da função strfind do Matlab (receber duas strings como argumentos de entrada, localizar todas as ocorrências da segunda string na primeira, e devolver o vector de ocorrências). Neste exercício não deve utilizar a capacidade de vectorização do Matlab, e a única função pré-definida permitida é a função length, ou seja, as comparações terão que ser feitas letra-a-letra. a. Resolva o problema utilizando a função my_string_compare criada anteriormente. b. Resolva o problema sem utilizar a função my_string_compare João Reis, v1.2@2015 4

13. Considere o seguinte programa: #define NC 3 float a[] = 5.3, 9.3, 7.3; int b; float c = 0.0; printf("o resultado da operacao misterio com:\n"); for (b = 0; b < NC; b++) c = c + a[b]; printf("%.2f\n", a[b]); printf("= %.3f\n", c/nc); a. Escreva a saída para o ecrã produzida pelo programa. b. Qual a operação mistério implementada? c. Escreva o programa equivalente em linguagem Matlab. A única função pré-definida admitida é a função fprintf. 14. Considere o seguinte programa: /* 1 */ int a = 10, b = 20; /* 2 */ int *c; /* 3 */ c = &a; printf("o valor acessivel pelo ponteiro c e: %d\n", *c); /* 4 */ *c = a + b; printf("o valor acessivel pelo ponteiro c e: %d\n", *c); printf("o valor actual da variavel a e: %d\n", a); a. Escreva a saída para o ecrã produzida pelo programa. b. Escreva as linhas de comentário indicadas pelos números 1 a 4, indicando qual é o propósito de linha de código que se lhe segue imediatamente (apenas essa). João Reis, v1.2@2015 5

15. Considere o seguinte programa: /* 1 */ #define MAXELEM 100 /* 2 */ void myfunction(int [], int); int v[maxelem], n, i; /* 3 */ printf("please enter the number of elements in the vector: "); scanf("%d", &n); /* 4 */ for(i = 0; i < n; i++) printf("enter v%d: ",i+1); scanf("%d", &v[i]); /* 5 */ myfunction(v, n); /* 6 */ printf("\nafter processing:\nv = "); for(i = 0; i < n; i++) printf("%d ",v[i]); void myfunction(int array[], int n_elements) int i, i_aux, j, temp; for(i = 0; i < n_elements-1; i++) i_aux = i; for(j = i + 1; j < n_elements; j++) if (array[j] < array[i_aux]) i_aux = j; temp = array[i]; array[i]=array[i_aux]; array[i_aux]=temp; a. Escreva a saída para o ecrã produzida pelo programa quando o utilizador introduz a sequência de valores 3, 22, 31 e 14 em resposta à sequência de valores pedidos do programa. b. Escreva as linhas de comentário indicadas pelos números 1 a 6, indicando qual é o propósito das linhas de código que se lhe seguem imediatamente (apenas essas). c. Escreva em linguagem Matlab uma função que realize a mesma tarefa de myfunction (defina os seus próprios argumentos de entrada e de saída conforme as necessidades). João Reis, v1.2@2015 6

16. Considere o seguinte programa: /* 1 */ /* 2 */ float funcao1(float *, int); /* 3 */ Código Fonte x[] y float x[] = 10.2, 20.3, 30.4; float y; /* 4 */ y = funcao1(x, 2); printf("%.1f %.1f %.1f\n", x[0], x[2], y); printf("%.1f %.1f %.1f\n", x[0]*2, 2*y, funcao1(&y,0)); /* 5 */ float funcao1(float *a, int n) /* 6 */ return *(a + n); a. Escreva nas linhas indicadas na tabela os valores concretos que as variáveis DO PROGRAMA PRINCIPAL vão tomando ao longo da execução. b. Escreva a saída enviada para o ecrã pelo programa. c. Escreva as linhas de comentário indicadas pelos números 1 a 6, dizendo qual o propósito da linha de código que se lhe segue imediatamente (apenas essa). João Reis, v1.2@2015 7