WWW.METODICHKA.X-PDF.RU
БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Методические указания, пособия
 
Загрузка...

Pages:   || 2 |

«А.И. Сидоренко, Е.В. Сыпин ПРОГРАММИРОВАНИЕ НА С++ В СРЕДЕ WINDOWS Методические рекомендации к выполнению лабораторных работ для студентов направления подготовки 09.03.02 (230400.62) ...»

-- [ Страница 1 ] --

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Бийский технологический институт (филиал)

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

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

«Алтайский государственный технический университет

им. И.И. Ползунова»

А.И. Сидоренко, Е.В. Сыпин

ПРОГРАММИРОВАНИЕ НА С++ В СРЕДЕ WINDOWS

Методические рекомендации к выполнению лабораторных работ



для студентов направления подготовки 09.03.02 (230400.62) «Информационные системы и технологии»

Бийск Издательство Алтайского государственного технического университета им. И.И. Ползунова УДК 004.42(076) ББК 32.973-018 С34 Рецензент: К.Г. Паутов, начальник отдела эксплуатации программно-технических средств и баз данных БТИ АлтГТУ Сидоренко, А.И.

С34 Программирование на C++ в среде Windows: методические рекомендации к выполнению лабораторных работ для студентов направления подготовки 09.03.02 (230400.62) «Информационные системы и технологии» / А.И. Сидоренко, Е.В. Сыпин; Алт. гос.

техн. ун-т, БТИ. – Бийск: Изд-во Алт. гос. техн. ун-та, 2015. – 49 с.

В методических рекомендациях приведены задания к лабораторным работам по курсу «Программирование на С++ в среде Windows» для студентов направления подготовки 09.03.02 (230400.62) «Информационные системы и технологи» и необходимая справочная информация для выполнения этих заданий.

УДК 004.42(076) ББК 32.973-018 Рассмотрены и одобрены на заседании кафедры МСИА.

Протокол № 34 от 29.01.2015 г.

© Сидоренко А.И., Сыпин Е.В., 2015 © БТИ АлтГТУ, 2015

СОДЕРЖАНИЕ

Введение

1 Базовые типы данных и ввод-вывод. Арифметические операции и математические функции языка С++

1.1 Теоретическая часть

1.2 Варианты заданий к лабораторной работе

2 Функции

2.1 Теоретическая часть

2.2 Варианты заданий к лабораторной работе

3 Указатели

3.1 Теоретическая часть

3.2 Варианты заданий к лабораторной работе

4 Объекты и классы

4.1 Теоретическая часть

4.2 Варианты заданий к лабораторной работе

5 Перегрузка операторов

5.1 Теоретическая часть

5.2 Варианты заданий к лабораторной работе

6 Наследование. Виртуальные функции

6.1 Теоретическая часть

6.2 Варианты заданий к лабораторной работе

7 Шаблоны функций и классов

7.1 Теоретическая часть

7.2 Варианты заданий к лабораторной работе

8 Требования к отчёту о лабораторной работе

Список рекомендуемой литературы

ВВЕДЕНИЕ

Методические рекомендации предназначены для изучения и практического ознакомления студентами направления подготовки 09.03.02 (230400.62) «Информационные системы и технологи» с основами программирования на языке C++.

Лабораторные работы по дисциплине «Программирование на С++ в среде Windows» направлены на формирование у студентов следующих компетенций в соответствии с ФГОС ВПО по направлению подготовки 09.03.02 (230400.62) «Информационные системы и технологии»

(квалификация (степень) «бакалавр»):

владение широкой общей подготовкой (базовыми знаниями) для решения практических задач в области информационных систем и технологий (ОК-6);

способность к проектированию базовых и прикладных информационных технологий (ПК-11);

способность разрабатывать средства реализации информационных технологий (методические, информационные, математические, алгоритмические, технические и программные) (ПК-12);

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





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

Принципы объектно-ориентированного программирования были основополагающими при разработке языка C++, поэтому синтаксис и принципы разработки определяют суть объектноC++ ориентированного программирования. Язык C++ предназначен для разработки высокопроизводительного программного обеспечения и чрезвычайно популярен среди программистов. При этом он обеспечивает концептуальный фундамент, на который опираются другие языки программирования. Язык С++ можно назвать универсальным языком программирования, поскольку практически все профессиональные программисты на том или ином уровне знакомы с C++. Изучение C++ позволяет приобрести фундаментальные знания, которые позволят освоить любые аспекты современного программирования.

В ходе выполнения лабораторных работ студенты будут ознакомлены с основными элементами языка C++ и получат практические навыки использования объектно-ориентированного подхода при разработке приложений в среде Windows.

1 БАЗОВЫЕ ТИПЫ ДАННЫХ И ВВОД-ВЫВОД.

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ И МАТЕМАТИЧЕСКИЕ

ФУНКЦИИ ЯЗЫКА С++ Цель работы: освоить работу в среде разработки Visual Studio 2010 и основные элементы языка C++.

Задачи:

– освоить процесс создания и компиляции нового проекта в среде Visual Studio 2010;

– изучить основные типы данных и инструкции управления языка C++;

– изучить арифметические операции и математические функции языка C++;

– реализовать программу в соответствии с заданием на лабораторную работу.

1.1 Теоретическая часть

1.1.1 Создание нового проекта Для создания нового проекта в среде разработки Visual Studio 2010 необходимо выбрать пункт «Создать проект…» на Начальной странице или выбрать пункт меню Файл/Создать/Проект. Внешний вид окна «Создать проект» представлен на рисунке 1.1.

