ALGORTMOS E PROGRAMAO Engenharia 2012 PLT Programao Estruturada

  • Slides: 54
Download presentation
ALGORÍTMOS E PROGRAMAÇÃO Engenharia - 2012 PLT – Programação Estruturada – 81 Algorítmo e

ALGORÍTMOS E PROGRAMAÇÃO Engenharia - 2012 PLT – Programação Estruturada – 81 Algorítmo e Programação Victorine Viviane Mizrahi

AULA 1 APRESENTAÇÃO. 1. 1. Noção de Algoritmos 1. 2. Pseudo Linguagem Eriovaldo Coelho

AULA 1 APRESENTAÇÃO. 1. 1. Noção de Algoritmos 1. 2. Pseudo Linguagem Eriovaldo Coelho Magalhães eriovaldo. magalhaes@aedu. com

Conteúdo Programático 1. CONCEITOS FUNDAMENTAIS DE PROGRAMAÇÃO 1. 1. Noção de Algoritmos 1. 2.

Conteúdo Programático 1. CONCEITOS FUNDAMENTAIS DE PROGRAMAÇÃO 1. 1. Noção de Algoritmos 1. 2. Pseudo Linguagem 1. 3. Estrutura de um Programa 1. 4. Dados e Variáveis 1. 5. Operadores 2. PROGRAMAÇÃO ESTRUTURADA 2. 1. Desenvolvimento de Algoritmos: análise e resolução de problemas técnica top-down 2. 2. Estrutura de Controle: Condição. 2. 3. Estrutura de Controle: Laço de Repetição. 3. VETORES E MATRIZES 3. 1. Conceitos de vetores 3. 2. Declaração de vetores 3. 2. Operações de Manipulação de vetores 3. 3. Conceito de Matrizes 3. 4. Declaração de Matrizes 3. 5. Operações sobre Matrizes 4. MODULARIZAÇÃO 4. 1 Conceitos de Modularização e decomposição 4. 2. Declaração de funções 4. 3. Passagem de parâmetros 5. STRINGS E FUNÇOES DE MANIPULAÇÃO 6. TIPOS ESTRUTURADOS 6. 1. Registros

Cronograma de Aulas Semana n°. Tema 1 Conceitos Fundamentais de Programação 2 Conceitos Fundamentais

Cronograma de Aulas Semana n°. Tema 1 Conceitos Fundamentais de Programação 2 Conceitos Fundamentais de Programação 3 Conceitos Fundamentais de Programação 4 Programação Estruturada 5 Programação Estruturada 6 Programação Estruturada 7 Programação Estruturada 8 Vetores e Matrizes 9 Avaliação 10 Vetores e Matrizes 11 Vetores e Matrizes 12 Modularização 13 Modularização 14 Strings e Funções de Manipulação 15 Strings e Funções de Manipulação 16 Tipos Estruturados (Registros) 17 Tipos Estruturados (Registros) 18 Avaliação Oficial 19 Revisão e preparação para Avaliação Substitutiva 20 Prova Substitutiva

NOÇÕES DE LÓGICA E ALGORITMO

NOÇÕES DE LÓGICA E ALGORITMO

Algoritmo Objetivo : Facilitar o entendimento da lógica de programação usando uma linguagem conhecida

Algoritmo Objetivo : Facilitar o entendimento da lógica de programação usando uma linguagem conhecida (português).

Lógica: A lógica trata da correção do pensamento, isto é, ela nos ensina a

Lógica: A lógica trata da correção do pensamento, isto é, ela nos ensina a usar corretamente o raciocínio. Pensar com lógica significa ordenar o pensamento. necessário raciocinar de forma lógica ordenando o pensamento com o objetivo de atingir a solução pretendida. A lógica está presente no nosso cotidiano, nas nossas ações, quando falamos, ou escrevemos, pois quando queremos falar, escrever ou agir corretamente precisamos ordenar nosso pensamento.

Algoritmo: Algoritmo pode ser definido como uma sequência lógica, e sem ambiguidade de passos

Algoritmo: Algoritmo pode ser definido como uma sequência lógica, e sem ambiguidade de passos que levam a solução de um dado problema. É uma sequência de passos que visam atingir um objetivo bem definido. O algoritmo está presente em todas as ações do nosso dia à dia como se fosse um plano para resolução de problemas.

 Os algoritmos são comuns em nosso cotidiano, como por exemplo, uma receita de

Os algoritmos são comuns em nosso cotidiano, como por exemplo, uma receita de bolo. Nela está descrita um série de ingredientes necessários, uma sequência de passos a serem cumpridos para atingir o objetivo que é ter um bolo pronto. Ou então um mapa para chegar até um local, que descreve o caminho a ser percorrido através de uma sequência de passos.

 Podemos descrever atividades do cotidiano como por exemplo, trocar uma lâmpada queimada. Apesar

