Целые и вещественные типы данных в паскале. Типы данных в паскале

К порядковым типам относятся (см. рис.4.1) целые, логический, символьный, перечисляемый и тип-диапазон. К любому из них применима функция ORD(X), которая возвращает порядковый номер значения выражения X. Для целых типов функция ORD(X) возвращает само значение X, т.е. ORD(X) = X для X, принадлежащего любому шелому типу. Применение ORD(X) к логическому, символьному и перечисляемому типам дает положительное целое число в диапазоне от 0 до 1 (логический тип), от 0 до 155 (символьный), от 0 до 65535 (перечисляемый). Тип-диапазон сохраняет все свойства базового порядкового типа, поэтому результат применения к нему функции ORD(X) зависит от свойств этого типа.

К порядковым типам можно также применять функции:

PRED (X) - возвращает предыдущее значение порядкового типа (значение, которое соответствует порядковому номеру ORD(X)- 1), т.е.

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - возвращает следующее значение порядкового типа, которое соответствует порядковому номеру ORD(X) +1, т.е.

ORD(SUCC(X)) = ORD(X) + 1.

Например, если в программе определена переменная

то функция PRED(C) вернет значение "4", а функция SUCC(C) - значение "6".

Если представить себе любой порядковый тип как упорядоченное множество значий, возрастающих слева направо и занимающих на числовой оси некоторый отрезок, то функция PRED(X) не определена для левого, a SUCC(X) - для правого конца этого отрезка.

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

Таблица 4.1

При использовании процедур и функций с целочисленными параметрами следует руководствоваться «вложенностью» типов, т.е. везде, где может использоваться WORD, допускается использование BYTE (но не наоборот), в LONGINT «входит» INTEGER, который, в свою очередь, включает в себя SHORTINT.

Перечень процедур и функций, применимых к целочисленным типам, приведен в табл.4.2. Буквами b, s, w, i, l обозначены выражения соответственно типа BYTE, SHORTINT, WORD, INTEGER и LONGINT, x - выражение любого из этих типов; буквы vb, vs, vw, vi, vl, vx обозначают переменные соответствующих типов. В квадратных скобках указывается необязательный параметр.

Таблица 4.2

Стандартные процедуры и функции, применимые к целым типам
Обращение Тип результата Действие
abs (x) x Возвращает модуль х
chr(b) Char Возвращает символ по его коду
dec (vx[, i]) - Уменьшает значение vx на i, а при отсутствии i -на 1
inc(vx[, i]) - Увеличивает значение vx на i, а при отсутствии i - на 1
Hi(i) Byte Возвращает старший байт аргумента
Hi(w) To же То же
Lo(i) " Возвращает младший байт аргумента
Lo (w) " То же
odd(l) Boolean Возвращает True, если аргумент - нечетное число
Random (w) Как у параметра Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0...(w-l)
sgr (x) X Возвращает квадрат аргумента
swap (i) Integer Меняет местами байты в слове
swap (w) Word

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

а:= 32767; {Максимально возможное значение типа INTEGER}

х:= а + 2; {Переполнение при вычислении этого выражения!}

у:= LongInt(а)+2; {Переполнения нет после приведения переменной к более мощному типу}

WriteLn(x:10:0, у:10:0)

В результате прогона программы получим

Логический тип . Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Для них справедливы правила:

False < True;

succ(False)= True;

pred(True) = False.

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

for 1:= False to True do ....

Символьный тип. Значением символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD.

Для кодировки используется код ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией). Это 7-битный код, т.е. с его помощью можно закодировать лишь 128 символов в диапазоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в диапазоне от 0 до 255. Первая половина символов ПК с кодами 0...127 соответствует стандарту ASCII (табл. 4.3). Вторая половина символов с кодами 128...255 не ограничена жесткими рамками стандарта и может меняться на ПК разных типов (в прил.2 приведены некоторые распространенные варианты кодировки этих символов).

Таблица 4.3

Кодировка символов в соответствии со стандартом ASCII
Код Символ Код Символ Код Символ Код Символ
NUL BL ® "
ЗОН ! A a
STX " В b
ЕТХ # С с
EOT $ D d
ENQ % E e
АСК & F f
BEL " G g
BS ( H h
НТ ) I i
LF * J j
VT + k k
FF , L i
CR - M m
SO . N n
SI / О
DEL p P
DC1 Q q
DC2 R r
DC3 S s
DC4 T t
NAK U u
SYN V V
ETB w w
CAN X X
EM У У
SUB : z z
ESC / [ {
FS < \ l
GS = ] }
RS > ^ ~
US ? - n

Символы с кодами 0...31 относятся к служебным кодам. Если эти коды используются в символьном тексте программы, они считаются пробелами. При использовании их в операциях ввода-вывода они могут иметь следующее самостоятельное значение:

Символ Код Значение
BEL Звонок; вывод на экран этого символа сопровождается звуковым сигналом
НТ Горизонтальная табуляция; при выводе на экран смещает курсор в позицию, кратную 8, плюс 1 (9, 17, 25 и т.д.)
LF Перевод строки; при выводе его на экран все последующие символы будут выводиться, начиная с той же позиции, но на следующей строке
VT Вертикальная табуляция; при выводе на экран заменяется специальным знаком
FF Прогон страницы; при выводе на принтер формирует страницу, при выводе на экран заменяется специальным знаком
CR Возврат каретки; вводится нажатием на клавишу Enter (при вводе с помощью READ или READLN означает команду «Ввод» и в буфер ввода не помещается; при выводе означает команду «Продолжить вывод с начала текущей строки»)
SUB Конец файла; вводится с клавиатуры нажатием Ctrl-Z; при выводе заменяется специальным знаком
SSC Конец работы; вводится с клавиатуры нажатием на клавишу ESC; при выводе заменяется специальным знаком

К типу CHAR применимы операции отношения, а также встроенные функции: СНR(В) - функция типа CHAR; преобразует выражение В типа BYTE в символ и возвращает его своим значением;

UPCASE(CH) - функция типа CHAR; возвращает прописную букву, если СН -строчная латинская буква, в противном случае возвращает сам символ СН, например:

cl:= UpCase("s") ;

c2:= UpCase ("Ф") ;

WriteLn(cl," ",c2)

Так как функция UPCASE не обрабатывает кириллицу, в результате прогона этой

программы на экран будет выдано

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

colors =(red, white, blue);

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

ТипМесяц=(янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек);

месяц: ТипМесяц;

if месяц = авг then WriteLn("Хорошо бы поехать к морю!");

был бы, согласитесь, очень наглядным. Увы! В Турбо Паскале нельзя использовать кириллицу в идентификаторах, поэтому мы вынуждены писать так:

TypeMonth=(jan,feb,mar,may,jun,jul,aug,sep,oct,nov,dec);

month: TypeMonth;

if month = aug then WriteLn("Хорошо бы поехать к морю!");

Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т.д. Максимальная мощность перечисляемого типа составляет 65536 значений, поэтому фактически перечисляемый тип задает некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями О, 1 и т.д.

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

colors = (black, red, white);

ordenal= (one, two, three);

days = (monday, tuesday, Wednesday);

С точки зрения мощности и внутреннего представления все три типа эквивалентны:

ord(black)=0, ..., ord(white)=2,

ord(one)=0, ...ord(three)=2,

ord(monday)=0, ...ord(Wednesday)=2.

Однако, если определены переменные

col:colors; num:ordenal;

то допустимы операторы

num:= succ(two);

day:= pred(tuesday);

но недопустимы

Как уже упоминалось, между значениями перечисляемого типа и множеством целых чисел существует однозначное соответствие, задаваемое функцией ORD(X). В Турбо Паскале допускается и обратное преобразование: любое выражение типа WORD можно преобразовать в значение перечисляемого типа, если только значение целочисленного выражения не превышает мощное1™ перечисляемого типа. Такое преобразование достигается применением автоматически объявляемой функции с именем перечисляемого типа (см. п. 4.4). Например, для рассмотренного выше объявления типов эквивалентны следующие присваивания:

col:= colors(0);

Разумеется, присваивание

будет недопустимым.

Переменные любого перечисляемого типа можно объявлять без предварительного описания этого типа, например:

col: (black, white, green);

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

<мин.знач.>..<макс.знач.>

Здесь <мин.знач. > - минимальное значение типа-диапазона;

<макс.знач.> - максимальное его значение.

Например:

digit = "0".."9";

Тип-диапазон необязательно описывать в разделе TYPE, а можно указывать непосредственно при объявлении переменной, например:

Ichr: "A".."Z";.

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

  • два символа «..» рассматриваются как один символ, поэтому между ними недопустимы пробелы;
  • левая граница диапазона не должна превышать его правую границу. Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с его меньшей мощностью. В частности, если определена переменная

days = (mo,tu,we,th,fr,sa,su);

WeekEnd = sa .. su;

то ORD(W) вернет значение 5 , в то время как PRED(W) приведет к ошибке.

В стандартную библиотеку Турбо Паскаля включены две функции, поддерживающие работу с типами-диапазонами:

НIGН(Х) - возвращает максимальное значение типа-диапазона, к которому принадлежит переменная X;

LOW(X) -возвращает минимальное значение типа-диапазона.

Следующая короткая программа выведет на экран строку

WriteLn(Low(k),"..",High(k))

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

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

Математически это записывается так:

(-1) s × M × B E , где s - знак, B-основание, E - порядок, а M - мантисса.

Основание определяет систему счисления разрядов. Математически доказано, что числа с плавающей запятой с базой B=2 (двоичное представление) наиболее устойчивы к ошибкам округления, поэтому на практике встречаются только базы 2 и, реже, 10. Для дальнейшего изложения будем всегда полагать B=2, и формула числа с плавающей запятой будет иметь вид:

(-1) s × M × 2 E

Что такое мантисса и порядок? Мантисса – это целое число фиксированной длины, которое представляет старшие разряды действительного числа. Допустим наша мантисса состоит из трех бит (|M|=3). Возьмем, например, число «5», которое в двоичной системе будет равно 101 2 . Старший бит соответствует 2 2 =4, средний (который у нас равен нулю) 2 1 =2, а младший 2 0 =1. Порядок – это степень базы (двойки) старшего разряда. В нашем случае E=2. Такие числа удобно записывать в так называемом «научном» стандартном виде, например «1.01e+2». Сразу видно, что мантисса состоит из трех знаков, а порядок равен двум.

Допустим мы хотим получить дробное число, используя те же 3 бита мантиссы. Мы можем это сделать, если возьмем, скажем, E=1. Тогда наше число будет равно

1.01e+1 = 1×2 1 +0×2 0 +1×2 -1 =2+0,5=2,5

Очевидно, что таким образом одно и то же число можно представить по-разному. Рассмотрим пример с длиной мантиссы |M|=4. Число «2» можно представить в следующем виде:

2 = 10 (в двоичной системе) = 1.000e+1 = 0.100e+2 = 0.010e+3.

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

Это экономит один бит (так как неявную единицу не нужно хранить в памяти) и обеспечивает уникальность представления числа. В нашем примере «2» имеет единственное представление («1.000e+1»), а мантисса хранится в памяти как «000», т.к. старшая единица подразумевается неявно. Но в нормализованном представлении чисел возникает новая проблема - в такой форме невозможно представить ноль.

  • Анализ данных с помощью команд Подбор параметра и Поиск решения
  • Анализ и интерпретация данных экспериментально-психологического исследования.
  • Анализ исходных данных. Технические нормативы городской дороги.
  • АНАЛИЗ ПОЛУЧЕННЫХ ДАННЫХ. ПРИНЯТИЕ РЕШЕНИЯ О ДОСТАТОЧНОСТИ ИЛИ НЕДОСТАТОЧНОСТИ ХАРАКТЕРИСТИК ВОДОСНАБЖЕНИЯ ДЛЯ НУЖД СИСТЕМЫ ПОЛИВА.
  • Аппаратура линии связи: аппаратура передачи данных, оконечное оборудование, промежуточная аппаратура.

  • В любой программе нужно определить вид и тип величин, которые будут использоваться при решении задачи. По виду простые величины (в программировании они все называются данными) делятся на константы и переменные.

    Константы – это данные, значения которых в процессе выполнения программы не могут изменяться. Вводятся в блоке const.

    В общем виде описание простой нетипизированной константы делается так:

    Const имя_константы = выражение;

    Типизированные константы описываются в виде:

    Const имя_константы: тип = выражение;

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

    · числа или набор символов в апострофах;

    · математические операции;

    · операции отношения и логические операции;

    · функции abs(x), round(x),trunc(x);

    · функции chr(x), ord(x), pred(x), succ(x) и другие.

    Формат описания констант:

    идентификатор=значение;

    1. Целочисленные – определяются посредством чисел, записанных в десятичном или шестнадцатеричном формате, не содержащих десятичной точки.

    2. Вещественные – определяются посредством чисел, записанных в десятичном формате данных.

    3. Символьные – это любой символ персонального компьютера, заключенный в апострофы.

    4. Строковые – определяются последовательностью произвольных символов, заключенных в апострофы.

    5. Логические – это либо False, либо True.

    Тип константы не указывается, но определяется автоматически при компиляции: значения выражений сразу вычисляются, а в последующем только подставляются вместо имен.

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

    Имя переменной – должно начинаться обязательно с буквы, не может содержать пробелы, и может содержать только:

    · буквы латинского алфавита;

    · знак подчеркивания.

    Примеры: A, A_1, AА, i, j, x, y и т.п. Неверные имена: My 1, 1A. Длина имени переменной может быть до 126 символов, поэтому старайтесь подбирать осмысленные имена переменных. Однако, компилятор различает в именах первые 63 символов. Зато он не различает строчные и прописные буквы, как в именах переменных, так и в написании служебных идентификаторов.

    Тип переменной – должен быть обязательно определён в блоке описания переменных VAR. Значением переменной является константа того же типа.

    Каждая программа работает с данными. Данные – это в широком смысле слова объекты, которые обрабатывает программа. Тип данного – это его характеристика. От типа зависит:

    · в каком виде будет храниться это данное,

    · сколько ячеек памяти на его хранение будет отведено,

    · какое минимальное и максимальное значение оно может принимать,

    · какие операции с ним можно выполнять.

    Некоторые простые типы данных Pascal:

    1. Целые типы (ShortInt, Integer, LongInt, Byte, Word).

    2. Вещественные типы (Real, Single, Double, Extended, Comp).

    3. Логический (Boolean).

    4. Символьный (Char).

    5. Строковые типы (String, String [n]).

    9. Безусловные операторы в Паскале. Описание и использование.

    Вид оператора

    goto <метка>;

    Назначение – передача управления в программе на оператор, помеченный меткой <метка>. Меткой может выступать имя (написанное по правилам для имен языка) или целое число без знака, описанное в операторе описания метокLabel, и стоящее перед помеченным оператором, но только в одном месте программы. Метка отделяется от оператора символом «:».Переход на метку может встречаться в блоке несколько раз, но сама метка - только один раз. Если на какую-то метку нет передачи управления, ошибки не будет.

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

    Отметим, что следующий за goto оператор должен быть также помечен другой меткой, (если goto не последний в группе операторов). В противном случае, на следующий заgoto оператор никак не попасть.

    10. Операторы ветвления в Паскале. Описание и использование.

    К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относятся

    Т.е. эти операторы позволяют изменить естественный порядок выполнения операторов программы.

    if <условие> then < оператор 1 >

    else <оператор 2> ;

    if a>=b then Max:=a else Max:=b;

    В операторе if по обеим ветвям (then и else) может выполняться только один оператор!

    Пример задачи на операторы ветвления в паскале. Ввести два целых числа и вывести на экран наибольшее из них.

    Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.

    Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

    var a, b, max: integer;

    writeln("Введите два целых числа");

    if a > b then max:=a else max:=b;

    writeln ("Наибольшее число ", max);

    Сложные условия

    Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических

    операций:

    Not – НЕ (отрицание, инверсия)

    And – И (логическое умножение, конъюнкция,

    одновременное выполнение условий)

    Or – ИЛИ (логическое сложение, дизъюнкция,

    выполнение хотя бы одного из условий)

    Xor – исключающее ИЛИ (выполнение только

    одного из двух условий, но не обоих)

    Простые условия (отношения)

    < <= > >= = <>

    Порядок выполнения (приоритет = старшинство)

    Выражения в скобках

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

    Особенность – каждое из простых условий обязательно заключать в скобки.

    Оператор выбора case

    Оператор case позволяет сделать выбор между несколькими вариантами.

    Оператор варианта состоит

    Øиз выражения, называемого селектором,

    Øи списка операторов, каждый из которых отмечен константой того же типа, что и селектор.

    Селектор должен относиться только к порядковому типу данных, но не к типу longint.

    Селектор может быть переменной или выражением.

    Список констант может задаваться как явным перечислением, так и интервалом или их объединением. Повторение констант не

    допускается.

    Тип переключателя и типы всех констант должны быть совместимыми.

    Case < выражение {селектор}> of

    <список констант 1> : < оператор 1>;

    < список констант K> : < оператор K>;

    Выполнение оператора case происходит следующим образом:

    1)вычисляется значение селектора;

    2)полученный результат проверяется на принадлежность к тому или иному списку констант;

    3)если такой список найден, то дальнейшие проверки уже не производятся, а выполняется оператор, соответствующий

    выбранной ветви, после чего управление передается оператору, следующему за ключевым словом end, которое закрывает всю

    конструкцию case;

    4)если подходящего списка констант нет, то выполняется оператор, стоящий за ключевым словом else; если else-ветви нет,

    то не выполняется ничего.

    В операторе ветвления case по всем ветвям может выполняться только один оператор!

    При необходимости выполнения нескольких требуется использовать операторные скобки begin-end.

    case Index mod 4 of

    1: x:= y*y – 2*y;

    11.Оператор варианта (выбора) в Паскале. Описание и использование.

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

    Формат записи:

    Case – выбор, вариант;

    S – селектор, выражение порядкового типа;

    Ki – константы выбора, константа, тип которой совпадает с типом селектора;

    OPi – любой оператор в том числе пустой;

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

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

    Структурная схема оператора выбора.

    Структуру оператора выбора можно реализовать с помощью вложенных условных операторов, но это ухудшает наглядность программы. Рекомендуется не более 2-3 уровней вложений.

    12. Виды операторов цикла в Паскале, их назначение.

    5. Алгоритмические конструкции циклов. Виды циклов.

    Существует три типа циклических алгоритмов: цикл с параметром (который называют арифметическим циклом), цикл с предусловием и цикл с постусловием (их называют итерационными).

    12.13 Арифметический цикл. В арифметическом цикле число его шагов (повторений) однозначно определяется правилом изменения параметра, которое задается с помощью начального (N) и конечного (К) значений параметра и шагом (h) его изменения. Т.е., на первом шаге цикла значение параметра равно N, на втором - N + h, на третьем - N + 2h и т.д. На последнем шаге цикла значение параметра не больше К, но такое, что дальнейшее его изменение приведет к значению, большему, чем К.

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

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

    FOR <имя счетчика цикла> = <начальное значение> ТО <конечное значение> DO <оператор>;

    FOR, TO, DO - зарезервированные слова (англ.: для, до, выполнить);

    <счетчик (параметр) цикла> - переменная типа INTEGER, которая изменяется на отрезке от <начального значения>, увеличиваясь на единицу в конце каждого шага цикла;

    <оператор> - любой (чаще составной) оператор.

    Существует другая форма этого оператора:

    FOR <имя счетчика цикла>:= <начальное значение> DOWNTO <конечное значение> DO <оператор> :

    Замена ТО на DOWNTO (англ.: вниз до) означает, что шаг изменения параметра цикла равен - 1 , т. е. происходит пошаговое уменьшение счетчика на единицу.

    12.14 Цикл с предусловием. Количество шагов цикла заранее не определено и зависит от входных данных задачи. В данной циклической структуре сначала проверяется значение условного выражения (условие) перед выполнением очередного шага цикла. Если значение условного выражения истинно, исполняется тело цикла. После чего управление вновь передается проверке условия и т.д. Эти действия повторяются до тех пор, пока условное выражение не примет значение ЛОЖЬ. При первом же несоблюдении условия цикл завершается.

    Этот наиболее часто используемый оператор повторения имеет вид:

    WHILE <условие> DO <оператор>;

    WHILE, DO - резервированные слова (англ.: пока, делать);

    <условие> - выражение логического типа;

    <оператор> - произвольный (возможно составной) оператор.

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

    Циклы с предусловием используются тогда, когда выполнение цикла связано с некоторым логическим условием. Оператор цикла с предусловием имеет две части: условие выполнения цикла и тело цикла.

    12.15 Цикл с постусловием (итерационный цикл). Как и в цикле с предусловием, в циклической конструкции с постусловием заранее не определено число повторений тела цикла, оно зависит от входных данных задачи. В отличие от цикла с предусловием, тело цикла с постусловием всегда будет выполнено хотя бы один раз, после чего проверяется условие. В этой конструкции тело цикла будет выполняться до тех пор, пока значение условного выражения ложно. Как только оно становится истинным, выполнение команды прекращается.

    Этот оператор имеет вид:

    REPEAT <тело цикла> UNTIL <условие>:

    REPEAT, UNTIL - резервированные слова (англ.: повторять, пока не);

    <условие> - выражение логического типа, если его значение истинно, то происходит выход из цикла.

    Следует отметить, что в данной конструкции последовательность операторов, определяющих тело цикла, не заключается в операторные скобки BEGIN ... END, поскольку ими служит пара REPEAT ... UNTIL.

    Циклы с постусловием похожи на циклы с предусловием, но в них условие находится после тела цикла.

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

    Один из операторов тела цикла должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз.

    Если условие истинно, то происходит выход из цикла, иначе операторы цикла повторяются.

    16. Массив - это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Количество элементов в массиве всегда конечно. В общем случае массив - это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве. В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк, массивов и т.д.Элементами массива могут быть данные любого типа, включая структурированные.Тип элементов массива называется базовым. Особенностью языка Паскаль является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Элементы, образующие массив, упорядочены таким образом, что каждому элементу соответствует совокупность номеров (индексов), определяющих его местоположение в общей последовательности. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индексы представляют собой выражения любого скалярного типа (чаще целого), кроме вещественного. Тип индекса определяет границы изменения значений индекса. Для описания массива предназначено словосочетание array of (массив из).

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

    17. Одномерный массив – это фиксированное количество элементов одного типа, объединенных одним именем, причем каждый элемент имеет свой уникальный номер, и номера элементов идут подряд.

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

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

    Имя типа = Array [тип индекса (ов)] Of тип элементов;

    Имя переменной: имя типа;

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

    Var Имя переменной: array [тип индекса (ов)] Of тип элементов;

    Array – служебное слово (в переводе с английского означает «массив»);

    Of – служебное слово (в переводе с английского означает «из»).

    Тип индекса – любой порядковый тип, кроме типов integer, longint.

    Тип же самих элементов может быть любым, кроме файлового типа.

    Количество элементов массива называется его размерностью. Несложно подсчитать, что при последнем способе описания множества индексов размерность массива равна: максимальное значение индекса – минимальное значение индекса + 1.

    Например:

    mas = array of real;

    Массив Х – одномерный, состоящий из двадцати элементов вещественного типа. Элементы массива хранятся в памяти компьютера последовательно друг за другом.

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

    Индексы элементов массива могут начинаться с любого целого числа, в том числе и отрицательного, например:

    Type bb = Array [-5..3] Of Boolean;

    Массивы данного типа будут содержать 9 логических переменных, пронумерованных от -5 до 3.

    18. Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.

    Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

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

    Описание двумерного массива Паскаля.

    Существует несколько способов объявления двумерного массива Паскаля.

    Мы уже умеем описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами. Рассмотрим следующее описание типов и переменных:

    Основные действия с двумерными массивами Паскаля

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

    matrix= array of integer;

    то в ходе выполнения программы можно присвоить матрице a значение матрицы b (a:= b). Все остальные действия выполняются поэлементно, при этом над элементами можно выполнять все допустимые операции, которые определены для типа данных элементов массива. Это означает, что если массив состоит из целых чисел, то над его элементами можно выполнять операции, определенные для целых чисел, если же массив состоит из символов, то к ним применимы операции, определенные для работы с символами.

    21.Технологии работы с текстовыми документами. Текстовые редакторы и процессоры: назначение и возможности.

    олее совершенные текстовые редакторы (например, Microsoft Word и OpenOffice.org Writer), которые называют иногда текстовыми процессорами, имеют широкий спектр возможностей по созданию документов (вставка списков и таблиц, средства проверки орфографии, сохранение исправлений и др.).

    Для подготовки к изданию книг, журналов и газет в процессе макетирования издания используются мощные программы обработки текста - настольные издательские системы (например, Adobe PageMaker, Microsoft Office Publisher).

    Для подготовки к публикации в Интернете Web-страниц и Web-сайтов используются специализированные приложения (например, Microsoft FrontPage).

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

    Редактирование - преобразование, обеспечивающее добавление, удаление, перемещение или исправление содержания документа. Редактирование документа обычно производится путем добавления, удаления или перемещения символов или фрагментов текста.

    Форматирование - это оформление текста. Кроме текстовых символов форматированный текст содержит специальные невидимые коды, которые сообщают программе, как надо его отображать на экране и печатать на принтере: какой шрифт использовать, каким должно быть начертание и размер символов, как оформляются абзацы и заголовки.

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

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

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

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

    Для электронных документов принято так называемое относительное форматирование. Автор документа не может заранее предсказать, на каком компьютере, с каким размером экрана документ будут просматривать. Более того, даже если бы размеры экранов и были известны заранее, все равно невозможно предсказать, каков будет размер окна, в котором читатель увидит документ. Поэтому электронные документы делают так, чтобы они подстраивались под текущий размер окна и форматировались «на лету».

    Автор электронного документа не знает также, какие шрифты имеются на компьютере будущего читателя, и потому не может жестко указать, каким шрифтом должны изображаться текст и заголовки. Но он может задать такое форматирование, при котором на любом компьютере заголовки будут выглядеть крупнее, чем текст.

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

    22.Основные структурные элементы текстового документа. Шрифты, стили, форматы.

    Форматирование шрифта (символов).

    Символы – это буквы, цифры, пробелы, знаки пунктуации, специальные символы. Символы можно форматировать (изменять их внешний вид). Среди основных свойств символов можно выделить следующие: шрифт, размер, начертание и цвет.

    Шрифт – это полный набор символов определенного начертания. Каждый шрифт имеет своё название, например Times New Roman, Arial, Comic Sans MS. Единицей измерения шрифта является пункт (1 пт = 0,367 мм). Размеры шрифтов можно изменять в больших пределах. Кроме нормального (обычного) начертания символов обычно применяют полужирное, курсивное, полужирное курсивное.

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

    В векторных шрифтах символы описываются математическими формулами и возможно произвольное их масштабирование. Среди векторных шрифтов наибольшее распространение получили шрифты типа TrueType.

    Можно также установить дополнительные параметры форматирования символов: подчеркивание символов различными типами линий, изменение вида символов (верхний и нижний индекс, зачеркнутый), изменение расстояний между символами.

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

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

    24. База данных - это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором свойств.

    Существует несколько различных типов баз данных: табличные (реляционные), иерархические и сетевые.

    Табличные базы данных.

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

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

    Главное достоинство таблиц - в их понятности. С табличной информацией мы имеем дело практически каждый день. Загляните, например, в свой дневник: расписание занятий там представлено в виде таблицы. Когда мы приходим на вокзал, смотрим расписание электричек. Какой вид оно имеет? Это таблица! А еще есть таблица футбольного чемпионата. И журнал учителя, куда он выставляет вам оценки, - тоже таблица.

    Кратко особенности реляционной базы данных можно сформулировать следующим образом:

    1.Данные хранятся в таблицах, состоящих из столбцов («атрибутов», «полей») и строк («записей»);

    2.На пересечении каждого столбца и строчки стоит в точности одно значение;

    3.У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип.

    4.Запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов.

    5.Строки в реляционной базе данных неупорядочены - упорядочивание производится в момент формирования ответа на запрос.

    6.Обычно информация в базах данных хранится не в одной таблице, а в нескольких взаимосвязанных.

    В реляционных БД строка таблицы называется записью , а столбец - полем . Каждое поле таблицы имеет имя.

    Поля - это различные характеристики (иногда говорят – атрибуты) объекта. Значения полей в одной строке относятся к одному объекту.

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

    С каждым полем связано еще одно очень важное свойство – тип поля . Тип поля определяет множество значений, которые может принимать данное поле в различных записях.

    В реляционных базах данных используются четыре основных типа поля:

    Числовой;

    Символьный;

    Логический.

    25. Системы управления базами данных и принципы работы с ними. Поиск, удаление и сортировка данных в БД. Условия поиска (логические выражения); порядок и ключи сортировки.

    Системы управления базами данных (СУБД).

    Для создания баз данных, а также выполнения операции поиска и сортировки данных предназначены специальные программы - системы управления базами данных (СУБД).

    Таким образом, необходимо различать собственно базы данных (БД) - упорядоченные наборы данных, и системы управления базами данных (СУБД) - программы, управляющие хранением и обработкой данных. Например, приложение Access, входящее в офисный пакет программ Microsoft Office, является СУБД, позволяющей пользователю создавать и обрабатывать табличные базы данных.

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

    Работа с СУБД начинается с создания структуры базы данных, т. е. с определения:

    количества столбцов;

    названий столбцов;

    типов столбцов (текст/число/дата);

    ширины столбцов.

    Основные функции СУБД:

    Управление данными во внешней памяти (на дисках);

    Управление данными в оперативной памяти;

    Журнализация изменений и восстановление базы данных после сбоев;

    Поддержание языков БД (язык определения данных, язык манипулирования данными).

    В командах СУБД условие выбора записывается в форме логического выражения.

    Логическое выражение, подобно математическому выражению, выполняется (вычисляется), но в результате получается не число, а логическое значение: истина (true) или ложь (false).

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

    Часто встречаются задачи, в которых используются не отдельные условия, а совокупность связанных между собой условий (отношений). Например, нужно выбрать учеников у которых вес больше 60 и рост меньше 168.

    Выражение, содержащие логические операции, будем называть сложным логическим выражением.

    Объединение двух (или нескольких) высказываний в одно с помощью союза «и» называется операцией логического умножения или конъюнкцией.

    В результате логического умножения (конъюнкции) получается истина, если истинны все логические выражения.

    Объединение двух (или нескольких) высказываний с по мощью союза «или» называется операцией логического сложения или дизъюнкцией.

    В результате логического сложения (дизъюнкции) получается истина, если истинно хотя бы одно логическое выражения.

    Присоединение частицы «не» к высказыванию называется операцией логического отрицания или инверсией.

    27. Электронные таблицы, назначение и основные функции.

    Электронная таблица - это программа обработки числовых данных, хранящая и обрабатывающая данные в прямоугольных таблицах.

    Электронная таблица состоит из столбцов и строк. Заголовки столбцов обозначаются буквами или сочетаниями букв (A, G, АВ и т. п.), заголовки строк - числами (1, 16, 278 и т. п.). Ячейка - место пересечения столбца и строки.

    Каждая ячейка таблицы имеет свой собственный адрес. Адрес ячейки электронной таблицы составляется из заголовка столбца и заголовка строки, например: А1, F123, R1. Ячейка, с которой производятся какие-то действия, выделяется рамкой и называется активной.

    Типы данных. Электронные таблицы позволяют работать с тремя основными типами данных: число, текст и формула.

    Числа в электронных таблицах Excel могут быть записаны в обычном числовом или экспоненциальном формате, например: 195,2 или 1,952Е + 02. По умолчанию числа выравниваются в ячейке по правому краю. Это объясняется тем, что при размещении чисел друг под другом (в столбце таблицы) удобно иметь выравнивание по разрядам (единицы под единицами, десятки под десятками и т. д.).

    Формула должна начинаться со знака равенства и может включать в себя числа, имена ячеек, функции (Математические, Статистические, Финансовые, Дата и время и т. д.) и знаки математических операций. Например, формула «=А1+B2» обеспечивает сложение чисел, хранящихся в ячейках А1 и B2, а формула «=А1*B» - умножение числа, хранящегося в ячейке А1, на 5. При вводе формулы в ячейке отображается не сама формула, а результат вычислений по этой формуле. При изменении исходных значений, входящих в формулу, результат пересчитывается немедленно.

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

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

    Если символ доллара стоит перед буквой (например: $A1), то координата столбца абсолютная, а строки - относительная. Если символ доллара стоит перед числом (например, А$1), то, наоборот, координата столбца относительная, а строки - абсолютная. Такие ссылки называются смешанными.

    Пусть, например, в ячейке С1 записана формула =A$1+$J31, которая при копировании в ячейку D2 приобретает вид =В$1+$B2. Относительные ссылки при копировании изменились, а абсолютные - нет.

    Сортировка и поиск данных. Электронные таблицы позволяют осуществлять сортировку данных. Данные в электронных таблицах сортируются по возрастанию или убыванию. При сортировке данные выстраивают - ся в определенном порядке. Можно проводить вложенные сортировки, т. е. сортировать данные по нескольким столбцам, при этом назначается последовательность сортировки столбцов.

    В электронных таблицах возможен поиск данных в соответствии с указанными условиями - фильтрами. Фильтры определяются с помощью условий поиска (больше, меньше, равно и т. д.) и значений (100, 10 и т. д.). Например, больше 100. В результате поиска будут найдены те ячейки, в которых содержатся данные, удовлетворяющие заданному фильтру.

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

    28. Технология обработки информации в электронных таблицах (ЭТ). Структура электронной таблицы.

    Электронная таблица - это программа обработки числовых данных, хранящая и обрабатывающая данные в прямоугольных таблицах. Электронная таблица состоит из столбцов и строк. Заголовки столбцов обозначаются буквами или сочетаниями букв (A, G, АВ и т. п.), заголовки строк - числами (1, 16, 278 и т. п.). Ячейка - место пересечения столбца и строки. Каждая ячейка таблицы имеет свой собственный адрес. Адрес ячейки электронной таблицы составляется из заголовка столбца и заголовка строки, например: Al, B5, E7. Ячейка, с которой производятся какие-то действия, выделяется рамкой и называется активной. Электронные таблицы, с которыми работает пользователь в приложении, называются рабочими листами. Можно вводить и изменять данные одновременно на нескольких рабочих листах, а также выполнять вычисления на основе данных из нескольких листов. Документы электронных таблиц могут включать несколько рабочих листов и называются рабочими книгами.

    29. Типы данных в электронных таблицах (ЭТ): числа, формулы, текст. Правила записи формул.

    Типы данных.

    Электронные таблицы позволяют работать с тремя основными типами данных: число, текст и формула.

    Числа в электронных таблицах Excel могут быть записаны в обычном числовом или экспоненциальном формате, например: 195,2 или 1.952Ё + 02. По умолчанию числа выравниваются в ячейке по правому краю. Это объясняется тем, что при размещении чисел друг под другом (в столбце таблицы) удобно иметь выравнивание по разрядам (единицы под единицами, десятки под десятками и т. д.).

    Текстом в электронных таблицах Excel является последовательность символов, состоящая из букв, цифр и пробелов, например запись «32 Мбайт» является текстовой. По умолчанию текст выравнивается в ячейке по левому краю. Это объясняется традиционным способом письма (слева направо).

    Формула должна начинаться со знака равенства и может включать в себя числа, Имена ячеек, функции (Математические, Статистические, Финансовые, Дата и время и т.д.) и знаки математических: операций. Например, формула «=А1+В2» обеспечивает сложение чисел, хранящихся в ячейках А1 и В2, а формула «=А1*5» - умножение числа, хранящегося в ячейке А1, на 5. При вводе формулы в ячейке отображается не сама формула, а результат вычислений по этой формуле. При изменении исходных значений, входящих в формулу, результат пересчитывается немедленно.

    Правила записи формул в электронных таблицах

    1. Формулы содержат числа, имена ячеек, знаки операций, круглые скобки, имена функций

    2. Арифметические операции и их знаки:

    Название операции Знак Комбинация клавиш

    сложение + {Shift + +=}или {+} на дополнительной клавиатуре

    вычитание – {-}

    умножение * {Shift + 8} или {*}на дополнительной клавиатуре

    деление / {Shift + | \} или {/}на дополнительной клавиатуре

    возведение в степень ^ {Shift + 6} на английском

    3. Формула пишется в строку, символы последовательно выстраиваются друг за другом, проставляются все знаки операций; используются круглые скобки.

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

    1. возведение в степень

    2. умножение, деление

    3. сложение, вычитание

    Операции одинакового старшинства выполняются в порядке их записи слева направо.

    5. Формулы можно вводить в режиме отображения расчетов, т.е. запись формулы в текущую ячейку пользователь начинает со знака = и в ячейке после нажатия клавиши Enter отображается результат вычисления по формуле.

    6. Формулы можно вводить в режиме отображения формул, т.е. пользователь в текущую ячейку записывает формулу без знака = и в ячейке после нажатия клавиши Enter отображается формула.

    30.Основные встроенные функции. Абсолютные и относительные ссылки в элект-ронных таблицах (ЭТ).

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

    Абсолютная ссылка в формуле используется для указания фиксированного адреса ячейки. При перемещении или копировании формулы абсолютные ссылки не изменяются. В абсолютных ссылках перед неизменяемым значением адреса ячейки ставится знак доллара (например, $А$1).

    Если символ доллара стоит перед буквой (например: $А1), то координата столбца абсолютная, а строки - относительная. Если символ доллара стоит перед числом (например, А$1), то, наоборот, координата столбца относительная, а строки - абсолютная. Такие ссылки называются смешанными. Пусть, например, в ячейке С1 записана формула =А$1+$В1, которая при копировании в ячейку D2 приобретает вид =В$1+$В2. Относительные ссылки при копировании изменились, а абсолютные - нет.

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

    Описание числовых типов данных (целые) Паскаля

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

    С целыми числовыми типами данных Паскаля можно выполнять следующие операции:

    • Арифметические:
      сложение(+);
      вычитание(-);
      умножение(*);
      остаток от деления (mod);
      возведение в степень;
      унарный плюс (+);
      унарный минус (-).
    • Операции отношения:
      отношение равенства (=);
      отношение неравенства (<>);
      отношение меньше (<);
      отношение больше (>);
      отношение не меньше (>=);
      отношение не больше (<=).

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

    Особое внимание следует уделить операции деления целых числовых типов данных. В Паскале допускается две операции деления, которые соответственно обозначаются "/" и div . Нужно знать, что результатом деления "/" является не целое, а вещественное число (это справедливо, даже если вы делите 8 на 2, т.е. 8/2=4.0). Деление div – это целочисленное деление , т.е. тип результата целый.

    Описание числовых типов данных (действительные) Паскаля

    К вещественному числовому типу данных относится подмножество вещественных чисел, которые могут быть представлены в так называемом формате с плавающей запятой и фиксированным числом цифр. С плавающей точкой каждый числовой тип данных представляется в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком. В общем виде числовой тип данных в форме с плавающей точкой может быть представлено так: X= {+|-}MP {+ | -} r , где M – мантисса числа; r – порядок числа (r – целое число); P – основание системы счисления. Например, для десятичного основания представление 2Е-1 (здесь Е – основание десятичной системы счисления) будет иметь вид: 2*10 -1 =0.2, а представление 1.234Е5 будет соответствовать: 1.234*10 5 =123400.0.

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

    При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.

    Над действительными числовыми типами данных можно выполнять следующие операции:

    • Арифметические:
      сложение (+);
      вычитание(-);
      умножение(*);
      деление(/);
      возведение в степень;
      унарный плюс (+);
      унарный минус (-).
    • Операции отношения:
      отношение неравенства (<>);
      отношение меньше (<);
      отношение больше (>);
      отношение не меньше (>=);
      отношение не больше (<=).

    Как видим, Паскаль характеризуется богатой гаммой вещественных типов, однако доступ к числовым типам данных single , double и extended возможен только при особых режимах компиляции. Эти числовые типы данных рассчитаны на аппаратную поддержку арифметики с плавающей точкой и для их эффективного использования в состав ПК должен входить математический сопроцессор.

    Особое положение в Паскале занимает числовой тип данных comp , который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, comp – это «большое» целое число со знаком, сохраняющее 19..20 значащих десятичных цифр. В то же время числовой тип данных comp в выражениях полностью совместим с другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д.

    О преобразовании числовых типов данных Паскаля

    В Паскале почти невозможны неявные (автоматические) преобразования числовых типов данных. Исключение сделано только для типа integer , который разрешается использовать в выражениях типа real . Например, если переменные описаны следующим образом:

    Var X: integer; Y: real;

    То оператор

    будет синтаксически правильным, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная, компилятор сделает преобразование числовых типов данных автоматически. Обратное же преобразование автоматически типа real в тип integer в Паскале невозможно. Вспомним, какое количество байт выделяется под переменные типа integer и real : под целочисленный тип данных integer выделяется 2 байта памяти, а под real – 6 байта. Для преобразования real в integer имеются две встроенные функции: round (x) округляет вещественное x до ближайшего целого, trunc (x) усекает вещественное число путем отбрасывания дробной части.

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

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

    Подразделение типов переменных

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

    Рассмотрим порядковые и вещественные типы. К порядковым относятся 5 целых типов, перечисляемый и тип-диапазон.

    Порядковые типы

    Существует 5 целых типов, различающихся длиной в байтах и диапазоном значений.

    Длина Byte и ShortInt - 1 байт. Различие между ними состоит в том, что Byte хранит только неотрицательные значения, а ShortInt позволяет хранить и отрицательные (от -128 до +127). Аналогично соотносятся друг с другом типы Word и Integer, с тем лишь различием, что их размер - 2 байта.

    Наконец, LongInt позволяет хранить и отрицательные, и положительные значения, используя 4 байта - в числовом измерении 16-й степени в обе стороны от нуля. Различные виды переменных в Паскале способствуют эффективному решению пользовательских задач, поскольку в каждом конкретном случае может требоваться как малый, так и большой диапазон значений, а также не исключено наличие ограничений по объему выделяемой памяти.

    Важно понимать, что нуль занимает столько же места в памяти, сколько и любое другое число. Таким образом, при формировании диапазона значений минимальное отрицательное число по модулю будет на единицу больше, чем положительное: например, от -128 до +127.

    Переменные, принадлежащие к могут принимать значение TRUE (истина) или FALSE (ложь) и требуют 1 байт памяти.

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

    Вещественные типы

    Среди типов переменных в Паскале выделяется несколько числовых с возможностью записи дробной части. Различие между типами Single, Real, Double и Extended сводится к диапазону принимаемых значений, количеству значащих цифр после запятой и размеру в байтах.

    В соответствии с порядком, представленным выше, переменная каждого типа будет занимать 4, 6, 8 или 10 байт.

    Массивы

    Структурированные типы данных являются сложными и позволяют объединять в рамках одной переменной ряд простых значений. Яркий пример представляет собой массив, который можно задать следующим образом:

    String=array of char;

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

    Диапазон индексов, записанный в позволяет обращаться к каждому конкретному элементу массива:

    В данном случае мы произвели чтение второго элемента созданного ранее массива Y.

    Частным случаем одномерного массива являются и строковые переменные в Паскале, ведь строка - это последовательность символов, т. е. элементов типа char.

    Записи

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

    type NTel = Record

    В первой строке слева указывается имя типа, а справа - служебное слово record. Во второй строке задано поле с именем, в третьей - номер телефона. Слово «end» говорит о том, что мы ввели все поля, которые хотели, и на этом процесс создания записи завершается.

    Наконец в последней строке мы задаём переменную One, имеющую тип NTel.

    Обращаться можно как к записи в целом, так и к отдельным её компонентам, например: one.NAME (т. е. имя_переменной.имя_поля_записи).

    Файлы

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

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

    ‘C:\Folder\File2.txt’

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

    Задать переменную файлового типа можно следующим образом:

    f1: file of integer;

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

    В заключение

    Без умения использовать различные типы переменных в Паскале пользователь не сможет реализовать даже простейшую задачу. Для того чтобы программа выполняла алгоритм без ошибок, требуется выучить как служебные слова, так и синтаксис, поскольку машина умеет «понимать» команды только в том случае, если они написаны единственно верным способом.

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

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

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

    В языке программирования Паскаль достаточно много типов данных. Кроме того, сам пользователь может определять свои типы.

    Тип переменной определяет, какие данные можно хранить в связанной с ней ячейке памяти.

    Переменные типа integer могут быть связаны только с целыми значениями обычно в диапазоне от -32768 до 32767. В Pascal есть другие целочисленные типы (byte, longint).

    Переменные типа real хранят вещественные (дробные) числа.

    Переменная булевского (логического) типа (boolean) может принимать только два значения - true (1, правда) или false (0, ложь).

    Символьный тип (char) может принимать значения из определенной упорядоченной последовательности символов.

    Интервальный тип определяется пользователем и формируется только из порядковых типов. Представляет собой подмножество значений в конкретном диапазоне.

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

    Все вышеописанное – это простые типы данных. Но бывают и сложные, структурированные, которые базируются на простых типах.

    Массив – это структура, занимающая в памяти единую область и состоящая из фиксированного числа компонентов одного типа.

    Строки представляет собой последовательность символов. Причем количество этих символов не может быть больше 255 включительно. Такое ограничение является характерной чертой Pascal.

    Запись – это структура, состоящая из фиксированного числа компонент, называемых полями. В разных полях записи данные могут иметь разный тип.

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

    Файлы для Pascal представляют собой последовательности однотипных данных, которые хранятся на устройствах внешней памяти (например, жестком диске).

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