БАЗОВА ПРОГРАМА РЕАЛІЗАЦІЇ АЛГОРИТМУ

Nbsp; Зразок

Міністерство освіти і науки України

Державний університет телекомунікацій

 

 

КАФЕДРА

ОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИ

 

САМОСТІЙНА РОБОТА

ДРУГИЙ СИМЕСТР

З дисципліни «Інформатика», «ОТП».

 

Студент І курсу, групи ___

Спеціальність : ___

ПІБ

Залікова книжка № ______

 

 

Перевірив: ст.викладач Котомчак О.Ю.

 Оцінка:

 Дата:

 

Київ 2014

 

З М І С Т

 

1 Завдання…………………………………………………………..  
2 Пояснювальний материал……………………………………….  
3 Узагальнена блок-схема алгоритму ..............................………..  
4 Базова програма реалізації алгоритму………………………….  
5 Програма з використанням процедур………………………….  
6 Модуль глобальних описів………………………………………  
7 Сервісний модуль обслуговування матриці……………………  
8 Головна програма………………………………………………...  
9 Результати роботи програми……………………………………  
10 Література………………………………………………………...  

 

ЗАВДАННЯ НА КУРСОВУ РОБОТУ

 

Загальне завдання на курсову роботу

 

1.По функції f(i,j), що задана, необхідно сформувати квадратну матрицу A = {aij}, i,j = 1,2, …,…, m, де aij = f(i,j). (Для демонстрації m =5. )

2.Після чого із цієї матриці відповідно до заданого алгоритму необхідно отримати компоненти вектора X = {xi}, i = 1,2, … , n.

3. Після отримання компонентів вектора X обчисліти значення функції U.

Індивідуальнезавдання

(Вар № Х)

 

1.Функція f(i,j)= (/3,7 – j/ -2)2i-j (i +j – 7,3) Sin (1,5 +log2 (i/j)).

2. Компонентами вектора Х взяти елементи транспонованої матрици А, кожний з котрихне білш чим 2. Обмеження: ім’я транспонованої матрици повинно співпадати з вихідної, тобто бути А.

3. U= (xi + xn+1-i ).

 

 

 

 

 

                                                                                   

ПОЯСНЮВАЛЬНИЙ МАТЕРІАЛ

I. Відповідно до пункту №1завдання (формування матриці) на узагальненій блок-схемі алгоритму (довільна форма представлення блок-схеми-рис.1) передбачені блоки №2-№7.

Матриця вводиться по рядках, тому зовнішнім циклом визначений цикл №1 з параметром I= 1-m , а внутрішнім - цикл №2 з параметром J=1- n.

З огляду на ту обставину, що в мові Pascal відсутні убудовані функції: зведення в довільний ступінь і одержання логарифма при довільній підстави, вихідний вираз для формування елемента матриці (блок №5) для використання в програмі перетворено з урахуванням наступних властивостей:

1) (ABS(3.7-j)-2)*2i-j представлено як (ABS(3.7-j)-2)* exp((i-j)*ln(2)), що випливає з розгляду наступного положення. Тому як існує убудована функція exp(x) - експонента, то ми маємо право записати для будь якого числа А таке співвідношення Ab=ex. Далі, узявши логарифм по підставі e від правої і лівої частини цієї рівності, одержимо x = b*ln(A). Отже, Ab = exp( b*ln(A)).

2) Будь-яке число A можна представити як  чи , відкіля випливає, що . Прологарифмировав ліву і праву частини цього виразу по підставі e,одержимо loq(p) A*ln(p)= ln(A), відкіля loq(p)A = ln(A)/ ln(p).

II. Тому як в пункті №2 завдання введене обмеження на процес одержання транспонованої матриці, те алгоритм його реалізації (блоки№13 - №19) отриманий, виходячи з наступних міркувань, має вигляд:

Нехай є квадратна матриця А[4х4] такого виду:

 

 


A11 A12 A13 A14
A21 A22 A23 A24
A31 A32 A33 A34
A41 A42 A43 A44

 

Тоді на першому кроці (заміна першого стовпця на перший рядок) реалізується досить просто, а саме, шляхом реалізації оператора присвоювання наступного виду a[i,j]:=a[j,i}при виконанні внутрішнього циклу (№6) по всіх стовпцях (j змінювалося від 1 до 4) і одиничному значенні парамеира зовнішнього циклу (№5) по рядках (i=1). Черговий крок, як видно, повинний початися з заміни вже трьох стовпців на три рядки, починаючи з другого стовпця і другого рядка, (i=2, j=2). тобто з клітки A22. І нарешті буде виконаний третій (останній) крок (i=3, j=3 ), починаючи з клітки A33. Звідси випливає, що початкове значення параметра внутрішнього циклу (№6 по стовпцях) повинне збільшуватися на одиницю з кожним новим зовнішнім циклом. Це досягається використанням змінної L (блок №15), якої привласнюється початкове значення 1 (у блоці №13) з наступним збільшенням на 1 ( у блоці №18) після завершення внутрішнього циклу №6, а кількість виконань зовнішнього циклу повинне бути на одиницю менше числа рядків, що відбито в блоці №14.

