Составление программ для решения задач на языке программирования Turbo Pascal 2

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

КФ УГАТУ











Кафедра “промышленной автоматики”

























Курсовая работа

по дисциплинам «информатика», «программирование и основы алгоритмизации»



на тему «Составление программ для решения задач

на языке программирования Turbo Pascal»



























Кумертау 

2010





Изм.

Лист

№ докум.

Подпись

Дата

Лист

2

ВВЕДЕНИЕ



	С развитием информатики информация становиться стратегическим ресурсом общества, аналогичным по значимости с запасами сырья, энергии и т.д.

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

	Информатика является одной из самых быстроразвивающихся направлений развития человеческого общества.

	После изучения информатики студент должен знать и уметь использовать:

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

технические и программные средства информатики.

	После изучения информатики студент должен приобрести навыки алгоритмизации и программирования задач решаемых на ПК.

	При выполнении курсовой работы приобретаются навыки и умения разработки программ для решения задач на ЭВМ.

В курсовой работе изучаются все этапы алгоритмизации и программирования конкретной вычислительной задачи на языке программирования Турбо-Раскаль,



















1 УСЛОВИЕ ЗАДАЧИ



Исследовать квадратичную функцию заданного вида на заданном интервале, для этого:

Найти первую производную,

Найти вторую производную,

Найти критическую точку, если это возможно, по знаку второй производной определить тип экстремума в критической точке (максимум или минимум),

Найти максимальное значение функции и минимальное значение функции y на заданном интервале [a1; a2].

Табулировать заданную квадратичную функцию на заданном интервале [a1; a2] с шагом .

Примечание:



Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

Значения переменных a, b, c, n, m, k, a1 , a2 являются целыми числами, и должны вводиться с клавиатуры по запросу программы.



Результаты выводиться на экран в следующем виде:



Исходная функция у=…………

Исходный интервал     от …… до…….

Первая производная у’=…………..

Вторая производная y”=………….

Критическая точка х1=…………

Значения функции 

y(a1)=……. – (минимальное или максимальное значение y)

y(x1)=……. – (минимальное или максимальное значение y)

y(a2)=……. – (минимальное или максимальное значение y)

 Табулирование функции y с шагом h=…..

-------------------------------------------------------

!  N  !        x          !        y        !          y’         !

-------------------------------------------------------

! 1    !                    !                  !                      !

! 2    !                    !                  !                      !

….

Пусть задана функция  на интервале 



Постановка задачи 



Описание входной информации



Изм.

Лист

№ докум.

Подпись

Дата

Лист

4

Входной информацией называется информация, которая считается известной до начала решения задачи, её запрашивают у пользователя и вводят с клавиатуры оператором READLN или из файла на диске.

Приведем описание входной информации в таблице №1 так, в соответствии с текстом программы.



Таблица №1 - Описание входной информации



Название переменной

Тип переменной

Назначение

A

Integer (целый)

Коэффициенты функции 

B

Integer (целый)



C

Integer (целый)



a1

Integer (целый)

Начало заданного интервала

a2

Integer (целый)

Конец заданного интервала



Описание промежуточной информации



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

Приведем описание промежуточной информации в таблице №2 так, в соответствии с текстом программы.



Таблица №2 - Описание промежуточной информации



Название переменной

Тип переменной

Назначение

х1

real (вещественный)

Значение критической точки 

H

real (вещественный)

Шаг табуляции

I

Integer(целый)

Номер шага



Описание выходной информации



Выходной информацией называется информация, которую необходимо определить при решении задачи, её рассчитывают по формулам и выводят на экран или печать оператором WRITE(WRITELN) или в файл на диске.

Приведем описание выходной информации в таблице №3 так, в соответствии с текстом программы.





Таблица №3 - Описание выходной информации



Название переменной



Изм.

Лист

№ докум.

Подпись

Дата

Лист

5

Тип перемен-ной

Назначение

X

REAL(вещественный)

Значение аргумента функции 

Yt

REAL(вещественный)

Значение функции

Yp

REAL(вещественный)

Значение первой производной

F1

REAL(вещественный)

Значение функции на концах интервала и в критической точке

F2

REAL(вещественный)



F3

