Aulas anteriores... - PowerPoint PPT Presentation

About This Presentation
Title:

Aulas anteriores...

Description:

Title: No Slide Title Author: Antonio Rui Borges Last modified by: DET Created Date: 6/17/1995 11:31:02 PM Document presentation format: A4 Paper (210x297 mm) – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 28
Provided by: AntonioR3
Category:
Tags: anteriores | aulas

less

Transcript and Presenter's Notes

Title: Aulas anteriores...


1
Aulas anteriores...
  • Formulação adequada do problema
  • Identificação das variáveis de entrada
    resultados/variáveis de saída e método ou solução
  • Definição do algoritmo
  • Método de decomposição hierárquica utilizando
    níveis crescentes de detalhe
  • (abordagem top-down)
  • Noção de encapsulamento de operações
  • (procedimentos e funções)

2
Esta Aula ...
  • Detalhes da linguagem de programação
  • Elementos básicos
  • (identificadores, constantes, símbolos gráficos)
  • Estrutura básica de um programa
  • (cabeçalho, parte declarativa, parte de execução)

3
Qual é o objectivo central de uma linguagem?
  • promover a comunicação entre duas ou mais
    entidades.
  • Linguagem Natural
  • descreve ideias, acções, sentimentos, emoções,
  • apresenta
  • um vocabulário rico
  • regras gramaticais complexas
  • é muitas vezes ambígua.
  • Linguagem de Programação
  • descreve operações a serem executadas por um
    computador
  • apresenta
  • um vocabulário limitado
  • regras gramaticais simples
  • é sempre clara e concisa.

Pascal é uma linguagem de programação, criada
pelo Prof. Niklaus Wirth em 1971 e que apresenta
características próprias que a tornam
extremamente adequada ao ensino das regras
básicas da programação.
4
Turbo Pascal
  • Turbo Pascal é uma implementação da linguagem
    Pascal, desenvolvida por uma empresa chamada
    Borland International Inc. e destinada a ser
    usada em PCs, que fornece um ambiente integrado,
    para desenvolvimento de programas, muito
    eficiente e fácil de utilizar.

5
Elementos básicos da linguagem
  • identificadores são palavras que servem para
    nomear os diferentes objectos descritos
  • constantes são valores concretos assumidos por
    alguns objectos
  • símbolos gráficos representam diferentes tipos
    de operadores e de separadores possibilitam a
    construção de frases, ou a separação das frases
    uma das outras.

6
Regras de formação dos identificadores
  • Regra 1 - Os identificadores são formados por uma
    sequência de caracteres alfanuméricos, em que o
    primeiro é obrigatoriamente uma letra do
    alfabeto.
  • identificador ltletra do alfabetogt
  • identificador ltletra do alfabetogt
  • identificador ltalgarismo decimalgt
  • Embora o número de caracteres possa ser qualquer,
    os compiladores restringem esse número a um
    limite bem definido (em Turbo Pascal, só os
    primeiros 63 caracteres contam). Além disso, para
    melhorar a legibilidade e a compreensão dos
    identificadores, praticamente todos os
    compiladores permitem o recurso ao caracter
    (_).
  • conv_dist em vez de convdist, por exemplo.
  • Regra 2 - O alfabeto maiúsculo é indistinguível
    do alfabeto minúsculo.
  • conv_dist é o mesmo que CONV_DIST .

7
Tipos de identificadores
  • palavras reservadas são identificadores que têm
    um significado bem definido dentro da
    especificação da linguagem correspondem, no
    fundo, a uma extensão da noção de símbolo
    gráfico.
  • program, begin, end, mod, and, for, string,
    record, ...
  • identificadores pré-definidos são os nomes de
    objectos, cuja definição é da respon-sabilidade
    do compilador que implementa a linguagem.
  • integer, real, char, MAXINT, FALSE, write, input,
    sin, ...
  • identificadores definidos pelo utilizador são os
    nomes dos objectos definidos ou referenciados no
    programa.
  • ltnome de programagt, ltnome de biblioteca externagt,
    ltnome de constantegt
  • ltnome de tipo de dadosgt, ltnome de variávelgt,
    ltnome de procedimentogt
  • ltnome de funçãogt

