Реферат по предмету "Информатика, программирование"


Приклад обчислення функції на Паскалі

Міністерствотранспорту та зв’язку України
Міністерствоосвіти і науки України
Державнийуніверситет інформаційно-комунікаційних технологійКАФЕДРАОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИКУРСОВАРОБОТА
Здисципліни «Інформатика».
Київ2010

ЗМІСТ
Завдання
Пояснювальний матеріал
Узагальнена блок-схема алгоритму
Базова програма реалізації алгоритму
Програма з використанням процедур
Модуль глобальних описів
Сервісний модуль обслуговування матриці
Головна програма
Результати роботи програми
Література

ЗАВДАННЯ НАКУРСОВУ РОБОТУ
Загальнезавдання на курсову роботу
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] такого виду:
транспонована матриця функція pascal

/>
Тоді на першомукроці (заміна першого стовпця на перший рядок) реалізується досить просто, асаме, шляхом реалізації оператора присвоювання наступного виду 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).

/>


БАЗОВА ПРОГРАМАРЕАЛІЗАЦІЇ АЛГОРИТМУ
Program Generalna;{Программа формирования квадратной матрицы по выражению для A[i,j], вектора Хпо транспонированной матрице и вычисления функции U}
 usesCrt; {Используемый библиотечный модуль}
 ConstLen=100;
 Type
 mtr=array [1..Len,1..Len] of real; {Пользовательский тип mtr}
 mas=array [1..Len] of real; {Пользовательский тип mas}
 vari,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] матрицы А ');
  fori:=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;{ Начальное значение переменной для задания начального значения параметра циклапо столбцам при транспонировании матрицы}
 fori:=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;
  fori:=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
 forj:=1 to n do
  if a[i,j]
 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}
 RepeatUntil KeyPressed
 END.

