Conceitos e técnicas de programação aula 2

2.013 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.013
No SlideShare
0
A partir de incorporações
0
Número de incorporações
21
Ações
Compartilhamentos
0
Downloads
108
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos e técnicas de programação aula 2

  1. 1. Gestão de Tecnologia da Informação Conceitos e Técnicas de Programação Profº Ms. Tarcísio Júnior1
  2. 2. Conceitos e Técnicas de Programação Representação de Algoritmos2
  3. 3. Representação de Algoritmos Linguagem Natural A representação de algoritmos através de linguagem natural é a forma mais espontânea de representação de algoritmos, pois descrevemos os passos do algoritmo utilizando o nosso linguajar quotidiano, escrevendo o algoritmo como um texto simples. Por exemplo, queremos resolver o seguinte problema: Calcular a média de todos os alunos que cursaram uma disciplina X, a partir da leitura das notas da 1ª e 2ª prova, passando por um cálculo de média aritmética. Após a média calculada, devemos anunciar se aluno foi aprovado ou reprovado por nota. Somente estão aprovados alunos com média maior ou igual a 5,0.3
  4. 4. Representação de Algoritmos Representação do algoritmo em linguagem natural Para todos os alunos da disciplina X, faça: ler as notas da 1ª e 2ª prova, somar as notas e dividir por dois, chegando assim, ao resultado da média do aluno. Se a média do aluno for maior ou igual a 5,0, então o aluno está aprovado, senão o aluno está reprovado. Fazer para o próximo aluno. O problema da representação de algoritmos com linguagem natural é que quanto maior a complexidade do problema, maior a dificuldade de entendermos o texto que procura descrever os passos do algoritmo, pois não se emprega nenhum recurso diagramático, e não há uma rigidez na estruturação das ações.4
  5. 5. Representação de Algoritmos Pseudocódigo O pseudocódigo vem sendo amplamente utilizado por projetistas de software e programadores, pois obriga o uso de estruturas que facilitam o entendimento do algoritmo, e também facilitam a transformação do mesmo em códigos reais. O pseudocódigo também recebe outros nomes, como: português estruturado, PDL (Program Design Language), etc.. Utilizaremos neste curso o pseudocódigo como a forma de representação padrão para algoritmos.5
  6. 6. Representação de Algoritmos  O PSEUDOCÓDIGO será utilizado na disciplina. Por que?  Facilita o desenvolvimento dos algoritmos;  Facilita o seu entendimento pelo ser humano;  Antecipa à depuração (localização de erros) em sua lógica;  Facilita a sua manutenção e modificação;  Facilita e agiliza a sua codificação (escrita do programa);  Permite o desenvolvimento simultâneo de vários profissionais (trabalho em equipe).6
  7. 7. Pseudocódigo do exemplo anterior Início variáveis nota1, nota2, media: real fim-variáveis Início Leia (nota1) Leia (nota2) media = (nota1 + nota2) / 2 Se media >= 5,0 entao Início Escreva (“Aluno aprovado”) Fim Senão Início Escreva (“Aluno reprovado”) Fim Fim7
  8. 8. Representação de Algoritmos Outro exemplo: algoritmo Soma variáveis N1,N2,Soma: inteiro fim-variáveis início escreva("Entre com o primeiro número") leia(N1) escreva("Entre com o segundo número") leia (N2) Soma  (N1+N2) escreva("A soma dos números é: ", Soma) fimAlgoritmo8
  9. 9. Exemplo de Algoritmo Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: Média Final = Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são 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)9
  10. 10. Exemplo de Algoritmo c) Quais serão os dados de saída? R: O dado de saída será a média final Algoritmo Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão10
  11. 11. Teste de mesa Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não. Veja o exemplo: Nota da Prova 1 Nota da Prova 2 Nota da Prova 3 Nota da Prova 411
  12. 12. Teste de mesa Utilize a tabela abaixo:12
  13. 13. Conceitos e Técnicas de Programação Linguagens de Programação13
  14. 14. Linguagem de programação • Estabelece regras de sintaxe para que o algoritmo possa ser entendido por uma máquina.14
  15. 15. Algoritmo × Linguagem de Programação Raciocínio int a, b, c; if (a > 2) Algoritmo a = b + c; else a = b – c; return; Programa15
  16. 16. Programa • Programa é a codificação de um algoritmo em uma linguagem de programação. • Um computador é uma máquina que, a partir de uma entrada, realiza um número de cálculos matemáticos e lógicos, gerando uma saída. • Programa é o elemento que diz ao computador quais cálculos devem ser realizados.16
  17. 17. Características • Sua principal característica é a utilização de blocos para solução de um problema.17
  18. 18. Relembrando... Passos para elaboração de um programa: 1. Compreender o problema. 2. Esboçar um procedimento para resolver o problema. 3. Formular o algoritmo. 4. Traduzir o algoritmo para uma linguagem de programação (codificação).18
  19. 19. Passos para elaboração de um programa Exemplo • Calcular as raízes reais de: 2 ax + bx + c19
  20. 20. 1. Compreender o problema • Exemplo: Equação de 2o. grau • Possibilidades de raízes:  02 raízes complexas;  02 raízes reais idênticas;  02 raízes reais distintas; • Condição para haver raízes reais: ∆ ≥ 020
  21. 21. 2. Esboçar um procedimento para resolver o problema • Calcular ∆. • Se ∆ ≥ 0, calcular raízes reais. • Caso contrário, informar que não há raízes reais.21
  22. 22. 3. Formular o algoritmo ler(a,b,c) delta = b^2 – 4*a*c se (delta ≥ 0) então r1 = – b – (delta)^(–1/2) r2 = – b + (delta)^(–1/2) escrever(r1,r2) senão escrever(“Não há raiz real”) fim do se fim do algoritmo22
  23. 23. 4. Codificar #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a, b, c, delta, r1, r2; scanf("%f %f %f", &a, &b, &c); delta = b*b – 4*a*c; if (delta >= 0) { r1 = – b – sqrt(delta); r2 = – b + sqrt(delta); printf("r1 = %f n r2 = %f", r1, r2); } else printf("Nao ha raiz realn"); }23
  24. 24. Gerando um programa executável • Passos básicos para gerar um programa executável: A. Codificação B. Geração de Código Objeto C. Depuração (debug)24
  25. 25. Gerando um programa executável Codificação Código Depuração fonte Geração de código objeto Código objeto Programa Executável25
  26. 26. Gerando um programa executável A. Codificação • É a escrita de um programa de acordo com uma linguagem de programação. • Utiliza Editores de Texto. • Resultado: código-fonte.26
  27. 27. Gerando um programa executável B. Tradução • Tradução do código-fonte para o código de máquina do processador. • Realizado pelos Compiladores. • Resultado: código executável pelo processador.27
  28. 28. Gerando um programa executável C. Depuração (debug) • Auxilia o programador a eliminar erros dos programas (“bugs”). • Permite:  execução passo-a-passo.  visualização do estado do programa através das variáveis.28
  29. 29. Conceitos e Técnicas de Programação Representações de Algoritmos29
  30. 30. Pseudo-código (Portugol) • Características: – Sintaxe mais simples que a de uma Linguagem de Programação. – Ênfase nas idéias e não nos detalhes. – Facilita construir um programa em Linguagem de Programação.30
  31. 31. Pseudo-código (Portugol) • Ingredientes: farinha, açúcar, leite • Separar os ingredientes • Misturar os ingredientes • Colocar massa no forno • Esperar assar por 30 minutos • Retirar bolo do forno31
  32. 32. Elementos básicos de um algoritmo algoritmo <nome_do_algoritmo> <declarações de variáveis> <comandos> Fim32
  33. 33. Elementos básicos de um algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de constantes e variáveis // comandos fim33
  34. 34. Elementos básicos de um algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de constantes e variáveis const pi = 3,1415 raio: real perim: real // comandos leia (raio) perim = 2 * pi * raio escrever (perim) fim34
  35. 35. Elementos básicos de um algoritmo • Dados (variáveis e constantes) • Tipos de dados • Operadores • Comandos • Funções • Comentários35
  36. 36. Elementos básicos de um algoritmo :: Exemplo Algoritmo perimetro_circunferência // declaração de variáveis dado constante const PI = 3,1415 raio: real dado variável perim: real tipo de dado // comandos comentário leia (raio) operador perim = 2 * PI * raio escrever (perim) função fim36
  37. 37. Elementos básicos de um algoritmo :: Dados • Dados Constantes – O valor de uma constante não se altera após sua definição. – Exemplos: • N_NEPERIANO = 2,7182 • UNIVERSIDADE = ‘FPB • Dados Variáveis – Elemento que têm a função de associar um nome a uma porção da memória onde um dado pode ser armazenado.37
  38. 38. Elementos básicos de um algoritmo :: Tipos de dados • Definem a natureza do dado, as operações que podem ser realizadas com o dado e o espaço a ser ocupado na memória. • Exemplos: – Inteiro: 10 -5 -128 – Real (ponto flutuante): 1,34 13,4 -5,0 – String de caracteres: quarta-feira’ Abril‘ – Lógico: Verdadeiro(1) Falso(0)38
  39. 39. ALGORITMO NOME VARIAVEIS NOME: CARACTERE FIM VARIAVEIS INICIO ESCREVA(“Informe seu nome:”) LEIA (nome)39
  40. 40. Elementos básicos de um algoritmo :: Operadores • Atribuição • Aritméticos • Relacionais • Lógicos40
  41. 41. Elementos básicos de um algoritmo :: Operador Atribuição • Utilizado para atribuir um valor a uma variável nome da variável Valor • Notação: x1 ← 23; ( <-) temp ← x2;41
  42. 42. Elementos básicos de um algoritmo :: Operadores Aritméticos • Dados de entrada: tipo numérico (int ou real(float)) • Resultado: tipo numérico (int ou reail(float)) • Exemplos: – x_2 ← 2 + 3; – alfa ← 1 / 5; – ang ← 1 / 5.0; – resto ← 10 % 3; – resto ← 1 % 4; – delta ← 5 * 5 – 4 * 1 * 4;42
  43. 43. Elementos básicos de um algoritmo :: Operadores Relacionais Utilizados para realizar comparações entre dois valores de  mesmo tipo primitivo. São comuns para a construção de equações. OPERADOR OPERAÇÃO EXEMPLO RESULTADO = Igual a 1=2 Falso > Maior que 5>2 Verdadeiro < Menor que 11 < 4 Falso >= Maior ou Igual a 3 >= 3 Verdadeiro <= Menor ou igual a 5<= 3 Falso <> Diferente de 2 + 3 <> 5 Falso43
  44. 44. Elementos básicos de um algoritmo :: Operadores Relacionais • Dados de entrada: tipo numérico (int ou float) • Resultado: tipo lógico • Exemplos: – cond1 ← 2 = 3; – cond2 ← 1.6 <> 5.0; – cond3 ← 1 > 5; – cond4 ← (1 + 2) < 5; – cond5 ← 10 >= 3; – cond6 ← 1 <= (– 4 / 3);44
  45. 45. Elementos básicos de um algoritmo :: Operadores Lógicos Servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. OPERAÇÃO SÍMBOLO DESCRICAOCONJUNÇÃO AND – E Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras DISJUNÇÃO OR – ou Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira NEGAÇÃO NOT – não Uma expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.45
  46. 46. Elementos básicos de um algoritmo :: Operadores Lógicos TABELAS-VERDADE Conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas  apenas duas situações (V ou F). OPERAÇÃO DE NEGAÇÃO A não A F V V F46
  47. 47. Elementos básicos de um algoritmo :: Operadores Lógicos OPERAÇÃO DE CONJUNÇÃO OPERAÇÃO DE DISJUNÇÃO A B AeB A B A ou B F F F F F F F V F F V V V F F V F V V V V V V V47
  48. 48. Elementos básicos de um algoritmo :: Operadores Lógicos • Dados de entrada: tipo lógico • Resultado: tipo lógico • Exemplos: – cond1 ← V E F; – cond2 ← F OU F; – cond3 ← NÃO cond1; – cond4 ← (V E F) OU (5 > 3);48
  49. 49. Elementos básicos de um algoritmo :: Funções • Pré-definidas • Definidas pelo programador • Exemplos: – seno(angulo) – pow(x,y) – sqrt(resto) – exp(tempo) – ler(var1,var2,...) – escrever(resul1,result2,...)49
  50. 50. Elementos básicos de um algoritmo :: Comentários • Utilizados para descrever o algoritmo, esclarecendo trechos do código • Notação: – // – /* <comentário> */50
  51. 51. Conceitos e Técnicas de Programação Algoritmos com qualidade51
  52. 52. Algoritmos com qualidade • Devem ser feitos para serem lidos por seres humanos! • Escreva os comentários no momento em que estiver escrevendo o algoritmo.52
  53. 53. Algoritmos com qualidade • Os comentários devem acrescentar alguma coisa, e não frasear o comando: // Multiplicação de b por h: area ← b * h; // Cálculo da área do retângulo: area ← b * h;53
  54. 54. Algoritmos com qualidade • Use comentários no prólogo: /***************************************** UNPBFPB SEU NOME AQUI DATA: 28/02/2012 ÚLTIMA MODIFICAÇÃO: 28/02/2012 ALGORITMO DE DEMONSTRAÇÃO *****************************************/54
  55. 55. Algoritmos com qualidade • Use espaços em branco para melhorar a legibilidade: hip←sqrt(cat1*cat1+cat2*cat2); hip ← sqrt(cat1 * cat1 + cat2 * cat2);55
  56. 56. Algoritmos com qualidade • Escolha nomes representativos para as variáveis: p ← c + l; preco ← custo + lucro;56
  57. 57. Algoritmos com qualidade • Utilize um comando por linha. • Utilize parênteses para melhorar a compreensão e evitar erros. • Utilize identação (recuo de texto).57
  58. 58. Exercício 1. Escreva um algoritmo para ler um número inteiro e imprimir seu sucessor e seu antecessor. Possível solução: 1. Ler um número inteiro 2. Imprimir seu sucessor 3. Imprimir seu antecessor 5858

×