Ementário

  • O ambiente de desenvolvimento

  • A linguagem Pascal, Programação Orientada a Objetos

  • Visual Components Library

  • Banco de dados: abordagem I e II

  • Componentes QuickReport

  • Dynamic Link Library

  • Help

  • InstallShield Express

  • Delphi e Pascal Avançado

  • Programando para Internet

A Linguagem Pascal

Introdução

  • Dr. Nicklaus Wirth, 1972 em Genebra, Suíça

  • homenagem ao filósofo francês Blaise Pascal

  • ferramenta de aprendizagem

  • poderosa linguagem de programação

    • compiladores Turbo Pascal da Borland
    • simplicidade + poder
    • conceito de tipos de dados (extremamente tipada)

Regras para nomes (1/2)

  • As seguintes regras devem ser seguidas na

  • formação de identificadores:

  • um identificador é uma seqüência de letras, dígitos e caracteres de sublinhado de qualquer tamanho (somente os primeiros 63 são significativos);

  • o primeiro caractere de um identificador deve ser uma letra ou um caractere de sublinhado “_”;

  • não são permitidos espaços em branco no nome;

Regras para nomes (2/2)

  • os nomes de identificadores não são sensíveis a letras maiúsculas e minúsculas, mas usualmente cada uma das palavras de um identificador inicia-se com uma letra maiúscula, exemplos:

    • CodigoDoCliente ou SaldoCredorDoCliente;
    • CdItem, CDITEM e cditem referem-se ao mesmo identificador.
  • Código, 10Salario, ‘Brasil’, Salario Minimo, Salario-Minimo, são exemplos de nomes inválidos

Rótulo (label)

  • indicação de rótulos para desvio incondicional (goto)

Constantes (const)

  • são informações armazenadas dentro do código-fonte dos programas e que não variam durante a execução dos mesmos

    • y := x + 1, o número 1 representa uma constante
  • representam valores utilizados repetidamente

Variáveis (var)

  • são posições de memória utilizadas para armazenar informações referenciadas dentro do programa

  • seus valores podem sofrer alterações

Sintaxe p/ Declaração de Variáveis

Constantes tipadas

  • objetivo

    • definir o tipo da constante e atribuir um valor em uma única declaração
    • inicializar variáveis

Tipos de dados Pascal

  • valores que uma variável pode assumir

    • representação interna desses valores
  • operações que podem ser realizadas com essa variável

Tipos de dados simples pré-definidos

  • armazenam um único valor

  • Três grupos:

  • tipos ordinais

    • têm noção de ordem (integer, boolean e char)
  • tipos reais

    • números com ponto flutuante (real)
  • tipos strings

    • cadeia de caracteres (string)

Tipos ordinais (1/4)

  • Tipos inteiros limites bytes

  • byte 0..255 1

  • word 0..65535 2

  • shortint -128..127 1

  • smallint -32768..32767 2

  • integer -2147483648..2147483647 4

  • longint -2147483648..2147483647 4

  • cardinal 0..2147483647 4

Tipos ordinais (2/4)

  • Tipos booleanos limites bytes

  • boolean false..true 1

  • bytebool 1

  • bool 2

  • wordbool 2

  • longbool 4

Tipos ordinais (3/4)

  • Tipos caracter bytes

  • char 1 caracter ASCII

  • widechar 2 caracter Unicode

  • ansichar 1 caracter ANSI

Tipos ordinais (4/4)

  • Tipos ordinais definidos pelos usuários

  • enumerados

    • type Semana = (Dom, Seg, Ter, Qua, Qui, Sex, Sab);
  • subintervalo (faixas secundárias)

    • type LetraMinuscula = ‘a’..’z’;
    • Meses = 1..12;
  • Help: Ordinal Routines e Types

Rotinas para tipos ordinais

  • Rotina Propósito

  • Dec decremento

  • Inc incremento

  • Odd True se o argumento for um número ímpar

  • Pred predecessor

  • Succ sucessor

  • Ord ordem

  • Low valor mais baixo

  • High valor mais alto