III. Тому як при формуванні вектора Хкількість елементів матрици менших 2 заздалегідь невідомо, те в змінній K(блок №29) організується лічильник, що формує поточний індекс елемента вектора. При цьому враховане, що при завершенні формування вектора показання лічильника перевищують на одиницю реальну розмірність . Це враховано при виводі вектора на відображення (блок№33) і при обчисленні функції (блок№37).

 

 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

 

 

                                                                                                                                                                                                                                                                                                                                                                                          

 

 
Рис.1


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

                                    

БАЗОВА ПРОГРАМА РЕАЛІЗАЦІЇ АЛГОРИТМУ

 

Program Generalna; {Программа формирования квадратной матрицы по выражению для A[i,j], вектора Х по транспонированной матрице и вычисления функции U}

   uses Crt; {Используемый библиотечный модуль}

   Const Len=100;

  Type

mtr= array [1..Len,1..Len] of real; {Пользовательский тип mtr}

          mas= array [1..Len] of real; {Пользовательский тип mas}

          var i,j, m,n:integer; {Рабочие переменные : параметры цикла и размерности}

k:byte; {Счетчик –формирователь индексов при получении массива Х}

        L:byte; {Переменная для задания начального значения параметра цикла при     транспонировании матрицы}

       a:mtr; {Матрица А}

       x:mas; {Массив Х}

      c:real; {Рабочая переменная}

     u: real;{Имя вычисляемой функции}

BEGIN

            ClrScr;

writeln ('Введите размерность матрицы A: числа M и N' );

            write('m=');

            read (m);

            write('n=');

               read(n);

            writeln (' Введите элементы a[i,j] матрицы А ');

            for i:=1 to m do{Внешний цикл по строкам}

                       for j:=1 to n do{Вложенный цикл по столбцам}

          a[i,j]:=(ABS(3.7-j)-2) *exp (((i-j)*ln(2)))*(i+j-7.3)*SIN(1.5+(Ln(i/j)/ln(2)));

ClrScr;

            write (' Выведите элементы a[i,j] матрицы А ');

            writeln;

            writeln;

{Вывод матрицы А по строкам}

                     for i:=1 to m do{Внешний цикл по строкам}

                      begin

                        for j:=1 to n do{Вложенный цикл по столбцам}

                           write ('a[',i,',',j,']=', a[i,j]:10:7,' '); {Вывод элемента a[i,j]матрицы А}

                       writeln; {Оператор для перехода на очередную строку}

                      end;

{ Транспонирование матрицы}

           L:=1; { Начальное значение переменной для задания начального значения параметра цикла по столбцам при транспонировании матрицы}

 

        for i:=1 to m-1 do{Внешний цикл по строкам}

               begin

                 for j:=l to n do{Вложенный цикл по столбцам}

                      begin

                         c:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=c;

                      end;

                L:=L+1

               end;

   writeln ( '              Транспонированная матрица');

    writeln;

            for i:=1 to m do

                      begin

                        for j:=1 to n do

            write ('a[',i,',',j,']=', a[i,j]:10:7,' ');{ Вывод элемента транспонированной матрицы}                              

writeln; { Оператор для переключения строки}

                      end;

{ Формирование массива Х}

          K:=1; {Начальное значение формирователя индексов элементов массива Х }

                                   for i:=1 to m do

for j:=1 to n do

                                        if a[i,j]<2 then

       begin

                                             x[k]:=a[i,j]; { Формирование элемента x[k] массива Х}

         k:=k+1;

                                          end;

{ Вывод массива Х}

                           writeln('        Maссив X');

                            writeln;

                         for i:=1 to k-1 do

write ('x[',i,']=', x[i]:10:7,' '); { Вывод элемента массива Х}

{ Вычисление функции U}

             U:=1; {Начальное значени переменной для накапливания произведений при вычислении функции U}

                          for i:=1 to k-1 do

                          U:=U*(x[i]+x[k-i]); { Вычислеемое значение функции U на i-м шаге}

                          writeln;

                          writeln;

                          write (' Функция: u=',u:10:7); { Вывод значения функции U}

          Repeat Until KeyPressed

 END.

 


Дата добавления: 2018-05-09; просмотров: 213; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!