Вычислительные машины,системы и сети

Автор работы: Пользователь скрыл имя, 27 Ноября 2012 в 13:53, реферат

Описание работы

Задание 1. Выполнить арифметические действия, рассматривая операнды как ЧФЗ справа от МЗР в формате 1-го байта. Определить модуль результата. Формат результата – 2 байта.
Выполним операцию сложения Z = X+Y = 15(10) + 33(10) = 48(10).
X = 15(10) = 0000 1111(2);
Y = 33(10) = 0010 0001(2).

Файлы: 1 файл

_РГР_отчет.doc

— 432.94 Кб (Скачать файл)

                                       0001  0101  0011

  Формирование второго и третьего частичных произведений – более длительная операция, поскольку вторая и третья анализируемые тетрады содержат 3(10), поэтому каждая операция суммирования требует проверки необходимости коррекции. Вычислим P2 ( P2 = Р3 ), последовательно суммируя слагаемые, образующие P2:

 

 

Х         0001  0101  0011         первое слагаемое  Р2


Х        0001  0101  0011          второе слагаемое Р2


 Р2’     0010  1010  0110          коррекция


           0000  0110 0000


   Р2    0011  0000  0110


   Х     0001  0101  0011          третье слагаемое Р2


          0100  0101  1001           полное Р2,коррекции не требует

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

P2 = Р3 = 0100  0101  1001(2-10).

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

Р1    0000  0000  0001  0101  0011   первое сдвинутое частичное произведение


Р2    0000  0100  0101  1001             второе сдвинутое частичное произведение


         0000  0100  0110  1110  0011    сумма Р1 и Р2, 4 тетрада требует корректировки


      0000  0000  0000  0110  000            коррекция


      0000  1000  1100  1101  0011            сумма Р1+ Р2 


 Р3  0100 0101  1001                       третье частичное произведение


         0100  1010  0000  0100  0011        сумма Р1+ Р23, корректировка требуется


       0000  0000  0110  0000  0000          коррекция


       0100 1010  0110  0100   0011  требует коррекции 2 тетрада


        0000  0110  0000  0000  0000    коррекция


      0101  0000  0110  0100 0011 скорректированная сумма Р1+ Р23,

Результат Z=0101  0000 0110  0100  0011(2-10)=50643

 

Часть № 2 Варианты задач  на программирование

 

Вариант № 1

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

 

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

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

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

  1. Разработка визуального интерфейса пользователя, на основе экранных форм среды MicrosoftVisualStudio 2010 и элементов управления, предназначенных для ввода исходных данных, запуска действий по обработке исходных данных, вывода результата обработки.
  2. Разработка обработчиков событий от элементов экранных форм, разработка алгоритмов и программных кодов действий обработки данных согласно заданию;
  3. Подготовка тестовых исходных данных и отладка программы.

 

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

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

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

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

Программа должна быть реализована  с графическим интерфейсом пользователя в среде Microsoft Visual Studio 2010 и должна выполнять следующие функции:

  1. Перевод  целых и вещественных чисел из двоичной системы счисления в десятичную систему счисления.
  2. Перевод  целых и вещественных чисел из десятичной системы счисления в двоичную систему счисления.

 

 Преимущества и основные возможности языка C# и концепции .NET

Проанализировав основные особенности языка программирования C#, а также исследовав структуру  и принципы построения программ на этом языке, можно выделить основные преимущества языка C# и платформы .NET.

Язык программирования C# призван практически реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования (фрагментов) программ.

Принципиально важным отличием от предшественников является изначальная  ориентация на безопасность кода (что  особенно заметно в сравнении  с языками C и C++).

Унифицированная, максимально  близкая по масштабу и гибкости к  CommonTypeSystem, принятой в Microsoft .NET, система типизации является важным преимуществом языка C#.

Язык программирования C# является «родным» для создания приложений в среде Microsoft .NET, поскольку наиболее тесно и эффективно интегрирован с ней.

Языку C# присущи следующие характеристики:

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

2)мощность(имеет такой  же набор команд как и С++, но со сглаженными ограничениями)