8
Tipos de identificadores
  • OBSERVAÇÕES
  • Para o compilador, é indiferente o tipo de
    alfabeto (maiúsculo, minúsculo, ou uma mistura
    dos dois) usado na escrita do programa. Contudo,
    por questões de clareza, algumas regras devem ser
    seguidas
  • palavras reservadas e identificadores
    pré-definidos (que não representem constantes) -
    usar o alfabeto minúsculo
  • identificadores definidos pelo utilizador e
    identificadores pré-definidos (que representem
    constantes) - usar o alfabeto maiúsculo.
  • Também, para melhorar a legibilidade do programa,
    devem ser introduzidos comentários relevantes,
    que expliquem o significado dos diferentes
    objectos, ou que operação é efectuada por grupos
    bem definidos de instruções.
  • comentário ltqualquer sequência de
    símbolosgt
  • (ltqualquer sequência de símbolosgt)

9
Representação da informação
  • toda a informação, usada e produzida durante a
    execução de um programa, está armazenada em
    binário na memória principal do computador, sob a
    forma de constantes (valores invariantes), ou de
    variáveis (valores lidos do dispositivo de
    entrada, valores temporários calculados a partir
    destes e valores finais a enviar para o
    dispositivo de saída)
  • a forma como a informação está organizada, ou
    seja, o significado que é atribuído a estas
    sequências binárias de valores, depende da
    linguagem de programação
  • as regras que definem cada organização concreta,
    designada por tipo de dados, constituem o que se
    chama o seu formato próprio, e indicam
  • o tamanho, em n.º de bytes, necessário ao
    armazenamento de uma constante desse tipo
  • a maneira como deve ser lida (interpretada) a
    sequência de bits da sua representação binária.

10
Tipos de dados válidos em Pascal
  • tipos pré-definidos são os tipos de dados
    básicos, referenciados na especificação da
    linguagem e definidos pelo compilador
  • integer e real - representação de quantidades
    numéricas
  • boolean - representação de quantidades lógicas
  • char - representação de símbolos gráficos
  • string - representação de sequências de
    símbolos gráficos (em Pascal Standard, só
    existem constantes deste tipo, mas está
    presente em Turbo Pascal e na grande maioria
    dos compiladores actuais).
  • tipos definidos pelo utilizador são tipos de
    dados particulares, definidos pelo programador,
    para adequar a representação da informação às
    condições concretas do problema são construídos
    a partir de tipos de dados já existentes (pré ou
    previamente definidos) e de dispositivos
    especiais especificados na linguagem, os
    construtores.

11
Tipo integer
  • representação exacta de quantidades inteiras,
    positivas e negativas, até a um limite que, em
    valor absoluto, é expresso pela constante MAXINT
  • caso particular da representação em vírgula fixa
    (neste caso, a vírgula está à direita do bit
    menos significativo)
  • o valor da quantidade é expresso num sistema
    binário pesado, conhecido pelo nome de
    complemento para 2, em que o bit mais
    significativo representa o sinal
  • (0 -gt , 1 -gt -)
  • para uma representação em N bits, o valor da
    quantidade A é calculado por

12
Tipo integer
  • em Turbo Pascal, a constante MAXINT é igual a
    215-1, o que implica um tamanho de 2 bytes (ou 16
    bits)
  • o Turbo Pascal contempla ainda os seguintes tipos
    de vírgula fixa, todos eles compatíveis entre si
    e com integer
  • Nome Gama Tamanho em bytes
  • byte 0 255 1
  • shortint -128 127 1
  • word 0 216-1 2
  • longint -231 231-1 4
  • Exemplos
  • 149 0 -345

13
Tipo real
  • representação aproximada de quantidades numéricas
    positivas e negativas, com parte inteira e/ou
    parte fraccionária, numa gama de valores muito
    alargada
  • caso particular da representação em vírgula
    flutuante (aquilo que comummente se designa por
    notação científica m x Bexp, em que m é a
    mantissa, B é a base (hoje em dia, quase sempre
    binária) e exp é o expoente)
  • a representação da quantidade é formada por três
    partes sinal da mantissa (0-gt, 1-gt-), valor
    absoluto da mantissa (fraccionária, entre 0.5 e
    1.0, ou, alternativamente, entre 1.0 e 2.0),
    expressa no sistema binário de numeração, e
    expoente, expresso num sistema binário pesado.

