Реализация вычислительных процедур в информатике кратко

Обновлено: 06.07.2024

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

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

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

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

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

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


В универсальных ЭВМ арифметико-логическое устройство (АЛУ) строится, как правило, на основе универсального сумма¬тора. Такое АЛУ выполняет лишь элементарные операции типа сложения, сдвига и некоторые другие. Поэтому для исполнения алгоритма на таком АЛУ необходима программа, состоящая из та¬ких операций.

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

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

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

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

Необходимым условием реализации вычислительного процесса на ЦВМ является получение результатов с достаточной для инженерных целей точностью, критерии оценки которой и численные показатели определяются технической постановкой задачи. [3]

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

Естественно, что при реализации вычислительных процессов на многопроцессорной ЭВМ возникают вопросы, требующие детального изучения. [5]

Условный оператор служит для реализации разветвляющегося вычислительного процесса . Необходимость в таких процессах возникает весьма часто. [6]

Неисправности, возникающие при работе аппаратуры, используемой для реализации вычислительного процесса , оказывают определенное влияние на характеристику надежности ПО. [7]

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

Предельная возможность алгоритма определяется в конечном счете загрузкой оперативной памяти ЭЦВМ, временем реализации вычислительного процесса и достижимой точностью вычисления. [11]

Устройство управления служит для синхронизации работы всех устройств ЭКВМ и выработки последовательности команд при реализации вычислительного процесса . [12]

Решая эту задачу, необходимо найти такое размещение файлов, назначенных для хранения в НМД, при котором количество накопителей, необходимых для реализации вычислительного процесса , было бы минимальным. При минимальном количестве накопителей необходимо минимизировать также количество используемых пакетов дисков. Примем одно допущение, которое способствует построению эффективного алгоритма решения данной задачи, но с которым, возможно, читатель не сразу согласится. Разрешим составлять такие размещения файлов, при которых некоторые файлы могут оказаться размещенными частично на одном пакете дисков, частично - на другом. Другими словами, допускается разбиение файла на части. Естественно, такое допущение будет реализовано только тогда, когда это приводит к выбору меньшего количества накопителей или пакетов. Представляется, что данное допущение не противоречит физическому смыслу решаемой задачи, так как здесь рассматриваются только те решения, которые принимаются при проектировании АСУ. При этом те файлы, которые заданы для размещения - это предполагаемые файлы. [14]

Функциональное проектирование включает в себя анализ технического задания ( ТЗ) и на его основе выбор с системных позиций методики построения и путей реализации вычислительного процесса в ЭВА; связано с анализом и синтезом блоков ЭВА; заключается в разработке функциональных и принципиальных схем. Здесь определяют принципы функционирования и важнейшие параметры и характеристики ЭВА. [15]

Аннотация: Рассматриваются проблемы реализации вычислительных процедур на ЭВМ. Показаны особенности машинной арифметики, приведены примеры, демонстрирующие особенности вычислительных процедур.

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

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

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

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

x^2-2=0.
( 4.1)

В тоже время любой (уже не любой, но хороший) школьник знает, что уравнение 4.1 имеет два решения:

x_<1,2></p>
<p>=\pm\sqrt.

\sqrt<2></p>
<p>Однако еще Пифагор знал, что длина диагонали квадрата не соизмерима со стороной, т.е. число
не является рациональным и не может быть записана в конечном виде. Но так ли это? Что значить "быть выраженным в конечном виде"? Для нас это эквивалентно конструктивности объекта. Мы будем предполагать, что целые числа, операция сложения целых чисел, а также процедура сравнения двух целых чисел являются конструктивными. Далее конструктивный объект - это такой объект , который с любой наперед заданной точностью можно выразить с помощью конечного числа операций сложения (вычитания) целых чисел.


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

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

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

1=1+\varepsilon.

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

\begin</p>
<p>class TEps < public double CalcEps() < double eps = 1; while (1.0 != 1.0 + eps) < eps = eps / 10.0; Console.WriteLine(eps); >return eps; > > \end

На моем компьютере машинное " />
. Наличие машинного не означает, что невозможно использовать числа меньшие по модулю. Согласно документации . NET число с типом double может быть порядка от " />
до " />
. Но при выполнении машинных расчетов нужно учитывать машинную арифметику.

