Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование инженерных задач на базе использования алгоритмов циклической структуры на языке C в среде VS C++

Покупка
Артикул: 803784.01.99
Доступ онлайн
1 000 ₽
В корзину
Приведены краткие теоретические сведения по организации программ циклической структуры на примере алгоритмов вычисления сумм, произведений, суммы бесконечного ряда, определенного интеграла, уточнения корней уравнений. Рассмотрена организация вложенных циклов, показано решение таких задач, как вычисление определенного интеграла с заданной точностью, поиск наибольшего (наименьшего) значения функции с требуемой точностью, обработка матриц, сортировка элементов массива. Приведены примеры программной реализации изучаемых алгоритмов, задания для выполнения лабораторных работ по каждой из рассматриваемых тем. Представлены полные комплекты заданий (не менее 25 вариантов), разных по характеру, но одинакового уровня сложности. Для студентов первого курса машино- и приборостроительных специальностей. Может быть полезно преподавателям как сборник заданий при проведении лабораторных работ.
Алексеев, Ю. Е. Программирование инженерных задач на базе использования алгоритмов циклической структуры на языке C в среде VS C++ : учебное пособие / Ю. Е. Алексеев, А. В. Куров. - Москва : МГТУ им. Баумана, 2019. - 136 с. - ISBN 978-5-7038-5142-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2010615 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Ю.Е. Алексеев, А.В. Куров

Программирование инженерных задач 

на базе использования алгоритмов 
циклической структуры на языке C 

в среде VS C++

Модуль 2

Учебное пособие

Федеральное государственное бюджетное  

образовательное учреждение высшего образования  

«Московский государственный технический университет имени Н.Э. Баумана  

(национальный исследовательский университет)»

ISBN 978-5-7038-5142-5 

© МГТУ им. Н.Э. Баумана, 2019
© Оформление. Издательство  
 
МГТУ им. Н.Э. Баумана, 2019 

УДК 004.43
ББК 32.973
 
А47 

Издание доступно в электронном виде по адресу

bmstu.press/catalog/item/6197/

Факультет «Информатика и системы управления»

Кафедра «Программное обеспечение ЭВМ и информационные  

технологии» 

Рекомендовано Научно-методическим советом  

МГТУ им. Н.Э. Баумана в качестве учебного пособия 

 
Алексеев, Ю. Е.

А47 
 
Программирование инженерных задач на базе использования 
алгоритмов циклической структуры на языке C в среде 
VS C++. Модуль 2 дисциплины «Информатика» : учебное пособие / 
Ю. Е. Алексеев, А. В. Куров. — Москва : Издательство 
МГТУ им. Н. Э. Баумана, 2019. — 134, [2] с. : ил.

ISBN 978-5-7038-5142-5 
Приведены краткие теоретические сведения по организации 

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

Для студентов первого курса машино- и приборостроительных 

специальностей. Может быть полезно преподавателям как сборник 
заданий при проведении лабораторных работ. 

УДК 004.43
ББК 32.973

Предисловие

В данном учебном пособии продолжается изучение основ 

программирования на языке C в среде программирования MS 
VS, начатое в предыдущей части «Введение в информационные 
технологии и программирование на языке C в среде VS C++. Мо-
дуль 1». Теоретический материал сопровождается примерами программ, 
а также заданиями для выполнения лабораторных работ. 
Учебное пособие предназначено для самостоятельной проработки 
студентами бакалавриата и специалитета материала модуля 2 
дисциплины «Информатика», входящей в образовательную программу 
по направлениям подготовки 09.03.01 «Информатика и 
вычислительная техника», 11.05.01 «Радиоэлектронные системы 
и комплексы», 15.03.06 «Мехатроника и робототехника», 16.03.01 
«Техническая физика», 23.05.01 «Наземные транспортно-технологические 
средства», 24.05.06 «Системы управления летательными 
аппаратами», 27.03.04 «Управление в технических системах». 

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

После изучения дисциплины студенты смогут: 
– перечислять и объяснять основные термины, используемые 

в процессе разработки программ на языке программирования;

– разрабатывать алгоритмы со структурой простых и вложен-

ных циклов и представлять их в виде схем; 

– записывать алгоритмы на изучаемом языке программиро-

вания;

– программно реализовывать алгоритмы простой цикли-

