Você está na página 1de 54

ALGORTMOS E PROGRAMAO Engenharia - 2012

PLT Programao Estruturada 81 Algortmo e Programao

Victorine Viviane Mizrahi

AULA 1 APRESENTAO. 1.1.Noo de Algoritmos 1.2. Pseudo Linguagem

Eriovaldo Coelho Magalhes

eriovaldo.magalhaes@aedu.com

Contedo Programtico
1. CONCEITOS FUNDAMENTAIS DE PROGRAMAO 1.1.Noo de Algoritmos

1.2. Pseudo Linguagem


1.3 .Estrutura de um Programa 1.4. Dados e Variveis 1.5 .Operadores 2. PROGRAMAO ESTRUTURADA 2.1. Desenvolvimento de Algoritmos: anlise e resoluo de problemas tcnica top-down 2.2. Estrutura de Controle: Condio. 2.3. Estrutura de Controle: Lao de Repetio. 3. VETORES E MATRIZES 3.1. Conceitos de vetores 3.2. Declarao de vetores 3.2. Operaes de Manipulao de vetores 3.3. Conceito de Matrizes 3.4. Declarao de Matrizes 3.5. Operaes sobre Matrizes 4. MODULARIZAO 4.1 Conceitos de Modularizao e decomposio 4.2. Declarao de funes 4.3. Passagem de parmetros 5. STRINGS E FUNOES DE MANIPULAO 6. TIPOS ESTRUTURADOS 6.1.Registros

Cronograma de Aulas Semana n. 1 2 3 4 5 Tema Conceitos Fundamentais de Programao Conceitos Fundamentais de Programao Conceitos Fundamentais de Programao Programao Estruturada Programao Estruturada

6
7 8 9 10 11 12 13 14 15 16 17 18 19 20

Programao Estruturada
Programao Estruturada Vetores e Matrizes Avaliao Vetores e Matrizes Vetores e Matrizes Modularizao Modularizao Strings e Funes de Manipulao Strings e Funes de Manipulao Tipos Estruturados (Registros) Tipos Estruturados (Registros) Avaliao Oficial Reviso e preparao para Avaliao Substitutiva Prova Substitutiva

NOES DE LGICA E ALGORITMO

Algoritmo Objetivo : Facilitar o entendimento da lgica de programao usando uma linguagem conhecida (portugus).

Lgica:
A lgica trata da correo do pensamento, isto , ela nos ensina a usar corretamente o raciocnio. Pensar com lgica significa ordenar o pensamento. Para resolver um determinado problema necessrio raciocinar de forma lgica ordenando o pensamento com o objetivo de atingir a soluo pretendida. A lgica est presente no nosso cotidiano, nas nossas aes, quando falamos, ou escrevemos, pois quando queremos falar, escrever ou agir corretamente precisamos ordenar nosso pensamento.

Algoritmo:

Algoritmo pode ser definido como uma sequncia lgica, e sem ambiguidade de passos que levam a soluo de um dado problema. uma sequncia de passos que visam atingir um objetivo bem definido. O algoritmo est presente em todas as aes do nosso dia dia como se fosse um plano para resoluo de problemas.

Os algoritmos so comuns em nosso cotidiano, como por exemplo, uma receita de bolo. Nela est descrita um srie de ingredientes necessrios, uma sequncia de passos a serem cumpridos para atingir o objetivo que ter um bolo pronto. Ou ento um mapa para chegar at um local, que descreve o caminho a ser percorrido atravs de uma sequncia de passos.

Podemos descrever atividades do cotidiano como por exemplo, trocar uma lmpada queimada. Apesar de aparentemente bvio demais, muitas vezes fazemos esse tipo de atividade sem percebermos determinados detalhes. De maneira simples podemos descrever:

pegue uma escada; posicione-a embaixo da lmpada queimada; pegue uma lmpada nova; suba na escada; retire a lmpada velha; coloque a lmpada nova desa e guarde a escada.

A sequncia descrita supe que a lmpada nova no esteja queimada e que se tenha apenas uma lmpada para ser trocada. Se tivermos uma outra situao: vrias lmpadas que precisam ser testadas e trocadas ou no, conforme sua condio, a sequncia de passos para a soluo do problema ser outra. Para resolvermos um problema atravs da construo de um algoritmo podemos especificar um mtodo que traduza uma sequncia lgica de passos:

1. Ler atentamente o enunciado - para resolver um problema necessria sua compreenso; 2. Retirar do enunciado a relao das entradas de dados - atravs do enunciado podemos descobrir quais so as informaes que devem ser fornecidas, a partir das quais desenvolveremos as aes; 3. Retirar do enunciado a relao das sadas de dados - atravs do enunciado podemos descobrir quais so os dados que devem ser emitidos para compor o resultado final, objetivo do algoritmo; 4. Determinar as aes que o levaro a atingir o resultado desejado - nesta etapa precisamos determinar qual sequncia de aes capaz de transformar um conjunto definido de dados nas informaes de resultado; 5. Construir o algoritmo - descrever os passos para resolver o problema; 6. Executar o algoritmo - implica em executar todas as aes descritas seguindo o fluxo de execuo estabelecido, verificando se os resultados obtidos correspondem ao esperado. Desta forma torna-se possvel detectar algum possvel erro no desenvolvimento do algoritmo. Essa atividade conhecida como TESTE DE MESA.

