Как в программе на языке pascal описываются переменные

При описании переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены. Описание типа определяет идентификатор, который обозначает тип. В программе описание переменной задается следующим образом:

var список переменных: тип;

Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).

Стандартные типы

Язык Pascal имеет четыре встроенных стандартных типа:

  • integer (целочисленный)
  • real (вещественный)
  • boolean (логический)
  • char (символьный)

1.Целочисленный тип (integer).

В Pascal имеются следующие целочисленные типы:

  • shortint (короткое целое)
  • integer (целое)
  • longint (длинное целое)
  • byte (число длиной в байт)
  • word (число длиной в слово)

Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей таблице.

Pascal | Переменные

Тип данныхДиапазонКоличество байт
shortint -128 ..+127 1
integer -32768 .. 32767 2
longint -2147483648 +2147483647 4
byte 0 .. 255 1
word 0 .. 65535 4

Встроенные целочисленные типы

Описываются переменные целого типа следующим образом:

var а,р,n:integer;

Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:

  1. Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающим значение этой целой константы.
  2. В случае бинарной операции (операции, использующей два операнда), оба операнда преобразуются к их общему типу перед тем, как над ними совершается действие. Общим типом является встроенный целочисленный тип с наименьшим диапазоном, включающим все возможные значения обоих типов. Например, общим типом для целого и целого длиной в байт является целое, а общим типом для целого и целого длиной в слово является длинное целое. Действие выполняется в соответствии с точностью общего типа и типом результата является общий тип.
  3. Выражение справа в операторе присваивания вычисляется независимо от размера переменной слева.

В Pascal есть операции целочисленного деления и нахождения остатка от деления. При выполнении целочисленного деления (операция div) остаток от деления отбрасывается.

//Например 15 div 3 = 5; 18 div 5 = 3; 123 div 10 = 12; 7 div 10 = 0;

С помощью операции mod можно найти остаток от деления одного целого числа на другое.

Паскаль с нуля [ч2]. Переменные и типы данных


//Например 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3; 7 mod 10 = 7;
//Например а:=100; b:=60; c:=a div b; d:=a mod b;

результат: переменная c равна 1, а d равна 40.

При записи алгебраических выражений используют арифметические операции (сложение, умножение, вычитание, деление), функции Pascal, круглые скобки.

Порядок действий при вычислении значения выражения:

  1. вычисляются значения в скобках;
  2. вычисляются значения функций;
  3. выполняется унарные операции (унарный минус — смена знака);
  4. выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);
  5. выполняются операции сложения и вычитания.

Встроенные математические функции языка Pascal

Математическая записьЗапись на PascalНазначение
cos x cos(x) Косинус x радиан
sin x sin(x) Синус x радиан
e x exp(x) Значение e в степени x
[x] trunc(x) Целая часть числа x
|x| abs(x) Модуль числа x
x 2 sqr(x) Квадрат числа x
sqrt(x) Квадратный корень из x
x> frac(x) Дробная часть x
arctg x arctan(x) Арктангенс числа x
ln x ln(x) Натуральный логарифм x
p Pi Число p

Возведение в степень (кроме возведения в квадрат и возведения в степень числа e) отсутствует. Для возведения в произвольную степень можно воспользоваться очевидным равенством: x y =e y ln x . Для возведения числа в натуральную степень можно написать собственную функцию. Например,

Function Stepen(X : Real; N : Integer) : Real; Var I:Integer; St:Real; Begin St := 1; For I := 1 To N Do St := St * X; Stepen := St; End;

Другой способ получить натуральное значение z=x y , где x, y — натуральные, это сделать так: Z := Round(Exp(Y * Ln(X))).

Примечание. Интересной является задача получения степени любого целого числа (за исключением нуля), если основание степени — неотрицательное целое, без использования развилки. Одно из возможных решений :

(–1)*ord(odd(y)) * exp(y * ln(x)) + ord(odd(y+1)) * yxp(Y * ln(x))

Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).

2. Вещественный тип (real).

К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей запятой с фиксированным числом цифр. Запись значения в формате с плавающей запятой обычно включает три значения — m, b и e — таким образом, что m*b е , где b всегда равен 10, а m и e являются целочисленными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон и точность вещественного типа.

Имеется следующие виды вещественных типов: real, singlе, double, extended,comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений. Тип comp может содержать только целые числа от -2 63 +1 до +2 63 -1, но эти числа хранятся в вещественном формате, поэтому тип comp считается вещественным. С данными типа Comp можно обращаться так же, как с данными других вещественных типов, но дробная часть числа при этом автоматически отбрасывается.

Диапазон и десятичные цифры для вещественных типов

Тип Диапазон Точность Количество байт
Real 2.9×10Е-39 до 1.7×10Е 38 11-12 6
Single 1.5×10Е-45 до 3.4×10Е 38 7-8 4
Double 5.0×10Е-324 до 1.7×10Е 308 15-16 8
Extended 3.4×10Е-4932 до 1.1×10Е 4932 19-20 10
Comp -9.2E-18 до 9.2E18 19-20 8
Читайте также:
Что такое altruistic программа

Операции совершаемые над вещественными числами:

  1. Все операции допустимые для целых чисел.
  2. SQRT(x)-корень квадратный из числа х.
  3. Тригонометрические функции:
    • SIN(X);
    • COS(X);
    • ARCTAN(X).
    • LN(X)-натуральный логарифм.
    • EXP(X)-экспонента Х (е х ).
    • EXP(X*LN(A))-возведение в степень (А х ).
    • Функции преобразования типов:
      • TRUNC(X)-отбрасывает дробную часть
      • ROUND(X)-округление.

      Некоторые правила арифметических операций:

      1. Если в арифметическом действии встречаются числа типа real и integer, то результат будет иметь тип real.
      2. Все составные части выражения записываются в одну строку.
      3. Используются только круглые скобки.
      4. Нельзя подряд ставить два арифметических знака.

      Описываются переменные вещественного типа следующим образом:

      var список переменных: тип;

      Например:

      var d,g,k:real;

      3. Символьный тип(char)

      K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:».

      Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.

      К символьным данным применимы знаки сравнения:

      > , < , >=, . Например: ‘A’ < ‘W’

      Функции, которые применимы к символьным переменным:

      1. ord(x) — определяет порядковый номер символа x.

      Пример: ord(‘a’)=97.

      1. chr(x) — определяет символ по номеру.

      Пример: chr(97)=’a’.

      1. pred(x) — выдает символ, стоящий перед символом x.

      Пример: pred(‘B’)=’A’.

      1. succ(x) — выдает символ, следующий после символа x.

      Пример: succ(‘A’)=’B’.

      Перечислимые типы

      4. Перечислимый тип.

      Перечислимый тип данных назван так потому, что задается в виде перечисления констант в строго определенном порядке и в строго определенном количестве. Перечислимый тип состоит из списка констант. Переменные этого типа могут принимать значение любой из этих констант. Описание перечислимого типа имеет вид:

      Type имя типа=(список констант); Var имя переменной:имя типа;

      где — это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.

      type направление=(север, юг, запад, восток); месяц=(июнь,июль,август,январь); емкость=(ведро,бочка,канистра,бак); var поворот:направление; отъезд:месяц; объем:емкость;
      var поворот:(свер, юг, запад, восток); отъезд:(июнь, июль, август, январь); объем:(ведро, бочка, канистра, бак);

      Можно выполнить такие операторы присваивания:

      поворот:=юг; отъезд:=август; объем:=бак;

      но нельзя выполнять смешанные присваивания:

      отъезд:=юг; объем:=август;

      К переменным перечислимого типа применимы следующие функции:

      1. ord — порядковый номер

      2. pred — предшествующий элемент

      3. succ — последующий элемент.

      Пример: pred(бочка)=ведро; succ(юг)=запад; ord(июль)=1;

      Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения:

      5. Ограниченный тип.

      Если переменная принимает не все значения своего типа, а только в некотором диапазоне, то ее можно рассматривать как переменную ограниченного типа. Каждый ограниченный тип задается путем накладывания ограничения на базовые типы.

      type =константа1..константа2

      При этом должны выполняться следующие правила:

      1. Обе ограниченные константы должны быть одного типа.
      2. В качестве базового типа можно использовать любой простой тип, кроме действительного(real).
      3. Начальные значение при определении ограниченного типа не должно быть больше конечного значения.

      type index=0..63; letter=’a’..’z’; var char1,char2:letter; a,g:index;

      Можно описывать сразу в разделе описания переменных:

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

      Похожие записи/страницы:

      • Типы данных
      • Объектно-ориентированное и визуальное программирование. Простые типы данных Delphi (Делфи)
      • Массивы — Pascal(Паскаль)
      • Программа на языке Pascal(Паскаль)
      • Строка — Pascal(Паскаль)
      • Процедуры
      • Логический тип (boolean)
      • Дано целое число а и натуральное (целое неотрицательное) число n. Вычислить а в степени n без использования функции…

      Источник: retrolib.ru

      Уроки Паскаль № 2 Переменные и типы данных

      паскаль-миниатюра

      Здравствуйте, сегодня второй урок по языку программирования Паскаль в котором мы поговорим о переменных.

      Урок № 2 Переменные и типы данных.

      Что такое переменные? Мы можем представить себе для простоты понимания переменную как ящик, в который мы помещаем какие-то вещи. В нашем случае, случае языка программирования предметы могут быть число, строки, символы.

      Переменные различаются по типам. Есть типы для чисел, есть типы для строк, для больших чисел, для маленьких чисел, для чисел с запятыми т. е. нецелых чисел и целых чисел соответственно. Типы эти определены не просто так они нужны для того что бы компилятор понимал какие мы можем действия применить. Так как с числами применяются одни действия, а со строками совсем другие.

      Давайте познакомимся какие типы переменных существуют в паскале, и как объявлять переменные.

      В языке Паскаль объявление переменных делается до того, как начинается программа. Существует отдельный блок var . В нем описываются переменные. Делается это таким образом. Мы пишем имя переменной, например, а ставим : и после этого пишем тип.

      Вот типы данных Паскаль.

      типы переменных Паскаль

      Слева идентификатор или название типа непосредственно который мы будем писать в программе. Дальше длина, байт то место, которое занимает эта переменная в памяти компьютера. Если говорить техническими понятиями, то переменная это именованная область памяти компьютера, в котором записан. Для нас это определение достаточно глубокое и не особо нужное.

      Дальше указан диапазон (множество) значений. Т. е. для типа integer это целый тип, есть также вещественные типы, логические типы и символьные типы.

      В табличке можно увидеть диапазон значений которое может принимать эта переменная. Для каждого диапазона чисел если мы знаем заранее сколько приблизительно каких чисел у нас могут быть, то мы можем определить тип, который нам нужно конкретно под эту задачу, что бы он не ел много памяти и в тоже время охватывал диапазон значений, которые у нас могут быть теоретически в этой переменной использоваться.

      Читайте также:
      Рейтинг программ интернет радио Андроид

      Вещественные типы это для не целых чисел т. е. с запятой или точкой.

      Логический тип может принимать только два значения true и false.

      Символьный тип все символы кодировки АСКИ.

      Начнем с простого.

      Создадим целую переменную a: integer; и b: integer;

      Можно записать в 2 строки:

      Можно сократить записать.

      переменные Паскаль

      Присвоим значение переменным. Присвоение в Паскаль пишется вот таким значком := .

      И давайте выведем на экран переменную, если вы помните с прошлого урока вывод на экран у нас делается специальная функция writeln( );

      вывод переменных Паскаль

      Давайте попробуем еще одну штучку. В скобках параметрах функции writeln мы можем указать не просто переменную или какой-нибудь текст, а можем указать выражение (а+в) и программа подсчитает и выведет на экран.

      сложение переменных

      Давайте попробуем не много украсить нашу программу. Заодно посмотрим на функцию вывода, как еще можно использовать её. Мы можем кроме того, что просто выводим значение переменной где просто текст совместить эти две вещи. Ставим кавычки ‘ ‘ потом запятую , .В кавычках пишем любой текст который нам нужно. Через запятую мы можем перечислять какие-то разные значения. И тоже самое сделаем для переменной b. Также выведем сумму (а+в)

      • writeln(‘Значение переменной а = ‘, a, ‘;’);
      • writeln(‘Значение переменной b = ‘, b, ‘;’);
      • writeln(‘Значение суммы a+b = ‘, a+b,);

      переменные оформление

      Вот такие не хитрые способы вывода нескольких аргументов этой функции. Следующий урок будет посвящен константам и вводу данных. Так же еще поговорим про переменные и их типы.

      Источник: murnik.ru

      Основы кода

      Аннотация: Эта лекция посвящена основам кодирования на Паскале. Рассмотрены такие понятия, как Типы данных, Переменные, Константы, Комментарии, Значения, Выражения, Ключевые слова и так далее. Для закрепления материала приводятся подробные практические примеры по темам лекции.

      Цель лекции

      Знакомство с типами данных. Применение переменных, констант, комментариев.

      Типы данных

      Наверное, вы понимаете, что умение пользоваться компонентами — это еще не программирование ? Разработка пользовательского интерфейса — настройка формы, размещение на ней компонентов, организация меню , придание всему этому привлекательного вида и удобства использования — всё это, скорее, дизайн . Программирование — это знание языка, умение писать исходный код. Этим мы сегодня и займемся.

      Любые данные, которыми приходится оперировать программисту, имеют свой тип. Паскаль , который лежит в основе многих языков и сред разработки, в том числе и в основе Lazarus, отличается более строгими правилами использования данных различного типа. В частности, в Паскале любую переменную любого типа нужно предварительно объявить — указать имя переменной и ее тип, присвоить начальные значения (во многих других языках переменная объявляется прямо там, где она потребовалась, а в некоторых языках обходятся и вовсе без объявления и указания типа). Всё это приучает программиста к более качественному стилю программирования, делает программу более читаемой и понятной компилятору.

      В Паскале существует всего несколько стандартных типов, с которыми может работать программист:

      • Целые числа (числа без запятой: 5; -12; 0)
      • Вещественные числа (числа с запятой: 5,3; -3,14; 0,0)
      • Символы (отдельные буквы или другие символы: «Б», «z», «, «/»)
      • Строки (группы символов: «Это строка», «This is a text»)
      • Логический тип (может принимать значение либо Ложь — False , либо Истина — True )

      Lazarus основан на Object Pascal , который имеет множество дополнительных типов данных. Например, тип Дата-Время, коллекции строк, файлы, записи, классы и так далее. Со многими типами мы будем знакомиться в течении курса, в порядке возрастания сложности материала.

      Элементы программы

      Программа на языке Object Pascal может содержать следующие стандартные элементы:

      • Служебные (зарезервированные) слова
      • Идентификаторы
      • Типы
      • Переменные
      • Константы
      • Комментарии
      • Метки
      • Подпрограммы

      Служебные (зарезервированные) слова — это такие слова, которые являются частью языка и применяются для обозначения различных инструкций или элементов программы. Примеры служебных слов: as , class , if , for , var , array , unit , interface , uses .

      Служебные слова в Редакторе кода всегда выделяются жирным шрифтом. Программист не может использовать служебные слова в качестве идентификаторов: для обозначения переменных, констант, записей, пользовательских констант и т.п.

      Идентификаторы — это слова (имена), которыми программист обозначает любой другой элемент языка , кроме служебных слов, комментариев и собственно, идентификаторов. Например, когда мы даем имя переменной или константе, мы идентифицируем ее.

      Правило. Для идентификаторов разрешено использовать только символы латинского алфавита, цифры и знак подчеркивания. Причем первым символом идентификатора не может быть цифра. Строчные и заглавные символы не различаются, то есть myvar, MyVar и MYVAR — это один и тот же идентификатор.

      Примеры правильных идентификаторов:

      • MyVar
      • _perem
      • a2
      • MinimalnayaZarplata

      Примеры неправильных идентификаторов:

      • Зарплата (не латинские символы)
      • 2a (первый символ — цифра)
      • My perem (в идентификаторе неразрешенный символ — пробел)

      Типы — это специальные конструкции языка, указывающие компилятору, сколько памяти нужно зарезервировать для объявляемого элемента, например, переменной, массива, константы . Типами могут быть стандартные типы Паскаля, расширенные типы Объектного Паскаля или типы данных, объявленные пользователем. Мы будем знакомиться с разными типами данных на протяжении всего курса.

      Примеры типов: integer ( целое число ), real (число с запятой), string (строка) и т.п.

      Переменные

      Переменные являются элементом языка, который используется повсеместно. Нам неоднократно придется использовать переменные различных типов, различного назначения, различной области видимости. Поэтому данный раздел стоит рассмотреть подробней.

      Все данные, с которыми работает программа , располагаются в ОЗУ ( Оперативное Запоминающее Устройство , Оперативная память ) компьютера. Когда пользователь загружает программу, то в оперативную память считываются все инструкции программы и данные, которые в ней используются. Данные располагаются в памяти по различным адресам, которые фактически, представляют собой цифры.

      Читайте также:
      Работа в программе ворд подробная инструкция с картинками

      Так, первый байт памяти располагается под номером 1, второй под номером два и т.д. Однако не все данные занимают только один байт , есть и двухбайтовые, и четырехбайтовые данные, и даже больше. Именно поэтому так важно указывать тип данных — компилятор должен знать, сколько байт в памяти будет занимать ваш элемент, сколько места ему нужно выделить. Допустим, нам нужен некий элемент данных в 2 байта, и компьютер поместит его в ОЗУ по адресу, например, 1000000. Значит, когда потребуется узнать содержимое этого элемента, компьютер должен обратиться к ячейке памяти под номером 1000000, и считать оттуда два байта.

      В процессе работы программы эти данные могут меняться. Поэтому нам нужен некий контейнер , ящик определенного размера, где мы будем хранить данные. Эти данные будут меняться, а адрес ящика в памяти останется неизменным, пока работает наша программа . Такой ящик и называется переменной — элементом, чьи данные могут меняться. Итак,

      Переменная — это ячейка оперативной памяти, которая занимает соответствующее её типу количество байт. Данные в этой ячейке могут меняться, а адрес размещения в ОЗУ остается неизменным, пока работает программа.

      Чтобы программист не мучался с адресацией этих ячеек, в Паскале переменным присваивается имя — идентификатор. Когда мы объявляем переменную с определенным именем, компьютер запоминает это имя и ассоциирует его с реальным адресом в памяти, и количеством занимаемых переменной байт . А когда мы считываем данные переменной MyPerem , то компьютер сам находит нужный участок памяти и считывает оттуда нужное количество байт .

      Переменные объявляются в разделе var (англ. variable — переменная ). Объявление имеет следующий синтаксис (конструкцию):

      var Имя_перем_1: Тип_1; Имя_перем_2: Тип_2; … Имя_перем_n: Тип_n;

      То есть, в объявлении мы указываем имя создаваемой переменной, затем символ «двоеточие», а затем тип данных этой переменной. Если же нам нужно объявить несколько переменных одного типа, то мы можем перечислить их в одном операторе через запятую:

      var перем_1, перем_2,… перем_n: Тип;

      Объявление переменных в разных строках — это не правило языка, всё описание можно уместить и на одной строке:

      var перем_1: Тип_1; перем_2: Тип_2;

      Но такой код будет сложно читать, он труден для восприятия. Поэтому предыдущие примеры все же предпочтительней, когда каждый оператор описывается на своей строке, программа становится более «читабельной».

      Совет. Давайте переменным и другим элементам и конструкциям, которые вы описываете, осмысленные имена, а не просто непонятные наборы символов!

      Например, если мы хотим хранить в переменной минимальную заработную плату, то разумно назвать такую переменную MinZarPlat , для переменной с вашим именем — MyName или MoeImya — зависит от вашей фантазии, лишь бы вам самим было понятно, для чего вы вообще создавали эту переменную. Ведь это только поначалу вы будете помнить, что за переменные вы используете. А если вы откроете свой проект через год? Или его откроет ваш друг или коллега? Что хранится в переменной a ? Для чего создана переменная d3 ? Такие непонятные идентификаторы затрудняют восприятие программы и категорически не рекомендуются к использованию.

      Исключение могут составить переменные, которые обычно создаются в качестве счетчиков для циклов, например, или для каких-то коэффициентов. Такие переменные традиционно называют i , k , l (или др. символами английского языка).

      Давайте попробуем использовать переменные на практике. Откроем второй проект из второй лекции, тот, где пользователь вписывает свое имя, а программа выводит ему приветствие. Если вы следовали моим рекомендациям, у вас этот проект должен храниться по адресу:

      C:Education2-02

      Загрузите файл проекта Hello.lpi — это приведет к загрузке Lazarus и открытию в нем данного проекта. На переднем плане должен оказаться Редактор кода (если это не так, нажмите , чтобы переключиться с формы на код). Вы можете сразу заметить, что одна переменная у нас уже объявлена:

      Переменная fMain


      Рис. 4.1. Переменная fMain

      Вот ведь любопытно: у нас есть форма fMain, да еще и переменная с таким же именем! Дело в том, что компилятор FPC рассматривает нашу форму, как переменную. Обращение к этой переменной — это обращение к самой форме.

      Теперь опустим курсор до обработки события нажатия на кнопку Button1 и немного изменим код этого события:

      Новый код события OnClick кнопки Button1


      Рис. 4.2. Новый код события OnClick кнопки Button1

      В дальнейшем, чтобы не загромождать лекции излишними иллюстрациями, я буду указывать исходный код простым текстом с наклонным шрифтом, например, так:

      procedure TfMain.Button1Click(Sender: TObject); var MyName: String; begin MyName:= ‘Привет, ‘ + Edit1.Text + ‘!’; ShowMessage(MyName); MyName:= ‘Рады вас видеть, ‘ + Edit1.Text + ‘!’; ShowMessage(MyName); end;

      Как видите, здесь мы использовали переменную MyName с типом String (строка). Мы дважды присваивали ей разные значения, а затем считывали их, чтобы вывести в сообщении. Где именно нужно объявлять переменные, мы поговорим в «Числа» (Подпрограммы), там же обсудим такое важное понятие, как область видимости переменной. Пока лишь учтите, что при использовании событий, переменные нужно объявлять до служебного слова begin , а использовать саму переменную нужно после этого служебного слова.

      Источник: intuit.ru

      Рейтинг
      ( Пока оценок нет )
      Загрузка ...
      EFT-Soft.ru