Tipo de dados byte em Pascal. Pascal

30.11.2023

Na linguagem Pascal variáveis ​​são caracterizadas por sua tipo. Um tipo é uma propriedade de uma variável pela qual uma variável pode assumir muitos valores permitidos por esse tipo e participar de muitas operações permitidas por esse tipo.

Um tipo define o conjunto de valores válidos que uma variável pode assumir. deste tipo. Também define o conjunto de operações válidas em uma variável de um determinado tipo e define representações de dados em BATER computador.

Por exemplo:

n:inteiro;

Pascal é uma linguagem estática, o que significa que o tipo de uma variável é determinado quando ela é declarada e não pode ser alterado. A linguagem Pascal possui um sistema de tipos desenvolvido - todos os dados devem pertencer a um tipo de dados previamente conhecido (seja um tipo padrão criado durante o desenvolvimento da linguagem ou um tipo personalizado definido pelo programador). O programador pode criar seus próprios tipos com uma estrutura de complexidade arbitrária baseada em tipos padrão ou já definidos pelo usuário. Quantidade tipos criados ilimitado. Os tipos personalizados em um programa são declarados na seção TYPE usando o formato:

[nome] = [tipo]

O sistema de tipos padrão possui uma estrutura hierárquica ramificada.

Os principais na hierarquia são tipos simples. Tais tipos estão presentes na maioria das linguagens de programação e são chamados de simples, mas em Pascal possuem uma estrutura mais complexa.

Tipos estruturados são construídos de acordo com certas regras a partir de tipos simples.

Placas de sinalização são formados a partir tipos simples e são usados ​​em programas para definir endereços.

Tipos processuais são uma inovação na linguagem Turbo Pascal e permitem acessar sub-rotinas como se fossem variáveis.

Objetos também são uma inovação e pretendem usar a linguagem como uma linguagem orientada a objetos.

Na linguagem Pascal, existem 5 tipos de tipos inteiros. Cada um deles caracteriza a faixa de valores aceitos e o espaço que ocupam na memória.

Ao usar números inteiros, você deve ser guiado pelo aninhamento de tipos, ou seja, tipos com intervalo menor podem ser aninhados em tipos com intervalo maior. O tipo Byte pode ser aninhado em todos os tipos que ocupam 2 e 4 bytes. Ao mesmo tempo, o tipo Short Int, que ocupa 1 byte, não pode ser aninhado no tipo Word, pois não possui valores negativos.

Existem 5 tipos reais:

Os tipos inteiros são representados com absoluta precisão em um computador. Ao contrário dos tipos inteiros, o valor dos tipos reais define um número arbitrário apenas com alguma precisão finita, dependendo do formato do número. Os números reais são representados em um computador como ponto fixo ou flutuante.

2358.8395

0.23588395*10 4

0,23588395*E4

O tipo Comp ocupa uma posição especial em Pascal, na verdade, é um número inteiro grande com sinal. Este tipo é compatível com todos os tipos reais e pode ser usado para um número inteiro grande. Ao representar números reais com ponto flutuante, o ponto decimal está sempre implícito antes da mantissa esquerda ou inicial, mas ao operar em um número ele é deslocado para a esquerda ou para a direita.

Tipos ordinais

Os tipos ordinais combinam vários tipos simples. Estes incluem:

  • todos os tipos inteiros;
  • tipo de caractere;
  • tipo booleano;
  • faixa de tipo;
  • tipo enumerado.

Os recursos comuns para tipos ordinais são: cada tipo possui um número finito de valores possíveis; o valor desses tipos pode ser ordenado de uma determinada forma e um determinado número, que é um número de série, pode ser associado a cada número; valores adjacentes de tipos ordinais diferem em um.

Para valores do tipo ordinal, pode-se aplicar a função ODD(x), que retorna o número ordinal do argumento x.

Função PRED(x) - retorna o valor anterior de um tipo ordinal. PRED(A) = 5.

Função SUCC(x) - retorna o próximo valor ordinal. SUCC(A) = 5.

Tipo de personagem

Os valores do tipo de caractere são 256 caracteres do conjunto permitido pela tabela de códigos do computador em uso. A área inicial deste conjunto, ou seja, a faixa de 0 a 127 corresponde ao conjunto de códigos ASCII, onde são carregados os caracteres alfabéticos, números arábicos e caracteres especiais. Os caracteres da área inicial estão sempre presentes no teclado do PC. A área sênior é chamada de alternativa, contém símbolos de alfabetos nacionais e diversos caracteres especiais e caracteres pseudográficos não ASCII.

