Вход

" Функции в языке.Создание меню".

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 368449
Дата создания 08 апреля 2013
Страниц 48
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 310руб.
КУПИТЬ

Содержание

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
1.Языки программирования высокого уровня
1.1.Основные понятия и определения
1.2.Особенности построения, достоинства и недостатки
1.3.Наиболее распространенные языки программирования
1.4.Обоснование выбора языка Паскаль
2.Функции в языке
2.1.Основные понятия и определения
2.2.Рекурсивные функции
2.3.Встроенные функции
2.4.Использование функций
3.Создание меню
3.1.Меню в текстовом режиме
3.2.Меню в графическом режиме
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1
ПРИЛОЖЕНИЕ 2

Введение

" Функции в языке.Создание меню".

Фрагмент работы для ознакомления

7
LIGHTGRAY
светло серый
8
DARKGRAY
тёмно серый
9
LIGHTBLUE
светло синий
10
LIGHTGREEN
светло зелёный
11
LIGHTCYAN
светло голубой
12
LIGHtrED
розовый
13
LIGHTMAGENTA
светло фиолетовый
14
YELLOW
жёлтый
15
WHITE
белый
В графическом модуле определены специальные процедуры для рисования графических примитивов (линия, окружность, прямоугольник, вывода текста, работы с изображениями и другие).
function GetPixel(X,Y: Integer): word;
функция возвращает цвет точки с координатами х,у
procedure line(x1, y1, x2, y2: integer);
процедура рисования линии. (x1,y1) – координаты точки начала, (x2, y2) - координаты точки конца линии. Цвет линии устанавливается с помощью следующей процедуры:
procedure SetColor(Color: word);
процедура задает цвет рисования графических объектов. Значение по умолчанию - белый.
procedure SetBkColor(ColorNum: word);
процедура задает цвет фона, значение по умолчанию - чёрный. Цвет фона - цвет экрана.
procedure Circle(X,Y: integer; Radius: word);
процедура рисует окружность. (x,y) – координату центра окружности, Radius – радиус окружности. Цвет окружности задаётся с помощью SetColor.
procedure Ellipse(X, Y: integer; StAngle, EndAngle: word; XRadius, YRadius: word);
процедура рисует эллипс. (x,y) – координаты центра, xradius, yradius -полуоси, stangle, endangle - углы. Угол считается против часовой стрелки (т.е. 00 - 3 часа, 9:00 - 12 часов). Цвет задаётся с помощью SetColor.
procedure Bar(x1, y1, x2, y2: integer);
процедура рисует окрашенный прямоугольник, (х1,у1) – координаты левого верхнего угла, (х2, у2) – координаты правого нижнего угла. Стиль кисти и цвет окраски задается процедурой:
procedure SetFillStyle(Pattern: word; Color: word);
процедура определяет стиль кисти (pattern) и цвет (color). Процедура Setcolor применяется к графическим примитивам. Процедура Setfillstyle применяется к закрашенным объектам. Существует несколько стилей, которые приведены в таблице 4[14]:
Таблица 4
Графические стили
Констнанта
Численное значение
Описание
EMPTY_FILL
Стиль окрашивает цветом фона
(несмотря на цвет, который пользователь указал в setfillstyle)
SoliD_FILL
1
Стиль равномерная окраска
liNE_FILL
2
Стиль окрашивает ---
LTSLASH_FILL
3
Стиль окрашивает ///
SLASH_FILL
4
Стиль окрашивает ///, толстые линии
BKSLASH_FILL
5
Стиль окрашивает \\\, толстые линии
LTBKSLASH_FILL
6
Стиль окрашивает \\\
HATCH_FILL
7
Стиль в "клеточку"
XHATCH_FILL
8
Стиль в клеточку под углом
INTERLEAVE_FILL
9
Стиль чередование
WIDE_DOT_FILL
10
Стиль широко расположенные точки
CLOSE_DOT_FILL
11
Стиль близко расположенные точки
USER_FILL
12
Определяется стиль пользователем
procedure FillEllipse(X, Y: integer; XRadius, YRadius: word)
процедура рисует закрашенный эллипс с центром (х,у) и полуосями xradius, yradius. Стиль и цвет определяются Setfillstyle
procedure ClearDevice;
процедура очищает экран (заполняет его цветом фона).
procedure OutTextXY(X,Y: integer; TextString: string);
процедура выводит строку textstring, начиная с точки (х,у). В графическом режиме для вывода нужно обязательно использовать эту процедуру. Стандартные процедуры вывода Write и Writeln не работают в графическом режиме.
procedure GetImage(x1, y1, x2, y2: integer; var BitMap);
процедура копирует картинку в память. Картинка определяется координатами (x1, y1) - левый верхний угол; (x2, y2) - правый нижний угол. BitMap - это область куда копируется картинка.
procedure PutImage(X, Y: integer; var BitMap; BitBlt: word);
процедура рисует изображение из BitMap на экран, начиная с координат (х,у). Параметр BitBlt - определяет способ вывода картинки. Ниже даны его возможные значения:
Таблица 5
Способы вывода картинки
Константа
Численное значение
Способ
NormalPut
Изображение копируется на экран (при этом сохраняется цвет каждого пикселя)
XORPut
1
Применённый к точке на экране и точке изображения результат получается как XOR
OrPut
2
Применённый к точке на экране и точке изображения результат получается как OR
AndPut
3
Применённый к точке на экране и точке изображения результат как AND
NotPut
4
Инвертируется цвет каждого пикселя - замена на противоположный
В качестве примера рассмотрим листинг программы с графическим меню (смотри приложение 2). Код программы включает активацию графического режима, проверку нажатия клавиши клавиатуры, идентификацию нажатой клавиши, обработку нажатия клавиши. В соответствии с нажатой клавишей вызывается процедура отрисовки соответствующей фигуры или графика или очистки экрана. Обработку нажатия клавиши Esc. При нажатии на клавишу Esc программа выходит из процедуры обработки меню и ждет нажатия любой клавиши для продолжения – выхода из графического режима и закрытия программы.
ЗАКЛЮЧЕНИЕ
Произведено знакомство с различными информационными источниками по языкам программирования. Тема функциональности (наличия встроенных функций) языка программирования очень емкая и объем информации очень велик. Большинство книг по программированию включают главу посвященную функциям, в которых определяется основной синтаксис объявления и вызова функции, описываются стандартные функции языка. Происходит знакомство читателя с некоторыми особенностями функций.
По изучению литературы по программированию дано определение языкам программирования высокого уровня, определена общая классификация, выделены особенности построения, достоинства и недостатки, определены наиболее распространенные языки программирования. В завершении первой главы обоснован выбор языка программирования высокого уровня Паскаль для создания меню.
Обзор литературы, по тематике курсовой работы, позволил сформировать следующее заключение по использованию функций. Значительное увеличение сложности решаемых задач, приводит к увеличению размеров и сложности программ. С увеличением объема программы становиться трудно, разрабатывать и производить отладку громоздкого кода. Увеличение жизненного цикла программ приводит к тому, что с течением времени из-за изменений условий использования программ возникает необходимость в модификации кода, для повышения эффективности. Использование подпрограмм (функций) является первым шагом к повышению степени абстракции программы и ведет к упрощению ее структуры. Разделение программы на подпрограммы позволяет также избежать избыточности кода, поскольку подпрограмму записывают один раз, а в дальнейшем многократно можно ее вызывать. Разбиение на подпрограммы уменьшает время перекомпиляции и облегчает процесс отладки, скрывая детали за интерфейсом модуля. Упрощение структуры программы и облегчение написания и отладки вот главная цель использования подпрограмм (функций). В практике программирования такой подход принято называть структурным программирование.
При выполнении курсовой работы удалось рассмотреть лишь небольшую часть основных функций языка программирования Паскаль, определить основные виды функций. Рассмотрена возможность создания собственной функции. Определена структура объявления и вызова функции.
В отдельном разделе уделено внимание очень интересному свойству функций как рекурсия. Рассмотрены два вида рекурсии прямая и косвенная. Определены достоинства и недостатки рекурсии. Безусловно, достоинством рекурсии является компактная запись, а недостатком опасность переполнения стека (программа завершается с ошибкой).
В третьем параграфе курсовой работы подробно описан механизм создания меню.
Был рассмотрен механизм создания в текстовом режиме и в графическом режиме. Текстовой режим более простой в организации, но не дает красивых эффектов, интересного оформления интерфейса меню.
При описании процесса создания меню упор делался на использование в коде функций языка.
В основе алгоритма создания меню лежит принцип постоянного контроля нажатия клавиш на клавиатуре и чтения нажатых клавиш. Для выполнения этих функций используются две функции: KeyPressed и ReadKey.
Функция KeyPressed определяет факт нажатия на любую клавишу и не приостанавливает дальнейшее исполнение программы. Возвращает значение типа Boolean – True, если клавиша нажата клавиша (и тогда в буфере клавиатуры есть хотя бы один символ), False – если клавиша не нажата (и, соответственно, буфер клавиатуры пуст).
Функция ReadKey читает расширенный код нажатой клавиши без эхо повтора и приостанавливает исполнение программы до нажатия на любую клавишу, кроме Shift, Ctrl, Alt, CapsLock, NumLock, ScrollLock.
При каждом нажатии происходит вывод меню на экран с новыми параметрами. Здесь задействованы функции вывода и продемонстрированы функции в текстовом и графическом режиме.
Детальное изучение этой темы позволило в конце создать приложения в которых отражены возможности функций языка Паскаль по созданию удобного текстового и графического меню листинг программ приведен в приложении 1 и в приложении 2 к курсовой работе.
Для того чтобы создать графическое меню был изучен библиотечный модуль Graph со всеми входящими в него функциями. Полученные знания по модулю Graph были применены при написании собственного меню, использован основной функционал модуля.
Текстовое меню в разработанной программе позволяет перемещаться и открывать все пункты меню. Графическое меню в разработанной программе позволяет перемещаться с помощью графического курсора по всем пунктам меню и вызывать при выборе определенного пункта меню соответствующую процедуру построения геометрической фигуры или графика.
В результате выполнения работы изучен большой объем информации, получены знания по функциям в языке программирования, что позволит в дальнейшем применять эти знания на практике. А также получен теоретические знания и практический опыт по создания меню в приложениях. Выполнение работы было полезным и интересным.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Андреева Т. А Программирование на языке Pascal. – М.: Бином. Лаборатория знаний, 2006. – 240 с.
2. Давыдов В.Г. Программирование и основы алгоритмизации: Учеб. Пособие. – М.: Высш. Шк., 2003. – 447 с.
3. Иванова Г.С. Технология программирования: Учебник для вузов. – М: МГТУ им. Н.Э. Баумана, 2007. - 320 с.
4. Климова Л. М. Pascal 7.0.Практическое программирование. Решение типовых задач. Изд. 4-е,доп. М: КУДИЦ-ОБРАЗ, 2003. - 528 с.
5. Культин Н. Turbo Pascal в задачах и примерах. - СПб.: БХВ-Петербург, 2006. - 256 с.
6. Малыхина М. П. Программирование на языке высокого уровня Turbo Pascal. - СПб.: БХВ-Петербург, 2006. - 544 с.
7. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: Диалектика, 2005. - 576 с.
8. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2000. - 496 с.
9. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2007. - 393 с.
10. Попов В.Б. Паскаль и Дельфи. Самоучитель. – СПб.: Питер, 2004. - 544 с.
11. Рапаков Г. Г. Программирование на языке Pascal. - СПб.: БХВ-Петербург, 2004. - 480 с.
12. Сухарев М. Turbo Pascal 7.0. Теория и практика программирования. – СПб.: Наука и техника, 2006. - 544 с.
13. Фаронов В.В. Delphi: Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2007. - 640 с.
14. Фаронов В.В. Turbo Pascal. - СПб.: БХВ-Петербург, 2004. - 1056 с.
15. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс. . – СПб.: Питер, 2001. - 240 с.
16. Домнин Ф. А. Язык программирования Паскаль(Turbo Pascal). Обучающие уроки – 2009. – 28 декабря [Электронный ресурс]. URL: http://www.life-prog.ru/view_zam.php?id=24 (дата обращения: 11.03.2012).
17. Библиотека учебных материалов. Расширенные коды клавиш. – 2010. – 10 ноября [Электронный ресурс]. URL: http://primat.at.ua/publ/6-1-0-481 (дата обращения: 11.03.2012).
18. Лекции по Turbo Pascal. – 2010. – 28 марта [Электронный ресурс]. URL: http://codingrus.ru/readarticle.php?article_id=2239
19. Васильев Н.А. Краткая справка по языку программирования Turbo Pascal. – 2004. [Электронный ресурс]. URL: http://forprogrammer.narod.ru/pascal/index.htm
20. Язык Паскаль. Процедуры и функции. – 2011. – 2 июля [Электронный ресурс]. URL:http://pas1.ru/functionprocedure
ПРИЛОЖЕНИЕ 1
Приложение с меню созданным в текстовом режиме
Uses CRT;{подключение модуля CRT }
Const MaxMenuItem = 4;{количество пунктов меню}
Var Ret : Byte;
Function MainMenu(R_Select:Byte):Byte;
Type TMenu = record
X,Y : Byte;
S : String[20];
End;
Var Menu : Array [0..MaxMenuItem] Of TMenu;
Run : Boolean; {выбран пункт меню}
Sel : Byte;
TC, TB : Byte; {цвет}
{ вывод на экран названия пункта меню }
Procedure DrawMenu;
Var I : Byte;
Begin
For I := 0 To MaxMenuItem Do {цикл по всем пунктам меню}
Begin
GotoXY(Menu[I].X, Menu[I].Y);{ Перемещает курсор в заданную позицию экрана }
Write(Menu[I].S);{вывод названия пункта меню}
End;
End;
{процедура визуализации выделения пункта меню}
Procedure Select (I:Byte);
Begin
TextBackground(TC); TextColor(TB);
GotoXY(Menu[I].X, Menu[I].Y); {перемещение курсора}
Write(Menu[I].S); {вывод названия пункта меню}
TextBackground(TB); TextColor(TC);
End;
{процедура визуализации снятия выделения пункта меню}
Procedure DeSelect (I:Byte);
Begin
TextBackground(TB); TextColor(TC);{изменение цвета выделения и шрифта текста}
GotoXY(Menu[I].X, Menu[I].Y);{перемещение курсора}
Write(Menu[I].S);{вывод названия пункта меню}
TextBackground(TB); TextColor(TC);
End;
Begin
{определение названия и координат пунктов меню}
Menu[0].S := 'item 0'; Menu[0].X := 20; Menu[0].Y := 5;
Menu[1].S := 'item 1'; Menu[1].X := 20; Menu[1].Y := 6;
Menu[2].S := 'item 2'; Menu[2].X := 20; Menu[2].Y := 7;
Menu[3].S := 'item 3'; Menu[3].X := 20; Menu[3].Y := 8;
Menu[4].S := ' exit '; Menu[4].X := 20; Menu[4].Y := 9;
ClrScr;{очистка экрана}
TC := TextAttr mod 16;
TB := TextAttr div 16;
DrawMenu;
Sel := R_Select;
Select(Sel);
Run := False;
While Not Run Do Begin
Case ReadKey Of
#13 : Run := True;{нажата Enter}
#27 : Begin{нажата Esc}
Run := True;
Sel := MaxMenuItem;
End;
#0 : Case ReadKey Of
#72 : Begin{нажата клавиша стрелка вверх}
DeSelect(Sel); {снимается выделение с пункта меню}
If Sel = 0{если первый пункт меню}
Then Sel := MaxMenuItem {присваиваем порядковый номер последнего}
Else Sel := Sel - 1; {если не первый порядковый номер уменьшаем на 1}
Select(Sel);{выделяем пункт меню}
End;
#80 : Begin{нажата клавиша стрелка вниз}
DeSelect(Sel);{снимается выделение с пункта меню}
If Sel = MaxMenuItem{проверка последний пункт меню или нет}
Then Sel := 0 {если последний присваиваем порядковый номер первого}
Else Sel := Sel + 1; {если не последний увеличиваем на 1}
Select(Sel);{выделяем пункт меню}
End;
End;
End;
End;
MainMenu := Sel;
TextBackground(TB);
TextColor(TC);
ClrScr;{очистка экрана}
End;
Begin
ClrScr; {очистка экрана}
TextBackground(Blue);
TextColor(LightGreen);
Ret := 0;
Repeat
Ret := MainMenu(Ret);
Case Ret Of
0: Begin
WriteLn('Выбран пункт: ', Ret);
WriteLn('... нажми клавишу ...');
ReadLn;
End;
1: Begin
WriteLn(' Выбран пункт: ', Ret);
WriteLn('... нажми клавишу ...');
ReadLn;
End;
2: Begin
WriteLn(' Выбран пункт: ', Ret);
WriteLn('... нажми клавишу ...');
ReadLn;
End;
3: Begin
WriteLn(' Выбран пункт: ', Ret);
WriteLn('... нажми клавишу ...');
ReadLn;
End;
Else Begin
WriteLn('Выход из программы');
WriteLn('... нажми клавишу ...');
ReadLn;
End;
End; {case Ret}
Until Ret = MaxMenuItem;
TextBackground(Black);
TextColor(LightGray);
ClrScr;
End.
ПРИЛОЖЕНИЕ 2
Приложение с меню созданным в графическом режиме
uses crt, graph;
type Point=record{для центра курсора}
x,y,x1,y1:integer;
end;
procedure Clear;
{очистка экрана, за исключением вертикальной полосы, где меню}
begin
Setcolor(0);
rectangle(95,1,640,480);
setfillstyle(1,0);
Bar(95,1,640,480);
end;
procedure Krug;
{рисование окружности}
begin
Setcolor(5);
Circle(200,200,100);
end;
procedure Kvadrat;{рисование квадрата}
begin
Setcolor(9);
rectangle(105,15,620,460);
end;
procedure MyBar;{рисование параллепипеда}

