Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

new_pos_2011

.pdf
Скачиваний:
5
Добавлен:
18.03.2016
Размер:
1.46 Mб
Скачать

Введение

Учебное пособие написано на основе курсов лекций, читаемых студентам и бакалаврам 1-2 курсов факультета математики и информационных технологий . Может быть полезно начинающим программистам, желающим самостоятельно изучить основы программирования на языке Object Pascal или слушающим соответствующий лекционный курс. Предполагается, что читатель хотя бы в минимальной степени знаком с операционными системами DOS и Windows и понимает, например, что такое имя файла, каталог, папка, диск, путь и т.п. Информация о средах программирования Turbo Pascal и Borland Pascal, ориентированных на работу с DOS , а также о среде программирования Delphi, предназначенной для разработки приложений, работающих под управлением операционной системы Windows, в пособии не приводится. Отмечены лишь некоторые важные моменты. Учебное пособие содержит примеры, записанные как фрагмент программы или законченная программа. Все примеры оттестированы. Однако авторы хотели бы предостеречь от некритического использования этих программ читателем - большинство из них лишь иллюстрирует возможности языка и не претендует на оптимальность. В пособие включена подборка вариантов задач по основным темам.

1.Общаясхемарешениязадачинаперсональномкомпьютере

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

1) анализ задачи;

2) разработка алгоритма решения задачи;

3) разработка пользовательского интерфейса;

4) написание кода;

5) отладка программы;

6) тестирование программы;

7) составление документации.

Все эти этапы (иногда в неявной форме) обязательно выполняются любым программистом при решении любой задачи. Рассмотрим их подробнее.

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

3

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

Этап разработки пользовательского интерфейса предполагает про-

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

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

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

4

рением exe (от ЕХЕcutive - выполняемый); этот файл содержит программу (в отличие от исходного файла, содержащего лишь текст программы), которая может быть выполнена. Необходимо отчетливо понимать, что задачей транслятора ни в коем случае не является поиск ошибок в ваших программах, он сообщает о них лишь в том случае, когда не может правильно интерпретировать ваш текст. Успешно осуществив трансляцию, запустите свою программу. Не следует думать, что эта программа не содержит ошибок! Все логические ошибки, допущенные вами, остались в программе, и на этапе отладки вы должны найти их и исправить. Не существует никаких общих рецептов для отладки - класс программиста главным образом, как раз и проявляется в том, как он отлаживает программы. Но один полезный совет можно дать: аккуратно и подробно выводите при отладке все вычисляемые вашей программой величины.

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

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

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

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

5

Анализ задачи

Разработка алгоритма программы

Разработка пользовательского интерфейса

Написание кода

Тестирование и отладка программы

Составление документации

Рис.1. Полный цикл разработки программы.

2.Свойства алгоритмов.Основныеалгоритмическиеструктуры

Впредыдущем параграфе мы рассмотрели понятие алгоритма. Каждый алгоритм должен обладать следующими свойствами:

1)дискретность – процесс решения задачи должен быть разбит на последовательность отдельных шагов;

2)понятность – алгоритм должен быть понятен исполнителю и исполнитель должен быть в состоянии выполнить его команды;

3)точность – алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно;

4)результативность – процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен ответ задачи;

5)массовость – возможность использовать алгоритм для решения однотипных задач.

Теперь более подробно рассмотрим возможности использования блок-

схем и псевдокодов при разработке алгоритмов.

6

Блок-схема алгоритма представляет собой диаграмму, на которой изображена последовательность действий, выполняемых программой. На этой диаграмме разными геометрическими фигурами представлены разные типы процессов. Например, ромб означает процесс принятия решения, а параллелограмм — ввод и вывод данных. Линии со стрелками представляют последовательность выполнения компьютером действий, соединенных этими линиями. В блок-схемах используется много разных геометрических фигур, наиболее часто применимые показаны на рис. 2.

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

Ввод и вывод данных. Фрагмент программы, в котором пользователь вводит данные или алгоритм выводит результаты.

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

Структура принятия решения. Фрагмент алгоритма, в котором принимается решение о направлении вычислительного процесса. В ромб всегда входит одна линия, а выходит две. Одна из выходящих линий отмечается словом "Да" ("Истина"); а другая — "Нет" ("Ложь").

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

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

Рис. 2. Геометрические фигуры, используемые в блок-схемах.

На примере блок-схем мы рассмотрим основные алгоритмические структуры. Ими являются следование, развилка и цикл (рис.3):

Структура “следование”

Полная развилка

Неполная развилка

Цикл с предусловие (цикл ПОКА) Цикл с постусловием (цикл ДО)

Цикл с параметром

Рис.3. Основные алгоритмические структуры.

Для иллюстрации основных алгоритмических структур рассмотрим следующие примеры:

Линейные алгоритмы

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

Пример 1. Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч.

Время движения соответственно t1 , t2 и t3 ч. Какой путь прошел пешеход?

1.Ввести v1 , v2 , v3 , t1 , t2 , t3

2.S1 v1 t1

3.S2 v2 t2

4.S3 v3 t3

5.S S1 S2 S3

6.Вывести значение S .

7.Конец.

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

Пример 2. Дано натуральное трехзначное число n , в записи которого нет нулей. Составить алгоритм, который возвращает значение ИСТИНА, если верно утверждение: "число n кратно каждой своей цифре", и ЛОЖЬ

— в противном случае.

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

7

8

нацело (функция div) и получения остатка от целочисленного деления

73 10

(функция mod). Приведем короткий пример - разделим 73 на 10: 70 7 .

3 7 – это результат целочисленного деления 73 на 10, чего можно добиться,

используя функцию div: 73 div 10. Остаток от деления, равный 3, может быть получен при помощи функции mod: 73 mod 10.

1. Ввести число n

2. A n mod 10 {разряд единиц} 3. B n div 100 {разряд сотен}

4. A n div 10 mod 10 {разряд десятков}

5. L : n mod A 0 and

n mod B 0 and n mod C 0

6. Вывод L

7. Конец

В фигурных скобках даны комментарии к операторам.

Развилка

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

Пример 3. Вычислить значение функции

x2 npu x 12,

y x4 npu -12< x 0,x 2 npu x 0.

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

1.

Ввести x .

 

2.

Если

x 12 ,

то

y : x2

 

 

3.

Иначе,

если x 0 ,

то

y : x4

 

 

4.

Иначе y : x 2

 

5.

Вывести y

 

6.

Конец

 

 

Пример 4. Дано натуральное число n . Если число нечётное и его удвоение не приведет к выходу за 32767 (двухбайтовое целое число со знаком), удвоить его, иначе — оставить без изменения.

Пояснения. Чтобы удовлетворить условию удвоения, число n должно быть нечетным и меньше 16384.

9

10

1. Ввести число n

2. Если число n нечетное и меньше 16384, то n : 2* n

3. Вывод n

4. Конец

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

Циклы

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

Пример 5. Подсчитать количество нечетных цифр в записи натурального числа n .

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

блок-схема 1

Пояснения по блок-схеме 1:

блок-схема 2

Пояснения по блок-схеме 2:

1.

Ввести число n

1.

Ввести число n

2.

K : 0 {подготавливаем счётчик

2.

K : 0 {подготавливаем счётчик

нечётных цифр}

нечётных цифр}

3.

Если n 0 , переход к пункту 7

3.

Если n mod 10 mod 2=1, то

4.

Если n mod 10 mod 2=1, то

K : K+1

K : K 1

4.

n : n div 10

5.

n : n div 10

5.

Если n 0 , переход к пункту 3

6.

Переход к пункту 3

6.

Вывод K

7.

Вывод K

7.

Конец

8.

Конец

 

 

11

 

12

Задача решена двумя способами. Слева решение оформлено с использованием цикла с предусловием, справа — с постусловием.

Пример 6. Найти произведение первых k натуральных чисел, кратных трём.

При составлении алгоритма учтем, что первое натуральное число, кратное 3, есть тройка, а все последующие больше предыдущего на 3.

1. Ввод k

2. P : 1 {накапливаем произведение}

3. T : 0 {переменная для хра-

нения чисел, кратных 3}

4. I : 1

5. Если I k , переход к пунк-

ту 10

6. T : T 3

7. P : P *T

8. I : I 1

9. Перейти к пункту 5

10. Вывод P

11. Конец

Пример 7. Дана последовательность, общий член которой определя-

ется формулой a

 

n 1

 

. Вычислить при n 2

сумму тех ее членов, кото-

n2

n

 

 

 

рые больше заданного числа .

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

13

1. Ввести

2. S : 0

3. A:= 1/4

4. n : 3

5. Сравнить A с . Если A , переход к пункту 10

6. S : S A

7. A : n 1 / n * n 8. n : n 1

9. Переход к пункту 5

