sistemas operacionais - engenharia da computaçãozimmer/te207/12_mar_2015_te207_aulas_1 e 2... ·...

37
Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Introdução aos Algoritmos A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Upload: buiminh

Post on 10-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Técnicas de Programação em Engenharia Elétrica I

- Engenharia de Sistemas Embarcados -

Introdução aos Algoritmos

A única diferença entre o difícil e o impossível é que o último demora um

pouco mais de tempo para ser alcançado..

Page 2: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

- Definição: Conjunto finito de regras que

fornece uma seqüência de operações para

resolver um problema específico.

Ou seja.. Seqüência de passos visando atingir um

objetivo bem definido.

Tarefas ordenadas logicamente.

Algoritmo

Page 3: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

- Lógica serve para ordenar pensamentos e ações.

Exemplos:

1. Estudar para a prova

de programação;

2. Ato de dirigir;

3. Receita de bolo..

Lógica

Page 4: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

O algoritmo é como uma receita de

bolo, ou seja, um conjunto de instruções

para a realização de uma tarefa

específica.

Algoritmos em Programação

Page 5: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Entrada Processamento Saída

Propriedades:

- Finitude ( tem que terminar!! );

- Objetivo ( bem definido );

- Entrada(s) ( do que eu preciso? );

- Saída(s) (o que irei produzir ? );

- Efetividade. (ações sem ambiguidade).

OBS: Deve ser composto por operações básicas..

Algoritmos

Page 6: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Entrada Processamento Saída

- Entrada de dados e informações para processamento;

- Expressões (aritméticas, algébricas, lógicas, relacionais);

- Testes (se EXPRESSAO VERDADEIRA então ...);

- Repetições;

- Saída de dados e informações processados (resultado);

Algoritmos – Operações Básicas

Page 7: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

OBS: Resultados podem ser numéricos ou

mensagens na tela do computador,

telefone ou dispositivos, ou podem ser

comandos para controle de

equipamentos ou acessórios diversos.

Normalmente são uma combinação de

ambos.

Construção do Algoritmo

Page 8: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

OBS: Muitos algoritmos referem-se a

manipulações numéricas (continhas).

Lembrem-se da origem da palavra

computação = computare = calcular !!

Construção do Algoritmo

Page 9: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Passos:

1. Verificar o objetivo;

2. Determinar a(s) entrada(s);

3. Determinar a(s) saída(s);

4. Determinar a(s) ações(ão);

5. Construir o algoritmo (definir a sequencia lógica das ações);

6. Testar o algoritmo (teste de mesa).

Algoritmos em Programação

Page 10: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Exemplos:

1 - Dado um número, imprimir o seu valor absoluto.

Resolução

Objetivo?

Entrada(s)?

Saída(s)?

Ações(ão)?

Sequencia das operações?

+ Teste de mesa..

Construção do Algoritmo

Page 11: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Exemplos:

2 – Dada a sua primeira nota e o número de faltas nesta disciplina, calcule quanto precisaria tirar para passar direto.

Resolução

Objetivo? Entrada(s)?

Saída(s)? Ações(ão)?Sequencia das operações?

+ Teste de mesa..

Construção do Algoritmo

Page 12: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Tarefas:

1 – Escreva um algoritmo para determinar o consumo de seu carro (em km/l).

Resolução?

Objetivo? Entrada(s)?

Saída(s)?

Ações(ão)?

Sequencia das operações?

+Teste de mesa

Construção do Algoritmo

Page 13: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Tarefas:

2 – Escreva um algoritmo para calcular e mostrar as raízes de uma equação do segundo grau.

Resolução?

Objetivo? Entrada(s)?

Saída(s)? Restrições(ão)?

Ações(ão)?

Sequencia das operações?

+Teste de mesa

Construção do Algoritmo

Page 14: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Tarefas:

3 – Escreva um programa que, dado um número decimal entre 0 a 15, mostre o número equivalente em binário.

Resolução?

Objetivo? Entrada(s)?

Saída(s)?

Ações(ão)?

Sequencia das operações?

+Teste de mesa

Construção do Algoritmo

Page 15: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Técnicas de Programação em Engenharia Elétrica I

- Engenharia de Sistemas Embarcados -

Pseudo Linguagem de Programação PORTUGOL

“Podemos escolher o que semear, mas somos obrigados a colher aquilo o que

plantamos”. Provérbio Chinês.

Page 16: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Pseudo-Linguagem

Linguagem de Programação?

Notação formal servindo para:

- Expressar um raciocínio lógico (algorítmico).

- Execução automática de um algoritmo no

computador.

Page 17: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Pseudo-Linguagem

Pseudo-Linguagem?

Conjunto básico de primitivas que permitem a

descrição de um algoritmo destinado a

resolver um problema, fazendo a abstração

do sistema no qual será processado.

Intermediário entre a linguagem de

programação e o algoritmo.

Ex:

Algoritmo.. Fluxograma.. Portugol.. C

Page 18: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

PORTUGOL

Portugol é uma pseudo-linguagem de

programação originada da mistura

entre o Português, o Algol e o Pascal.

Page 19: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Estrutura Básica

Blocos e Comandos Básicos de Controle:

INICIO

< declarações de variáveis > ;

< comandos > ;

FIM.

Page 20: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Variáveis – Tipos Básicos

INTEIRO: Qualquer número inteiro positivo, negativo ou nulo (0, -2, 310, etc.).

REAL: Qualquer número real positivo, negativo ou nulo (3.2, -4.5, 0.03, etc.).

CARACTERE: Qualquer conjunto de caracteres alfanuméricos (“professor”,”federal”, etc.).

LÓGICO: Valores FALSO ou VERDADEIRO, resultado de comparações ou proposições lógicas.

Page 21: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Variáveis - Composição

Nomes de Variáveis (identificadores)

Formados por uma letra seguida de uma

seqüência de letras e/ou dígitos.

Page 22: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Variáveis - Declaração

Toda variável deve ser declarada antes do uso.

Declaração:

Indicar o tipo da variável, seguida do(s) nome(s)

desejado(s)

Sintaxe:

TIPO : nome 1 , nome 2, ... , nome n ;

Page 23: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Variáveis - Declaração

Exemplos :

INTEIRO: a, x1, k39, temp, contador;

REAL: a, b, salario;

Page 24: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Comando (Operador) de Atribuição ()

Sintaxe:

NOME VALOR ;

Onde NOME é nome desejado para a

variável e VALOR é um valor constante, uma

variável ou resultado de expressão/ função.

Page 25: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

OBS: ( ; ) – Terminador de comando

obrigatório em Portugol (e em C).

Operadores

- Aritméticos.

- Lógicos.

- Relacionais.

- Outras expressões.

Page 26: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Precedência das Operações

Parênteses e funções (da esq. p/a

direita).

+ - (unários), ** , * , / , + - (binários).

, , = , , , .

NÃO , E , OU .

Page 27: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Precedência das Operações

Exemplo:

INICIO

INTEIRO: delta, b , a , c ;

delta b ** 2 – 4 * a * c ;

Média 3 + 2 / 2 ;

Média ( 3 + 2 ) / 2 ;

FIM.

Page 28: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Seqüência Simples

INICIO

< comando 1 > ;

< ... > ;

< comando n > ;

FIM.

Page 29: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Alternativa Simples

SE < condição >

ENTÃO

< comando 1 > ;

< ... > ;

< comando n > ;

FIMSE ;

Page 30: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Alternativa Simples

Ex:

SE ( idade < 18 )

ENTÃO

situaçãoLegal “menor” ;

FIMSE ;

Page 31: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Alternativa Composta

SE < condição >

ENTÃO

< comando 1 > ;

< ... > ;

< comando n > ;

SENÃO

< comando 1 > ;

< ... > ;

< comando n > ;

FIMSE ;

Page 32: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos BásicosAlternativa Composta

Exemplo:

SE ( peso < 100 )

ENTÃO

físico “magro” ;

SENÃO

físico “gordo” ;

FIMSE ;

Page 33: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Entrada / Saída

LEIA ( valor 1 , valor 2, ... , valor n ) ;

Onde valor 1, ... , valor n são nomes de

variáveis.

IMPRIMA ( valor 1 , valor 2, ... valor n ) ;

Onde valor 1, ... , valor n são variáveis,

constantes ou expressões/funções.

Page 34: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Repetição

ENQUANTO < condição > FAÇA

< comando 1 > ;

< ... > ;

< comando n > ;

FIMENQUANTO ;

Page 35: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Repetição

Ex:

x 0 ;

ENQUANTO ( x < 10 ) FAÇA

IMPRIMA ( x * 2 ) ;

x x + 1 ;

FIM ENQUANTO ;

Portugol – Comandos Básicos

Page 36: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Implementações

Exemplo de Tradutor:

VisualG v 2.0

Apoio Informática

Page 37: Sistemas Operacionais - Engenharia da Computaçãozimmer/TE207/12_mar_2015_TE207_Aulas_1 e 2... · Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados

Portugol – Comandos Básicos

Próxima aula..

Exemplos e exercícios.