|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Программы в среде Turbo PascalПрограммы в среде Turbo Pascal3 МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ СЕВЕРО-КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Филиал в г. КисловодскеКафедра ________________________________________________________________УТВЕРЖДАЮЗав. кафедрой_______________________подпись, инициалы, фамилия«___» ______________200 __г. КУРСОВАЯ РАБОТА По дисциплине______________________________________________________ __________________________________________________________________ На тему:___________________________________________________________ __________________________________________________________________ Автор работы:______________________________________________________ подпись, дата инициалы, фамилия _________________________________________________________________ Специальность _____________________________группа__________________ Руководитель работы________________________________________________ ученая степень, звания __________________________________________________________________ инициалы, фамилия работа защищена _____________________ оценка _______________________ дата ______________________________ подпись, инициалы, фамилия преподавателя Кисловодск _______г. МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ СЕВЕРО-КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Филиал в г. Кисловодск Кафедра ____________________________________________________________ УТВЕРЖДАЮ Зав. кафедрой _______________________ подпись, инициалы, фамилия «___» ______________20__г. ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ Студенту ______ курса ____________ группы __________________ факультета Фамилия __________________ Имя _____________ Отчество _____________ 1. Тема _____________________________________________________________ __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ 2. Задание __________________________________________________________________ __________________________________________________________________ 3. Дата выдачи задания _______________________________________________ Срок представления работы к защите «____» _____________________ 200___ г. Руководитель работы_______________________ подпись, инициалы, фамилия Задание принял к исполнению _______________ дата и подпись студента Содержание
Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам Вирта, язык нельзя считать только учебным, поскольку язык, непригодный для написания реальных программ, для обучения использоваться не должен). Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Один из первых языков, для которых была создана реализация «на самом себе» -- компилятор Паскаля был написан на самом Паскале. В начале 1970-х годов для переноса Паскаль-систем на различные аппаратные платформы была создана система Pascal-P, в которой был единый компилятор Паскаля в промежуточный язык (P-код) и для каждой платформы создавался быстрый интерпретатор P-кода. Заимствование этой системы привело к созданию системы UCSD-Pascal в Университете Сан-Диего (Калифорния, США), намного позже её идеи были заимствованы создателями языка Java (байт-код, компиляция в байт-код, интерпретатор байт-кода). Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком. Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Наиболее бросающийся в глаза недостаток синтаксиса -- некритически заимствованная из Алгола структура управляющих конструкций (операторов if и циклов), требующая, как правило, постоянного использования составных операторов «begin -- end». Полный разбор недостатков языка Паскаль был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» (интересно, что эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров. Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 70-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «алгоритмический язык». Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической среды и собственным принципам, согласно которым «неподходящий инструмент надо не исправлять, а заменять», не стал его развивать дальше, а разработал новые языки семейства: Модула-2 и Оберон. В противоположность этому промышленные традиции и достоинства языка побудили многие коммерческие и некоммерческие организации продолжать разрабатывать и развивать системы программирования именно на основе языка Паскаль, подвергая язык произвольному расширению, добавляя в него, часто совершенно механически, новые средства и синтаксические конструкции. Наиболее известной реализацией Паскаля является система Turbo Pascal (выросшая затем в Borland Pascal и далее в Delphi) фирмы Borland, в которой язык был значительно расширен, были устранены некоторые недостатки языка, добавлены новые возможности. Язык стал богаче, но в отсутствие отраслевой стандартизации, потерял переносимость и общность (до появления в 1998 году Kylix -- Delphi для Linux, продукты Borland работали только на платформе DOS/Windows, в настоящее время Kylix фактически заморожена). Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal, который не только вобрал в себя черты других Паскалей, но и обеспечил чрезвычайно широкую переносимость написанных на нем программ (более 20 различных платформ, под более чем 10 различными операционными системами). В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal. В 1986 году фирма Apple разработала объектное расширение языка Паскаль, получив в результате Object Pascal. В 1989 году аналогичные объектные средства были добавлены фирмой Borland в систему Turbo Pascal (языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны). Последующие версии Turbo Pascal, который стал затем называться Borland Pascal, дополняли объектное расширение новыми средствами, этот процесс продолжился и в ходе развития языка системы Delphi. Название языка менялось: от Pascal, через Object Pascal for Delphi, в литературе встречалось название Delphi Pascal, в последних версиях Delphi язык именуется так же, как и сама система (любопытный момент: в Delphi 7 пункт системного меню, запускающий справку по языку, как и в более ранних версиях, называется «Object Pascal Reference», а сам запускаемый им модуль помощи имеет заголовок «Delphi Language Manual», в тексте язык также везде называется «Delphi»). 1 февраля 2008 года Borland/CodeGear анонсировала поставку своей среды разработки приблизительно на миллион компьютеров в российских школах и ВУЗах. Кроме того, разрабатывается система программирования PascalABC.NET, ориентированная на обучение современному программированию. PascalABC -- реализация обычного паскаля, разработан для обучения программированию. PascalABC.net -- аналог PascalABC, с возможностью создавать exe файлы. При разработке программы использовались следующие конструкции языка приведены ниже: Условие: if условие then begin … end else begin - цикл, с постоянным вхождением в цикл: for переменная := 1 to n do оператор; … end; А так же конструкции вывода и чтения данных: - writeln(`информация'); // вывод данных - readln(переменная); // чтение данных - цикл с предусловием: while (условие) do begin . . . оператор; . . . end; - оператор выбора условию равенств значения переменной: case переменная of значение 1: оператор; значение 2: оператор; . . . значение n: оператор; При создание курсовой работы так же пользовалась функциями библиотеки crt: - перемещение курсора в точку (x,y) - gotoxy(координата x, координата y); - очистка экрана - clrscr; А так же стандартными функциями: - закрытие файла - close(«имя_файла»); - расчет по модулю - abs (`выражение'); - подключение файла - assign(файловая переменная, `путь_к_файлу'); - открытие файла для перезаписи - rewrite(файловая переменная). 2. Алгоритм задачи2.1 Блок-схема алгоритма подпрограммы Forma1Данная подпрограмма включает в себя подпрограмму Frame.2.2 Блок-схема алгоритма подпрограммы Menu2.3 Блок-схема алгоритма подпрограммы V_kor2.3 Блок-схема алгоритма подпрограммы Zad_1Данная подпрограмма включает в себя следующие подпрограммы: V_kor, Print, Screen, Menus описание которых приведено вышеРисунок 1 - Блок-схема алгоритма подпрограммы PrintВ подпрограмме выполняется сначала открытие файла для перезаписи, потом запись в нее результата и закрытие файла.Рисунок 2 - Блок-схема алгоритма подпрограммы ScreenВ подпрограмме выполняется сначала очистка экрана, а затем результат.Рисунок 3 - Блок-схема алгоритма подпрограммы menusВ подпрограмме выводится меню для выбора куда отправлять результаты - на экран или на принтер. Что бы сделать выбор необходимо ввести соответствующее значение.2.5 Блок-схема алгоритма подпрограммы Zad_2В этой подпрограмме выполняется сначала ввод элементов матрицы, затем расчет первой нормы и уже потом вывод новой матрицы на экран.2.6 Блок-схема алгоритма программы Prog_1Данная программа включает в себя следующие подпрограммы: Forma1, Menu, Zad_1, Zad_2 приведённые ниже. 3. ОписаниеСозданная программа - Prog_1 состоит из двух основных подпрограмм, входящих в тело программы: Forma1, Menu.Подпрограмма Formal выводит на экран монитора данные о курсовой работе:СЕВЕРОКАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТФИЛИАЛ В ГОРОДЕ КИСЛОВОДСКЕКУРСОВАЯ РАБОТАпо дисциплине информатика и программирование на тему создание прикладного программного обеспечения в среде программированияTurbo PascalРаботу выполнил: студент_____курса группы _______ ФИО____________________Работу проверил: __________________________При нажатии Enter управление передается подпрограмме Menu, которая выводит на экран монитора меню заданий, с предложением ввода номера одного из подпунктов для выполнения соответствующего задания. Интерфейс данной подпрограммы следующий:1. “ Рассчитать длину средней линии трапеции ”.2. “Пронумеровать матрицу по ее второй норме”.3. “Выход”.Введите номер задания для выполнения (1- 3).Далее в соответствии с выбранным номером пункта управление передается Программе Prog_1, на вход которой поступает номер пункта меню. Происходит анализ соответствия номера пункта меню в списке предлагаемых (1, 2, 3), в случае несоответствия выводится надпись, управление передается подпрограмме Menu, в цикле будут повторяться данные действия до правильного ввода цифры пункта меню. В случае правильного набора номера пункта программа Prog_1 передаст управление соответственно одной из подпрограмм: Zad_1, Zad_2, или будет произведен выход из программного продукта в случае выбора номера варианта 3. После выполнения выбранной подпрограммы управление вновь передается подпрограмме Menu, для возможности выполнения любого из пунктов меню.3.1 Рассчитать длину средней линии трапеции.Фомрмула Геромна позволяет вычислить площадь треугольника (S) по его сторонам a, b, c: аналогично вычисляются и остальные стороны. где р -- полупериметр треугольника: . Треугольник однозначно можно определить по следующим тройкам основных элементов: - a, b, c (равенство по трём сторонам); - a, b, г (равенство по двум сторонам и углу между ними); - a, в, г (равенство по стороне и двум прилежащим углам). В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия: - a < b + c; - b < c + a; - c < a + b. 3.2 Нормальная матрица Матрица -- математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) -- первый «i» обозначает номер строки, в которой находится элемент, а второй «j» -- номер столбца.Вектор -- упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый , удовлетворяющий условиям:- - -- произвольное число; - ; - Норма матрицы согласована с нормой вектора ,если для любых x и A Функционал является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора . 4. Результаты 4.1 Интерфейс подпрограммы Zad_1На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.На рисунке 2 изображен диалог выбора: выводить результат - на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.Рисунок 2 - Диалог печатиНа рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.Рисунок 3 - Вывод результата4.2 Интерфейс подпрограммы Zad_2На рисунке 4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.Рисунок 4 - Вывод результатов5. ПроверкаПроверим ход решения в электронных таблицах Ms Excel.Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii / 1.ЗаключениеРабота выполнена на языке Turbo Pascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные. При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования Turbo Pascal для написания этого программного продукта. При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика. Работа с данным языком помогла приобрести навыки программирования. Список использованной литературы 1. Вирт Никлаус Алгоритмы+структуры данных= программы. -- М.: «Мир», 1985. 2. Грогоно Питер Программирование на языке Паскаль. -- М.: «Мир», 1982. 3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. -- М.: «Финансы и статистика», 1982. 4. Культин Н.Б. Delphi 6. Программирование на Object Pascal. -- СПб.: «БХВ-Петербург», 2001. -- С. 528. -- ISBN 5-94157-112-7. 5. Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. -- М.: «Диалектика», 2005. -- С. 576. -- ISBN 5-8459-0935-X. 6. Перминов Олег Николаевич Язык программирования Паскаль : Справочник. -- М.: «Радио и связь», 1989. -- С. 128. -- ISBN 5-256-00311-9. ПриложениеProgram kursovay; uses crt; {Подключение библиотеки} var {Блок объявления переменных} second:integer; {Переменная для вывода меню} c1,c2,c3,c4,c5,c6:char; {Переменные для вывода рамки} x1,x2,y1,y2,yf:integer; {Координаты для вывода сообщений} Xa,Ya,Xb,Yb,Xc,Yc:integer; {Координаты для вывода сообщений} ax,ay,az,bx,by,bz,cx,cy,cz:real; {Переменные для расчета сторон треугольн.} Procedure Forma1; {Процедура Forma1} var x1,x2,y1,y2:integer; procedure Frame (x1,x2,y1,y2:integer); {Процедура Frame} var x,y:integer; c1,c2,c3,c4,c5,c6:char; begin {Операторы присвоения} c1:=chr(218); c2:=chr(196); c3:=chr(191); c4:=chr(179); c5:=chr(192); c6:=chr(217); gotoxy(x1,y1); {Установка экрана на позицию x1,y1} write(c1); for x:=x1+1 to x2-1 do write (c2); {Оператор цикла} write (c3); {Оператор вывода переменной с3} for y:=y1+1 to y2-1 do begin gotoxy (x1,y); {Прочерчивание горизонтальной линии} write (c4); {Оператор вывода переменной с4} gotoxy (x2,y); write (c4); end; gotoxy (x1,y2); write (c5); for x:=x1+1 to x2-1 do write (c2); write(c6); end; begin clrscr; {Очистка экрана} x1:=4; x2:=76; y1:=4; y2:=23; frame (x1,x2,y1,y2); gotoxy (12,7); write (`Название своего универа '); gotoxy (27,8); write ('ФИЛИАЛ ______________); gotoxy (33,10); write ('КУРСОВАЯ РАБОТА'); gotoxy (19,11); write ('по дисциплине информатика и программирование'); gotoxy (17,12); write ('на тему создание прикладного программного обеспечения'); gotoxy (22,13); write ('в среде программирования Turbo Pascal'); gotoxy (45,15); write ('Работу выполнила: студентка'); gotoxy (45,16); write (`_____ курса группы ______'); gotoxy (45,17); write (`ФИО); gotoxy (45,18); write ('Работу проверил: '); gotoxy (45,19); write ('преподаватель кафедры ПИ'); gotoxy (45,20); write (ФИО препода.'); readkey; end; {Процедура экранная форма меню} procedure Menu; begin TextBackGround(white); {тут можешь менять цвета} TextColor(black); Clrscr; x1:=4; x2:=76; y1:=4; y2:=21; c1:=chr(205); c2:=chr(201); c3:=chr(187); c4:=chr(186); c5:=chr(200); c6:=chr(188); yf:=10; gotoxy(23,yf); writeln('1. " Рассчитать длину средней линии трапеции "'); yf:=yf+1; gotoxy(23,yf); writeln('2. "Пронумеровать матрицу по её второй норме"'); yf:=yf+1; gotoxy(23,yf); writeln('3. "Выход"'); yf:=yf+1; gotoxy(23,yf); gotoxy(23,yf); writeln; yf:=yf+1; gotoxy(23,yf); writeln('Введите номер задания для выполнения (1-3)'); yf:=yf+19; gotoxy(23,yf); writeln; end; {*************1 zadanie********************} procedure zadanie1; label1; var x1,x2,x3,x4:integer; y1,y2,y3,y4:integer; q:array[1..4] of integer; k:array[1..4] of integer; l:array[1..4] of integer; z,a,i:integer; Dlin1,Dlin2,Dlin3:real; Begin 1:; ClrScr; Writeln(`Введите координаты точки A(x,y)'); Readln(x1,y1); Writeln(`Введите координаты точки b(x,y'); Readln)x2,y2); Writeln(`Введите координаты точки C(x,y)'); Readln(x3,y3); Writeln(`Введите координаты точки D(x,y)'); Readln(x4,y4); K[1]:=x2-x1; K[2]:=x3-x2; K[3]:=x4-x3; K[4]:=x1-x4; L[1]:=y2-y1; L[2]:=y3-y2; L[3]:=y4-y3; L[4]:=y1-y4; Z:=0; A:=0; For i:=1 to 4 do Begin If k[i]=0 then Z:=z+1; End; If z>2 then Begin Writeln(`неправильно заданы координаты'); Goto 1; End; For i:=1 to 4 do Begin If l[i]=0 then a:=a+1; end; if a>2 then begin writeln(`неправильно заданы координаты'); Goto 1; End; q[1]:=k[1]*l[3]; q[2]:=k3*l[1]; q[3]:=k[2]*l[4]; q[4]:=k[4]*l[2]; if q[1]=q[2] then begin if q[3]=q[4] then begin writeln(`неправильно введены координаты!'); readln; Goto 1; End Else Writeln(`координаты введены правильно!'); End Else Begin If q[3]=q[4] then Writeln(`неправильно введены координаты!'); Readln; Goto 1; End; End; Dlin1:=abs(sqrt(sqr(x2-x1)+sqr(y2-y1))); Dlin2:=abs)sqrt(sqr(x3-x4)+sqr(y3-y4))); Dlin3:=(dlin1+dlin2)/2; Writeln(`Длинна средней линии трапеции ABCD=',dlin3:10:2); end; {END OF ZADANIE1*******************************************} {2 zadanie***********************************************} {Процедура задания №2} procedure Zadanie2; const n=5; var i,k,x1,y1:integer; Max:array [1..n] of real; A:array [1..n,1..n] of real; B:array [1..n,1..n] of real; begin clrscr; x1:=4; y1:=4; writeln ('Vvod dannix' ); for i:=1 to n do begin for k:=1 to n do begin Gotoxy(x1,y1); readln(a[i,k]); x1:=x1+8; end; x1:=4; y1:=y1+1; end; Gotoxy(x1,y1); writeln ('Vivod dannix'); x1:=4; y1:=y1+2; for i:=1 to n do max[i]:=0; for k:=1 to n do for i:=1 to n do if abs(a[i,k])>max[k] then max[j]:=abs(a[i,k]); Gotoxy(x1,y1); writeln('Vvivod matrichi B[i,k]'); x1:=4; y1:=y1+1; for i:=1 to n do begin writeln; for k:=1 to n do begin b[i,k]:=a[i,k]/max[k]; write (B[i,k]:5:2); end; end; readkey; end; {END OF ZADAN2*******************************************} begin Forma1; clrscr; second:=0; while second <> 3 do begin Menu; readln(second); case second of 1: zadanie1; 2: zadanie2; 3: exit; end; end; end. |
РЕКЛАМА
|
|||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |