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

Лабы и курсачи 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 сем