Podemos descrever atividades do cotidiano como por exemplo, trocar uma lâmpada queimada. Apesar de aparentemente óbvio demais, muitas vezes fazemos esse tipo de atividade sem percebermos determinados detalhes. descrever:

pegue uma escada; posicione-a embaixo da lâmpada queimada; pegue uma lâmpada nova; suba na

pegue uma escada; posicione-a embaixo da lâmpada queimada; pegue uma lâmpada nova; suba na escada; retire a lâmpada velha; coloque a lâmpada nova desça e guarde a escada.

 A sequência descrita supõe que a lâmpada nova não esteja queimada e que

A sequência descrita supõe que a lâmpada nova não esteja queimada e que se tenha apenas uma lâmpada para ser trocada. Se tivermos uma outra situação: várias lâmpadas que precisam ser testadas e trocadas ou não, conforme sua condição, a sequência de passos para a solução do problema será outra. Para resolvermos um problema através da construção de um algoritmo podemos especificar um método que traduza uma sequência lógica de passos:

“ 1. Ler atentamente o enunciado - para resolver um problema é necessária sua

“ 1. Ler atentamente o enunciado - para resolver um problema é necessária sua compreensão; 2. Retirar do enunciado a relação das entradas de dados - através do enunciado podemos descobrir quais são as informações que devem ser fornecidas, a partir das quais desenvolveremos as ações; 3. Retirar do enunciado a relação das saídas de dados - através do enunciado podemos descobrir quais são os dados que devem ser emitidos para compor o resultado final, objetivo do algoritmo; 4. Determinar as ações que o levarão a atingir o resultado desejado - nesta etapa precisamos determinar qual sequência de ações é capaz de transformar um conjunto definido de dados nas informações de resultado; 5. Construir o algoritmo - descrever os passos para resolver o problema; 6. Executar o algoritmo - implica em executar todas as ações descritas seguindo o fluxo de execução estabelecido, verificando se os resultados obtidos correspondem ao esperado. Desta forma torna-se possível detectar algum possível erro no desenvolvimento do algoritmo. Essa atividade é conhecida como “TESTE DE MESA”.

 Exercícios: 1 - Um homem precisa atravessar um rio com um barco que

Exercícios: 1 - Um homem precisa atravessar um rio com um barco que possui capacidade de transportar apenas ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas ?

Informações: um barco um homem um lobo um bode um maço de alfafa Ficando

Informações: um barco um homem um lobo um bode um maço de alfafa Ficando sozinhos (sem o Homem) : - O Bode come a Alfafa - O Lobo come o Bode

ação: atravessar o rio sem perder as cargas resultado: todas as as cargas na

ação: atravessar o rio sem perder as cargas resultado: todas as as cargas na outra margem do rio.

Algoritmo: início atravessar homem e bode voltar homem atravessar homem e lobo voltar homem

Algoritmo: início atravessar homem e bode voltar homem atravessar homem e lobo voltar homem e bode atravessar homem e alfafa voltar homem atravessar homem e bode fim

2 - Elabore um algoritmo que mova três discos de uma Torre de Hanói,

2 - Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em três hastes (a-b-c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 -2 -3), os menores sobre os maiores. Deve-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste.

ações: movimentar um disco de cada vez de forma que fiquem ordenados resultado: discos

ações: movimentar um disco de cada vez de forma que fiquem ordenados resultado: discos transferidos e ordenados haste para outra

Algoritmo: início mover o disco 1 para a haste b mover o disco 2

Algoritmo: início mover o disco 1 para a haste b mover o disco 2 para a haste c mover o disco 1 para a haste c mover o disco 3 para a haste b mover o disco 1 para a haste a mover o disco 2 para a haste b mover o disco 1 para a haste b fim

3. Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de

3. Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança não se permite que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a sequência de passos que permitiria a travessia com segurança ?

informações: 3 jesuítas 3 canibais 1 barco com capacidade para 2 pessoas Condição :

informações: 3 jesuítas 3 canibais 1 barco com capacidade para 2 pessoas Condição : não ter em nenhum momento quantidade de jesuítas inferior a canibais.

1. Atravessar um jesuíta e um canibal para a margem B 2. Voltar o

1. Atravessar um jesuíta e um canibal para a margem B 2. Voltar o jesuíta para a margem A 3. Atravessar dois canibais para a margem B 4. Voltar um canibal para a margem A 5. Atravessar dois jesuítas para a margem B 6. Voltar um jesuíta e um canibal para a margem A 7. Atravessar dois jesuítas para a margem B 8. Voltar um canibal para a margem A 9. Atravessar dois canibais para a margem B 10. Voltar um canibal para a margem A 11. Atravessar dois canibais para a margem B

