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

Post on 17-Apr-2015

107 views 2 download

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

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.

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

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

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

Aula 1 - V.3 - Cida Livi 5

Diagrama de Chapin ou Nassi-Shneidermann

Seqüência

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

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

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.

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.

Aula 1 - V.3 - Cida Livi 10

Estrutura de um Programa Pascal

Cabeçalho

Declarações

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

Begin

End.

Comandos

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.

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.

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.

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

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.

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.

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.

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.

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;

Aula 1 - V.3 - Cida Livi 20

Variáveis (cont.)

• DEVEM SER inicializadas;

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

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.

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)

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

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)

Aula 1 - V.3 - Cida Livi 25

Tipos Simples não-numéricos

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

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.

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)

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.

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.

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

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

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:

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.

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)

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.

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)

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]

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.

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:

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.