14
Tipo real
  • em Turbo Pascal, a gama de representação em valor
    absoluto vai aproximadamente de 2.9x10-39 a
    1.7x1038, com uma mantissa de 11 a 12 algarismos
    significativos, o que implica um tamanho de 6
    bytes (ou 48 bits)
  • o Turbo Pascal contempla ainda os seguintes tipos
    de vírgula flutuante, todos eles compatíveis
    entre si e com real
  • Nome Gama Algarismos significativos Tamanho em
    bytes
  • single 1.5x10-45 3.4x1038 7-8 4
  • double 5.0x10-324 1.7x10308 15-16 8
  • extended 3.4x10-4932 1.1x104932 19-20 10
  • Exemplos
  • 22.0 0.0 -0.0345
    -2.2e1 0e0 -3.45e-2

15
Tipo boolean
  • representação dos valores lógicos verdadeiro e
    falso
  • normalmente, fixa-se um valor binário (0, por
    exemplo) para um dos níveis lógicos e o outro
    pode assumir qualquer valor
  • em Turbo Pascal, o tamanho usado para
    armazenamento é um byte (ou 8 bits), que
    constitui uma palavra de memória
  • Exemplos
  • FALSE
    TRUE

16
Tipo char
  • representação de símbolos gráficos ou de sinais
    de controlo
  • cada símbolo ou sinal é representado
    numericamente através de um valor binário que lhe
    é atribuído por um código, o mais comum é o
    código ASCII (American Standard Code for
    Information Interchange)
  • qualquer que seja, porém, o código usado, as
    regras seguintes são impostas pela especificação
    da linguagem Pascal
  • os valores binários associados com os algarismos
    decimais devem ser seguidos e respeitar a ordem
    natural
  • os valores binários associados com as letras do
    alfabeto (maiúsculas e minúsculas) devem
    respeitar a ordem natural, mas não têm que ser
    necessariamente seguidos (são-no, contudo, no
    código ASCII).

17
Tipo char
  • em Turbo Pascal, o tamanho usado para
    armazenamento é um byte (ou 8 bits), que
    constitui uma palavra de memória
  • Exemplos
  • 4 T
    ? j
  • ainda, em Turbo Pascal, existe um meio
    alternativo para representar constantes de tipo
    char a sua sintaxe é
  • ltvalor numérico em decimal do código atribuído
    ao caractergt
  • este método é particularmente útil para
    representar os sinais de controlo, porque, sendo
    estes invisíveis, não podem ser representados
    pelo processo geral.

18
Tipo string
  • representação de sequências de símbolos gráficos
    ou de sinais de controlo
  • em Turbo Pascal, o formato usado por defeito é de
    256 bytes e permite um arma-zenamento de
    sequências de caracteres, cujo comprimento pode
    ir até 255
  • o tamanho do formato por defeito pode ser
    reduzido, se o programador assim o desejar,
    através da indicação explícita do comprimento
    máximo das sequências de caracteres que aí podem
    ser armazenadas
  • string N_MAX_CAR
  • Exemplos
  • era uma vez um gato maltes
    (string nulo)

19
Tipos de dados ordinais ou ordenados
  • são formas de organização da informação em que
    existe uma possibilidade de enumeração ordenada
    das constantes que as constituem isto é, dada
    uma constante qualquer, é sempre possível
    determinar qual é a constante que a precede, ou
    qual é a constante que lhe sucede
  • tipos de dados ordinais pré-definidos
  • integer (e seus tipos compatíveis) - a
    ordenação é trivial, neste caso
  • boolean - admite-se que FALSE vem antes de
    TRUE
  • char - a ordenação baseia-se nos valores
    numéricos do código usado
  • tipos de dados não ordinais pré-definidos
  • real (e seus tipos compatíveis) - como
    representam valores numéricos de uma forma
    aproximada, não é possível saber que constantes
    estão na vizinhança imediata de qualquer delas
  • string - tendo as constantes tamanho distinto,
    o mecanismo de ordenação teria necessariamente
    que ser multidimensional e a definição anterior
    não se aplica.

20
Estrutura básica de um programa em Pascal
  • Cabeçalho
  • caracterização do programa e definição dos
    dispositivos de comunicação
  • nome do programa
  • nomes dos dispositivos de entrada e de saída
    utilizados
  • Parte Declarativa
  • referência a, ou definição dos diferentes
    objectos usados na parte de execução
  • referência a bibliotecas externas (units)
  • definição de constantes, de tipos de dados e de
    variáveis
  • definição de procedimentos e de funções
  • Parte de Execução
  • listagem ordenada da sequência de instruções
    executadas pelo computador quando o programa é
    corrido

