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
Enunciado em Português. Ex.: 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
SÍMBOLOS DE FLUXOGRAMA 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) Aula 1 - V.3 - Cida Livi
Apresentação de um algoritmo usando fluxograma Início Apresentação de um algoritmo usando fluxograma Leia Numero1, Numero2, Numero3 Media <- (Numero1 + Numero2 + Numero3) div 3 Calcule Media de Numero1, Numero2, Numero3 ou Escreva Media Fim Aula 1 - V.3 - Cida Livi
Diagrama de Chapin ou Nassi-Shneidermann Seqüência Aula 1 - V.3 - Cida Livi
Apresentação de um algoritmo usando um diagrama de Chapin Cálculo da Média Aritmética de três Valores Leia Numero1, Numero2 , Numero3 Media <- (Numero1 + Numero2 + Numero3) div 3 Escreva Media Aula 1 - V.3 - Cida Livi
Apresentação de um algoritmo usando linguagem algorítmica Cálculo da Média Aritmética de três Valores Inicio Leia Numero1, Numero2 , Numero3 Media <- (Numero1 + Numero2 + Numero3) div 3 Escreva Media Fim Aula 1 - V.3 - Cida Livi
A linguagem do algoritmo 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ão que será usado ? Questões vinculadas à linguagem de programação. A linguagem do algoritmo não precisa seguir estritamente uma linguagem de programação. Aula 1 - V.3 - Cida Livi
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
Estrutura de um Programa Pascal Cabeçalho Declarações variáveis, tipos, constantes, procedimentos, ... Begin Comandos End. Aula 1 - V.3 - Cida Livi
{Calcula a média aritmética de três valores} var 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
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
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
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
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
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
Números: formação Notaçã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
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
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
Variáveis (cont.) DEVEM SER inicializadas; Valor inicial imprevisível (posição de memória!). Aula 1 - V.3 - Cida Livi
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
Tipos Simples Inteiros Integer: -32768 a 32767 (2 bytes) Shortint: -128 a 127 (1 byte) Byte: 0 a 255 Longint: -2147483648 a 2147483647 (4 bytes) Aula 1 - V.3 - Cida Livi
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
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
Tipos Simples não-numéricos Booleano: Valores true ou false Ex.: var Concluido : boolean; Concluido:= true; Aula 1 - V.3 - Cida Livi
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
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
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
Operadores Aritméticos Adição : + Subtração : - Multiplicação : * Divisão: inteira DIV ; real /; Resto da divisão ou Módulo (opera sobre inteiros): MOD Ex.: Resto := Valor MOD Parcelas; Se Valor for 70 e Parcelas for 3, Resto receberá 1. Aula 1 - V.3 - Cida Livi
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
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
a) Devem ser linearizadas e b) os operadores devem ser explicitados: Expressões em Pascal: a) Devem ser linearizadas e b) os operadores devem ser explicitados: Seja a expressão: Em Pascal: C := 5 / 9 * (F - 32) {* é o operador da multiplicação } Aula 1 - V.3 - Cida Livi
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
Forma exigida pelo Turbo: ( x > 0) AND (x < 100) 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
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
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
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
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
Edição de valores reais: 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) Aula 1 - V.3 - Cida Livi
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. Aula 1 - V.3 - Cida Livi