Формування матриці в Паскалі

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    74,17 Кб
  • Опубликовано:
    2013-11-04
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Формування матриці в Паскалі

Вступ

програма матриця квадратний паскаль

Турбо Паскаль з'явився на ринку програмних продуктів в 1984 році і, безсумнівно, зробив революцію в програмуванні. Чудова у Турбо Паскалі не мова, яка є лише мовою Паскаля, а програмне оточення, в якому тепер можна використовувати Паскаль і яке забезпечує користувачеві комфорт і високу швидкість роботи. З успіхом Турбо Паскаля на ринку програмних продуктів пов'язано також і розвиток численних пакетів, що полегшують застосування Паскаля для самих різних цілей.

Турбо Паскаль7.0 представлений в абсолютно новій формі. Не тільки стає ще більш швидким компілятор, але і з'являється зовсім нове програмне оточення. Суттєво те, що компілятор став вбудованим, так що з'явилася можливість розбиття програм на частини, компільовані окремо. Оскільки кожен такий модуль має власний сегмент кодів

Фірма Borland / Inprise завершила лінію продуктів Турбо Паскаль і перейшла до випуску системи візуальної розробки для Windows - Delphi. Незважаючи на це, Турбо Паскаль зберігає своє значення відмінної мови для першого знайомства зі світом «серйозного» програмування. Це пов'язано як з його чіткої логічною структурою, так і з тими можливостями, які дозволяють використовувати Турбо Паскаль для вирішення різноманітних завдань. Серед них обчислення та обробка даних, комп'ютерна графіка, робота зі звуком, системно програмування. Турбо Паскаль дозволяє застосовувати прийоми об'єктно-орієнтованого програмування, яке стало однією з провідних сучасних технологій програмування.

 



1. Пояснювальний текст


Я отримала завдання, в якому необхідно сформувати квадратну матрицю по вказаній формулі. Після чого з цієї матриці відповідно до заданого алгоритму необхідно отримати вектор Х. Після отримання компонентів вектора Х обчислити значення функції .

Для виконання цього завдання я обрала середу Паскаль тому, що мова Паскаль підходить для навчання програміста-початківця хорошому стилю програмування. Дозволяє на рівні з невеликими складностями програми створювати структурні програми складно об’ємних і складних обчислень. Щоб користувач при створені програм не допускав помилок або міг віднайти їх і виправити, у мові передбачено попередні вказівки типів даних, приймаючих участь в програмі. Я вважаю, що «Pascal ABC» найкращій вибір.

Для пояснення своєї програми я буду звертатися на певні блоки блок-схеми алгоритму та підпрограм-функцій та процедур.

У програмі виконується 3 підпрограми - процедури та 1 функція.

Функція має назву «z1f». Вона створена для формування масиву, який задається згідно отриманого завдання. Щоб сформувати масив відкривається цикл по стовбцям та строкам, після чого масив задається формулою, вказаною у завданні (блок 15). Блок-схема цієї функції знаходиться на сторінці 13.

Перша підпрограма - процедура має назву «Z1». Масиву A [i, j] присвоюється значення z1f (i, j) це показано в блоці 20 на сторінці 14.

Друга підпрограма - процедура має назву «Z2». Вона формує вектор Х. У підпрограмі відкривається цикл по стовбцям (блок 24), задається умова «scetchik <=2» (блок 28) якщо вона виконується то за вектор Х буде взято перший за порядком рядок в якому не більш ніж два додатних елемента (блоки 28-33). Якщо такий рядок знайдений, то тоді перериваємо цикл і знаходимо максимальний елемент цього рядку (блоки 33-37). Якщо такого рядку не знайдено тоді за вектор Х взяти останній стовпчик (блоки 38,39). Блок-схема знаходиться на сторінках 15-17.

Третя підпрограма називається «Z3». Відкривається звичайний цикл додавання всіх елементів вектора (блок 43), попередньо оброблених по функції зазначеної в завданні (блок 44), де _a - шукана Сума, Xi - лічильник для перебору елементів масиву. Значенню  присвоюється вирахуване значення _a. Ця підпрограма визначає функцію згідно з завданням. Блок-схема знаходиться на сторінкі 18.

Після виконання завдання програма зупиняється і результати розрахунків виводиться в вікно результату.

2. Лістинг програми


program moy_cursovoy;crt;r=100;: Array [1.. 100,1..100] of real; {Основна матриця}: Array [1..100] of real; {допоміжний масив}, max:real;: Integer;, gJ:integer;z1f (i, j:integer):real; {Функція для розрахунку значення елемента матриці для завдання 1}

z1f:=exp((j-1)*ln(2))*(abs (j-3) - 1.3)*ln((abs (j-5)+(abs (6.5-i))))/ln(3);;

{Завдання 1}Z1;i, j:integer;('Введіть розмір матриці: ');(matrixSize);j:=1 to matrixSize doi:=1 to matrixSize do[i, j]:=z1f (i, j);;

{Завдання 2}Z2;

OK:boolean; {Якщо виконується умова про 2

ix, i, j, scetchik:integer; додатних елемента}:=false;j:=1 to matrixSize do

scetchik:=0; {для кожної перевіряємого рядка обнуляємо кількість додатних елементів}

та рахуємо кількість додатних елементів}A [i, j] >0 then:=scetchik+1;;scetchik <= 2 then {якщо їх менше 2 - тоді}:=true; {кажемо що ми знайшли підходящий рядок}ix:=1 to matrixSize do[ix]:= A [ix, j]; {Копіюємо значення зі знайденого рядка

в вектор Х};;ok then {Якщо ми знайшли те що шукали, тобто перший рядок з менш ніж 2 додатними елементами, тоді перериваємо цикл перебору рядків};;j:=1 to r do:=X[ix];X[ix]>max then:=X[ix];

end;not ok then {якщо не Ок… тоді потрібного рядка не знайшли}

{Тоді копіюємо в вектор Х останній стовпчик}ix:=1 to matrixSize do[ix]:=A [matrixSize, ix];;;;Z3;_a:real;:integer;

{Відкривається звичайний цикл додавання всіх елементів вектора, попередньо оброблених по функції зазначеної в завданні, де_a - шукана Сума, Xi - лічильник для перебору елементів масиву}

_a:=0;xi:=1 to matrixSize do

_a:= _a + (sqr (X[xi]))*ln (sqrt(abs (X[xi])/gi));;:=_a; {Записуємо в змінну її розраховане значення};; {Чистимо екран};; {Зчитуємо перше завдання}gJ:=1 to matrixSize do {Виводимо матрицю}gI:=1 to matrixSize do(A[gI, gJ]:10:5,' ');;;;;;; {Зчитуємо друге завдання}gI:=1 to matrixSize do {Виводимо вектор}(X[gI]:10:5);;;

write ('max=', max:10:5);

writeln;;; {Зчитуємо третє завдання}(U:10:5); {Виводимо U};.

3. Результати виконання програми




Література


1. Т.А. Андреева Программирование на языке Pascal: - Москва,

Интернет-университет информационных технологий, Бином. Лаборатор, 2006 г. - 240 с.

.   А.М. Епанешников, В.А. Епанешников Программирование в среде Turbo Pascal 7.0: - Санкт-Петербург, Диалог-МИФИ, 2004 г. - 368 с.

3.       Г.Г. Рапаков, С.Ю. Ружецкая Turbo Pascal для студентов и школьников:, - Санкт-Петербург, БХВ-Петербург, 2007 г. - 352 с

Похожие работы на - Формування матриці в Паскалі

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!