engineerklub | Дата: Понедельник, 18.03.2024, 06:07 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28525
Статус: Offline
| Оптимизирующие компиляторы. Вариант №08(18)
Тип работы: Работа Лабораторная Форматы файлов: Microsoft Office, C, C++ Сдано в учебном заведении: СибГУТИ
Описание: ЛАБОРАТОРНАЯ РАБОТА №1 «ОПРЕДЕЛЕНИЕ ВРЕМЕНИ РАБОТЫ ПРИКЛАДНЫХ ПРОГРАММ» Цели работы 1. Изучение методики измерения времени работы подпрограммы. 2. Изучение приемов повышения точности измерения времени работы подпрограммы. 3. Изучение способов измерения времени работы подпрограммы. 4. Измерение времени работы подпрограммы в прикладной программе.
5. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ 1. Написать программу на языке C или C++, которая реализует выбранный алгоритм из задания. 2. Проверить правильность работы программы на нескольких тестовых наборах входных данных. 3. Выбрать размерность массива N такой, чтобы время работы программы более медленным алгоритмом было порядка 5 секунд. 4. Оценить (на 5-10 тестах) относительное быстродействие алгоритмов. 5. Составить отчет по лабораторной работе. Отчет должен содержать следующее: 6. ВАРИАНТЫ ЗАДАНИЙ № Алгоритм 1 Алгоритм 2 8 Быстрая Расчёской
ЛАБОРАТОРНАЯ РАБОТА №2. «ИЗУЧЕНИЕ ОПТИМИЗИРУЮЩЕГО КОМПИЛЯТОРА» Цели работы 1. Изучение основных функций оптимизирующего компилятора, и некоторых примеров оптимизирующих преобразований и уровней оптимизации. 2. Получение базовых навыков работы с компилятором GCC. 3. Исследование влияния оптимизационных настроек компилятора GCC на время исполнения программы. В лабораторной работе описаны основные возможности компилятора GCC/CNU, являющегося классическим образцом оптимизирующего компилятора. При выполнении задания в ОС Windows рекомендуется QT (https://www.qt.io/) - бесплатный IDE для C++ с компилятором MinGW (программный порт GCC под Windows). ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ 1. Написать программу на языке C или C++, которая реализует выбранный алгоритм из задания. 2. Проверить правильность работы программы на нескольких тестовых наборах входных данных. 3. Выбрать значение параметра N таким, чтобы время работы программы было порядка 30-60 секунд. 4. Программу скомпилировать компилятором GCC с уровнями оптимизации -O0, -O1, -O2, -O3, -Os, -Ofast, -Og под архитектуру процессора x86. 5. Для каждого из семи вариантов компиляции измерить время работы программы при нескольких значениях N. № Алгоритм 1 Алгоритм 2 8 Быстрая Расчёской
Лабораторная работа № 3. Оптимизация временной сложности алгоритма
Цели работы 1. Изучение основных понятий, связанных с оценкой временной сложности алгоритмов . 2. Изучение практических приемов оптимизации кода. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ В соответствии с вариантом задания, реализовать алгоритмы так, чтобы их временная сложность соответствовала требуемой в постановке задачи или были проведены иные оптимизации. Решения представить в виде работающих программ на C++. Таблица вариантов № Алгоритм 1 Алгоритм 2 8 8 3 № Алгоритм Реализация на C++ Текущая временная сложность кода Требуемая временная сложность кода и/или улучшение алгоритма 3 Поиск номера максимального элемента в массиве a [n]int max=a[0], imax=0; for (int i=1; i<n; i++) if (a>max) { max = a; imax=i; } O(n) O(n) (реализовать алгоритм без применения 2 дополнит. переменных) 8 Получение четырёхзначного натурального числа из пары двузначных int a=12,b=34; char buf[4]; itoa(a,buf,10); itoa(b, &buf[2], 10); cout << buf; O(1) O(1) (устранить использование дополнительного строкового буфера)
СКАЧАТЬ
|
|
| |