Baixe Cap6 - Algoritmo - 2Sem2010 e outras Notas de estudo em PDF para Tecnologia Industrial, somente na Docsity!
Informática Básica
Cap6 – Introdução e implementação a
Algoritmos
Prof. José Alexandre e Arley F. Souza
Algoritmos
- Definimos algoritmo como uma seqüência de passos que visa atingir um objetivo bem definido
- Os algoritmos são utilizados no dia-a-dia para a solução dos mais diversos problemas
- Alguns exemplos genéricos de algoritmos usados no nosso cotidiano são: um manual de instruções, uma receita de bolo, a solução de uma equação do 2º grau, uma pesquisa na lista telefônica e etc.
- O que todas essas coisas tem em comum?
- Elas podem ser vistas como uma série finita e bem definida de passos ou regras que, quando realizadas, atingem um objetivo previamente definido
Perguntas
• O que é algoritmo?
• Para serve o algoritmo?
• Quando usamos um algoritmo?
• Antes de criarmos um algoritmo, o que é
necessário saber?
• Um algoritmo pode ser considerado um
programa?
• Depois do algoritmo pronto, qual é o próximo
passo para a criação de um programa?
Exemplo de Algoritmo
- Tarefa: somar dois números utilizando os retângulos a seguir
- Algoritmo (alguns autores chamam de descrição de passos):
- Escreva o primeiro número no retângulo A
- Escreva o segundo número no retângulo B
- Some o número do retângulo A com o número do retângulo B e escrever o resultado no retângulo C
A B C
Exemplo: descrição de uma tarefa
- Considere o seguinte problema: temos três hastes. Uma das hastes serve de suporte para três discos de tamanhos diferentes. Os discos menores são sempre colocados sobre os discos maiores. A figura abaixo mostra uma possível situação inicial das hastes e discos
- Desejamos mover todos os discos para outra haste, porém só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho
Algoritmo para resolver a tarefa
- Nomeamos as hastes como 1, 2 e 3 e os discos como p, m e g. Considere que inicialmente os discos estão na haste 1. Os passos são: 1. mova o disco p para a haste 3 2. mova o disco m para a haste 2
- mova o disco p para a haste 2
- mova o disco g para a haste 3
- mova o disco p para a haste 1
- mova o disco p para a haste 3
- mova o disco m para a haste 3
10
Pseudocódigo (1/2)
- Durante nosso curso iremos aprender a desenvolver nossos algoritmos em uma pseudo-linguagem (pseudocódigo) conhecida por “Portugol” (aglutinação de Português + Algol), ela possui as seguintes características: - Descrição do algoritmo, menos rigorosa que na linguagem de programação (código fonte) - Fácil de entender e fácil de codificar depois - Independente da linguagem de programação - Simples e objetivo → Técnicas: - Um verbo por frase - Não escrever “para informatas” - Frases curtas e simples, ou seja, ser objetivo - Usar palavras sem duplo sentido
11
- A representação de um algoritmo na forma de pseudocódigo segue a seguinte padronização:
Pseudocódigo (2/2)
ALGORITMO Nome do algoritmo declaração de variáveis INÍCIO Instruções FIM
ALGORITMO é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo
é um nome simbólico dado ao algoritmo com a finalidade de distingui-lo dos demais
<declaração de variáveis> consiste em um local onde são declaradas as variáveis usadas no algoritmo INÍCIO e FIM são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo (instruções)
13
Escrevendo o algoritmo em pseudocódigo
- O algoritmo do último slide pode ser inserido na estrutura de um pseudocódigo da seguinte maneira:
ALGORITMO média
variáveis
N1, N2, N3, N4: inteiro;
media: real;
INÍCIO
leia (N1, N2, N3, N4); media N1 + N2 + N3 + N4)/4; escreva(media);
FIM
Entrada de dados Processamento dos dados Saída dos dados
Nome que atribuímos ao algoritmo
14
Tipos de dados (1/3)
- Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: - Instruções: comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados - Dados: correspondem à porção das informações a serem processadas pelo computador
- O objetivo é classificar os dados de acordo com o tipo de informação contida neles. A classificação apresentada no próximo slide não se aplica a uma linguagem de programação específica, ou seja, é geral
16
Tipos de dados (3/3)
- Caractere: O tipo de dados literal é constituído por uma seqüência de caracteres contendo um ou mais caracteres. O tipo Caractere contém apenas um caractere. Os dados caracteres são representados nos algoritmos delimitados em seu início e término com o caractere aspas simples(‘t’). Exemplos: ‘u’ ‘w’ ‘3’ ‘%’ ‘;’ ‘ ’ ....
- Lógicos ou booleanos: verdadeiro e falso ou true e false ou 0 e 1
Caractere de espaço
Perguntas
- Exemplifique dados do tipo numérico (diferente
daqueles mostrados no slide anterior)
- Exemplifique dados do tipo não-numérico (diferente
daqueles mostrados no slide anterior)
- Exemplifique dados do tipo inteiro
- Exemplifique dados do tipo real
- Exemplifique dados do tipo literal
- Exemplifique dados do tipo caracter
19
Formação de nomes de variáveis (1/2)
- Cada linguagem de programação estabelece suas próprias regras de formação de nomes de variáveis. No entanto, as regras a seguir servem para a maioria das linguagens de programação: - Pode conter um ou mais caracteres - Devem começar por um caractere alfabético (uma letra) ou underscore (“_”) - Pode ser seguido de letras e/ou dígitos e/ou underscore - Não podem empregar palavras reservadas - Não podem conter pontuação nem espaços
20
Formação de nomes de variáveis (2/2)
Nomes válidos Nomes inválidos codigo 1codigo
_codigo 8
codigo_produto x–y
c codigo.produto