Um valor de tipo de caractere ocupa um byte na RAM. No programa, os significados são colocados entre apóstrofos. Os valores também podem ser especificados na forma de seu código ASCII. Neste caso, você precisa colocar um sinal # antes do número com o código do símbolo.

C:= 'A'

Tipo lógico (booleano)

Existem dois valores booleanos: True e False. Variáveis ​​deste tipo são especificadas usando a palavra de função BOOLEAN. Os valores booleanos ocupam um byte na RAM. Os valores Verdadeiro e Falso correspondem aos valores numéricos 1 e 0.

Gama de tipos

Existe um subconjunto do seu tipo base, que pode ser qualquer tipo ordinal. Um tipo de intervalo é definido pelos limites dentro do tipo base.

[valor mínimo]…[valor máximo]

O tipo de intervalo pode ser especificado na seção Tipo como certo tipo, ou você pode diretamente na seção Var.

Ao determinar a faixa de tipo, você deve ser guiado por:

  • a borda esquerda não deve ultrapassar a borda direita;
  • um tipo de intervalo herda todas as propriedades do tipo base, mas com limitações associadas ao seu menor poder.

Tipo de enumeração

Este tipo pertence aos tipos ordinais e é especificado enumerando os valores que pode enumerar. Cada valor é chamado de identificador específico e está localizado na lista, entre parênteses. O tipo enumerado é especificado em Tipo:

Povos = (homens, mulheres);

O primeiro valor é 0, o segundo valor é 1, etc.

Potência máxima 65535 valores.

Tipo de string

O tipo string pertence ao grupo dos tipos estruturados e consiste no tipo base Char. O tipo string não é um tipo ordinal. Ele define muitas sequências de caracteres de comprimento arbitrário de até 255 caracteres.

Em um programa, um tipo string é declarado com a palavra String. Como String é um tipo base, ela é definida na linguagem e declarada tipo de variável String é implementada em Var. Ao declarar uma variável do tipo string como String, é aconselhável indicar o comprimento da string entre colchetes. Um número inteiro de 0 a 255 é usado para indicar.

Família: String;

Especificar o comprimento da string permite que o compilador aloque o número especificado de bytes na RAM para esta variável. Se o comprimento da string não for especificado, o compilador alocará o número máximo possível de bytes (255) para o valor desta variável.

3.2. Tipos de dados simples no Turbo Pascal 7

Um tipo simples define um conjunto ordenado de valores de parâmetros. Turbo Pascal possui os seguintes grupos de tipos simples:

  • tipos inteiros;
  • tipo booleano;
  • tipo de caractere;
  • tipo enumerado;
  • faixa de tipo;
  • tipos reais.

Todos os tipos simples, com exceção dos tipos reais, são chamados de tipos ordinais. Para quantidades de tipos ordinais, são definidos procedimentos e funções padrão: Dec, Inc, Ord, Pred, Succ (ver seção 13.1).

3.2.1. Tipos inteiros

Ao contrário do Pascal, que define um único tipo inteiro, Integer, o Turbo Pascal possui cinco tipos inteiros padrão: Shortint, Integer, Longint, Byte, Word. As características desses tipos são apresentadas na tabela. 2.

Tabela 2. Tipos de dados inteiros

Tipo Faixa Formatar Tamanho em bytes
Shortint -128 .. 127 Icônico 1
Inteiro -32768 .. 32767 Icônico 2
Inteiro longo -2147483648 .. 2147483647 Icônico 4
Byte 0 .. 255 Não assinado 1
Palavra 0 .. 65535 Não assinado 2

3.2.2. Tipo booleano

O tipo booleano padrão (tamanho - 1 byte) é um tipo de dados, qualquer elemento do qual pode assumir apenas dois valores: Verdadeiro e Falso. Neste caso, as seguintes condições são válidas:
Falso Ord (Falso) = 0
Ord (Verdadeiro) = 1
Sucesso (Falso) = Verdadeiro
Pred (Verdadeiro) = Falso

Turbo Pascal 7.0 adicionou mais três tipos lógicos ByteBool (tamanho - 1 byte), WordBool (tamanho - 2 bytes) e LongBool (tamanho - 4 bytes). Eles foram introduzidos para unificação com outras linguagens de programação e com Ambiente Windows. Sua diferença em relação ao tipo booleano padrão é o valor real do parâmetro desse tipo, correspondente ao valor True. Para todos os tipos lógicos, o valor False corresponde ao número 0, escrito no número de bytes correspondente. O valor True para o tipo Booleano corresponde ao número 1 escrito em seu byte, e para os demais tipos o valor True corresponde a qualquer número diferente de zero (embora a função Ord neste caso dê o valor 1).

