Файл: Классификация языков программирования высокого уровня, машинный язык.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 15.06.2023

Просмотров: 257

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

f,f1,f2:boolean; {логические переменные, необходимые для контроля правильности ввода данных пользователем}

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

В разработанной программе были использованы следующие подпрограммы.

Procedure MenuToScr;{ вывод меню на экран }

begin

ClrScr; { очистка экрана}

WRITELN;

writeln(' ГЛАВНОЕ МЕНЮ');

WRITELN;

WRITELN;

for i:=1 to N do {перебираем все пункты меню в цикле}

begin

GoToXY(x,y+i-1); {перевод курсора в нужную позицию}

write(menu[i]); {вывод пункта меню, содержащегося в массиве констант}

end;

TextAttr:=SEL; {изменение атрибутов текста - выделенный}

GoToXY(x,y+punkt-1);

write(menu[punkt]);{ выделим строку меню }

TextAttr:=NORM; {изменение атрибутов текста - невыделенный}

end;

Следующая описываемая нами процедура отвечает за ввод данных пользователем.

procedure punkt1; {процедура ввода данных – соответствует первому пункту меню}

begin

CLRSCR;

f:=false;f1:=false;f2:=false; {признак того, что данные еще не введены}

textcolor(13); {изменяем цвет текста}

writeln;

WRITELN(' ВВЕДИТЕ ИСХОДНЫЕ ДАННЫЕ ');

writeln;

textcolor(14);

writeln;

repeat {заголовок цикла ввода значений }

if f=false {если первый параметр еще не введен}

then begin Write(' Введите расстояние до финиша -> ');

{$I-} {директива, которая выключает автоматическую генерацию объектного кода – необходимо для избежания ошибки ввода значения}

ReadLn(ss);

{$I+}{директива, которая включает автоматическую генерацию объектного кода }

if (ioresult<>0) { если возникла ошибка – в данном случае, введено некорректное значение}

or (ss<1) then {если введенное значение меньше допустимого}

begin

textcolor(4);

writeln('Ошибка! Расстояние задано неверно!');

textcolor(14);

continue; {возвращение в начало цикла}

end

else f:=true; {признак того, что значение введено корректно}

end;

{Аналочичным образом реализован ввод двух остальных параметров}

if f1=false then

begin write(' Введите желаемое время финиша (секунды) -> ');

{$I-}

ReadLn(tf);

{$I+}

if (ioresult<>0) or (tf<=0) then begin

textcolor(4);

writeln('Ошибка! Время финиша введено неверно!');

textcolor(14);

continue; end

else f1:=true;

end;

if f2=false then begin

write(' Введите интервал вывода сообщений на экран (секунды) -> ');

{$I-}ReadLn(tin);

{$I+}

if (ioresult<>0) or (tin<=0) or (tin>=tf) then begin

textcolor(4);

writeln('Ошибка! Интервал вывода сообщений введен неверно!');

textcolor(14);

continue;

end

else f2:=true;

end;

until (f=true) and (f1=true) and (f2=true); { условие выхода из цикла – все три параметра введены верно}

Writeln('Press any key ...');

ch:=readkey; { ожидание нажатия любой клавиши}


ch:=#0;

end; {завершение процедуры}

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

Procedure punkt2; { процедура, соответствующая пункту 2 меню}

var vnp,tvr,h,min,s,ds,t:word; {описываем локальные переменные, применяемые в данной процедуре}

vr:integer;

rs,vs,vsz,vszs,sp,v,vsr,vrk:real;

begin

ClrScr;

if (tf=0) then begin {проверка – введены ли исходные данные}

textcolor(13); writeln; writeln;

writeln('Сначала необходимо ввести исходные данные!');

readkey; textcolor(14);

exit; {завершение работы процедуры}

end;

GetTime(h,min,s,ds);{Вызов текущего времени}

vnp:=s+(min*60)+(h*3600); {время старта в секундах}

sound(3000); delay(2000); nosound; {звуковой сигнал}

TextColor(12); {Установка цвета "времени"}

GoToXY(40,1);

Write('Время старта ->:');

Write(h,' час ',min,' мин ',s,' сек'); {выводим на экран время старта}

textcolor(13);

writeln(' ':15,'Условные обозначения');

textcolor(14);

writeln('Время с момента старта ->TPR');

writeln ('Пройденный к данному моменту времени путь->PRS');

writeln ('Средняя скорость на отрезке ->VS');

writeln ('Средняя скорость к данному моменту времени ->VSZ');

writeln('Время, оставшееся до момента финиша ->TOST');

writeln('Рекомендуемая скорость в начале пути->',ss/tf:4:4);

writeln;

textcolor(13);

writeln(' ':15,'Поехали!');

textcolor(14); t:=0;

randomize; {инициализация генератора случайных чисел}

i:=0; vs:=0; j:=0; {обнуляем переменные}

vr:=round(ss/tf); {рекомендуемая средняя скорость}

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. {конец программы}

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


Заключение

Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её.

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

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

Вторая глава посвящена анализу особенностей применения языков программирования.

Рассмотренные теоретические сведения были применены для реализации практической части курсовой работы.

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

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

Список использованной литературы

  1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 2013.
  2. Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. М.: “Наука”, 2013.
  3. Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 2015.
  4. Дагене В.А., Григас Г. К., Аугутис К.Ф. 100 задач по программированию. — М.: Просвещение, 2014.
  5. Епашников A.M., Епашников В.А. Программирование в среде Турбо Паскаль 7.0. — М.: МИФИ, 2014.
  6. В.Ю. Демьяненко. “Программные средства создания и ведения баз данных”. – М.: Финансы и статистика, 2014.
  7. В.А. Мясников, С.А. Майоров, Г.И. Новиков. ЭВМ для всех. - М.: Знание, 2015.
  8. А.Г. Гейн. “Основы информатики и вычислительной техники”. - М.: Просвещение, 2011.
  9. В.Ф. Ляхович. “Основы информатики”.- Ростов-на-Дону: Феникс,2016.
  10. Вычислительная техника и программирование”/Под ред. А.В. Петрова-М.: Высш. Шк.,2011.
  11. Информационные технологии управления”: Инфоматика-М.Ф. Меняев: Омега-л, 2013.
  12. Компьютерные системы и сети”/Под ред. В.П. Косарёва и Л.В. Ерёмина-М.: Финансы и статистика,2013.
  13. Экономическая информатика”: Под ред. В.П. Косарёва и Л.В. Ерёмина-М.: Финансы статистика, 2011.
  14. Информатика”: Под ред. Н.В. Макаровой: Фис., 2014.
  15. “Информатика”, базовый курс , 2-е издание./ Под ред. С.В. Симоновича-СПб. Питер, 2014.
  16. Леонтьев: “ Новейшая энциклопедия программного компьютера”: Пресс,2013.
  17. Савинков В.М.”Толковый словарь по информатике”- 2-е издание,-М.: Финансы и статистика, 2015.
  18. “Вычислительные машины, системы и сети”/ Под ред. А.П. Пятибратова.-М.: Финансы и статистика, 2015.
  19. Якубайтис Э.А. Информационные сети и системы”. Справочная книга. - М.: Финансы и статистика, 2016.
  20. “Экономическая информатика и вычислительная техника”: Г.А. Титоренко, Н.Г. Черняк и др.; Под ред. В.П.Косарёва, А.Ю.Королёва.- 2-е издание, перераб. и доп.-М.: Финансы и статистика, 2015.
  21. Якубайтис Э.А.” Информатика Электроника – Сети”. - М.: Финансы и статистика, 2014.
  22. “Персональный компьютер для всех”/ Под ред.А.Я. Савельева. - М.: Высшая школа, 2011.
  23. “Информатика”. Энциклопедический словарь для начинающих. - М.: Пресс, 2014.
  24. Острейковский В.А. Информатика”. - М.: Высшая школа,2012.
  25. Малютин Э.А., Малютина Л.В. Языки программирования, 2012.
  26. Ваулин А.С. Языки программирования.— кн.5, 2013.