ческой структуры для решения следующих задач: вычисление 
сумм и произведений, вычисление значения определенного 
интеграла, расчет суммы бесконечного ряда, уточнение корня 
уравнения;

– программно реализовывать алгоритмы со структурой вло-

женных циклов для решения следующих задач: вычисление зна-
чения определенного интеграла с заданной точностью, расчет 
наибольшего (наименьшего) значения функции с требуемой точ-
ностью, обработка многомерных массивов, сортировка массивов;

– анализировать ошибки, содержащиеся в программе, прово-

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

Изучение модуля 2 данной дисциплины предполагает предва-

рительное освоение в рамках школьного курса следующих пред-
метов: 

– основы информатики; 
– математика (необходимо знание таких понятий, как наи-

большее и наименьшее значение функции, экстремум функции, 
производная, интеграл, геометрический смысл производной и 
интеграла); 

– иностранный язык (английский). 
В соответствии с действующей программой дисциплины на 

лекционных занятиях рассматриваются общие вопросы инфор-
матики: понятия информатики и информационных технологий; 
свойства информации; математические и логические основы 
ЭВМ; технические средства и программное обеспечение; сети 
ЭВМ; базы данных. Овладение основами программирования и из-
учение конкретного языка программирования происходят только 
при выполнении упражнений и лабораторных работ. 

Лабораторные работы предназначены для приобретения на-

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

Значительную роль играет самостоятельная работа студентов, 

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

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

Каждая рассматриваемая тема завершается списком вопросов 

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

Текущий контроль проводится в процессе всего обучения, его 

итоговые результаты складываются из следующих оценок: 

– защита лабораторных работ; 
– выполнение контрольной работы (рубежного контроля); 
– работа на семинарских занятиях (упражнениях).
Текущий контроль служит для оценки владения студентом 

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

Промежуточная аттестация по дисциплине (экзамен) основы-

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

Введение

Решение многих инженерных задач основывается на ряде ал-

горитмов, которые часто называют характерными приемами про-
граммирования. К числу этих алгоритмов относят следующие:

• нахождение сумм и произведений;
• нахождение наибольшего (наименьшего) значения функции 

или элемента массива;

• вычисление суммы бесконечного ряда;
• уточнение корней уравнений;
• запоминание результатов вычислений.
Следует отметить, что решение одних задач (вычисление сум-

мы бесконечного ряда, уточнение корней уравнений) требует 
умения реализовывать циклы с заранее неизвестным числом по-
вторений, а решение других задач — циклов с заранее известным 
числом повторений, 

Циклом с заранее неизвестным числом повторений принято на-

зывать циклы, в которых заранее неизвестно количество выпол-
нений операторов, образующих тело цикла (повторений цикла). 
Выполнение циклов такого вида прекращается при выполнении 
некоторого условия.

Цикл с заранее известным числом повторений — цикл, количе-

ство повторений которого заранее известно или может быть вы-
числено простейшим образом. 

Первый вид циклов называют также итерационными циклами, 

поскольку они применяются при решении задач, предусматрива-
ющих выполнение ряда итераций. Второй вид циклов также име-
ет другое название — счетные циклы.

Несмотря на простоту, рассматриваемые алгоритмы позво-

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

При рассмотрении алгоритмов решения даже несложных за-

дач необходимо уделять внимание повышению их вычислитель-
ной эффективности. Например, при нахождении суммы бес-

конечного ряда рассматриваются разные способы вычисления 
очередного слагаемого: в соответствии с рекуррентной формулой, 
непосредственно по общей формуле члена ряда и с использовани-
ем смешанной схемы. 

Решение задачи уточнения корней уравнений иллюстрируется 

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

Решение более сложных задач требует умения разрабатывать 

и программно реализовывать алгоритмы, имеющие структуру 
вложенных циклов. 

Алгоритмической структурой с вложенным циклом называют 

такую структуру, в которой внутри одного цикла расположен один 
или несколько других циклов. Циклы, расположенные внутри 
других циклов, называют внутренними. Циклы, внутри которых 
расположены другие циклы, называют внешними. Как правило, 
решение большинства задач требует программирования алгорит-
мов со структурой вложенных циклов. 

В связи с этим отдельная глава учебного пособия посвящен 

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

