Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um...

40
Aula 1 - V.3 - C ida Livi 1 Análise e Solução de Problemas • Compreensão rigorosa do problema. • Um método de solução é escolhido e desenvolvido. • Descrição do processo de solução passo a passo. • Programação do algoritmo e depuração do programa. • Validação do algoritmo.

Transcript of Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um...

Page 1: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 1

Análise e Solução de Problemas

• Compreensão rigorosa do problema.• Um método de solução é escolhido e

desenvolvido.• Descrição do processo de solução passo a

passo.• Programação do algoritmo e depuração do

programa.• Validação do algoritmo.

Page 2: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 2

PROBLEMA:Enunciado em Português.Ex.:Calcular a média aritmética de três valores inteiros.

ALGORITMO:Técnicas gráficas de apoio ao desenvolvimento:

• fluxograma• diagramas de Nassi-Shneidermann

Técnicas textuais:• pseudocódigo, português estruturado, linguagem algorítmica

IMPLEMENTAÇÃO:Tradução do algoritmo para PASCAL

Page 3: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 3

Terminal, indica início ou fim do fluxo

Operação de Entrada ou Saída,genérica, sem indicar dispositivo

Procedimento (por exemplo atribuição)

Operação de Saída envolvendo impressora,ou ação de escrita (no vídeo)

SÍMBOLOS DE FLUXOGRAMA

Page 4: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 4

Fim

Início

Leia Numero1,

Numero2, Numero3

Media <- (Numero1 + Numero2 +

Numero3) div 3

Escreva Media

CalculeMedia de Numero1, Numero2, Numero3

ou

Apresentação de um algoritmo usando fluxograma

Page 5: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 5

Diagrama de Chapin ou Nassi-Shneidermann

Seqüência

Page 6: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 6

Leia Numero1, Numero2 , Numero3

Media <- (Numero1 + Numero2 + Numero3) div 3

Escreva Media

Cálculo da Média Aritmética de três Valores

Apresentação de um algoritmo usando um diagrama de Chapin

Page 7: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 7

Cálculo da Média Aritmética de três Valores

Leia Numero1, Numero2 , Numero3

Media <- (Numero1 + Numero2 + Numero3) div 3

Escreva Media

Inicio

Fim

Apresentação de um algoritmo usando

linguagem algorítmica

Page 8: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 8

Tipos de questões que não precisam aparecer na fase de construção do algoritmo:

Qual o tipo (inteiro, real) de dado de média ? (e em conseqüência)Qual o operador de divisãoque será usado ? Questões vinculadas à linguagem de programação.

A linguagem do algoritmonão precisa seguir estritamente uma linguagem

de programação.

Page 9: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 9

Aprender a programar

• Conhecer as instruções (Comandos)

• Saber como escrever as instruções (Sintaxe dos comandos)

• Entender ações resultantes da execução das instruções (Semântica dos comandos)

• Possuir raciocínio lógico para chegar a uma seqüência de instruções que solucione o problema proposto.

Page 10: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 10

Estrutura de um Programa Pascal

Cabeçalho

Declarações

variáveis, tipos, constantes, procedimentos, ...

Begin

End.

Comandos

Page 11: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 11

Program MediArit;{Calcula a média aritmética de três valores}var Numero1 , Numero2 , Numero3, Media : integer;begin readln(Numero1); readln(Numero2); readln(Numero3); Media := (Numero1 + Numero2 + Numero3) div 3; writeln(´Media: ´ , Media)end.

Page 12: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 12

PASCAL• Elementos da linguagem:

– conjunto de caracteres;– identificadores;– palavras reservadas;– números;– expressões;– cadeias de caracteres;– variáveis e tipos.

Page 13: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 13

Conjunto de caracteres

• Letras: maiúsculas e minúsculas

• Dígitos: 0 a 9

• _ (underscore)

• outros símbolos especiais: + - < >= <> / * := etc.

Page 14: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 14

Palavras Reservadas

• Palavras com significado padrão pré-definido na linguagem. Não podem ser redefinidas.

• Ex.: and downto else begin

Page 15: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 15

Identificadores

• Nome dado a um elemento do programa, ou seja, variável, constante, etc.– Primeiro caracter: letra (ou _ ).– Demais caracteres: letras, dígitos e _– Tamanho máximo: qualquer, mas apenas 63 são

significativos.– NÃO são permitidos ESPAÇOS.– DEVEM SER auto-explicativos.

Page 16: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 16

Números: formação

• Formados por:– sinal + ou - (se ausente, número é positivo)– Dígitos– ponto decimal (se for o caso)

• Devem variar entre valores máximo e mínimo especificados para:– seu tipo;– computador e compilador específicos.

Page 17: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 17

Números: formaçãoNotação exponencial

Ex.: -315.21e-3 ou -315.21E-3

(ou -315,21 x 10-3= -0,31521)

Dígitos que seguem a letra e indicam a potência de 10 que deve multiplicar o número precedente.

Page 18: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 18

Cadeias de caracteres

• Seqüência de caracteres entre apóstrofos.

• Inclusão de apóstrofos em uma cadeia: colocar dois em seqüência.

• ´com apóstrofo ´´ dentro´

• Tamanho máximo : 255.

Page 19: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 19

Variáveis• Correspondem a uma posição de memória.

• Conteúdo pode variar ao longo do tempo.

• Armazenam um só valor por vez.

• Armazenam valores de um só tipo (logo tem um tipo definido) Ex.: Letra : char; NomeCompleto : string; ContaAlunos : integer;

Repetir : boolean;

Page 20: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 20

Variáveis (cont.)

• DEVEM SER inicializadas;

• Valor inicial imprevisível (posição de memória!).

Page 21: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 21

Números: tipos• Inteiros: sem ponto, com ou sem sinal.

• Reais: com ponto e/ou expoente

notação científica: 1.2 e-3 (ou 0.0012) ,

3e10 ( ou 30000000000)

0.0 é um real permitido, menor que 1e-38

• Atenção: não esquecer que números reais são aproximações e não devem ser usados, por exemplo, para contagens.

Page 22: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 22

Tipos Simples Inteiros• Integer: -32768 a 32767

(2 bytes)

• Shortint: -128 a 127

(1 byte)

• Byte: 0 a 255

(1 byte)

• Longint: -2147483648 a 2147483647 (4 bytes)

Page 23: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 23

Tipos Simples Reais

• Real : +-2.9e-39 +-1.7e38 , com 11 ou 12 dígitos significativos (6 bytes)

• Single (4 bytes)

• Double (8 bytes)

• Extended

• Comp

• Obs.: apenas o tipo Real pode ser usado sempre sem qualquer cuidado adicional

Page 24: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 24

Tipos simples não numéricos

• Char: 1 caractere (caracteres ASCII(American Standard Code for Information Interchange))

• String: 1 a 255 caracteres (não existe no Pascal padrão)

Page 25: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 25

Tipos Simples não-numéricos

• Booleano: Valores true ou false Ex.: var Concluido : boolean; Concluido:= true;

Page 26: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 26

Expressões: definição

• Conjuntos de operandos (números, constantes, variáveis, etc.) agrupados por certos operadores, constituindo formas algébricas que representam um valor.

• No Pascal terão que ser linearizadas, e todos os operadores deverão ser explicitados.

Page 27: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 27

Expressões: tipos

• Numéricas: valor numérico. Ex.: Resultado := 2*pi*sqr(raio)(pi é uma constante e sqr uma função (eleva ao quadrado))

• Lógicas: valor lógico Ex.: Nome = ´Maria´ Resultado > 5 (qualquer uma dessas expressões poderá em um certo momento ser verdadeira ou falsa)

Page 28: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 28

Expressões numéricas

• Se reais e inteiros compuserem uma expressão, o seu resultado será um valor real!

• O uso do operador de divisão / , em uma expressão, implica que o resultado da expressão será real.

Page 29: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 29

Operadores• Aritméticos

