МУ_ЛР3_ОП (1079925), страница 2

Файл №1079925 МУ_ЛР3_ОП (Методические указания к лабораторным работам) 2 страницаМУ_ЛР3_ОП (1079925) страница 22018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Исполнимые модули предназначены для непосредственного выполнения на компьютере или подключения в выполняемую программу. Основные исполнимые модули имеют расширение *.exe (или *.com), поэтому операционная система может контролировать их запуск. Модули динамических библиотек имеют расширение *.dll. Существуют и другие разновидности исполнимых модулей, зависящих от используемых технологий. Исполнимые модули формируются специальной программой системы программирования редактором связей (или компоновщиком). Редактирование связей заключается в проверке межмодульных связей по функциям и по данным и объединении их единый исполнимый модуль. Последовательный процесс обработки программы для получения исходного модуля представлен в методическом пособии в разделе 3[5].

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

// Модуль 1

int i = 0; // Глобальная переменная

int Summ(int a, int b){}; // Описание функции в модуле 1

// Модуль 2

extern int i; // Описание внешних данных

int Summ(int , int ); // Прототип внешней функции

main(){

i = 5; // Использование внешних данных

S = Summ(2,2); // Вызов внешней функции

}

В модуле 2 используется переменная i, описанная как глобальная переменная в модуле 1. В модуле 2 используется функция Summ, описанная как в модуле 1. Для правильного объединения связей (работы редактора связей) используются описания внешних данных (extern) и задание прототипа функции Summ.

9 Библиотеки функций

В системах программирования предусматривается много библиотек для функций различного назначения (например, для работы со строками, выполнения ввода и вывода, работы с массивами и т.д.). Эти библиотеки подключаются с помощью заголовочных файлов или пространств описаний (имен - namespace). Кроме заголовочных файлов для использования библиотек подключаются специальные модули (иногда они подключаются автоматически), содержащие описания функций ( *.lib или *.dll). Пример подключения библиотек ввода/вывода и библиотек для работы с математическими и системными функциями:

#include <math.h>

#include <process.h>

#include <stdio.h>

Стандартных библиотек очень много. Нужно хорошо знать их назначение и их состав для использования в программах. Чем лучше знания о библиотеках, тем быстрее и безошибочно можно создать сложную программу. В современных системах программирования доступны (большом количестве) библиотеки классов, которые описывают новые дополнительные типы данных.

10 Библиотеки функций и шаблонов классов: RTL, STL, MFC, ATL

В СИ++ введены специальные классы для работы с массивами. Для их использования необходимо освоить основы Объектно-ориентированного программирования, что вам предстоит в дальнейших дисциплинах. Для общих сведений приводим здесь материал о назначении библиотек MS VS.

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

В MS VS предусмотрены следующие группы библиотек:

  • C RTL - C Run-Time Libraries - стандартные библиотеки этапа выполнения.

  • STL - Standard C++ Library – стандартные библиотеки С++.

  • MFC - Microsoft Foundation Class Library – библиотеки классов MS.

  • ATL - Active Template Library – библиотеки шаблонов.

  • .NET Framework Class Library– библиотеки платформы .NET.

В C RTL включено много библиотек для работы со стандартными типами данных, файлами, строками и т.д. Эти библиотеки возникли относительно давно, но поддерживаются в настоящее время и представляют собой набор базовых средств программирования на языках С и С++.

В STL включено много библиотек, ориентированных на С++, и обеспечивающих работу с множеством классов, объектов и шаблонов. Эти библиотеки доступны всем пользователям и включают: библиотеки потокового ввода, вывода (cin, cout), работу с контейнерами объектов (vector, string, list, map, stack, set и многие другие.), работу с функциями из библиотек этапа выполнения (CRT).

В MFC включен широчайший набор классов и функций, позволяющих обеспечить программирование практически любых задач. Это библиотеки классов и функций: построения приложений, в том числе и в среде Windows, оконного интерфейса, управления файлами, работы с контейнерными классами, графического интерфейса, поддержки различных технологий, в том числе и современных (версии библиотек постоянно обновляются), программирования коммуникаций, обработки документов и многое другое. В частности, в других ЛР, мы познакомимся с контейнерами типа CArray, CList и др.

В ATL представлен набор библиотек, поддерживающих AX и СОМ технологий. Число доступных классов и шаблонов в этих библиотеках соизмеримы с набором библиотек MFC, они имеют дополнительные классы и классы, которые можно одновременно использовать совместно с MFC (“Shared by MFC and ATL”). В частности, в других ЛР, мы познакомимся с контейнерами типа CAtlArray, CAtlList и др.

.NET библиотеки представляют собой набор (иногда и более точно говорят платформу) библиотек для разработки программ – приложений самого универсального вида. В эту платформу включаются такие библиотеки, которые исключают необходимость использования устаревших библиотек (CTR и STL). Применение этой платформы позволяет сделать приложения более универсальными, охватывает большее число современных технологий и обеспечивает интеграцию с другими системами программирования, в том числе и на разных языках. В частности в этой платформе определены шаблоны классов Array, List и многие другие. .NET библиотеки широко используются для создания сайтов (ASP).Платформа .NET будет изучаться в отдельных дисциплинах.

