Отчет по практике по PASCAL и MathCad

Автор: Пользователь скрыл имя, 09 Марта 2013 в 19:36, отчет по практике

Описание работы

Закрепить умения решать задачи с использованием математического пакета MathCad и языка программирования Pascal.
Ход работы
MathCad:
Первый пункт задания. Функция одной переменной. Для этого нужно ввести заданное уравнение, в панели графиков выбрать X-Y график и подписать метки-заполнители.

Содержание

1 Цель работы 3
2 Ход работы 4
3 Список использованной литературы 15
4 Заключение 16
5 Приложение 17

Работа содержит 1 файл

отчет в п.docx

— 419.29 Кб (Скачать)

Министерство  образования и науки Российской Федерации

 

Томский университет  систем управления и радиоэлектроники

(ТУСУР)

 

Кафедра физической электроники (ФЭ)

 

Отчет по практике по PASCAL и MathCad

 

 

 

 

 

Выполнил: студент группы 321 
Берков Илья__________ 
_____________ 2012 год

 
Проверил:

Ассистент кафедры  АСУ 

Колотаев И.В.

Дата: _______________

Подпись: ____________

.

 

 

Оглавление

 

1 Цель работы 3

2 Ход работы 4

3 Список использованной литературы 15

4 Заключение 16

5 Приложение 17

 

 

 

    1. Цель работы

 

Закрепить умения решать задачи с использованием математического пакета MathCad и языка программирования Pascal.

    1. Ход работы

 

    1. MathCad:
  1. Первый пункт задания. Функция одной переменной. Для этого нужно ввести заданное уравнение, в панели графиков выбрать X-Y график  и подписать метки-заполнители.

 


 

 

 

 

 

 

Рис. 2.1.Функция одной переменной

  1. Второй пункт задания. Построение графика поверхности. Задается двумерный массив (от -5 до 5) и в панели графиков выбрать график поверхности подписать метки-заполнители


 

 

 

 

 

 

 

 

 

 

Рис. 2.2. График поверхности

  1. Третий пункт задания. Построение параметрически заданной функции. Для этого нужно определить параметр и в панели графиков выбрать график X-Y и в окне построения графика в качестве аргумента введем x(t), в качестве функции y(t).


 

 

 

 

 

 

Рис. 2.3. Параметрически заданной функции

  1. Четвертый пункт задания. Для решения кусочно-непрерывной функции необходимо задать значения в виде одномерной матрицы. В операторе Add Line записываются данные уравнения, в панели графиков выбрать X-Y график  и подписать метки-заполнители.


 

 

 

 

 

 

 

 

 

 

Рис 2.4. Кусочно-непрерывная функция

 

  1. Пятый пункт задания. Для решения СЛАУ методом Крамера нужно вызвать панель векторов и матриц, добавить матрицу, заполнить ее. Выбрать функцию Kram(A,b), а затем в цикле со счетчиком i от 0 до n, производится вычисление каждого неизвестного по правилу Крамера.

 

 


 

 

 

 

 

 

 

Рис 2.5. Метод Крамера

  1. Пятый пункт задания. Для решения СЛАУ методом Гаусса нужно вызвать панель векторов и матриц, добавить матрицу, заполнить ее. Выбрать функцию Gaus(A,b), далее с помощью функции augment объеденим матрицы A и b. Затем функцией rref сведем основную матрицу к единичной.

 

 

 

 

 

 

 

 

Рис. 2.6. Метод Гаусса

  1. Шестой пункт задания. Матричные операции.

 

    1. Определяем матрицы и автоматически заполняем случайными значениями.


 

 

 


 

 

Рис. 2.7. Определение и заполнение матриц

    1. Вычисляем заданное матричное выражение


 

 

Рис. 2.8. Вычисление матричного выражения

    1. Для результирующей матрицы складываем каждый элемент со скаляром Х1

 

 

 

 

Рис 2.9. Сложение матрицы со скаляром Х1

    1. Для результирующей матрицы вычитаем из каждого элемента скаляр Х2

Рис 2.10. Вычитание из матрицы скаляра  Х2

 

    1. Вычисление определителя матрицы

 

Рис 2.11. Определитель матрицы

    1. Поиск обратной матрицы и проверка результата

Рис. 2.12. Обратная матрица

 

 

    1. Поиск собственных чисел, собственных векторов и проверка результата


 

 

 

 

 

Рис. 2.13. Собственные числа, вектора  и проверка результата

    1. Вычисление ранга матрицы

 

Рис. 2.14. Ранг матрицы

    1. Вычисление модуль каждого вектора


 

 

 

 

Рис. 2.15. Модуль вектора

    1. Вычисление орт каждого вектора

 

 

 

 

 

Рис. 2.16. Орт вектора

    1. Вычисление суммы координат


 

Рис.2.17. Сумма координат

 

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

 

 

 

 

 

Рис. 2.18. Координаты вектора

    1. Вычисление скалярного произведения векторов


 

Рис 2.19. Скалярное произведение векторов

    1. Вычисление синуса и косинуса между векторами

 

 

 

Рис 2.20. Синус и косинус между  векторами

    1. Вычисление векторного произведения

 

 

 

Рис. 2.21. Векторное произведение

    1. Вычисление вектора, координаты которого являются произведение координат исходных векторов

 

 

 

Рис.2.22. Координаты вектора произведения исходных векторов

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

 

 

 

 

 

 

 

Рис.2.23.Определенный интеграл

  1. Восьмой пункт задания. Для решения неопределенного интеграла необходимо под знаком неопределенного интеграла задать решаемый интеграл и поставить символический знак равенства. (Первый интеграл MathCad вычислил без проблем, а второй не вычисляет)


 

 

 

