Planeamento
Aulas Teóricas
--------------------
Apresentação
Foi apresentada toda a informação geral respeitante ao funcionamento da cadeira.
--------------------
Introdução
Algoritmos
- O ambiente de invocação
- Dois algoritmos de multiplicação
Controlo dinâmico da execução
Computadores e linguagens de programação
--------------------
Sequência I
Expressão de algoritmos
Um programa inicial
- Instruções e pontos de sequência
- Estrutura de suporte
- Análise e melhoramento
Expressões
- Identificadores e atribuição
--------------------
Sequência II
Decomposição
- Funções da biblioteca
Definição de funções
Procedimentos
Sequenciação e efeitos colaterais
--------------------
Sequência III
Funções de entrada e saída
- Streams de entrada e de saída
- Redireccionamento
- Ficheiros
Iteração I
Repetição
Operadores relacionais e lógicos
Um exemplo comum
Ordenar o trabalho num ciclo
--------------------
Selecção I
Escolher uma selecção
Selecção combinada com iteração
A instrução switch
Manipulação de Dados I
Codificação e tipos
Tipos numéricos
- Tipos inteiros
- Tipos de vírgula flutuante
--------------------
Manipulação de Dados II
Tipos numéricos (continuação)
- Conversão de tipos
Constantes e aliáses
- Criar dados constantes
- Referências
Âmbito e tempo de vida
--------------------
Manipulação de Dados III
Objectos de dados
- A classe string
- Ficheiros
--------------------
Manipulação de Dados IV
Rotinas genéricas e tipos genéricos
Semântica de Arrays I
Semântica de arrays com strings
- Substrings
Interfaces em rotinas que usam arrays
--------------------
Semântica de Arrays II
Vectores
--------------------
Semântica de Arrays III
Multiplicação matriz-vector
Arrays nativos, apontadores, e o operador new
--------------------
Semântica de Agregados I
Pacotes de dados relacionados
Estruturas e classes
--------------------
Semântica de Agregados II
Métodos
Construtores, destrutores, e uma classe Matriz
--------------------
MATLAB - INTRODUÇÃO I
Apresentação do Matlab
Ambiente Matlab
--------------------
MATLAB - INTRODUÇÃO II
Comandos e expressões
Variáveis
Funções matemáticas elementares
--------------------
MATLAB - MATRIZES I
Conceito de matriz
Definição de vectores linha e coluna
Definição de matrizes
Dimensão de matrizes
Indexação de vectores e matrizes
Operações sobre vectores e matrizes
- Adição e subtracção
- Multiplicação e divisão
- Potenciação
--------------------
MATLAB - MATRIZES II
Funções para manipulação de matrizes
MATLAB - GRÁFICOS I
Introdução
Gráficos 2D
- Gráficos de linha
- Estatísticas dos dados
Gráficos 3D
- Gráficos de linha
- Gráficos de superfície
--------------------
MATLAB - GRÁFICOS II
Gráficos em simultâneo
Gráficos especiais
- Histogramas
- Gráficos de área
- Gráficos de barras
- Gráficos de fatias
Anotação e formatação de gráficos
Ferramentas de edição de gráficos
Guardar, abrir, imprimir e exportar
MATLAB - OPERADORES I
Operadores aritméticos
Operadores relacionais
--------------------
MATLAB - OPERADORES II
Operadores lógicos
- Elemento a elemento
- Curto-circuito
Precedência dos operadores
Funções de teste
MATLAB - CONTROLO DE FLUXO
Ciclo for
Ciclo while
Estrutura if
Instrução continue
Instrução break
Bloco try-catch
--------------------
MATLAB - STRINGS E FUNÇÕES DE ENTRADA/SAÍDA
Criação de strings
Operações com strings
- Concatenação
- Comparação
- Procura e substituição
Conversão de strings
- Maiúsculas <-> Minúsculas
- Número <-> String
Saída de dados
Entrada de dados
Abertura e fecho de ficheiro
Leitura de strings
Escrita de dados formatados
Leitura de dados formatados
--------------------
MATLAB - TIPOS DE DADOS ESPECIAIS
Matriz dispersa
Matriz de células
Estrutura de dados
MATLAB - FICHEIROS-M I
Introdução
Scripts
Funções
- Estrutura básica
- Listas de parâmetros variáveis
- Recursividade
- Variáveis persistentes e globais
- Sub-funções
- Funções anónimas
- Funções inline
- Funções de funções
--------------------
MATLAB - FICHEIROS-M II
Erros e depuração de erros
- Tipos de erros
- Depuração de erros
MATLAB - MISCELÂNEA DE FUNÇÕES MATLAB
Data e hora
Análise de dados
Polinómios
- Raízes
- Valor de polinómios
- Operações polinomiais
Ajuste de curvas e interpolação
Integração numérica
--------------------
MATLAB - MATEMÁTICA SIMBÓLICA
Variáveis e expressões simbólicas
Cálculos simbólicos
- Operações algébricas padrão
- Derivação
- Integração
- Limite
- Somatório
Métodos de formatação e simplificação
Resolução de equações algébricas
Gráficos de expressões simbólicas
Aritmética de precisão variável
Álgebra linear
Interfaces gráficas
--------------------
Selecção II
Bissecção
Um exercício de projecto
Recursão
--------------------
Iteração II
Invariantes de ciclo
Resolução iterativa de equações
Discretização do tempo
--------------------
Semântica de Arrays IV
Ordenação por fusão
Aulas de Problemas
--------------------
Introdução
Execução de exercícios práticos para aprender a:
- Construir um algoritmo muito simples.
- Construir um algoritmo que use outro algoritmo.
- Compilar e executar um programa usando um IDE (o Code::Blocks).
- Compilar e executar um programa a partir da linha de comando.
- Executar um programa a partir do sistema operativo.
--------------------
Sequência
Execução de exercícios práticos para aprender a:
- Construir, e usar, uma função.
- Usar a instrução de selecção if.
- Construir, e usar, um procedimento.
- Construir, e usar, uma rotina com passagem por referência.
--------------------
Sequência (repetição)
Repetição dos objectivos da aula anterior, mas com novos exercícios práticos.
--------------------
Iteração I
Execução de exercícios práticos para aprender a:
- Usar o ciclo while (sem contador).
- Usar o ciclo while (com contador), e o ciclo for.
- Usar a instrução de salto break (num contexto de iteração).
--------------------
Iteração II
Execução de exercícios práticos para aprender a:
- Usar ciclos embebidos.
- Construir, e usar, predicados.
- Usar ficheiros (de texto) para entrada e saída de dados.
- Ler, repetidamente, a partir de ficheiros de texto, até esgotar o seu conteúdo.
- Ler e escrever em ficheiros, usando pathnames relativos e absolutos.
--------------------
Selecção
Execução de exercícios práticos para aprender a:
- Usar intensivamente a instrução de selecção if.
- Usar a instrução de selecção switch e a instrução de salto break.
Dados
Execução de exercícios práticos para aprender a:
- Usar objectos da classe string.
- Aceder a ficheiros com nome introduzido interactivamente.
- Ler linhas de ficheiros.
- Construir funções que usam funções.
- Construir rotinas genéricas.
--------------------
Arrays
Execução de exercícios práticos para aprender a:
- Usar objectos da classe vector (vectores).
- Implementar interfaces com vectores passados por referência.
- Usar números pseudo-aleatórios, inicializando-os a partir do relógio.
- Implementar operações matriciais simples com vectores de vectores.
--------------------
Agregados
Execução de exercícios práticos para aprender a:
- Construir, e usar, estruturas de dados.
-
Construir, e usar, classes de objectos:
- classes com vários construtores;
- classes que usam outras classes.
- Usar asserções dentro de rotinas.
--------------------
Matlab 1
Execução de exercícios práticos para aprender a:
- Avaliar expressões matemáticas com escalares e funções elementares.
-
Criar arrays (vectores e matrizes):
- usar o operador de transposição;
- usar a notação "dois pontos";
- usar a função linespace();
- usar as funções zeros(), ones(), e eye();
- definir arrays (ou partes) usando outros arrays (ou partes).
--------------------
Matlab 2
Execução de exercícios práticos para aprender a:
-
Efectuar operações matemáticas com arrays (vectores e matrizes):
- usar operadores "matriciais" (transposto, produto, divisão esquerda, etc);
- usar operadores "elemento a elemento" (operadores "pontuados");
- usar funções (dot(), inv(), etc).
-
Construir gráficos 2D dos tipos mais comuns:
- gráficos de linha;
- histogramas;
- gráficos de área;
- gráficos de barras;
- gráficos de fatias.
--------------------
Matlab 3
Execução de exercícios práticos para aprender a:
- Programar em MATLAB.
- Construir ficheiros de comandos (script files) e de rotinas (function files).
-
Usar funções de entrada/saída interactiva de dados:
- input(), disp(), fprintf().
-
Usar ficheiros de texto para entrada/saída de dados:
- fopen(), fclose();
- fscanf(), fprintf();
- fgets(), fgetl(), feof().
-
Usar strings:
- findstr(), etc.
- Construir e usar funções anónimas, e funções inline().
--------------------
Matlab 4
Execução de exercícios práticos para aprender a:
-
Determinar zeros, máximos e mínimos de funções de uma variável:
- fzero(), fminbnd().
-
Usar funções envolvendo polinómios:
- roots(), polyfit(), polyval().
-
Integrar numericamente funções de uma variável:
- quad(), trapz().
- Usar as funcionalidades de matemática simbólica:
-
Definir variáveis e expressões simbólicas:
- sym(), syms.
-
Atribuir valores numéricos a variáveis simbólicas dentro de expressões:
- subs().
-
Determinar funções compostas e funções inversas:
- compose(), finverse().
-
Derivar, integrar, achar limites, e calcular somatórios:
- diff(), int(), limit(), symsum().
-
Formatar e simplificar expressões simbólicas:
- pretty(), simplify(), collect(), expand(), simple().
-
Resolver sistemas de equações algébricas:
- solve().
-
Converter polinómios para expressões simbólicas:
- poly2sym().
-
Traçar gráficos de expressões simbólicas:
- ezplot().
-
Utilizar a interface gráfica da calculadora de funções:
- funtool.
--------------------
Consolidação da matéria dada
Os alunos foram convidados a resolver os exercícios que não completaram em aulas anteriores, e/ou a resolver as questões do exame tipo .