Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2016, 23:49   #1
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию Лабораторная

Помогите, пожалуйста, разобраться с заданием...

Структуры данных(СД)

Задание:
1. Для типов данных определить:
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. Для заданных типов данных определить набор значений, необходимый для изучения физического уровня представления СД.


например, для типа shortint как сделать эту лабораторную...? Ну или на каком-нибудь примере, пожалуйста..
manchester_alan вне форума Ответить с цитированием
Старый 26.02.2016, 00:36   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,875
По умолчанию

Цитата:
Сообщение от manchester_alan Посмотреть сообщение
Помогите, пожалуйста, разобраться с заданием...

Структуры данных(СД)

Задание:
1. Для типов данных определить:
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. Для заданных типов данных определить набор значений, необходимый для изучения физического уровня представления СД.


например, для типа shortint как сделать эту лабораторную...? Ну или на каком-нибудь примере, пожалуйста..
Тема "Структуры данных".
Структуры данных это набор данных разных типов.
Тип shortint - это простой тип, а ни разу не структура.
Ну почти ни разу

P.S. А в целом учебное задание неплохое.
Интересно где такие задают? И смогут ли тамошние преподы сами грамотно сделать такую работу?
northener вне форума Ответить с цитированием
Старый 26.02.2016, 01:28   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Задача довольно простая, описать типизированное хранение данных. Или я не правильно понял?

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

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

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

Блок данных - содержит информацию о файле, а так же сам файл.

Ну а теперь паскаль:
Код:

TDataBlockHeaderInfo = record //SizeOf(TDataBlockHeaderInfo) = 256+4+4+4 = 268 bytes
  name: array[0..255] of AnsiChar; //length * sizeof(char) = 256 bytes
  size: Integer; //4 bytes
  datectreate:Integer; // 4 bytes, unix datetime stump
  offset:Integer; //4 bytes
end;

TContainerHeaderInfo = record //SizeOf(TContainerHeaderInfo) = 7+4+4+4+(SizeOf(TDataBlockHeaderInfo) * filesCount) = ? bytes
  magic: array[0..6] of ansiChar; //фраза .myarch чтобы файл можно было сразу по сигнатуре распознать, по первым 7 байтам файла
  ver: Integer; //4 bytes
  size: Integer; //4 bytes
  filesCount: Integer; //4 bytes
  filesInfo: array of TDataBlockHeaderInfo;
end;

TDataBlock = record //SizeOf(TDataBlock) = 4+dataSize = ? bytes
  dataSize: Integer; //4 bytes
  data: array of byte; //sizeof(dataSize)+dataSize = .. :)
end;
Операции:
Ну напишите простенький менеджер, который сможет хотя бы создавать такие контейнеры, открывать уже созданные. Модификацию данных в контейнере, это уже на ваш вкус, хотя не помешало бы.

Опишите сразу заголовок (без указания смещений), а при начале записи информации о блоке данных, указывайте позицию файла в шапку контейнера в массив filesInfo по индексу (for i:=0 to и т.д.). и будет вам счастье.

как-то так...

Цитата:
Тип shortint - это простой тип, а ни разу не структура.
Ну почти ни разу
Ну чо уж там, давайте сразу действительно большие числа, типа BIGInt, предложим

Последний раз редактировалось Человек_Борща; 26.02.2016 в 01:38.
Человек_Борща вне форума Ответить с цитированием
Старый 26.02.2016, 01:51   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,875
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Задача довольно простая, описать типизированное хранение данных. Или я не правильно понял?
Ну попробуй для начала
"определить:
1.1. Абстрактный уровень представления СД:
1.1.1. Характер организованности и изменчивости."
northener вне форума Ответить с цитированием
Старый 26.02.2016, 09:33   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Задание хорошее и полезное. Но только написано на Олбанском языке.

Переведём, то что по написано.
Структуры данных(СД) - Объектно ориентированное программирование(ООП)

