Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 05 22 Методичка_Программирование_2.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
133 Кб
Скачать
☆
    1. Содержание отчета

Отчет должен содержать листинг программы, в которой реализованы задание и функции тестирования, представлены результаты работы программы.

    1. Контрольные вопросы

  1. Опишите простой алгоритм сортировки.

  2. Опишите алгоритм быстрой сортировки.

  3. Как изменятся условия для простого алгоритма сортировки, если элементы массива нужно расположить в порядке убывания?

  4. Как изменятся условия для простого алгоритма сортировки, если элементы в массиве начать располагать начиная с наибольшего?

  5. Объясните назначение функции print_mas из примера в теоретической части.

  6. Какое количество операций сравнения потребуется для простого алгоритма сортировки при количестве элементов, равном шести?

  7. Как связаны между собой значения, обозначенные одинаковыми буквами со штрихом и без штриха?

––––––––––––––––––––––––––––––––––––––––––

  1. К е р н и г а н Б. Язык программирования C / Б. К е р н и г а н, Д. Р и т -

ч и. М.: Вильямс, 2009. 304 с.

ПРИЛОЖЕНИЕ

ПРИМЕР ТЕСТИРОВАНИЯ ФУНКЦИЙ

// Пример тестирования функций

// Для вывода отладочных сообщений нужно определить символ DEBUG_MAX

// Сделать это можно при компиляции с помощью ключа –D:

// Например: «C:\MinGW\bin>gcc d:/work/prog4_1.c -D DEBUG_MAX»

#include "stdio.h"

int max_len_equ_symb(char* str, int n)

// Функция находит количество элементов в наиболее длинной последовательности элементов в массиве str

// n - количество элементов в массиве str

{

int i; // Текущий просматриваемый символ

int l=1; // Максимальное количество одинаковых символов среди просмотренных

int m=1; // Текущее количество символов

char c=str[0]; // Последний встретившийся символ

for(i=1; i<n; i=i+1)

{

if(str[i]==c)

m=m+1;

else

{

m=1;

c=str[i];

}

if(m>l)

l=m;

// Это директивы препроцессора

// Все, что между ними, будет включено в программу только в случае, если определен символ DEBUG_MAX

#ifdef DEBUG_MAX

О к о н ч а н и е п р и л.

printf("i = %i, l= %i \n", i, l); // Это отладочные сообщения, которые будут печататься только при отладке. Выводим на экран интересующие нас переменные

#endif

}

return l;

}

// В примере тесты проводятся в главной функции программы

// В общем случае нужно создавать тестирующие функции для каждой созданной функции

int main()

{

int l, n=10;

// Строки, на которых мы будем тестировать нашу функцию:

char str1[]="aaabbbccdd\0";

char str2[]="abbbbbccdd\0";

char str3[]="aabbbcdddd\0";

l = max_len_equ_symb(str1, n);

printf("\nTEST 1\n str=%s,\n l=%i\n", str1,l);

// Для первой строки функция должна выдать результат 3

if (l==3)

printf("Test passed\n\n");

else

printf("Test fail\n\n");

l = max_len_equ_symb(str2, n);

printf("\nTEST 1\n str=%s,\n l=%i\n", str2,l);

if (l==5)

printf("Test passed\n\n");

else

printf("Test fail\n\n");

l = max_len_equ_symb(str3, n);

printf("\nTEST 1\n str=%s,\n l=%i\n", str3,l);

if (l==4) printf("Test passed\n\n");

else

printf("Test fail\n\n");}

Учебное издание

АЛЬТМАН Евгений Анатольевич,

АЛЕКСАНДРОВ Александр Владимирович,

АНАНЬЕВА Надежда Геннадьевна,

АКТАЕВ Нуркен Ерболатович

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

____________________________________

Редактор Н. А. Майорова

Корректор Д. А. Волнина

* * *

Подписано в печать   .05.2012. Формат 60  84 1/16.

Плоская печать. Бумага офсетная. Усл. печ. л. 1,9. Уч.-изд. л. 2,2.

Тираж 100 экз. Заказ  .

* *

Редакционно-издательский отдел ОмГУПСа

Типография ОмГУПСа

*