![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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/2.jpg)
- 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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/3.jpg)
- 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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/34.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022022708/5be60c1e09d3f2ea1a8c77b1/html5/thumbnails/37.jpg)
Portugol – Comandos Básicos
Próxima aula..
Exemplos e exercícios.