REAL(вещественный



Формализация задачи (или словесно-формульное описание)





Изм.

Лист

№ докум.

Подпись

Дата

Лист

6

Формализация задачи или словесно-формульное описание задачи - определяются расчетные формулы и условия, связывающие входные, промежуточные и выходные величины, этот раздел служит для определения последовательности и способов преобразования исходный величин в результатные. 

Исходная функция  (1)

Первая производная      (2)

Вторая производная 

Критическая точка, где .Если , то решить задачу невозможно.

Если , то находим : 

- экстремум функции : если y”(x1)>0 , то х1 – точка минимума, если y”(x1)<0 , то х1 – точка максимума,

- у(а1), у(х1) и  у(а2), среди которых определяет наибольшее и наименьшее значение функции.

На заданном интервале [a1; a2] рассчитаем шаг табулирования функции .

Для табулирования функции первой значение х=а1

Следующее значение х=x+h

Последнее значение x<=a2,

Значение y рассчитывается по формуле (1), y’  - по формуле (2)

Алгоритм задачи





Изм.

Лист

№ докум.

Подпись

Дата

Лист

7

Для решения данной задачи использовались внутренние процедуры и функции, поэтому в этом разделе представлены алгоритмы основной (главной программы) и алгоритмы каждой из подпрограмм – таблица № 4. 



Таблица №4 – Описание подпрограмм



Идентификатор подпрограммы

Тип подпрограммы

Возвращаемые величины

Назначение

Y

Функция

y

Вычисляет значение функции

dy

Функция

dy

Вычисляет первую производную

Min_max2

Процедура

-

Определяет минимум и максимум из двух величин F1 и F2

Min_max3

Процедура

-

Определяет минимум и максимум из трех величин F1, F2, F3



Алгоритм основной программы представлен на рис. 1.





Изм.

Лист

№ докум.

Подпись

Дата

Лист

8



Рисунок 1 – Логическая схема основной программы





Алгоритм функции y представлен на рис. 2







Изм.

Лист

№ докум.

Подпись

Дата

Лист

9

Рисунок 2 – Логическая схема подпрограммы – функции у

Алгоритм функции dy представлен на рис. 3.





Рисунок 3 – Логическая схема подпрограммы - функции dy



Алгоритм подпрограммы min_max_2 представлен на рис. 4.



Рисунок 4 – Логическая схема подпрограммы-процедуры min_max_2



Алгоритм подпрограммы min_max_3 представлен на рис. 5.









Изм.

Лист

№ докум.

Подпись

Дата

Лист

10

Рисунок 5 – Логическая схема подпрограммы-процедуры min_max3

5 ПОСТРОЕНИЕ ПРОЦЕССА РЕШЕНИЕ ЗАДАЧИ





Изм.

Лист

№ докум.

Подпись

Дата

Лист

11

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

program prog;

label 1;

var a,b,c,a1,a2:integer;

    min,max,f1,f2,f3:real;

    h,x,yt,yp,x1:real;

    i:integer;

function y(x:real):real;

begin

     y:=sqr(x)/a+x/b+c;

end;

function dy(x:real):real;

begin

     dy:=2*x/a+1/b;

end;

procedure min_max2;

begin

     if f1>f2 then

begin {max:=f1; min:=f2; }

writeln('наибольшее значение - у(а1)= ',f1:5:3);

writeln('наименьшее значение - у(a2)= ',f2:5:3);

end;

   if f1<f2 then

 begin {max:=f2; min:=f1;}

   writeln('наименьшее значение - у(a1)= ',f1:5:3);

   writeln('наибольшее значение - у(а2)= ',f2:5:3);

   end;

end;

procedure min_max3;

begin

     if (f1>f2)and(f1>f3) then

                            begin

        {max:=f1;}

    writeln('наибольшее значение - у(а1)= ',f1:5:3);

     if f2<f3 then {min:=f2} writeln('наименьшее значение - у(х1)= ',f2:5:3)

         else {min:=f3} writeln('наименьшее значение - у(a2)= ',f3:5:3);

            end

        else if (f2>f1)and (f2>f3) then

         begin

         {max:=f2;}

    writeln('наибольшее значение - у(x1)= ',f2:5:3);

      if f1<f3

        then {min:=f1}

	writeln('наименьшее значение - у(a1)= ',f1:5:3)

             else {min:=f3}

            writeln('наименьшее значение - у(a2)= ',f3:5:3);

                end

                  else

                   begin

                     {max:=f3;}

              writeln('наибольшее значение - у(a2)= ',f3:5:3);

             if f1<f3

                 then {min:=f1}

               writeln('наименьшее значение - у(a1)= ',f1:5:3)

                else {min:=f3}

                 writeln('наименьшее значение - у(a2)= ',f3:5:3);

                  end

end;

begin

     writeln('Исследование функции вида y=xx/a+x/b+c'  );

   1:write('введите целые цисла а=');readln(a);

     write('b=');readln(b);

     write('c=');readln(c);

     writeln('введите интервал :');

     write('a1='); readln(a1);

     write('a2='); readln(a2);

     if a*b<>0 then

               begin

                    x1:=-a/(2*b);

                    f1:=y(a1);

                    f2:=y(x1);

                    f3:=y(a2);

                    write('x=',x1:5:3,' - критическая точка , y(x1)= ',y(x1):7:3);

                    if a>0 then writeln (' - min')

                              else writeln (' - max');

                    min_max3;

               end

               else

               begin

                     writeln('a и b не могут быть нулевыми');goto 1;

               end;

     h:=abs(a1-a2)/10;

     x:=a1;

     i:=1;

     writeln ('табулирование функции вида у=хх/a+х/b+с');

     writeln ('-----------------------------------');

     writeln ('! N  !   x   !    y    !    y p   !');

     writeln ('-----------------------------------');

     repeat

           writeln('!',i:4,'!',x:7:2,'!',y(x):9:3,'!',dy(x):9:3,'!');

           i:=i+1;

           x:=x+h;

     until x>a2;

end.







     

                    

                    

               

     

     

     



Изм.

Лист

№ докум.

Подпись

Дата

Лист

12

     



6 КОНТРОЛЬНЫЙ ПРИМЕР



Исследование функции вида y=xx/a+x/b+c

введите целые цисла а=1

b=1

c=-1

введите интервал :

a1=0

a2=1

x=-0.500 - критическая точка , y(x1)=  -1.250 - min

наибольшее значение - у(a2)= 1.000

наименьшее значение - у(a1)= -1.000

табулирование функции вида у=хх/a+х/b+с

-----------------------------------

! N  !   x   !    y    !    y p   !

-----------------------------------

!   1!   0.00!   -1.000!    1.000!

!   2!   0.10!   -0.890!    1.200!

!   3!   0.20!   -0.760!    1.400!

!   4!   0.30!   -0.610!    1.600!

!   5!   0.40!   -0.440!    1.800!

!   6!   0.50!   -0.250!    2.000!

!   7!   0.60!   -0.040!    2.200!

!   8!   0.70!    0.190!    2.400!

!   9!   0.80!    0.440!    2.600!

!  10!   0.90!    0.710!    2.800!



Изм.

Лист

№ докум.

Подпись

Дата

Лист

13

 









Заключение



В курсовой работе представлено решение задачи исследования и табулирования квадратичной функции с произвольными коэффициентами. 



Изм.

Лист

№ докум.

Подпись

Дата

Лист

14

В курсовой работе представлено условие задачи, получена постановка задачи, определена формализация задачи и алгоритм решения задачи в виде логической блок- схемы программы. Составлена программа на языке программирования Паскаль, выполнен контрольный пример.

По результатам контрольного примера задача решена верно. Программа отлажена в среде программирования TURBO PASCAL 7.0

6 используемая литература



		Информатика. Учебник. 3-е изд./Под ред. Проф. Н.В. Макаровой, М.:,2000.

		

Изм.

Лист

№ докум.

Подпись

Дата

Лист

15

Информатика. Базовый курс., Симонович С.В. и др.СПб.: Питер. 2001.

		Новейшая энциклопедия персонального компьютера 2002, В.П. Леонтьев, М., “Олма-пресс”, 2002.

		Симонович С., Евсеев Г., Практическая информатика, учебное пособие, М.: АСТ-пресс,2000.

	Фаронов, Turbo Pascal 7.0., М.: Инфра-М,1998.

	Фигурнов В.Э.,IBM PC для пользователей, краткий курс, М.: Инфра-М, 1997.

	 Могилев А.В., Пак Н.И., Хеннер Е.К., Информатика, Учебное пособие для студ. пед. вузов, 2-е изд., М.:Изд. центр “Академия”, 2001 – 816с.

	, Грачева Л.Н., Лекции по информатике

	Грачёва Л.Н., методические указания к курсовой работе по информатике для заочников, 2010 г.