Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Функция gets(). 3 страница

Читайте также:
  1. Castle of Indolence. 1 страница
  2. Castle of Indolence. 2 страница
  3. Castle of Indolence. 3 страница
  4. Castle of Indolence. 4 страница
  5. Castle of Indolence. 5 страница
  6. Castle of Indolence. 6 страница
  7. Castle of Indolence. 7 страница

с помощью линковщика или include

 

30.

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

действий, которые надлежит выполнить, и

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

Рассмотрим «алгоритм активного пробуждения», которому следует некий клерк для того, чтобы встать с постели п отпршштьси пи работу:

Встать с постели.

Снять пижаму.

Принять душ.

Одеться.

Позавтракать.

Отправиться на работу.

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

Встать с постели.

Снять пижаму

Одеться.

Принять душ.

Позавтракать.

Отправиться на работу

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

Псевдокод

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

Программы на псевдокоде на самом деле не выполняются на компьютерах. Скорее они просто помогают программисту «продумывать» программу перед попыт­ки написать ее на языке программирования, таком, например, как С.

 

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

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

int i;

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

31. способы употребления конструкций языка программирования

32.

33.

Критерии для анализа стиля программирования. Экспертные оценки.

Язык программирования — это язык. И в нем, также как в обычном языке, определены алфавит, лексика, синтаксис и т.д., то есть, определены некоторые правила построения фраз (операторов), используя которые, человек может общаться на этом языке с другими людьми (и даже с ЭВМ!). Констатируется, что каждый человек, знающий некоторый язык (умеющий читать на этом языке и писать на этом языке), также имеет некоторый стиль, который является характерным для данного человека и который проявляется, когда человек пишет на этом языке, например, программу.

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

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

Крайне желательно для насаждения красивого стиля программирования использовать в качестве примеров программы, разработанные "гуру" программирования. Образцы программ, как правило, поставляются в виде example в составе систем программирования. Для языков Си, С++ очень хорошими примерами являются системные программы среды UNIX, в частности, LINUX.

Дополнительно в процессе обучения могут быть использованы

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

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

В максимальной степени значение качества стиля программирования проявляется в процессе эксплуатации программного обеспечения на этапе сопровождения, когда возникает необходимость доработок и исправления ошибок. Легкий, красивый стиль программирования способствует увеличению жизненного цикла программ. Это особенно важно становится в последние годы в связи с принижением значения серии ГОСТов ЕСПД, регламентирующих программную документацию. Молодое поколение программистов часто учится программировать само по себе (из любопытства) и нередко даже не знает о существовании регламентирующих стандартов и технических условий.

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

Везде далее, где написано "процедура", следует читать "процедура (функция)".

1.Оценка модульности программы

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

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

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

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

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

2.Оценка структурности кодирования

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

оператор GOTO используется для выхода из процедуры — 5 баллов;

оператор GOTO используется для перехода назад по программе — 2 балла;

другие случаи использования оператора GOTO (выход из цикла вперед по программе, использование в условном операторе) — 1 балл;

наличие в строке более одного оператора — 0,25 балла;

процедуры не отделены друг от друга строками комментария (минимум две строки комментария на процедуру) — 1 балл;

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

отсутствуют начальные блоки комментариев в процедурах — 3 балла;

не комментированы циклы, условные операторы, операторы END (операторы ";" для Си), операторы перехода — 0,25 балла;

метки GOTO (а также метки оператора format для Фортрана) определены не в возрастающем порядке — 1 балл;

перекрытие GOTO — диапазонов — 3 балла;

метки оператора format (для Фортрана) расположены в диапазоне GOTO — 1 балл;

глубина вложенности условных операторов и операторов циклов не превышает 10; каждый уровень вложенности сверх указанного — 0,5 балла.

Оценка структурности кодирования определяется как сумма штрафных баллов.

Здесь необходимо предусмотреть веса для параметров для того, чтобы сумма баллов всегда была меньше, либо равна 100.