Задание:
1. Для типов данных определить: 1. Для объектов найти или определить:
1.1. Абстрактный уровень представления СД: 1.1. Обобщённое описание.
В литературе вы встретите термин абстрактное, но слово "обобщение" более понятнее
1.1.1. Характер организованности и изменчивости. 1.1.1. Характер организованности и порождения.
1.1.2. Набор допустимых операций. 1.1.2. Набор допустимых, возможных методов(функций, процедур, действий, операций).
Не знаю что автор имел в виду под слово допустимых. Вам вначале надо составить набор возможных методов над объектом, а так как мы в разделе обобщения. То отобрать только необходимые которые есть у большинства объектов данного вида
1.2. Физический уровень представления СД: 1.2. Структурное описание объекта
Физическое это 3,3 В и 0,1В. Так что физическое тут не в тему
1.2.1. Схему хранения.
1.2.2. Объем памяти, занимаемый экземпляром СД. 1.2.2. Объем памяти, занимаемый экземпляром объекта.
1.2.3. Формат внутреннего представления СД и способ его интерпретации. 1.2.3. Формат внутреннего представления объекта и способ его интерпретации.
1.2.4. Характеристику допустимых значений.
1.2.5. Тип доступа к элементам. 1.2.5. Ограничения на доступ к элементам
В литературе это обзывается инкапсуляцией
1.3. Логический уровень представления СД.
Способ описания СД и экземпляра СД на языке программирования.
1.3. Формальная запись на языке программирования.
2. Для заданных типов данных определить набор значений, необходимый для изучения физического уровня представления СД. Хрень какая та.


1. Форма ввода строки. Далее TStrInputForm
1.1. Форма ввода строки есть обобщение следующих объектов: Форма ввода фамилии, форма ввода стиля шрифта, форма ввода названия файла.
1.1.1. Наследование от формы(TForm) путём расширения. Схему нарисуете сами по правилам UML.
Перепоручения - анг. делегирование.
Перепоручаем ввода строке ввода(TEdit). А отображение требований к вводу перепоручаем метке(TLabel).
1.1.2.
Возможные методы:
Нажатие "ВВод" и кнопки "ОК" - действие завершение (ButtonOkClick).
"Отмена." - действие ButtonAbortClick
------------------------
Необходимым: ButtonOkClick
ButtonAbortClick выкидываем как излишество.

1.2.
Схема по пункту 1.3. Смотри пункт 1.3

1.2.2. Сама структура носит переменный характер. Размер зависит от длины строки введённый пользователем. А собственный размер объекта.
4 байта служебных данных
Label1: TLabel; - 4 байта ссылка на TLabel
Edit1: TEdit; - 4 байта ссылка на TEdit
ButtonOk: TButton; - 4 байта ссылка на TButton
Итого 16 байт.

1.2.3. Строка хранится в String: далее ASCII 1 байт на знак. Плюс длина строки и нули не менее 1 в конце и не более 4.
1.2.4 Без ограничений на ввод ASCII. К примеру для для чисел можно было бы ограничить знаками '0'..'9', ','
1.2.5. Открытые.
1.3
Код:
type
  TStrInputForm = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    ButtonOk: TButton;
    procedure ButtonOkClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 26.02.2016, 13:24   #6
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Задача довольно простая, описать типизированное хранение данных. Или я не правильно понял?

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

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

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

Блок данных - содержит информацию о файле, а так же сам файл.

Ну а теперь паскаль:
Код:

TDataBlockHeaderInfo = record //SizeOf(TDataBlockHeaderInfo) = 256+4+4+4 = 268 bytes
  name: array[0..255] of AnsiChar; //length * sizeof(char) = 256 bytes
  size: Integer; //4 bytes
  datectreate:Integer; // 4 bytes, unix datetime stump
  offset:Integer; //4 bytes
end;

TContainerHeaderInfo = record //SizeOf(TContainerHeaderInfo) = 7+4+4+4+(SizeOf(TDataBlockHeaderInfo) * filesCount) = ? bytes
  magic: array[0..6] of ansiChar; //фраза .myarch чтобы файл можно было сразу по сигнатуре распознать, по первым 7 байтам файла
  ver: Integer; //4 bytes
  size: Integer; //4 bytes
  filesCount: Integer; //4 bytes
  filesInfo: array of TDataBlockHeaderInfo;
end;

TDataBlock = record //SizeOf(TDataBlock) = 4+dataSize = ? bytes
  dataSize: Integer; //4 bytes
  data: array of byte; //sizeof(dataSize)+dataSize = .. :)
end;
Операции:
Ну напишите простенький менеджер, который сможет хотя бы создавать такие контейнеры, открывать уже созданные. Модификацию данных в контейнере, это уже на ваш вкус, хотя не помешало бы.

Опишите сразу заголовок (без указания смещений), а при начале записи информации о блоке данных, указывайте позицию файла в шапку контейнера в массив filesInfo по индексу (for i:=0 to и т.д.). и будет вам счастье.

как-то так...


Ну чо уж там, давайте сразу действительно большие числа, типа BIGInt, предложим
спасибо, да мне этого всего не надо, просто вот охарактеризовать по этому плану какой нибудь тип данных))
manchester_alan вне форума Ответить с цитированием
Старый 26.02.2016, 13:26   #7
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Задание хорошее и полезное. Но только написано на Олбанском языке.

