Buscar

Introdução a Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1
ALGOP – Algoritmos e Programação 
Aula 1 – Conceitos iniciais
+ Definição de Algoritmos
+ Formas de Representação 
+ Tipos de Dados, variáveis e constantes
+ Instruções Primitivas
2
ALGOP – Algoritmos e Programação 
Algoritmos (definições)
“ Algoritmo é o conjunto predeterminado e bem definido de regras e 
processos destinados à solução de um problema, com um número finito 
de etapas. “ (Dicionário Cegalla)
“ Um algoritmo é a descrição de um padrão de comportamento, 
expressado em termos de um repertório bem definido e finito de ações 
primitivas, das quais damos por certo que elas podem ser executadas. ”
(Guimarães e Lages)
“ Algoritmo é a descrição de um conjunto de comandos que, obedecidos, 
resultam numa sucessão finita de ações. “ (Farrer e colegas)
“ Um algoritmo pode ser definido como uma sequência de passos que 
visam a atingir um objetivo bem definido. “ (Forbellone e Eberspacher)
3
ALGOP – Algoritmos e Programação 
Algoritmos (definições)
O conceito de algoritmo é utilizado em diversas áreas do conhecimento, 
mesmo sem utilizar o nome algoritmo. Por exemplo:
Para administradores e contadores, um plano de ação é um algoritmo, 
pois nele são listados passos para que se chegue a um resultado 
satisfatório.
Para os matemáticos, o termo algoritmo pode descrever o processo de 
cálculo, ou de resolução de um grupo de problemas semelhantes, em que 
se estipulam regras formais para a obtenção da solução do problema.
Diariamente aplicamos/exercitamos o conceito de algoritmos, de maneira 
involuntária ou não... :-) … veja os exemplos seguintes:
4
ALGOP – Algoritmos e Programação 
Algoritmos (exemplos do cotidiano)
Ao tomar banho, podemos distinguir os possíveis passos:
1) Entrar no banheiro e tirar a roupa;
2) Abrir a torneira do chuveiro;
3) Entrar na água;
4) Ensaboar-se;
5) Enxaguar-se;
6) Fechar a torneira;
7) Sair da água, ou da “área do box”;
8) Enxugar-se;
9) Vestir-se.
5
ALGOP – Algoritmos e Programação 
Algoritmos (exemplos do cotidiano)
Podemos preparar uns bifes para o almoço seguindo os passos:
1) Limpar a peça de carne;
2) Fatiar a carne em bifes;
3) Cortar cebolas em rodelas;
4) Repetir, para cada bife:
4.1) levar bife à frigideira;
4.2) aguardar dourar, virando ambas as faces;
4.3) retirar bife e colocar sobre papel toalha até secar;
4.4) retirar do papel toalha e juntar numa travessa;
5) Levar as cebolas fatiadas ao fogo até dourar;
6) Colocar as cebolas douradas sobre os bifes;
7) Servir.
6
ALGOP – Algoritmos e Programação 
Algoritmos (características)
Um algoritmo possui cinco características importantes:
1) Finitude: Um algoritmo deve sempre terminar após um número 
finito de passos;
2) Definição: Cada passo deve conter ações definidas rigorosamente e 
sem ambiguidades;
3) Entradas: Um algoritmo deve ter zero ou mais entradas (conjunto de 
valores que lhe são fornecidos antes do algoritmo iniciar);
4) Saídas: Um algoritmo deve ter uma ou mais saídas (conjunto de 
valores relacionados com a solução do problema em questão);
5) Efetividade: As operações de um algoritmo devem ser simples de 
modo que possam ser executadas com precisão, em um tempo finito. 
7
ALGOP – Algoritmos e Programação 
Algoritmos (características)
Um algoritmo, como qualquer modelo, é uma abstração da realidade. 
Abstração é o processo de identificar as propriedades relevantes do 
fenômeno que está sendo modelado. 
Usando o modelo abstrato, podemos nos concentrar apenas nos atributos 
relevantes para nós, dependendo da finalidade da abstração, e ignorar os 
atributos que não nos interessam no momento.
Todos nós sabemos construir algoritmos. Se isso não fosse verdade, não 
conseguiríamos escovar os dentes, ir ao trabalho, voltar para casa, etc...
Para elaborar algoritmos é preciso utilizar a lógica (coerência de 
raciocínio, de idéias). Quando planejamos algo, utilizamos o raciocínio 
lógico, colocando ordem no pensamento, nas idéias... :-) ...
8
ALGOP – Algoritmos e Programação 
Algoritmos (exercitando o raciocínio lógico)
Descreva os passos necessários para a resolução dos cenários a seguir:
1) Temos 3 potes para armazenar água, com as respectivas capacidades: 
5, 6 e 8 litros. Os potes de 5 e 6 litros estão cheios de água. Precisamos 
separar apenas 1 litro de água para fazer café. Como podemos manejar a 
água, sem desperdicios, para conseguir isolar apenas 1 litro?
2) Um barqueiro precisa atravessar 1 raposa, 1 galinha e 1 pacote de 
milho para a outra margem do rio. Contudo, ele só pode levar um dos 
elementos em cada viagem. Como podemos planejar as viagens, de 
maneira que nenhum dos elementos se alimente do outro?
9
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Os algoritmos podem ser representados de diferentes formas, de maneira 
gráfica ou textual:
+ Descrição narrativa – utiliza linguagem natural para especificar os 
passos para realização das tarefas. 
+ Diagramas de blocos – (ou fluxograma), é uma forma universal de 
representação, pois se utiliza de figuras geométricas para ilustrar os 
passos a serem seguidos para a resolução do problema.
+ Diagrama de Chapin – apresenta a solução do problema por meio de 
um diagrama de quadros com uma visão hierárquica e estruturada.
+ Pseudolinguagem – (ou português estruturado, ou portugol), utiliza 
uma linguagem flexível, intermediária entre a linguagem natural e a 
linguagem de programação.
10
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Um exemplo de algoritmo para cálculo da média de um aluno:
Cálculo da média do aluno (descrição narrativa; um texto ou em tópicos)
+ obter as duas notas do aluno;
+ calcular a média das notas fornecidas;
+ se a média for maior ou igual a 7.0
+ apresentar mensagem de aprovado;
+ senão
+ apresentar mensagem de reprovado. 
11
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Diagrama de blocos (fluxograma) Diagrama de Chapin
12
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
O mesmo exemplo em Pseudolinguagem:
Algoritmo Media
Var N1, N2, Media : Real
Inicio
Leia N1, N2
Media ← (N1 + N2) / 2
Se (Media >= 7) Então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
Fim Se
Fim
Fim Algoritmo
13
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Cada forma de representação possui pontos fracos e fortes. Por exemplo:
Linguagem Natural / Descrição Narrativa
Vantagens: 
+ O português é conhecido por nós.
Desvantagens:
+ Imprecisão.
+ Pouca confiabilidade (a imprecisão gera desconfiança).
+ Extensão (normalmente, escreve-se muito para dizer pouca coisa)
14
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Fluxograma (Diagrama de blocos)
Vantagens: 
+ Uma das ferramentas mais conhecidas.
+ Figuras dizem muito mais que palavras.
+ Padrão mundial.
Desvantagens:
+ Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou 
representá-los.
+ Complica-se a medida que o algoritmo cresce.
15
ALGOP – Algoritmos e Programação 
Algoritmos (formas de representação)
Pseudolinguagem (português estruturado ou portugol)
Vantagens: 
+ Usa o português como base.
+ Pode-se definir quais os dados e como eles vão estar estruturados.
+ Passagem quase imediata do algoritmo para uma linguagem de 
programação qualquer.
Desvantagens:
+ Exige a definição de uma linguagem não real para trabalho.
+ Não padronizado.
16
ALGOP – Algoritmos e Programação 
Algoritmos (o algoritmo e o computador)
Para usarmos o computador como uma ferramenta eficaz de trabalho, 
algunspassos devem ser observados criteriosamente: 
1) Definir o problema: é descrever o problema, os dados de entrada e os 
resultados desejados, tão claro e detalhado quanto possível.
2) Planejar um algoritmo de solução: é decidir como proceder na solução 
do problema, identificando operações que o computador possa executar.
3) Codificar a solução: é redigir um programa para dirigir o computador 
na execução das operações identificadas no algoritmo de solução.
4) Testar o programa: é depurar e testar o programa codificado, para 
assegurar que os resultados desejados sejam fornecidos como saída.
5) Completar a documentação: é preparar um manual que possa ser 
consultado por qualquer pessoa que necessite do programa. 
17
ALGOP – Algoritmos e Programação 
Algoritmos (o algoritmo e o programa de computador)
Um programa de computador é um conjunto organizado de instruções 
que fornecemos ao hardware, que tem a capacidade de entendê-las e 
executá-las.
Antes de construir o programa, é importante elaborar o algoritmo que 
será utilizado para a resolução do problema. De posse do algoritmo, 
podemos inserí-lo em um programa escrito numa linguagem qualquer.
As instruções das linguagens de programação pertencem a 3 categorias:
+ Instruções declarativas: definem uma terminologia personalizada a ser 
utilizada no programa, como por exemplo, os nomes associados as dados.
+ Instruções imperativas: descrevem os passos dos algoritmos, o que 
fazer com os dados.
+ Comentários: facilitam a leitura do programa, explicando suas 
características.
18
ALGOP – Algoritmos e Programação 
Algoritmos (o algoritmo e o programa de computador)
Programas podem ser escritos em diversas linguagens de programação, 
com instruções entendidas pelo ser humano. Posteriormente, eles serão 
traduzidos para a linguagem de máquina, entendida pelo computador.
Essas traduções são realizadas por programas (software) conhecidos 
como compiladores, que produzem uma versão do programa em 
linguagem de máquina, para uso futuro.
Existem também os interpretadores, que executam as instruções 
imediatamente após a sua tradução.
Compiladores: Traduzem tudo, geram versão em linguagem de máquina 
(*.exe)... posteriormente utilizamos esse executável (programa).
Interpretadores: Traduzem e executam as instruções, uma a uma... 
(normalmente mais lento durante a execução).
19
ALGOP – Algoritmos e Programação 
Algoritmos (dado e informação)
É comum observarmos uma certa confusão entre os termos “dado” e 
“informação”... De maneira breve temos:
Dado: Elemento que expressa a menor unidade da informação (átomo da 
informação).
Informação: Conjunto de dados reunidos com regras específicas à 
natureza da informação.
O dado puro não carrega obrigatoriamente caráter informativo. Podemos 
dizer que o dado é a matéria prima da informação. 
Quando escrevemos, trabalhamos com letras (dados), que, ao serem 
ligados, formam palavras (que já é uma informação), que por sua vez 
formam frases...
20
ALGOP – Algoritmos e Programação 
Algoritmos (tipos de dados)
Existem 4 tipos primitivos de dados que serão utilizados na construção 
dos algoritmos. São eles:
Inteiro: dado numérico pertencente ao conjunto dos números inteiros 
relativos (negativo, nulo ou positivo). Exemplos:
a) Nós temos 5 professores.
b) A frota conta com 50 veículos.
Real: dado numérico pertencente ao conjunto dos números reais 
(negativo, nulo ou positivo). Exemplos:
a) O Giba tem 1.98m de altura.
b) Meu saldo bancário é de R$100.35 …
21
ALGOP – Algoritmos e Programação 
Algoritmos (tipos de dados)
Tipos primitivos de dados (continuação)...
Literal (ou caracter): dados compostos por conjuntos de caracteres 
alfanuméricos: numéricos (0..9), alfabéticos (A..Z, a..z) e especiais 
(#, !, ?, @, ...). Exemplos:
a) Constava na prova: “Use somente caneta.”
b) O e-mail do aluno é: “jonas.silva@gmail.com”
Lógico: dado que apresenta um dos valores (verdadeiro ou falso). 
Exemplos:
a) A porta está fechada. (ou é verdadeiro, ou é falso)
b) A lâmpada está apagada. 
22
ALGOP – Algoritmos e Programação 
Algoritmos (definições)
Num algoritmo, trabalhamos com valores que no mundo real representam 
informações relevantes do problema que estamos resolvendo. Tais 
valores (dados) podem sofrer, ou não, alterações durante o tempo de 
execução do programa. Podemos então classificá-los como:
Variáveis: dados que podem sofrer alterações de valor (conteúdo) 
durante o processamento do algoritmo. Exemplos:
A cotação do dólar, o salário de um funcionário, o índice da inflação...
Constantes: dados que não sofrem alterações de valor (conteúdo) 
durante a execução do algoritmo. Exemplos:
Partes de mensagens enviadas ao usuário (na tela), constantes 
matemáticas como PI = 3.141592...
23
ALGOP – Algoritmos e Programação 
Algoritmos (usando variáveis)
Imagine a memória do computador como um “arquivo de metal com 
gavetas”, em que cada gaveta possui uma etiqueta para identificação do 
conteúdo.
Quando declaramos uma variável, reservamos uma região de memória 
(uma gaveta) identificada (etiquetada) para posterior utilização; quando 
atribuimos um valor a uma variável, incluímos o conteúdo na região de 
memória (gaveta) identificada pelo nome da variável.
Declarações Atribuições
Var idade : Inteiro (Pseudolinguagem) idade ← 39
Dim idade As Integer (Visual Basic) idade = 39
int idade; (c/c++, java) idade = 39;
24
ALGOP – Algoritmos e Programação 
Algoritmos (usando variáveis)
Existem regras para a formação dos nomes (ou identificadores) das 
variáveis. São elas:
+ Iniciar o nome da variável com uma letra (caracter alfabético);
+ Os próximos caracteres poderão ser letras, números ou o “_”;
+ Não usar espaços em branco e nem caracteres especiais (@, #, …), 
 com exceção do underline “_”;
+ Nome não pode ser igual a uma palavra reservada da linguagem.
Identificadores válidos Identificadores inválidos
idade, X, a1, salario_bruto 5X, E(14), A:B, Nota/2
Práticas comuns:
Programadores C → iNumeroChamada Java → numeroChamada
Constantes → todas as letras maiúsculas → PI = 3.14159265;
25
ALGOP – Algoritmos e Programação 
Algoritmos (entrada de dados)
Normalmente, um algoritmo trabalha com diferentes dados, fornecidos 
por usuários distintos. Quando necessário, o usuário digita o valor que 
será utilizado no processamento. Para isso contamos com uma instrução 
de entrada de dados, que atribui o valor digitado a uma variável.
Exemplo:
…
Var idade : Inteiro
Inicio
Leia (idade) 
…
Essa instrução, quando executada, gera uma pausa no processamento, 
aguardando uma ação do usuário (que ele forneça um valor). Na 
linguagem C, utilizaríamos a função: scanf (“%d”, &idade); (próxima aula) 
26
ALGOP – Algoritmos e Programação 
Algoritmos (saída de dados)
Durante o tempo de processamento, o algoritmo transforma um conjunto 
de dados, gerando com isso informações que podem ser apresentadas ao 
usuário (na tela por exemplo). Para isso, contamos com uma instrução de 
saída de dados, que apresenta mensagens e os valores das variáveis.
Exemplo:
…
Var idade : Inteiro
Inicio
Leia (idade)
Escreva (“A idade informada é: “, idade) 
…
Essa instrução, mostra uma frase apresentando o valor da variável idade. . 
Na linguagem C, utilizaríamos a função: 
printf (“A idade informada é: %d”, idade); (próxima aula) 
27
ALGOP – Algoritmos e Programação 
Algoritmos (conceitos iniciais – sugestões de leitura)
+ MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. 
 Algoritmos: lógica para desenvolvimento de programação de 
 computadores. 17.ed. São Paulo: Érica, 2005.
Capítulos: 1. Abordagem Contextual
2. Introdução à Lógica
3. Tipos de dados e instruções primitivas
+ ARAÚJO, Everton C. Algoritmos: fundamento e prática. 2.ed.Florianópolis: VisualBooks, 2005.
Capítulos: 2. Programação – Antes do início
4. Alguns Conceitos
9. Pseudocódigos
+ Na WEB: http://pt.wikipedia.org/wiki/Algoritmo
28
ALGOP – Algoritmos e Programação 
Algoritmos (conceitos iniciais – para saber mais)
+ SALIBA, Walter Luís Caram. Técnicas de programação: uma 
abordagem estruturada. São Paulo: Pearson Education do Brasil, 1992.
Capítulos: 1. Introdução
2. Formas de representação de algoritmos
3. Tipos de dados
4. Variáveis
6. Instruções primitivas
+ ASCENCIO, Ana Fernanda Gomes; VENERUCHI, Edilene Aparecida. 
Fundamentos de programação de computadores: algoritmos, Pascal e 
C/C++. São Paulo: Prentice Hall, 2002.
Capítulos: 1. Conceitos básicos
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28

Outros materiais