Você está na página 1de 36

Aula 1: Lógica de programação

Prof. Saulo Oliveira


Fundamentos de Programação
Fundamentos de Programação

Agenda da aula de hoje


• Falando com o computador;
• História das linguagens de programação;
• Tipos de representações de algoritmos;
• Primeiro algoritmo.
Fundamentos de Programação

Falando com o computador


Fundamentos de Programação

Falando com o computador


Fundamentos de Programação

Primeira geração: linguagem de máquina 0’s


e 1’s

Figura: Programador configurando ENIAC.


Fundamentos de Programação

Primeira geração: cartão perfurado

Figura: Máquina perfuradora de cartões.


Fundamentos de Programação

Primeira geração: fita magnética

Figura: Computadores com fitas magnéticas.


Fundamentos de Programação

Primeira geração: fita magnética

Figura: Fita magnética


Fundamentos de Programação

Segunda geração: linguagem de


montagem

Código de montagem Binário

LDA A 100011100000
Assembler
ADD #5 10010101010
(montador)

STA A 101011000110

JMP #3 10101010000
Fundamentos de Programação

Terceira geração: linguagens procedural

def fact(n):
if n is 0:
return 1
if n > 0:
return n * fact(n - 1)

Figura: Exemplo de linguagem procedural


para cálculo de fatorial.
10
Fundamentos de Programação

Terceira geração: linguagens procedural

Figura: Processo de tradução de uma linguagem


procedural.
11
Fundamentos de Programação

Quarta geração: linguagens orientadas a


objetivo

Figura: Código SQL (linguagem usada em bancos


de dados).

12
Fundamentos de Programação

Quinta geração: linguagem natural

13
Fundamentos de Programação

Linguagem Natural x Linguagem de


Máquina

Figura: Gerações de linguagens.

14
Fundamentos de Programação

Solucionando problemas com o computador

15
Fundamentos de Programação

Solucionando problemas com o


computador
• Análise: Estudar o enunciado do problema e definir os
dados de entrada, o processamento a ser realizado e
os dados de saída;
• Elaborar um Algoritmo: Desenvolver uma possível
solução para o problema. Isso pode ser realizado
utilizando-se descrição narrativa, fluxograma ou
português estruturado/pseudocódigo;
• Codificação: Transformar o algoritmo em códigos
(programa) utilizando uma determinada linguagem de
programação. 16
Fundamentos de Programação

Construindo algoritmos
1.Compreender completamente o problema a ser
resolvido;

2.Definir os dados de entrada, as condições iniciais, que


dados serão fornecidos e quais objetos fazem parte
do problema;

3.Definir os dados de saída;

4.Definir o processamento, cálculos a serem efetuados,


restrições;

5.Construir o algoritmo;

6.Testar o algoritmo usando simulações. 17


Fundamentos de Programação

Tipos de representações de algoritmos


1.Descrição narrativa;

2.Fluxograma;

3.Português estruturado ou pseudocódigo.

18
Fundamentos de Programação

Descrição narrativa
1.Consiste em analisar o enunciado do problema e
escrever os passos a serem seguidos para a sua
resolução utilizando uma linguagem natural
(português, por exemplo);

2.Vantagem:
A linguagem já é conhecida;

3.Desvantagem:
Ambiguidade, múltiplas interpretações;

19
Fundamentos de Programação

Descrição narrativa

20
Fundamentos de Programação

Descrição narrativa
Algoritmo para mostrar o resultado da multiplicação de
dois números.

Passo 1: Receber os dois números que serão


multiplicados.

Passo 2: Multiplicar os números.

Passo 3: Mostrar o resultado obtido na multiplicação.

21
Fundamentos de Programação

Descrição narrativa
Faça um algoritmo para mostrar o resultado da divisão
de dois números.

Passo 1: Receber os dois números que serão divididos.

Passo 2: Se o segundo número for igual a zero, não


poderá ser feita a divisão. Caso contrário, dividir os
números e mostrar o resultado da divisão.

22
Fundamentos de Programação

Fluxograma
1.Consiste em analisar o enunciado do problema e
escrever os passos a serem seguidos para a sua
resolução utilizando símbolos gráficos predefinidos.

2.Vantagem: o entendimento de elementos gráficos é


mais simples que o entendimento de textos.

3.Desvantagens:
É preciso aprender a simbologia dos fluxogramas.
Fluxograma pode ser muito conciso, dificultando sua
transcrição para um programa.

23
Fundamentos de Programação

Símbolos do fluxograma

Início/Fim: marca o
início ou o fim de um
programa.

Decisão: indica
desvios na
sequência lógica de
execução do
programa.
Processamento:
qualquer operação
com alteração no
conteúdo de uma
variável. 24
Fundamentos de Programação

Símbolos do fluxograma

Entrada de dados.

Linhas de fluxo:
indica sequência
das etapas e a
direção do fluxo.

Saída de dados.

25
Fundamentos de Programação

Exemplo de fluxograma
Algoritmo para mostrar o resultado da multiplicação de
dois números.
Início N1, N2

M = N1 *
N2

M Fim
26
Fundamentos de Programação

Exemplo de fluxograma
Algoritmo para mostrar o resultado da multiplicação de
Início
dois números. N1, N2

Sim
N2 = 0 ?
Divisão por
zero.

Não

D = N1 / N2 Fim
D
27
Fundamentos de Programação

Pseudocódigo
1.Consiste em analisar o enunciado do problema e
escrever os passos a serem seguidos para a sua
resolução por meio de regras bem definidas.

2.Vantagem:
Transcrição do algoritmo para qualquer linguagem é
quase imediata, bastando conhecer as palavras
reservadas (regras) dessa linguagem que serão
utilizadas;

3.Desvantagem:
É preciso aprender as regras do pseudocódigo. 28
Fundamentos de Programação

Regras do pseudocódigo
1.Todo algoritmo deve começar com a palavra
reservada algoritmo e terminar com fim;
2.Todas as variáveis são declaradas com a instrução
declare;
3.Toda variável precisa ter seu tipo explícito;
4.A instrução imprima mostra o conteúdo de uma
variável;
5.A instrução leia serve para a entrada de dados para
as variáveis;
6.A instrução atribua atualiza o valor de uma variável;
7. A instrução se avalia uma expressão e executa
instruções do bloco delimitado por fim; 29
Fundamentos de Programação

Exemplo de pseudocódigo
Algoritmo para mostrar o resultado da multiplicação de
dois números.
Algoritmo: Multiplicação de dois números.

Declare: N1, N2, M numérico

Imprima “Digite dois números”

Leia N1, N2
Atribua M ← N1 * N2
Imprima “Multiplicação = ”, M

Fim

30
Fundamentos de Programação

Exemplo de pseudocódigo
Algoritmo para mostrar o resultado da divisão de dois
Algoritmo: Multiplicação de dois números.
números.
Declare: N1, N2, M numérico
Imprima “Digite dois números”
Se N2 = 0
Imprima “Divisão por zero”
Fim
Senão
Atribua D ← N1 / N2
Escreva “Resultado = ”, D
Fim
Fim
31
Instalação e Manutenção de Computadores

Atividade

32
Fundamentos de Programação

Atividade
• Faça um algoritmo para converter uma temperatura
dada em Fahrenheit para Celsius, utilizando descrição
narrativa, fluxograma e pseudocódigo.

• Faça um algoritmo para calcular a média aritmética M


entre duas notas de um aluno e mostrar sua situação,
que pode ser aprovado (M ≥ 7), reprovado (M < 4) e AF
(4 ≤ M < 7). Se o aluno ficar de AF, entre com a nota da
AF e mostre a média e o resultado final. Utilize
descrição narrativa, fluxograma e pseudocódigo.
33
Instalação e Manutenção de Computadores

Próxima aula

34
Fundamentos de Programação

Próxima aula de hoje


• Conceito de variável;
• Tipos de dados;
• Formação de identificadores;
• Familiarização com o ambiente de programação.

35
Fundamentos de Programação

Material e discussão fora da sala

Prof. Saulo Oliveira


Contato: saulo.freitas.oliveira@gmail.com

https://qacademico.ifce.edu.br

36

Você também pode gostar