Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование

.pdf
Скачиваний:
18
Добавлен:
29.02.2016
Размер:
1.3 Mб
Скачать

ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«БЕЛОРУССКО-РОССИЙСКИЙ УНИВЕРСИТЕТ»

Кафедра «Автоматизированные системы управления»

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Методические указания по выполнению лабораторных и контрольных работ для студентов специальности 1-53 01 02 «Автоматизированные системы обработки информации» заочной формы обучения

Могилев 2008

2

УДК 004.4 БКК 32.973

О 75

Рекомендовано к опубликованию учебно-методическим управлением

ГУ ВПО «Белорусско-Российский университет»

Одобрено кафедрой «Автоматизированные системы управления» «11» ноября 2008 г., протокол № 3

Составитель ст. преподаватель А. И. Кашпар

Рецензент канд. техн. наук, доц. В. А. Широченко

Методические указания содержат общие требования и правила оформления лабораторных и контрольных работ, выполняемых студентами специальности 1-53 01 02 «Автоматизированные системы обработки информации» заочной

формы обучения.

Учебное издание

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Ответственный завыпуск

С. К. Крутолевич

Технический редактор

А. А. Подошевко

Компьютерная верстка

Н. П. Полевничая

Подписано в печать

. Формат 60х84/16. Бумага офсетная. Гарнитура Таймс.

Печать трафаретная. Усл.-печ. л.

. Уч.-изд. л.

. Тираж 31 экз. Заказ №

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

«Белорусско-Российский университет» ЛИ № 02330/375 от 29.06.2004 г. 212030, г. Могилёв, пр. Мира, 43

© ГУ ВПО «Белорусско-Российский университет», 2008

3

Содержание

Введение……………………………………………………..………..

4

1

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

 

контрольных работ……………………………………………………………

5

2

Структура программы. Программирование линейных

 

алгоритмов ……………………………………………………………………

6

3

Программирование разветвляющихся алгоритмов. Оператор if.

11

4

Операторы цикла…………………………………………………...

15

5

Массивы…………………………………………………………….

20

6

Функции…………………………………………………………….

25

7

Структуры…………………………………………………………..

31

8

Потоки и файлы…………………………………………………….

34

Список литературы ..……………………………………………..

39

Приложение А .……………………………………………….......

40

4

Введение

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

Программа курса «Основы алгоритмизации и программирование» предусматривает выполнение студентами четырех контрольных и курсовой работ.

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

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

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

5

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

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

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

Задание на выполнение контрольной работы выдается преподавателем. Контрольная работа должна включать:

титульный лист (рисунок А.1);

задание (вариант);

основную часть;

список использованных источников. На титульном листе указываются:

наименование высшего учебного заведения и кафедры, где выдана

работа;

дисциплина, по которой она выполнена;

курс;

факультет;

группа;

фамилия, имя, отчество студента;

номер зачетной книжки;

год выполнения контрольной работы.

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

Схема алгоритма решения задачи должна выполняться в соответствии с ГОСТ 19.701-90.

Контрольную работу следует оформлять на листах формата А4. Тексты программ должны быть приведены в виде распечаток, остальную часть работы можно выполнять от руки.

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

6

2 Структура программы. Программирование линейных алгоритмов

В методических указаниях все примеры программ протестированы с использованием компилятора Microsoft Visual С++ 6.0, так как компилятор С++, входящий в пакет Microsoft Visual Studio 6.0, широко распространен и, в основном, удовлетворяет стандарту.

После запуска интегрированной среды Microsoft Visual С++ 6.0 необходимо создать проект. Для этого выполняем следующую последовательность команд:

1)File > New...;

2)в открывшемся окне

-выберите тип Win32 Console Application;

-введите имя проекта в текстовом поле Project Name;

-введите (выберете с помощью кнопки …) имя каталога размещения файлов проекта в текстовом поле Location, например G:/ASOIZ/;

-щелкните левой кнопкой мыши на кнопке ОК.

3)открывается диалоговое окно Win32 Console Application — Stepl

of 1 и в нем

- выберите тип An empty project; - щелкните на кнопке Finishж

4)после щелчка появится окно New Project, в котором щелкните на

кнопке ОК.

Далее создадим файл:

а) File > New.... В результате откроется диалоговое окно New; б) на вкладке Files

-выберите тип файла (в данном случае: C++ Source File);

-в текстовом поле File Name введите нужное имя файла;

-флажок Add to project должен быть включен;

-щелкните на кнопке ОК.

В открывшемся редакторе можно создавать программу, но прежде необходимо ознакомиться со структурой простейшей программы на языке С++.

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

#include <…> int main()

{

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

7

return 0;

}