– Adição : +– Subtração : -– Multiplicação : *– Divisão: inteira DIV ;

real /;– Resto da divisão ou Módulo (opera sobre

inteiros): MODEx.: Resto := Valor MOD Parcelas;

Se Valor for 70 e Parcelas for 3, Resto receberá 1.

Page 30: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 30

Operadores não aritméticos

• Relacionais : = , < , > , >= , <= , <>

• Booleanos : NOT AND OR XOR Ex.: (Sobrenome = ´Silva´) and ( Idade > 21) Resultado: true ou false

Page 31: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 31

Funções padrão

• Sqr(x) : quadrado de x

• Sqrt(x): raiz quadrada de x

• Trunc(x): parte inteira de x

• Round(x): valor inteiro mais próximo

Page 32: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 32

Expressões em Pascal:

a) Devem ser linearizadas e

b) os operadores devem ser explicitados:

)32(9

5 FC

Em Pascal:

C := 5 / 9 * (F - 32)

{* é o operador da multiplicação }

Seja a expressão:

Page 33: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 33

b) os tipos de operandos e operadores devem ser compatíveis:

2 * n + 1 <> ´a´ ERRADO

valor numérico não pode ser comparado diretamente com valor caractere

c) os parênteses devem estar em equilíbrio:

((x-y) - 3 + (abs(u - v)) ERRADO

Falta um parêntese à direita.

Page 34: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 34

d) os operandos de expressões lógicas devem ser colocados entre parênteses (exigência do Turbo Pascal):

x > 0 and x < 100 ERRADO

Forma exigida pelo Turbo:

( x > 0) AND (x < 100)

Page 35: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 35

Regras de pontuação Pascal

• Ponto e vírgula é caracter separador, separa comandos ou declarações.

• Begin e End são delimitadores. Indicam início e fim de instrução composta.

• Todo programa termina por um ponto.

Page 36: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 36

Algoritmos puramente seqüenciais

• Algoritmo cuja execução é efetuada estritamente em ordem ascendente de passo.

• Estrutura básica:

• Entrada (opcional)

• Processamento

• Saída (1 ou mais)

Page 37: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 37

Apresentação de valores reais:

Sem edição:

Resultado := -3.45;{Resultado tipo real}

writeln(Resultado);

Na tela: -3.4500000000E+00

{Conteúdo de Resultado apresentado em notação científica]

Page 38: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 38

Edição de valores reais:Para que os valores reais não sejam apresentados em notação científica, editá-los conforme segue:

writeln(´Resultado = ´ , Resultado:8:2);

Na tela: -3.45 (precedidos por três posições em branco)

Primeiro valor, no caso 8, indica o número máximo de posições que o valor deverá ocupar ao ser apresentado. Ponto e sinal ocupam cada qual uma posição.

O segundo valor, no caso 2, indica quantas posições do número máximo indicado deverão ser reservadas para casas decimais.

Page 39: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 39

Se parte inteira exigir mais posições que o previsto, o valor será apresentado de forma integral, sem cortes.

Ex: Resultado:8:2

Valor a apresentar: 123456.78 (nove posições)

Valor apresentado: 123456.78 (nove posições)

Se a parte decimal exigir mais posições que o indicado, haverá arrendondamento da parte decimal.

Valor a apresentar: 123456.789 (dez posições)

Valor apresentado: 123456.79 (nove posições)

Edição de valores reais:

Page 40: Aula 1 - V.3 - Cida Livi1 Análise e Solução de Problemas Compreensão rigorosa do problema. Um método de solução é escolhido e desenvolvido. Descrição do.

Aula 1 - V.3 - Cida Livi 40

Edição de valores reais:Resumindo o uso dos : (dois pontos) na edição de valores reais:

Parte inteira sempre será apresentada integralmente, independente do tamanho máximo declarado para a apresentação do valor.

Parte decimal poderá ser arredondada, para que não ultrapasse o número máximo de posições indicadas para casas decimais do valor.

Atenção: os valores usados nos exemplos, 8 e 2, podem ser alterados segundo a conveniência do usuário.