3.Оценка структурированности

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

4.Оценка читабельности

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

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

)Структура программы выдержана:

Начальный блок комментария.

Объявления (констант, типов, переменных, внешних процедур, внутренних процедур).

Внутренние процедуры.

Блок begin-end.

Штраф — 1 балл.

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

3)Константы, типы и переменные описаны в комментариях. За каждый неописанный случай — штраф 0,1 балла.

4)Текст отформатирован: логические блоки выделены сдвигами операторов вправо — 0 баллов.

Нарушение — 0,05 балла, но в сумме не более 3 баллов. Грубые нарушения данного пункта:

все операторы набиты с первой колонки — 3 балла;

"книжный текст": сверхплотное расположение операторов (по несколько операторов на каждой строке) — 3 балла.

5)Процедуры отделены друг от друга двумя строками комментария — 0 баллов, одной строкой — 1 балл, комментарий отсутствует — 2 балла.

6)Более одного оператора на строке; за каждый случай — 0,1 балла.

7)Все логические блоки (операторы if, case, switch, goto, exit, операторы циклов и т.д.) прокомментированы — 0 баллов. Невыполнение требования — 0,25 балла.

8) Прокомментированы операторы end /* чего? */ (для языка Си — ";").

Невыполнение требования — 0,1 балла.

9)Комментарии располагаются сбоку (справа) от исполняемых (комментируемых) операторов, а не расположены с ними вперемежку.

Невыполнение требований — до 0,5 балла.

10)Если переменные используются в программе для нескольких целей — 1 балл. Если случай "перенацеливания" не комментирован — дополнительно — 0,5 балла за каждый случай.

11) Использование булевских переменных (типа BOOLEAN): true — включено, false — выключено; если переключатель моделируется переменной другого типа, то аналогично, 1 — включено, а 0 — выключено. За каждое нарушение — 1 балл.

12)Если алгоритм программы формирует во входной области программы особые точки, то это прокомментировано. Невыполнение требования — 3 балла.

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

Невыполнение требования — до 1 балла.

14)Программа удовлетворяет требованию структурированности (см. п.3). Оценка выполнения требования в баллах равна трёхкратной оценке структурированности.

Необходимо предусмотреть веса для параметров для того, чтобы общая сумма баллов была всегда меньше либо равна 100.

 

33.1.

Оценка модульности программы

В языках программирования (в частности, в языках, используемых в учебном процессе — Паскаль, Бейсик, Фортран, Си и т.д.) широко используется аппарат процедур и функций. Причем, процедуры и функции могут быть как внешними (относительно главного модуля программы или относительно какой-либо процедуры), так и внутренними (вложенными).Модульность программы подразумевает, что программа разбита на процедуры разумной длины, каждая из которых выполняет некоторую функцию, определяемую алгоритмом программы. При определении длины процедуры будем учитывать только операторы самой процедуры, в терминах Паскаля — блок Begin-End. Внутренние (вложенные) процедуры будем считать самостоятельно, как отдельные процедуры.Введем "норму". Положим, что "нормальная" длина процедуры составляет 50 исполняемых операторов, т.е. не учитываем строки комментария, операторы объявлений констант, типов и переменных. "Норма" зависит от языка программирования.Оценим среднюю длину процедуры как отношение суммы длин всех процедур, включая блок main, к количеству всех процедур, включая блок main.Введем меру модульности программы как разность между 1 и суммой двух отношений, где первое есть отношение абсолютной разницы средней длины процедуры и константы "нормальной" длины процедуры к 100, а второе представляет собой отношение длины самой большой процедуры к удвоенному произведению общей длины программы (общему количеству исполняемых операторов в программе).

2.Оценка структурности кодирования

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

оператор GOTO используется для выхода из процедуры — 5 баллов;

оператор GOTO используется для перехода назад по программе — 2 балла;