Описания библиотек наиболее полно и с примерами в представлены [4]. Кроме того, описания библиотек CTR и STL вы найдете в [13]. Всю новую информацию об библиотеках можно также найти на сайтах MS. Хорошее знание существующих библиотек, их пополнения в новых версиях, несомненно, поможет вам стать профессионалом в программировании. В других ЛР цикла вы познакомитесь с составляющими других библиотек.

11 Примеры по теме ЛР № 4

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

Для выполнения этой части ЛР этого нужно создать пустой проект в MS VS (Test_LR3), как описано выше, скопировать через буфер обмена в него текст данных примеров, отладить его и выполнить.

12 Примеры описаний и инициализации массивов

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

13 Сумма элементов массива

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

// Описание массивов

int Mas[5] = { 1,2,3,4,5}; // элементы с индексами 0 ... 4

// Простой цикл с массивом

int SumMas = 0;

for (int k = 0 ; k < 5 ; k++ )

SumMas = SumMas + Mas[k] ;

printf("\nСумма массива SumMas = %d \n" , SumMas);

Попробуйте изменить значения в исходном массиве и выполнить вычисление заново.

14 Поиск максимума в массиве и его номера

Проверьте нижерасположенную программу поиска минимума в массиве.

// Дан массив iMas. Найти минимальный элемент и его порядковый номер.

int iMas[] = {1,22,3,-4,5,4,0};

int Max;

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

// Распечатка массива

printf("\nЗадан массив iMas :\n");

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

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

// Начальные условия цикла поиска максимума

int NumMax = 0;

Max = iMas[0];

// Поиск Мах

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

if ( Max < iMas[i])

{ Max = iMas[i]; NumMax = i; };

// вывод результата

printf("\nВ массиве Max= %d его номер N = %d \n", Max ,NumMax);

15 Итерационный цикл расчета значения функции

Следующий пример – итерационные вычисления. Формула для вычисления значения функции – вычисление суммы членов ряда имеет вид:

Нетрудно составить циклическую программу для вычисления суммы этого ряда с точностью eps. Для математического обоснования алгорится обратитесь к учебни кам по математике.

///////////// цикл итерационный для функции exp(y)

float sum = 1.0f; // Начальное значение для переменной сумирования

float x = 0.5f ;

float step = x; // Начальное значение для степени х

float fac = 1.0f; // Начальное значение для переменной текущего факториала

float Count = 1.0f;

float eps = 0.001; // точность, с которой будет расчитана сумма ряда.

while ( step/fac > eps ) // проверка точности вычисления

{

sum+= step/fac; // суммирование членов ряда

Count += 1.0f ; // n - порядковый номер члена ряда

fac *= Count; // fac = fac * Count; - промежуточный факториал

step = step*x; // в степени x

};

printf(" Ряд - exp = %f Функция из библиотеки = %f x = %f\n",sum , exp( x), (x ));

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

16 Указатели и динамические массивы

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

17 Контрольные задания для ЛР №3.

Следующие контрольные задания являются обязательными для выполнения в данной ЛР. Студенты эту часть выполняют после изучения теоретической части ЛР и проверки тестовых примеров основных тем ЛР.

18 Ввод и вывод массива. Вычисление суммы элементов

Для целочисленного массива MasInt (тип int), размерностью 6 элементов, выполнить следующие действия:

  • Выполнить в цикле ввод элементов массива с клавиатуры.

  • Вычислить сумму элементов этого массива.

  • Распечатать столбиком элементы массива и его сумму( в отдельно строке).

19 Определение минимума в массиве и его номера

Во введенном массиве, в отдельном цикле, выполняется поиск максимального элемента и его номера. Результаты поиска вывести на экран. Программу отладить и проверить на разных примерах.

20 Инициализация массива в программе и определение отдельных сумм

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

21 Использование указателя для массива

Описать указатель на тип целый. Присвоить его адрес номеру минимального элемента из задания 1 данного раздела. Вывести на печать значение с помощью этого указателя.

22 Вычисление и запоминание значений массива

Вычислить массив MasF (float) по формуле ряда для заданной библиотечной функции для каждого значения аргумента х. Результат запомнить в массиве (и показать в отладчике). Значения и шаг изменения переменной х заданы в таблице вариантов (см. ниже.). Распечатать результат в форме таблицы (номер - значение функции - значение функции из библиотеки. - значение аргумента). Таблицу оформить рамкой из точек (“.”). Цикл вычисления значений рассмотрен выше. Для реализации данной задачи необходим двойной цикл. Для вычисления значения функции из библиотеки нужно подключить заголовочный файл:

Характеристики

Тип файла
Документ
Размер
249,5 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

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