Переведём, то что по написано.
Структуры данных(СД) - Объектно ориентированное программирование(ООП)

Задание:
1. Для типов данных определить: 1. Для объектов найти или определить:
1.1. Абстрактный уровень представления СД: 1.1. Обобщённое описание.
В литературе вы встретите термин абстрактное, но слово "обобщение" более понятнее
1.1.1. Характер организованности и изменчивости. 1.1.1. Характер организованности и порождения.
1.1.2. Набор допустимых операций. 1.1.2. Набор допустимых, возможных методов(функций, процедур, действий, операций).
Не знаю что автор имел в виду под слово допустимых. Вам вначале надо составить набор возможных методов над объектом, а так как мы в разделе обобщения. То отобрать только необходимые которые есть у большинства объектов данного вида
1.2. Физический уровень представления СД: 1.2. Структурное описание объекта
Физическое это 3,3 В и 0,1В. Так что физическое тут не в тему
1.2.1. Схему хранения.
1.2.2. Объем памяти, занимаемый экземпляром СД. 1.2.2. Объем памяти, занимаемый экземпляром объекта.
1.2.3. Формат внутреннего представления СД и способ его интерпретации. 1.2.3. Формат внутреннего представления объекта и способ его интерпретации.
1.2.4. Характеристику допустимых значений.
1.2.5. Тип доступа к элементам. 1.2.5. Ограничения на доступ к элементам
В литературе это обзывается инкапсуляцией
1.3. Логический уровень представления СД.
Способ описания СД и экземпляра СД на языке программирования.
1.3. Формальная запись на языке программирования.
2. Для заданных типов данных определить набор значений, необходимый для изучения физического уровня представления СД. Хрень какая та.


1. Форма ввода строки. Далее TStrInputForm
1.1. Форма ввода строки есть обобщение следующих объектов: Форма ввода фамилии, форма ввода стиля шрифта, форма ввода названия файла.
1.1.1. Наследование от формы(TForm) путём расширения. Схему нарисуете сами по правилам UML.
Перепоручения - анг. делегирование.
Перепоручаем ввода строке ввода(TEdit). А отображение требований к вводу перепоручаем метке(TLabel).
1.1.2.
Возможные методы:
Нажатие "ВВод" и кнопки "ОК" - действие завершение (ButtonOkClick).
"Отмена." - действие ButtonAbortClick
------------------------
Необходимым: ButtonOkClick
ButtonAbortClick выкидываем как излишество.

1.2.
Схема по пункту 1.3. Смотри пункт 1.3

1.2.2. Сама структура носит переменный характер. Размер зависит от длины строки введённый пользователем. А собственный размер объекта.
4 байта служебных данных
Label1: TLabel; - 4 байта ссылка на TLabel
Edit1: TEdit; - 4 байта ссылка на TEdit
ButtonOk: TButton; - 4 байта ссылка на TButton
Итого 16 байт.

1.2.3. Строка хранится в String: далее ASCII 1 байт на знак. Плюс длина строки и нули не менее 1 в конце и не более 4.
1.2.4 Без ограничений на ввод ASCII. К примеру для для чисел можно было бы ограничить знаками '0'..'9', ','
1.2.5. Открытые.
1.3
Код:
type
  TStrInputForm = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    ButtonOk: TButton;
    procedure ButtonOkClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
и вам спасибо, но надо просто письменно словами описать по плану один из типов) программы тут не надо... Ну это нам так дали задание... и это не опп..

Последний раз редактировалось manchester_alan; 26.02.2016 в 13:30.
manchester_alan вне форума Ответить с цитированием
Старый 26.02.2016, 13:28   #8
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Тема "Структуры данных".
Структуры данных это набор данных разных типов.
Тип shortint - это простой тип, а ни разу не структура.
Ну почти ни разу

P.S. А в целом учебное задание неплохое.
Интересно где такие задают? И смогут ли тамошние преподы сами грамотно сделать такую работу?
предмет структура данных, но это в этом задании надо охарактеризовать вот так по плану один из типов... вообще их несколько надо сделать, но мне б пример посмотреть на одном и дальше уже сам смогу..
manchester_alan вне форума Ответить с цитированием
Старый 26.02.2016, 22:16   #9
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

никто это не делал?
manchester_alan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c# лабораторная nikitaivanov Фриланс 1 26.05.2012 15:05
лабораторная за $$$ djendalf Фриланс 0 26.12.2011 22:41
Лабораторная по C++ Mr.Voragus001 Помощь студентам 0 10.12.2011 13:02
Лабораторная asya92 Помощь студентам 4 20.12.2010 18:52
лабораторная С, С++ mashka2705 Помощь студентам 0 07.11.2010 21:19