aula 1 - v.3 - cida livi1 análise e solução de problemas compreensão rigorosa do problema. um...
TRANSCRIPT
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.