Рис.2.24. Неопределенный интеграл

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


 

 

 

 

 

 

Рис.2.25. Дифференцирование

  1. Десятый пункт задания. Для решения сплайн-интерполяции необходимо записать x и y по векторам, отсортировать по координате х (объединить (augment), отсортировать по первому столбцу(csort) и вновь разъединить), линейно построить точки(lspline), определить первую функцию fl(x)-(interp), построить график. [Аналогично интерполируется параболическим и кубическим сплайном(pspline,cspline) и строится все три сплайна на одном графике].



 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

Рис.2.26. Сплайн-интерполяция

    1. Pascal:

 

  1. Ознакомление с задачей: «Крестики-нолики». При игре в крестики-нолики, выигрывает тот, кто первым выстраивает пять крестиков (или ноликов) подряд по горизонтали, вертикали или диагонали. Запрограммировать игру в крестики-нолики на прямоугольном клеточном поле для: двух игроков или одно игрока и компьютера.
  2. В программе используется 2 основных алгоритма работы: их описание представим в виде блок-схемы:

     Конец



dva_igroka


Odin_igrok


no


yes


N=1?


     Ввод n


Начало




 

Запрос данных


Данные  запрашиваются для выбора режима игры:1 или 2 игрока


 

 



 

 

 

 

 

 

 

 

 

                                      Рис. 2.27 «Основная программа»

Начало




 

Error=false


Pole


Error=false


Och mod 2=1


no


yes


Вызов процедуры  вырисовывания сетки для игры


 

Res<>true


Pole



Random (i1, j1)


I1, J1



O


Х



 

 


Вывод победителя




Конец


                       


 

                      Рис. 2.28. «Процедура для игры с компьютером»

  1. В программе подключается 2 дополнительных внешних модуля: crt и graphabc (для версии ABCpascal)
  • Модуль Crt является одним из стандартных модулей. В нем описаны и определены функции для работы с текстовой информацией на дисплее (изменение цвета текста, управление курсором и др.).
  • Модуль Graph содержит типы, константы, переменные и подпрограммы, позволяющие программисту создавать изображения с использованием широкого набора графических адаптеров, которые разбивают экран на пиксели и позволяют работать с каждым пикселом отдельно.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.2.29. «Вид начального окна при выборе режима игры»

 


 

 

 

 

 

 

 

 

 

 

Рис.2.30. «Окно  игры с компьютером»

 

Рис.2.31. «Окно вывода победы 1 игрока»


 

    1. Список использованной литературы 

 

    1. Inc.(2008). 16.4. Модуль Graph Statsoft. Web: http://www.5byte.ru/tp7pub/0198.php
    2. Беркова В.Н. Программирование на языке Паскаль / В.Н. Беркова. - М.: Семипалатинск, 2006. - 90 с.
    3. ТУСУР, Методические указания по выполнению вычислительной практики / Томск, 2004. – 66 с

 

 

    1. Заключение

 

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

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

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

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

 

 

    1. Приложение

 

Листинг программы игры «Крестики-Нолики»:

 

uses crt,graphabc;

var MN:array[1..5,1..5] of char;

    i,j,x,x1,y,y1,n,v1,v2,i1,j1,och:integer;

 

procedure Pole;

 begin

   setpenColor(clBlue);

   X:=16; y:=80;

     For I:=1 to 4 do

       begin

         Line(x,y,x+148,y);

         y:=y+35;

      end;

     X:=45; y:=50;

    For I:=1 to 4 do

     begin

         Line(x,y,x,y+170);

         x:=x+31;

    end;

end;

 

function error:boolean;

  begin

     error:=false;

     If (mn[i1,j1]='X') or (mn[i1,j1]='O') then error:=true;

  end;

 

function res:boolean;

begin

 res:=false;

 for I:=1 to 5 do

     begin

If (mn[i,1]='X') and (mn[i,2]='X') and (mn[i,3]='X') and (mn[i,4]='X') and (mn[i,5]='X') then begin                               res:=true; V1:=1; end else

         if (mn[i,1]='O') and (mn[i,2]='O') and (mn[i,3]='O') and (mn[i,4]='O') and (mn[i,5]='O') then        begin res:=true; V2:=1; end;

     end;

 for j:=1 to 5 do

     begin

      If (mn[1,j]='X') and (mn[2,j]='X') and (mn[3,j]='X') and (mn[4,j]='X') and (mn[5,j]='X') then begin res:=true; V1:=1; end else

         if (mn[1,j]='O') and (mn[2,j]='O') and (mn[3,j]='O') and (mn[4,j]='O') and (mn[5,j]='O') then begin res:=true; V2:=1; end;

     end;

If ((mn[1,1]='X') and (mn[2,2]='X') and(mn[3,3]='X') and(mn[4,4]='X') and (mn[5,5]='X')) or

    ((mn[5,1]='X') and (mn[4,2]='X') and(mn[3,3]='X') and(mn[2,4]='X') and (mn[1,5]='X')) then  begin res:=true; V1:=1; end;

If ((mn[1,1]='O') and (mn[2,2]='O') and(mn[3,3]='O') and(mn[4,4]='O') and (mn[5,5]='O')) or

    ((mn[5,1]='O') and (mn[4,2]='O') and(mn[3,3]='O') and(mn[2,4]='O') and (mn[1,5]='O')) then  begin res:=true; V2:=1; end;

If och>25 then begin res:=true; v1:=2; end;

end;

 

procedure odin_igrok;

   begin

        ClearWindow(clCream);

        och:=0;

        While res<>true do

        begin

            inc(och);

            If och mod 2 = 1 then

                begin

Информация о работе Отчет по практике по PASCAL и MathCad