ALGORITMOS Já vimos que para resolvermos um problema através da construção de algoritmos podemos

ALGORITMOS Já vimos que para resolvermos um problema através da construção de algoritmos podemos seguir um método, entre outros existentes, que traduza uma sequência lógica de passos. Estes envolvem descobrir as informações, ações e resultados.

Introdução à Programação Conceitos Introdutórios sobre Construção de Algoritmos

Introdução à Programação Conceitos Introdutórios sobre Construção de Algoritmos

Conteúdo • Representação Algorítmica • Fases Básicas da Construção de Algoritmos • Programação Estruturada

Conteúdo • Representação Algorítmica • Fases Básicas da Construção de Algoritmos • Programação Estruturada • Introdução a uma Linguagem Algorítmica

Contextualização • Abrangência – Apresentar os primeiros conceitos relacionados à construção de algoritmos estruturados.

Contextualização • Abrangência – Apresentar os primeiros conceitos relacionados à construção de algoritmos estruturados. • Importância – Os conceitos discutidos formam a parte mais elementar de qualquer algoritmo.

Objetivos • • Apresentar as principais formas de representar um algoritmo. Discutir as 3

Objetivos • • Apresentar as principais formas de representar um algoritmo. Discutir as 3 fases para construção de algoritmos. Contextualizar a importância de Algoritmos Estruturados. Definir os seguintes conceitos: – Identificadores e Palavras Reservadas – Tipos de Dados – Variável e Constante – Expressões – Operadores

Formas de representar um algoritmo • Algoritmos podem ser representados, dentre outras maneiras, por:

Formas de representar um algoritmo • Algoritmos podem ser representados, dentre outras maneiras, por: – DESCRIÇÃO NARRATIVA • Utiliza uma linguagem de escrita natural para descrever algoritmos. – FLUXOGRAMA (DIAGRAMA DE MÓDULOS) • Utiliza uma linguagem de representação gráfica para descrever algoritmos. – LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) • Utiliza uma linguagem de escrita artificial para descrever algoritmos.

Formas de representar um algoritmo Exemplo: Algoritmo para converter uma temperatura em Fahrenheit para

Formas de representar um algoritmo Exemplo: Algoritmo para converter uma temperatura em Fahrenheit para Celsius

Formas de representar um algoritmo • Descrição narrativa do algoritmo Fahrenheit. Celsius: solicite a

Formas de representar um algoritmo • Descrição narrativa do algoritmo Fahrenheit. Celsius: solicite a temperatura em Fahrenheit; transforme a temperatura em Fahrenheit para Celsius; informe a temperatura em Celsius.

Formas de representar um algoritmo • Fluxograma (Diagrama de Módulos) – Seus principais símbolos

Formas de representar um algoritmo • Fluxograma (Diagrama de Módulos) – Seus principais símbolos gráficos são: = Início e final do fluxograma = Operação de entrada de dados = Operação de saída de dados em impressora = Operação de saída de dados em vídeo = Operações de processamento = Decisão = Seta de Fluxo de Dados = Conector de Fluxo de Dados

Formas de representar um algoritmo • Fluxograma do algoritmo Fahrenheit-Celsius Início do algoritmo Fahrenheit

Formas de representar um algoritmo • Fluxograma do algoritmo Fahrenheit-Celsius Início do algoritmo Fahrenheit Entrada da temperatura (F) Celsius = 5/9 * (Fahrenheit – 32) Cálculo da temperatura (C) Celsius Apresentação do resultado Fim do algoritmo

Formas de representar um algoritmo • Linguagem algorítmica (pseudo-código) – A forma geral de

Formas de representar um algoritmo • Linguagem algorítmica (pseudo-código) – A forma geral de um algoritmo em pseudo-código: Algoritmo <nome_do_algoritmo> [<declaração_de_variáveis>] [<sub-algoritmos>] Início <corpo_do_algoritmo> Fim.

Formas de representar um algoritmo • LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) – Onde: • Algoritmo –

Formas de representar um algoritmo • LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) – Onde: • Algoritmo – Indica o início da definição do algoritmo. • <nome_do_algoritmo> – Nome dado ao algoritmo para distingui-lo dos demais. • [<declaração_de_variáveis>] – Parte opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos sub-algoritmos.

Formas de representar um algoritmo • LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) – Onde: • [<subalgoritmos>] –

Formas de representar um algoritmo • LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) – Onde: • [<subalgoritmos>] – Parte opcional onde são definidos os sub-algoritmos. • Início – Palavra que delimita o início do corpo do algoritmo. • <corpo_do_algoritmo> – Conjunto de instruções do algoritmo. • Fim – Palavra que delimita o término do corpo do algoritmo.

Formas de representar um algoritmo • Pseudo-código do algoritmo Fahrenheit-Celsius Algoritmo Fahrenheit-Celsius Real: Fahrenheit,

Formas de representar um algoritmo • Pseudo-código do algoritmo Fahrenheit-Celsius Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim

Formas de representar um algoritmo Desc. Narrativa Solicite a temperatura em Fahrenheit. Transforme de

Formas de representar um algoritmo Desc. Narrativa Solicite a temperatura em Fahrenheit. Transforme de Fahrenheit para Celsius. Informe a temperatura em Celsius. Fluxograma Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius Fim Ling. Algorítmica Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim

Formas de representar um algoritmo

Formas de representar um algoritmo

Construindo algoritmos • Uma boa prática para construir algoritmos é dividir o problema em

Construindo algoritmos • Uma boa prática para construir algoritmos é dividir o problema em 3 fases (Entrada, Processamento e Saída). – Lembra-se do seu primeiro mantra de programação? Entrada Processamento Saída – ENTRADA: São os dados de entrada do algoritmo. – PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final. – SAÍDA: São os dados já processados.

Construindo algoritmos • No algoritmo Fahrenheit-Celsius temos: – ENTRADA: Temperatura em Fahrenheit – PROCESSAMENTO:

Construindo algoritmos • No algoritmo Fahrenheit-Celsius temos: – ENTRADA: Temperatura em Fahrenheit – PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit – 32) – SAÍDA: Temperatura em Celsius • Num algoritmo para calcular a área de um triângulo temos: – ENTRADA: Base e Altura do triângulo – PROCESSAMENTO: Área = (Base * Altura)/2 – SAÍDA: Área

Construindo algoritmos Dividir o problema em Entrada, Processamento e Saída irá ajudá-lo a ordenar

Construindo algoritmos Dividir o problema em Entrada, Processamento e Saída irá ajudá-lo a ordenar corretamente as instruções do seus algoritmos.

Construindo algoritmos Por isso, antes de construir um algoritmo, pare para pensar e identificar:

Construindo algoritmos Por isso, antes de construir um algoritmo, pare para pensar e identificar: Que dados preciso para começar? – Entrada Quais são os cálculos e decisões? – Processamento Que dados devem ser exibidos? – Saída

Atividade 1 • Identifique a entrada, o processamento e a saída dos problemas abaixo:

Atividade 1 • Identifique a entrada, o processamento e a saída dos problemas abaixo: 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota 1= peso 6 e nota 2= peso 4) 2. Reajustar um salário em 17, 75%. 3. Calcular o desconto de 23% sobre o preço de um produto. 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar.

Atividade 1 – Respostas 1. Calcular e exibir a média ponderada de 2 notas

Atividade 1 – Respostas 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota 1= peso 6 e nota 2= peso 4) – ENTRADA: nota 1 e nota 2 – PROCESSAMENTO: média. P=((nota 1 * 6)+(nota 2 * 4))/(6+4) – SAÍDA: média. P

Atividade 1 – Respostas 2. Reajustar um salário em 7, 75%. – ENTRADA: salário

Atividade 1 – Respostas 2. Reajustar um salário em 7, 75%. – ENTRADA: salário – PROCESSAMENTO: salário. R = salário+(salário*0, 0775) – SAÍDA: salário. R 3. Calcular o desconto de 23% sobre o preço de um produto. – ENTRADA: preço – PROCESSAMENTO: desconto = preço*0, 23 – SAÍDA: desconto

Atividade 1 – Respostas 4. Dada uma taxa de câmbio, transformar um valor em

Atividade 1 – Respostas 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. – ENTRADA: câmbio e dólar – PROCESSAMENTO: real = dólar * câmbio – SAÍDA: real 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar. – ENTRADA: câmbio e real – PROCESSAMENTO: dólar = real/câmbio – SAÍDA: dólar

Atividade 2 1. ) Imagine o seguinte problema: Calcular a média final dos alunos

Atividade 2 1. ) Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P 1, P 2, P 3 e P 4. Onde: Média Final = P 1 + P 2 + P 3 + P 4 ------------- 4 Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P 1, P 2, P 3 e P 4 b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro) c) Quais serão os dados de saída?

Atividade 2 2. ) Imagine o seguinte problema: acrescentar os pesos para cada prova

Atividade 2 2. ) Imagine o seguinte problema: acrescentar os pesos para cada prova que são respectivamente : P 1= PESO 4 , P 2= PESO 6 , P 3= PESO 4 e P 4 = PESO 6 - Calcular e mostrar a media_final

Atividade para próxima aula Lista com o professor

Atividade para próxima aula Lista com o professor

FIM

FIM