Формулировка задания: 1. Разработка алгоритма хеш-функции для реализации таблиц идентификаторов:
a. Разработайте программу на выбранном языке программирования, генерирующую 400 случайных идентификаторов (начинаются с символа латиницы и имеют случайную длину), и сохраните их в файл ID.txt.
b. Выберите две любые хеш-функции на основе открытых источников или предложенной для практики литературы. Диапазон значений хеш-функций должен лежать в пределах от 1 до 1000.
c. Реализуйте вычисление хеш-функций на выбранном языке программирования.
d. Реализуйте чтение идентификаторов с файла ID.txt, вычисление для них хеш-функции и сохранение в массив M_ID в ячейку с номером полученного хеш-значения идентификатора (для которого вычислялась хеш-функция).
e. Если в данном элементе массива уже есть идентификатор (коллизия), то добавьте новый идентификатор через разделитель к имеющемуся в элементе массива. Одновременно занесите оба идентификатора в отдельный массив M_Col в порядке их обнаружения.
f. По окончании чтения всего списка входных идентификаторов выведите массивы M_Col и M_ID в отдельные файлы с расширением txt.
• Файл M_ID должен иметь запись всех ячеек массива в порядке возрастания с указанием в первом столбце номера элемента массива. Пустые элементы также подлежат выводу в файл.
• Файл M_Col должен содержать номер элемента массива, хеш-значение и список идентификаторов.
• В конце файла должно быть вычислено отношение количества коллизий к количеству идентификаторов в %.
• Расчет хеш-значений должен быть выполнен для двух хеш-функций.
g. Проведите сравнение полученных результатов на эффективность хеш-функций с точки зрения возникновения коллизий.
2. Разработка и реализация модуля по созданию таблицы идентификаторов:
a. Разработайте программу, реализующую создание таблицы идентификаторов по заданным алгоритмам (один из них на основе хеш-функции, взятой из предыдущей работы). В качестве реализации возьмите за основу автоматное программирование.
b. Добавьте в программу глобальный счетчик для подсчета затраченных элементарных тактов процессора с целью исследования эффективности разработанной программы.
c. Выполните исследование эффективности работы разработанной программы с подсчета затраченных элементарных операций при заполнении таблицы идентификаторов на 25, 50, 75 и 100 %.
d. Представьте сравнительный анализ эффективности работы разработанной программы в виде электронной таблицы с получением выводов по данным алгоритмам реализации.
достоинства растровой графики:
растровая графика предоставляет возможность создавать любые изображения не обращая внимание на сложность их исполнения в отличие от векторной графики, которая неспособна предать хорошо переход цветов от одного к другому.
широкий спектр применения – растровая графика на сегодняшний день нашла широкое применение в различных областях, от мелких изображений (иконок) до крупных (плакатов).
высокая скорость обработки изображений различной сложности, при условие что нет необходимости в их масштабирование.
представление растровой графики является естественным для большинства устройств и техники ввода-вывода графики.
недостатки растровой графики:
большой размер файлов с простыми растровыми изображениями.
невозможно увеличение изображения в масштабе без потери качества.
вывод изображения при печати на плоттер является затруднительным.
при хорошем качестве изображения требуются значительный объем дискового пространства для хранения файлов.
сложность преобразования растрового изображения в векторное.
исходя из вышеуказанных недостатков хранить простые рисунки рекомендуется не в сжатой растровой графике, а использовать векторную.
достоинства векторной графики:
масштабирование размеров без потери качества изображения.
масштабированные изображения не увеличиваются в весе ни на один байт.
во время масштабирования качество, резкость, четкость и цветовые оттенки изображений не .
вес изображения в векторном формате в разы меньше веса изображения в растровом формате.
при конвертации изображения из векторного формата в растровый, не возникает никакой сложности.
толщина линий при изменение масштаба (увеличение или уменьшение) объектов может не изменяться.
недостатки векторной графики:
в векторной графике можно изобразить далеко не каждый объект. объем памяти и интервал времени на отображение векторной графики зависит от количества объектов и их сложности.
после преобразование из растрового изображения в векторное, обычно качество векторного изображения не высокое.
я думаю она нужна.
Задача 1:
var a,b: real;
var c: char;
begin
write('Введите a: ');
readln(a);
write('Введите b: ');
readln(b);
write('Введите нужную операцию (+,-,*,/): ');
readln(c);
if (c='+') then writeln('Результат: ',a+b)
else if (c='-') then writeln('Результат: ',a-b)
else if (c='*') then writeln('Результат: ',a*b)
else if (c='/') then writeln('Результат: ',a/b);
end.
Задача 2:
var a: integer;
begin
write('Введите количество кроликов: ');
readln(a);
write('Количество морковок: ',3*100+a*2);
end.
Задача 3:
var a: integer;
begin
write('Введите число: ');
readln(a);
write('Последняя цифра числа: ',a mod 10);
end.