58
1 Conceitos e Técnicas de Programação Profº Ms. Tarcísio Júnior Gestão de Tecnologia da Informação

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

Embed Size (px)

Citation preview

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

1

Conceitos e Técnicas de Programação

Profº Ms. Tarcísio Júnior

Gestão de Tecnologia da Informação

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

2

Representação de Algoritmos

Conceitos e Técnicas de Programação

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

3

Linguagem NaturalA representação de algoritmos através de linguagem natural é aforma mais espontânea de representação de algoritmos, poisdescrevemos os passos do algoritmo utilizando o nosso linguajarquotidiano, 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 umcálculo de média aritmética. Após a média calculada, devemosanunciar se aluno foi aprovado ou reprovado por nota. Somenteestão aprovados alunos com média maior ou igual a 5,0.

Representação de Algoritmos

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

4

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, aoresultado da média do aluno. Se a média do aluno for maior ou iguala 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 adificuldade de entendermos o texto que procura descrever ospassos do algoritmo, pois não se emprega nenhum recursodiagramático, e não há uma rigidez na estruturação das ações.

Representação de Algoritmos

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

5

Pseudocódigo

O pseudocódigo vem sendo amplamente utilizado por projetistas desoftware e programadores, pois obriga o uso de estruturas quefacilitam o entendimento do algoritmo, e também facilitam atransformação do mesmo em códigos reais.O pseudocódigo também recebe outros nomes, como: portuguêsestruturado, PDL (Program Design Language), etc..Utilizaremos neste curso o pseudocódigo como a forma derepresentação padrão para algoritmos.

Representação de Algoritmos

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

6

O PSEUDOCÓDIGO será utilizado na disciplina. Porque?

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).

Representação de Algoritmos

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

7

Iníciovariáveisnota1, nota2, media: real

fim-variáveis

InícioLeia (nota1)Leia (nota2)media = (nota1 + nota2) / 2Se media >= 5,0 entaoInício

Escreva (“Aluno aprovado”)FimSenãoInício

Escreva (“Aluno reprovado”)Fim

Fim

Pseudocódigo do exemplo anterior

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

8

Outro exemplo:

algoritmo Soma

variáveisN1,N2,Soma: inteiro

fim-variáveis

inícioescreva("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)

fimAlgoritmo

Representação de Algoritmos

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

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 P4b) Qual será o processamento a ser utilizado?R: O procedimento será somar todos os dados de entrada e dividi-

los por 4 (quatro)

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

10

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 prova1Receba a nota de prova2Receba a nota de prova3Receba a nota da prova4Some todas as notas e divida o resultado por 4Mostre o resultado da divisão

Exemplo de Algoritmo

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

11

Após desenvolver um algoritmo ele deverá sempre ser testado.Este teste é chamado de TESTE DE MESA, que significa, seguiras instruções do algoritmo de maneira precisa para verificar se oprocedimento utilizado está correto ou não.

Veja o exemplo:

Nota da Prova 1Nota da Prova 2Nota da Prova 3Nota da Prova 4

Teste de mesa

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

12

Utilize a tabela abaixo:

Teste de mesa

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

13

Linguagens de Programação

Conceitos e Técnicas de Programação

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

14

Linguagem de programação

• Estabelece regras de sintaxe para que o algoritmo possa ser entendido por uma máquina.

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

15

int a, b, c;if (a > 2)a = b + c;elsea = b – c;return;

Algoritmo

Programa

Raciocínio

Algoritmo × Linguagem de Programação

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

16

Programa

• Programa é a codificação de um algoritmo emuma linguagem de programação.

• Um computador é uma máquina que, a partir deuma entrada, realiza um número de cálculosmatemáticos e lógicos, gerando uma saída.

• Programa é o elemento que diz ao computadorquais cálculos devem ser realizados.

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

17

• Sua principal característica é a utilização de blocos para solução de um problema.

Características

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

18

Relembrando...

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).

Passos para elaboração de um programa:

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

19

c+bx+ax2

Passos para elaboração de um programa

• Calcular as raízes reais de:

Exemplo

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

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: ∆ ≥ 0

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

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.

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

22

3. Formular o algoritmo

ler(a,b,c)delta = b^2 – 4*a*cse (delta ≥ 0) então

r1 = – b – (delta)^(–1/2)r2 = – b + (delta)^(–1/2)escrever(r1,r2)

senãoescrever(“Não há raiz real”)

fim do sefim do algoritmo

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

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 real\n");}

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

24

Gerando um programa executável

• Passos básicos para gerar um programa executável:

A. CodificaçãoB. Geração de Código ObjetoC. Depuração (debug)

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

25

Códigofonte

Códigoobjeto

Programa Executável

Geração de código objeto

DepuraçãoCodificação

Gerando um programa executável

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

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.

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

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.

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

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.

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

29

Representações de Algoritmos

Conceitos e Técnicas de Programação

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

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.

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

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 forno

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

32

Elementos básicos de um algoritmo

algoritmo <nome_do_algoritmo>

Fim

<declarações de variáveis><declarações de variáveis>

<comandos><comandos>

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

33

Elementos básicos de um algoritmo:: Exemplo

Algoritmo perimetro_circunferência// declaração de constantes e variáveis// comandos

fim

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

34

Elementos básicos de um algoritmo:: Exemplo

Algoritmo perimetro_circunferência// declaração de constantes e variáveisconst pi = 3,1415raio: realperim: real

// comandosleia (raio)perim = 2 * pi * raioescrever (perim)

fim

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

35

Elementos básicos de um algoritmo

• Dados (variáveis e constantes)• Tipos de dados• Operadores• Comandos• Funções• Comentários

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

36

Elementos básicos de um algoritmo :: Exemplo

Algoritmo perimetro_circunferência// declaração de variáveisconst PI = 3,1415

raio: realperim: real

// comandosleia (raio)perim = 2 * PI * raioescrever (perim)

fim

Algoritmo perimetro_circunferência// declaração de variáveisconst PI = 3,1415

raio: realperim: real

// comandosleia (raio)perim = 2 * PI * raioescrever (perim)

fim

dado variável

dado constante

tipo de dado

operador

função

comentário

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

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.

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

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)

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

39

ALGORITMO NOMEVARIAVEISNOME: CARACTERE

FIM VARIAVEIS

INICIOESCREVA(“Informe seu nome:”)

LEIA (nome)

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

40

Elementos básicos de um algoritmo:: Operadores

• Atribuição• Aritméticos• Relacionais• Lógicos

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

41

Elementos básicos de um algoritmo:: Operador Atribuição

• Utilizado para atribuir um valor a uma variável

• Notação:x1 ← 23; ( <-) temp ← x2;

nome da variável Valor

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

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;

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

43

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 Falso

Utilizados para realizar comparações entre dois valores de mesmo tipo primitivo.São comuns para a construção de equações.

Elementos básicos de um algoritmo:: Operadores Relacionais

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

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);

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

45

Servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.

OPERAÇÃO SÍMBOLO DESCRICAO

CONJUNÇÃ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.

Elementos básicos de um algoritmo:: Operadores Lógicos

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

46

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 F

Elementos básicos de um algoritmo:: Operadores Lógicos

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

47

OPERAÇÃO DE CONJUNÇÃO OPERAÇÃO DE DISJUNÇÃO

A B A e B

F F F

F V F

V F F

V V V

A B A ou B

F F F

F V V

V F V

V V V

Elementos básicos de um algoritmo:: Operadores Lógicos

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

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);

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

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,...)

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

50

Elementos básicos de um algoritmo:: Comentários

• Utilizados para descrever o algoritmo, esclarecendo trechos do código

• Notação:– //– /* <comentário> */

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

51

Algoritmos com qualidade

Conceitos e Técnicas de Programação

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

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.

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

53

// Cálculo da área do retângulo:area ← b * h;

// Multiplicação de b por h:area ← b * h;

Algoritmos com qualidade

• Os comentários devem acrescentar alguma coisa, e não frasear o comando:

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

54

/*****************************************UNPBFPBSEU NOME AQUIDATA: 28/02/2012ÚLTIMA MODIFICAÇÃO: 28/02/2012

ALGORITMO DE DEMONSTRAÇÃO*****************************************/

Algoritmos com qualidade

• Use comentários no prólogo:

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

55

hip ← sqrt(cat1 * cat1 + cat2 * cat2);

hip←sqrt(cat1*cat1+cat2*cat2);

Algoritmos com qualidade

• Use espaços em branco para melhorar a legibilidade:

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

56

preco ← custo + lucro;

p ← c + l;

Algoritmos com qualidade

• Escolha nomes representativos para as variáveis:

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

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).

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

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 inteiro2. Imprimir seu sucessor3. Imprimir seu antecessor

58