Você está na página 1de 38

Algoritmos

Encontro nº1

Prof. Felipe Luiz Pereira, M.Sc.


felipe.pereira@avantis.edu.br
Objetivo da disciplina
• Dominar o processo de solução de problemas
através do desenvolvimento de algoritmos a
serem executados por computador;
• Dominar os comandos básicos, estruturar os
dados em tipos simples e estruturados,
utilizar conceitos de sub-programação, através
da linguagem de programação C/C++.
Ementa
Computadores: unidades básicas, instruções, programa
armazenado, endereçamento, programas em
linguagem de máquina; Conceitos de linguagens
algorítmicas: expressões, comandos sequenciais,
seletivos e repetitivos; Entrada e saída; Subprogramas:
funções; Variáveis estruturadas: vetores e matrizes ;
Escopo de identificadores; Ambiente de
desenvolvimento em C;
Habilidades e competências
• Conceber, projetar e analisar sistemas, produtos
(bens e serviços), componentes ou processos;
• Analisar e compreender os fenômenos físicos e
químicos por meio de modelos simbólicos,
físicos e outros, verificados e validados por
experimentação.
Referências
• ASCENCIO, A. F. G.; CAMPOS, E. A. V. de. Fundamentos da
Programação de Computadores: Algoritmos, Pascal, C/C++ e Java. 3.
ed. São Paulo: Pearson Prentice Hall, 2012.
• DEITEL, Paul; DEITEL, Harvey. C: Como programar. 6. ed. São Paulo:
Pearson Prentice Hall, 2011.
• MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: Lógica para
Desenvolvimento de Programação de Computadores. 15. ed. São
Paulo: Érica, 2004.
Referências
• ARAÚJO, E. C. de. Algoritmos: Fundamento e Prática. Florianópolis:
Visual Book, 2007.
• KAWANO, Wilson. Migrando de C para C++: guia prático de
programação. Rio de Janeiro: Ciência Moderna, 2010.
• MANZANO, José Augusto; NAVARRO, Garcia. Programação de
computadores com C/C++. São Paulo: Érica, 2014.
• MEDINA, Marco; FERTIG, Cristina. Algoritmos e Programação: Teoria e
Prática. São Paulo: Novatec, 2006.
• OLIVEIRA, A. B. de; BORATTI, I. C. Introdução à Programação:
Algoritmos. Florianópolis: Bookstore, 1999.
Agenda
• 1 e 2 - Computadores: unidades básicas, instruções, programa
armazenado, endereçamento, programas em linguagem de máquina;
• 3, 4 e 5 - Conceitos de linguagens algorítmicas: expressões, comandos
sequenciais, seletivos e repetitivos;
• 6 e 7 - Entrada e saída;
• 8 e 9 - Subprogramas: funções;
• 10 e 11 - Variáveis estruturadas: vetores e matrizes;
• 12 e 13 - Escopo de identificadores;
• 14 a 20 - Ambiente de desenvolvimento em C.
Avaliações
• Lista de Exercícios 1 Dia 27/8
• Texto dissertativo 1 Dia 24/9
• Avaliação M1 Dia 24/9 – reposição 5/10 (sábado)

• Lista de Exercícios 2 Dia 22/10


• Texto dissertativo 2 Dia 5/11
• Avaliação M2 Dia 19/11 – reposição 23/11 (sábado)

• AVIN Dia 2/12


Encontro nº 1
O que é um Algoritmo

Sequência finita de passos precisos (regras


ou operações), seguindo uma sequência
lógica (com ordem bem definida), que levam
à execução de uma tarefa.
Exemplo
Passo 1: Bata 4 claras em neve
Passo 2: Adicione 2 xícaras de açúcar
Passo 3: Adicione 2 colheres de farinha de trigo, 4 gemas, 1 colher de
fermento e 2 colheres de chocolate
Passo 4: Bata por 3 minutos
Passo 5: Unte uma assadeira com margarina e farinha de trigo
Passo 6: Coloque o bolo para assar por 20 minutos
Precisão
• Sequência finita de passos precisos (regras ou operações), seguindo
uma sequência lógica (com ordem bem definida), que levam à
execução de uma tarefa.

• Os algoritmos prescindem de precisão.


