Ø книги
§ название
§ автор
§ год издания
§ издательство
§ номер полки
Ø газеты
§ название
§ год издания
§ месяц
§ день
§ номер полки
Ø журналы
§ название
§ год издания
§ номер выпуска
§ номер полки
Хранение информации должно осуществляться в одном типизированном файле. При этом для описания и хранения сведений о конкретных изданиях нужно использовать такие типы данных, как записи с вариантными полями.
Интерфейс программы должен содержать меню, предоставляющее пользователю доступные действия, такие как ввод, редактирование, просмотр, удаление данных, а также выход из программы.
Можно написать две программы: одна осуществляет ввод информации в файл, а другая — поиск и редактирование в уже созданном и заполненном файле.
Параметры поиска должны задаваться программой с помощью систем меню.
Ниже приводится пример описания структур данных, используемых в программе:
type
edition = ( book, newspaper, magazine);
publication = record
name : string; { — название }
year : integer; { — год издания }
shelf : word; { — номер полки }
case kind : edition of { — вид издания }
book : { для книги: }
( author : string[20]; { — автор }
publishers : string[10] { — издательство}
);
newspaper: { для газеты: }
( day : 1..31; { — день }
month : 1..12 { — месяц }
);
magazine : { для журнала: }
( issue : byte) { — номер выпуска }
end;
var
f : file of publication;
Написать программу, которая переводит вещественное число из одной системы счисления в другую. Использовать алгоритмы перевода для целой и вещественной частей числа, описанные в [1].
На вход программе подаются:
b1 — целое число, основание входной системы счисления (2 £ b1 £ 16),
b2 — целое число, основание выходной системы счисления (2 £ b2 £ 16),
S — строка, представляющая собой последовательность цифр (запись числа в системе счисления с основанием b1).
Нужно выдать на экран запись заданного числа в системе счисления с основанием b2.
Введем следующие обозначения:
число(c) – функция, выдающая числовое значение, соответствующее литере c, обозначающей цифру в записи числа в некоторой системе счисления, например, число(’1’) = 1, число(’B’) = 11.
символ(k) – для целого числа k выдает литеру, обозначающую соответствующую данному числу цифру, например: символ(7)=’7’, символ(11) = ’B’.
Шаг 1. Разделить входную строку S на две части: строку S1, содержащую целую часть записи числа, и строку S2, содержащую дробную часть. S = S1.S2 (дробная часть может отсутствовать). Будем считать, что нумерация в строках начинается с 1.
Шаг 2. Перевод целой части числа из b1-с.с. в b2-с.с.
Пусть n1 — длина строки S1, d1 — массив целых чисел.
По схеме Горнера найти значение числа и записать в переменную N:
N := 0;
цикл по i от 1 до n1 с шагом 1
N := N * b1 + число(S1[i]);
конец цикла
Найти запись числа N в системе счисления с основанием b2:
если N = 0
то
начало
выдать_на_экран(’0’);
переход на Шаг 3;
конец
r1 := 1; //количество цифр в выходной записи числа
пока N ¹ 0 выполнять
d1[r1] := N mod b2; //остаток от деления на b2
N := N div b2; //целая часть от деления на b2
r1 := r1 + 1;
конец пока
цикл по i от r1-1 до 1 с шагом –1
выдать_на_экран(символ(d1[i]));
конец цикла
Шаг 3. Перевод дробной части числа из b1-с.с. в b2-с.с.
Пусть n2 — длина строки S2, K — максимальное количество знаков после запятой.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.