Aula1 - Algoritmo e Pseudocodigo
Aula1 - Algoritmo e Pseudocodigo
Aula1 - Algoritmo e Pseudocodigo
Sistemas de Computação
Universidade de São Paulo
SSC 600 – Introdução a Ciência de Computação I
Aula 1
Algoritmo e Pseudo-código
Seiji Isotani, Rafaela V. Rocha
[email protected]
[email protected]
PAE: Armando M. Toda, Geiser Chalco
[email protected]
[email protected]
Informações sobre o curso
• Site do curso
https://edisciplinas.usp.br/course/view.ph
p?id=39957
• Atividades online:
http://moodle.caed-lab.com
Desenvolver o Pensamento
Computacional
O que é?
• Programa: codificação de um
algoritmo em uma linguagem
de programação
(Ascencio, 1999)
O que é?
• Pensamento computacional:
pensamento nos problemas
de forma analítica e
desenvolvimento de soluções
em forma de algoritmos
(Easterbrook, 2014)
Pensamento Computacional
Isso é um algoritmo
Algoritmo
Um algoritmo é um conjunto
de atividades que podem ser
executadas passo a passo
para resolver problemas
Outras definições:
- http://en.wikipedia.org/wiki/Algorithm
- Robert Sedgewick – Algorithms in C, 3rd Ed, Addison Wesley
Algoritmo
• Características básicas
– ter fim
– não dar margem à dupla interpretação
– capacidade de receber dado(s) de entrada do
mundo exterior
– poder gerar informações de saída para o mundo
externo ao do ambiente do algoritmo
– ser efetivo (todas as etapas especificadas no
algoritmo devem ser alcançáveis em um tempo
finito)
Mas peraí....
• Um algoritmo é um programa?
– Não. Um programa é uma das possíveis
representações de um algoritmo.
• Um algoritmo é um processo?
– Não, processo é a atividade de executar
um programa e, consequentemente,
também é a atividade de executar um
algoritmo.
Algoritmos estão em
toda a parte
Não adianta fugir
• Imagine que você queira comprar num site
online
– Um algoritmo vai analisar suas atividades e
recomendar coisas para comprar
– Um algoritmo irá verificar seu cartão de crédito
– Um algoritmo irá identificar a maneira mais
eficiente de entregar o produto na sua casa
• Não vai comprar online?
– Existe um algoritmo para maximizar as vendas
colocando os produtos na prateleira de maneira
diferenciada
• Em computação tudo vira algoritmos
Se não é possível fugir, então
junte-se a ele J.
Seja um criador de algoritmo
de primeira linha!
Como?
Como criar algoritmos?
• Descrição Narrativa
• Fluxograma
• Pseudocódigo
Descrição Narrativa
E como representar um algoritmo?
• Descrição narrativa:
– consiste em analisar o enunciado do
problema e escrever, utilizando linguagem
natural, os passos a serem seguidos para sua
resolução (receita de bolo).
– Ponto positivo: Não é necessário aprender
novos conceitos, pois a língua natural já é
bem conhecida.
– Ponto negativo: A língua natural abre espaço
para várias interpretações, dificultando a
transcrição desse algoritmo para programa
Exemplo – Descrição Narrativa
Crie um algoritmo para exibir o resultado
da multiplicação de dois números
• Descrição narrativa:
– PASSO 1 – Receber os dois números que
serão multiplicados
– PASSO 2 – Multiplicar os números
– PASSO 3 – Mostrar o resultado obtido da
multiplicação
Exemplo - Descrição Narrativa
Crie um algoritmo para exibir o dobro
(n*2) de um número
• Descrição narrativa:
– PASSO 1 – Receber um número
– PASSO 2 – Multiplicar o número * 2
– PASSO 3 – Mostrar o resultado obtido da
multiplicação
Fluxograma
E como representar um algoritmo?
• Fluxograma:
– consiste em analisar o enunciado do
problema e escrever, utilizando símbolos
gráficos, os passos a serem seguidos para sua
resolução
– Ponto positivo: O entendimento de
elementos gráficos é mais simples que o
entendimento de textos.
– Ponto negativo: Os fluxogramas devem ser
entendidos e o algoritmo resultante não é
detalhado. Isso dificulta sua transcrição para
um programa
Fonte:
http://wiki.icmc.usp.br/index.php/Scc-101(2011101)
Exemplo - Fluxograma
Crie um algoritmo para exibir o resultado
da multiplicação de dois números
Entrada de dados
ALGORITMO
DECLARE n1, n2, m
LEIA n1, n2
m ← n1*n2
ESCREVA m
FIM
Exemplo - Pseudocódigo
ALGORITMO
Multplicacao (n1, n2)
DECLARE n1, n2, m
m ←n1*n2 LEIA n1, n2
RETORNE m m ← n1*n2
FIM ESCREVA m
FIM
Exemplo - Pseudocódigo
ALGORITMO
algoritmo “Multiplicação” DECLARE n1, n2, m
LEIA n1, n2
var m ← n1*n2
n1,n2,m: inteiro ESCREVA m
FIM
inicio
escreva(“Digite dois números:”)
leia(n1)
leia(n2)
m ß n1 * n2
escreva(“Multiplicação = ”, m)
fimalgoritmo
Exemplo código C
Código C
#include<stdio.h>
void main() { ALGORITMO
int n1, n2, m; DECLARE n1, n2, m
scanf("%d %d", &n1, &n2); LEIA n1, n2
m = n1*n2; m ← n1*n2
printf("\n %d", m); ESCREVA m
} FIM
Exemplo - Fluxograma
Crie um algoritmo para exibir o dobro de
um número
ALGORITMO
DECLARE n, m
LEIA n
m ← n*2
ESCREVA m
FIM
Exercício