- •6 Вспомогательные материалы для выполнения лабораторных работ 102
- •3Введение
- •4Рекомендации по выполнению практической части лабораторных работ
- •5Методы процедурного программирования
- •6Модульное проектирование
- •7Структурное программирование
- •7.1Проектирование сверху вниз
- •7.2Модульное программирование
- •7.3Структурное кодирование
- •9Цель работы
- •10Порядок выполнения работы
- •11.1Запуск ide. Типы приложений
- •11.2Создание нового проекта
- •11.3Добавление к проекту файлов с исходным кодом
- •3.3.1 Добавление нового файла
- •3.3.2 Добавление существующего файла
- •11.4Многофайловые проекты
- •11.5Компиляция, компоновка и выполнение проекта
- •3.5.1 Конфигурация проекта
- •3.5.2 Как открыть проект, над которым вы работали ранее
- •12Встроенная справочная система
- •13Проблемы с вводом-выводом кириллицы
- •5.1. Замечания по потоковому вводу-выводу
- •6. Работа с отладчиком
- •6.1. Установка точки прерывания
- •6.2. Выполнение программы до точки прерывания
- •6.3. Пошаговое выполнение программы
- •6.3.1 Проверка значений переменных во время выполнения программы
- •6.3.2 Окна Auto, Local и Watch
- •7 Содержание отчета по лабораторной работе
- •14Контрольные вопросы
- •Как открыть проект, над которым вы работали ранее?
- •14.1Рекомендуемые источники информации
- •15Лабораторная работа 2. Программирование разветвляющихся алгоритмов
- •16Цель работы
- •17Задание
- •18Рекомендации по разработке программы
- •19Требования к отчету
- •20Контрольные вопросы
- •21Рекомендуемые источники информации
- •Московский государственный технический университет им. Н.Э. Баумана.
- •22Лабораторная работа 3. Табулирование функций с использованием рядов Тейлора
- •23Цель работы
- •24Задание
- •25Рекомендации по выполнению работы
- •25.1Указание к задаче 1 задания
- •25.2Указание к задаче 2 задания
- •25.3Указание к задаче 3 задания
- •25.4Указание к задаче 4 задания
- •26Содержание отчета.
- •27Контрольные вопросы
- •28Рекомендуемые источники информации
- •29 Варианты задания
- •29.1.1.1Вариант 1
- •29.1.1.2Вариант 2
- •29.1.1.3Вариант 3
- •29.1.1.4Вариант 4
- •29.1.1.5Вариант 5
- •29.1.1.6Вариант 6
- •29.1.1.7Вариант 7
- •29.1.1.8Вариант 8
- •29.1.1.9Вариант 9
- •29.1.1.10Вариант 10
- •29.1.1.11Вариант 11
- •29.1.1.12Вариант 12
- •29.1.1.13Вариант 13
- •30Лабораторная работа 4 Численные методы решения нелинейных уравнений
- •31Цель работы.
- •32Задание.
- •33Рекомендации по выполнению работы
- •34Содержание отчета
- •40Примеры работы с массивами
- •40.1Количество элементов между минимальным и максимальным
- •40.2Динамические массивы
- •40.3Использование датчика случайных чисел.
- •41Содержание отчета
- •42Контрольные вопросы
- •43Рекомендуемые источники информации
- •44Лабораторная работа 6. Численное интегрирование функций
- •45Цель работы.
- •46Задание.
- •47Рекомендации по выполнению работы.
- •47.1Метод прямоугольников.
- •47.2Метод трапеций.
- •47.3Формулы для вычисления точных значений интеграла:
- •47.4Примеры передачи в функцию в качестве параметров одномерных массивов и имен функций.
- •3.5. Пример вывода таблицы результатов
- •47.5Функция для печати таблицы результатов
- •48Содержание отчета
- •49Контрольные вопросы
- •50Рекомендуемые источники информации
- •51Лабораторная работа 7 Обработка и печать числовой матрицы
- •52Цель работы
- •53Задание
- •Рекомендации по выполнению работы
- •53.1Создание двухмерных динамических массивов
- •53.2Передача многомерного массива в функцию с помощью параметров.
- •53.3Пример разработки программы сортировки строк матрицы
- •53.4Основные правила работы с двухмерными массивами
- •53.5Рекомендации по созданию программы
- •54Содержание отчета
- •55Контрольные вопросы
- •57.3Рекомендации по выполнению работы
- •57.4Ввод-вывод строк
- •57.5Пример программы работы с символьными строками.
- •I. Исходные данные и результаты
- •II. Алгоритм решения задачи
- •57.6Работа с файлами
- •Void open (char*FileName, int режим, int защита);
- •57.7Потоки ввода-вывода.
- •57.7.1.1Функции для обмена с потоками
- •57.7.1.2Функции чтения
- •57.8Использование аргументов командной строки
- •Часть 1.
- •Часть 2.
- •63.33. Рекомендации по выполнению работы
- •63.4Алгоритм вычисления обратной матрицы
- •63.4.1.1Шаг 1. Прямой ход
- •63.4.1.2Шаг 2. Обратный ход
- •63.4.23.2. Точность вычисления обратной матрицы.
- •69Задание и требования к результатам работы
- •70Рекомендации по выполнению работы
- •70.1Шаги разработки программы
- •70.2Работа со структурами
- •70.3Дополнительные требования для «сильных» студентов:
- •71Содержание отчета
- •72Контрольные вопросы
- •73Рекомендуемые источники информации
- •74Домашнее задание. Методические указания к домашнему заданию по курсу «Основы программирования»
- •76Цели домашнего задания
- •2. Требования к выполнению задания
- •76.1Групповая разработка проектов
- •76.2Шаги выполнения задания
- •77Требования к отчету
- •78Оценка выполнения задания
57.8Использование аргументов командной строки
Данные в функцию main() можно передавать через параметры из командной строки (строки запуска функции на выполнение из операционной системы). Это удобно при отладке программы (чтобы не вводить при каждом запуске одни и те же данные) и может быть удобным при использовании программы.
При использовании функции main() с параметрами в командной строке заголовок функции имеет вид:
int main(int argc, char* argv[]), где:
argc – количество параметров;
argv[] – массив указателей на параметры (каждый параметр – строка).
Первый параметр, argv[0] – указатель на полное имя исполняемого файла. Он передается по умолчанию и не указывается при запуске программы.
Для выполнения программы с аргументами в командной строке нужно уметь:
- запустить программу с параметрами в командной строке; - проконтролировать из программы количество параметров; - использовать параметры из командной строки в тексте программы.
Запуск программы с параметрами в командной строке можно осуществить непосредственно из командной строки ДОС или из среды программирования Microsoft Visual C++.
Для запуска из Microsoft Visual C++ нужно:
- открыть меню Project;
- выбрать пункт Settings…;
- в окне Program settings выбрать закладку Debug;
- в поле Program arguments через пробел ввести необходимые параметры.
Для запуска из командной строки ДОС нужно выполнить следующие действия:
- на Рабочем столе Windows нажать кнопку ПУСК;
- в раскрывшемся меню выбрать пункт ВЫПОЛНИТЬ;
- с помощью кнопки ОБЗОР… найти нужный файл с расширением .exe;
- в окне Открыть: после символа “, стоящего в конце полного имени файла, через пробел ввести необходимые параметры.
При контроле числа параметров нужно иметь ввиду, что первый параметр всегда передается по умолчанию и число параметров будет на 1 больше, чем введено. Например, если передается один параметр - имя файла с исходными данными, то argc будет равно 2, argv[0] указывает на полное имя исполняемого модуля (точнее, на список параметров системного окружения, первым из которых является имя исполняемого файла), а argv[1] указывает на введенное имя файла с данными.
При использовании параметров нужно помнить, что каждый передаваемый параметр – это символьная строка. Если надо передать численное значение, то в программе надо преобразовать строку в число с помощью соответствующей типу числа функции (double atof(char *str), int atoi(char *str), или long atol(char *str)).
В качестве примера работы с файловыми потоками приведем программу копирования одного файла в другой. Имена файлов берутся из аргументов командной строки:
// МуСору.срр
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
if (argc != 3) cout <<"Неверное число аргументов"<<endl;
ifstream from(argv[1]); // открываем входной файл
if (!from)
{
cout<<"Входной файл "<< argv[1 ]<<" не найден"<<endl;
return 1;
}
ofstream to(argv[2]); // открываем выходной файл
if (!to)
{
cout<<"Выходной файл "<< argv[2]<< " не открыт"<< endl;
return1;
}
char ch;
while (from.get(ch))
{
to.put(ch);
if (!to) cout<<"Ошибка записи (диск переполнен).";
}
cout << "Копирование из " << argv[1] << " в " << argv[2] << " завершено." << endl;
return 0;
}
58Содержание отчета
59Контрольные вопросы
Создание текстовых файлов.
Использование методов getline() и strtok_s() для пословного чтения текста из файла.
Создание бинарных файлов.
Использование методов put(),write() и get(),read() для работы с бинарными файлами.
60Рекомендуемые источники информации
Основные.
Р. Лафоре. Объектно-ориентированное программирование в С++. Издательство ПИТЕР, 2004 г.
61Г. Шилдт. Полный справочник по С++, 4-е издание, Издательский дом «Вильямс», 2006
Дополнительные.
62Н. Вирт. Алгоритмы+Структуры данных=Программы, «Мир», 1985 г.
63http://msdn.microsoft.com/ru-ru/library/ , раздел: Справочник по С++.
Лабораторная работа 9 Вычисление обратной матрицы методом Гаусса-Жордана
63.1Цель работы
Разработка программы, реализующей алгоритм вычисления обратной матрицы методом Гаусса-Жордана;
Использование разработанных функций для решения систем линейных уравнений.
Планируемое время выполнения работы - 8 часов.
63.2Задание
Создать функцию для вычисления обратной матрицы по методу Гаусса-Жордана. Размер матрицы передавать в функцию в качестве параметра. Для упрощения алгоритма следует присоединить единичную матрицу справа к исходной и выполнять все преобразования над объединенной матрицей размером N*2N. Обратная матрица получится на месте единичной в столбцах N…2N, а на месте исходной матрицы в столбцах 0…(N-1) должна получиться единичная матрица.
Включить в алгоритм проверку на существование обратной матрицы. Для этого в прямом ходе перед делением выполнить проверку на ноль элементов на главной диагонали исходной матрицы. Если элемент равен 0, то нужно поменять местами текущую строку с одной из нижележащих строк, в которой элемент в соответствующем столбце не равен 0.
Если таких строк нет, то выдать сообщение: «Обратная матрица не существует».
Алгоритм решения системы линейных алгебраических уравнений оформить в виде функции.
Шаги выполнения задания.
