Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 1.1

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

1.   Лабораторная работа №1.

«Преобразование целых десятичных чисел в двоичный вид».

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

 

1.1                    Задание на лабораторную работу.

 

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

Программа должна поддерживать все целочисленные типы данных языка реализации (char, int, long int, unsigned int, unsigned long int для языка C/C++, integer, byte, word, shorting, longint для Pascal/Delphi).

Отрицательные числа выводятся в дополнительном коде.

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

Замечания:

1.     Дополнительный код образуется из прямого путем инверсии бит и прибавления единицы:

Пример: -5:   5 = 00000101, -5 = not(5)+1 = 11111010+1 = 11111011

2.     Запрещается использовать для машинно-зависимые методы и библиотеки языков программирования.

1.     В качестве одного из вариантов решения предлагается следующие алгоритм на псевдоязыке:

 

program Translate1;

s : string;

begin

enter(a);

s:=’’;

while a<>0 do

  if  (abs(a) mod 2) then s:=’1’+s else s:=’0’+s;

  a:=abs(a) div 2;

end while;

if a<0 then

 mind:=0;

 for i:=1 to 8 do

   k:=val(s[8-i+1])+1+mind;

   s[8-i+1]:=k;

   if k=2 then begin

     s[8-i+1]:=’0’; mind:=1;

   endif  

   if k=3 then begin

     s[8-i+1]:=’1’; mind:=1;

   endif  

 endfor

 endif

end;

где div и mod  - операции целочисленного деления и деления по модулю соответственно.

 

program Translate1;

s : string;

begin

enter(a);

s:=’’;

while a<>0 do

  if  (abs(a) shr 1) and (1 shl (sizeof(a)+1) + 1) then s:=’1’+s else s:=’0’+s;

  a:=abs(a) shr 2;

end while;

if a<0 then

 mind:=0;

 for i:=1 to 8 do

   k:=val(s[8-i+1])+1+mind;

   s[8-i+1]:=k;

   if k=2 then begin

     s[8-i+1]:=’0’; mind:=1;

   endif  

   if k=3 then begin

     s[8-i+1]:=’1’; mind:=1;

   endif  

 endfor

 endif

end;

 

где shr и sizeof  - операции сдвига вправо и определения размера типа в битах соответственно.

Задание 1. Решение.

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

program algoritm;

uses crt ;

var s,sbox:string;

I, step, dva, n, l, delo: intger;

begin

{Алгоритм перевода}

Writeln  (‘Введите двоичное число:’);

read (dva);

s:=IntToStr(dva);      записываем двоичное число как строку

l:=length (s);          длина строки

for i:=1 to l do       делаем для каждого символа

begin

dva:=StrToInt (s [i] ); записываем текущее число

step:=l-I;   степень

if dva>0 then

begin

for n:=1to step do

dva:=dva*2;

delo:=delo+dva;     складываем

end;

end;

Writeln(‘Десятичное число:’,delo);

end.

Задание 2. Решение.

Перевод числа из двоичной системы счисления в десятичную систему счисления.

Разработанный код:

program algoritm;

uses crt ;

var i, ost,des,n: integer;

m: array [1..99] ofinteger;

begin

Writeln  (‘Введите двоичное число:’);

read (des);

n:=0;

i:=0;

repeat

  inc (n);                              сколько раз делим

  inc (i);                                     текущий элемент

  ost;=des mod 2;                          остаток

des:=des div 2;                            делим десятичное число

m [i]:=ost;    записываем в массив остаток (элемент двоичного числа - 0 или 1)

until des=0              делим пока не останется 0

writeln (‘Двоичное число:’);

for i:=n downto 1 do                                выводим наше двоичное число с конца

write (m[i], ‘ ’);

end.




1. сырые исходные данные не годятся в качестве признаковых описаний но в то же время существуют эффективные
2. Основи інженерних розрахунків на ПЕОМ Виконав студент групи
3. ЦЕНТР ОТДЫХА ЗЕРЕННУР Новогодняя сказка в Центре отдыха ЗеренНур 31 декабря
4.  Предмет философии
5. а Сметная стоимость 1565227 тыс
6. статьи где стажер адвоката работает в фирме адвоката или для такой организации как Служба уголовного пресл
7. I.eu EMPIM cll for pplictions for the cdemic yer 2014-2015 is open from 20 November 2013 to 25 Februry 2014
8. Армія і суспільство
9. КОНТРОЛЬНАЯ РАБОТА Вариант 6 Дайте ответы на следующие вопросы- 1
10. Рождение Руси
11. Алмаз 2011 ББК 65
12. Реферат- Ртуть и ее соединения
13. Лабораторна робота 1 Дослідження напівпровідникових діодів за допомогою програмного комплексу Electronics Wor
14. 2012 УЧ ГОД I
15. Альтернативные источники энергии 2.html
16. стр О мерах борьбы с огнем в Енисейской губернии
17. постановка проблемы и актуальные направления социальной политики Социальный прогресс и смены периодо
18. Тема 9 Теории денег Теории природы сущности денег.
19. Российский государственный торговоэкономический университет Кафедра иностранных языков Утв
20. Тематика рефератов- Основные достижения школы научного управления