Чтобы продемонстрировать отличие машиной арифметики рассмотрим следующий пример. Вычислим две величины:

A=\sum\limits_<k=1></p>
<p>^\frac

a=\sum\limits_<k=100></p>
<p>^1\frac

Разница между этими величинами только в порядке суммирования. Согласно школьному переместительному закону эти величины равны! Но так ли это в мире программирования? Проверим:


Если мы вычислим разницу между величинами A и a , то получим:

A-a=3,5527136788005\cdot10^<-15></p>
<p>.

При вычислении сумм всегда нужно суммировать с наименьших по модулю чисел (почему?).

f(x)=x^2

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

f
( 4.2)

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

А теперь посмотрим как это выглядит на практике. Реализуем эту процедуру:

\begin</p>
<p>public double Dx2(double x0, double h) < double res = 0; double a, b; a = x2(x0 + h); b = x2(x0); res = (a - b) / h; return res; >double x2(double x) < return x * x; >\end

\begin<verbatim></p>
<p>Console.WriteLine(

\begin</p>
<p>x0 = 10, h = 1e-20 Dx2 = 0 \end

\varepsilon

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

\begin</p>
<p>x0 = 1000000, h = 1e-9 Dx2 = 2075195,3125 \end

\varepsilon

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

\begin</p>
<p>x0 = 1000000, h = 1e-12 Dx2 = 0 \end

Результат обескураживающий! По теории точность должна увеличиться, а вместо этого результат нулевой. А попробуем теперь увеличить приращение :

\begin</p>
<p>x0 = 1000000, h = 1e-6 Dx2 = 2000000 \end

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

\Bbb<R></p>
<p>Теперь рассмотрим вопрос об эффективности вычислительных процедур. Математика не знает оценочных категорий, такие слова
с целочисленными координатами. Поскольку компактное множество конечно, то количество точек, на которых необходимо найти минимум , конечно. Следовательно, можно утверждать существования такого минимума и с помощью перебора найти точки, на которых этот минимум достигается. Однако для решения этой задачи разрабатывают многочисленные методы решения задачи линейного программирования, пригодные для проведения реальных расчетов. В дискретной математике изучается большое количество "конечных" задач, которые теоретическим имеют тривиальное решение путем перебора. Однако реальность требует разрабатывать оптимальные методы для решения этих задач.

Ключевые термины

Алгоритм - последовательность определенных действий, позволяющая за конечное время придти к заданному результату.

Вычислительная неустойчивость - неустойчивость при работе вычислительной процедуры в следствии машинной арифметики.

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

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

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

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

В англоязычных странах применяют термин computerscience -- компьютерная наука или informatics.

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

Предмет информатики.

Предмет информатики включает:

аппаратное обеспечение средств вычислительной техники;

программное обеспечение средств вычислительной техники;

средства взаимодействия аппаратного и программного обеспечения;

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

Информатику в узком смысле можно представить, как состоящую из трех взаимосвязанных частей – технических средств(hardware), программных средств(software), алгоритмических средств(brainware).

Понятие информационной технологии.

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

Назначение текстовых процессоров.

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

Назначение электронных таблиц.

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

Понятие информации.

Термин информация ведет свое происхождение от латинского слова informatio, означающего разъяснение, изложение, осведомленность.

Информация – сведения об объектах и явлениях окружающей среды, их параметрах, свойствах и состоянии, которые уменьшают имеющуюся о них степень неопределенности, неполноты знаний.

По законодательству РФ :

информация - сведения о лицах, предметах, фактах, событиях, явлениях и процессах независимо от формы их представления.

Свойства информации.

Можно перечислить основные свойства информации, например такие как:

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

Адекватность, Достоверность, Полнота, Ценность, Актуальность, Понятность.

Единицы измерения информации.

-Бит – binarydigit - двоичная цифра

10101011 – V= 8 бит

-Байт – byte - 8 бит

-1Кбайт = 2 10 байт= 1024 байта

-1Мбайт = 2 10 Кбайт= 1024 Кбайта

-1Гбайт = 2 10 Мбайт= 1024 Мбайта

Алгоритмизация вычислительных процессов.

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

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

10. Основные определения и понятия программирования.

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

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

Язык программирования – предназначен для реализации программ на ЭВМ.

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

11. Переменная и ее свойства.

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

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

б) занесением константы;