• Normalmente quem executa um algoritmo deve encontrar nele, todas
as informações necessárias.
Algoritmo Textual Informal
• Modo de preparo:

• Bata a margarina, as gemas e o açúcar até ficar cremoso

• Junte o leite, o coco e a farinha e continue batendo

• Acrescente o fermento e as claras em neve

• Unte uma forma com manteiga e leve ao forno para assar


Algoritmo Textual Informal Refinado
• Modo de preparo:

• Bata, utilizando um garfo, a margarina, as gemas e o açúcar por 15 minutos

• Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos

• Acrescente 20 g de fermento e, por último, as claras em neve

• Unte uma forma com manteiga e leve ao forno para assar por 30 minutos
Lógica
• Sequência finita de passos precisos (regras ou operações), seguindo
uma sequência lógica (com ordem bem definida), que levam à
execução de uma tarefa.

• Sequência lógica é a ordem em que as ações são executadas


Exemplo sem lógica
• Passo 1: Pegar a lâmpada nova;
• Passo 2: Posicionar a escada embaixo da lâmpada queimada;
• Passo 3: Pegar a escada;
• Passo 4: Subir na escada com a lâmpada nova;
• Passo 5: Retirar a lâmpada queimada;
• Passo 6: Jogar a lâmpada velha no lixo;
• Passo 7: Descer da escada;
• Passo 8: Ligar o interruptor;
• Passo 9: Colocar a lâmpada nova;
• Passo 10: Guardar a escada.
Exemplo com lógica
• Passo 1: Pegar a lâmpada nova;
• Passo 2: Pegar a escada;
• Passo 3: Posicionar a escada embaixo da lâmpada queimada;
• Passo 4: Subir na escada com a lâmpada nova;
• Passo 5: Retirar a lâmpada queimada;
• Passo 6: Colocar a lâmpada nova;
• Passo 7: Descer da escada;
• Passo 8: Ligar o interruptor;
• Passo 9: Guardar a escada;
• Passo 10: Jogar a lâmpada velha no lixo.
Problemas de lógica
• Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha
com um barco. Porém a capacidade do barco é de 80kg. Como farão
para sair da ilha?

• Usando uma jangada, um camponês precisa atravessar uma cabra,


um leão e um fardo de capim para a outra margem do rio. A jangada
só tem lugar para ele e mais outra coisa. O que ele deve fazer para
atravessar o rio com seus pertences intactos?
Fases para desenvolver um algoritmo
• Determinar o problema.
• Dividir a solução nas três fases:
ENTRADA PROCESSAMENTO SAÍDA

• Exemplo:
• Problema: calcular o dobro de um número;
• Entrada: qual número?
• Processamento: número * 2
• Saída: mostrar o resultado do processamento
Como é feito um programa em um
computador?

• Algoritmo, ou conjunto de algoritmos, para realizar uma determinada


tarefa;

• Difere de uma receita de bolos?


• Não... Utiliza-se uma linguagem de programação de baixo ou alto nível.

• Mas o que é um computador?


• É uma máquina capaz de possibilitar variados tipos de tratamento automático de
informações ou processamento de dados.
Arquitetura simplificada de um computador

CPU
Unidade Central de Barramento Memória
Processamento

I/O
Entrada e Saída
O computador entende uma receita de bolo?
• Tipos de Linguagens de Programação
• 1 - Totalmente codificadas em binário (0´s e 1´s)
• 2 - Usa instruções simbólicas para representar os 0´s e 1´s
• 3 - Voltadas para facilitar o raciocínio humano
Baixo Nível Alto Nível
Linguagem Linguagem Linguagem
de Assembly de
Máquina (Mnemônica) Alto N ível
0010 0001 1110 LOAD R1, val1 val2 = val1+val2
0010 0010 1111 LOAD R2, val2
0001 0001 0010 ADD R1, R2
0011 0001 1111 STORE R1, val2
(1) (2) (3)
Em alto nível, por favor!
• Métodos para representação de algoritmos:

• Fluxograma:
• Representação gráfica do conjunto de instruções;
• É necessário conhecermos a simbologia;

• Pseudocódigo:
• A transcrição para qualquer linguagem de programação é quase direta;
• É necessário conhecermos as regras do pseudocódigo.
Fluxograma
• Representação gráfica por meio de símbolos geométricos, da solução
algorítmica de um problema.