3.2.3. Tipo de personagem

O tipo de caractere padrão Char define conjunto completo Caracteres ASCII. A função Ord de um valor do tipo Char fornece o código do caractere correspondente. Os valores do tipo de caractere são comparados de acordo com seus códigos.

3.2.4. Tipo de enumeração

Um tipo enumerado não é padrão e é definido por um conjunto de identificadores aos quais os valores dos parâmetros podem corresponder. A lista de identificadores é indicada entre parênteses, os identificadores são separados por vírgulas:

tipo
= ();)

É importante a ordem em que os identificadores são listados ao definir um tipo, porque o primeiro identificador recebe o número de série 0, o segundo - 1, etc. O mesmo identificador pode ser usado na definição de apenas um tipo enumerado. A função Ord de um valor de um tipo enumerado fornece o número ordinal de seu valor.

Exemplo. Tipo enumerado.

digite Operat = (Mais, Menos, Mult, Divisão);

Um tipo booleano é um caso especial de um tipo enumerado:

digite Boolean = (Falso, Verdadeiro);

3.2.5. Gama de tipos

Em qualquer tipo ordinal, você pode selecionar um subconjunto de valores, definido pelos valores mínimo e máximo, que inclui todos os valores do tipo original que estão dentro desses limites, incluindo os próprios limites. Este subconjunto define um tipo de intervalo. O tipo de intervalo é especificado especificando os valores mínimo e máximo, separados por dois pontos:

tipo = . . ;

O valor mínimo ao definir este tipo não deve ser maior que o máximo.

Exemplo. Definição de tipos de intervalo.

tipo
Dúzia = 1..12; (números de 1 a 12)
AddSub = Mais..Menos; (operações de adição e subtração)

3.2.6. Tipos reais

Diferentemente do padrão da linguagem Pascal, onde apenas um tipo real Real é definido, o Turbo Pascal possui cinco tipos reais padrão: Real, Single, Double, Extended, Comp. Para as características desses tipos, consulte a tabela. 3. Tabela 3. Tipos de dados reais

Tipo Faixa Número algarismos significativos Tamanho em bytes
Real 2.9*10-39..1.7*1038 11-12 6
Solteiro 1.5*10-45..3.4*1038 7-8 4
Dobro 5.0*10-324.-1.7*10308 15-16 8
Estendido 3.4*10-4932..1.1*104932 19-20 10
Comp. -263+1..263-1 19-20 8

O tipo Comp é na verdade um tipo inteiro de intervalo estendido, mas não é considerado um tipo ordinal.

Os tipos Single, Double, Extended e Comp podem ser utilizados em programas somente se houver um coprocessador aritmético ou quando o emulador de coprocessador estiver habilitado (ver parágrafos 17.5.8 e 17.7.1).

Ao descrever uma variável, você deve indicar seu tipo. O tipo de uma variável descreve o conjunto de valores que ela pode assumir e as ações que podem ser executadas sobre ela. Uma declaração de tipo especifica um identificador que representa o tipo.

Os tipos simples são divididos em padrão (ordinal) e enumerados (restritos).

Tipos padrão

Turbo Pascal possui quatro tipos padrão integrados: inteiro, real, booleano e char.

Tipo inteiro (inteiro)

Turbo Pascal possui cinco tipos de inteiros integrados: shortint, inteiro, longint, byte e word. Cada tipo denota um subconjunto específico de números inteiros, conforme mostrado na tabela a seguir.

Tipos inteiros integrados.

Faixa

Formatar

8 bits assinados

16 bits assinados

2147483648 +2147483647

32 bits assinado

8 bits não assinados

16 bits não assinados

As operações aritméticas sobre operandos do tipo inteiro são realizadas de acordo com as seguintes regras:

  1. Um tipo de constante inteira é um tipo inteiro integrado com o menor intervalo que inclui o valor dessa constante inteira.
  2. No caso de uma operação binária (uma operação que utiliza dois operandos), ambos os operandos são convertidos em seu tipo comum antes que a operação seja executada neles. O tipo comum é o tipo inteiro integrado, com o menor intervalo que inclui todos os valores possíveis de ambos os tipos. Por exemplo, o tipo comum para um número inteiro e um número inteiro de comprimento de byte é inteiro, e o tipo comum para um número inteiro e um número inteiro de comprimento de palavra é um número inteiro longo. A ação é executada de acordo com a precisão tipo geral e o tipo de resultado é um tipo genérico.
  3. A expressão à direita do operador de atribuição é avaliada independentemente do tamanho da variável à esquerda.

Operações realizadas em números inteiros:

“+” - adição

“-“ - subtração

"*" - multiplicação

SQR - quadratura

DIV – descarta a parte fracionária após a divisão

MOD - obtendo o resto inteiro após a divisão

ABS - módulo numérico

RANDOM(X)-receber número aleatório de 0 a X

R:=100; b:=60 ; resultado a DIV b - 1 resultado a MOD b - 40

Variáveis ​​do tipo inteiro são descritas a seguir:

var lista de variáveis: tipo;

Por exemplo: var à,р,n:inteiro;

Tipo real (real)

O tipo real é um subconjunto de números reais que pode ser representado em formato de ponto flutuante com um número fixo de dígitos. Escrever um valor no formato de ponto flutuante normalmente envolve três valores - m, b e e - tais que m*b e, onde b é sempre 10 e m e e são valores inteiros no intervalo tipo real. Esses valores de m e e determinam ainda mais o alcance e a precisão do tipo real.

Existem cinco tipos de tipos reais: real, simples, duplo, exnende, comp. Os tipos reais variam no intervalo e na precisão dos valores associados a eles

Intervalo e dígitos decimais para tipos reais

Faixa

Números

2,9x10E-39 a 1,7x10E 38

1,5x10E-45 a 3,4x10E 38

5,0x10E-324 a 1,7x10E 308

3,4x10E-493 a 1,1x10E 403

2E 63 a 2E 63

Operações realizadas em números reais:

  • Todas as operações são válidas para números inteiros.
  • SQRT(x) é a raiz quadrada de x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) é o logaritmo natural.
  • EXP(X) é o expoente de X (ex).
  • EXP(X*LN(A)) - exponenciação (A x).
  • Funções de conversão de tipo:
    • TRUNC(X) - descarta a parte fracionária;
    • REDONDO(X) - arredondamento.
  • Algumas regras de operações aritméticas:
    • Se uma operação aritmética contém números do tipo real e inteiro, então o resultado será do tipo real.
    • Todos os componentes da expressão são escritos em uma linha.
    • Apenas parênteses são usados.
    • Você não pode colocar dois sinais aritméticos seguidos.

Variáveis ​​do tipo real são descritas a seguir:

var lista de variáveis: tipo;

Por exemplo:

var d,g,k:real;

Tipo de caractere (char)