Список литературы

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1.Андреева Т. А Программирование на языке Pascal. – М.: Бином. Лаборатория знаний, 2006. – 240 с.
2.Давыдов В.Г. Программирование и основы алгоритмизации: Учеб. Пособие. – М.: Высш. Шк., 2003. – 447 с.
3.Иванова Г.С. Технология программирования: Учебник для вузов. – М: МГТУ им. Н.Э. Баумана, 2007. - 320 с.
4.Климова Л. М. Pascal 7.0.Практическое программирование. Решение типовых задач. Изд. 4-е,доп. М: КУДИЦ-ОБРАЗ, 2003. - 528 с.
5.Культин Н. Turbo Pascal в задачах и примерах. - СПб.: БХВ-Петербург, 2006. - 256 с.
6.Малыхина М. П. Программирование на языке высокого уровня Turbo Pascal. - СПб.: БХВ-Петербург, 2006. - 544 с.
7.Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: Диалектика, 2005. - 576 с.
8.Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2000. - 496 с.
9.Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2007. - 393 с.
10.Попов В.Б. Паскаль и Дельфи. Самоучитель. – СПб.: Питер, 2004. - 544 с.
11.Рапаков Г. Г. Программирование на языке Pascal. - СПб.: БХВ-Петербург, 2004. - 480 с.
12.Сухарев М. Turbo Pascal 7.0. Теория и практика программирования. – СПб.: Наука и техника, 2006. - 544 с.
13.Фаронов В.В. Delphi: Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2007. - 640 с.
14.Фаронов В.В. Turbo Pascal. - СПб.: БХВ-Петербург, 2004. - 1056 с.
15.Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс. . – СПб.: Питер, 2001. - 240 с.
16.Домнин Ф. А. Язык программирования Паскаль(Turbo Pascal). Обучающие уроки – 2009. – 28 декабря [Электронный ресурс]. URL: http://www.life-prog.ru/view_zam.php?id=24 (дата обращения: 11.03.2012).
17.Библиотека учебных материалов. Расширенные коды клавиш. – 2010. – 10 ноября [Электронный ресурс]. URL: http://primat.at.ua/publ/6-1-0-481 (дата обращения: 11.03.2012).
18. Лекции по Turbo Pascal. – 2010. – 28 марта [Электронный ресурс]. URL: http://codingrus.ru/readarticle.php?article_id=2239
19.Васильев Н.А. Краткая справка по языку программирования Turbo Pascal. – 2004. [Электронный ресурс]. URL: http://forprogrammer.narod.ru/pascal/index.htm
20.Язык Паскаль. Процедуры и функции. – 2011. – 2 июля [Электронный ресурс]. URL:http://pas1.ru/functionprocedure
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00482
© Рефератбанк, 2002 - 2024