10. Вывод S

11. Конец

Впримере 5 и в примере 7 количество повторений заранее неизвестно.

Впервом оно зависит от количества цифр в записи натурального числа, во втором — от числа . В примере 6 количество шагов известно из условия

задачи, поэтому проще и предпочтительней использовать цикл с параметром.

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

Разработка блок-схемы занимает много времени.

Блок-схемы имеют большие размеры. Блок-схема даже простой программы может достичь размера в несколько страниц.

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

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

14

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

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

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

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

3.КонсольныеприложениявDelphi.ВведениевязыкObjectPascal.Общая структурапрограммы.Идентификаторы,комментарии,пробелы.Разделописанийиразделоператоров

Для реализации программ, написанных на языке программирования Object Pascal, можно использовать различные системы программирования. Turbo Pascal и Borland Pascal ориентированы на работу с дисковыми операционными системами DOS (такими как MS DOS компании Microsoft или PC DOS компании IBM). Среда программирования Delphi предназначена для разработки программ (или приложений), работающих под управлением операционной системы Windows. Мы рассмотрим возможность создания приложений для DOS в среде Delphi. Это позволит подготовиться к использованию графического интерфейса пользователя (GUI – Graphical User Interface).Такие программы называются консольными приложениями.

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

1. Выберем команду File New Other (Файл Новый Другое), выделим пиктограмму Console Application (Консоль-

15

ное приложение) и щелкнем на кнопке ОК. При этом на экране появится окно редактора кода.

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

program ConsoleExample; {$APPTYPE CONSOLE} uses SysUtils;

begin

Writeln ('Hello, World from Delphi!!!'); Writeln ('This is the console application.'); Writeln;

Writeln ('Press <ENTER> to quit.'); Readln;

end.

3. Сохраним программу, выбрав последовательно команды File Save Project As… Затем нажмем клавишу <F9> - программа выполнится. При этом на экране появляется такое окно DOS:

Нажав клавишу <Enter>, завершим работу консольного приложения.

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

program ConsoleExample; {$APPTYPE CONSOLE} uses SysUtils;

begin