Рисунок 1.1 – Внешний вид окна «Создать проект»

В данном окне необходимо указать тип создаваемого проекта – Консольное приложение Windows. Далее необходимо указать имя и расположение проекта и нажать кнопку «ОК».

После этого в Мастере приложений Win32 установить галочку «Пустой проект», как показано на рисунке 1.2, и нажать кнопку «Готово».

<

Рисунок 1.2 – Внешний вид окна мастера приложений Win32

Следующий шаг – создание файла исходного кода. Для этого в Обозревателе решений (Вид/Обозреватель решений) щелкнуть правой кнопкой мыши по строке Файлы исходного кода и выбрать пункт Добавить/Создать элемент. В появившемся окне «Добавление нового элемента» (рисунок 1.3) выбрать тип создаваемого элемента – Файл C++ (.cpp), ввести имя и нажать кнопку «Добавить».

Рисунок 1.3 – Внешний вид окна «Добавление нового элемента»

В появившемся окне пишется исходный код приложения. Для компиляции приложения используется команда Отладка/Начать отладку. Для пошаговой отладки используется механизм точки останова (Отладка/Точка останова).

1.1.2 Основные элементы C++-программы Минимальная программа, написанная на языке C++, выглядит следующим образом:

int main () { } С функции main () начинается выполнение любой C++программы, независимо от расположения этой функции в исходном тексте программы. Данная функция не может быть переименована, и при ее отсутствии в исходном коде компилятор выдаст ошибку. Ключевое слово int (сокращение от слова integer), стоящее перед именем main (), означает тип данных для значения, возвращаемого функцией main (). Фигурные скобки {} являются операторными скобками (аналог begin и end в языке Pascal).

Функция main () часто завершается строкой return 0;

При ее выполнении функция main() возвращает вызывающему процессу (в роли которого обычно выступает операционная система) значение 0. Для большинства операционных систем нулевое значение, которое возвращает эта функция, свидетельствует о нормальном завершении работы программы. Другие значения могут означать завершение программы в связи с какой-нибудь ошибкой. Слово return относится к числу ключевых и используется для возврата значения из функции.

В языке C++ определен ряд заголовков (header), которые обычно содержат информацию, необходимую для программы. Данные заголовки представляют собой внешний исходный файл, помещаемый компилятором в начало программы с помощью директивы #include.

Для поддержки C++-системы ввода-вывода используется заголовок iostream. Некоторые другие заголовки, использование которых может понадобиться при выполнении лабораторных работ, приведены в таблице 1.1.

Для вывода данных на консоль и для ввода данных с клавиатуры используются встроенные идентификаторы cout и cin (составленные из частей слов console output и console input соответственно).

–  –  –

Для использования указанных идентификаторов (а также всей библиотеки стандарта C++) необходимо указать компилятору используемое пространство имен. Делается это следующей строкой:

using namespace std;

Эта строка означает, что компилятор должен использовать пространство имен std. Пространство имен (namespace) создает декларативную область, в которой могут размещаться различные элементы программы. Пространство имен позволяет хранить одно множество имен относительно от другого. Другими словами, имена, объявленные в одном пространстве имен, не будут конфликтовать с такими же именами, объявленными в другом. Пространства имен позволяют упростить организацию больших программ. Ключевое слово using информирует компилятор об использовании заявленного пространства имен (в данном случае std). Именно в пространстве имен std объявлена вся библиотека стандарта C++.

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

#include iostream #include locale #include conio.h using namespace std;

int main ()

–  –  –

Выполнение строки setlocale(LC_ALL, "rus") в приведенном листинге предназначено для корректного отображения русских символов в консоли. Данная функция описана в заголовке locale. Функция _getch(), описанная в заголовочном файле conio.h, предназначена для считывания символа из консоли без использования буфера.

В приведенной программе данная функция предназначена для ожидания нажатия любой клавиши перед завершением работы программы (чтобы можно было увидеть результат выполнения). При выполнении строки int x, y, z; объявляются локальные переменные для функции main () целочисленного типа. Основные типы данных, используемые в языке C++, приведены в таблице 1.2.

–  –  –

В C++ любое ненулевое число оценивается как true, а нуль – как false.

1.1.3 Инструкции управления C++ Существует три категории управляющих инструкций: инструкции выбора (if, switch), итерационные инструкции (состоящие из for, while и do-while-циклов) и инструкции перехода (break, continue, return, goto).

Инструкция if позволяет сделать выбор между двумя выполняемыми ветвями программы и имеет следующий формат:

if (выражение) { последовательность инструкций } else { последовательность инструкций }

Инструкция switch – это инструкция многонаправленного ветвления, которая позволяет выбрать одну из множества альтернатив:

switch (выражение) {

case константа1:

последовательность инструкций break;

case константа2:

последовательность инструкций break;

default:

последовательность инструкций } Элемент выражение инструкции switch должен при вычислении давать целочисленное или символьное значение. Инструкция break завершает выполнение кода, определенного инструкцией switch. Инструкции default выполняются в том случае, если ни одна из caseконстант не совпадает с результатом вычисления switch-выражения.

Самый универсальный цикл C++ – цикл for – имеет следующий формат:

for (инициализация; выражение; инкремент) { последовательность инструкций } Элемент инициализация обычно представляет собой инструкцию присваивания, которая устанавливает управляющую переменную цикла равной начальному значению. Элемент выражение представляет собой условное выражение, в котором тестируется значение управляющей переменной цикла. Элемент инкремент – это выражение, которое определяет, как изменяется значение управляющей переменной цикла после каждой итерации. Цикл выполняется до тех пор, пока вычисление элемента выражение дает истинный результат.