3)легкость в использовании(изменяет  команды, ответственные за большинство  ошибок в С++)

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

Объединение лучших идей современных  языков программирования (Java, C++, VisualBasic и др.) делает язык C# не просто суммой их достоинств, а языком программирования нового поколения.

Словесный алгоритм программы

Программа начинается с вызова обработчиков событий от элементов экранных форм. Первоначально на экране появляется  окно программы с необходимыми полями ввода чисел. Для ввода чисел в двоичной системе счисления необходимо заполнить соответствующее поле цифрами с двоичном формате, т.е. 0 и 1. Для запуска перевода чисел, необходимо нажать клавишей мыши на стрелку-обработчик запросов, или нажать кнопку Enter, после чего, в поле десятичных чисел появится результат счисления. При необходимости перевода чисел из десятичной системы счисления в двоичную, в поле ввода десятичных чисел вводится число в десятичном формате, и, аналогично нажимается стрелка перевода, в поле ввода  двоичных чисел, никакие другие цифры кроме 1 и 0 вводится не будут. Если необходимо перевести вещественное число, то целая часть отделяется от дробной символом «.» (точка). Если введенное число отрицательное, то в результат приписываем знак «-». Реализован 4-х байтовый формат.

4-x байтовая ячейка памяти. В  ячейке должна содержаться следующая  информация о числе:

- порядок;

- значащие цифры мантиссы.

8 бит 1-го байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы (24 разряда).

Хранение результата вычислений удобнее хранить в стеке.

Стек – это область памяти, специально выделяемая для временного хранения данных программы. Отличительной особенностью стека является особая организация обращения к нему со стороны МП. Запись и чтение данных в стеке осуществляется в соответствии с принципом LIFO (Last In First Out) – «последним пришел, первым ушел». Таким образом, информация в стеке размещается в строгой последовательности – ячейка памяти, заполненная последней, считывается первой, а ячейка памяти заполненная первой извлекается последней. В ячейки стека информация заносится последовательно и извлекается в порядке обратном порядку занесения. Таким образом, стек функционирует как память с последовательным доступом. По мере записи данных в стек он растёт в сторону младших адресов.

Алгоритм перевод из десятичной системы счисления в двоичную систему счисления.

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

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

Алгоритм перевода смешанного десятичного числа в двоичное:

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

Алгоритм перевода целого десятичного  числа в двоичное:

последовательно выполнять деление  целого десятичного числа и получаемых целых частных на 2 до тех пор, пока не получится частное, меньшее 2;

записать полученные остатки в  обратной последовательности.

 

Спецификация  переменных

     Таблица 1 – Спецификация переменных

Идентификатор

Тип

Описание

Х

double

Изначальное введенное  число

whole

int

Целая часть дробного числа

 fract

float

Дробная часть числа

i

int

Счетчик


 

Приложение А

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

начало


А


 

 

 

 

Вывод содержимого стека


Остаток от деления на 2 записываем в стек


 

оороорооороро

Разложение  целой части, пока число >1


Выделяем  дробную часть 


Выделяем  целую часть


Берем модуль числа


Дописываем  «-» в ответ


Число<0


Вводим  число



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение Б

(продолжение)

Запись  целой части 1 или 0


Умножаем  дробную часть на 2


Разложение  дробной части, пока !=0


Дописываем  «.»


Дробная часть >0


А


 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись  в результат



Вывод результата



 

конец



 

 

 

 

Приложение В

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

начало


     


Конец


 

 

 

 

 

 

 

 

 

 

Вывод результата


Заносим в результат


Справа  налево умножаем на 2 степени разряда  с 0


Заносим в результат


число умножаем на 2 в степени разряда, начиная с-1


 

От точки  до конца строки переводим дробную  часть


Заносим в результат


число умножаем на 2 в степени разряда, начиная  с нулевого


 

Справа  налево переводим целую часть


Если нашли  точку


Дописываем  «-»в ответ


Если первый символ «-»


Вводим  число



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение  Г

Информация о работе Вычислительные машины,системы и сети