Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы и курсачи 2022-2023 / 2 сем / Baraeva_Elizaveta_lb1

.pdf
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
188 Кб
Скачать
☆
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В. И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра МО ЭВМ
ОТЧЕТ
по дисциплине «Программирование»
Тема: Обзор стандартной библиотеки
Студентка гр. 2383
Бараева Е. Н.
Преподаватель
Азаревич А. Д.
Санкт-Петербург
2023
2
Цель работы.
Научиться пользоваться функциями из стандартной библиотеки языка
Си. Написать программу, используя функции стандартной библиотеки.
Задание.
Вариант 4
Напишите программу, на вход которой подается массив целых чисел
длины 1000.
Программа должна совершать следующие действия:
• отсортировать массив по невозрастанию модулей элементов с помощью
алгоритма "быстрая сортировка" (quick sort), используя при этом функцию стандартной библиотеки
• посчитать время, за которое будет совершена сортировка, используя при
этом функцию стандартной библиотеки
• вывести отсортированный массив (элементы массива должны быть
разделены пробелом)
• вывести время, за которое была совершена быстрая сортировка
Отсортированный массив, время быстрой сортировки должны быть
выведены с новой строки, при этом элементы массива должны быть
разделены пробелами.
Выполнение работы.
В начале задается макроопределение N = 1000 – размер массива. Далее в функции main был создан массив a, куда, с помощью цикла for и функции scanf, были записаны числа. В переменные begin и end было записано время начала и конца сортировки, с помощью функции clock. В конце вычислялось и выводилось время, затраченное для сортировки массива, выводился массив.
Сортировка выполнялась функцией qsort, в которую передавался массив, его длина, размер одного элемента в байтах, функция comp для сравнения двух чисел.
3
Разработанный программный код см. в приложении А.
Тестирование.
Результаты тестирования представлены в табл. 1. Таблица 1 – Результаты тестирования
№ п/п
Входные данные
Выходные данные
Комментарии
1.
739 -676 139 703 -578 ­768 585 -123 792 -103 450 -979 -998 822 845 ­891 -631 482 10 512 ­783 900 283 266 -836 5 587 658 949 -402
949 900 845 822 792 739 703 658 587 585 512 482 450 283 266 139 10 5 -103
-123 -402 -578 -631 -676 ­768 -783 -836 -891 ­979 -998
0.000008
Верно
2.
42 -8 14 7 -43 -37 -38 ­14 -43 -33 -13 36 -3 31 8 16 -24 34 -33 41 29 41 ­28 32 6 -29 24 37 -28 27
42 41 41 37 36 34 32 31 29 27 24 16 14 8 7 6 -3 -8 -13 ­14 -24 -28 -28 -29 -33 -33 ­37 -38 -43 -43
0.000013
Верно
3.
-397 479 194 -335 -144 ­99 -16 -138 273 -31 -157 39 154 -216 -339 -493 ­270 -314 293 239 432 ­27 153 -471 482 386 -62 424 -200 -96
482 479 432 424 386 293 273 239 194 154 153 39 -16
-27 -31 -62 -96 -99 -138 ­144 -157 -200 -216 -270 ­314 -335 -339 -397 -471 ­493
0.000007
Верно
Вывод.
Была изучена работа по использованию функций стандартной библиотеки языке Си. Была написана программа, сортирующая массив с помощью функции qsort.
4
ПРИЛОЖЕНИЕ А
ИСХОДНЫЙ КОД ПРОГРАММЫ
Название файла: main_lb1.c
#include <stdio.h> #include <time.h> #define N 1000
int comp(const void *i, const void *j) { return *(int *)j - *(int *)i; }
int main(){ int a[N]; double time_spent = 0.0; for(int i = 0; i < N; i++){ scanf("%d", &a[i]); } clock_t begin = clock(); qsort(a, N, sizeof (int), comp); clock_t end = clock(); time_spent += (double)(end - begin); for(int i = 0; i < N; i++){ printf("%d ", a[i]); } printf("\n%f", time_spent); return 0; }
Соседние файлы в папке 2 сем