O tipo char é qualquer caractere colocado entre apóstrofos. Para representar um apóstrofo como uma variável de caractere, você deve colocá-lo entre um apóstrofo: ''''.

Cada personagem tem seu próprio código e número. Os números de série dos dígitos 0,1..9 são ordenados em ordem crescente. Os números de série das letras também estão ordenados em ordem crescente, mas não necessariamente se sucedem.

Os seguintes sinais de comparação se aplicam aos dados de caracteres:

> , < , >=, <=, <> .

Por exemplo: 'A'< ‘W’

Funções que se aplicam a variáveis ​​de caracteres:

  1. ORD(X) - determina o número de série do símbolo X. ord (‘a’) =97 ;
  2. CHR(X) - identifica um caractere por número.
  3. chr(97) =’a’;
  4. PRED(X) - retorna o caractere anterior ao caractere X pred (‘B’) =’A’;

SUCC(X) - retorna o caractere após o caractere X succ ('A') ='B';

Tipo de enumeração

Um tipo de dados enumerado tem esse nome porque é especificado como uma lista de constantes em uma ordem estritamente definida e em uma quantidade estritamente definida. Um tipo enumerado consiste em uma lista de constantes. Variáveis ​​deste tipo podem assumir o valor de qualquer uma dessas constantes. A descrição do tipo de enumeração é semelhante a esta:<имя типа>Tipo<имя переменной>:<имя типа>;

=(lista de constantes) ; Var<список констант>Onde

Por exemplo:

- este é um tipo especial de constantes, especificadas separadas por vírgulas e com número de série próprio, começando em 0.

digite direção=(norte, sul, oeste, leste); mês=(junho, julho, agosto, janeiro) ; capacidade=(balde, barril, vasilha, tanque) ; var rotação: direção; partida:mês; volume:capacidade;

var turn:(norte, sul, oeste, leste); partida: (junho, julho, agosto, janeiro); volume: (balde, barril, vasilhame, tanque);

Você pode executar os seguintes operadores de atribuição:

Rotação:=sul; partida:=Agosto; volume:=tanque;

mas você não pode fazer tarefas mistas:

Partida:=sul; volume:=Agosto;

As seguintes funções se aplicam a variáveis ​​do tipo enumerado:

1. ORD - número de série

2. PRED – elemento anterior

3. SUCC – elemento subsequente.< юг, июнь < январь имеют значения TRUE, а юг>PRED (barril) = balde; SUCC (sul) =oeste; ORD (julho) =1;<бочка значение FАLSE.

Variáveis ​​de tipo enumerado podem ser comparadas porque são ordenadas e numeradas. Então as expressões: norte

oeste e tanque

Tipo limitado

Se uma variável não aceita todos os valores de seu tipo, mas apenas dentro de um determinado intervalo, ela pode ser considerada uma variável de tipo limitado. Cada tipo restrito é definido impondo uma restrição aos tipos base.<имя типа>É descrito da seguinte forma:

TIPO

  1. =constante1 ..constante2
  2. Qualquer tipo simples, exceto real, pode ser usado como tipo base.
  3. O valor inicial ao definir um tipo limitado não deve ser maior que o valor final.
tipo índice =0 ..63 ; letra=’a’..’z’; var char1,char2:letra; a,g:índice;

Você pode descrevê-lo imediatamente na seção de descrição da variável:

var a,g:0 ..63 ; char1,char2:'a'..'z'.

Dados são um conceito geral para tudo com que um computador opera.

As variáveis ​​usadas para armazenar dados em Pascal podem ser de vários tipos. Isso, em particular, se deve ao desejo de criar programas mais compactos e rápidos que utilizem menos memória durante sua operação.

Por exemplo, armazenar números pequenos requer menos memória do que armazenar números grandes. Números inteiros no intervalo de 0 a 255 ocupam apenas 1 byte de memória, enquanto números maiores requerem mais bytes. Se, pela lógica do programa, se sabe que o resultado não ultrapassará 255, basta utilizar uma variável de um byte para armazená-lo.

Por outro lado, os processadores modernos normalmente tratam números inteiros e reais de maneira diferente. Por exemplo, instruções aritméticas inteiras em processadores i80x86 são executadas diretamente na ALU principal e requerem relativamente pouco tempo de processador. Já as operações com números reais são realizadas por um coprocessador matemático, que, embora possua maior capacidade de processamento, requer muito mais tempo para obtenção do resultado.

Portanto, se a lógica do algoritmo não requer o uso de números reais, não faz sentido usar a complicada aritmética “flutuante”. Ao especificar no programa que uma determinada variável é um número inteiro, o programador na verdade instrui o compilador a processá-la com a ALU rápida do processador principal, sem utilizar desnecessariamente o coprocessador.

Além disso, diferentes operações podem ser definidas para diferentes tipos de dados. Por exemplo, não faz sentido realizar uma operação de divisão em cadeias de caracteres ou adicionar uma variável real a uma variável booleana. Se, ao declarar uma variável, for indicado seu tipo, o compilador poderá monitorar a exatidão das expressões nas quais essa variável será utilizada. Isso permite reduzir ligeiramente o número de erros no programa.

Pascal possui tipos de dados simples, compostos e de referência. Agora conheceremos detalhadamente apenas o primeiro deles, e falaremos sobre o restante nas próximas palestras.

Os tipos simples incluem:

– lógico

– tipos inteiros

– tipos reais

– simbólico

1. Tipo lógico (tipo booleano)

Um valor booleano é um dos dois valores verdade, que são denotados por nomes reservados falso E verdadeiro.

O tipo booleano é definido de modo que falso < verdadeiro. As operações relacionais sempre produzem um resultado lógico. Por exemplo, atitude



para x = 0, y = 0 dá falso; em x = 0, y = 10 – valor verdadeiro.

2. Tipos de dados inteiros

Os valores das variáveis ​​do tipo inteiro são os elementos de um subconjunto limitado de inteiros; este subconjunto é específico da implementação.

O Pascal padrão define apenas um tipo de dados inteiro - tipo inteiro. Tipo de número inteiro ocupa dois bytes de memória; neste caso, o bit zero determina o sinal do número.

Na implementação Pascal com a qual trabalharemos, em variáveis ​​como inteiro Você pode armazenar números inteiros no intervalo –32768 a +32767.

Além disso, o Turbo Pascal possui tipos de dados inteiros adicionais:

1) tipo shortint– um inteiro curto de um byte com sinal (o sinal ocupa o bit zero), limites de variação -128 .. 127;

2) tipo byte– um inteiro curto com um byte sem sinal (todos os oito bits são dígitos binários), altera os limites 0 .. 255;

3) tipo palavra– comprimento inteiro dois bytes (palavra) sem sinal, limites de alteração 0 .. 65535;

4) tipo inteiro longo– inteiro longo com 4 bytes de comprimento, assinado, limites de alteração - 2.147.483.648 .. 2.147.483.647.

As seguintes operações aritméticas são válidas para valores inteiros:

Adição;

– subtração;

* multiplicação;

divisão divisão por um número inteiro (observe que o sinal de divisão tradicional "/" retorna um número fracionário em Pascal, portanto o resultado de tal operação não pode ser atribuído a uma variável inteira).

moda restante da divisão.

Numa expressão aritmética, dois sinais de operação não podem aparecer lado a lado. Por exemplo, você não pode escrever * -b. Aqui você precisa escrever um * (-b).

Antiguidade da operação:

1) expressões entre colchetes;

2) *, div, mod (operações multiplicativas);

3) +, – (operações aditivas).

As operações de igual precedência são executadas da esquerda para a direita.

Não há operação de exponenciação em Pascal. Para expoentes inteiros, esta operação pode ser substituída por multiplicação múltipla.

As seguintes funções prescritas fornecem o resultado completo:



1) abs(i) – valor absoluto do argumento inteiro i;

2) sqr(i) – valor ao quadrado do argumento inteiro i;

3) trunc(R) – número inteiro resultante do descarte da parte fracionária do número R;

4) round(R) – um número inteiro obtido pelo arredondamento de R.

trunc(3,3) = 3; rodada(3,3) = 3;

trunc(3,5) = 3; rodada(3,5) = 4;

trunc(3,8) = 3; rodada(3,8) = 4;

truncar(-3,3) = -3; rodada(-3,3) = -3;

truncar(-3,8) = -3; rodada (-3,8) = -4.

3. Tipos reais

Os números reais são números de ponto flutuante. Seu uso generalizado é típico para tarefas técnicas e de engenharia.

Na ausência de um coprocessador, apenas um tipo real é implementado - tipo real; se houver um coprocessador, os tipos também serão implementados solteiro, dobro, estendido, comparação. Os tipos reais diferem entre si no número de bits alocados para representar a mantissa e a ordem.

Por tipo real quatro operações aritméticas são definidas:

Adição - Subtração

* multiplicação/divisão

O resultado das operações “+”, “–”, “*” é um valor real se pelo menos um dos operandos for do tipo real. A operação “/” fornece um valor real mesmo quando ambos os operandos são do tipo inteiro.

As funções padrão abs(x) e sqr(x) produzem um resultado real se seu argumento x for do tipo real. Independentemente do tipo de argumento, as seguintes funções padrão sempre fornecem um resultado real: sin(x), cos(x), ln(x), exp(x), arctan(x), sqrt(x) (raiz quadrada).

As funções também fornecem um resultado real com um argumento real

Int(x) - parte inteira do valor real x;

Frac(x) - parte fracionária do valor real x.

4. Tipo de dados de caractere (tipo char)

Os valores das variáveis ​​​​do tipo de caractere são os elementos de um conjunto finito e ordenado de caracteres. Este conjunto pode ser diferente em computadores diferentes.

O valor de uma variável de tipo de caractere é representado por um único caractere cercado por apóstrofos.

"A" "a" "8" """" (apóstrofo escrito duas vezes)

Independentemente da implementação, as seguintes suposições se aplicam a um tipo de caractere.

1) Os dígitos decimais “0” a “9” são organizados de acordo com seu significado e escritos um após o outro.

2) Existem todas as letras maiúsculas do alfabeto latino de "A" a "Z". Este conjunto está ordenado alfabeticamente, mas não está necessariamente conectado. Portanto, qualquer implementação deve executar “I”< "J".

3) Pode haver letras minúsculas do alfabeto latino de “a” a “z”. Se sim, então este conjunto de letras está ordenado alfabeticamente, mas não necessariamente coerente.

Para um tipo de caractere, duas funções de conversão inversa ord e chr são definidas:

k = ord(ch) – número de série do símbolo ch;

ch = chr(k) – símbolo com número de série k.

Para um tipo de caractere, todas as operações relacionais são definidas.

Acredita-se que ch1< ch2, если ord(ch1) < ord(ch2).

Estrutura do programa Pascal

Um programa Pascal consiste em um cabeçalho de programa e alguns blocos:

Título do programa;

Bloquear .

Cabeçalho consiste na palavra-chave programa e no nome do programa:

Exemplo de programa;

Bloquear contém seções de descrição, que definem todos os objetos locais para um determinado programa, e uma seção de operador, que especifica as ações que devem ser executadas nesses objetos. O bloco consiste nas seguintes seções:

1. Seção de descrição da tag.

2. Seção de descrição constante

3. Digite a seção de descrição

4. Seção de descrição da variável.

5. Seção que descreve procedimentos e funções.

6. Seção Operadores.

O bloco pode estar faltando em qualquer uma das seções, exceto a seção de instruções.

1. Seção de descrição da tag

Qualquer instrução em um programa pode ser marcada com um rótulo. O rótulo é colocado antes do operador e separado dele por dois pontos. Todas as tags devem ser descritas na seção de descrição da tag.

Etiqueta 10, 20, Met15;

2. Seção de descrição constante

Esta seção define alguns identificadores como sinônimos de constantes.

TextString = "Pressione Enter";

A constante pi é predefinida e igual a

pi = 3,1415926536.

O uso de identificadores constantes melhora a legibilidade do programa e facilita sua modificação.

3. Digite a seção de descrição

Os tipos de dados real, inteiro, booleano, char são predefinidos e usados ​​na seção de declaração de variáveis. Se o programador precisar introduzir um novo tipo de dados, ele deverá ser descrito na seção de descrição do tipo.

Falaremos mais sobre a descrição de novos tipos posteriormente.

4. Seção de descrição da variável

Cada variável, matriz ou outro nome de objeto de programa deve ser listado na seção de declaração de variável.

Var i, j, k: inteiro;

5. Seção que descreve procedimentos e funções

O propósito e a estrutura da seção serão delineados ao discutir procedimentos e funções.

6. Seção Operadores

A seção contém operadores que implementam o processamento de informações no programa. Uma seção de instrução é um caso especial de uma instrução composta, que inclui uma ou mais instruções entre "colchetes de instrução" início...fim. O separador entre as instruções é um ponto e vírgula. Nas aulas seguintes estudaremos os operadores básicos da linguagem Pascal.

Seção nº 9 (2 horas)

Operador de atribuição. E/S
em programas Pascal

Operador de atribuição. Escrevendo Expressões Aritméticas

Procedimentos de entrada do teclado

Procedimentos de exibição de tela

Você está na seção de materiais de programação Pascal. Antes de começarmos a programar, precisamos esclarecer alguns conceitos que precisaremos no início. Afinal, você não pode simplesmente programar assim. Não podemos escrever o programa em palavras - o computador não entende nada além de zeros e uns. Para isso, foi criado um simbolismo especial em Pascal - a linguagem Pascal, um conjunto de palavras reservadas que não podem ser usadas em nenhum outro lugar de seus programas, exceto para a finalidade pretendida. Vamos listar os conceitos básicos que precisaremos no início:

✎ 1) programa – em inglês “programa”, escrito logo no início do código, seguido do nome do programa em latim e ponto e vírgula. Por exemplo: programa Suma; − um programa chamado Summa. Mas esta parte do código, chamada cabeçalho do programa, não precisa ser escrita - ela está presente apenas para maior clareza e mostra qual problema este programa resolve. Aqui usamos a palavra “código” - este é o nome da entrada de texto do programa.

✎ 2) inteiro – em inglês significa “inteiro” (ou simplesmente “inteiro”) e em Pascal é usado para denotar inteiros assinados de 32 bits (8 bytes) do intervalo [-2147483648, 2147483647] . Veremos o que esses grandes números significam mais tarde.

✎ 3) real – do inglês “real”, “real”, “real”, “real”. Na linguagem Pascal, este termo denota números reais no intervalo [-1,8∙10 308, 1,8∙10 308]. Esses são números muito grandes, mas são exibidos de 15 a 16 dígitos significativos. A propósito, os tipos de dados inteiros e reais no ambiente de programação PascalABC.Net são sempre destacados automaticamente em azul.

✎ 4) const – análogo do inglês. "constante", que significa "constante", "constante". Em Pascal, esta é uma quantidade que não pode mudar. Está escrito assim:


Esta entrada deve ser tomada como está escrita: o número N é 12, S é 5, “pi” é 3,14 (como em matemática, apenas um ponto é usado em vez de uma vírgula em Pascal). Na última linha usamos uma barra dupla (duas barras), seguida de texto - é assim que os comentários são escritos em Pascal, e o programa não os percebe. Tudo o que começa com uma barra dupla e até o final da linha é um comentário, que é escrito para explicar o programa e é sempre destacado com uma cor diferente (no PascalABC.Net é verde; Turbo Pascal não utiliza este tipo de comentário). Existe outro tipo de comentário - este (texto entre colchetes, assim como aqui, também destacado em verde). Esse tipo de comentário pode valer para várias linhas seguidas - desde o início do colchete até seu fechamento, e o compilador não percebe tudo o que está no meio de tal construção como código e simplesmente pula.

Na realidade o formato de gravação const um pouco mais complicado. De acordo com as regras, tivemos que escrever:

1 2 3 4 const N: digite inteiro;

Descrição:

")" onmouseout="toolTip()">inteiro
= 12 ; //número N – tipo inteiro S: digite inteiro;

Descrição:
Representa um inteiro assinado de 32 bits.

Faixa de valores: -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">inteiro
= 5 ; //número S – tipo inteiro pi: digite real;

Descrição:
Representa um número de ponto flutuante de precisão dupla.

Tamanho: 8 bytes
Número de algarismos significativos: 15 - 16
Faixa de valores: -1,8∙10 308 .. 1,8∙10 308
")" onmouseout="toolTip()">real
= 3.14 ; //número "pi" - real

Após declarar cada valor, seu tipo é indicado e então um valor é atribuído. Mas a entrada anterior também está correta, pois o compilador Pascal está configurado para determinar automaticamente o tipo de uma constante. Mas isso não pode ser dito sobre o próximo tipo de números - variáveis.

✎ 5) var – vem do inglês. “variável” (“variável” ou “alterável”), que em Pascal significa um valor que pode mudar de valor durante o programa. Está escrito assim:


Como pode ser visto na entrada, não há sinal “=” aqui - variáveis ​​​​do mesmo tipo são recalculadas (separadas por vírgulas) e apenas o tipo é indicado após os dois pontos. As variáveis ​​N, m (inteira) e Q, r, t (real) do programa podem alterar valores dentro dos limites de inteiro e real, respectivamente. Mais uma observação: a descrição das variáveis ​​sempre vem depois da descrição das constantes (constantes) - a construção const vem primeiro e depois a var.

✎ 6) começar – traduzido do inglês significa “começar” e Pascal significa o início do programa principal no qual os comandos (operadores) são escritos. Depois da palavra começar Não há ponto e vírgula.

✎ 7) fim – em inglês. “fim”, e em Pascal significa a mesma coisa (fim do programa). Depois da última palavra fim sempre há um período. Enfatizamos a palavra “último” porque o uso da construção começo–fim talvez em mais um caso: são os chamados colchetes de operadores, que servem para combinar várias operações em um único operador. Mas falaremos mais sobre isso mais tarde. Então o programa principal ficará assim:

1 2 3 4 5 6 começar < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; fim.

Aqui, os operadores no corpo do programa são comandos diferentes para o compilador.

✎ 8) escrever – em inglês significa “escrever”. Este operador exibe o texto nele colocado, por isso é chamado de operador de saída. O texto colocado dentro dele está destacado em azul e escrito assim:

Escrever( "este texto é exibido na tela");

Uma mensagem entre parênteses e aspas será mostrada na janela do console (você não pode simplesmente colocá-la entre parênteses sem aspas). Após executar esta instrução veremos na tela:

este texto é exibido na tela

Neste formulário, o operador write é utilizado no caso em que é necessário mostrar uma dica, explicação, comentário, etc. valor numérico, digamos S = 50 m². m, então o formato é usado:

Escreva (, S);

Como resultado, obtemos o resultado na tela:

A área é igual a: S = 50

E se você precisar exibir unidades de medida, será necessário inserir o texto entre aspas novamente após S:

Escrever( "A área é igual a: S =", S, "m²" );

Após executar a última instrução de saída, obtemos a seguinte saída na tela:

O tamanho da área é: S = 50 m²

✎ 9) writeln – o mesmo que write, mas após a execução o cursor será movido para a próxima linha.

✎ 10) read – traduzido do inglês significa “ler”, então read é chamado de operador de leitura ou entrada de dados. Está escrito como read(N), o que significa que o valor N deve ser inserido, onde N é qualquer número, ou texto, ou outro tipo de variável. Por exemplo, se precisarmos inserir a idade de uma pessoa que tem 32 anos, podemos escrever assim:


Na primeira linha deste código, o programa exibe a pergunta “ Qual é a sua idade?" e move o cursor para a próxima linha (terminando em ln); na segunda linha imprimimos “Ano =” (espaço no início); A seguir vemos o operador readln(Year), o que significa que é necessário inserir a idade Ano (número 32); por fim, exibimos as mensagens “Minha idade”, “32” e “anos. "um por um. Você precisa observar os espaços com cuidado. Como resultado da execução deste código, receberemos a mensagem:

Qual é a sua idade?
Ano = 32
Minha idade é 32 anos

✎ 11) readln – o mesmo que read, apenas traduzido para nova linha. Com efeito, no exemplo acima, após introduzir o número Ano, escrevemos apenas na linha seguinte: “ Minha idade é 32 anos».

Isso é tudo por enquanto. Na próxima página escreveremos o primeiro programa, e na programação Pascal este será o nosso