Escolar Documentos
Profissional Documentos
Cultura Documentos
Tema # 1
Aula 1 - 1
ROTEIRO AULA 1
1. Introduo
2. O computador e operaes bsicas 3. Principios de engenharia de software 4. Algoritmos e suas propriedades 5. Exerccios
Aula 1 - 2
INTRODUO
Que um programa de computador? Um programa de computador o produto resultante da atividade intelectual de um programador. Para criar um programa de computador devemos ter conhecimentos em: abstrao e modelagem de problemas linguagens e ferramentas de programao uso da lgica na verificao das solues
Dany Sanchez Dominguez LP1 Aula 1 - 3
INTRODUO
Um programa de computador um
INTRODUO
dados: valores armazenados no computador,
utilizados
programa, dados de
para
alcanar
so
objetivo
fornecidos
do
ao
entrada:
programa por um ser humano ou dispositivo, dados de sada: resultados oferecidos pelo
INTRODUO
Que um computador?
Aula 1 - 6
INTRODUO
Quais operaes um computador pode realizar? Leitura ou escrita na memria, Operaes aritmticas, Operaes lgicas, Operaes de entrada\sada
Todas as instrues dadas ao computador devem considerar apenas as operaes que ele pode realizar.
Dany Sanchez Dominguez LP1 Aula 1 - 7
ENGENHARIA DE SOFTWARE
O desenvolvimento de um programa ou
Aula 1 - 8
ENGENHARIA DE SOFTWARE
2.Projeto: criam-se especificaes que detalham o resultado da anlise em termos prximos da implementao do software (criao do algoritmo), 3.Implementao: utilizando-se uma linguagem de programao e as especificaes de projeto, o software construdo, 4.Testes: aps a construo do software, so realizados testes para conferir a conformidade com os requisitos iniciais.
Dany Sanchez Dominguez LP1 Aula 1 - 9
ALGORITMO
Um algoritmo representa um conjunto de regras que fornecem a soluo de um problema (definio geral), pode ser aplicada a qualquer problema. Ex: fritar um ovo. Em programao, um algoritmo especifica com clareza e forma correta as instrues que um software devera conter, para que, ao ser executado, fornea os resultados esperados.
Dany Sanchez Dominguez LP1 Aula 1 - 10
ALGORITMO
Como criar um algoritmo? Modelagem e Implementao Modelagem conhecer o problema a ser resolvido (entender o problema), extrair todas as informaes ao respeito do problema (dados e operaes), se necessrio, buscar informaes em outras fontes
Dany Sanchez Dominguez LP1 Aula 1 - 11
ALGORITMO
Como criar um algoritmo? Implementao
descrever claramente os passos para chegar a soluo, organizar os passos segundo uma seqncia lgica que leve a soluo.
Aula 1 - 12
ALGORITMO
Exemplo: crie um algoritmo para calcular a rea de um triangulo de base b e altura h.
A = bh/2
Inicio 1. Pedir ao usurio fornecer os valores de b e h 2. Calcular a rea A usando a formula 3. Exibir o valor de A na tela Fim
Aula 1 - 13
ALGORITMO
Exerccio 1: Escreva um algoritmo para, dado
um jogo de cartas, o usurio escolhe uma carta e vc mostra sua posio no baralho.
Aula 1 - 14
ALGORITMO
Exerccio 2: Escreva um algoritmo para resolver o
seguinte problema. Tm-se trs hastes A, B e C, na haste A repousam trs anis de dimetros diferentes, em ordem crescente por dimetro. Transfira os anis de A para B, usando C se necessrio. Considere: deve-se mover um nico anel por vez, um anel de dimetro maior no pode repousar sobre outro de dimetro menor.
A
Dany Sanchez Dominguez LP1
C
Aula 1 - 15
ALGORITMO
Segundo o dicionrio Aurlio:
Matemtica: Processo de clculo ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restries, regras formais para o obteno do resultado ou da soluo do problema.
Aula 1 - 16
ALGORITMO
Segundo o dicionrio Aurlio:
Informtica: Conjunto de regras e operaes bem-definidas e ordenadas, destinadas soluo de um problema ou de uma classe de problemas, em um nmero finito de passos. Algoritmo Caminho de soluo para um problema
Aula 1 - 17
ALGORITMO
Caractersticas de um algoritmo: 1. Um algoritmo representa uma seqncia de regras, 2. Essas regras devem ser executadas em uma ordem preestabelecida, 3. Cada algoritmo possui um conjunto finito de regras, 4. Essas regras devem possuir um significado e ser formalizadas segundo alguma conveno.
Dany Sanchez Dominguez LP1 Aula 1 - 18
PROPRIEDADES - ALGORITMO
Valores de entrada: Todo algoritmo deve possuir zero, uma o mais entradas. [Ex] Valores de sada: Todo algoritmo possui uma o mais sadas que simboliza(m) seu(s) resultado(s) [Ex] Finitude: Toda tarefa a ser realizada possui um incio, meio e fim. Os algoritmos representam a soluo de um problema, tambm possuem incio, meio e fim.
Dany Sanchez Dominguez LP1 Aula 1 - 19
PROPRIEDADES - ALGORITMO
Finitude ... Todo algoritmo deve ser finito, deve possuir um conjunto de passos que ao serem executados, levaro sempre ao seu trmino ou fim. Deve-se prestar especial ateno a esta propriedade, freqentemente criamos algoritmos que nunca chegaram a um resultado, tornando-se infinito. [Ex]
Aula 1 - 20
PROPRIEDADES - ALGORITMO
Passos elementares: Um algoritmo deve ser explicitado por meio de operaes elementares, sem que possa haver diferenas de interpretao, da forma tal que possa ser executado por mquinas sem inteligncia (computador). Operaes elementares?
Aula 1 - 21
PROPRIEDADES - ALGORITMO
Correo: Um algoritmo deve ser correto, deve permitir que ao ser executado, se chegue s sadas com resultados coerentes com as entradas. Para verificar se um algoritmo correto ou no deve-se fazer uma simulao, testes com diversos valores de entrada, cujas sadas se conhecem a priori e, ento, comparar estes resultados com os produzidos pelo algoritmo.
Dany Sanchez Dominguez LP1 Aula 1 - 22
Exerccios
1. 2. 3. 4. Calcular a rea de um crculo. Estabelecer se um nmero inteiro n par. Estabelecer se um nmero inteiro n primo. Dados dois nmeros inteiros n1 e n2 determinar se o maior divisvel pelo menor. 5. Calcular a mdia de um conjunto de n elementos. 6. Procurar o maior elemento de um conjunto de n elementos inteiros.
Dany Sanchez Dominguez LP1 Aula 1 - 23
Exerccios
7. Dadas as coordenadas de um ponto (x1, y1), e o centro (x2, y2) e o raio r de uma circunferncia. Determinar se o ponto externo ou interno circunferncia. 8. Receber disciplina situao aprovado o nmero de crditos de uma e as notas de um aluno. Informe a do aluno: (A aprovado, AF em prova final, R - reprovado).
Aula 1 - 24
ROTEIRO AULA 2
1. Formalizando algoritmos,
2. Portugol, 3. Fluxogramas, 4. Exemplos, 5. Exerccios, 6. Dicas e conselhos.
Aula 1 - 25
FORMALIZANDO ALGORITMOS
A tarefa de especificar os algoritmos consiste em detalhar os dados que sero processados pelo programa e as instrues que vo a operar sobre esses dados. importante formalizar a descrio dos algoritmos segundo alguma conveno, para que todas as pessoas possam entend-lo da mesma forma. Para formalizar um algoritmo precisamos definir a sintaxe e a semntica.
Dany Sanchez Dominguez LP1 Aula 1 - 26
FORMALIZANDO ALGORITMOS
Regras de sintaxe: regras que regulam a escrita do algoritmo, A sintaxe de um algoritmo resume-se nas regras para escrev-lo corretamente, Essas regras indicam quais so os tipos de comando que podem ser utilizados e tambm como neles escrever expresses, Os tipos de comandos de um algoritmo so tambm denominados estruturas de programao.
Dany Sanchez Dominguez LP1 Aula 1 - 27
FORMALIZANDO ALGORITMOS
Existem trs tipos de estruturas que podem ser utilizadas: estruturas seqncias, de deciso e de repetio. Regras de semntica: so as regras que permitem interpretar um algoritmo, Os smbolos ou comandos de um algoritmo por se s no tem um significado a menos que este seja bem definido. A semntica de um algoritmo sempre acompanha sua sintaxe, fornecendo um significado.
Dany Sanchez Dominguez LP1 Aula 1 - 28
FORMALIZANDO ALGORITMOS
A importncia de formalizar um algoritmo (sintaxe e semntica) pode ser resumida assim: 1. Evitar ambigidades, pois definimos regras que sempre so interpretadas da mesma forma, 2. Impedir a criao de smbolos ou comandos desnecessrios na representao de um algoritmo (conjunto mnimo de regras), 3. Permitir uma aproximao das regras as linguagens de programao, facilitando a codificao do algoritmo.
Dany Sanchez Dominguez LP1 Aula 1 - 29
FORMALIZANDO ALGORITMOS
Existem diversos mecanismos que formalizam a representao de algoritmos, em nosso curso abordaremos: 1.Fluxogramas: representao grfica. 2.Portugol: linguagem para representar algoritmos. Introduzimos ambas tcnicas atravs de exemplos.
Aula 1 - 30
REPRESENTAO DE ALGORITMOS
Portugol Operaes bsicas
Inicio de bloco, Inicio Fim de bloco, Fim Atribuio de valores a variveis, <Operaes aritmticas, +, -, *, /, %, Operaes lgicas, <, >, =, <> Operaes relacionais, e, ou Condicionais, Se, Seno Laos, Enquanto Chamadas a funo, Nome_Funcao Retorno de funo, Retorna Receber um valor de entrada, Leia Mostrar um valor de sada, Exiba
Aula 1 - 31
REPRESENTAO DE ALGORITMOS
Smbolos - Fluxograma
terminador Representa a sada ou entrada do ambiente externo processo linha Representa qualquer tipo de processo (funes, operaes) Representa o fluxo de dados ou controles Representar os dados que sejam fornecidos em tempo de processamento
Aula 1 - 32
entrada manual
Dany Sanchez Dominguez LP1
REPRESENTAO DE ALGORITMOS
Smbolos - Fluxograma
exibio Representa dados que sero mostrados (tela, impressora) Representa uma deciso ou desvio (uma entrada; sadas: uma, duas, mltiplas) de acordo com a deciso se tomara apenas uma sada.
deciso
Aula 1 - 33
REPRESENTAO DE ALGORITMOS
Exemplo: crie um algoritmo para calcular a rea de um triangulo de base b e altura h.
A = bh/2
Algoritmo informal:
Inicio 1. Pedir ao usurio fornecer os valores de b e h 2. Calcular a rea A usando a formula 3. Exibir o valor de A na tela Fim
Dany Sanchez Dominguez LP1 Aula 1 - 34
REPRESENTAO DE ALGORITMOS
Portugol:
Inicio 1. Leia(b, h) 2. A <- (b*h)/2 3. Exiba(A) Fim
Fluxograma:
Incio
b, h
s <- (b*h)/2
s
Fim
Dany Sanchez Dominguez LP1 Aula 1 - 35
REPRESENTAO DE ALGORITMOS
Exemplo: Compraram-se 30 canetas iguais,
que foram pagas com uma nota de R$ 100,00; obtendo-se R$ 67,00 como troco. Quanto custou cada caneta?
Se paguei R$ 100,00 e recebi como troco R$ 67,00, o custo total das canetas foi R$ 100,00 R$ 67,00 = R$ 33,00 Para saber quanto paguei por cada caneta dividimos R$ 33,00 por 30, Assim, cada caneta custou R$ 1,10
Dany Sanchez Dominguez LP1 Aula 1 - 36
REPRESENTAO DE ALGORITMOS
Exemplo...
Podemos ilustrar este raciocnio matematicamente Seja x o custo de cada caneta quantogastei = 30x quantogastei + troco = 100,00 Resolvemos a equao anterior (quadro)
Aula 1 - 37
REPRESENTAO DE ALGORITMOS
Exemplo... Algoritmo informal:
Inicio 1. Pegar os valores 30, 100 e 67 2. Subtrair 67 de 100 e dividir resultado por 30 3. Mostrar o resultado final Fim
Deve-se observar que esse algoritmo resolve apenas uma instncia particular do problema.
Dany Sanchez Dominguez LP1 Aula 1 - 38
REPRESENTAO DE ALGORITMOS
Exemplo... Se quisermos solucionar o caso geral teramos o seguinte: Compraram-se N canetas iguais que foram
pagas com uma nota de Z reais, obtendo-se Y reais de troco. Quanto custou cada caneta?
Portugol:
Inicio 1. Leia(N, Z, Y) 2. C <- (Z-Y)/N 3. Exiba(C) Fim
Aula 1 - 39
REPRESENTAO DE ALGORITMOS
Exemplo... O algoritmo apresentado tem uma serie de restries (problemas com os dados de entrada analisar) Para obter um algoritmo consistente devemos levar em considerao as precondies do problema: 1. O valor pago pelas canetas tem que ser maior que o troco recebido 2. O valor pago e a quantidade de canetas tem que ser maiores que zero 3. O troco tem que ser maior ou igual a zero
Dany Sanchez Dominguez LP1 Aula 1 - 40
REPRESENTAO DE ALGORITMOS
Exemplo... Algoritmo geral e correto em portugol
Inicio 1. Leia(N, Z, Y) 2. Se (Z>Y) e (N>0) e (Z>0) e (Y>=0) Ento 3. C <- (Z-Y)/N 4. Exiba(C) 5. Seno 6. Exiba(Erro: Valores inconsistentes!) 7. Fim Se Fim
Dany Sanchez Dominguez LP1 Aula 1 - 41
REPRESENTAO DE ALGORITMOS
Exemplo... Algoritmo geral e correto Fluxograma
Incio N, Y, Z
Falso
Verdadeiro
C <- (Z-Y)/N
Erro!!!
C Fim
Dany Sanchez Dominguez LP1 Aula 1 - 42
REPRESENTAO DE ALGORITMOS
Exerccio: Que faz o seguinte algoritmo
Inicio 1. Leia(x, y) 2. Enquanto (y<>0) Faa 3. r <- x % y 4. x <- y 5. y <- r 6. Fim Enquanto 7. Exiba(x) Fim
REPRESENTAO DE ALGORITMOS
Exerccio... Fluxograma
Incio x, y
Verdadeiro
Falso
y<>0
r <- x % y x
x <- y
Fim y <- r
Aula 1 - 44
REPRESENTAO DE ALGORITMOS
Exerccio: Crie um algoritmo que calcule quantas notas de 50, 10, 5 e 1 so necessrias para pagar uma conta cujo valor fornecido. Considere valores inteiros. Utilize alguma das tcnicas de representao de algoritmos estudadas (fluxograma ou portugol).
Aula 1 - 45
Exerccios
Utilize as tcnicas de representao de algoritmos (portugol e fluxogramas), crie algoritmos para os exerccios 1-8 slides 23 e 24.
Aula 1 - 46
DICAS
1.Ao se deparar com um problema novo, tente entend-lo: O que se deve descobrir ou calcular? (Objetivo) Quais so os dados disponveis? So suficientes? Quais as condies necessrias e suficientes para resolver o problema? Se possvel, modele o problema de forma matemtica.
Dany Sanchez Dominguez LP1 Aula 1 - 49
DICAS
2.Crie um plano com a soluo: Consulte sua memria e verifique se voc j resolveu algum problema similar (analogia, generalizao, especializao) Verifique se necessrio introduzir algum elemento novo no problema, como um problema auxiliar. Se o problema for muito complicado, tente quebr-lo em partes menores e solucionar essas partes.
Dany Sanchez Dominguez LP1 Aula 1 - 50
DICAS
3.Formalize a soluo:
ou portugol)
Aula 1 - 51
DICAS
4.Exame dos resultados: Teste o algoritmo com diversos dados e verifique os resultados (teste de mesa) Se o algoritmo no gerou resultado algum. Volte e tente encontrar o erro. Se o algoritmo gerou resultados, estes esto corretos? Se no esto corretos, alguma condio, operao ou a ordem, esto incorretas. Volte e tente encontre o erro.
Dany Sanchez Dominguez LP1 Aula 1 - 52
DICAS
5.Otimizao da soluo: possvel melhorar o algoritmo? possvel reduzir o nmero de passos ou dados? possvel conseguir uma soluo tima?
Aula 1 - 53