МУ_ЛР5_ОП (Методические указания к лабораторным работам), страница 4

2018-01-11СтудИзба

Описание файла

Файл "МУ_ЛР5_ОП" внутри архива находится в папке "Методические указания к лабораторным работам". Документ из архива "Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "программирование на основе классов и шаблонов" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программирование на основе классов и шаблонов" в общих файлах.

Онлайн просмотр документа "МУ_ЛР5_ОП"

Текст 4 страницы из документа "МУ_ЛР5_ОП"

Вызов функции SWAP:

//SWAP функция

void SWAP( int *, int *); // Прототип

int k1 = 1 , k2 = 2;

printf ("До SWAP функция k1 , k2 %d %d \n",k1 , k2);

SWAP(&k1 , &k2);

printf ("После SWAP функция k1 , k2 %d %d \n",k1 , k2);

Результат работы фрагмента программы:

До SWAP функция k1 , k2 1 2

После SWAP функция k1 , k2 2 1

22 Пузырьковая сортировка целого массива (без функции)

Использование функции SWAP из предыдущего примера:

// Пузырьковая сортировка

int iMas[6] = {1,2,3,4,5,0}; // 0 - 5

int Razm = sizeof(iMas)/sizeof(int);

// Вывод начальный

for (int i = 0 ; i <Razm ; i++ )

printf ( "%2d \n" , iMas[ i ]);

printf ( "\n" );

int Flag = 0;

// Сортировка

for (int k= 0 ; k<Razm - 1 ;k++ )

{

Flag = 0;

for (int i = 0 ; i <Razm - k - 1 ; i++)

{

if ( iMas[ i ] > iMas[ i+1] ) // убывание

// if ( iMas[ i ] < iMas[ i+1] ) //возрастание

{ SWAP( &iMas[ i ], &iMas[ i+1] ); Flag = 1;};

};

if (Flag == 0) break;

};

// Вывод после сортировки

for (int i = 0 ; i <Razm ; i++ )

printf ( "%2d \n" , iMas[ i ]);

printf ( "\n" );

/////////////////////

Результат сортировки по возрастанию:

1

2

3

4

5

0

0

1

2

3

4

5

23 Сортировка минимакс

Также использование функции SWAP из предыдущего примера (не путайте с макросом Swap!):

int iMas[6] = {1,2,3,4,5,0}; // 0 - 5

int Razm = sizeof(iMas)/sizeof(int);

// Вывод начальный

for (int i = 0 ; i <Razm ; i++ )

printf ( "%2d \n" , iMas[ i ]);

printf ( "\n" );

Flag = 0;

// Сортировка

for (int k= 0 ; k<Razm - 1 ;k++ )

{

Flag = 0;

for (int i = 0 ; i <Razm - k - 1 ; i++)

{

// if ( iMas[ i ] > iMas[ i+1] ) // возрастание

if ( iMas[ i ] < iMas[ i+1] ) // убывание

{ SWAP( &iMas[ i ], &iMas[ i+1] ); Flag = 1;}

};

if (Flag == 0) break;

};

// Вывод после сортировки

for (int i = 0 ; i <Razm ; i++ )

printf ( "%2d \n" , iMas[ i ]);

printf ( "\n" );

Результат сортировки по убыванию:

0

1

2

3

4

5

5

4

3

2

1

0

Нужно создать пустой проект в MS VS, как описано выше, скопировать через буфер обмена в него текст данного примера, отладить его и выполнить.

24 Контрольные задание ЛР №5.

25 Создать макрос

Создать и отладить макрос вычисления минимума или максимума их 3-х переменных. Задание уточняется вариантом. Исходные значения задаются в программе. Результат вывести на печать.

26 Функция суммы 3-х чисел

Создать и отладить функцию сложения 3-х переменных/выражений (Summa3). Функцию разместить в новом модуле проекта – second.cpp. Результат работы функции возвращается 4-м параметром (указатель) и самой функцией .Данные заданы в программе, результат вывести на печать.

27 Функция печати массива

Создать функцию печати массива (PrintMas). Функция описывается в другом модуле (second.cpp). Тип массива задан вариантом. Оформить печать красиво.

28 Функция Swap

Создать и отладить функцию обмена данными Swap. Функция описывается в другом модуле (second.cpp). Тип данных для этой функции и название зависит от варианта.

29 Функция минимума или максимума по варианту

Создать и отладить функцию поиска в вещественном массиве (float) максимального или минимального значения ( MinMas и MaxMas) и его номера. Функция описывается в другом модуле (second.cpp). Массив задается с помощью инициализации (10 элементов). Продемонстрировать работу алгоритма в отладчике. Массив и результат поиска распечатать в главной программе.

30 Функция сортировки убывание

Оформить в виде функции алгоритмы сортировки рассмотренные выше. Варианты сортировки: пузырьковая сортировка (пуз.) и минимакс (мм.). Вид сортировки: убывание (уб.) и возрастание (воз.). Функция описывается в другом модуле (second.cpp). Тип массива определен вариантом. Для распечатки массива при проверке использовать свою функцию печати (PrintMas).

31 Рекурсивная функция

Создать функцию вычисления факториала целого числа с контролем на отрицательный входной параметр. В этом случае вывести значение равное нулю.

32 Варианты заданий для студентов СУЦ.

Варианты заданий приведены ниже. Номер варианта должен соответсвовать номеру студента в групповом журнале.

п/п

Создать макрос

Тип массива – печать сортировка

Тип функции Swap

Поиск минимума и максимума

Сортировка в одномерном массиве

Мин. Из 3-х

long

float

Максимум

Пуз. – воз.

Макс. Из 3-х

float

long

Минимум

Пуз. – уб.

Мин. Из 3-х

int

char

Максимум

Мм – воз.

Макс. Из 3-х

double

double

Минимум

Мм – уб.

Мин. Из 3-х

long

float

Максимум

Пуз. – воз.

Макс. Из 3-х

float

long

Минимум

Пуз. – уб.

Мин. Из 3-х

int

char

Максимум

Мм – воз.

Макс. Из 3-х

double

double

Минимум

Мм – уб.

Мин. Из 3-х

char

double

Максимум

Пуз. – уб.

33 Дополнительные требования для студентов СУЦ (д.т.).

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

34 Вложенные макросы

Создать макрос, внутри которого используются другие макросы, например вычисление максимума из двух.

35 Функция экстремума с параметром типа

Создать универсальную функцию поиска максимума и минимума и его номера. Тип (минимум или максимум) задается отдельным параметром функции.

36 Функция сортировки, настройка типа

Создать функцию сортировки массива, в которой тип сортировки задан отдельным параметром.

37 Сумма двумерного целого массива

Создать функцию вычисление суммы двумерного массива. Тип массива определяется вариантом для функции печати.

38 Функция Swap для строк разной длины

Создать функцию обмена строк разной длины. Строки заданы динамическими массивами. Нужно использовать функции библиотеки работы с динамической памятью (“кучей”).

39 Сортировка символьного массива

Создать функцию для сортировки символьного массива.

40 Функция с переменным числом параметров

Изучить технологию создания функций с переменным числом параметров. Продемонстрировать это на функции суммирования переменных.

41 Рекурсивная функция

Создать функцию вычисления факториала целого числа с контролем на отрицательный входной параметр. Контролировать также максимальное значение входного параметра и выдавать при этом сообщение. В этом случае вывести значение равное нулю.

42 Библиотеки RTL

Свести в отдельную табличку перечень библиотек СИ с пояснением основного назначения. Перечень библиотек можно получить на основе списка заголовочных файлов (*.h и *.hpp), размещенных в подкаталогах INCLUDE.

43 Демонстрация, защита ЛР и отчет по ЛР.

После выполнения всех необходимых шагов по ЛР, работающую программу нужно продемонстрировать преподавателю, проводящему ЛР, о чем он в журнале делает отметку. Далее студент на основе шаблона и примера оформляет отчет по ЛР. После оформления отчета, который может быть представлен преподавателю в электронном виде, выполняется защита ЛР. Студент дает ответы на вопросы по отчету и на контрольные вопросы приведенные ниже. ЛР считается полностью зачтенной, если выполнены все перечисленные требования и действия: демонстрация, отчет и защита ЛР.

44 Контрольные вопросы по ЛР.

  1. Что такое функция в программировании?

  2. Зачем нужны функции?

  3. Что такое определение функции, его составляющие?

  4. Что такое вызов функции, фактические параметры?

  5. Что такое формальные параметры функции?

  6. В чем суть концепции процедурного программирования?

  7. Какой оператор используется для возврата из функций?

  8. Что такое прототип функции, его составляющие и для чего он используется?

  9. Как лучше задавать название функции?

  10. Как можно возвратить значение данных из функций?

  11. Какие переменные (данные) можно использовать в функциях?

  12. Зачем используется спецификатор extern?

  13. Что такое рекурсивные функции?

  14. Что такое inline функции?

  15. Как в функциях можно использовать глобальные и статические переменные?

  16. Какие параметры можно задать для функции main?

  17. Что такое макросы и для чего они используются?

  18. Где в программе могут размещаться функции?

  19. Какими способами можно передать массив в функцию?

  20. Могут ли функции и макросы иметь одинаковые имена в одной программе?

  21. Что такое указатели на функции и для чего они используются?

  22. Какие библиотеки стандартных функций вы знаете?

  23. Каково назначение оператора return?

45 Литература.

Основная литература

  1. Список литературы, доступные книги и необходимые пособия для ЛР ОП размещены на сайте www.sergebolshakov.ru на страничке “2-й к СУЦ”. Пароль для доступа можно взять у преподавателя или старосты группы.

  2. Керниган Б., Ритчи Д. К36 Язык программирования Си.\Пер. с англ., 3-е изд., испр. - СПб.: "Невский Диалект", 2001. - 352 с.: ил.

  3. Касюк, С.Т. Курс программирования на языке Си: конспект лекций/С.Т. Касюк. — Челябинск: Издательский центр ЮУрГУ, 2010. — 175 с.

  4. MSDN Library for Visual Studio 2005 (Vicrosoft Document Explorer – входить в состав дистрибутива VS. Нужно обязательно развернуть при установке VS VS или настроить доступ через Интернет.)

Дополнительная литература

  1. Общее методическое пособие по курсу для выполнения ЛР и ДЗ (см. на сайте 1-й курс www.sergebolshakov.ru) – см. кнопку в конце каждого раздела сайта!!!

  2. Другие методические материалы по дисциплине с сайта www.sergebolshakov.ru.

  3. Конспекты лекций по дисциплине “Основы программирования”.

  4. Подбельский В.В. Язык Си++: Учебное пособие. – М.: Финансы и статистика, 2003.

  5. 5. Подбельский В.В. Стандартный Си++: Учебное пособие. – М.: Финансы и статистика, 2008.

  6. Г. Шилдт “С++ Базовый курс”: Пер. с англ.- М., Издательский дом “Вильямс”, 2011 г. – 672с

  7. Г. Шилдт “С++ Руководство для начинающих” : Пер. с англ. - М., Издательский дом “Вильямс”, 2005 г. – 672с

  8. Г. Шилдт “Полный справочник по С++”: Пер. с англ.- М., Издательский дом “Вильямс”, 2006 г. – 800с

  9. Бьерн Страуструп "Язык программирования С++"- М., Бином, 2010 г.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее