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 .