Например, следующая конструкция выведет на экран цифры от 0 до 10:

for (int i = 0; i = 10; i++) { cout i '\n';

}

Еще одна форма организации циклов в C++ – цикл while:

while (выражение) инструкция Элемент инструкция выполняется до тех пор, пока условное выражение возвращает значение ИСТИНА.

Цикл do-while – это единственный цикл, который всегда делает итерацию хотя бы один раз:

do { инструкции } while (выражение) В C++ существует средство «досрочного» выхода из текущей итерации цикла. Этим средством является инструкция continue. Она принудительно выполняет переход к следующей итерации, опуская выполнение оставшегося кода текущей. С помощью инструкции break можно организовать немедленный выход из цикла, опустив выполнение кода, оставшегося в его теле, и проверку условного выражения.

При обнаружении внутри цикла инструкции break цикл завершается, а управление передается инструкции, следующей после цикла.

Инструкция goto – это инструкция безусловного перехода.

Например, с помощью инструкции goto и метки (идентификатор, за которым стоит двоеточие) можно организовать следующий цикл на 100 итераций:

int j = 0;

loop1:

cout j '\n';

j++;

if (j 100) goto loop1;

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

Таблица 1.4 – Математические функции в С++ Функция Прототип и краткое описание

–  –  –

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

Индивидуальные задания Варианты индивидуальных заданий приведены в таблице 1.5.

Необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk с шагом h = (xk – xn)/10. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).

–  –  –

2 ФУНКЦИИ Цель работы: освоить использование функций при создании программ.

Задачи:

– изучить принципы использования функций в языке C++;

– изучить типы функций, способы передачи параметров функциям и типы возвращаемых функциями значений;

– реализовать программу в соответствии с заданием на лабораторную работу.

2.1 Теоретическая часть

2.1.1 Основы программирования с использованием функций Функция представляет собой именованное объединение группы операторов. Это объединение может быть вызвано из других частей программы. Функции являются основными строительными блоками программы C++.

В простейшем случае при помощи использования функций можно сократить размер программного кода, поместив в функцию любую последовательность операторов, встречающуюся в программе более одного раза. Такая функция не принимает и не возвращает никакого значения (ключевое слово void). Иллюстрация такого использования функций представлена на рисунке 2.1.

–  –  –

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

float summa(float, float); //Прототип функции int main () { cout summa (4.3, 6.2); //Вызов функции _getch();