Exerccios: 1 - Um homem precisa atravessar um rio com um barco que possui capacidade de transportar apenas ele mesmo e mais uma de suas trs cargas, que so: um lobo, um bode e um mao de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas ?

Informaes: um barco um homem um lobo um bode um mao de alfafa Ficando sozinhos (sem o Homem) :

- O Bode come a Alfafa


- O Lobo come o Bode

ao: atravessar o rio sem perder as cargas

resultado: todas as as cargas na outra margem do rio.

Algoritmo: incio 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 trs discos de uma Torre de Hani, que consiste em trs hastes (a-b-c), uma das quais serve de suporte para trs 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 trs discos para outra haste.

aes: movimentar um disco de cada vez de forma que fiquem ordenados


resultado: discos transferidos e ordenados haste

para outra

Algoritmo: incio 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. Trs jesutas e trs canibais precisam atravessar um rio; para tal, dispem de um barco com capacidade para duas pessoas. Por medidas de segurana no se permite que em alguma margem a quantidade de jesutas seja inferior de canibais. Qual a sequncia de passos que permitiria a travessia com segurana ?

informaes:
3 jesutas 3 canibais 1 barco com capacidade para 2 pessoas

Condio : no ter em nenhum momento quantidade de jesutas inferior a canibais.

1. Atravessar um jesuta e um canibal para a margem B 2. Voltar o jesuta para a margem A 3. Atravessar dois canibais para a margem B 4. Voltar um canibal para a margem A 5. Atravessar dois jesutas para a margem B 6. Voltar um jesuta e um canibal para a margem A 7. Atravessar dois jesutas 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 atravs da construo de algoritmos podemos seguir um mtodo, entre outros existentes, que traduza uma sequncia lgica de passos. Estes envolvem descobrir as informaes, aes e resultados.

Introduo Programao

Conceitos Introdutrios sobre Construo de Algoritmos

Contedo
Representao Algortmica Fases Bsicas da Construo de Algoritmos

Programao Estruturada
Introduo a uma Linguagem Algortmica

Contextualizao
Abrangncia
Apresentar os primeiros conceitos relacionados construo de algoritmos estruturados.

Importncia
Os conceitos discutidos formam a parte mais elementar de qualquer algoritmo.

Objetivos
Apresentar as principais formas de representar um algoritmo. Discutir as 3 fases para construo de algoritmos. Contextualizar a importncia de Algoritmos Estruturados. Definir os seguintes conceitos: Identificadores e Palavras Reservadas Tipos de Dados Varivel e Constante Expresses Operadores

Formas de representar um algoritmo


Algoritmos podem ser representados, dentre outras maneiras, por: DESCRIO NARRATIVA Utiliza uma linguagem de escrita natural para descrever algoritmos. FLUXOGRAMA (DIAGRAMA DE MDULOS) Utiliza uma linguagem de representao grfica para descrever algoritmos. LINGUAGEM ALGORTMICA (PSEUDO-CDIGO) Utiliza uma linguagem de escrita artificial para descrever algoritmos.

Formas de representar um algoritmo

Algoritmo para converter uma temperatura em Fahrenheit para Celsius

Exemplo:

Formas de representar um algoritmo

Descrio narrativa do algoritmo FahrenheitCelsius:


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 Mdulos) Seus principais smbolos grficos so:

= Incio e final do fluxograma = Operao de entrada de dados = Operao de sada de dados em impressora = Operao de sada de dados em vdeo = Operaes de processamento = Deciso = Seta de Fluxo de Dados = Conector de Fluxo de Dados

Formas de representar um algoritmo


Fluxograma do algoritmo Fahrenheit-Celsius
Incio

Incio do algoritmo
Entrada da temperatura (F) Clculo da temperatura (C)

Fahrenheit

Celsius = 5/9 * (Fahrenheit 32)

Celsius

Apresentao do resultado
Fim do algoritmo

Fim

Formas de representar um algoritmo


Linguagem algortmica (pseudo-cdigo) A forma geral de um algoritmo em pseudo-cdigo: Algoritmo <nome_do_algoritmo> [<declarao_de_variveis>]

[<sub-algoritmos>]
Incio <corpo_do_algoritmo>

Fim.

Formas de representar um algoritmo

LINGUAGEM ALGORTMICA (PSEUDO-CDIGO) Onde: Algoritmo Indica o incio da definio do algoritmo. <nome_do_algoritmo> Nome dado ao algoritmo para distingui-lo dos demais. [<declarao_de_variveis>] Parte opcional onde so declaradas as variveis globais usadas no algoritmo principal e, eventualmente, nos sub-algoritmos.

Formas de representar um algoritmo


LINGUAGEM ALGORTMICA (PSEUDO-CDIGO) Onde: [<subalgoritmos>] Parte opcional onde so definidos os sub-algoritmos. Incio Palavra que delimita o incio do corpo do algoritmo. <corpo_do_algoritmo> Conjunto de instrues do algoritmo. Fim Palavra que delimita o trmino do corpo do algoritmo.

Formas de representar um algoritmo

Pseudo-cdigo do algoritmo Fahrenheit-Celsius Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Incio Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit 32); Escrever (Celsius); Fim

Formas de representar um algoritmo

Desc. Narrativa Solicite a temperatura em Fahrenheit. Transforme de Fahrenheit para Celsius. Informe a temperatura em Celsius.

Fluxograma Incio

Ling. Algortmica
Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Incio Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit 32); Escrever (Celsius); Fim

Fahrenheit

Celsius = 5/9 * (Fahrenheit 32)

Celsius

Fim

Formas de representar um algoritmo

Vantagens Descrio Narrativa


por ns.

Desvantagens
Pouca confiabilidade (a impreciso acarreta a desconfiana). Extenso (normalmente, escreve-se muito para dizer pouca coisa). Complica-se medida que o algoritmo cresce. Pouca ateno aos dados, no oferecendo recursos para declar-los. Exige a definio de uma linguagem no real para trabalho. No padronizada.

O portugus bastante conhecido Impreciso.

Fluxograma

Linguagem Algortmica

Padro mundial. Ferramenta bem conhecida. Figuras dizem muito mais que palavras. Independncia de linguagem de programao. Usa o portugus como base. Define-se melhor quais e como os dados vo estar estruturados. Passagem quase imediata do algoritmo para uma linguagem de programao qualquer.

Construindo algoritmos
Uma boa prtica para construir algoritmos dividir o problema em 3 fases (Entrada, Processamento e Sada). Lembra-se do seu primeiro mantra de programao? Entrada Processamento Sada

ENTRADA: So os dados de entrada do algoritmo. PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final. SADA: So os dados j processados.

Construindo algoritmos
No algoritmo Fahrenheit-Celsius temos:

ENTRADA: Temperatura em Fahrenheit


PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit 32) SADA: Temperatura em Celsius Num algoritmo para calcular a rea de um tringulo temos: ENTRADA: Base e Altura do tringulo PROCESSAMENTO: rea = (Base * Altura)/2

SADA: rea

Construindo algoritmos

Dividir o problema em Entrada, Processamento e Sada ir ajud-lo a ordenar corretamente as instrues do seus algoritmos.

Construindo algoritmos

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


Que dados preciso para comear? Entrada
Quais so os clculos e decises? Processamento Que dados devem ser exibidos? Sada

Atividade 1
Identifique a entrada, o processamento e a sada dos problemas abaixo: 1. Calcular e exibir a mdia ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4) 2. Reajustar um salrio em 17,75%.

3. Calcular o desconto de 23% sobre o preo de um produto.


4. Dada uma taxa de cmbio, transformar um valor em Dlar para Reais. 5. Dada uma taxa de cmbio, transformar um valor em Reais para Dlar.

Atividade 1 Respostas

1. Calcular e exibir a mdia ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4) ENTRADA: nota1 e nota2 PROCESSAMENTO: mdiaP=((nota1 * 6)+(nota2 *

4))/(6+4)
SADA: mdiaP

Atividade 1 Respostas
2. Reajustar um salrio em 7,75%.
ENTRADA: salrio PROCESSAMENTO: salrioR = salrio+(salrio*0,0775)

SADA: salrioR
3. Calcular o desconto de 23% sobre o preo de um produto. ENTRADA: preo PROCESSAMENTO: desconto = preo*0,23 SADA: desconto

Atividade 1 Respostas
4. Dada uma taxa de cmbio, transformar um valor em Dlar para Reais.

ENTRADA: cmbio e dlar


PROCESSAMENTO: real = dlar * cmbio SADA: real 5. Dada uma taxa de cmbio, transformar um valor em Reais para Dlar. ENTRADA: cmbio e real PROCESSAMENTO: dlar = real/cmbio SADA: dlar

Atividade 2
1.) Imagine o seguinte problema: Calcular a mdia final dos alunos da 3 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4. Onde: Mdia Final = P1 + P2 + P3 + P4
-------------------------4

Para montar o algoritmo proposto, faremos trs perguntas:


a) Quais so os dados de entrada? R: Os dados de entrada so P1, P2, P3 e P4 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 sero os dados de sada?

Atividade 2
2.) Imagine o seguinte problema: acrescentar os pesos para cada prova que so respectivamente : P1= PESO 4 , P2= PESO 6 , P3= PESO 4 e P4 = PESO 6 - Calcular e mostrar a media_final

Atividade para prxima aula Lista com o professor

FIM