другие случаи использования оператора GOTO (выход из цикла вперед по программе, использование в условном операторе) — 1 балл;

наличие в строке более одного оператора — 0,25 балла;

процедуры не отделены друг от друга строками комментария (минимум две строки комментария на процедуру) — 1 балл;

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

отсутствуют начальные блоки комментариев в процедурах — 3 балла;

не комментированы циклы, условные операторы, операторы END (операторы ";" для Си), операторы перехода — 0,25 балла;

метки GOTO (а также метки оператора format для Фортрана) определены не в возрастающем порядке — 1 балл;

перекрытие GOTO — диапазонов — 3 балла;

метки оператора format (для Фортрана) расположены в диапазоне GOTO — 1 балл;

глубина вложенности условных операторов и операторов циклов не превышает 10; каждый уровень вложенности сверх указанного — 0,5 балла.

Оценка структурности кодирования определяется как сумма штрафных баллов.

Здесь необходимо предусмотреть веса для параметров для того, чтобы сумма баллов всегда была меньше, либо равна 100.

3.Оценка структурированности

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

4.Оценка читабельности

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

Определим требования, которым должен удовлетворять исходный текст читабельной программы, и буде начислять штрафные баллы за каждый случай нарушения этих требований:1)Структура программы выдержана:

Начальный блок комментария.

Объявления (констант, типов, переменных, внешних процедур, внутренних процедур).

Внутренние процедуры.

Блок begin-end.

Штраф — 1 балл.

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

Нарушение — 0,05 балла, но в сумме не более 3 баллов. Грубые нарушения данного пункта:

все операторы набиты с первой колонки — 3 балла;

"книжный текст": сверхплотное расположение операторов (по несколько операторов на каждой строке) — 3 балла.

5)Процедуры отделены друг от друга двумя строками комментария — 0 баллов, одной строкой — 1 балл, комментарий отсутствует — 2 балла.6)Более одного оператора на строке; за каждый случай — 0,1 балла.7)Все логические блоки (операторы if, case, switch, goto, exit, операторы циклов и т.д.) прокомментированы — 0 баллов. Невыполнение требования — 0,25 балла.8) Прокомментированы операторы end /* чего? */ (для языка Си — ";").Невыполнение требования — 0,1 балла.9)Комментарии располагаются сбоку (справа) от исполняемых (комментируемых) операторов, а не расположены с ними вперемежку.Невыполнение требований — до 0,5 балла.10)Если переменные используются в программе для нескольких целей — 1 балл. Если случай "перенацеливания" не комментирован — дополнительно — 0,5 балла за каждый случай.11) Использование булевских переменных (типа BOOLEAN): true — включено, false — выключено; если переключатель моделируется переменной другого типа, то аналогично, 1 — включено, а 0 — выключено. За каждое нарушение — 1 балл.12)Если алгоритм программы формирует во входной области программы особые точки, то это прокомментировано. Невыполнение требования — 3 балла.13)Имеются комментарии, позволяющие оценить влияние на данный модуль изменений, вносимых в другие модули (например, прокомментировано каждое использование глобальных переменных).Невыполнение требования — до 1 балла.14)Программа удовлетворяет требованию структурированности (см. п.3). Оценка выполнения требования в баллах равна трёхкратной оценке структурированности.Необходимо предусмотреть веса для параметров для того, чтобы общая сумма баллов была всегда меньше либо равна 100.Пусть общая сумма набранных баллов равна b. Тогда оценку читабельности программы определим как разность между 1 и отношением b к 100.

 

34.

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

Классификация типов данных[источник?]

Типы данных бывают следующие:

Простые.

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

Числовые. Хранятся числа. Могут применяться обычные арифметические операции.

Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.

Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*be, где m — мантисса, b - основание показательной функции, e — показатель степени (порядок) (в англоязычной литературе экспонента), причём в нормальной форме 0<=m<b, а в нормализованной форме 1<=m<b, e — целое число и хранятся знак и числа m и e).

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

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

