A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.

Apresentações semelhantes


Apresentação em tema: "Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2."— Transcrição da apresentação:

1 Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2

2 Ludwig Krippahl, 2007 2 Trabalhadores Estudantes Consultem regras de avaliação no site.

3 Ludwig Krippahl, 2007 3 Na aula de hoje... Algoritmos Funções e Variáveis Teste de Octave

4 Ludwig Krippahl, 2007 4 Algoritmos Muhammad ibn Mūsā al-Khwārizmī Compêndio do Cálculo por Completude e Balanço. Cálculo com Numerais Hindu Algoritmi de numero Indorum (sec. XII) Algoritmo Algarismo http://en.wikipedia.org/wiki/Muhammad_ibn_Mūsā_al-Khwārizmī

5 Ludwig Krippahl, 2007 5 Algoritmo Conjunto finito de instruções. No sentido estrito, operações sobre símbolos (matemática, lógica, programas) No sentido lato: receitas, procedimentos de emergência, etc... http://en.wikipedia.org/wiki/Algorithm

6 Ludwig Krippahl, 2007 6 «Algoritmo» da torrada Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar

7 Ludwig Krippahl, 2007 7 Controlo da execução Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar

8 Ludwig Krippahl, 2007 8 Controlo da execução Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar Sequência

9 Ludwig Krippahl, 2007 9 Controlo da execução Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar Condição

10 Ludwig Krippahl, 2007 10 Controlo da execução Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar Ciclo

11 Ludwig Krippahl, 2007 11 Implementação Modular Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar

12 Ludwig Krippahl, 2007 12 Implementação Modular Pegar no pão Se faca na bancada, Pegar na faca Caso contrário Ir buscar faca à gaveta Cortar fatia, pôr na torradeira, ligar Enquanto não está pronta Esperar

13 Ludwig Krippahl, 2007 13 Implementação Modular Pegar no pão Encontrar faca Cortar fatia Pôr na torradeira, ligar Enquanto não está pronta Esperar

14 Ludwig Krippahl, 2007 14 Implementação Modular Pegar no pão Encontrar faca Cortar fatia Pôr na torradeira, ligar Enquanto não está pronta Esperar

15 Ludwig Krippahl, 2007 15 Implementação Modular Pegar no pão Encontrar faca Cortar fatia Torrada = Torradeira(Pão) Procedimento Função

16 Ludwig Krippahl, 2007 16 Implementação Modular Pegar no pão Encontrar faca Cortar fatia Torrada = Torradeira(Pão) Procedimento Função

17 Ludwig Krippahl, 2007 17 Programação Resolver problemas complexos um problema simples de cada vez Hierarquizar os problemas

18 Ludwig Krippahl, 2007 18 Hardware Dentro do PC HDDP. Gráfica CPURAM... Bus Controladores

19 Ludwig Krippahl, 2007 19 Sistema operativo Núcleo (kernel) do sistema operativo: Gestão de ficheiros, processos, periféricos (Drivers), memória... Dentro do PC HDDP. Gráfica CPURAM... Bus Controladores

20 Ludwig Krippahl, 2007 20 Outros programas Núcleo (kernel) do sistema operativo: Dentro do PC HDDP. Gráfica CPURAM... Bus Controladores Interface (Shell) do sistema operativo: Janelas, botões, interface gráfica, linha de comandos...

21 Ludwig Krippahl, 2007 21 Outros programas Núcleo (kernel) do sistema operativo: Dentro do PC HDDP. Gráfica CPURAM... Bus Controladores Interface (Shell) do sistema operativo: Minesweeper, Messenger, Octave, IExplorer,...

22 Ludwig Krippahl, 2007 22 Implementação Modular Pegar no pão Encontrar faca Cortar fatia Torrada = Torradeira(Pão) Como fazer no Octave... Procedimento Função

23 Ludwig Krippahl, 2007 23 Implementação Modular Script Conjunto de instruções guardado num ficheiro Ficheiro tem nome.m Quando Octave recebe um nome, se não é variável procura o ficheiro

24 Ludwig Krippahl, 2007 24 Implementação Modular Script EdiPO, criar novo ficheiro teste a=2 (no teste.m) a=2 (no Octave) octave:13> a=4 a = 4 octave:14> teste a = 2 octave:15> a a = 2

25 Ludwig Krippahl, 2007 25 Implementação Modular Script Útil para guardar um pequeno programa reutilizável, mas não é um módulo independente.

26 Ludwig Krippahl, 2007 26 Implementação Modular Function (procedimento ou função) As variáveis são locais e independentes. (no teste.m) function teste a=2 endfunction (no Octave) octave:13> a=4 a = 4 octave:14> teste a = 2 octave:15> a a = 4

27 Ludwig Krippahl, 2007 27 Implementação Modular Function As variáveis são locais e independentes. (no teste.m) function teste a=2 endfunction (no Octave) octave:13> a=4 a = 4 octave:14> teste a = 2 octave:15> a a = 4 Mesmo nome que o ficheiro

28 Ludwig Krippahl, 2007 28 Implementação Modular Function As variáveis são locais e independentes. (no teste.m) function teste a=2 endfunction (no Octave) octave:13> a=4 a = 4 octave:14> teste a = 2 octave:15> a a = 4 A variável a da função só existe dentro da função

29 Ludwig Krippahl, 2007 29 Implementação Modular Mas queremos uma torradeira: Torrada = Torradeira (Pão) Tem que receber e devolver valores. (no soma.m) function res=soma(a,b) res=a+b endfunction (no Octave) octave:16> soma(2,5) res = 7 ans = 7 octave:17>

30 Ludwig Krippahl, 2007 30 Implementação Modular function res=soma(a,b) res=a+b endfunction Argumentos da função

31 Ludwig Krippahl, 2007 31 Implementação Modular function res=soma(a,b) res=a+b endfunction Nome da variável (na função) com o valor a devolver

32 Ludwig Krippahl, 2007 32 Implementação Modular function res=soma(a,b) res=a+b endfunction a e b são cópias dos valores

33 Ludwig Krippahl, 2007 33 Implementação Modular function x=incrementa(x) x=x+1 endfunction x é cópias do valor octave:17> x=3 x = 3 octave:18> incrementa(x) x = 4 ans = 4 octave:19> x x = 3

34 Ludwig Krippahl, 2007 34 Implementação Modular function res=soma(a,b) res=a+b endfunction Último detalhe: Não queremos o res (no Octave) octave:16> soma(2,5) res = 7 ans = 7 octave:17>

35 Ludwig Krippahl, 2007 35 Implementação Modular function res=soma(a,b) res=a+b; endfunction Último detalhe: Não queremos o res ; resolve o problema. (no Octave) octave:20> soma(2,5) ans = 7 octave:21>

36 Ludwig Krippahl, 2007 36 Implementação Modular Importante: Os argumentos da função são cópias locais dos valores.

37 Ludwig Krippahl, 2007 37 Implementação Modular Importante: O Octave primeiro verifica se há uma variável com esse nome: octave:21> soma=0 soma = 0 octave:22> soma(2,5) error: invalid row index = 2 error: invalid column index = 5

38 Ludwig Krippahl, 2007 38 Implementação Modular Importante: O Octave primeiro verifica se há uma variável com esse nome. Se fosse ao contrário, um novo ficheiro.m podia estragar um programa já existente...

39 Ludwig Krippahl, 2007 39 Implementação Modular Importante: A variável (ou variáveis) designada para guardar o valor devolvido tem que ter um valor atribuído no final da função. function res=soma(a,b) c=a+b; endfunction octave:24> a=soma(2,5) error: value on right hand side of assignment is undefined error: evaluating assignment expression near line 24, column 2

40 Ludwig Krippahl, 2007 40 Aula de hoje Decompor problema complexo em problemas simples. No Octave, usar funções: Reutilizáveis (como a torradeira) As variáveis locais garantem que só entra e sai o que quisermos (melhor que a torradeira!)

41 Ludwig Krippahl, 2007 41 Próxima aula Como controlar a execução: if... elseif.. else... endif while... endwhile for... endfor

42 Ludwig Krippahl, 2007 42 Teste de Octave Saber o que fizeram nas práticas Reutilizar código Desenrascar 90 minutos certos Consulta livre, mas nada de chat ou email.

43 Ludwig Krippahl, 2007 43 Dúvidas


Carregar ppt "Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2."

Apresentações semelhantes


Anúncios Google