Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Unidade 1Conceitos básicos
Agenda
⊡ Conceito de algoritmo⊡ Características⊡ Dificuldades⊡ Representação de algoritmos⊡ Etapas na solução de problemas
Desafio 01O lobo, a ovelha e o capim
Você tem um lobo, uma ovelha e um monte de capim para levar ao outro lado de um rio. Porém seu barco é pequeno e você só poderá levar um por vez.
Detalhe: a ovelha não pode comer o capim e nem o lobo a ovelha.
Como você fará para levar os três e garantir que não perderá nenhum deles até o final da jornada?
Algoritmo
Conceito 1Sequência lógica de instruções que devem ser seguidas para a resolução de um problema ou para a execução de uma tarefa.
Conceito 2Sequência de ações bem definidas, organizadas em ordem coerente que são executadas uma a uma para realizar uma determinada tarefa.
Exemplos do dia-a-dia§ A dona de casa
utiliza-os para preparar um bolo.
§ Um motorista, para a troca de um pneu furado.
§ Um matemático, para resolver uma equação.
Algoritmo ir para o trabalho- Acordar- Levantar da cama- Tomar café- Tomar Banho- Por a roupa- Ir pro trabalho
Mais exemplos do dia-a-dia
Ou assim? É possível?- Acordar- Levantar da cama- Tomar café- Por a roupa- Tomar Banho- Ir pro trabalho
Receita de comidaInício1. Coloque os ingredientes do molho na panela2. Misture por 03 minutos em fogo alto3. Desligue o fogo e acrescente um copo de água fria4. Despeje o molho na carneFim
Observação: variáveis - ingredientes do molho
Mais exemplos do dia-a-dia
Desafio 02Como subir uma escada
Elabore uma sequência de passos para subir uma escada.
Algoritmo
Subir uma escadaInício1. Suba um degrau.2. Se não chegou ao topo da escada
então vá para 1.Fim
Subir uma escadaInício1. Enquanto não chegou ao topo da escada
Suba um degrau.Fim
Subir uma escadaInício1. Repita
Suba um degrauAté chegar ao topo da
escada.Fim
Verificar se o estudante foi aprovado ao final do semestreInício1. Leia nota12. Leia nota23. Faça média = (nota1+nota2)/24. Se média > = 5
então escreva "aluno aprovado"senão escreva "aluno reprovado"
Fim.
Mais exemplos do dia-a-dia
Desafio 03Construindo formas
geométricas
Você tem que construir um triângulo e um quadrado usando apenas estes comandos:
parafrente = PF <numero de passos>paratrás = PT <numero de passos>paraesquerda = PE <ângulo>paradireita = PD <ângulo>
Características
⊡ Finitude: algoritmos devem terminar após um número finito de passos.⊡ Definição: cada passo deve ser precisamente definido.⊡ Entradas: devem ter zero ou mais entradas.⊡ Saídas: devem ter uma ou mais saídas.⊡ Efetividade: todas as operações devem ser simples de
modo que possam ser executadas em um tempo limitado.
Representação
Descrição narrativa (linguagem natural)Algoritmos expressos diretamente em linguagem natural, como nas receitas de culinária.
FluxogramaRepresentação gráfica.
Pseudocódigo ou pseudolinguagemEmprega uma linguagem intermediária entre linguagem natural e linguagem de programação.
Descrição narrativa
⊡ Faz uso da língua portuguesa⊡ Vantagens:
• O Português é muito conhecido por nós.
⊡ Desvantagens:• Imprecisão.• Pouca confiabilidade (a
imprecisão acarreta a desconfiança).
• Extensão (normalmente, escreve-se muito para dizer pouca coisa).
Cálculo de média final e status do estudanteAdquirir nome do estudante com suas notas relativas ao semestre.Calcular a média aritmética das quatro notas.Verificar se o estudante passou (nota >=5) e imprimir resultado.
Fluxograma
⊡ Representação de algoritmospor meio de símbolosgráficos.
⊡ Cada tipo de operação érepresentada por um símbolodiferente.
⊡ Tem a vantagem de permitiro acompanhamento visual do fluxo do algoritmo.
⊡ 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 à medida que o algoritmo cresce.
Fluxograma
Início e fim de algoritmo
Atribuições e cálculosde valores
Decisões
Entrada de dados
Discos
Impressão de resultados
Conector na página
Entrada manual
Ligação entre símbolos
Conector fora da página
FluxogramaUm dia de sol
Sol? 2
Início
Acordar
TomarCafé
1
Não
Sim
1
Ir à praia
2
Ler jornal
Ir ao cinema
Jantar
Fim
Pseudolinguagem
⊡ Procura misturar as facilidades da linguagemnatural com a precisão das linguagens de programação.
⊡ A representação da soluçãoem pseudolinguagempossibilita a abstração dos detalhes da sintaxe da linguagem escolhida.
⊡ Vantagens• Usa o português como base.• Pode-se definir quais e como
os dados 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.
PseudolinguagemÁrea de uma mesa
retangular
Inicioleia (comprimento)leia (largura)área <- comprimento * larguraescreva ('Área igual a', área)
Fim
Observação: as palavras em negrito são consideradas as palavras-chaveda pseudolinguagem
Etapas na solução de problemas
Problema
Solução na forma de Algoritmo
Solução comoum programa
de computador
Fase de Resolução do Problema
Fase de Implementação (ou codificação) do Algoritmo em alguma Ling. de Programação
1
2
Etapas na solução de problemas
⊡Método Cartesiano: dividir o problema em diversos problemas menores, a fim de torná-lo mais simples ou específico, repetindo a operação sempre que necessário.
⊡ Planejamento reverso: por meio das informações que se quer de saída, podem ser determinadas reversamente quais são as informações de entrada, bem como todas as etapas necessárias de transformação destas informações.
Etapas na solução de problemas
⊡ Ler atentamente o enunciado, para poder pensar na solução do problema.⊡ Entrada: retirar do enunciado a relação das entradas de dados,
a partir dos quais serão efetuados os cálculos.⊡ Saída: retirar do enunciado a relação das saídas de dados
(quais serão os resultados que se quer obter).⊡ Processamento: determinar o que deve ser feito para que as
entradas se tornem os resultados esperados (saídas). Nessa fase é que se dá a construção do algoritmo propriamente dito. ⊡ Teste de mesa: simular a execução das fases acima mencionadas,
verificando o funcionamento na prática das instruções executadas
Etapas na solução de problemas
⊡ Ex.: Dado o valor de um lado de um quadrado, calcular sua área.
⊡ Entrada: Lado do quadrado⊡ Processamento: Lado2
⊡ Saída: Área do quadrado
Lado do quadrado Lado2 Área do
quadrado
⊡ Problema:□ Dado o preço de um terreno retangular, bem como as medidas de dois dos
lados adjacentes, pretende-se saber se o preço por metro quadrado está acima ou abaixo da média dos preços praticados na zona (que nos é dado).
⊡ Estratégia para formulação do algoritmo: decompor o problema em problemas mais simples1. Precisamos saber: o preço do terreno; a medida do lado A (em metros); a
medida do lado B (em metros); e o preço médio por metro quadrado.2. Precisamos calcular a área do terreno: área = lado A x lado B.3. Precisamos calcular o preço por m2: preço por m2 = preço do terreno / área.4. Precisamos comparar os preços por m2
SE preço por m2 > preço médio ENTÃO o preço está acima da médiaSE preço por m2 < preço médio ENTÃO o preço está abaixo ao da média
Etapas na solução de problemas
Etapas na solução de problemas
⊡ Entendimento do problema.⊡ Criação de uma sequência de
operações (ou ações) que, quando executadas, produzem a solução do problema.⊡ Descrição desse conjunto de ações.⊡ Codificação (uso de uma
linguagem de programação).
Resolução doproblema
Programação