В начале программы записываются директивы препроцессора, по которой к исходному тексту программы подключается заголовочный файл для использования тех или иных функций (например, директива #include <iostream.h> содержит описания операторов ввода-вывода cin и cout, для использования в программе математических функций необходимо в начале программы поместить директиву #include <math.h> )

Для хранения данных в программе надо выделить достаточно места в оперативной памяти. Для этого необходимо объявить переменные. Синтаксис объявления переменных:

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

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

Тип данных определяет:

-множество значений, которые могут принимать величины этого типа;

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

-операции и функции, которые можно применять к величинам этого

типа.

Основные типы:

int (short, unsigned) – целочисленные; float (double, long double) – вещественные; char – символьный;

bool – логический.

Для ввода-вывода информации используются операторы cin и cout. Рассмотрим программу:

#include <iostream.h> int main()

{

int i;

cout<<"Введите целое число:"<<endl; cin>>i;

cout<<"Вы ввели число "<<i<<", спасибо!"<<endl; return 0;

}

Первая строка этой программы — директива препроцессора, по которой в текст программы вставляется заголовочный файл < iostream.h>, содержащий описание использованных в программе операторов ввода/вывода.

Третья строка — описание переменной целого типа с именем i. Оператор cout в четвертой строке выводит приглашение «Введите целое число» и переходит на новую строку (endl). Оператор cin заносит введенное с клавиатуры целое число в переменную i, а следующий оператор cout выводит на экран указанную в нем строки (указаны в кавычках), а между ними значение переменной i (имя переменной без кавычек).

8

Прокомпилируем программу. Для этого нажимаем кнопку на панели инструментов либо комбинацию клавиш Ctrl+F7. В окне вывода (внизу экрана) должно вывестись сообщение 0 error(s), 0 warning(s) (0 ошибок, 0 предупреждений). Двойной щелчок по тексту ошибки указывает месторасположение ошибки в программе. Если есть ошибки, сверьте с оригиналом.

Для запуска программы нажимаем кнопку на панели инструментов либо комбинацию клавиш Ctrl+F5.

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

#include <iostream.h>

#include <windows.h> //для использования функции CharToOem char buf[256];

char* RUS(const char* text)

{

CharToOem(text, buf); return buf;

}

int main()

{

int i;

cout<<RUS("Введите целое число:")<<endl; cin>>i;

cout<<RUS("Вы ввели число ")<<i; cout<<RUS(", спасибо!")<<endl; return 0;

}

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

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

Существует одна простая операция присваивания и ряд составных. Простое присваивание =

А = B*2; // присвоить переменной А результат вычисления выражения

B*2.

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

для случая, который может быть описан как X = XÅY; - то же, в записи составного присваивания X Å=Y.

В качестве символа Å могут быть использованы знаки операций: +; -; *; /; % и др.

Например, f += 5; то же самое, что и f = f + 5.

9

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

Втаблице 2.1 представлены основные арифметические операции.

Таблица 2.1

Выражение

Операция

 

 

 

Пример

 

А

 

B

 

Результат

 

 

 

 

 

 

 

a+b

Сложение

 

 

5

 

2,75

7,75

а – b

Вычитание

 

 

5

 

2,75

2,15

а*b

Умножение

 

 

2

 

6

12

а/b

Деление

 

а и b - целые

 

7

 

2

3

 

в

остальных

 

7

 

2

3.5

 

 

 

случаях

 

 

 

 

 

a % b

Остаток

от

деления по

 

7

 

2

1

модулю

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стандартные математические функции представлены в таблице 2.2 (для использования математических функций необходимо подключить к программе заголовочный файл <math. h>).

Таблица 2.2

Обращение

Функция

 

 

abs(n)

Возвращает модуль целого числа

 

 

fabs (x)

Возвращает модуль вещественного числа

 

 

sin(x)

Синус угла х (х – в радианах)

 

 

cos(x)

Косинус угла х (х – в радианах)

 

 

tan(x)

Тангенс угла х (х – в радианах)

 

 

asin(x)

Арксинус(результат в радианах)

 

 

acos(x)

Арккосинус(результат в радианах)

 

 

atan (x)

Арктангенс(результат в радианах)

 

 

log(x)

Натуральный логарифм от х

 

 

log10(x)

Логарифм по основанию 10 от х

 

 

pow(x,y)

Возводит число х в степень у

 

 

exp(x)

Степень числа е (экспонента)

 

 

sqrt(x)

Квадратный корень из числа

 

 

Для условного обозначения алгоритмических операций применяются схемы алгоритма (таблица 2.3).

10

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

Таблица 2.3

 

 

 

Символ

 

 

Значение

Применение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Начало, конец обработки

 

 

 

 

 

 

 

 

 

 

 

Завершение

данных или выполнения

 

 

 

 

 

 

 

 

 

 

 

 

программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные

Обозначает ввод, вывод

 

 

 

 

 

 

 

 

 

 

 

данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обработка данных любого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Процесс

вида (выполнение операции

 

 

 

 

 

 

 

 

 

 

 

 

или группы операций)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор направления выпол-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение

нения программы в зависи-

 

 

 

 

 

 

 

 

 

 

 

мости от некоторых пере-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

менных условий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описывается подготовка

 

 

 

 

 

 

 

 

 

 

 

Подготовка

данных для выполнения по-

 

 

 

 

 

 

 

 

 

 

 

 

вторяющихся действий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Одна или несколько опера-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Типовой процесс

ций, которые определены в

 

 

 

 

 

 

 

 

 

 

 

 

другой программе, модуле

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соединитель (узел)

Используется при разрыве

 

 

 

 

 

 

 

 

 

к стр

линий схемы алгоритма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример. Вычислить значение функции

f(x, y) = | x | +sin 3 (y + 5) . x + 13

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

В данном случае: