Something like this? Welcome to Yokohama!

Transcription

Something like this? Welcome to Yokohama!
Universidade Federal do Rio Grande do Norte
Instituto Metrópole Digital
Cursos Técnicos
Introdução aos Algoritmos
Aula 01
Heitor Florêncio, [email protected]
Apresentação da Aula
• Nesta aula você vai:
– Conhecer mais sobre o “computador”.
– Conhecer o significado de um algoritmo.
– Conhecer as características e as formas de
representação de algoritmos.
– Conhecer o software “VisuAlg”.
Introdução aos Algoritmos [Heitor Florêncio]
2
Conceitos Iniciais sobre
Computadores
• Informática:
Tratamentamento automático e racional da
informação.
– Informação + Automática
• Compreende a coleta, armazenamento e
processamento da informação de forma automática, ou
melhor, um processo sem a intervenção direta do
homem.
• Computação:
Ação ou efeito de computar.
Introdução aos Algoritmos [Heitor Florêncio]
3
Conceitos Iniciais sobre
Computadores
• O que é o computador?
• O que o computador faz?
• Como aquela máquina atende aos nossos
mandamentos (abrir um navegador quando
acionado o “mouse”, como ele entende que o
botão da letra “A” é para escrever a letra “A” na
tela, etc)?
Introdução aos Algoritmos [Heitor Florêncio]
4
O que é um
computador?
• “É uma máquina de calcular que processa dados
através de um conjunto de instruções e produz
resultados, com o mínimo de intervenção
humana.”
Obs.: O primeiro
instrumento conhecido
para computar foi o
Ábaco, por volta do ano
1000 a.c.
Introdução aos Algoritmos [Heitor Florêncio]
5
O que é um
computador?
• ...máquina de calcular...:
– Alguém ou alguma coisa que realize os cálculos.
• ...processa dados...:
– Alguém ou alguma coisa que informe os dados de
entrada.
• ...conjunto de instruções...:
– Alguém ou alguma coisa que mostre o passo-a-passo.
• ...resultados...:
– Alguém ou alguma coisa que informa os dados de
saída.
Introdução aos Algoritmos [Heitor Florêncio]
6
O que é um
computador?
Unidade de
Armazenamento
Unidade de
Processamento
(Unidade de
Controle,
Unidade de
Lógica e
Aritmética, ...)
Unidade de Entradas e
Saídas
Introdução aos Algoritmos [Heitor Florêncio]
7
Computadores
•
•
•
•
Laptops;
Celulares;
Tablets;
... Entre outros...
Introdução aos Algoritmos [Heitor Florêncio]
8
Processamento da
Informação
• Unidade de Processamento, que envolve as
unidades abaixo:
– Unidade de Controle
– Unidade de Lógica e Aritmética
• Existe um passo-a-passo ou receita de como essa
unidade deve trabalhar...
• Chamado de ALGORITMO!!!
Introdução aos Algoritmos [Heitor Florêncio]
9
Hardware e Software
Aplicativos
(softwares de
usuários)
Sistema
Operacional
(software do
sistema)
Hardware
Introdução aos Algoritmos [Heitor Florêncio]
10
Algoritmos
• Voltando a definição de computador:
– “É uma máquina de calcular que processa dados
através de um conjunto de instruções e produz
resultados, com o mínimo de intervenção
humana.”
• A partir de agora vamos entender o que é esse
conjunto de instruções que realizar o
processamento dos dados.
Introdução aos Algoritmos [Heitor Florêncio]
11
Algoritmos
• Definições:
– “Um algoritmo é um processo sistemático para a
resolução de um problema.” [Szwarcfiter, Jayme L.
et. al., 1994]
– “Um algoritmo computa uma saída, o resultado
do problema, a partir de uma entrada, as
informações inicialmente conhecidas e que
permitem encontrar a solução do problema.”
[Szwarcfiter, Jayme L. et. al., 1994]
Introdução aos Algoritmos [Heitor Florêncio]
12
Algoritmos
• Definições:
– “1. Mat. Processo de cálculo ou de resolução de
um grupo de problemas semelhantes, em que se
estipulam, com generalidade e sem restrições,
regras formais para obtenção do resultado ou da
solução do problema. 2. Inform. Conjunto de
regras e operações bem-definidas e ordenadas,
destinadas à solução de um problema ou de uma
classe de problemas, em um número finito de
etapas.” [Souza, M. et. al., 2006]
Introdução aos Algoritmos [Heitor Florêncio]
13
Algoritmos
• Definições:
– “Um algoritmo é um conjunto finito de regras que
fornece uma sequência de operações para
resolver um problema específico. É algo como
uma receita, ou uma rotina.” [IMD, UFRN, 2014]
Introdução aos Algoritmos [Heitor Florêncio]
14
Características dos
Algortimos
• Entradas:
– Um algoritmo deve possuir zero ou mais entradas
• Saídas:
– Um algoritmo deve possuir zero ou mais saídas
• Finitude:
– Um algoritmo deve ter um final após número finito de
passos
• Efetividade:
– Um algoritmo deve ser explicitado através de operações
elementares ou básicas.
• Correção:
– Em um algoritmo as saídas devem ser coerentes com as
entradas, sendo um algoritmo correto.
Introdução aos Algoritmos [Heitor Florêncio]
15
Algoritmos x Programas
• Não confunda algoritmos com programas de
computadores.
• O algoritmo é um conjunto de instruções para
realizar uma tarefa.
• Um algoritmo escrito em uma linguagem de
programação e traduzido para linguagem de
máquina é chamado de programa.
Introdução aos Algoritmos [Heitor Florêncio]
16
Algoritmos x Programas
• Chegando a uma solução algorítmica é possível
traduzir para qualquer linguagem de programaçao.
• A linguagem de programação é a ponte entre o
computador e o humano.
• Linguagens de programação:
– Linguagens de alto nível (java, c++, python, html, php,
...): Necessário compilar para linguagem binária.
– Linguagens de baixo nível (linguagem binária,
assembly, ...): interpretadas diretamente pelo
computador, que só entende zeros e uns.
Introdução aos Algoritmos [Heitor Florêncio]
17
Representação de
Algoritmos
• Existem algumas formas de representar um
algoritmo, sendo possível iniciar os estudos sobre
algoritmos com qualquer forma.
• Tipos de Representação:
– Linguagem Natural
– Fluxograma
– Pseudo-linguagem
Introdução aos Algoritmos [Heitor Florêncio]
18
Exemplo 01
• Problema: Em um determinado instituto de cursos
técnicos semi-presenciais os estudantes recebem
notas semanais de acordo com seus desempenhos
nos encontros presenciais. Em uma determinada
semana o tutor avaliou os alunos da seguinte
maneira:
– Se o aluno participou do encontro inteiro sua nota é a
média entre a lista de “Matemática” e a lista de
“Lógica”.
– Se o aluno participou do encontro parcialmente a sua
nota é 70% da média entre a lista de “Matemática” e
a lista de “Lógica”.
Introdução aos Algoritmos [Heitor Florêncio]
19
Exemplo 01
• Resolução: Analisando o problema inicialmente...
• Nesse caso teremos 3 entradas de dados:
– O aluno participou integral do encontro.
– Nota da lista de Matemática
– Nota da lista de Lógica
• E temos como saída:
– A nota do aluno na semana
Introdução aos Algoritmos [Heitor Florêncio]
20
Exemplo 01 – Linguagem
Natual
• Resolução em Linguagem Natual:
1. Coletar as notas do aluno (NM: Nota matemática e
NL: nota logica) e analisar participação dele em sala
2. Se o aluno participou do encontro integral então a
nota semanal (NS) é
NS = (NM+NL)/2;
3. Se o aluno participou do encontro particialmente
então a nota semanal é
NS = 0,7 *((NM+NL)/2)
4. Informar a nota semanal ao aluno
Introdução aos Algoritmos [Heitor Florêncio]
21
Exemplo 01 –
Fluxograma
• Resolução em
Fluxograma:
Sim
Início
Participação integral
(PI); NM; NL
PI =
Verdadeiro
NS = (NM +
NL)/2
Não
NS = 0,7* ( (NM
+ NL)/2 )
NS
Fim
Introdução aos Algoritmos [Heitor Florêncio]
22
Exemplo 01 – Pseudolinguagem
algoritmo "Exemplo01"
// Função : Calculo da Nota
Semanal
// Autor : Heitor Florêncio
var
PART: logico //PART =
participação integral;
NM: real
NL: real
NS: real
Introdução aos Algoritmos [Heitor Florêncio]
inicio
leia(PART)
leia(NM)
leia(NL)
se (PART = verdadeiro) entao
NS <- (NM + NL)/2
senao
NS <- 0.9*((NM + NL)/2)
fimse
escreval(NS)
fimalgoritmo
23
Sites Interessantes para
Iniciantes
• Existem alguns iniciativas de empresas na área de ensino
de programação.
– Code.org [acesso em 2013]:
• É uma organização, sem fins lucrativos, criada para difundir o
ensino de programação.
– Anodocodigo.org.br [acesso em 2014]:
• Definição da própria iniciativa:
“Programar vai abrir seus horizontes. Criar apps para celular,
desenvolver jogos, construir websites e movimentar robôs. Tudo isso
envolve programação e criatividade. O Ano do Código é uma
iniciativa para aproximar a programação aos interessados por
tecnologia e que mostrará que você também pode programar.
Apesar de ser um processo contínuo e de precisar praticar bastante, a
primeira barreira do aprendizado será quebrada aqui, com o nosso
conteúdo e com a ajuda de parceiros.”
Introdução aos Algoritmos [Heitor Florêncio]
24
Temas de Tarefas
•
•
•
•
•
•
Calcular a área de um triângulo
Verificar se um número é primo
Determinar o maior valor entre X números
Determinar o menor valor entre X números
Determinar a média entre X números
Determinar a média ponderada de 3 notas P1, P2 e P3
com pesos 3, 4 e 5, respectivamente.
• Determinar a soma dos dois maiores números dentre X
números
• Calcular o valor de x para uma função de segundo grau
• Dada uma função de segundo grau informar se tem o
ponto de máximo ou de mínimo e calcular esse ponto
Introdução aos Algoritmos [Heitor Florêncio]
25
Algoritmos - Fluxograma
Introdução aos Algoritmos [Heitor Florêncio]
Fonte: Material Didático, IMD,
UFRN, 2012.
26
Algoritmos –
Pseudocódigos
• A pseudo-linguagem é a forma de representação
que tem mais semelhança com as linguagens de
programação necessárias para construir
programas.
• Assim é melhor iniciarmos o estudo utilizando os
pseudocodigos e depois entrar em linguagens de
programação.
Introdução aos Algoritmos [Heitor Florêncio]
27
Próxima Aula!!!
• VisuAlg:
Definição do software de acordo com a empresa
Apoio Informática, criadora o software VisuAlg:
“A linguagem que o VisuAlg interpreta é bem
simples: é uma versão portuguesa dos
pseudocódigos largamente utilizados nos livros de
introdução à programação, conhecida como
"Portugol"”.
Introdução aos Algoritmos [Heitor Florêncio]
28
Referências
• Souza, M. et al. Algoritmos e Lógica de
Programação. Ed. Thomson, 2006.
• Szwarcfiter, Jayme L. e Markenzon, L. Estruturas
de Dados e seus Algoritmos. Ed. LTC, 1994.
• Stallings, W. Arquitetura e Organização de
Computadores. Ed. Pearson, 2009.
• Material didático: Lógica de Programação.
Institudo Metrópole Digital, UFRN, 2014.
Introdução aos Algoritmos [Heitor Florêncio]
29
Referências
• Ano do Código. Disponível em:
http://www.anodocodigo.org.br/. Acessado em
abril de 2014.
• Code. Disponível em: http://code.org/. Acessado
em abril de 2014.
Introdução aos Algoritmos [Heitor Florêncio]
30
Dúvidas
Introdução aos Algoritmos [Heitor Florêncio]
31