ПРОГРАМАЗ ВИКОРИСТАННЯМ ПРОЦЕДУР
ProgramProverka_Proz;
 usesCrt;
 ConstLen=100;
 Type
 mtr=array [1..Len,1..Len] of real; {Tip massiv-matriza}
 mas=array [1..Len] of real; {Tip massiv-vector}
 vari,j,k,m,n,l:integer;
 a:mtr;{ Imja peremennoi — matriza}
 x:mas;{ Imja peremennoi — vektor}
 u:real;{Imja peremennoi -funzija}
 c:real;{ Rabochaja peremennaja}
 ProcedureViv_M;
 Begin
  writeln;
  writeln;
 for i:=1 to m do {vnechnii zikl po strokam}
 begin
 for j:=1 to n do {vnutrenii zikl po stolbzam}
 write('a[',i,',',j,']=', a[i,j]:10:7,' '); {vivod elementa matrizi a[i,j] }
  writeln;{operaator dlja perehoda na ocherednuju stroku}
 end;
 writeln;
 End;
 BEGIN
  ClrScr;
 {vvod elementov matrizi po strokam}
  writeln('vvedite razmernost matrizi A: chisla M i N');
  write('m=');
  read(m);
  write('n=');
  read(n);
 {zapolnenie matrizi A -vvod elementov a[i,j]'}
  fori:=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;
  {vivodmatrizi A po strokam}
 writeln ( ' ishodnaja Matriza');
  Viv_M;{operator proceduru }
 { transponirovannaie Matrizi A }
 L:=1; { nachalnoe znachenie parametra zikla po stolbzam pri transponirovaniiMatrizi A }
 fori:=1 to m-1 do
 begin
  forj:=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( '  transponirovannaja Matriza');
 {vivod transponirovannoi matrizi A po strokam }
 Viv_M;{operator proceduru }
  {formirovaniemassiva X iz transponirovannoi matrizi A }
 k:=1;{nachalnoe znachenie formirovatelja indexov massiva X}
 for i:=1 to m do
 for j:=1 to n do
 if a[i,j]
   begin
  x[k]:=a[i,j];{formirovanie elementa x[k] massiva X }
  k:=k+1;
  end;
 {vivod massiva X}
 writeln(' Massiv X');
  writeln;
 for i:=1 to k-1 do
  write('x[',i,']=', x[i]:10:7,' ');{vivod elementa massiva X}
  {vichislenie funkzii U}
 U:=1; {nachalnoe znachenie funkzii U}
 for i:=1 to k-1 do
 U:=U*(x[i]+x[k-i]);
 writeln;
 writeln;
 write ('Funkzija: u=',u:10:7);
 RepeatUntil KeyPressed
 END.
МОДУЛЬГЛОБАЛЬНИХ ОПИСІВ
UnitGlob; {Имя модуля}
 Interface
 Const
 Len=100;
 Type
 T_Matr=array[1..Len,1..Len] of real; {Тип массива-матрицы}
 T_Vect=array[1..Len] of real; {Тип массива-вектора}
End.

СЕРВІСНИЙМОДУЛЬ ОБСЛУГОВУВАННЯ МАТРИЦІ
UnitKR_Srv2;{ Имя сервисного модуля} Interface Uses Glob; { Имя модуля сглобальными описаниями} Procedure Ztvor_M(M,N:byte;Var ma:T_Matr); { Описаниепроцедуры создания матрицы} Procedure Print_M(Ma:T_Matr;M,N:byte); { Описаниепроцедуры печати}
 Implementation
 UsesCRT;
 ProcedureZtvor_M(M,N:byte;Var ma:T_Matr); { Процедура создания матрицы}
 Var
 i,j:byte; { Рабочие переменные}
 Begin
 writeln (' Введите размерность матрицы A: числа M и N'); write('m=');
 read (m);
 write('n=');
 read(n);
 ClrScr;
 For i:=1 to m do
 For j:=1 to n do
 ma[i,j]:=(ABS(3.7-j)-2)*exp (((i-j)*ln(2)))*(i+j-7.3)*SIN(1.5+(Ln(i/j)/ln(2)));
 End;
  ProcedurePrint_M(Ma:T_Matr;M,N:byte); { Процедура отображения матрицы}
 var j,i:byte;  Begin  write (' Выведите элементы матрицы a[i,j]');  writeln;  writeln; For i:=1 to m do
 begin
 For j:=1 to n do
  write ('a[',i,’,’,j,']=',Ma[i,j]:10:7); { Отображение элементов матрицы}
  writeln;
 end;
 End;
 END.
ГОЛОВНАПРОГРАМА
ProgramMatr_KR2; uses Crt,Glob,KR_SRV2; { Список используемых модулей } vari,j,k,m,n,l:integer; { Рабочие переменные } a:T_Matr; {Имя элементов матрицы А}x:T_Vect; {Имя элементов массива Х }
u:real;{Имя вычисляемой функции }
c:real;{ Вспомогательная переменная для транспонирования матрицы }
 begin
  ClrScr;
 writeln('Исходная матрица');
 Ztvor_M(M,N,A);
 Print_M(A,M,N);{ Оператор процедуры отображения матрицы }
 {Транспонирование матрицы }
 L:=1;{Начальное значение переменной для формирования начального значения параметравложенного цикла (работа по столбцам) при транспонировании матрицы А }
 for i:=1 to m-1 do
 begin
  forj:=l to n do
  c:=a[i,j];a[i,j]:=a[j,i]; a[j,i]:=c; { Получение элементов транспонированной матрицы }
 L:=L+1
 end;
 writeln( ' Транспонированная матрица');
 writeln;
 Print_M(A,M,N);{ Оператор процедуры отображения матрицы }
  {Формированиемассива X из транспонированной матрицы }
 k:=1;{Начальное значение формирователя индексов элементов массива X}
 for i:=1 to m do
 for j:=1 to n do
 if a[i,j]
  begin
 x[k]:=a[i,j];{Формирование элемента x[k]массива X }
  k:=k+1;
  end;
 {Вывод массива X}
 writeln(' Массив X');
  writeln;
 for i:=1 to k-1 do
  write('x[',i,']=', x[i]:10:7,' '); {Вывод элемента массива X}
  { Вычисление функции U}
 U:=1; {Начальное значение функции U}
 for i:=1 to k-1 do
 U:=U*(x[i]+x[k-i]); {Значение функции U}
 writeln;
 writeln;
 write ('u=',u:10:7); {Отображение результирующего значения функции U}
 RepeatUntil KeyPressed
 END.РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИпри m=n=3 і при однаковом форматі виведення для всіхчотирьох видів даних a[i,j]:10:7;
Вихідна матриця
a[1,1]=-3.7007064a[1,2]=0.3092295 a[1,3]=-0.0910127
a[2,1]=-3.6028023a[2,2]=0.9875200 a[2,3]= 1.1849153
a[3,1]=-0.5229830a[3,2]= 1.2015703 a[3,3]= 1.6857605Транспонована матриця
a[1,1]=-3.7007064a[1,2]=-3.6028023 a[1,3]= -0.5229830
a[2,1]= 0.3092295a[2,2]= 0.9875200 a[2,3]= 1.2015703
a[3,1]=-0.0910127a[3,2]= 1.1849153 a[3,3]= 1.6857605
Масив Х
 x[1]=-3.700706 x[2]=-3.6028023x[3]=-0.5229830 x[4]=0.3092295
 x[5]=0.9875200x[6]=1.2015703 x[7]=-0.0910127 x[8]=1.1849153
 x[9]=1.6857665
Значення функції:U=40.3382026
Результати ручнихрозрахунків співпадають з програмними, що свідчить про правильність роботипрограми.

ВИКОРИСТАНАЛІТЕРАТУРА
1.  А. И. Марченко, Л. М. Марченко.Программирование в среде TURBO Pascal 7.0. Киев “ВЕК+””, Москва “ДЕСС”, 1999.
2.  Ю.С. Бородич, А.Н. Вальвачев, Ф.И.Кузьмич. Паскаль для персональных компьютеров. Минск,”Вышэйшая школа”, БФ ГИТМП“НИКА”, 1991
3.  Д.Б. Поляков, И.Ю. Круглов.Программирование в среде Турбо Паскаль, Москва, МАИ, А\О “РОСВУЗНАУКА”, 1992.
4.  Ф.Б. Бартків, Я.Т. Гринчишин,А.М. Ломакович, Ю.С. Рамский. TURBO PASCAL: Алгоритми и програми. Київ, «Вищашкола», 1992.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат "Серебряный век" в русском искусстве
Реферат Система законодательства и правовая система
Реферат Значение бухгалтерской и финансовой отчётности в управлении организацией
Реферат Система ГУЛАГа как элемент власти
Реферат Chemical Warfare Essay Research Paper Chemical warfare
Реферат Animal Farm Essay Research Paper George Orwell
Реферат Формирование политического сознания личности. Типы политического сознания
Реферат Русские изобретатели. Иван Иванович Ползунов
Реферат Макроэкономические пропорции
Реферат Экзаменационные вопросы по курсу "Международное финансирование" (укр)
Реферат Антипова Марина Михайловна Русский язык 5 класс Подготовка к сочинению по картине И. И. Левитана «Золотая осень». Тип урок
Реферат Перестройка, причины ее неудачи
Реферат Контроль оподаткування доходів громадян
Реферат Понятие дебиторской и кредиторской задолженности
Реферат Лапароскопічні методи хірургічного лікування захворювань товстої кишки