21
Cabeçalho
  • program identificador do programa (lista de
    nomes dos dispositivos de entrada e saída)
  • identificador do programa identificador
    válido em Pascal
  • lista de nomes dos dispositivos de entrada e
    saída
  • identificador do dispositivo
  • lista de nomes dos dispositivos de entrada e
    saída , identificador do dispositivo
  • identificador do dispositivo input
    output identificador lógico de ficheiro
  • identificador lógico de ficheiro
    identificador válido em Pascal
  • Notas - Os identificadores input e output são os
    nomes dos dispositivos standard de entrada e
    saída, normalmente, o teclado e o écran do
    monitor vídeo.
  • Em Turbo Pascal, a lista de nomes dos
    dispositivos de entrada e saída é opcional.
    Assim, o cabeçalho típico de Pascal Standard
  • program CONVDIST(input, output)
  • pode ser reduzido a
  • program CONVDIST

22
Referência a bibliotecas externas
  • uses lista de nomes de bibliotecas
  • lista de nomes de bibliotecas identificador
    de biblioteca
  • lista de nomes de bibliotecas , identificador
    de biblioteca
  • identificador de biblioteca identificador
    válido em Pascal
  • Nota - A única biblioteca para já relevante é
    aquela que, dentro do ambiente Windows, cria uma
    janela de aplicação. Por conseguinte, todos os
    programas em Turbo Pascal que corram no ambiente
    Windows, têm que referenciar a biblioteca
    WinCrt e, por isso, a referência abaixo tem que
    surgir em todos eles
  • uses WinCrt

23
Definição de constantes
  • const
  • lista de constantes
  • lista de constantes identificador de
    constante valor
  • lista de constantes
  • identificador de constante valor
  • identificador de constante identificador
    válido em Pascal
  • valor valor literal expressão simples
  • valor literal valor constante de um dos
    tipos pré-definidos
  • Nota - Quando o valor atribuído a uma constante é
    calculado a partir de uma expressão simples,
    todos os seus operandos são necessariamente
    valores literais, ou constantes que foram
    previamente definidas. Este tipo de definição é
    característico de Turbo Pascal, não existindo em
    Pascal Standard.

24
Definição de constantes
  • const
  • NMAX 100 ( constante inteira - v. literal )
  • PI 3.1415926536 ( constante real - v.
    literal )
  • SINAL FALSE ( constante booleana - v.
    literal )
  • LETRA S ( constante de tipo caracter - v.
    literal )
  • NOME INES ( constante de tipo string - v.
    literal )
  • VEL_LUZ 3e81000 ( constante real -
    expressão )
  • PER_CIRC_UNIT 2PI ( constante real -
    expressão )

25
Definição de variáveis
  • var
  • lista de variáveis
  • lista de variáveis lista de nomes tipo de
    dados
  • lista de variáveis
  • lista de nomes tipo de dados
  • lista de nomes identificador de variável
  • lista de nomes, identificador de variável
  • identificador de variável identificador
    válido em Pascal
  • tipo de dados tipo pré-definido tipo
    definido pelo utilizador

26
Definição de variáveis
  • var
  • A1, A2, A3 integer ( variáveis inteiras )
  • A4 integer ( variável inteira )
  • B1, B2 real ( variáveis reais )
  • C1, C2, C3, C4 boolean ( variáveis booleanas
    )
  • D1 char ( variável de tipo caracter )
  • E1, E2 string ( variáveis de tipo string )
  • ( com uma capacidade de armazenamento )
  • ( máxima de 255 caracteres )
  • F1 string10 ( variável de tipo string )
  • ( com uma capacidade de armazenamento )
  • ( máxima de 10 caracteres )

27
Constantes vs. Variáveis
  • uma constante é um objecto, cujo valor se mantém
    invariante durante a execução do programa
  • definir uma constante significa associar um nome
    a esse valor
  • o uso de constantes num programa serve para se
    conseguir a sua parametrização, melhorando a
    legibilidade (os valores são substituidos por
    nomes com significado explícito) e a robustez (a
    alteração do valor é realizada de um modo
    centralizado).
  • uma variável é um objecto, cujo valor se altera
    em princípio durante a execução do programa
  • definir uma variável significa reservar espaço em
    memória principal para o seu armazenamento
  • o uso de variáveis num programa serve para
    armazenamento, durante a sua execução, dos
    valores lidos do dispositivo de entrada, dos
    valores temporários e dos valores a enviar para o
    dispositivo de saída
  • o recurso imoderado a variáveis conduz a uma
    perda da legibilidade do programa.
Write a Comment
User Comments (0)
About PowerShow.com