в) занесением значения другой, ранее определенной переменной;

в каждый момент времени переменная может либо иметь определенное значение, либо быть неопределенной;

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

12. Изобразительные средства алгоритмов.

13. Базовые канонические структуры алгоритмов.

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

1)следование

Действия А и В могут быть:
- отдельным оператором;
- вызовом с возвратом некоторой процедуры;
- другой управляющей структурой.

IF P then A else B;

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

IF P then A ;

3)повторение

Цикл – пока

While P do A ;

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

Цикл – до

Repeat A until P;

Повторение типа Repeat until всегда выполняется хотя бы 1 раз. Действие А перестает выполняться, как только предикат становится истинным.

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

В зависимости от значения Р выполняется одно из действий А, В, …Z. После чего происходит переход к выполнению следующей управляющей структуры

14. Основные понятия языка Паскаль (алфавит, элементарные конструкции, типы данных)

:: = A | B | …| Z | a | b | …| z |

:: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Типы: простые, структурированные, ссылки



15. Арифметические и логические выражения. Действия над данными и оператор присваивания.

К арифметическим типам данных относятся группы вещественных и целых типов. К ним применимы арифметические операции и операции отношений.

Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам).

Операции типа умножения

Операции типа сложения

Операции сравнения (отношения)

16. Управляющие операторы языка.

Операторы ветвления

Операторыветвленияifивариантаcaseприменяютсядлятого, чтобывзависи-

Условный оператор if

if выражение then оператор_1 [else оператор_2;]

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

имеетзначениеtrue, выполняетсяпервыйоператор, иначе—второй. Послеэтого

17. Операторы цикла в Паскале.

- типа арифметической прогрессии


20. Область действия имен в Паскаль программе.

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

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

Если локальное и глобальное имя совпадают, то в подпрограмме локальное имя блокирует глобальное. Совпадения глобальных и локальных имен лучше избегать. Чтобы получить доступ к глобальному имени в подпрограмме, его надо указывать составным. Формат доступа к глобальному имени: . .

21. Особенности описания и вызова процедур.

результатом обращения к функции может быть одно единственное значение;

* идентификатор результата не указывается в списке формальных параметров;

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

* после списка формальных параметров задается тип результата;

* после обращения к функции управление передается на выполнение следующей операции данного выражения (в соответствии с приоритетом).

22. Особенности описания и вызова функции.

FUNCTION PRF (A,B,C: INTEGER) : REAL;

Writeln( PRF ( A,B,C));

If PRF ( A,B,C)>20 then K=K+1;

При описании процедуры (функции) в ее заголовке могут быть указаны параметры следующих видов:

23. Формальные и фактические параметры.

Формальные параметры – данные, с которыми работает подпрограмма (ПП). Это внутренние данные для ПП. Они перечисляются в заголовке ПП и связаны с фактическими параметрами. Фактические параметры – данные, передаваемые в ПП и возвращаемые из нее. Это внешние для ПП данные, с которыми имеет дело вызывающая часть программы. В ПП им соответствуют формальные параметры. Указываются в списке фактических параметров при обращении к ПП. Синонимы:

Параметры = формальные параметры.

Аргументы = фактические параметры.

Для формальных и фактических параметров необходимо соблюдать соответствия:

одинаковый порядок следования,

совместимость типов по присвоению.

24. Рекурсивные процедуры и функции.

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

FUNCTION FACT (N:INTEGER): REAL;

IF N=1 THEN FACT:=1 ELSE

25. Понятие модуля, его описание и подключение.

26. Структура и описание модуля.

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

27. Стандартные модули Паскаля.

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

Модуль предназначен для организации эффективной работы с экраном, клавиатурой и встроенным динамиком. При подключении модуля Crt выводимая информация посылается в базовую систему ввода-вывода (ВIОS) или непосредственно в видеопамять.

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