В этой же главе рассмотрено нахождение наибольшего (наи-

меньшего) значения функции на заданном интервале с заданной 
точностью. 

Большое внимание уделено обработке матриц, так как инже-

неру часто в своей повседневной практике приходится сталки-
ваться с этим математическим объектом. Приводятся примеры 
программной реализации решения различных задач с матрицами. 

Рассмотрены алгоритмы сортировки элементов массивов. 

Уделено внимание наиболее простым для понимания алгорит-
мам, с которыми знакомятся студенты при изучении дисциплины 
«Информатика». К числу таких алгоритмов относятся алгоритмы 
сортировки методами прямого включения (вставки), прямого об-
мена (пузырька), выбора. 

Несмотря на кажущуюся простоту рассматриваемых алгорит-

мов, глубокое понимание материала модуля 2 и приобретенные 

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

Ключевые слова: алгоритм, бесконечный ряд, интеграл, метод 

касательных, метод половинного деления, метод парабол, метод 
прямоугольников, метод трапеций, наибольшее значение, наи-
меньшее значение, отладка, произведение, простая итерация, 
разветвляющаяся структура, сортировка, сортировка вставками, 
сортировка выбором, сортировка прямым обменом, структура 
программы, сумма, тестирование, точность, уточнение корня, 
циклическая структура.

ГЛАВА 1. ПРОГРАММЫ ЦИКЛИЧЕСКОЙ  

СТРУКТУРЫ

1.1. Приемы вычисления сумм, произведений  

и экстремальных значений

1.1.1. Вычисление суммы и произведения

При решении многих научно-технических задач часто прихо-

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

Сформулируем условие задачи. Пусть задана некоторая функ-

ция y = f (x). Определить среднее арифметическое и среднее гео-
метрическое значений функции yi = f (xi), вычисляемых в равно-
отстоящих точках интервала изменения аргумента [a, b]. Шаг 
изменения аргумента известен и равен dx. 

Интересующие нас величины вычислим по следующим фор-

мулам:

ср.ар
y

y

n

i

i

n

=
=∑
1
;

ср.геом
y
yi

i

n

n
=

=∏
1

,

где yср.ар — среднее арифметическое значение; yср.геом — среднее 
геометрическое значение; n — количество значений функции.

Сумму значений функции s = 
i

i

n

y

=∑
1

 будем определять в соот-

ветствии с правилом: вычислим очередное значение функции yi 

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

s1 = s0 + y1 = y1;

s2 = s1 + y2 = y1 + y2;

s3 = s2 + y3 = y1 + y2 + y3;

. . . . . .

sn = sn–1 + yn = y1 + y2 + y3 + . . . + yn.

Поскольку запоминать все промежуточные значения сумм по 

условию задачи не требуется, для их сохранения достаточно выде-
лить простую переменную. Таким образом, для определения сум-
мы будем использовать прием накопления, состоящий в том, что 
в цикле каждый раз к промежуточной сумме прибавляем очеред-
ное слагаемое, т. е. реализуем рекуррентную формулу s = s + y, где 
y — очередное слагаемое. Выполнив описанные действия n раз, 
получим в переменной s требуемое значение суммы. 

После первого выполнения цикла переменная s должна хра-

нить значение первого слагаемого, откуда следует, что s0 должно 
быть равно нулю. Таким образом, перед циклом, в котором вы-
числяют сумму, переменной s следует присвоить начальное зна-
чение 0.

Произведение p = 
i

i

n

y

=∏
1

 может быть найдено с использова-

нием аналогичного приема накопления, состоящего в том, что 
в цикле каждый раз произведение предшествующих сомножите-
лей p умножается на очередной сомножитель yi, т. е. используется 
рекуррентная формула p = py, где y — очередной сомножитель. 
Начальное значение переменной p перед циклом, в котором оно 
вычисляется, должно быть равно единице. 

Пример программы, определяющей среднее арифметическое 

и среднее геометрическое значения функции y
x e
x
x
=
+
2 sin
cos , вычисляемых 
на заданном интервале с заданным шагом изменения 
аргумента, приведен ниже:

#include “stdafx.h”
#include “math.h”
#include “windows.h”
#include “conio.h”
int _tmain(int argc, _TCHAR* argv[])

Доступ онлайн
1 000 ₽
В корзину