Conceitos e técnicas de programação aula 2
-
Upload
robson-ferreira -
Category
Documents
-
view
977 -
download
2
Transcript of 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
2
Representação de Algoritmos
Conceitos e Técnicas de Programação
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
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
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
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
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
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
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)
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
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
12
Utilize a tabela abaixo:
Teste de mesa
13
Linguagens de Programação
Conceitos e Técnicas de Programação
14
Linguagem de programação
• Estabelece regras de sintaxe para que o algoritmo possa ser entendido por uma máquina.
15
int a, b, c;if (a > 2)a = b + c;elsea = b – c;return;
Algoritmo
Programa
Raciocínio
Algoritmo × Linguagem de Programação
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.
17
• Sua principal característica é a utilização de blocos para solução de um problema.
Características
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:
19
c+bx+ax2
Passos para elaboração de um programa
• Calcular as raízes reais de:
Exemplo
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
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.
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
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");}
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)
25
Códigofonte
Códigoobjeto
Programa Executável
Geração de código objeto
DepuraçãoCodificação
Gerando um programa executável
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.
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.
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.
29
Representações de Algoritmos
Conceitos e Técnicas de Programação
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.
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
32
Elementos básicos de um algoritmo
algoritmo <nome_do_algoritmo>
Fim
<declarações de variáveis><declarações de variáveis>
<comandos><comandos>
33
Elementos básicos de um algoritmo:: Exemplo
Algoritmo perimetro_circunferência// declaração de constantes e variáveis// comandos
fim
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
35
Elementos básicos de um algoritmo
• Dados (variáveis e constantes)• Tipos de dados• Operadores• Comandos• Funções• Comentários
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
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.
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)
39
ALGORITMO NOMEVARIAVEISNOME: CARACTERE
FIM VARIAVEIS
INICIOESCREVA(“Informe seu nome:”)
LEIA (nome)
40
Elementos básicos de um algoritmo:: Operadores
• Atribuição• Aritméticos• Relacionais• Lógicos
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
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;
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
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);
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
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
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
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);
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,...)
50
Elementos básicos de um algoritmo:: Comentários
• Utilizados para descrever o algoritmo, esclarecendo trechos do código
• Notação:– //– /* <comentário> */
51
Algoritmos com qualidade
Conceitos e Técnicas de Programação
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.
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:
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:
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:
56
preco ← custo + lucro;
p ← c + l;
Algoritmos com qualidade
• Escolha nomes representativos para as variáveis:
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).
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