Файл: Классификация языков программирования высокого уровня (Теоретические аспекты использования процедур и функций в языке Паскаль.).pdf
Добавлен: 28.03.2023
Просмотров: 387
Скачиваний: 2
repeat {начало прогона}
GetTime(h,min,s,ds);
tvr:=s+(min*60)+(h*3600);
if (vs=0) then for i:=1 to 10 do
begin
{пусть на заданном интервале скорость меняется случайным образом в пределах +- 1-ца от рекомендуемой 10 раз}
v:=(random(2*100)+100*(vr-1))/100;
vs:=vs+v;
end;
if (tvr>vnp) and ((tvr-vnp) mod tin =0) and ((tvr-vnp)>t) and ((tf-t)>tin) then begin
t:=tvr-vnp;{разница между временем старта и текущим временем}
write('TPR ->',t,' ¦ ');
vsz:=vsz+vs; {средняя скорость, рекомендуемая к данному моменту времени}
j:=j+10; {общее число замеров скорости}
vszs:=vsz/j;
vs:=vs/10; { средняя скорость на отрезке}
rs:=rs+vs*tin; {пройденный к данному моменту времени путь}
write ('PRS->',rs:3:3,' ¦ ');
write ('VS ->',vs:3:3,' ¦ ');
vs:=0;
write ('VSZ->',vszs:3:3,' ¦ ');
writeln('TOST->',tf-t,' ¦ ');
vrk:=(ss-rs)/(tf-t);
writeln('Рекомендуемая скорость->',vrk:4:4);
writeln;
end;
until (tvr-vnp)>=tf; {конец цикла – время истекло}
vs:=vs/10;
rs:=rs+vs*(tf-t);
t:=tvr-vnp;
write('TPR ->',t,' ¦ ');
if (tf-t)<tin then vs:=vrk*10;
vsz:=vsz+vs;
j:=j+10; {общее число замеров скорости}
vszs:=vsz/j;
write ('PRS->',rs:3:3,' ¦ ');
write ('VS ->',vs/10:3:3,' ¦ ');
write ('VSZ->',vszs:3:3,' ¦ '); writeln('TOST->',tf-t,' ¦ ');
sound(2000); delay(7000); nosound; textcolor(13); {звуковой сигнал – время истекло}
if rs>=ss {если время прогона меньше заданного}
then writeln(' ':15,'Успели!') else writeln(' ':15,'Не успели!');
GetTime(h,min,s,ds);
TextColor(12); {Установка цвета "времени"}
GoToXY(40,25);
Write('Время финиша ->:');
Write(h,' час ',min,' мин ',s,' сек');
textcolor(14);
readkey
end; {конец процедуры}
Далее рассмотрим процедуру, при помощи которой осуществляется вывод на экран текстового файла справки.
procedure punkt3; {процедура, соответствующая 3-му пункту меню}
var txt:char; {объявляем локальные переменные процедуры}
help:text; {переменная – текстовый файл}
begin
clrscr;
assign(help,'hlp.txt'); {ассоциируем файловую переменную с именем файла}
writeln;
textcolor(13);
writeln;
textcolor(14);
{$I-}
Reset(help); {открываем файл для чтения}
{$I+}
if IOresult<>0 then {если ошибка возникла – файл не найден}
begin
textcolor(4);
writeln('Ошибка! Файл помощи отствует'); readkey;
textcolor(14);
exit; {завершение работы процедуры}
end else {если файл найден}
While not EOF(help) do {пока не будет достигнут конец файла}
begin
{считываем из файла символ и выводим его на экран}
Read(help,txt); Write(txt);
end;
writeln;
writeln;
Writeln('Press any key ...');
writeln;
readkey;
end; {конец процедуры}
Далее следует основная программа, в которой процедуры и функции могут вызываться сколь угодно раз.
begin
ch:=#0; {переменная, в которой будет храниться код нажатой клавиши}
menu[1]:='1. Ввод начальных данных ';
menu[2]:='2. Работа программы ';
menu[3]:='3. Справка ';
menu[4]:='4. Exit ';
punkt:=1; {изначально выбран 1-й пункт меню}
x:=5; {координаты курсора}
y:=5;
TextAttr:=NORM;
MenuToScr; {вызов процедуры вывода меню на экран}
repeat {начала цикла, в котором на экран выводятся пункты меню}
ch:=ReadKey; {считываем код нажатой клавиши}
if ch=char(0) then begin ch:=ReadKey;
case ch of {в зависимости от того, какую клавишу нажал пользователь}
chr(80):{ стрелка вниз }
if punkt<N then begin
GoToXY(x,y+punkt-1); write(menu[punkt]);
punkt:=punkt+1; {номер выбранного пункта возрастает на единицу}
TextAttr:=SEl;
GoToXY(x,y+punkt-1);
write(menu[punkt]); TextAttr:=NORM;
end;
chr(72):{ стрелка вверх }
if punkt>1 then begin
GoToXY(x,y+punkt-1); write(menu[punkt]);
punkt:=punkt-1;
TextAttr:=SEl;
GoToXY(x,y+punkt-1);
write(menu[punkt]);
TextAttr:=NORM;
end;
end;
end
else
if ch=chr(13) then begin { нажата клавиша <Enter> }
case punkt of {вызываем соответствующую процедуру, в зависимости от номера выбранного пункта}
1:punkt1;
2:punkt2;
3:punkt3;
4:ch:=chr(27);{ выход – нажата клавиша Esc}
end;
MenuToScr; {вызов процедуры вывода меню на экран}
end;
until ch=chr(27);{ условие выхода из цикла, 27 - код <Esc> }
end. {конец программы}
Таким образом, результатом выполнения практической части курсовой работы стала разработка полнофункциональной программы, на примере создания которой были наглядно продемонстрированы преимущества использования пользовательских меню при разработке интерфейса пользователя, а также возможности использования подпрограмм в языке высокого уровня Паскаль.
Глава 4: Основные понятия языков программирования высокого уровня.
Язык высокого уровня - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Языки высокого уровня, как и любые другие языки, имеют строго определенную грамматику. Функции программиста состоят в использовании этих грамматических понятий для представления решения задачи в виде программ.
Алгоритмический язык образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит — это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. Синтаксис языка устанавливает, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций; семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия. Алфавит и синтаксис языков программирования определяется исходя из стремления приблизить их к языку человека, но вместе с тем обеспечить возможность перевода записи алгоритма с языка программирования на машинный язык. В отличие от языка человека языкам программирования свойственна строгость синтаксических и семантических правил.
Из алфавита (символов) составляются лексемы— последовательность допустимых символов языка программирования, имеющая смысл для транслятора. Транслятор рассматривает программу как последовательность лексем. Лексемы - это минимальные единицы языка, имеющие самостоятельный смысл. Из них строятся основные понятия языков высокого уровня. К ним обычно относятся следующие.
Имена (идентификаторы) — употребляются для обозначения объектов программы (переменных, массивов, функций и др.).
Операции.Типы операций:
· арифметические операции + , - , * , / и др. ;
· логические операции и, или, не;
· операции отношения < , > , <=, >= , = , <> ;
операция сцепки (иначе, "присоединения", "конкатенации") символьных значений друг с другом с образованием одной длинной строки; изображается знаком "+".
Данные простого типа это - символы, числа и т.п. элементы, дальнейшее дробление которых не имеет смысла. Из элементарных данных формируются структуры (сложные типы) данных.
Данные — величины, обрабатываемые программой. Имеется три основных вида данных: константы, переменные и массивы.
Константы— это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.
Примеры констант:
· числовые 7.5, 12;
· логические да (истина), нет (ложь);
· символьные "А", "+";
· литерные "abcde", "информатика", " (пустая строка).
Литерной константой является цепочка, состоящая из любых символов языка (букв, пробелов, запятых и т.п.) в кавычках.
Переменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Переменные бывают целые, вещественные, логические, символьные и литерные. Каждая переменная должна принадлежать определенному типу данных. Каждый тип данных однозначно определяет внутреннее представление данных: сколько места в памяти они занимают, как именно закодированы и какие действия можно с ними заполнять.
Массивы — очередности однотипных составляющих , количество коих фиксировано и коим присвоено одно имя. Состояние вещества в массиве несомненно ориентируется его индексами (одним, в случае одномерного массива, или же несколькими, в случае если массив многомерный). Временами массивы именуют таблицами.
Выражения — предназначаются для выполнения важных вычислений, состоят из констант, переменных, указателей функций, соединенных символами операций.
Различают выражения арифметические, закономерные и строковые.
Арифметические выражения работают для определения 1-го числового смысла . Закономерные выражения обрисовывают кое-какие обстоятельства , которые имеют все шансы удовлетворяться или же не удовлетворяться. Этим образом, логическое выражение имеет возможность брать на себя лишь только 2 смысла — "аксиома " или же "неправда " (да или же нет). Смысла строковых (литерных) выражений — слова . В их имеют все шансы заходить литерные константы, литерные переменные и литерные функции, разбитые символом операции сцепки.
Операторы (команды). Оператор — это более солидное и содержательное понятие языка: любой оператор дает собой завершенную фразу языка и определяет кое-какой абсолютно завершенный период обработки данных. В состав опеpатоpов входят: главные слова; данные; выражения и т.д.
Операторы разделяются на исполняемые и неисполняемые. Неисполняемые операторы предусмотрены для описания данных и структуры программки , а исполняемые — для выполнения всевозможных поступков (например, оператор присваивания, операторы ввода и вывода, относительный оператор, операторы цикла, оператор процедуры, составные и др.)
|
Заключение.
Язык программирования высокого уровня Паскаль обладает большими возможностями для решения достаточно широкого круга задач.
Вместе с тем, интуитивно понятный синтаксис, четкая структуризация, доброжелательный интерфейс среды разработки делает его одним из наиболее популярных языков программирования высокого уровня.
В первой главе курсовой работы мною была произведена классификация языков программирования высокого уровня, рассмотрены сферы их применения, вкратце изложены их основные особенности, достоинства и недостатки.
Одним из важнейших факторов при выполнении поставленной задачи является верный выбор языка программирования. Для реализации поставленной задачи можно использовать различные языки высокого уровня, наиболее распространенными из которых являются С++ и Паскаль.
Язык Паскаль является статически типизированным, компилируемым, поддерживает низкоуровневую работу с памятью. Именно поэтому его можно рекомендовать в качестве языка программирования для изучения работы подпрограмм, процедур и функций. Простота реализации графического интерфейса позволяет наглядно продемонстрировать процесс создания пользовательского меню.
Проанализировав все выше изложенное, мною был сделан аргументированный выбор языка программирования высокого уровня Паскаль для дальнейшего изучения предмета исследования.
Во второй главе курсовой работы мною были рассмотрены основные принципы использования подпрограмм – процедур и функций в алгоритмическом языке Паскаль. Также затронута смежная тема использование модулей для лучшей организации блочного использования процедур и функций. Приведены примеры программной реализации описанных структур.
Рассмотренные нами теоретические сведения были применены для реализации практической части курсовой работы.
Результатом выполнения практической части курсовой работы стала разработка полнофункциональной программы, на примере создания которой были наглядно продемонстрированы преимущества использования пользовательских меню при разработке интерфейса пользователя, а также возможности использования подпрограмм в языке высокого уровня Паскаль.
Таким образом, в ходе написания третьей главы курсовой работы были на практике исследованы теоретические аспекты, рассмотренные во второй главе. Был описан интерфейс пользователя разработанной программы, а также ее программная реализация. Особое внимание было уделено процессу реализации пользовательского меню