Writeln (‘Привет, Мир!!!');

Writeln ('Это консольное приложение.');

Readln;

end.

на экране увидим следующее

16

Появление такой «абракадабры» связано с тем, что в компилят о- ре Delphi используется кодовая страница Windows-1251, а запущенное приложение использует кодовую страницу DOS. В результате этого несоответствия русские буквы отображаются некорректно. Воспользуемся следующим способом для устранения проблемы - используем функцию, которая будет перекодировать кириллицу W indows в DOS перед отображением на экран. Важно отметить, что при наборе фра г- ментов 'А'..’п' и 'р'..'я' обязательно (!) включать русскую раскладку клавиатуры.

program test;

{$APPTYPE CONSOLE}

function Rus(mes: string):string; var i: integer;

begin

for i:=1 to length(mes) do case mes[i] of

'А'..’п' : mes[i] := Chr(Ord(mes[i]) - 64); 'р'..'я' : mes[i] := Chr(Ord(mes[i]) - 16);

end;

rus := mes; end;

begin

Writeln (Rus('Привет, Мир!!!'));

Writeln (Rus('Это консольное приложение.'));

Readln;

end.

Результат работы программы выглядит гораздо привлекательнее:

17

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

Теперь займемся более детальным рассмотрением такого примера: begin

writeln('Hello !!!');

Readln;

end.

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

const Message=' Hello !!!';

begin

writeln(Message); Readln; end.

и так :

var Message: String[10];

begin Message:=' Hello !!!'; writeln(Message); Readln; end.

и еще множеством различных способов, но в каждой программе обязательно будет слово begin, и в конце программы всегда будет стоять end. - признак конца программы. Перед BEGIN может что-то быть (как правило, это так), или может не быть ничего. То, что находится перед BEGIN, называется разделом описаний, то, что находится между BEGIN и END. , называется

разделом операторов. Слова BEGIN, END, а также WRITELN, READLN

являются ключевыми словами языка Object Pascal, а слово Message- это идентификатор пользователя, т.е. имя, данное нами некоторому объекту - константе, переменной, или чему-то еще. Все ключевые слова и идентификаторы пользователя есть последовательности букв и цифр, начинающиеся с буквы. Буквами языка являются все латинские буквы и символ подчеркивания. Компилятор не различает большие и малые латинские буквы, поэто-

18

му вы можете записывать идентификаторы как захотите: Begin, BEGIN, begin, BeGiN и т.д. – компилятор будет воспринимать их одинаково. Вы можете выбирать любые идентификаторы пользователя, лишь бы они не совпадали с ключевыми словами; так, в нашем примере вместо Message вы можете написать Q или __t123, или Y56_ert и т.д. Однако все эти идентификаторы не несут в себе никакого смысла, затрудняют чтение и отладку программы и делают ее неряшливой; идентификатор Message имеет то достоинство что из него уже ясно его назначение - содержать некоторое сообщение. Старайтесь всегда использовать в программе осмысленные идентификаторы! Язык Object Pascal допускает идентификаторы длиной до 63 символов (точнее, компилятор различает первые 63 символа имени), поэтому не экономьте на именах переменных и функций, пусть лучше имена будут длинными, но понятными. Кроме ключевых слов и идентификаторов всякая программа содержит также пробелы и (в идеале) комментарии. Комментарии могут быть записаны в фигурных скобках и могут стоять в любом месте программы, пробелы являются разделителями, там, где допустим один пробел, можно поставить любое количество пробелов. Комментарии и пробелы следует использовать для аккуратного оформления текста программы. Хорошая программа обязательно должна быть документирована, т.е. содержать комментарии поясняющие, как она работает.

4.Арифметическиетипыданных.Числовыеконстантыипеременные.Операторприсваивания.Выражения

Все данные, используемые в программе, всегда относятся к конкретным типам данных. Применяемые разработчиком значения должны укладываться в допустимый диапазон значений для имеющихся в языке типов. В языке Object Pascal определены следующие арифметические типы данных: целочисленные и вещественные. Целые числа записываются в программе с помощью последовательности цифр, перед которой может стоять знак числа: символ «+» или «–». Если знак не указан, то считается, что число положительное. В таблице 1.1 перечислены стандартные типы целых чисел и диапазоны их изменений.

Стандартные типы целых чисел

 

Таблица 1

 

 

 

 

 

Название типа

Диапазон значений

Требование

 

Знаковый

 

 

к памяти в

(может ли хра-

 

 

байтах

 

нить отрица-

 

 

 

 

тельные числа)

Byte

0..255

1

 

нет

 

 

 

 

 

Word

0..65535

2

 

нет

 

 

 

 

 

Longword

0..4294967295

4

нет

 

 

 

 

ShortInt

-128..127

1

да

 

 

 

 

SmallInt

-32768..32767

2

да

 

 

 

 

Cardinal

0..4294967295

4

нет

 

 

 

 

Integer

-2147483648.. 2147483647

4

да

 

 

 

 

LongInt

-2147483648.. 2147483647

4

да

 

 

 

 

Int64

-263..263-1

8

да

Родовыми типами (т.е. обеспчивающими максимальную производительность) среди перечисленных являются Integer и Cardinal. В настоящий момент тип Integer эквивалентен типу LongInt.

Арифметические операции над целыми числами возращают тип Integer. Если оба операнда имеют тип Int64, результат тоже имеет тип

Int64.

Замечание. Целые числа могут записываться не только в десятичной форме, но и в шестнадцатеричной. Для этого перед началом числа ставится символ $, а в качестве цифр, соответсвующих числам от 10 до 15, используются буквы A-F. Например, число 255 можно записать как $FF.

Дробные числа содержат дробную часть. которая отделяется от целой части десятичной точкой. В таких числах допускается также дополнительно указывать символ e (или E), за которым следует число, указывающее, что левую часть допольнительно нужно умножить на 10 в соответсвующей степени. Например, запись 1.5e-45 означает 1.5 умноженное на 10 в степени - 45, это общепринятое в языках программирования обозначение для веще-

ственных чисел – число с плавающей точкой.

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

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

Таблица 2

 

 

 

 

 

Название типа

Диапазон значений

Число

 

Требование

 

 

значащих

 

к памяти в бай-

 

 

разрядов

 

тах

Real48

±2.9e-39..±1.7e+38

11-12

 

6

 

 

 

 

 

Real

±5.0e-324..±1.7e+308

15-16

 

8

 

 

 

 

 

Single

±1.5e-45..±3.4e+38

7-8

 

4

 

 

 

 

 

Double

±5.0e-324..±1.7e+308

15-16

 

8

 

 

 

 

 

Extended

±3.6e-4932..±1.1e+4392

19-20

 

10

 

 

 

 

 

Comp

-263..263

19-20

 

8

19

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]