Встроенные структуры данных(Pascal/С)

Цель работы: изучение базовых типов данных языка Pascal/C как структур данных (СД).

З а д а н и е

1. Для типов данных (см. Варианты заданий в таблицах 1,2) определить:

1.1. Абстрактный уровень представления СД:

1.1.1. Характер организованности и изменчивости.

1.1.2. Набор допустимых операций.

1.2. Физический уровень представления СД:

1.2.1. Схему хранения.

1.2.2. Объем памяти, занимаемый экземпляром СД.

1.2.3. Формат внутреннего представления СД и способ его интерпретации.

1.2.4. Характеристику допустимых значений.

1.2.5. Тип доступа к элементам.

1.3. Логический уровень представления СД.

Способ описания СД и экземпляра СД на языке программирования.

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

3. Преобразовать значения в двоичный код.

4. Преобразовать двоичный код в значение.

5. Разработать и отладить программу, выдающую двоичное представление значений заданных СД.


В программе использовать процедуры PrintByte и PrintVar.

Спецификация процедуры PrintByte:

1. Заголовок: procedure PrintByte(a:byte)/void PrintByte(unsigned char a).

2. Назначение: выводит на экран монитора двоичное представление переменной a типа byte/unsigned char.

3. Входные параметры: a.

4. Выходные параметры: нет.

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

Спецификация процедуры PrintVar:

1. Заголовок: procedure PrintVar(var a; size:word)/ void PrintVar(void a, unsigned int size).

2. Назначение: выводит на экран монитора двоичное представление переменной a произвольного типа размером size байт.

3. Входные параметры: a — переменная произвольного типа, значение которой выводится на экран в двоичном представлении (нетипизованный параметр); size — объем памяти (в байтах) занимаемый переменной a.

4. Выходные параметры: нет.

Рекомендации: нетипизованную переменную a привести к типу «массив байт», значение каждого элемента которого выводить на экран в двоичном представлении процедурой PrintByte.

6. Обработать программой значения, полученные в результате выполнения пункта 3 задания. Сделать выводы.

7. Разработать и отладить программу, определяющую значение переменной по ее двоичному представлению по следующему алгоритму:

1. Ввести двоичный код в переменную S строкового типа.

2. Преобразовать S в вектор B типа «массив байт».

3. Привести B к заданному типу. Вывести значение.

4. Конец.

8. Обработать программой значения, полученные в результате выполнения пункта 4 задания. Сделать выводы.


Таблица 1

Варианты индивидуальных заданий на Pascal

номер варианта тип 1 тип 2 тип 3
  integer real (red, yellow, green)
  longint real массив [1..3,1..3] char
  word double set of byte
  byte single 1000..2000
  integer extended 'A'..’Z’
  shortint single массив [1..5] real
  longint comp (cat, dog,mouse,tiger)
  byte real –300..300
  word double (winter,spring,summer,autumn)
  shortint real set of 'a'..'h'
  byte single –1..1
  word comp 1..256
  integer double set of 50..100
  byte extended 'a'..'h'
  longint double –256..–1
  shortint extended (one,two,three,four,five,six)
  word real 256..511
  integer single 1..50
  longint extended (a, b, c, d, e, f, g, h)
  byte double массив [1..8] char
  shortint comp –10..10
  word single запись
  integer extended массив [1..6] boolean
  byte comp (winter,spring,summer,autumn)
  longint double 35000..35001
  shortint real set of 200..250
  word extended запись
  integer comp 1..256
  byte single массив [1..2,1..4] integer
  shortint double (day, night)

Таблица 2

Варианты индивидуальных заданий на C

номер варианта тип 1 тип 2 тип 3
  int float {red, yellow, green}colors

Окончание табл.2

  longint float char массив[3][3]
  unsigned short double {winter,spring, summer,autumn}seeson
  byte float float массив[10][10]
  int long double структура
  signed char float float массив[5]
  longint comp {cat, dog,mouse,tiger}animal
  byte float {a, b, c, d, e, f, g, h}lettre
  unsigned short double {winter,spring, summer,autumn}seeson
  signed char float {red, yellow, green}colors
  byte float char массив[3][3]
  unsigned short comp {winter,spring, summer,autumn}seeson
  int double double массив[3][3][3]
  byte long double int массив [5][5]
  longint double структура
  signed char long double {one,two,three,four, five,six}number
  unsigned short float {cat, dog,mouse,tiger}animal
  int float char Массив [4][4]
  longint long double {a, b, c, d, e, f, g, h}lettre
  byte double char массив [8]
  signed char comp float массив[3]
  unsigned short float структура
  int long double int массив [6]
  byte comp {winter,spring, summer,autumn}seeson
  longint double структура
  signed char float float массив[10]
  unsigned short long double структура
  int comp {winter,spring, summer,autumn}seeson
  byte float int массив[2][4]
  signed char double {red, yellow, green}colors

С о д е р ж а н и е о т ч е т а

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Характеристика каждого заданного типа данных как СД в соответствии с пунктом 1 задания.

5. Набор значений заданных типов, порядок их преобразования в двоичное представление, двоичное представление значений.

6. Набор двоичных векторов, порядок их преобразования в значения заданных типов, значения заданных типов.

7. Спецификация алгоритма, текст программы, результаты работы программы, выводы (пункты 5, 6 задания).

8. Спецификация алгоритма, текст программы, результаты работы программы, выводы (пункты 7, 8 задания).

Т е о р е т и ч е с к и е с в е д е н и я


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: