Computação e Programação
|
|
|
- Giuliana Gentil de Oliveira
- 8 Há anos
- Visualizações:
Transcrição
1 Computação e Programação 2016/2017 Aulas de Problemas Aula 1 - Introdução ao ambiente MATLAB Aula 2 - Funções pré-definidas e expressões Aula 3 - Vectores e matrizes Aula 4 - Construir scripts Aula 5 - Definir funções Aula 6 - Ficha 1 Aula 7 - Selecção Aula 8 - Iteração Aula 9 - Ficha 2 Aula 10 - Strings, gráficos, e desenvolvimento de programas Aula 11 - Estruturas de dados Aula 12 - Entrada e saída a partir de ficheiros Aula 13 - Ficha 3 Aula 14 - Linguagens compiladas (C++) E ainda
2 Aula 1 - Introdução ao ambiente MATLAB Usar o MATLAB como calculadora. Usar o comando format. Atribuir valores a variáveis do tipo double. Usar funções pré-definidas. Usar expressões numéricas. Problema 1 A função pré-definida sin calcula, e retorna, o seno de um ângulo em radianos. Introduza o comando help elfun para descobrir a função pré-definida que permite obter o seno de um ângulo em graus. Teste se essa função devolve o valor 1 quando recebe o valor 90. Problema 2 Escreva as seguintes expressões em MATLAB, e teste-as: a) 23 b) c) tan π Problema 3 Experimente fazer: >> pi >> format long >> pi >> format short >> pi Compare os resultados. Use o comando doc format para obter ajuda. Procure, e utilize, a opção para format que permitirá depois obter o seguinte resultado: >> 5/16 + 2/7 ans = 67/112 Problema 4 Crie uma variável que guarde o valor da sua altura. Em seguida, retire 10 centímetros ao valor guardado. Por fim, adicione meio metro ao valor guardado.
3 Problema 5 Considere a seguinte função z = f(x, y): z = x3 (x y) 3 x 2 (x y) 2 Crie as variáveis x e y, atribuindo-lhes valores à sua escolha. Depois crie a variável z com o valor resultante da avaliação da função f para os valores guardados em x e y. EXERCÍCIOS COMPLEMENTARES Exercício 1 Prima F1, ou faça: >> doc e explore a organização da documentação disponibilizada pelo MATLAB, com particular ênfase para a informação acedida a partir do tópico MATLAB. Exercício 2 Tome conhecimento de dois valores especiais no MATLAB, verificando o que acontece ao fazer: Exercício 3 >> 1/0 >> log(0) >> exp(1000) >> 0/0 >> inf/inf Tome conhecimento de alguns cuidados a ter na identificação de variáveis, verificando o que acontece ao fazer: >> sin(pi/2) >> pi = 0 >> sin(pi/2) >> sin = 0 >> sin(pi/2) Para repor a situação original, faça: Exercício 4 >> clear pi sin Comece por criar várias variáveis. Faça: >> save as_minhas_variaveis
4 Repare que na sua área de trabalho (Current Folder) existe agora um ficheiro chamado as_minhas_variaveis.mat. Apague as variáveis criadas, fazendo: >> clear Confirme que o seu espaço de dados (Workspace) ficou vazio. Faça agora: >> load as_minhas_variaveis para confirmar que acabou de recuperar as variáveis guardadas no ficheiro e posteriormente apagadas. Faça alguns cálculos com elas. Exercício 5 Comece por fazer: >> diary aula1 Dê várias instruções na janela de comandos, e faça: >> diary off Repare que na sua área de trabalho (Current Folder) existe agora um ficheiro aula1. Abra-o para confirmar que acabou de gravar uma sessão de trabalho. Exercícios no livro adoptado Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 1 - Exercícios 1 a 13, e 15. 3ª edição: Capítulo 1 - Exercícios 1 a 15, 19, e 29 a 34.
5 Aula 2 - Funções pré-definidas e expressões Usar as funções de arredondamento. Conhecer as capacidades de representação dos tipos numéricos e as possibilidades para a conversão de valores entre estes tipos de dados. Usar números pseudoaleatórios. Usar os códigos inteiros ASCII dos caracteres, e conhecer as conversões implícitas que os podem envolver. Usar expressões lógicas. Problema 1 Utilize o comando help elfun e faça experiências na linha de comando (prompt) do MATLAB de modo a identificar a eventual diferença de resultado entre: a) fix(3.5) e floor(3.5) b) fix(3.4) e fix(-3.4) c) fix(3.2) e floor(3.2) d) fix(-3.2) e floor(-3.2) e) fix(-3.2) e ceil(-3.2) Problema 2 Utilize intmin e intmax para determinar o intervalo de valores que os tipos uint32 e uint64 permitem representar. Problema 3 Utilize help para descobrir se existem equivalentes a intmin e intmax para os tipos que permitem representar números reais. Problema 4 Guarde um valor com casas decimais numa variável double (acontece por omissão). Converta o valor guardado na variável para o tipo int32 e guarde o resultado numa nova variável. Problema 5 Crie um número (pseudo)aleatório: a) real pertencente a [0, 1]; b) real pertencente a [0, 20]; c) real pertencente a [20, 50];
6 d) inteiro pertencente a [1, 10]; e) inteiro pertencente a [50, 100]. Problema 6 As letras do alfabeto encontram-se ordenadas na tabela de códigos ASCII, ou seja, o 'a' está antes do 'b' e o 'A' está antes do 'B'. Qual a ordem entre maiúsculas e minúsculas? As minúsculas estão antes ou depois das maiúsculas? Problema 7 Antecipe quais os resultados das seguintes expressões? (confirme depois no MATLAB): a) 'b' >= 'c' 1 b) 3 == c) (3 == 2) + 1 d) xor(5 < 6, 8 > 4) EXERCÍCIOS COMPLEMENTARES Exercício 1 Tome conhecimento de algumas limitações das representações habituais dos números reais (neste caso, do tipo double), verificando o que acontece ao fazer: >> == 0.1 >> sin(pi) == 0 >> sin(pi) - 0 < eps >> help eps Exercício 2 Tome conhecimento de alguns perigos na utilização de números inteiros guardados em tipos inteiros (neste caso, no tipo int32), verificando o que acontece ao fazer: >> numreal = int32(3) / 2 >> whos numreal Exercícios no livro adoptado Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 1 - Exercícios 14, e 16 a 21; Capítulo 3 - Exercício 1. 3ª edição: Capítulo 1 - Exercícios 16 a 18, e 20 a 28.
7 Aula 3 - Vectores e matrizes Usar o operador dois pontos ou a função linspace para criar um vector. Criar uma matriz. Alterar ou apagar elementos de um array (vector ou matriz). Referenciar uma parte de um array. Usar um array como argumento numa chamada a uma função pré-definida. Usar operadores "elemento a elemento" (ou de array). Usar vectores lógicos e indexação lógica. Problema 1 Crie os seguintes vectores linha usando o operador dois pontos e a função linspace. a) b) c) Problema 2 Escreva uma expressão para obter (apenas) os elementos em posições ímpares de um vector v. Teste a expressão com um vector de tamanho par e outro de tamanho ímpar (quaisquer). Escreva uma instrução para apagar os elementos nas posições pares de um vector v. Teste-a. Problema 3 Crie a seguinte matriz sem escrever todos os valores directamente: mat = Escreva as expressões para referenciar as seguintes partes da matriz: a) elemento na primeira linha e na terceira coluna; b) segunda linha; c) primeiras duas colunas. Problema 4 Crie uma matriz 3 x 5 com números reais aleatórios. Escreva uma instrução para remover a terceira linha.
8 Problema 5 Crie um vector x com 21 valores igualmente espaçados entre π e π. Crie um vector y com os valores do seno para os valores correspondentes no vector x. Nota: É frequente a construção de um gráfico 2D começar desta maneira, sendo que os vectores x e y contêm as coordenadas dos pontos a representar. Repare que, neste caso (como em muitos outros) seria sempre conveniente escolher um número ímpar de pontos. Para o confirmar, faça plot(x, y). Problema 6 Crie uma matriz 3 x 5 com números inteiros aleatórios entre 10 e 5. Crie outra matriz que guarde em cada elemento o valor absoluto do elemento correspondente na primeira matriz. Problema 7 Determine o resultado da soma abaixo, começando por criar um vector para os numeradores e outro para os denominadores. Problema Crie um vector com cinco números inteiros aleatórios entre -10 e 5. Escreva as expressões para obter desse vector: d) os elementos subtraídos de três unidades; e) a contagem de quantos são positivos; f) o somatório dos positivos; g) os valores absolutos; h) o valor máximo. EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Nota prévia: Os arrays tridimensionais ( three-dimensional matrices, no livro) não fazem parte do programa na sua vertente prática. Em todo o caso, a sua utilização segue a lógica dos arrays bidimensionais (as matrizes). Se os alunos quiserem praticar esta matéria não perdem nada com isso. Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 1 - Exercícios 22 a 42 (o exercício 41 é sobre arrays tridimensionais). 3ª edição: Capítulo 1 - Exercício 23; Capítulo 2 - Exercícios 1 a 44 (os exercícios 18 e 19 são sobre arrays tridimensionais).
9 Aula 4 - Construir scripts Usar a função input. Usar a função fprintf. Construir gráficos 2D. Construir um script. Usar as funções load e save para ler e escrever em ficheiros de texto. Problema 1 A função input pode ser usada para receber um vector. Por exemplo: >> vec = input(['introduza um vector '... 'usando uma expressão válida em MATLAB: ']) Introduza um vector usando uma expressão válida em MATLAB: 4:7 vec = Experimente a entrada de vectores e matrizes usando a função input. Nota: Salvo situações muito excepcionais, este tipo de utilização da função input é uma péssima opção, porque o programador está a contar que o utilizador conheça a linguagem MATLAB. Por outro lado, só num contexto didáctico é que faz sentido usar a função input na janela de comandos. Problema 2 Experimente a função fprintf para mostrar números reais com diferentes formatações para o número total de colunas utilizadas e número de casas decimais mostradas. Faça as suas experiências com a notação decimal e com a notação científica. Problema 3 Mostre em dois gráficos separados a função seno no domínio entre 0 e π. Um dos gráficos deve resultar da utilização para as abcissas de um vector com 11 valores, e o outro gráfico de um vector com 101 valores. Nota: Recorda-se a habitual conveniência em se escolher um número ímpar de pontos (a que corresponderá um número par de intervalos). Problema 4 Um ficheiro reais.dat foi criado para ser usado numa experiência. No entanto, o ficheiro contém números reais, quando o que se desejava era que fossem inteiros. Por outro lado, o ficheiro não está no formato correcto; os valores estão organizados por colunas em vez de por linhas. Por exemplo, se o ficheiro tiver o conteúdo:
10 o que se pretende é: Comece por criar um ficheiro reais.dat no formato "reais por colunas". Seguidamente, escreva um script que leia os dados de reais.dat para uma matriz, arredonde os números, e escreva a matriz no formato "inteiros por linhas" num ficheiro chamado inteiros.dat. EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 2 - Exercícios 1 a 22, e 38 a 40. 3ª edição: Capítulo 3 - Exercícios 1 a 23, e 42.
11 Aula 5 - Definir funções Definir uma função. Invocar uma função previamente definida a partir de um script. Problema 1 Defina uma função meiasduzias que receba dois inteiros positivos, e devolva (retorne) uma matriz com o número de linhas coincidente com o primeiro valor recebido e o número de colunas coincidente com o segundo valor recebido, e em que todos os seus elementos sejam iguais a 6. Problema 2 Desenvolva um predicado divisivelpor5 que receba um inteiro, e retorne (devolva) o valor lógico true se o valor recebido for divisível por 5, ou o valor lógico false se não o for. Não utilize instruções de selecção. Problema 3 Defina uma função para receber um vector e devolver (retornar) um dos valores guardados no vector, escolhido aleatoriamente. Problema 4 O custo C de produção de n unidades de um determinado produto numa fábrica é dado pela seguinte equação: C(n) = 5 n n + 11 Escreva uma função calculacusto para receber o número de unidades a produzir e retornar (devolver) o respectivo custo. Escreva um script progcalculacusto para: Obter do utilizador o número n de unidades a produzir. Chamar a função calculacusto para obter o custo de produzir as n unidades. Dar o resultado ao utilizador tal como se mostra em baixo. >> progcalculacusto Introduza o número de unidades: 100 O custo para produzir 100 unidades é EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 2 - Exercícios 23 a 37; Capítulo 3 - Exercícios 18 a 20. 3ª edição: Capítulo 3 - Exercícios 24 a 41.
12 Aula 6 - Ficha 1 Incentivar os alunos a distribuir o seu estudo autónomo ao longo de todo o semestre. Fornecer aos alunos uma oportunidade para avaliarem o estado actual dos seus conhecimentos. Ficha 1 Veja aqui o enunciado de uma ficha-tipo.
13 Aula 7 - Selecção Usar as instruções de selecção if e switch. Usar a função menu. Problema 1 Escreva uma função calculacateto que, aplicando o teorema de Pitágoras, receba os valores de um cateto e da hipotenusa, e que calcule e retorne o valor do outro cateto. Teste a função. Escreva um script cujo propósito essencial é: Obter do utilizador os valores de um cateto e da hipotenusa. Chamar a função calculacateto. Mostrar o resultado da função ao utilizador. No entanto, se o utilizador tiver fornecido algum dos valores igual ou inferior a zero, em vez do resultado da função, o script deverá mostrar ao utilizador uma mensagem de erro. Teste o script. Nota: Quando um algoritmo interage com o utilizador e este lhe fornece dados inapropriados, a forma correcta do algoritmo lidar com isso é informar o utilizador sobre o que aconteceu e pedir-lhe os dados de novo; e não mostrar uma mensagem de erro e terminar. Problema 2 Escreva um script que comece por pedir ao utilizador um valor para a variável x. A seguir, usando a função menu, o script deverá fornecer ao utilizador a possibilidade de escolher uma das seguintes opções: sin(x), cos(x), ou tan(x). Finalmente, o script deverá imprimir o valor da função de x que o utilizador tiver escolhido. Depois de testar o script com sucesso, redefina-o utilizando a instrução if se antes utilizou switch, ou vice-versa. Problema 3 Escreva (e teste) uma função para receber dois vectores numéricos (do mesmo tipo) e devolver uma matriz. Esta matriz deverá ser composta por duas linhas. Os elementos na primeira linha da matriz deverão coincidir com os do primeiro vector recebido e os da segunda linha com os do segundo vector. Se os vectores não tiverem o mesmo tamanho, então deverão ser acrescentados zeros para preencher os últimos elementos necessários na linha da matriz correspondente ao vector mais pequeno. EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 3 - Exercícios 1 a 37. 3ª edição: Capítulo 4 - Exercícios 1 a 35.
14 Aula 8 - Iteração Usar as instruções de ciclo for e while. Usar ciclos com inicialização. Usar ciclos aninhados. Problema 1 Desenvolva um script para pedir o valor do raio de um círculo ao utilizador e mostrar-lhe a área desse círculo, assegurando que o utilizador introduz um valor positivo. Problema 2 O inverso da constante matemática e pode ser aproximado através de: 1 e (1 1 n n ) Escreva um script que percorra (itere) os valores de n até que a diferença entre a aproximação e o valor pré-definido seja inferior a O script deverá então imprimir no ecrã, com quatro casas decimais, o valor de e -1 pré-definido e a aproximação encontrada. Deverá também imprimir o valor de n necessário para obter a precisão requerida. Problema 3 Escreva uma função que receba um vector e que mostre os seus elementos ao utilizador mas usando uma frase. Por exemplo, se a função tiver recebido o vector: >> vec = [5.5, 11, 3.45]; o resultado seria este: O elemento 1 é O elemento 2 é O elemento 3 é Problema 4 Desenvolva um script para mostrar no ecrã a matriz transposta de uma matriz guardada na variável mat, sem recorrer à transposição disponível no MATLAB. Nota: A menos de versões provisórias, ainda com o código incompleto, um script não deve operar sobre variáveis definidas fora do seu código.
15 EXERCÍCIOS COMPLEMENTARES Exercício 1 Desenvolva uma função sem parâmetros (equivale a um script, mas com variáveis locais) que use a função menu para apresentar ao utilizador duas opções: Lançar um dado (i.e., gerar um pseudo-aleatório entre 1 e 6, que será imediatamente mostrado na janela de comandos), e Sair (i.e., terminar a execução da função). O menu deverá permanecer disponível para o utilizador lançar o dado quantas vezes quiser. Nota: Nesta cadeira as funções sem parâmetros são preferidas aos scripts. Esta troca, para além de forçar a utilização de variáveis locais (não interferindo com eventuais dados guardados no workspace), permite incluir funções locais directamente (o que, em muitos casos, pode ser conveniente). Exercícios no livro adoptado Nota prévia: A vectorização é a resolução de problemas que requerem iteração sem recurso a instruções de repetição (as instruções for e while). Na vectorização, a iteração é executada de um modo implícito através da utilização de funções e operadores pré-definidos adequados. Regra geral, a vectorização é mais eficiente, mas é específica da linguagem MATLAB. Nesta cadeira, os conhecimentos mais avançados sobre vectorização são considerados secundários. Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: o Capítulo 4 - Exercícios 1 a 34 (o exercício 15 é sobre vectorização); o Capítulo 5 - Exercícios 1 a 19 (com excepção do exercício 17, todos os exercícios são sobre vectorização). 3ª edição: Capítulo 5: Exercícios 1 a 9 e 12 a 48 (os exercícios 31 a 36 são sobre vectorização).
16 Aula 9 - Ficha 2 Incentivar os alunos a distribuir o seu estudo autónomo ao longo de todo o semestre. Fornecer aos alunos uma oportunidade para avaliarem o estado actual dos seus conhecimentos. Ficha 2 Veja aqui o enunciado de uma ficha-tipo.
17 Aula 10 - Strings, gráficos e programas Manipular strings. Usar a função plot. Desenvolver programas recorrendo a decomposição funcional. Problema 1 Escreva uma função converte para receber uma frase e devolver uma palavra composta pelas letras iniciais de cada palavra na frase recebida. Por exemplo: >> frase = 'Maria acha importante ler'; >> m = converte(frase) m = Mail Problema 2 Escreva uma função sem parâmetros de entrada e com um parâmetro de saída. A função deverá obter do utilizador um inteiro maior do que zero, e devolver esse valor. Garanta que o utilizador é obrigado a introduzir um inteiro maior que zero. Nota 1: Esta é uma das poucas situações (casos semelhantes à função input) onde uma função a operar simultaneamente por retorno e por efeito colateral pode ser considerada uma boa opção. Nota 2: Este algoritmo tem muitas semelhanças com o do Problema 1 da Aula 8. Problema 3 O valor total V acumulado (juros + capital) a pagar no final de um empréstimo E contraído por n anos, cujo juro é capitalizado anualmente a uma taxa t, é calculado por: V = E (1 + t) n Escreva uma função que receba o capital emprestado, a taxa de juro, e o número máximo de anos possível de ser considerado para a duração do empréstimo. A função deverá mostrar num gráfico a evolução do valor acumulado a pagar no final em função da duração do empréstimo, começando em um e terminando na duração máxima recebida. Problema 4 Utilizando as duas funções anteriores, desenvolva um programa para pedir ao utilizador um montante inicial, uma taxa de juro, e uma duração máxima (inteiro positivo), e que, como resultado, mostre um gráfico com a evolução do valor acumulado a pagar no final em função da duração do empréstimo, começando em um e terminando na duração máxima introduzida.
18 Nota: No livro adoptado está escrito que, tipicamente, um programa em MATLAB consiste num script que chama funções. De um modo mais geral, um programa pode ser um qualquer algoritmo (script ou função) que possa ser executado independentemente, quer chame ou não outros algoritmos (scripts ou funções). EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Nota prévia 1: Não sendo variáveis globais, as variáveis persistentes acabam por ser uma forma restrita de globalizar variáveis. No plano didáctico, entende-se que a utilização prática de variáveis globais, ou qualquer aproximação a isso, é inconveniente numa cadeira deste tipo. Em todo o caso, os alunos podem praticar esta matéria, se o entenderem. Nota prévia 2: Nos exercícios sobre gráficos, e por ser essa a matéria considerada mais importante para a cadeira, privilegie os exercícios que envolvem as funções plot, subplot, e bar. Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: o Capítulo 6 - Exercícios 1 a 38 (os exercícios 35 a 38 envolvem variáveis persistentes); o Capítulo 7 - Exercícios 1 a 35 (os exercícios 33 e 34 envolvem variáveis persistentes); o Capítulo 11 - Exercícios 1 a 37. 3ª edição: o Capítulo 5 - Exercícios 10 e 11; o Capítulo 6 - Exercícios 1 a 35 (os exercícios 26 a 29 envolvem variáveis persistentes); o Capítulo 7 - Exercícios 1 a 37 (os exercícios 8 e 9 envolvem variáveis persistentes); o Capítulo 11 - Exercícios 1 a 32.
19 Aula 11 - Estruturas de dados Utilizar arrays de células (tipo cell). Utilizar estruturas (tipo struct). Problema 1 Considere três variáveis para guardar três arrays de células de strings, contendo: (1) nomes de pessoas, (2) verbos (e preposições), e (3) substantivos. Por exemplo: nomes = {'Maria', 'João', 'Carlota'}; verbos = {'come', 'gosta de'}; substantivos = {'caracóis', 'peixes-aranha', 'minhocas'}; Escreva um script para inicializar estas variáveis e para mostrar uma frase composta por um elemento de cada array escolhida aleatoriamente (por exemplo, Maria gosta de caracóis ). Problema 2 Um número complexo tem a forma a + ib, onde a representa a parte real, b a parte imaginária, e i = 1. Escreva um script que peça, separadamente, para o utilizador introduzir os valores das partes real e imaginária de um número complexo, e que as armazene numa só variável, utilizando uma estrutura. Depois, usando a estrutura criada, o script deve mostrar o valor da parte real, seguido de + i, e do valor da parte imaginária. Por exemplo, se o script se chamar numcomplexoestrutura, executá-lo pode resultar no seguinte: >> numcomplexoestrutura Introduza a parte real: 2.1 Introduza a parte imaginária: 3.3 O número complexo é i3.3 Nota: Embora esteja fora do âmbito desta cadeira, o MATLAB permite lidar directamente com números complexos sem ser necessário usar estruturas para os representar. Problema 3 Modifique o script anterior para que este (1) invoque uma função para pedir os dados ao utilizador e criar a estrutura com o número complexo, e (2) invoque outra função para mostrar o número complexo no ecrã. Escreva as duas funções utilizadas pelo script. EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 8 - Exercícios 1 a 29. 3ª edição: Capítulo 8 - Exercícios 1 a 28.
20 Aula 12 - Entrada e saída a partir de ficheiros Desenvolver programas com entrada e saída a partir de ficheiros de texto simples. Problema 1 Escreva um script para pedir ao utilizador o nome de um ficheiro válido para leitura. O objectivo do script será, utilizando um ciclo, garantir que o ficheiro indicado poderá de facto ser aberto com sucesso. Nota: Este algoritmo tem muitas semelhanças com o do Problema 1 da Aula 8 e com o do Problema 2 da Aula 10. Problema 2 No contexto de uma experiência médica, os nomes e pesos de alguns pacientes foram guardados num ficheiro pacientespesos.dat. Por exemplo, o ficheiro pode guardar a seguinte informação: João Ratão 88.8 Ana Rita 66.6 Rita João 55.5 João Rita 77.7 Primeiro, crie este ficheiro. Depois, escreva um script lerpacientespesos que comece por tentar abrir o ficheiro. Se não for possível, deverá ser mostrada uma mensagem de erro. Se for possível, usando a função fgetl ou a função fgets, o ficheiro deverá ser lido linha a linha. Para cada linha lida, os dados lidos deverão ser apresentados no ecrã, mas utilizando o formato: Último_nome, Primeiro_nome Peso O peso médio deverá ainda ser mostrado no final. Problema 3 Altere o Problema 2 por forma a que os dados apresentados no ecrã passem a ser enviados para um ficheiro de texto pacientespesos2.dat. Problema 4 Altere o Problema 3 por forma a que os dados deixem de ser lidos linha a linha e passem a ser lidos, de uma só vez, com a função textscan. Nota: Quando se usa a função textscan para ler uma coluna de números inteiros é habitual usar-se o especificador %d para o efeito. Como consequência, a respectiva coluna fica num array do tipo int32. A utilização de tipos inteiros pode trazer problemas, o que será facilmente evitado se se usar antes o especificador %f.
21 EXERCÍCIOS COMPLEMENTARES Exercício 1 Altere o Problema 4 por forma a incorporar nele o Problema 1. Pretende-se agora que o novo script peça ao utilizador o nome do ficheiro a ler até que o consiga abrir com sucesso. O ficheiro escrito deverá ter um nome semelhante ao ficheiro lido. Exercício 2 Altere o Exercício 1 por forma a que o utilizador possa agora introduzir o nome do ficheiro sem extensão desde que esta seja.dat (assuma que, em qualquer caso, o ficheiro terá sempre uma extensão). Exercício 3 Altere o Exercício 2 por forma a que a obtenção do nome do ficheiro esteja a cargo de uma função local (o que implica que o script tenha de passar a ser uma função sem parâmetros). Exercícios no livro adoptado Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 9 - Exercícios 1 a 31. 3ª edição: Capítulo 9 - Exercícios 1 a 35.
22 Aula 13 - Ficha 3 Incentivar os alunos a distribuir o seu estudo autónomo ao longo de todo o semestre. Fornecer aos alunos uma oportunidade para avaliarem o estado actual dos seus conhecimentos. Ficha 3 Veja aqui o enunciado de uma ficha-tipo.
23 Aula 14 - Linguagens compiladas (C++) Aprender a usar o Code::Blocks para desenvolver programas de consola em C++. Desenvolver um programa de consola. Usar entrada e saída de dados com a consola. Definir e invocar uma função. Usar a instrução if. Usar as instruções while e for. Usar a classe vector da Standard Library. Desenvolver programas recorrendo a decomposição funcional. Executar um programa a partir do sistema operativo. Problema 1 (adaptado de Aula 7 - Problema 1) Escreva uma função calculacateto que, aplicando o teorema de Pitágoras, receba os valores de um cateto e da hipotenusa, e que calcule e retorne o valor do outro cateto. Escreva um programa para: Obter do utilizador os valores de um cateto e da hipotenusa. Chamar a função calculacateto. Mostrar o resultado da função ao utilizador. Se o utilizador tiver fornecido algum dos valores igual ou inferior a zero, então, em vez do resultado, deverá ser-lhe mostrada uma mensagem de erro. Teste o programa (e a função). Execute o programa a partir do sistema operativo. Nota 1: Em C++, para o código ter acesso às funções matemáticas elementares (e.g., a função sqrt) é necessário escrever a directiva #include <cmath> Nota 2: Repetindo o que já ficou escrito antes, quando um algoritmo interage com o utilizador e este lhe fornece dados inapropriados, a forma correcta do algoritmo lidar com isso é informar o utilizador sobre o que aconteceu e pedir-lhe os dados de novo; e não mostrar uma mensagem de erro e terminar. Problema 2 (adaptado de Aula 8 - Problema 1) Desenvolva um programa para pedir o valor do raio de um círculo ao utilizador e mostrar-lhe a área desse círculo, assegurando que o utilizador introduz um valor positivo. Execute o programa a partir do sistema operativo. Nota: Em C++, o valor da constante matemática π não está disponível directamente. Para o poder usar pode-se definir uma constante pi através da instrução const double pi = ;
24 Problema 3 (adaptado de Aula 8 - Problema 3) Escreva uma função que receba um vector e que mostre os seus elementos ao utilizador mas usando uma frase. Por exemplo, se a função tiver recebido o vector: std::vector<double> v(3, 0); v[0] = 5.5; v[1] = 11; v[2] = 3.45; o resultado seria este: O elemento 1 é O elemento 2 é O elemento 3 é Nota: Em C++, para o código poder usar vectores de um modo cómodo está definida uma classe vector na biblioteca padrão. Para se poder usar esta classe, tem de se escrever a directiva #include <vector> Uma vez incluída a classe vector, o tamanho de um vector é obtido através do método size. Por exemplo, o tamanho do vector vec é dado por vec.size(). EXERCÍCIOS COMPLEMENTARES Alguns dos exercícios do livro adoptado podem ser adaptados para ser desenvolvidos em C++. Por outro lado, é muito fácil encontrar na internet tutoriais de C++.
25 E ainda Os exercícios do livro adoptado atrás recomendados cobrem quase toda a matéria prática para os exames. Ficou a faltar apenas a matéria avançada sobre funções. Assim, faz-se ainda a seguinte recomendação aos alunos: EXERCÍCIOS COMPLEMENTARES NO LIVRO ADOPTADO Resolva os seguintes exercícios propostos no livro adoptado: 2ª edição: Capítulo 10 - Exercícios 1 a 30 (com especial relevo para os exercícios 1 a 5, e 8, sobre funções anónimas); 3ª edição: Capítulo 10 - Exercícios 1 a 30 (com especial relevo para os exercícios 1 a 6, sobre funções anónimas).
Computação e Programação Exame Época de recurso
Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v
Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas
Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem
Computação e Programação. Exame Época Normal
Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 6 de janeiro de 2016 Exame sem
Computação e Programação Exame 2ª Época
Computação e Programação 2012-2013 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame 2ª Época 30 de janeiro de 2013 Exame sem consulta (2 horas
Computação e Programação Exame Resolvido 1ª Época
Computação e Programação 2012-2013 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Resolvido 1ª Época 9 de janeiro de 2012 Exame sem consulta
Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.
Ficheiros de texto 1 Ficheiros de texto 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro. 2. Implementar um programa que procure num ficheiro uma palavra lida do teclado.
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?
P1 Conceitos (2,4 valores) 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? (0.8v) 1.b) Indique três vantagens de criar um programa
Ficha 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
Programação Universidade da Beira Interior Departamento de Informática 2007/08
Programação Universidade da Beira Interior Departamento de Informática 1. Faça o fluxograma e o respectivo programa que resolva equações de 2º grau (ax 2 +bx+c=0). O programa deverá pedir ao utilizador
Aula 03 - Introdução ao Scilab (p2)
BCC701- Programação de Computadores I Aula 03 - Introdução ao Scilab (p2) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM
Introdução à Ciência da Computação
Introdução à Ciência da Computação Unidade III Programação de Computadores com Octave Uso do Octave no Modo Interativo Prof. Roberto M. de Faria/DSC/UFCG Ajuda para o Octave Para ter acesso à documentação
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição
Exercícios Repetição
Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número
Introdução ao SciLab. SciLab O que é? Onde obter o programa:
Introdução ao SciLab SciLab O que é? SciLab é uma plataforma interativa para computação numérica composta de uma rica coleção de algoritmos numéricos e de uma linguagem de programação associada. CN04 2010
Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.
Programação Folha Prática 5 Lab. 5 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 5 5ª semana ESTRUTURAS
Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica
Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada
Exercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Aula 08: Repetição (Parte 3)
Aula 08: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa
AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis
MATLAB. Programação básica
MATLAB Programação básica Tipo de dados logical Podem ter valores true ou false. Dados do tipo lógico podem ser utilizados com valores numéricos. São convertidos nos valores 0 e 1. Operadores relacionais
9. imprimir o fatorial do número 10. imprimir o sucessor e o anterior de um número lido 11. Imprimir se um número é primo ou não 12. Imprimir os 100 p
Exercícios básicos: 1. Fazer um programa que imprime Hello World 2. Fazer um programa que imprime o seu nome 10 vezes 3. Fazer um programa que recebe uma String do usuário e imprime 10 vezes 4. Fazer um
Aula 02 - Introdução ao Scilab (p1)
BCC701- Programação de Computadores I Aula 02 - Introdução ao Scilab (p1) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA
Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial
Programa de Educação Tutorial Mini curso básico Universidade Federal do Espírito Santo Departamento de Informática Gilberto A. S. Segundo Fábio Carmo Agenda Apresentação Vetores e matrizes em matlab Comandos
LISTA DE EXERCÍCIOS - ro. 04
USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.
Introdução ao Matlab. Sérgio Manuel Ângelo da Cruz. Aplicações Informáticas para Engenharia
Introdução ao Matlab Sérgio Manuel Ângelo da Cruz 2007 Aplicações Informáticas para Engenharia Introdução Aplicações Informáticas para Engenharia Ferramentas Informáticas de Apoio à Engenharia: Matlab
Material Didático Unificado.
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material
6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014
6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014 Parte A - Exercícios de Fixação de Aprendizagem 1. Faça um programa em C++ que leia do teclado uma sequência de 10 números
02 - Introdução ao Scilab
BCC701- Programação de Computadores I 02 - Introdução ao Scilab Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2018-02 DECOM 02 - Introdução
1. Usando o operador dois-pontos, crie os seguintes vetores de linha:
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Ciência da Computação Turma: 2 Período: 20181 Prof.: Roberto M. Faria 2ª. Lista de exercícios para o 2º. Exercício
Algoritmos RESUMO - LINGUAGEM C
Algoritmos RESUMO - LINGUAGEM C 1 Sintaxe da linguagem C Componentes reconhecidos pela linguagem C (sintaxe da linguagem): tipos propriedades dos dados; declarações partes do programa, podendo dar significado
Introdução à Linguagem C. Adaptado de Deise Saccol
Introdução à Linguagem C Adaptado de Deise Saccol 1 Tradução CÓDIGO FONTE... LET SOMA = VAR1 + TOTAL... TRADUTOR CÓDIGO OBJETO... 00010110111001011001011010... MONTADOR (assembler) Tradutor para linguagens
Exercícios: Comandos de Repetição
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Comandos de Repetição 1. Faça um programa que determine o mostre os
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número inteiro
Características Básicas
Características Básicas Software de simulação matemática; Realiza operações matriciais,constrói gráficos em 2D e 3D,ajuda no processamento de sinais; Facilidade na linguagem em um ambiente interativo;
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com (66) 9953-7642 AULA 02 Revisão de conteúdos da aula passada Exercícios de revisão da aula 01 Estruturas condicionais
CADERNO DE EXERCÍCIOS ALGORITMOS
J. EXERCÍCIOS SOBRE MODULARIZAÇÃO 77. Faça uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele for par e falso se for ímpar. 78. Escreva um programa que leia o raio de um
CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano
CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano [email protected] Aula 7 Matlab Noções Básicas de MATLAB INTRODUÇÃO Cálculo Numérico 3/55 Current Folder Window Local onde as operações podem ser
CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano
CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano [email protected] Aula 7 Matlab Noções Básicas de MATLAB INTRODUÇÃO Cálculo Numérico 3/55 LAYOUT DO MATLAB Espaço destinado às variáveis veis que
Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!
Declarações Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ Os principais tipos são: int, float, double e char Exemplos: int n; int quantidade_valores; float x, y, somavalores;
SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB
Aula 01 Introdução ao software MATLAB O MATLAB (Matrix Laboratory) é um ambiente de programação de alto desempenho voltado para a resolução de problemas expressos em notação matemática, projeto e simulação
Laboratório de Programação A Exercícios sobre vetores e matrizes
Universidade Federal do Amazonas Instituto de Ciências Exatas Departamento de Ciência da Computação Laboratório de Programação A - 2011.1 Exercícios sobre vetores e matrizes Observação Esta lista será
Exercícios Data Modeling
Exercícios Data Modeling I Algoritmos 1. Construir um algoritmo, em pseudo-código, para calcular o mínimo múltiplo comum entre 2 inteiros X e Y 2. Construir um algoritmo, em pseudo-código, para determinar
Introdução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red 2017-1 Aula Teórica 05 Laços 1 Conteúdos da Aula Instrução de Repetição
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) 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,
Breve Introdução à Programação em Scilab 6.0
Universidade Federal do Paraná UFPR Departamento de Engenharia Química Breve Introdução à Programação em Scilab 6.0 Prof. Éliton Fontana 2018/2 2 Conteúdo 1 Conceitos Básicos 4 2 Operando Vetores e Matrizes
Minicurso MATLAB BÁSICO MÓDULO 1
Minicurso MATLAB BÁSICO MÓDULO 1 Vitorino Biazi Robertson Junior Jhonata Moraes Comissão do Minicurso Sávio Alves Gabriel Nunes Thiago Bragança Roteiro do primeiro módulo Introdução Área de trabalho Variáveis
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo
Processamento Simbólico Polinómios e Equações Gráficos
Matlab Processamento Simbólico Polinómios e Equações Gráficos Matlab Eercício. Iniciar o programa Matlab. Há duas formas: Fazer duplo-clique sobre o atalho, eistente no ambiente de trabalho do Windows
MATLAB Avançado. Melissa Weber Mendonça
MATLAB Avançado Melissa Weber Mendonça [email protected] O que é o MATLAB? Linguagem computacional de alto nível e um ambiente interativo para computação numérica, visualização e programação. Console:
Vetores, Matrizes e Gráficos
Programação de Computadores I UFOP DECOM 2013 2 Aula prática 3 Vetores, Matrizes e Gráficos Resumo Nesta aula você irá utilizar vetores para resolver diversos tipos de problemas. Para expressar a solução
Iteração e Pontos Fixos
Iteração e Pontos Fixos Iteração é um dos pontos chave da programação numérica. Iterar consiste em repetir uma mesma operação diversas vezes levando a uma aproximação cada vez melhor da solução exata.
Matlab Noções introdutórias. Roteiro para aula
Matlab Noções introdutórias Roteiro para aula Matlab- Variáveis Pode-se criar variáveis na área de trabalho Comandos encerrados com ; não geram eco na área de trabalho >> a = 65 a = 65 >> a = 65; >> Matlab-
Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):
CI240 Fundamentos de Programação Nome: Instruções para a prova A prova é sem consulta; A prova dura 1 hora e 40 minutos; Esta folha de enunciados deverá ser entregue ao professor junto com a folha de respostas;
TÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Exercícios sobre algoritmos
Exercícios sobre algoritmos Exercícios envolvendo estruturas de decisão Fazer um algoritmo para: 1) Receber um número do usuário e mostrar se esse número é par ou não par 2) Receber 3 valores numéricos,
1ª Lista de Exercícios
Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule
Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote. Exercícios com Vetores e Matrizes
Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote Exercícios com Vetores e Matrizes 1. Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer correspondentes
Introdução a Linguagem C
Introdução a Linguagem C Professor: Juliano Lucas Gonçalves [email protected] Agenda Histórico Estrutura básica de um programa em C Diretivas para o processador Bibliotecas Ambiente de desenvolvimento
