Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-Технологический_Практикум_УТС.Б_5.pdf
Скачиваний:
146
Добавлен:
09.02.2015
Размер:
584.23 Кб
Скачать

Вывод данных

disp Вывод значений переменных и текста на экран

fprintf Вывод форматированных текстовых данных в файл или на экран

sprintf Форматное преобразование данных в строки символов

fwrite Запись двоичных данных в файл

fclose Закрытие файла

DISP – вывод на экран

Синтаксис:

disp(<переменная> \ '<текст>')

Оператор disp(X) выводит на терминал значение переменной Х без указания ее имени.

Оператор disp ('текст') выводит на терминал символьную строку '<текст>'. После каждой команды disp происходит перевод на новую строку.

Примеры использования disp приведены выше.

FPRINTF, SPRINTF – вывод форматированных данных

Синтаксис:

COUNT = FPRINTF(FID,FORMAT,A,...)

FPRINTF(FORMAT,A,...)

[S] = SPRINTF(FORMAT,A,...)

[S,ERRMSG] = SPRINTF(FORMAT,A,...)

Описание:

Функция COUNT = FPRINTF(FID,FORMAT,A,...) преобразовывает данные в строки символов в соответствии с указанным форматом и выводит их на экран или в файл в зависимости от значения идентификатора файла. Идентификатор файла - это целое число, которое может быть получено с

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

Оператор FPRINTF(FORMAT,A,...) выводит данные на экран терминала.

Функция [S] = SPRINTF(FORMAT,A,...) преобразовывает данные в строки символов в соответствии с указанным форматом и возвращает их в виде строковой переменной s, а не записывает их в файл.

функция [S,ERRMSG] = SPRINTF(FORMAT,A,...) возвращает, кроме того,

сообщение об ошибке, если она имела место, либо пустую строку.

Функции fprintf и sprintf аналогичны соответствующим функциям языка ANSI С за некоторыми исключениями:

-следующие нестандартные спецификаторы подтипа поддержаны для спецификаторов преобразования %o, %u, %x, %X:

-t - основной тип данных - числа с плавающей точкой, а не целое без знака;

-b - основной тип данных - числа с удвоенной точностью, а не целое без знака. Например, для вывода чисел с удвоенной точностью в шестнадцатеричной системе счисления следует применить формат %bx;

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

Пример15:

Скрипт ex1file

x=0:0.1:1; y=[x,exp(-x)]; f=fopen('ex1file.txt','w');

fprintf(f,'%6.2f,%10.6f\n',y);

fclose(f);

type ex1file.txt

FWRITE - запись двоичных данных в файл

Синтаксис:

COUNT = FWRITE(FID,A,PRECISION) записывает элементы матрицы A в

файл FID с точность представленния данных . PRECISION.Данные записываются по столбцам. COUNT счетчик успешно записанных данных

FID целое, файловый идентификатор полученный при открытии FOPEN, или 1 для стандартного файла вывода или 2 - для файла ошибок.

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

COUNT = FWRITE(FID,A,PRECISION,SKIP) включает опцию SKIP-

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

Пример 16:

Скрипт ex2file

%записывает 100-байтный

%двоичный файл ‘ex2file.bin’, %содержащий 25 элементов %магической матрицы, %элементы - 4-байтовые %целые.

fid = fopen('ex2file.bin','wb') fwrite(fid,magic(5),'integer*4') fclose(fid)

ЗАДАНИЕ 1:

Напишите программу вычисления суммы ряда S с точностью ε. Значение ε ввести с клавиатуры. В командное окно вывести S и число слагаемых ряда m , при которых достигнута точность ε.

Вид ряда: S = (1)n+1an

n=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант

 

 

 

 

 

 

an

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n(n +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

sin(π/ n)

 

 

 

 

 

 

 

 

 

n3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

cos(π/ n)

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(n +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

1

 

 

 

 

 

 

 

 

 

 

 

 

n ln(n +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

π

4

 

 

 

 

 

 

 

 

 

tg

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

ln(n)

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАДАНИЕ 2:

Напишите программу, определяющую количество точек на плоскости, расположенных внутри фигуры.

Координаты точек вводить– по выбору пользователя:

-с терминала

-из текстового файла

-из двоичного файла. Организуйте контроль ввода.

Вариант

 

Фигура

 

 

 

1

2

3

4

5

6

7

(x2 + y2 1)& (x 0, y 1 x, y x 1)

(x2 + y2 1)& (x 2, y 1)

x42 + y2 1 & (x 1)

(x + y 1)& (x 2, y 2)

(x2 + y2 2)& x42 + y2 1

(x2 + y2 2)& (x2 + y2 1)

(x2 + y2 4)& (x + y 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

(

 

 

x

 

 

+

 

 

 

y

 

 

2)& (

 

x

 

 

 

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

(

 

 

x

 

 

+

 

 

y

 

 

2)& (

 

y

 

 

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

(x2 + y2 1)& (

 

x

 

1,0 y 2)

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полученный результат

проверьте, построив графики фигур

контрольных точек.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Контрольные точки:

x

0

0.1

0.5

1.5

-0.8

1.5

-1.8

-0.5

0.9

1.1

 

 

 

 

 

 

 

 

 

 

 

y

0

0.2

-0.3

1.0

-0.6

1.2

0.3

0.5

-1.3

2.3

 

 

 

 

 

 

 

 

 

 

 

ЗАДАНИЕ 3:

Напишите программу минимизации функции F(x1, x2 ) методом перебора в квадрате (0 x1 1),(0 x2 1) с точностью определения точки минимума ε =102 . В программе реализуйте два этапа: 1-й – определение точки минимума с точностью ε =101 , 2-й - определение

точки минимума с точностью ε =102 . Перебор организуйте на

равномерной сетке и на сетке золотого сечения. Сравните полученные результаты. Проверьте правильность решения графически.

F(x1, x2 )= Ax1 +Bx2 +exp(Cx12 +Dx22 )

 

 

 

 

 

 

 

 

 

 

 

 

Вариант

 

A

 

B

 

C

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1.2

 

-1.4

 

0.01

 

0.11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2.2

 

-1.3

 

0.04

 

0.12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

3.2

 

-1.2

 

0.02

 

0.13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

4.2

 

-1.1

 

0.16

 

0.14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

5.2

 

-1.0

 

0.25

 

0.15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

6.2

 

-0.9

 

0.36

 

0.16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

7.2

 

-0.8

 

0.49

 

0.17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

8.2

 

-0.7

 

0.64

 

0.18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

9.2

 

-0.6

 

0.81

 

0.19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

10.2

 

-0.5

 

0.94

 

0.20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Контрольные вопросы

1.Управляющие структуры MATLAB

2.Оператор FOR

3.Оператор WHILE

4.Условный оператор IF

5.Оператор переключатель SWITCH

6.Оператор BREAK прерывания цикла

7.Диалоговый ввод данных

8.Функция INPUT

9.Оператор KEYBOARD

10.Оператор PAUSE

11.Функция MENU

12.Ввод данных из файла

13.FOPEN - открытие файла

14.FREAD - чтение двоичного файла

15.TEXTREAD - чтение форматироавнных данных из текстового файла

16.Вывод данных

17.DISP – вывод на экран

18.FPRINTF, SPRINTF – вывод форматированных данных

19.FWRITE - запись двоичных данных в файл