Формування матриці в Паскалі
Загальна характеристика програмного продукту Турбо Паскаль 7.0, його структура та функції. Методика та головні етапи формування квадратної матриці по заданій формулі. Розробка та лістинг отриманої програми. Аналіз результатів виконання програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | украинский |
Дата добавления | 04.11.2013 |
Размер файла | 145,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Вступ
програма матриця квадратний паскаль
Турбо Паскаль з'явився на ринку програмних продуктів в 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;
uses crt;
const r=100;
var
A: Array [1.. 100,1..100] of real; {Основна матриця}
X: Array [1..100] of real; {допоміжний масив}
U, max:real;
matrixSize: Integer;
gI, gJ:integer;
function z1f (i, j:integer):real; {Функція для розрахунку значення
begin елемента матриці для завдання 1}
z1f:=exp((j-1)*ln(2))*(abs (j-3) - 1.3)*ln((abs (j-5)+(abs (6.5-i))))/ln(3);
end;
{Завдання 1}
procedure Z1;
var i, j:integer;
begin
write ('Введіть розмір матриці: ');
readln(matrixSize);
for j:=1 to matrixSize do
for i:=1 to matrixSize do
A [i, j]:=z1f (i, j);
end;
{Завдання 2}
procedure Z2;
var OK:boolean; {Якщо виконується умова про 2
ix, i, j, scetchik:integer; додатних елемента}
begin
ok:=false;
for j:=1 to matrixSize do
begin
scetchik:=0; {для кожної перевіряємого рядка обнуляємо кількість додатних елементів}
for i:=1 to matrixSize do {перебираємо всі елементи рядка
та рахуємо кількість додатних елементів}
begin
if A [i, j] >0 then
scetchik:=scetchik+1;
end;
if scetchik <= 2 then {якщо їх менше 2 - тоді}
begin
OK:=true; {кажемо що ми знайшли підходящий рядок}
for ix:=1 to matrixSize do
begin
X[ix]:= A [ix, j]; {Копіюємо значення зі знайденого рядка
в вектор Х}
end;
end;
if ok then {Якщо ми знайшли те що шукали, тобто перший рядок з менш ніж 2 додатними елементами, тоді перериваємо цикл перебору рядків}
break;
end;
for j:=1 to r do
begin
max:=X[ix];
if X[ix]>max then
max:=X[ix];
end;
if not ok then {якщо не Ок… тоді потрібного рядка не знайшли}
begin
{Тоді копіюємо в вектор Х останній стовпчик}
for ix:=1 to matrixSize do
begin
X[ix]:=A [matrixSize, ix];
end;
end;
end;
procedure Z3;
var _a:real;
xi:integer;
begin
{Відкривається звичайний цикл додавання всіх елементів вектора, попередньо оброблених по функції зазначеної в завданні, де_a - шукана Сума, Xi - лічильник для перебору елементів масиву}
_a:=0;
for xi:=1 to matrixSize do
begin
_a:= _a + (sqr (X[xi]))*ln (sqrt(abs (X[xi])/gi));
end;
U:=_a; {Записуємо в змінну її розраховане значення}
end;
begin
clrscr; {Чистимо екран}
writeln;
Z1; {Зчитуємо перше завдання}
for gJ:=1 to matrixSize do {Виводимо матрицю}
begin
for gI:=1 to matrixSize do
write (A[gI, gJ]:10:5,' ');
Writeln;
end;
writeln;
writeln;
writeln;
Z2; {Зчитуємо друге завдання}
for gI:=1 to matrixSize do {Виводимо вектор}
Write (X[gI]:10:5);
writeln;
writeln;
write ('max=', max:10:5);
writeln;
writeln;
Z3; {Зчитуємо третє завдання}
writeln (U:10:5); {Виводимо U}
readln;
end.
3. Результати виконання програми
Література
1. Т.А. Андреева Программирование на языке Pascal: - Москва,
Интернет-университет информационных технологий, Бином. Лаборатор, 2006 г. - 240 с.
2. А.М. Епанешников, В.А. Епанешников Программирование в среде Turbo Pascal 7.0: - Санкт-Петербург, Диалог-МИФИ, 2004 г. - 368 с.
3. Г.Г. Рапаков, С.Ю. Ружецкая Turbo Pascal для студентов и школьников:, - Санкт-Петербург, БХВ-Петербург, 2007 г. - 352 с
Размещено на Allbest.ru
Подобные документы
Отримання компонентів вектора із квадратної матриці відповідно до заданого алгоритму. Обчислення значення функції. Базова програма реалізації алгоритму. Модуль глобальних описів. Сервісний модуль обслуговування матриці. Результати роботи програми.
курсовая работа [19,5 K], добавлен 30.01.2013Програмування масиву і сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві. Лістинг програми та блок-схема алгоритму і результат виконання.
курсовая работа [453,1 K], добавлен 06.06.2012Вивчення структури програми на Паскалі. Значення функції для будь-якого введеного значення аргументу. Введення-виведення за допомогою операторів Readln і Writeln, визначення їх відмінності від операторів Read і Write. Лістинг і результати роботи програми.
лабораторная работа [217,4 K], добавлен 04.11.2014Формування квадратної транспонованої матриці, отримання з неї компонентів вектора та обчислення значення функції в мові Pascal. Базова програма реалізації алгоритму. Сервісний модуль обслуговування матриці. Головна програма та результати її роботи.
курсовая работа [40,2 K], добавлен 10.03.2011Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.
курсовая работа [1,8 M], добавлен 24.02.2014Стандарти OpenMP i MPI як основні засоби програмування для багатопроцесорних систем. Розробка програми паралельного розрахунку інтеграла для функції з певним кроком дискретизації, паралельної програми множення квадратної матриці на квадратну матрицю.
курсовая работа [2,5 M], добавлен 11.12.2013Сутність та структура квадратної матриці, її основні елементи та зміст. Методика проектування спеціальної комп'ютерної програми, що знаходить суму елементів даної матриці стовпця та рядка, на які вказують індекси елемента, і замінює сумою сам елемент.
контрольная работа [227,5 K], добавлен 09.11.2009Основи криптосистем та їх використання. Шифрування методом гамування, його зміст, прийоми та етапи реалізації. Вимоги до програмного продукту, його структура та принципи роботи, схеми алгоритму, вимоги до функціональних можливостей. Лістинг програми.
курсовая работа [245,5 K], добавлен 25.08.2014Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.
курсовая работа [343,9 K], добавлен 24.08.2012Методика та головні етапи розробки бази даних, що включає в себе інформацію про клієнтів, про товари, послуги, про обліку замовлень та облік витрат. Формування та лістинг програми, що обслуговує дану базу даних. Прайс-лист на послуги, що надаються.
курсовая работа [3,7 M], добавлен 02.01.2014