Início Processamento Entrada

Fim Decisão Saída

Fluxo
Exemplo de fluxograma
Inicia

Número Entrada de um número

Resultado = Número*2 Processamento

Resultado Saída do resultado

Finaliza
Operadores
• Utilizados no processamento:
Resultado = NumA+NumB
• Adição e Subtração: + e –

Resultado = NumA*2
• Multiplicação e divisão: * e /
Resultado = NumA/2
• Resto de divisão: %
Resultado = NumA%2
• Exponenciação: ^
Resultado = (NumA-NumB)*3

• Parênteses: ( e )
Exercícios
• Faça um fluxograma que apresente: Número
• 1. a soma de dois números;
• 2. a divisão de um número pelo dobro do segundo;
Resultado = Número*2
• 3. o resto da divisão de um número por 2;
• 4. informe o quadrado de um número;
• 5. informe o valor de um número elevado por um segundo. Resultado
Exemplo de fluxograma com decisão (desvio
condicional)

NumA, NumB

NumA > NumB

“NumA é maior” “NumB é maior”


Operadores relacionais
• Relacionais (utilizados em processamento de
decisão):
• Maior que: >
• Menor que <
• Maior ou igual que: >=
• Menor ou igual que: <=
• Igual a: = ou ==
• Diferente: <> ou !=
Exemplo de uso de Operadores Relacionais
•8 > 5 resultado: FALSO
resultado: VERDADEIRO • 25 == 23
• 5 > 12 resultado: FALSO
resultado: FALSO • 30 == 30
• 10 >= 10 resultado: VERDADEIRO
resultado: VERDADEIRO • 18 != 19
• 10 > 10 resultado: VERDADEIRO
Operadores lógico

• Lógicos (combinam resultados):


• Uma coisa E outra: &&
• Uma coisa OU outra: ||
• Não é uma coisa: !
Tabela-verdade
Parâmetro 1 Operador lógico Parâmetro 2 Resultado
VERDADEIRO && VERDADEIRO VERDADEIRO
VERDADEIRO && FALSO FALSO
FALSO && VERDADEIRO FALSO
FALSO && FALSO FALSO
VERDADEIRO || VERDADEIRO VERDADEIRO
VERDADEIRO || FALSO VERDADEIRO
FALSO || VERDADEIRO VERDADEIRO
FALSO || FALSO FALSO
! VERDADEIRO FALSO
! FALSO VERDADEIRO
Exercícios
• Considere, X=3, Y=8, Z=9
1. X > 3 • FALSO
2. X != 3 • FALSO
3. X >= 3 && Y < 5 • FALSO
4. Y > 10 || Z > 10 • FALSO
5. (Y > 10 && Z < 20) || (Y < 8) • FALSO
6. X > Y • FALSO
7. Z > X && X < Y • VERDADEIRO
8. ! ( X < Y) • FALSO
Variáveis
• Representa uma posição na memória, onde pode ser armazenado um
dado;
• Possui um nome e um valor;
• Durante a execução do algoritmo, pode ter seu valor alterado.

Numero Resultado = Numero*2 NumA, NumB NumA > NumB


Exercícios
• 1. Faça um algoritmo que receba como entrada uma determinada
temperatura em graus Celsius e mostre a temperatura em Fahrenheit;
• 2. Tendo como entrada o total vendido por um funcionário no mês de abril,
faça um algoritmo que mostre a sua comissão e salário bruto neste mês,
sabendo que o seu salário base é R$1.200,00 e sua comissão é de 10% sobre
o total vendido;
• 3. Escreva um algoritmo que receba o número de faltas de um aluno e
mostre se um aluno está ou não reprovado por falta (máximo de faltas igual
a 16).
• 4. Escreva um algoritmo que receba o valor de três notas e informe se o
aluno está aprovado com média igual ou superior a 6.
Exercícios
• 5. Escreva um algoritmo que receba o número de faltas e o valor de
três notas de um aluno. Na sequencia informe se o aluno está ou não
aprovado considerando a frequência (máximo de faltas igual a 16) e a
média (igual ou superior a 6).

Você também pode gostar