algoritmos e programação de computadores prof.: wyllian fressatti
TRANSCRIPT
![Page 1: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/1.jpg)
Algoritmos e Algoritmos e Programação de Programação de ComputadoresComputadores
Algoritmos e Algoritmos e Programação de Programação de ComputadoresComputadores
Prof.: Wyllian FressattiProf.: Wyllian Fressatti
![Page 2: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/2.jpg)
• Hardware: parte física do computador. Formada pelos circuitos eletrônicos, dispositivos mecânicos, magnéticos e etc.
• Software: os programas que executam sobre o hardware.
HARDWARE + SOFTWARE = COMPUTADOR
O Computador
![Page 3: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/3.jpg)
Conceitos Iniciais
• Lógica de programação: é a técnica de encadear pensamentos para atingir determinado objetivo. O aprendizado desta técnica é necessário, para quem deseja trabalhar com desenvolvimento de sistemas e programas.
• Algoritmo: é uma seqüência de passos finitos com o objetivo de solucionar um problema.
(Lopes, Garcia)
![Page 4: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/4.jpg)
• Quando nós temos um problema, nosso objetivo é solucioná-lo. Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algoritmo é um conjunto de passos (ações) que levam à solução de um determinado problema, ou então, é um caminho para a solução de um problema e, em geral, os caminhos que levam a uma solução são muitos.
(Lopes, Garcia)
![Page 5: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/5.jpg)
Algoritmo• Frequentemente nos deparamos com vários
problemas. Muitas vezes já vimos um algoritmo e não sabíamos que, à aquela seqüência de passos damos o nome de algoritmo. Um exemplo bem freqüente é quando queremos falar em algum telefone público. Aquilo que está escrito no telefone é um algoritmo. Veja a seguir um exemplo de um algoritmo do cotidiano.
1 – Retirar o telefone do gancho2 – Esperar o sinal3 – Colocar o cartão4 – Discar o número5 – Falar no telefone6- Colocar o telefone no gancho
![Page 6: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/6.jpg)
Algoritmo
Outro exemplo clássico é um algoritmo para resolver o problema de fritar um ovo
• 1 Pegar frigideira, ovo, óleo e sal• 2 Colocar óleo na frigideira• 3 Acender o fogo• 4 Colocar a frigideira no fogo• 5 Esperar o óleo aquecer• 6 Colocar o ovo• 7 Retirar quando pronto
Cada linha do algoritmo podemos chamar de uma instrução, logo, podemos dizer que um algoritmo é um conjunto de instruções.
Instrução indica a um computador uma ação elementar a ser executada.
![Page 7: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/7.jpg)
Algoritmo para trocar lâmpada
• 1 Se (lâmpada estiver fora do alcance) pegar escada;
• 2 Se (lâmpada estiver quente) pegar pano;
• 3 Pegar lâmpada;• 4 Tirar lâmpada queimada;• 5 Colocar lâmpada boa;
![Page 8: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/8.jpg)
Exemplo Hipotético do funcionamento de um computador
Conjunto de
EscaninhosOperad
or
![Page 9: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/9.jpg)
Operador - só faz o que for ordenado, não toma decisões
Conjunto de escaninhos - com capacidade para um cartão cada
Máquina de calcular - executa as operações
Caixa de entrada - para receber cartões de fora
Máquina de escrever - para dar saída às informações / resultados
Exemplo Hipotético do funcionamento de um computador
![Page 10: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/10.jpg)
• Para que este modelo funcione, deve existir em cada cartão uma INSTRUÇÃO. O operador segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até encontrar um cartão contendo uma instrução que manda que ele PARE.
Exemplo Hipotético do funcionamento de um computador
![Page 11: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/11.jpg)
EXERCÍCIO Obs.: Utilizaremos a notação (E10) significando "o conteúdo do escaninho E10", isto é, o valor que está agora armazenado no
escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória).
• E1 : leia o conteúdo de E10 (através de meio externo - caixa de entrada)
• E2 : leia o conteúdo de E11 (através de meio externo - caixa de entrada)
• E3 : Somar E10 com E11 (usando a máquina de calcular) e armazene o resultado em E12
• E4 : imprima o conteúdo de E12 (usando a máquina de escrever)
• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
![Page 12: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/12.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
![Page 13: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/13.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
0
![Page 14: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/14.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
000011
![Page 15: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/15.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
1
11
![Page 16: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/16.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
1
11
![Page 17: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/17.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
1
11
2
![Page 18: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/18.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
2
1212
![Page 19: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/19.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
2
1212
![Page 20: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/20.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
2
1212
3
![Page 21: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/21.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
3
123
123
![Page 22: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/22.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
3
123
123
![Page 23: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/23.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
3
123
123
4
![Page 24: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/24.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
4
1234
1234
![Page 25: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/25.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
4
1234
1234
![Page 26: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/26.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
4
1234
1234
5
![Page 27: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/27.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
5
12345
12345
![Page 28: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/28.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
5
12345
12345
![Page 29: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/29.jpg)
EXERCÍCIO 2Faça um algoritmo que imprima os números de 1 a 5
Execução
• E1 : armazene o valor 0 no E10• E2 : E10 recebe o conteúdo de E10
mais 1• E3 : Imprima o valor de E10• E4 : Se E10 menor que 5 vá para E2• E5 : PARE
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E5 (o final).
5
12345
12345
![Page 30: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/30.jpg)
Algoritmos
• Sintaxe: dita as regras de como as sentenças e cada um de seus elementos devem ser construídos corretamente;
• Semântica: se preocupa com o significado de uma sentença construída.
![Page 31: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/31.jpg)
• Todo algoritmo deve ser descrito em alguma linguagem;
• Assim, o algoritmo deve respeitar um padrão sintático;
• Primeira linguagem: LPE (Linguagem em Português Estruturado);
Algoritmos
![Page 32: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/32.jpg)
• Estrutura básica do algoritmo em LPE:
Programa teste;
{ //Início programa
int x, y, soma;
soma = x + y; Imprima (“\soma”, soma);
} //Fim programa
Identificação do algoritmo
Bloco de declarações: variáveis
Bloco de comandos
Algoritmos
![Page 33: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/33.jpg)
• Um primeiro algoritmo em LPE:
Prog primeiro;{ imprima (“\n Oi Mundo!”);
}
Algoritmos
Comando Imprima. Gera uma saída no
vídeo. Será visto mais adiante
![Page 34: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/34.jpg)
• Algoritmos geralmente descrevem algum processamento de dados:
• Estes dados precisam ser representados (descritos) nos algoritmos;
Dados de Entrada
Dados de Saída
Processamento(Computador)
Algoritmos
![Page 35: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/35.jpg)
• Um algoritmo para fins computacionais é a descrição de ações que manipulam objetos em função do tempo.
– Objetos descrevem o estado computacional;* Objetos frequentemente serão
chamados de variáveis.
Algoritmos
![Page 36: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/36.jpg)
• A cada objeto é associado um nome que identifica este objeto ao longo da programação. Este nome é chamado identificador.
• De forma geral, podemos dizer que um identificador está associado à uma célula de memória.
• O termo variável é freqüentemente utilizado como sinônimo de identificador.
Algoritmos
![Page 37: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/37.jpg)
• Regras para nomes de Variáveis:
– Use somente letras e números;– O primeiro caracter do nome deve ser uma letra;– Não é permitido o uso de caracteres especiais.
• Exemplos válidos: ImpostoDeRenda, F1, soma, produto, desconto, SalarioHora.
• Exemplos inválidos: 1f, Imposto-renda, salario hora.
Algoritmos
![Page 38: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/38.jpg)
• Atributos (características) de um objeto:– Nome;– Célula de memória;– Valor associado;– Tipo: define a categoria dos dados que
podem ser armazenados no objeto.
conteúdo (valor armazenado na célula de memória)
Nome identificador do objeto
célula de memória
Algoritmos
![Page 39: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/39.jpg)
• Atributos de um objeto:– O tipo:
• especifica uma classe de valores que podem ser armazenados na célula de memória associada ao identificador;
• define as operações válidas sobre o identificador;
Algoritmos
![Page 40: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/40.jpg)
• Tipo de Dado
– Um identificador armazena um único dado num instante, mas este dado não pode ser qualquer um;
– As células de memória do computador precisam ser compatíveis com o tipo de dado que vão armazenar;
Algoritmos
![Page 41: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/41.jpg)
• Devemos informar ao computador qual o tipo de dado que vamos armazenar;
• Esta informação determina quantas células de memória serão necessárias para armazenar o dado;
• Esta informação define quais serão as operações possíveis de se aplicar sobre os dados;– Exemplo: em um dado numérico pode-se aplicar
uma operação aritmética.
Algoritmos
![Page 42: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/42.jpg)
• Os tipos de dados podem variar de uma linguagem para outra. No entanto, existem dois tipos básicos:– Tipos simples;– Tipos estruturados (estudados mais
adiante);Tipos de Dados Simples
Numérico Nulo (Void)Caracter
Inteiro Real
Algoritmos
![Page 43: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/43.jpg)
• Declaração do tipo do identificador (objeto): em LPE.
tipo identificador;
Algoritmos
Esta é uma seção obrigatória e todas as variáveis devem
ser declaradas antes de serem
referenciadas
![Page 44: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/44.jpg)
• Os Tipos de Dados Numéricos são divididos basicamente em dois grandes conjuntos:– Inteiros;– Reais;
• Os inteiros podem ser positivos, negativos ou nulos, mas não possuem um componente decimal;
Algoritmos
![Page 45: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/45.jpg)
• Os inteiros são compatíveis com os reais, mas os reais não são compatíveis com os inteiros;
• Assim, um objeto real pode receber um valor inteiro, mas um objeto inteiro não pode receber um valor real;
• Declaração de uma variável do tipo inteiro:
LPE Pascal C int x x:integer int x
Algoritmos
![Page 46: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/46.jpg)
• Os reais podem ser positivos, negativos ou nulos, e possuem sempre um componente decimal;
• Exemplos: 2,34; 0,0; -214,123;
• Computacionalmente, existem muitas diferenças entre o armazenamento de números inteiros e números reais;
Algoritmos
![Page 47: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/47.jpg)
• Os números inteiros consomem menos espaço de armazenamento em memória que o tipo real;
• Declaração de variáveis do tipo real:Exemplo
LPE Pascal C real x x: real float x
Algoritmos
![Page 48: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/48.jpg)
• Os tipos de dados não numéricos:– Caracter: formado pelas letras (de A a Z, e
de a a z), dígitos (de 0 a 9) e caracteres especiais (~, ., ?, >, <, ...);
– A diferença entre caracteres e dados numéricos estão na forma de armazenamento, e nas operações legais permitidas sobre os mesmos;• Exemplo: operações aritméticas sobre os
dados numéricos.
Algoritmos
![Page 49: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/49.jpg)
• Para diferenciar um caracter de um identificador ou de um dado numérico, utilizaremos apóstrofes (aspas simples). . Assim:
– 8 é um dado numérico;– ‘8’ é um caracter;– A é um identificador;– ‘A’ é um caracter;
Algoritmos
![Page 50: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/50.jpg)
• Objetos declarados como do tipo caracter poderão armazenar um único caracter;
• Para armazenar uma seqüência de caracteres será utilizada a estrutura cadeia de caracteres, que consiste num tipo de dado estruturado;– Exemplo:
• ‘Z’ é um caracter;• “ANA” é uma cadeia de caracteres;
Algoritmos
![Page 51: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/51.jpg)
•Declaração:
LPE Pascal C
char x x: char char x
Algoritmos
![Page 52: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/52.jpg)
• Tipo Lógico: os valores lógicos podem assumir uma entre duas possibilidades (verdadeiro ou falso);– Só poderá armazenar um destes dois valores;
• Muito utilizados em controle do fluxo lógico do algoritmo;
LPE Pascal C logico x x:boolean não existe
Algoritmos
![Page 53: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/53.jpg)
• Caso haja mais de uma variável do mesmo tipo:
variaveis tipo identificador1, identificador2;• Se houver identificadores de tipos
diferentes (inteiro,real, lógico):variaveis int i1, i2, i3, i; real r1, r2;
Algoritmos
![Page 54: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/54.jpg)
• Escolha do tipo de um identificador: deve-se conhecer bem a solução do problema.– Exemplos de inteiros:
• número de pessoas;• um número par ou ímpar;• idade de uma pessoa;• quantidade de objetos;
– Exemplos de reais:• o peso de uma pessoa;• um percentual;• nota de uma avaliação;• média;• preço de um produto;
Algoritmos
![Page 55: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/55.jpg)
• Situações de dúvida– Exemplos:
• raíz quadrada de um número;• divisão entre dois números inteiros;
• Quando houver alguma possibilidade de um identificador numérico receber um valor não inteiro, deve ser declarado como real.
Inteiros
Reais
Algoritmos
![Page 56: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/56.jpg)
• Valores dos dados– os dados são valores que são armazenados em
células de memória e que são acessados (ao longo do algoritmo) por referência aos identificadores;
– assim, se tivermos os identificadores i, r e l, para objetos do tipo inteiro e real respectivamente, e atribuírmos os valores 100 e 3,14; teríamos a seguinte configuração:
– Estes são os valores exibidos quando se utiliza a instrução Imprima.
100 3,14
i r
Algoritmos
![Page 57: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/57.jpg)
• Tipos de dados serão necessários na declaração de objetos (variáveis);
• Tipos disponíveis em LPE:
TIPO DE DADO DESCRIÇÃO
CharTipo de dado caracter – Todos os caracteres, desde que escrito
entre aspas simples: Ex: ‘a’, ‘A’;
int Tipo de dado numérico de valores inteiros: Ex: 54
real Tipo de dado numérico de valores reais: Ex:0,56
Char[numero]String
Conjunto de caracteres “Olá Mundo”;
Algoritmos
![Page 58: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/58.jpg)
Operadores Aritméticos
Os operadores aritméticos são utilizados na construção de expressões matemáticas, que podem ser formadas por números, constantes de valor numérico ou variáveis numéricas. São eles:
OPERADOR DESCRIÇÃO
+ Adição
- Subtração
* Multiplicação
/ Divisão
% (mod) Resto da divisão
div Quociente da divisão
Algoritmos
![Page 59: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/59.jpg)
Algoritmos
<variável> <- <expressão>;//Exemploresultado <- 5*86;
Comandos
Comandos simplesOs comandos simples ou não estruturados caracterizam-se por não
possuírem comandos relacionados ou dependentes. Todos os comandos são separados por ponto e vírgula.
Exemplo Comando de AtribuiçãoComando utilizado para atribuir um valor à uma variável e definido pelo
operador de atribuição “<-“. Consiste pelo nome de uma variável seguido do operador de atribuição “<-“, depois por uma expressão válida e ponto e vírgula. Por exemplo:
![Page 60: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/60.jpg)
Comandos
Entrada de dados (leia)leia(<variável>);
EX: leia(total1);
Comando onde o usuário especifica um valor para uma variável em tempo de interpretação. O valor digitado deve ser correspondente ao tipo de dado da variável definida como parâmetro ao comando. Só permite ler valores para uma variável por comando. Sua sintaxe é:
Algoritmos
leia(Nome da variável);
//Exemploleia(total1);
![Page 61: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/61.jpg)
Saída de dados (ìmprima)
Comando de saída de dados para o monitor. Imprime na tela o valor de cada parâmetro. Caso haja mais de um parâmetro, o comando efetua a concatenação de todos e imprime o resultado. São permitidas expressões de qualquer tipo como parâmetro. Os parâmetros são separados por vírgula. Exemplo:
Imprima (<expressões>);
Exemploimprima(‘Resultado: ‘, a+b-5);
Algoritmos
imprima(expressão ou variável);
//Exemploimprima(“Resultado: “, a+b-5);
![Page 62: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/62.jpg)
• Exemplo:considerando a figura mostrada acima (um retângulo), faça um algoritmo que calcule a área da mesma.
• Neste problema existem três valores (estados) a serem representados:– Altura do retângulo (h);– Largura (ou base) do retângulo (b);– Área do retângulo.
h
b
Dados de Entrada
Dados de Saída
Algoritmos
![Page 63: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/63.jpg)
• Nesta solução, os valores de a e de h só serão conhecidos em tempo de execução, e deverão ser fornecidos pela pessoa que executa o algoritmo.
• Assim, a preocupação não é com o valor do resultado produzido, e sim com a produção de resultados corretos.
Algoritmos
![Page 64: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/64.jpg)
• Exemplo: no algoritmo para calcular a área de um triângulo retângulo, descrito abaixo, os objetos base e altura são argumentos de entrada, enquanto o objeto area é argumento de saída.
Programa Retangulo;
{ real base, altura, area real;
Imprima (“Digite um valor para a altura do retângulo: “); leia (altura); Imprima (“Digite um valor para a base do retângulo: “); leia (base); area <- altura*base; Imprima (“Valor da área: “, area);}
123456789
101112
Algoritmos
![Page 65: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/65.jpg)
• Teste de mesa: tabela que demonstra os resultados obtidos ao longo da execução de um algoritmo.– Exemplo: execução do algoritmo do slide anterior para
entrada dos valores 3 para o objeto base e 5 para o objeto altura;
Linha Base Altura Area
7 - 5 -
9 3 5 -
10 3 5 15
12 3 5 15
Algoritmos
![Page 66: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/66.jpg)
• Escreva um algoritmo que calcule o diâmetro, a área e a circunferência de um círculo, sabendo que o único dado disponível é o seu raio.
– Diâmetro = 2 * Raio– Área = Pi * Raio * Raio– Circunferência= 2 * Pi * Raio
• Ler dois números inteiros e imprimir a soma.• Entrar com dois números inteiros e imprimir a média aritmética.• Criar um algoritmo que solicite e imprima os valores da diagonal
maior, diagonal menor e calcule a área de um losango. – Fórmula: (diagonal maior * diagonal menor) dividido por 2
• Elaborar um algoritmo para calcular e apresentar o volume de uma lata de óleo, utilizando a fórmula: VOLUME = 3.14159 * (R*R) * ALTURA.
Algoritmos
![Page 67: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/67.jpg)
• Escreva um programa em LPE que pergunte o nome a altura (em metros) e a massa (em Kg) do usuário. Em seguida o programa deverá exibir uma mensagem dizendo o nome do usuário e a sua densidade corporal.– Densidade = peso / altura2
Algoritmos
![Page 68: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/68.jpg)
• Operadores Aritméticos
• As operações são realizadas em uma expressão de acordo com a ordem de prioridade. Quando houver empate entre operações, elas serão realizadas da esquerda para a direita.
+
divisão
adição
- subtração II
II
I
I*
/
Operador PrioridadeSignificado
multiplicação
Algoritmos
![Page 69: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/69.jpg)
• Os parênteses quebram o ordem de prioridade natural.
a
Expressão Matemática Expressão Algoritmica
2.a+b 2*a+b
a/2+b
a*x^2a.x2
2+b
a2+b
a/2+b
a/(2+b)
errado
certo
Expressões Aritméticas
Algoritmos
![Page 70: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/70.jpg)
• Quando houverem parênteses aninhados, a prioridade será do mais interno.
a / (a + b) - (2 * (b + c))1 2
34
5
Algoritmos
![Page 71: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/71.jpg)
• Operadores Relacionais– Comparação entre objetos (ou entre um
objeto e um valor) do mesmo tipo;– O resultado será sempre do tipo lógico (V ou
F);Operador Exemplo de usoSignificado
> A>B, 4>3, C>3
= =
Diferente de
Igual a
<= Menor ou igual a B*A<=0
A= =0
A+B != C
Menor que 2*A<B
Maior que
<
!=
>= Maior ou igual a ‘a’>=‘b'
Algoritmos
![Page 72: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/72.jpg)
• O operador relacional perde em prioridade para os operadores aritméticos;
• O operador relacional é binário, isto é, ele deve envolver um operando a sua esquerda e um a sua direita.
• Assim, a expressão -3 < X <=2 não é válida, pois nela X está relacionando-se com outros dois operandos.
Algoritmos
![Page 73: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/73.jpg)
• Exercício: qual o resultado da expressão relacional A+3 > B quando:– A tem valor igual a 5 e B igual a 8;– A tem valor igual a 0 e B igual a -3;– A tem valor igual a 1 e B igual a 1;– A tem valor igual a -3 e B igual a 1;
Algoritmos
![Page 74: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/74.jpg)
• Operadores Lógicos– Constrói expressão lógica que envolve operandos
lógicos;– Utilizados no processo de tomada de decisão e em
controles de repetição;– Operadores:
• e - usado na conjunção de proposições• ou - usado na disjunção de proposições• não - usado na negação de proposições
– Proposição é qualquer elemento que possa produzir valor lógico (variável lógica, expressão relacional ou expressão lógica);
Algoritmos
![Page 75: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/75.jpg)
• Os operadores e e ou são binários;• O operador não é unário;• Ordem de prioridade:
– não I– e II– ou III
Algoritmos
![Page 76: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/76.jpg)
• A expressão A e B será verdadeira quando o operando A e o operando B produzirem resultados verdadeiros simultaneamente. Qualquer outra combinação de valores destes operandos produzirá resultado falso;
• A expressão A ou B será verdadeira quando uma das proposições (operando A e B) produzir resultado verdadeiro;
Algoritmos
![Page 77: Algoritmos e Programação de Computadores Prof.: Wyllian Fressatti](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc13c497959413d8da9e2/html5/thumbnails/77.jpg)
• Tabela do operador e:
A B A e B
V VV
V F F
F V F
F F F
Algoritmos