Логический тип. Имеет два значения: истина и ложь. Могут применяться логические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом ложь=0, истина=1.

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

Составные (сложные).

Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектор, двумерный массив — матрица.

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

Запись (структура). Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи. Например, struct в C или record в Pascal.

Файловый тип. Хранит только однотипные значения, доступ к которым осуществляется только последовательно (файл с произвольным доступом, включённый в некоторые системы программирования, фактически является неявным массивом).

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

Указатель. Хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — указатель на переменную.

Ссылка.

 

35.

Внутреннее представление данных в ЭВМ: символьных, двоичных, десятичных, адресных констант.

Информация в ЭВМ кодируется, как правило, в двоичной или в двоично-десятичной системе счисления.

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

операции пересылки информации внутри ЭВМ;

арифметические операции над информацией;

логические операции над информацией;

операции обращения к внешним устройствам ЭВМ;

операции передачи управления;

обслуживающие и вспомогательные операции.

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

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

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

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

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

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

Количество символов, используемых в позиционной системе счисления, называется ее основанием. Его обозначают обычно буквой q. В десятичной системе счисления используется 10 символов (цифр): 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, и основанием системы является число десять.

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

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

X(q)=xn-1qn-1+xn-2qn-2+…+x1q1+x0q0+x-1q-1+…+x-mq-m=(xiqi

Где X(q)-запись числа в системе счисления с основанием q; q-основание системы счисления; xi –целые числа, меньше q; n-число разрядов (позиций) в целой части числа; m-число разрядов в дробной части числа.

Например: 4295,67(10)=4*103+2*102+9*101+5*100+6*10-1+7*10-2

Для обозначения используемой системы счисления ее основание указывается в индексе в круглых скобках. Изображение числа X(q) в виде последовательности коэффициентов xi полинома является его условной сокращенной записью (кодом).

X(q)=Xn-1 Xn-2…X1X0,X-1…X-m

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

В информатике применяют позиционные системы счисления с недесятичным основанием: двоичную, восьмеричную, шестнадцатеричную, т.е. системы счисления с основанием q=2k, где k-1, 3, 4.

Наибольшее распространение получила двоичная систем счисления. В этой системе для представления любого числа используются два символа – цифры 0 и
1. Основание системы счисления q=2.

Например: 13,625(10)=1*23+1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=1101,101(2)

В восьмеричной системе счисления алфавит состоит из восьми символов
(цифр): 0, 1 … 7. Основание системы счисления q=8.

Например: 28(10)=3*81+4*80=34(8)

В шестнадцатеричной системе счисления алфавит включает в себя 16 символов (цифр и букв): 0, 1 … 9, А, В, С, D, E, F. Основание системы счисления q=16. Например: Например: 75(10)=4*161+В*160=4В(16)

2. Представление чисел с фиксированной точкой.

При представлении числа Х в форме с фиксированной точкой указываются знак числа (sign X) и модуль числа (mod X) в q-ичном коде. Иногда такую форму представления чисел называют естественной формой. Место точки
(запятой) постоянно для всех чисел и в процессе решения задач не меняется.
Знак положительного числа кодируется цифрой «0», а знак отрицательного числа – цифрой «1».

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

Максимальное и минимальное значения чисел определяются формулами:

Xmax=+(qn-q-m); Xmin=-(qn-q-m).

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

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

3. Представление чисел с плавающей точкой.


Дата добавления: 2015-07-26; просмотров: 83 | Нарушение авторских прав


Читайте в этой же книге: Структура программы. | Создание библиотеки | Функция gets(). 1 страница | Функция gets(). 5 страница | Функция gets(). 6 страница | Функция gets(). 7 страница | Целый тип данных | Указатели | Инициализация данных | Структуры |
<== предыдущая страница | следующая страница ==>
Функция gets(). 2 страница| Функция gets(). 4 страница

mybiblioteka.su - 2015-2024 год. (0.03 сек.)