Модули Dos и WinDos

Модули Dos и WinDos содержат подпрограммы, реализующие возможности операционной системы MS-DOS - например, переименование, поиск и удаление файлов, получение и установку системного времени, выполнение программных прерываний и так далее. Эти подпрограммы в стандартном Паскале не определены. Для поддержки подпрограмм в модулях определены константы и типы данных.

Модуль Dos использует строки Паскаля, а WinDos - строки с завершающим нулем.

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

Экран в графическом режиме представляется в виде совокупности точек - пикселов. Цвет каждого пиксела можно задавать отдельно. Начало координат находится в левом верхнем углу экрана и имеет координаты (0, 0). Количество точек по горизонтали и вертикали (разрешение экрана) и количество доступных цветов зависят от графического режима. Графический режим устанавливается с помощью служебной программы - графического драйвера.

28. Процедуры и функции модуля CRT

Модуль предназначен для организации эффективной работы с экраном, клавиатурой и встроенным динамиком. При подключении модуля Crt выводимая информация посылается в базовую систему ввода-вывода (ВIОS) или непосредственно в видеопамять.

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

29. Функции и процедуры порядкового типа.

Функции порядкового типа.

Имя функции Назначение функции
Odd(X) Проверяет, является ли аргумент нечетным числом Odd(0)=false Odd(1)=true Odd(2)=false Odd(-1)=true
Pred(X) Возвращает предшествующее значение аргумента Pred(10)=9 Pred(-10)=-11
Succ(X) Возвращает последующее значение аргумента Succ(10)=11 Succ(-10)=-9

Процедуры порядкового типа.

Имя процедуры Назначение процедуры
Dec(X [,dx]) Уменьшает значение переменной Х на величину dx (если параметр dx не задан, то на –1) k:=5; Dec(k)=4 Dec(k,2)=3 Dec(k,-2)=7
Inc(X [,dx]) Увеличивает значение переменной Х на величину dx (если параметр dx не задан, то на +1) k:=5; Inc (k)=6 Inc (k,2)=7 Inc (k,-2)=3

30. Процедуры и функции преобразования.

Procedure Str(X [: Width [: Decimals]]; var S);

Преобразовывает число X в строковое представление согласно Width и параметрам форматированияDecimals.

X - выражение вещественного или целого типа. Width и Decimals - выражения целого типа. S - переменная типа String или символьный массив с нулевым окончанием, если допускается расширенный синтаксис.

Function Chr(X: Byte): Char;

Возвращает символ с порядковым номером Х в ASCII-таблице.

Function High(X);

Возвращает наибольшее значение в диапазоне параметра.

Function Low(X);

Возвращает наименьшее значение в диапазоне параметра.

FunctionOrd(X): LongInt;

Возвращает порядковое значение выражения перечислимого типа.

Function Round(X: Extended): LongInt;

Округляет значение вещественного типа до целого.

X - выражение вещественного типа. Round возвращает значение Longint, которое является значением X, округленным до ближайшего целого числа. Если X - точно посередине между двумя целыми числами, возвращается число с наибольшей абсолютной величиной.

Function Trunc(X: Extended): LongInt;

Усекает значение вещественного типа до целого.

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

Procedure Val(S; var V; var Code: Integer);

Преобразовывает число из строкового значения S в числовое представление V.

S - выражение строкового типа - последовательность символов, которая формирует целое или вещественное число.

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

31. Процедуры и функции для обработки строк.

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

Функция возвращает в качестве результата значение текущей длины строки-параметра

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

Copy(s:string; index:integer; count:integer):string

Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.

Delete(var s:string; index,count:integer)

Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.

Insert(source:string; var s:string;index:integer)

Процедура предназначена для вставки строки source в строку s, начиная с символа

Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.

Str(X: арифметическое выражение; varst: string)

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

Val(st: string; x: числоваяпеременная; var code: integer)

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

32. Процедура ввода-вывода.

Процедуры ввода/вывода относятся к стандартным или встроенным процедурам TurboPascal. Стандартная процедура не нуждается в предварительном описании, она доступна любой программе, в которой содержится обращение к ней.

Читайте также: