Você está na página 1de 49

Processamento da Informação

Algoritmos Sequenciais

Prof. Jesús P. Mena-Chalco


CMCC/UFABC

1
Construção de programas

Para a construção de programas é necessário um conjunto


de instruções colocadas em ordem sequencial lógica:
Algoritmo.

2
Algoritmos

3
Algumas definições de algoritmo

Sequência ordenada de passos que deve ser seguida


para a realização de uma tarefa
(ASCENCIO, 1999).

Regras formais para a obtenção de um resultado ou


solução de um problema, englobando formulas de
expressões aritméticas
(MANZANO, 1997).

Sequência finita de instruções ou operações cuja


execução, em tempo finito, resolve um problema
computacional, qualquer que seja sua instância
(SALVETTI, 1999)

4
Algumas definições de algoritmo

Algoritmo:
Sequência lógica são passos executados até atingir um
objetivo ou solução de um problema.

Exemplos de situações onde uma sequência lógica de


passos é necessária:
Fazer um bolo
Construir um robô para explorar um local
desconhecido
Trocar uma lâmpada

5
Exemplo de algoritmo

Sacar dinheiro de um caixa eletrônico (2012):


(1) Insira o cartão eletrônico.
(2) Digite a senha.
(3) Selecione a opção “saque”.
(4) Digite a quantidade desejada.
(5) Se não houver saldo suficiente, continue no passo (7).
(6) Retire o dinheiro
(7) Retire o cartão do caixa eletrônico
6
Exemplo de algoritmo

Sacar dinheiro de um caixa eletrônico (2022):


(1) Insira o cartão. Use o sensor biométrico (iris, face, digitais).
(2) Digite a senha.
(3) Selecione a opção “saque”.
(4) Digite a quantidade desejada.
(5) Se não houver saldo suficiente, continue no passo (7).
(6) Retire o dinheiro
(7) Retire o cartão. Transação finalizada.
7
Exemplo de algoritmo

Em 2032
O conceito de dinheiro ‘físico’ mudará. Dessa forma, não
precisamos mais ‘retirar’ dinheiro

8
A relação com a tecnologia?

A sequência de passos depende do tipo do tecnologia


utilizada.

A sequência de passos é limitada pela quantidade finita de


possíveis operações.

9
Al-Khorezmi: Um Matemático pouco conhecido
Matemático, astrônomo, astrólogo, geógrafo e autor Persa
(Bagdad, c.850)

Descreveu o sistema numérico atual a um nível


entendível.

al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi ou al-Khowarizmi


O primeiro pensador algoritmico.

Selo postal (Rusia, 1983)


Comemorando o aniversário 1200

Quando em uma subtração nada queda, então escreva um pequeno círculo para que
esse lugar não permanezca vazio (Al-Khorezmi explicando o zero, Século IX)
Al-Khorezmi: Um Matemático pouco conhecido

Os termos:

Algoritmo

Algarismo (número/digito)

Algol (linguagem de programação)
provém de seu nome.

Al-Khorezmi = “de Khorezm”


Algoritmos datam dos gregos (por exemplo, algoritmo de
Euclides para calcular o máximo divisor comum).
Al-Khorezmi foi o primeiro em projetar algoritmos pensando
na sua eficiência para o calculo raizes de equações.
Usou um tipo mecânico similar a um ábaco.
Algoritmos e programas

Para que um computador desempenhe uma tarefa é


necessário que uma sequência de ações (algoritmo) seja
especificada de uma forma compreensível pela máquina.

Um programa de computador nada mais é que um algoritmo


escrito de forma compreensível pelo computador.

Ações especificadas de maneira “formal”.

12
Algoritmos e programas

Um algoritmo computacional tem que terminar em tempo


finito.

Se o algoritmo não terminar em tempo finito, alguns


pesquisadores classificam essa sequência de passos como
método computacional.

13
Linguagem de programação

14
O que é uma linguagem de programação?

É um conjunto limitado de:

→ símbolos (comandos, identificadores, caracteres, etc)


→ regras de sintaxe (descrevem de forma precisa ações)

15
O que é uma linguagem de programação?

Compreendida pelo
Linguagem de
computador. Dependente da
máquina
arquitetura do computador

Utiliza mnemonicos para a


Linguagem de representação de ações
baixo nível elementares
Ex. Assembler

Utiliza instruções próximas da


Linguagem de
linguagem humana
alto nível
Ex. C, Java, Python, PHP

16
Ada King Countess of Lovelace. Sketch of the analytical engine invented by Charles Babbage,
Esq. Richard and John E. Taylor, 1843

17
Ada King Countess of Lovelace. Sketch of the analytical engine invented by Charles
Babbage, Esq. Richard and John E. Taylor, 1843

Ada Lovelace foi a primeira programadora na Máquina Analítica de Charles Babbage. 18


Usaremos o chatGPT

Entre no https://chat.openai.com/

19
Usaremos o chatGPT

20
Usaremos o chatGPT

21
Usaremos o chatGPT

22
Usaremos o chatGPT

23
Usaremos o chatGPT

24
Linguagens de programação

Fonte: “Land of Lisp: Learn to Program in List, One Game at a time”. Autor: Conrad Barski.
http://www.amazon.com/gp/product/1593272812/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593272812&linkCode=as2&tag=onionerealit-20
Linguagens de programação

Fonte: “Land of Lisp: Learn to Program in List, One Game at a time”. Autor: Conrad Barski.
http://www.amazon.com/gp/product/1593272812/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593272812&linkCode=as2&tag=onionerealit-20
Linguagens de programação

Fonte: “Land of Lisp: Learn to Program in List, One Game at a time”. Autor: Conrad Barski.
http://www.amazon.com/gp/product/1593272812/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593272812&linkCode=as2&tag=onionerealit-20
Linguagens de programação

Fonte: “Land of Lisp: Learn to Program in List, One Game at a time”. Autor: Conrad Barski.
http://www.amazon.com/gp/product/1593272812/ref=as_li_tf_il?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593272812&linkCode=as2&tag=onionerealit-20
Linguagens de programação

(*) http://www.digibarn.com/collections/posters/tongues/
Linguagens de programação
Linguagens mais utilizadas

https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019 31
Por que programar em Python?

Nos buscadores web encontrarão


confirmação para quase todas as
hipóteses levantadas...

Quase todas sendo confirmadas…

O importante não é a linguagem


mas a forma de resolver
computacionalmente um
problema.

Focaremos mais na lógica de


programação, não usaremos
nenhuma estrutura sofisticada.

32
Quem usa python?

Wikipedia
Google
Yahoo!
CERN
NASA
Facebook
Amazon
Instagram
Spotify

33
Ambientes de programação

34
Ambientes de programação

Um ambiente de programação oferece ferramentas de


gerenciamento e desenvolvimento de software.

O objetivo é agilizar o desenvolvimento.

Um Integrated Development Environment (IDE) reune as


características básicas para um desenvolvimento rápido de
software.

Ferramentas comuns:
Editor de código (editor de texto)
Compilador
Depurador

35
Qual IDE utilizar?

36
Ambientes de programação

IDE IDE
1 2

Recomenda-se o uso de IDEs ‘simples’


37
Repl.it (use o navegar web)

https://repl.it/languages/python3
38
Teste 2

39
Teste 2

Essa janela é um interpretador da linguagem

40
Teste 2

41
Teste 2

42
Teste 3: Use a janela do interpretador
# Operações básicas
1 + 1
8 - 1
10 * 2
35 / 5

# Divisão inteira (arredonda para baixo)


5 // 3
-5 // 3
5.0 // 3.0

# Resto da divisão
7 % 3

# Exponenciação
2**3

43
Forma de leitura ‘padrão’?

Hebraico

Árabe

44
Forma de leitura

Instruções em sequência: de cima para baixo


Leitura de esquerda para direita
Estruturas aninhadas

45
https://moodle.ufabc.edu.br/course/view.php?id=1670

46
Moodle – Lista 0
Clicar em Editar

47
Moodle – Lista 0
Clicar em Avaliar

Clicar em Salvar

48
Bateria de testes

Solução.py
A Solução.py é processada
e avaliada com uma bateria
de testes.
Moodle-VPL
A comparação é apenas
das saídas, isto é, da forma
de impressão na tela.

Entrada Saída do programa Saída


submetido para esperada
avaliação
1 34 34

0.6 4.999 5.0

49

Você também pode gostar