return 0;

} float summa(float x, float y) { return x + y; //Тело функции } Такой механизм передачи аргументов в функцию называется передачей аргумента по значению. При этом вызываемая функция создает новые переменные, имеющие те же типы, что и передаваемые аргументы, и копирует значения аргументов в эти переменные. В языке C++ реализован механизм передачи аргументов по ссылке. Вместо того, чтобы передавать функции значение переменной, ей передается ссылка на эту переменную (фактически в функцию передается адрес переменной-аргумента в памяти). Таким образом, при передаче аргументов по ссылке, функция имеет прямой доступ к значениям аргументов. К достоинствам ссылочного механизма также относится возможность возвращения функцией программе не одного, а множества значений.

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

void f(int&, float&); //Прототип функции int main () { int x = 9;

float y = 25;

f(x, y); //Вызов функции cout x endl;

cout y;

_getch();

return 0;

} void f(int &i, float &j) { i = i * i; //Тело функции j = sqrt(j);

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

2.2 Варианты заданий к лабораторной работе Задание 1.

Написать программу с использованием функций, реализующих вариант индивидуального задания согласно таблице 2.1.

–  –  –

ветственно координаты (х1, у1), (х2, у2), …, (х10, у10).

Даны действительные числа a, b, c, d, e – стороны пятиугольника. Найти площадь пятиугольника.

Даны отрезки a, b, c и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, рассчитать площадь данного треугольника. Определить функцию Plo(x, y, z), рассчитывающую площадь треугольника со сторонами x, y и z, если такой треугольник существует.

Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника.

Дано натуральное число n. Выяснить, является ли оно полным квадратом. Определить функцию, позволяющую распознавать полные квадраты. Целое неотрицательное число n называется полным квадратом, если найдется целое число m такое, что n = m2. Пусть n= (p1) (p2) … (ps) – разложение числа n 1 на произведение простых. Очевидно, что n – полный квадрат тогда и только тогда, когда все степени,, …, – четные.

Дано натуральное число n. Выяснить, является ли оно простым. Определить функцию, позволяющую распознавать простые числа. Простое число – это натуральное число,

–  –  –

Задание 2.



Необходимо создать квадратную матрицу целых чисел, заполнить матрицу случайными числами в диапазоне 0–99 и написать функцию, реализующую индивидуальное задание (таблица 2.2). Фактические размеры матриц вводятся с клавиатуры. Необходимо использовать передачу аргументов функции по ссылке.

–  –  –

Отобразить главную и побочную диагонали симметрично относительно вертикальной оси.

На главной диагонали разместить суммы элементов, которые лежат на той же строке и том

–  –  –

Написать функцию умножения двух матриц.

Предусмотреть проверку допустимости умножения матриц.

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

Проверять введенный номер на допустимость.

Развернуть матрицу на 90o по часовой стрелке.

3 УКАЗАТЕЛИ Цель работы: освоить основы программирования с использованием указателей.

Задачи:

– изучить назначение указателей и операторы, используемые с указателями;

– освоить основные операции непрямого доступа к памяти;

– реализовать программу в соответствии с заданием на лабораторную работу.

3.1 Теоретическая часть

3.1.1 Адреса и указатели Указатели – один из самых важных и сложных аспектов C++. В значительной мере мощь многих средств C++ определяется использованием указателей. Идея указателей несложна. Начать нужно с того, что каждый байт памяти компьютера имеет адрес. Адреса – это натуральные числа, которые начинаются с 0, а затем возрастают – 1, 2, 3 и т. д. Например, если имеется 1 Мбайт памяти, то наибольшим адресом будет число 1048575. Загружаясь в память, программа занимает некоторое количество этих адресов. Это означает, что каждая переменная и каждая функция программы начинается с какого-либо конкретного адреса.

Указатель – это переменная, которая содержит адрес другой переменной. Например, если x содержит адрес переменной y, то о переменной x говорят, что она «указывает» на y. Формат объявления переменной-указателя следующий:

тип *имя_переменной;

Элемент тип означает базовый тип указателя, который определяет тип данных, на которые он будет ссылаться и должен быть допустимым C++-типом. Чтобы объявить переменную с указателем на intзначение, используется следующая инструкция:

int *p;

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

С указателями используются два оператора: «*» и «&». Оператор «&» – унарный. Он возвращает адрес памяти, по которому расположен его операнд. Основные действия с указателями:

int *p = 0; //объявление нулевого указателя p = &x; //p указывает на адрес переменной x y = *p; //y получает значение, расположенное по адресу p *p = 100; //100 присваивается области памяти, на котoрую указывает p p++; //p увеличивается на размер типа данных int 3.1.2 Указатели и массивы В C++ указатели и массивы тесно связаны между собой, причем настолько, что зачастую понятия «указатель» и «массив» взаимозаменяемы. Рассмотрим следующий фрагмент программы:

char str[80];

char *p1;

p1 = str;

Здесь str представляет собой имя массива, содержащего 80 символов, а p1 – указатель на тип char. Особый интерес представляет третья строка, при выполнении которой переменной p1 присваивается адрес первого элемента массива str. После этого присваивания p1 будет указывать на элемент str[0]. В C++ использование имени массива без индекса генерирует указатель на первый элемент этого массива. Таким образом, указатель p1 можно использовать для доступа к элементам массива str. Например, для доступа к пятому элементу массива можно использовать одно из следующих выражений:

str[4] *(p1+4).

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

3.1.3 Динамическое распределение памяти с использованием операторов new и delete Для C++-программы существует два основных способа хранения информации в основной памяти компьютера. Первый состоит в использовании переменных. Область памяти, предоставляемая переменным, закрепляется за ними во время компиляции и не может быть изменена при выполнении программы. Второй способ заключается в использовании C++-системы динамического распределения памяти. В этом случае память для данных выделяется по мере необходимости из раздела свободной памяти. Этот раздел называется «кучей» (heap).

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

Язык C++ содержит два оператора, new и delete, которые выполняют функции по выделению и освобождению памяти соответственно.

Общий формат этих операторов следующий:

переменная-указатель = new тип_переменной;

delete переменная-указатель;

Например:

p = new int; //Выделяем память для int-значения *p = 20; //Помещаем в эту область памяти значение cout *p; //Убеждаемся в работоспособности delete p; //Освобождаем память

С помощью оператора new можно выделять память и для массивов. Общий формат этой операции следующий:

переменная-указатель = new тип [размер];

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

3.2 Варианты заданий к лабораторной работе

Задание 1.

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

–  –  –

Задание 2.

Разработать функцию, которая выполняет обработку символьной строки согласно индивидуальному заданию, приведенному в таблице 3.2. При реализации функции запрещается пользоваться функциями библиотек языка C++.

–  –  –

4 ОБЪЕКТЫ И КЛАССЫ

Цель работы: освоить основы объектно-ориентированного программирования и основы понятия класса.

Задачи:

– изучить общий формат объявления класса;

– освоить основы доступа к членам класса;

– реализовать программу в соответствии с заданием на лабораторную работу.

4.1 Теоретическая часть 4.1.1 Основы понятия класса Класс – это фундамент, на котором построена C++-поддержка объектно-ориентированного программирования, а также ядро многих более сложных программных средств. Класс – это базовая единица инкапсуляции, которая обеспечивает механизм создания объектов.

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

При определении класса объявляются данные, которые он содержит, и код, который выполняется над этими данными. В классе данные объявляются в виде переменных, а код оформляется в виде функций.

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

Таким образом, переменная, объявленная в классе, называется членом данных, а функция, объявленная в классе, называется функциейчленом.

Общий формат объявления классов имеет следующий вид:

class имя_класса { закрытые данные и функции

public:

открытые данные и функции } список объектов;

Элемент имя_класса становится именем нового типа, которое можно использовать для создания объектов класса. Объекты класса можно создать путем указания их имен непосредственно за закрывающейся скобкой объявления класса, но это не обязательно. После объявления класса его элементы можно создавать по мере необходимости.

В следующем примере иллюстрируется синтаксис объявления класса и доступа к членам класса.

class myclass { int a; //закрытые данные

public:

int b; //открытые данные myclass(); //конструктор ~myclass(); //деструктор void setab (int i); //открытые функции int geta();

void reset();

};

–  –  –

В данном примере использованы конструктор и деструктор. Конструктор – это функция, которая вызывается при создании объекта, а деструктор – функция, вызываемая при его разрушении.

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

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

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

4.2 Варианты заданий к лабораторной работе Разработать классы для объектов, приведенных в вариантах индивидуальных заданий (таблица 4.1). Реализовать в классе следующие функции:

ввод нового элемента;

отображение всех элементов;

редактирование элементов.

Добавить индивидуальные функции.

–  –  –

5 ПЕРЕГРУЗКА ОПЕРАТОРОВ

Цель работы: освоить возможности C++-перегрузки операторов.

Задачи:

– изучить общий формат перегрузки операторов;

– реализовать программу в соответствии с заданием на лабораторную работу.

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

Иногда возникает потребность описывать и применять к созданным программистом типам данных операции, по смыслу эквивалентные уже имеющимся в языке. Классический пример – библиотека для работы с комплексными числами. Они, как и обычные числовые типы, поддерживают арифметические операции, и естественным было бы создать для данного типа операции «плюс», «минус», «умножить», «разделить», обозначив их теми же самыми знаками операций, что и для других числовых типов. Запрет на использование определённых в языке элементов вынуждает создавать множество функций с именами вида ComplexPlusComplex, IntegerPlusComplex, ComplexMinusFloat и так далее. Отчасти проблема решается средствами объектноориентированного программирования, когда новые типы данных объявляются как классы, операции над ними могут быть оформлены как методы классов, но, во-первых, оформление подобным образом операций над значениями разных типов неудобно, а во-вторых, это не решает проблему создания новых операторов.

Перегрузка операций является одним из средств, позволяющих расширять язык, дополнять его новыми операциями и синтаксическими конструкциями. С помощью перегрузки операций можно для каждой конкретной задачи построить языковое расширение, наиболее ей соответствующее, которое позволит описывать её решение в наиболее естественной, понятной и простой форме. Например, создание библиотеки сложных математических типов (векторы, матрицы) и описание операций с ними в естественной, «математической» форме, создаёт «язык для векторных операций», в котором сложность вычислений скрыта, и возможно описывать решение задач в терминах векторных и матричных операций, концентрируясь на сути задачи, а не на технике.

Перегрузка операторов тесно связана с перегрузкой функций.

Чтобы перегрузить оператор, необходимо определить значение новой операции класса, к которому она будет применяться. Для этого создается функция operator (операторная функция), которая определяет действие этого оператора. Общий формат функции operator таков:

тип имя_класса::operator# (список_аргументов) { операция_над_классом } Здесь перегружаемый оператор обозначается символом «#», а элемент тип представляет собой тип значения, возвращаемого заданной операцией. Для облегчения использования перегруженного оператора тип возвращаемого значения часто совпадает с именем класса.

В следующем примере создается класс three_d, который поддерживает координаты объекта в трехмерном пространстве. Для класса three_d перегружаются операторы «+» и «=».

class three_d { int x,y,z; //3-мерные координаты

public:

three_d() {x = y = z = 0;} three_d(int i, int j, int k) {x = i; y = j; z = k;} three_d operator+ (three_d op2);

three_d operator= (three_d op2);

void show();

};

–  –  –

int main () { setlocale(LC_ALL, "rus");

three_d a(1, 2, 3), b (10, 10, 10), c;

a.show();

b.show();

c = a + b; // сложение объектов a и b c.show();

c = a + b + c; // сложение объектов a, b и с c.show();

c = b = a; // демонстрация множественного присваивания c.show();

b.show();

_getch();

return 0;} В приведенном тексте программы обе операторные функции имеют только по одному параметру, несмотря на то, что они перегружают бинарные операции. Это противоречие объясняется тем, что при перегрузке бинарного оператора с использованием функции-члена ей передается явным образом только один аргумент. Второй же неявно передается через указатель this. Таким образом, в строке temp.x = x + op2.x;

под членом x подразумевается член this-x, т. е. член x связывается с объектом, который вызывает данную операторную функцию.

Во всех случаях неявно передается объект, указываемый слева от символа операции, который стал причиной вызова операторной функции.

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

5.2 Варианты заданий к лабораторной работе Разработать классы, приведенные в вариантах индивидуальных заданий. Написать программу, демонстрирующую работу с классом.

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

Вариант 1. Составить описание класса для представления комплексных чисел.

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

Основные действия над комплексными числами:

–  –  –

Вариант 2. Определить класс «Дробь» в виде пары.

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

Вариант 3. Составить описание класса для определения одномерных массивов строк фиксированной длины.

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

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

Вариант 4. Составить описание класса, обеспечивающего представление матрицы заданного размера и любого минора в ней.

Память для матрицы выделать динамически. Реализовать методы для отображения на экране как матрицы в целом, так и заданного минора, а также для изменения минора; сложения, вычитания, умножения миноров.

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

Вариант 5. Разработать класс «Полином» от одной переменной.

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

С0 С1 x1 Cn x n.

Вариант 6. Составить описание класса для определения одномерных массивов (векторов).

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

6 НАСЛЕДОВАНИЕ. ВИРТУАЛЬНЫЕ ФУНКЦИИ

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

Задачи:

– изучить механизм наследования C++;

– изучить виртуальные функции C++;

– реализовать программу в соответствии с заданием на лабораторную работу.

6.1 Теоретическая часть

6.1.1 Понятие о наследовании Наследование – один из трех фундаментальных принципов объектно-ориентированного программирования, поскольку именно благодаря ему возможно создание иерархических классификаций. Используя наследование, можно создать общий класс, который определяет характеристики, присущие множеству связанных элементов. Этот класс затем может быть унаследован другими, узкоспециализированными классами с добавлением в каждый из них своих, уникальных особенностей.

В стандартной терминологии языка C++ класс, который наследуется, называется базовым. Класс, который наследует базовый класс, называется производным. Производный класс можно использовать в качестве базового для другого производного класса.

Для иллюстрации механизма наследования рассмотрим следующий пример:

class road_vehicle { int wheels;

int passengers;

public:

void set_wheels(int num) {wheels = num;} int get_wheels() {return wheels;} void set_pass(int num) {passsengers = num;} int get_pass() {return passengers;} };

Это общее определение дорожного транспортного средства можно использовать для определения конкретных типов транспортных средств. Например, в следующем фрагменте путем наследования класса road_vehicle создается класс truck (грузовых автомобилей).

class truck : public road_vehicle { int cargo;

public:

void set_cargo(int size) {cargo = size;} int get_cargo() {return cargo;} void show();

};

Тот факт, что класс truck наследует класс road_vehicle, означает, что класс truck наследует все содержимое класса road_vehicle. К содержимому класса road_vehicle класс truck добавляет член данных cargo, а также функции-члены, необходимые для поддержки члена cargo.

Общий формат для обеспечения наследования имеет следующий вид:

class имя_производного_класса : доступ имя_базового_класса { тело нового класса } 6.1.2 Управление доступом к членам базового класса Если один класс наследует другой, члены базового класса становятся членами производного. Статус доступа членов базового класса в производном классе определяется спецификатором доступа, используемым для наследования базового класса. Спецификатор доступа базового класса выражается одним из ключевых слов: public, private или protected. Если спецификатор доступа не указан, то по умолчанию используется спецификатор private.

Если базовый класс наследуется как public-класс, его publicчлены становятся public-членами производного класса. Если базовый класс наследуется как private-класс, его public-члены становятся private-членами производного класса. Спецификатор доступа protected объявляет защищенные члены или обеспечивает наследование защищенного класса. Другими словами, спецификатор protected позволяет создать член класса, который буде доступен в рамках данной иерархии классов, но закрыт для остальных элементов программы.

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

Использование виртуальных функций позволяет обеспечить один из основных принципов объектно-ориентированного программирования – полиморфизм, т. е. «один интерфейс, множество методов». Такой интерфейс позволяет программисту справляться со все возрастающей сложностью программ. Например, если корректно разработать программу, то можно быть уверенным в том, что ко всем объектам, выведенным из базового класса, можно получить доступ единым (общим для всех) способом, несмотря на то, что конкретные действия одного производного класса могут отличаться от действий другого. Это означает, что программисту придется помнить один интерфейс, а не великое их множество.

Рассмотрим пример программы, которая создает базовый класс figure, предназначенный для хранения размеров различных двумерных объектов и вычисления их площадей. Функция set_dim() является стандартной функцией-членом, поскольку эта операция подходит для всех производных классов. Однако, функция show_area() объявлена как виртуальная, так как методы вычисления площади различных объектов будут разными. Программа использует базовый класс figure для выведения двух специальных классов rectangle и triangle.

class figure {

protected:

double x, y;

public:

void set_dim(double i, double j) { x = i;

y = j;

} virtual void show_area() { cout "Вычисление площади не определено.";

} };

–  –  –

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

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

6.2 Варианты заданий к лабораторной работе

Задание 1.

Необходимо построить иерархию классов согласно схеме наследования, приведенной в варианте задания (таблица 6.1). Каждый класс должен содержать инициализирующий конструктор и функцию Show для вывода значений. Функция main должна иллюстрировать иерархию наследования.

–  –  –

2 Продолжение таблицы 6.1 Задание 2.

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

Таблица 6.2 – Варианты индивидуальных заданий

–  –  –

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

Классы:

воин;

пехотинец (винтовка);

матрос (кортик).

Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран его возраст и вид оружия

7 ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ

Цель работы: освоить возможности использования обобщенных функций и классов.

Задачи:

– изучить механизм использования шаблонов функций и классов C++;

– реализовать программу в соответствии с заданием на лабораторную работу.

7.1 Теоретическая часть 7.1.1 Понятие о шаблонах Шаблоны позволяют достичь одну из самых трудных целей в программировании – создать многократно используемый код. Используя шаблоны, можно создавать обобщенные функции и классы. В обобщенной функции (или классе) обрабатываемый ею (им) тип данных задается как параметр. Таким образом, одну функцию или класс можно использовать для разных типов данных, не предоставляя явным образом конкретные версии для каждого типа данных.

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

template class Ttype тип имя_функции (список_параметров) { тело функции } Здесь элемент Ttype представляет собой «заполнитель» для типа данных, обрабатываемых функцией. Это имя может быть использовано в теле функции. В следующем примере создается обобщенная функция, которая меняет местами значения двух переменных, используемых при ее вызове.

template class X void swapargs (X &a, X &b) { X temp;

temp = a;

a = b;

b = temp;} int main () { setlocale(LC_ALL, "rus");

int i = 10, j = 20;

double x = 10.1, y = 23.3;

char a = 'x', b = 'z';

swapargs(i, j);//перестановка целых чисел swapargs(x, y);//перестановка дробных чисел swapargs(a, b);//перестановка символов _getch();

return 0;

} Подобным образом можно создать обобщенный класс. Для этого создается класс, в котором определяются все используемые им алгоритмы; при этом реальный тип обрабатываемых в нем данных будет задан как параметр при создании объектов этого класса.

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

Общий формат объявления обобщенного класса имеет следующий вид:

template class Ttype class имя_класса { тело класса }

Создав обобщенный класс, можно создать его конктретный экземпляр, используя следующий формат:

имя_класса тип имя_объекта;

7.2 Варианты заданий к лабораторной работе Создать шаблон класса, описывающий структуру, приведенную в варианте индивидуального задания (таблица 7.1). Протестировать шаблон класса на следующих типах данных: целые, вещественные, символьные.

–  –  –

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

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

8 ТРЕБОВАНИЯ К ОТЧЁТУ О ЛАБОРАТОРНОЙ РАБОТЕ

По каждой лабораторной работе оформляется отчет. Обязательными элементами отчета по лабораторной работе являются:

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

цель лабораторной работы и постановка индивидуальной задачи;



Pages:   || 2 |
Похожие работы:

«Министерство образования и науки Российской Федерации Иркутский государственный технический университет С.С. Тимофеефа, Т.И. Дроздова, Г.В. Плотникова, В.Ф. Гольчевский ФИЗИКО-ХИМИЧЕСКИЕ ОСНОВЫ РАЗВИТИЯ И ТУШЕНИЯ ПОЖАРА Учебное пособие Издательство Иркутского государственного технического УДК 614.841 ББК Т Рекомендовано к изданию редакционно-издательским советом ИрГТУ Рецензенты: начальник ГУ СЭУ ФПС «Испытательная пожарная лаборатория» по Иркутской области В.Ю.Селезнев; к.т.н., доцент кафедры...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ  Федеральное государственное бюджетное образовательное учреждение   высшего профессионального образования  «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» ОСНОВЫ РЕСУРСОЭФФЕКТИВНОСТИ Рекомендовано в качестве учебного пособия  Редакционноиздательским советом  Томского политехнического университета    Под редакцией   профессоров А.А. Дульзона и В.Я. Ушакова             Издательство   Томского политехнического университета ...»

«Министерство образования и науки РФ ФГБОУ ВПО Ангарская государственная техническая академия _ И.Г. Голованов ЭЛЕКТРИЧЕСКИЕ СТАНЦИИ И ПОДСТАНЦИИ Методические указания к лабораторным работам Для студентов всех форм обучения по направлению подготовки «Электроэнергетика и электротехника» Ангарск 2014 Голованов И.Г. Электрические станции и подстанции. Методические указания к лабораторным работам/ Голованов И.Г. – г. Ангарск: Изд-во АГТА, 2014. – 37с. Методические указания содержат материал о...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Бийский технологический институт (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Алтайский государственный технический университет им. И.И. Ползунова» Е.А. Дегальцева ИСТОРИЯ Допущено научно-методическим советом БТИ АлтГТУ для внутривузовского использования в качестве учебно-методического пособия для студентов всех направлений и форм обучения Бийск Издательство Алтайского государственного...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Университет ИТМО В.К. Кирилловский, Т.В. Точилина ОПТИЧЕСКИЕ ИЗМЕРЕНИЯ Учебное пособие по лабораторному практикуму Санкт-Петербург Кирилловский В.К., Точилина Т.В. ОПТИЧЕСКИЕ ИЗМЕРЕНИЯ. Учебное пособие по лабораторному практикуму. – 2-е изд., стер. – СПб: Университет ИТМО, 2014. – 130 с. В пособии излагаются методы, используемые в лабораторном практикуме по оптическим измерениям, рассматривается принцип действия контрольноизмерительных...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Бийский технологический институт (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Алтайский государственный технический университет им. И.И. Ползунова» А.В. Фролов ЗАКОНЫ РАСПРЕДЕЛЕНИЯ ПОКАЗАТЕЛЕЙ КАЧЕСТВА И ПРОВЕРКА СТАТИСТИЧЕСКИХ ГИПОТЕЗ В ПРОГРАММЕ STATISTICA Методические рекомендации к выполнению лабораторной работы по дисциплинам «Статистические методы в управлении качеством»,...»

«Министерство образования и науки РФ ФГБОУ ВПО Ангарская государственная техническая академия ТРЕБОВАНИЯ ПО ВЫПОЛНЕНИЮ, ОФОРМЛЕНИЮ И ЗАЩИТЕ ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ Методические указания Издательство Ангарской государственной технической академии УДК 378.1 Требования по выполнению, оформлению и защите выпускной квалификационной работы: метод. указания / сост.: Ю.В. Коновалов, О.В. Арсентьев, Е.В. Болоев, Н.В. Буякова. – Ангарск: Изд-во АГТА, 2015. – 63 с. Методические указания...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кузбасский государственный технический университет имени Т.Ф. Горбачева» Филиал КузГТУ в г. Междуреченске Кафедра социально–гуманитарных дисциплин ФИЗИЧЕСКАЯ КУЛЬТУРА Методические указания к самостоятельной работе для студентов 1 курса очной формы обучения специальности и направлений подготовки: 080100.62 «Экономика» 0801001.65...»

«Министерство образования и науки Российской Федерации Уральский государственный лесотехнический университет Кафедра экономической теории Одобрена: Утверждаю: Кафедрой ЭТ Директор ИЭУ протокол от «10» октября 2014г. № 2 _В.П.Часовских Зав.кафедрой В.М. Пищулов «_»2014г. Методической комиссией ИЭУ протокол от «_»_2014г.№ Председатель Е.Н.Щепеткин ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ Б.3.Б.11 Мировая экономика и международные экономические отношения Направление -080100.62 «Экономика» Квалификация бакалавр...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кузбасский государственный технический университет имени Т.Ф. Горбачева» Филиал КузГТУ в г. Междуреченске Кафедра социально–гуманитарных дисциплин ФИЗИЧЕСКАЯ КУЛЬТУРА Методические указания к самостоятельной работе для студентов 2 курса очной формы обучения специальности и направлений подготовки: 080100.62 «Экономика» 0801001.65...»

«МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Ухтинский государственный технический университет» (УГТУ) А. Е. Жуйков ОСНОВЫ СПОРТИВНОЙ МЕДИЦИНЫ Лабораторный практикум Учебное пособие Ухта, УГТУ, 2015 УДК 613:796(076.5) ББК 51.2я7+75 я7 Ж 84 Жуйков, А. Е. Ж 84 Основы спортивной медицины. Лабораторный практикум [Текст] : учеб. пособие / А. Е. Жуйков. – Ухта, УГТУ, 2015. – 87 с. ISBN 978-5-88179-873-4 Лабораторный...»

«Министерство образования и науки Российской Федерации ФГБОУ ВПО Магнитогорский государственный технический университет им. Г.И. Носова Т.Г. Неретина ОСНОВЫ ТУРИСТСКОЙ ДЕЯТЕЛЬНОСТИ Утверждено Редакционно-издательским советом университета в качестве учебного пособия Магнитогорск УДК 338.48(075.8) ББК 65.433я73 Рецензенты: канд. пед. наук., доцент каф. теории и методики физической культуры ФГАОУ ВПО «Российский государственный профессионально-педагогический университет» Н. В. Третьякова...»

«Федеральное агентство по образованию Архангельский государственный технический университет НАУЧНЫЕ ИССЛЕДОВАНИЯ В ДЕРЕВООБРАБОТКЕ Методические указания к курсовой и дипломной работам Рассмотрены и рекомендованы к изданию методической комиссией факультета механической технологии древесины Архангельского государственного технического университета 5 ноября 2008 года Составитель А.Д. Голяков, канд. техн. наук, проф. кафедры лесопильно-строгальных производств Рецензент Г.П. Бородина, доц. кафедры...»

«ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА Государственного бюджетного образовательного учреждения гимназии № Южного окружного управления образования Департамента образования города Москвы Утверждена на педагогическом совете 28 августа 2014г. Председатель педсовета Кадыкова Е.В. Содержание программы Раздел Название раздела и его содержание Стр. Паспорт программы 4Пояснительная записка. 7Раздел 1 Информационная справка о гимназии 9Краткая справка об истории гимназии. 1.1. 9Кадровое обеспечение образовательного...»

«Министерство образования и науки РФ ФГБОУ ВПО Ангарская государственная техническая академия _ И.Г. Голованов ЭЛЕКТРИЧЕСКИЕ СТАНЦИИ И ПОДСТАНЦИИ Методические указания к практическим занятиям и самостоятельной работе студентов Для студентов всех форм обучения по направлению подготовки «Электроэнергетика и электротехника» Ангарск 2014 Голованов И.Г. Электрические станции и подстанции. Методические указания к практическим занятиям и самостоятельной работе/ Голованов И.Г. – г. Ангарск: Изд-во АГТА,...»

«Настоящие методические указания подготовлены на основе следующих нормативно-технических документов: ГОСТ 7.32-2001. Отчет о научно-исследовательской работе. Структура и правила оформления1; ГОСТ 7.1-2003. Библиографическая запись. Библиографическое описание. Общие требования и правила составления 2; ГОСТ Р705-2008. Библиографическая ссылка. Общие требования и правила составления 3.разработаны на основе методических указаний по оформлению контрольных работ, курсовых работ, выпускных...»

«Содержание Введение Общая характеристика образовательного учреждения 1. Система управления 2. Образовательная деятельность техникума 3.3.1 Организация учебного процесса 3.2 Структура подготовки специалистов 12 3.3 Характеристика контингента обучающихся 13 Подготовка по дополнительным образовательным программам 4. Организация воспитательного процесса 5. Условия осуществления образовательного процесса 6. 6.1 Качество материально – технической базы 25 6.2 Кадровый состав техникума 28 6.3 Учебно...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» ПРОФЕССИОНАЛЬНЫЕ ЦЕННОСТИ И ЭТИКА БУХГАЛТЕРОВ И АУДИТОРОВ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПЕНЗА 2015 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Пензенский государственный университет» (ПГУ) Профессиональные ценности и этика...»

«СТО 027-2015 Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ С Т А Н Д А Р Т О Р Г А Н И З А Ц И И СИСТЕМА МЕНЕДЖМЕНТА КАЧЕСТВА Учебно-методическая деятельность. Общие требования к организации и проведению лабораторных работ Учебно-методическая деятельность. СТО 027-2015 ИРНИТУ Общие требования к организации и проведению лабораторных работ...»

«Министерство образования и науки РФ ФГБОУ ВПО Уральский государственный лесотехнический университет Кафедра информационных технологий и моделирования Г.Л.Нохрина СЕТЕВАЯ ЭКОНОМИКА Методические указания по выполнению самостоятельных работ для студентов очной и заочной форм обучения ЕКАТЕРИНБУРГ 2014 г. Печатается по рекомендации методической комиссии ФЭУ Протокол № Рецензент ст.препод. Л.Ю. Мельник Редактор Компьютерная верстка Подписано в печать Формат 6084 1/16 Поз.№ Плоская печать Печ.л. 0,93...»





Загрузка...




 
2016 www.metodichka.x-pdf.ru - «Бесплатная электронная библиотека - Методички, методические указания, пособия»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.