Tipos reais

  • Tipos reais limites bytes

  • real 5.0*10-324..1.7*10+308 8

  • single 4

  • double 8

  • extended 10

  • comp 8

  • currency 8

Tipo string

  • concatenação de um conjunto de letras, números e símbolos especiais

    • cadeia, ou array, de caracteres
  • uma string pode armazenar de 1 a 255 caracteres

  • uma cadeia de caracteres pode ter tamanho previamente definido (ex. string[10])

  • os caracteres de uma cadeia podem ser individualizados através de um índice que indica a posição do caracter na cadeia

Rotinas para o tipo string (1/2)

  • Rotina Propósito

  • Copy retorna uma substring

  • Concat concatena strings

  • Delete remove uma substring

  • Insert insere uma substring

  • UpperCase converte a string para maiúscula

  • LowerCase converte a string para minúscula

  • Length retorna o tamanho da string

  • Pos retorna a 1ª posição de uma substring

Rotinas para o tipo string (2/2)

  • Rotina Propósito

  • IntToStr inteiro para string

  • StrToInt string para inteiro

  • Val string para um número

  • Str número para string

  • StrToDate string para data

  • DateToStr data para string

  • StrToDateTime string para data e hora

  • DateTimeToStr data e hora para string

Tipo data e hora

  • TDateTime

    • utilizado em rotinas que trabalham com os valores corrente de data e hora
  • TDate

    • usado para representar a data
  • TTime

    • usado para representar a hora

Rotinas para os tipos data e hora

  • Rotina Propósito

  • StrToDate string para data

  • DateToStr data para string

  • StrToDateTime string para data e hora

  • DateTimeToStr data e hora para string

  • DayOfWeek dia da semana

Tipo Variant

  • tipo genérico, que pode atribuir e receber valores de qualquer tipo

  • o uso de variáveis desse tipo pode prejudicar a performance do programa, além de diminuir a legibilidade do código fonte e a integridade do executável

Rotinas para conversão de tipos (1/2)

  • Rotina Propósito

  • Chr número ordinal em caracter

  • Ord caracter em número ordinal

  • Round real para inteiro, arredondando

  • Trunc real para inteiro, truncando

  • Val string para um número

  • Str número para string

Rotinas para conversão de tipos (2/2)

  • Rotina Propósito

  • IntToStr inteiro para string

  • StrToInt string para inteiro

  • StrToDate string para data

  • DateToStr data para string

  • StrToDateTime string para data e hora

  • DateTimeToStr data e hora para string

  • FloatToStr ponto flutuante para string

  • StrToFloat string para ponto flutuante

Expressões

  • regra computacional que sempre especifica um valor como resultado

  • operadores resultado

    • aritméticos numérico
    • lógicos lógico
    • literais literal
    • relacionais lógico

Operadores aritméticos

  • + adição

  • - subtração

  • * multiplicação

  • / divisão

  • div divisão inteira (5 div 2 = 2)

  • mod resto da divisão (5 mod 2 = 1)

Operadores lógicos

  • not negação lógica

  • and “e” lógico conjunção

  • or “ou” lógico disjunção

  • xor “ou exclusivo” lógico

Operadores relacionas

  • = igual a

  • <> diferente de

  • > maior que

  • < menor que

  • >= maior igual a

  • <= menor igual a

  • in pertence a (pertinência)

Operadores literais

  • Expressões literais são aquelas cujo resultado da avaliação é um valor literal.

  • concatenação de strings (+), toma-se duas strings e acrescenta-se (concatena-se) a segunda delas ao final da primeira.

Operadores de conjuntos

  • + união de conjuntos

  • - diferença

  • * interseção

  • in teste de pertinência

  • oper. relacionais

Precedência de operadores

  • Primeiro not, +, - (unários)

  • Segundo *, /, div, mod, and (multiplicativos)

  • Terceiro +, -, or, xor (aditivos)

  • Quarto =, <, >, <>, <=, >=, in (relacionais)

  • Notas:

  • a utilização de parênteses alteram a precedência dos operadores

  • operadores de mesma precedência, da esquerda para a direita

Comentários