Материал: Sb97304

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МИНОБРНАУКИ РОССИИ

___________________________________

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В. И. Ульянова (Ленина)

______________________________________

А. С. ВЕТЧИНКИН О. Ю. ЛУКОМСКАЯ А. Г. ШПЕКТОРОВ

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

Учебно-методическое пособие

Санкт-Петербург Издательство СПбГЭТУ «ЛЭТИ»

2017

УДК 004.42(07)

ББК З973.2-018я7 В39

ВетчинкинА. С., Лукомская О. Ю., Шпекторов А. Г.

В39 Программирование и основы алгоритмизации: учеб.-метод. пособие. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2017. 40 с.

ISBN 978-5-7629-2254-4

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

Предназначено для студентов бакалавриата обучения по направлению «Управления в технических системах», а также может быть полезно студен-

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

УДК 004.42(07)

ББК З973.2-018я7

Рецензент: канд. техн. наук Д. В. Козьмовский (ФГБУН Институт проблем транспорта им. Н. С. Соломенко РАН).

Утверждено редакционно-издательским советом университета

в качестве учебно-методического пособия

ISBN 978-5-7629-2254-4

© СПбГЭТУ«ЛЭТИ», 2017

ВВЕДЕНИЕ

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

близкой к математической.

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

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

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

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

Предлагаемый цикл лабораторных работ направлен на освоение основ-

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

дятся для выполнения работ, относятся к базовым встроенным средствам (ядру) системы. Хотя ядро системы считается стабильным, определенные из-

менения с каждой новой версией MATLAB все-таки появляются, поэтому отдельные рассматриваемые типы данных, функции и операторы в некото-

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

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

Содержание отчета

1.Задание на лабораторную работу.

2.Блок-схемы алгоритмов решения задачи.

3.Тексты программ.

4.Результаты выполнения программ (графики, листинг командного ок-

на, содержимое файлов). 5. Выводы.

3

ОСНОВЫ РАБОТЫ В ИНТЕГРИРОВАННОЙ СРЕДЕ MATLAB

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

Элементарные операции с матрицами

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

вещественные числа

комплексные числа

1

3i

-2

-2j

4.321

2+4i

0.000000001

-0.0001j

987.6543е-21

-5.4321i

-123.567е10

-123.45+1.2e-4i

Переменные. Система MATLAB выполняет различные действия над переменными, каждая из которых имеет некоторое имя. Имена назначаются пользователем или системой и формируются как произвольные последовательности латинских букв и цифр (допусти́м также символ подчеркивания),

начинающиеся обязательно с буквы. При этом система различает прописные и строчные буквы. Указание имени новой переменной в левой части опера-

тора присваивания приводит к ее автоматическому размещению в оперативной памяти, трактуемой в среде как «рабочее пространство» (WorkSpace).

Удалить переменную из рабочего пространства можно только с помощью команды clear.

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

дующие:

i или j – мнимая единица 1;

pi – число = 3.141592653589793…; inf – значение машинной бесконечности;

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

4

NaN – неопределенность, указание на нечисловой характер данных

(Not-a-Number);

realmin и realmax – минимальное и максимальное вещественные числа.

Для очистки рабочего пространства используются следующие варианты команды clear:

clear – уничтожение всех переменных; clear x – уничтожение переменной x;

clear a b c – уничтожение нескольких указанных переменных.

Задание матриц. Для задания некоторых матриц стандартного вида в систему MATLAB включены функции:

1.zeros(n,m) – нулевая матрица размером n m;

2.eye(n) – единичная матрица размером n n;

3.ones(n,m) – матрица размером n m, все компоненты которой равны 1;

4.rand(n,m) – матрица размером n m со случайными компонентами, которые равномерно распределены на отрезке [0, 1].

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

V1=[1 2 3] – вектор-строка из трех элементов со значениями 1, 2 и 3. V2=[1;4;7] – вектор-столбец из трех элементов со значениями 1, 4 и 7.

M=[1 2 3; 4 5 6; 7 8 9] – матрица размером 3 3 следующего вида:

 

1

2

3

M

4

5

6 .

 

 

8

 

 

7

9

 

 

 

 

Совершенно аналогично задаются блочные матрицы (состоящие из век-

торов и матриц).

Функция репликации матрицы repmat(A,N,M) создает блочную матрицу

NxM, каждым элементом которой является матрица A. Вызов функции repmat(0,n,m) эквивалентен вызову функции zeros(n,m).

Для определения размера вектора служит функция length(V), размер матрицы можно определить при помощи функции size(M).

Для указания отдельной компоненты вектора или матрицы используются выражения вида V(i) или M(i, j).

5