apontamentos algoritmia
TRANSCRIPT
ISCAP
Algoritmia
Pg. 1
Os Computadores e a resoluo de Problemas
ISCAP
PROBLEMA
Fase de Resoluo do Problema
Passo difcil
Soluo em forma de Algoritmo Fase de Implementao
Soluo como um PROGRAMA de ComputadorPg. 2
1
Os Computadores e a resoluo de Problemas
ISCAP
importante separar as duas fases:1. Fase de Resoluo do Problema Elaborao de um algoritmo adequado 2. Fase de Implementao Se o Algoritmo satisfaz, ento segue-se a implementao desse algoritmo numa Linguagem de Programao (Programa de Computador) Nota: Se o algoritmo for suficientemente preciso, ento, a codificao quase directaPg. 3
Os Computadores e a resoluo de Problemas
ISCAP
De uma forma mais detalhada, poderemos desdobrar estas duas em seis fases para a resoluo do Problema: Definio do Problema Analise do Problema (elaborao do Algoritmo) Codificao do algoritmo em linguagem de Programao Teste do Programa Implementao Documentao
Pg. 4
2
Os Computadores e a resoluo de Problemas
ISCAP Algoritmo
Definio do PROBLEMA
Anlise do Problema
Codificao
Programa FonteCompilao
Negativa
Programa ObjectoTeste do ProgramaImplementao:
Avaliao dos ResultadosPg. 5
Positiva
Colocao em Produo Formao de utilizadores Manuteno e actualizaoAna na Paula aula A P Teix ixeiraira e
Algoritmizar um Problema
ISCAP
Na fase de Resoluo de um Problema, deveremos cumprir os seguintes passos:1. Descrio do Problema (definio clara dos dados que temos, dados a ler e dados a obter) - Fazer uma aproximao descendente e proceder Modularizao Elaborao da lista de variveis ou dicionrio de dados Construo do Algoritmo (todo o Algoritmo tem um Nome. Ex: Algoritmo Soma) Teste do Algoritmo - traagem do Algoritmo para um conjunto de dados (esta fase muito importante para validao do algoritmo)
2. 3. 4.
Poder ainda ser complementado pela apresentao de um FluxogramaPg. 6
3
O que um Algoritmo?
ISCAP
Um Algoritmo uma sequncia de passos ordenados e sem ambiguidade e que levam resoluo de um problema Exemplos: Indicaes para chegar a um determinado endereo Instrues para construo de um brinquedo Receita de culinria
Propriedades: Passos simples e sem ambiguidades Ordem dos passos cuidadosamente definida Passos efectivos - resolver um problema num n finito de passos
Na representao de um Algoritmo, usamos uma linguagem estruturada, muito prxima da natural Pseudo CdigoPg. 7
Principais blocos do Algoritmo
ISCAP
Os algoritmos so formados por conjuntos de passos.Cada passo numerado e apresenta uma breve descrio da sua funcionalidade
Tipicamente poderemos considerar que um Algoritmo composto pelos seguintes Blocos: 1.Definio de Dados 2.Inicializao de variveis 3. Leitura de Dados 4. Tratamento dos Dados 5. Apresentao de ResultadoPg. 8
4
Exemplos de Anlise de Problemas Ex1: Calcular a dcima parte de um valor lido 1. Ler um Nmero 2. Dividir o Nmero lido por 10 3. Escrever o n lido e o resultado Obtido Ex2: Ler apelido e nome e apresentar a sua juno 1. Ler APELIDO 2. Ler NOME 3. Concatenar NOME + + APELIDO 4. Escrever o resultado obtido em 3Pg. 9
ISCAP
Exemplos de Anlise de Problemas
ISCAP
Ex3: Pretende-se calcular o Preo de Venda (PV) de um artigo, sabendo que este o resultado da soma de: custos de produo (CP), custos de armazenagem (CA) e custos de Mat.Primas (CMP), acrescido de 20% de lucro PV = CP + CA +CMP + 20% *(CP+CA+CMP) Verso 2 1. Ler CP, CA, CMP 2. Somar os 3 valores 3. Calcular 20% do valor obtido 4. Somar os valores obtidos em 2 e 3 5. Apresentar resultados
Verso 1 1. Ler CP, CA, CMP 2. Calcular valor de PV: PV = CP + CA + CMP +0.2 * (CP+CA+CMP) 3. Apresentar resultados
Pg. 10
5
Exemplos de Anlise de Problemas
ISCAP
Ex4: Dada um valor em Escudos, converter para Euros. 1. Atribuir a FACTOR um valor 200.482 2. Ler o Valor em Escudos (VAL_ESC) 3. Converter (VAL_EURO =VAL_ESC/FACTOR) 4. Apresentar resultados 5. Terminar
Pg. 11
Exemplos de Anlise de Problemas
ISCAP
Ex5: Dada uma lista de 10 ns, pretende-se determinar o maior valor lido 1. Atribuir a MAXIMO um valor muito pequenino () 2. Repetir 10 vezes:Ler NUMERO Se o NUMERO lido for superior a MAXIMO Ento MAXIMO toma o valor do NUMERO
3. Apresentar resultados
Pg. 12
6
Tipos de Dados Dados Simples Numricos Podero ainda ser de diferentes tipos (Inteiros; Reais)
ISCAP
Dados tipo cadeia de caracteres (Alfanumricos) Exemplo Nome = ANA
Dados Lgicos Utilizam-se para estabelecimento de condies
Estruturas de Dados bsicas Vectores X(i), Estruturas Complexas FicheirosPg. 13
Matrizes Y(a,b) Bases de dados
Operaes Simbologia utilizada
ISCAP
Pg. 14
7
Variveis
ISCAP
Os dados necessrios ao processamento de um Programa so armazenados em posies de da memria identificadas por um nome - a Varivel. Quando definimos a varivel, estamos a reservar um endereo de memria onde ir ser guardado o valor dessa mesma varivel. Este valor mutvel, consoante as operaes que vo sendo feitas sobre ele. Exemplos: Y -5 X2 Z0 Y (X+Y) /2 X Y *2 Z Y ^2Pg. 15
Exerccios
ISCAP
1. Sejam A,B e C reais e I, J e K inteiros A = 4.0 B = 6.0 I= 3 Qual o valor das seguintes Expresses? C A * B -I K B/4 C B/A+1.5 2.Transforme em expresses de computador:a+ b c e f b b2 4ac 2a (a + b) c d
d
3. Em Quais dos seguintes pares importante a ordem das operaes? X Y Z Y X Z Z Y Y Z Z X Y X X YPg. 16
8
Linguagem Algortmica - InstruesDeclarao de variveis N inteiro; R real; C caractere; B booleano; D data Inicializao de variveis N 0 Estruturas sequenciais Leia("Nome", C) Escreva("Nome",C) R R *2 + 4/N Estruturas condicionais Se (cond) ento aco1 seno aco2 Fimse
ISCAP
Estruturas Repetitivas N. finito de passos Para i = 1 at n (passo p) Aco Prximo i Controlado por uma condio Enquanto (cond) aces Fim Enquanto Controlado por vrias condies Enquanto (cond e /ou / no cond2) Aces Fim Enquanto
Pg. 17
Fluxogramas - Simbologia
ISCAP
Incio/Fim
Deciso
Processo Documento
Entrada/Sada de Dados
Conecttorr Conec o Fluxo
Pg. 18
9
Tipos de Estruturas de ProgramaoSequencial
ISCAP
Conjunto de instrues que visam atingir um objectivo
CondicionalAs instrues a executar dependem de pelo menos uma condio lgica que ter que ser avaliada
RepetitivaConjunto de instrues que se iro repetir at que seja atingida uma determinada condio. O n. de vezes a repetir as operaes pode ser determinado antes ou durante a execuo.Pg. 19
Estrutura de Controlo Sequencial
ISCAP
Algoritmo Nome Objectivo: Inicio Escrever o contedo de uma 1. [Declarao e Inicializao de Vari veis] varivel Nome string anteriormente inicializada Nome Ana 2. [Apresentao de Resultados]ESCREVA (Nome)
Fim
Pg. 20
10
Lista de e VariveisAlgoritmo Nome Nome NOME Tipo Alfa Descrio Nome a escrever
ISCAP
Pg. 21
Inicializar varivel; Escrever o s/valorPrincipais Conceitos: Inicializar Escrever
ISCAP
INICIO
NOME ANA
NOME
FIMPg. 22
11
TraagemAlgoritmo Nome Passo 1. 2. Nome Ana Ana Sada
ISCAP
Pg. 23
Estrutura de Controlo SequencialAlgoritmo SomaInicio 1. [Declarao e Inicializao de Variveis] X real, Y real, Soma real Soma 0 2. [Leitura de variveis]LEIA (X) LEIA (Y)
ISCAP Objectivo:
Ler 2 nmero e escrever o valor da soma
3 [Processamento - clculo da soma] SOMA X + Y 4. [apresentao de Resultados]ESCREVA (A soma de X, com Y SOMA)
FimPg. 24
12
Lista de e VariveisAlgoritmo Nome Nome X Y Soma Tipo Real Real Real Descrio 1 Numero lido 2 Numero lido
ISCAP
Resulltado da soma dos 2 ns lidos
Pg. 25
Ler 2 Ns e Escrever a sua SomaPrincipais Conceitos: Inicializar Ler Calcular Escrever INICIO X0 Y0 Soma 0 X, Y
ISCAP
Soma X + Y
Soma
FIMPg. 26
13
TraagemAlgoritmo Soma Dados para teste: X=56, Y=33 Passo 1. 2. 3. 4. 5.Pg. 27
ISCAP
X 0 56
Y 0 33
SOMA 0
Sada
89A soma de 56 com 33 89
Fim
Exerccios
ISCAP
Elabore um Algoritmo estruturado para os exemplos 1, 2 , 3 e 4 vistos anteriormente Dever apresentar A lista de variveis Algoritmo e traagem para os seguintes valores: Exemplo 1 9 Dados: 4500 Exemplo 2 9 Dados: Cunha, Andr Exemplo 3 9 Dados: 400; 600; 700; 350 Exemplo 4 9 Dados: 1000Pg. 28
14
Exercicios
ISCAP
Escreva um algoritmo que leia uma temperatura em graus Celsius e converta para graus Farneith. Faa a traagem para 37.5 Escreva um algoritmo, que dados os valores dos lados de um rectngulo, calcule a sua rea e o seu permetro.. Faa a traagem para L1=5, L2=8. Escreva um algoritmo, que leia as notas de um aluno (5 disciplinas) e calcule a mdia da turma
Pg. 29
Estrutura de Controlo CondicionalSe Condio Ento
ISCAP
Processo para Condio Verdadeira Seno Processo para Condio Falsa Fim se Exemplo (Ler um nmero e verificar a sua paridade)Se Nmero/2 = Int (Nmero/2) Ento Escreva (O nmero , Numero par!) Seno Escreva (O nmero , Numero impar!) Fim sePg. 30
15
Estrutura de Controlo CondicionalAlgoritmo Positividade (verso 1.0) Inicio1. [Declarao de Variveis] Numero real, Mensagem caractere 2. [Leitura do Nmero]LEIA (Numero)
ISCAP Objectivo: Ler 1 nmero e escrever se positivo ou no
3 [Verificao da positividade e apresentao de resultados] Se Numero > 0 Ento ESCREVA ( O nmero , Numero , positivo) Seno ESCREVA ( O nmero , Numero , no positivo) Fim se FimPg. 31
Estrutura de Controlo CondicionalAlgoritmo Positividade (verso 2.0) Inicio1. [Declarao de Variveis] Numero real, Mensagem caractere 2. [Leitura do Nmero]LEIA (Numero)
ISCAP Objectivo: Ler 1 nmero e escrever se positivo ou no
3 [Processamento - Verificao da positividade] Se Numero > 0 Ento Mensagem positivo Seno Mensagem no positivo Fim se 4. [Apresentao de Resultados]ESCREVA ( O nmero , Numero, , Mensagem)Pg. 32
Fim
16
Lista de e VariveisAlgoritmo Nome
ISCAP
Nome NumeroMensagem
Tipo Real Alfa
Descrio Numero lido Descrio da positividade do numero lido
Pg. 33
Ler um N e Escrever a sua Positividade (verso 1)Principais Conceitos: Alternativa (Se;Ento;Seno) Numero INICIO
ISCAP
No
Numero > 0
Sim
No Positivo
Positivo
FIMPg. 34
17
TraagemPasso NUMERO MENSAGEM NUMERO>0
ISCAP
Algoritmo Positividade (verso 1.0) (Dados para teste:Nmero =-7Sada
1. 2. 3.
0 -7 Falso no positivoO nmero -7 no positivo
4. 5.Pg. 35
Fim
Traagem
ISCAP
Algoritmo Positividade (verso 1.0) Dados para teste:Nmero = 34Passo NUMERO MENSAGEM NUMERO>0 Sada
1. 2. 3.
0 34 Verdadeiro positivoO nmero 34 positivo
4. 5.Pg. 36
Fim
18
Traagem
ISCAP
Algoritmo Positividade (verso 1.0) Dados para teste:Nmero = 0Passo NUMERO MENSAGEM NUMERO>0 Sada
1. 2. 3.
0 0 Falso no positivoO nmero 0 no positivo
4. 5.Pg. 37
Fim
Estrutura de Controlo Condicional compostaSe Condio1 Ento Processo p/ Condio1 Verdadeira Seno Se Condio2 Ento Processo p/ Condio2 Verdadeira Seno Processo p/ Condio2 Falsa Fim se Fim se
ISCAP
Exemplo (Ler um nmero e verificar a sua positividade)Se Numero >0 Ento Seno Escreva ( Numero positivo!) Se Num < 0 Ento Escreva (Numero negativo!) Seno Escreva (Numero nulo!) Fim se Fim sePg. 38
19
Estrutura de Controlo Condicional composta Algoritmo Positividade (verso 3.0)Inicio 1. [Declarao de Variveis] Mensagem caractere, Numero real 2. [Leitura do Nmero]LEIA (Numero)
ISCAP Objectivo:
Ler 1 nmero e indicar a sua positividade
3 [Processamento - Verificao da positividade]Se Numero > 0 Ento Mensagem positivo Seno Se Numero = 0 Ento Mensagem nulo Seno Mensagem negativo Fim seFim sePg. 39
....
Lista de e VariveisAlgoritmo Nome
ISCAP
Pg. 40
20
Ler um N e Escrever a sua Positividade (verso 3)Principais Conceitos: Alternativa composta (Se;Ento;Seno(Se...))No
ISCAP
INICIO NumeroSim
Numero > 0
Numero = 0Sim No
N Positivo
N Nulo
N Negativo
FIMPg. 41
Traagem
ISCAP
Algoritmo Positividade (verso 3.0) Dados para teste:Nmero = -7Passo NUMERO MENSAGEM NUMERO NUMERO>0 =0 Sada
1. 2. 3.
0 -7 FalsoFalso
negativo 4.Pg. 42
O nmero -7 negativo
21
Traagem
ISCAP
Algoritmo Positividade (verso 3.0) Dados para teste:Nmero = 34Passo NUMERO MENSAGEM NUMERO NUMERO>0 =0 Sada
1. 2. 3.
0 34Verdadeiro
positivo 4.Pg. 43
O nmero 34 positivo
Traagem
ISCAP
Algoritmo Positividade (verso 3.0) Dados para teste:Nmero = 0Passo NUMERO MENSAGEM NUMERO NUMERO=>0 0 Sada
1. 2. 3.
0 0 FalsoVerdadeiro
nulo 4.O nmero 0 nulo
22
Exerccios
ISCAP
Escreva um algoritmo que leia um nmero e verifique se divisvel por 5e 7 simultaneamente.Faa a traagem para os n.s 15 e 35. Escreva um algoritmo que calcule a mdia das idades de uma populao de 15 pessoas e escreva uma mensagem de acordo com a situao (Mdia < 25 Jovem, Mdia MaximoEnto Maximo Numero
Fim se2.4. [Actualizao da varivel de Controlo do Ciclo]
Contador Contador + 1
2.5. [Terminar ciclo ]
Fim Enquanto 3. [Apresentao de Resultados] ESCREVA ( O mximo valor lido foi , Maximo) Fim
Pg. 50
25
Lista de e VariveisAlgoritmo MximoNome Nmero Mximo Tipo Real Real Descrio Numero lido Mximo valor encontrado
ISCAP
Contador
Inteiro
Varivel de controlo do ciclo - conta o n de repeties do ciclo
Pg. 51
Ler 10 ns e escrever valor do MaiorPrincipais Conceitos: Ciclo de Repetio Enquanto Cond Sim Numero Numero >Mximo Sim Mximo=Numero No INICIO Mximo - Numero 0 Contador 0 Contador