Главная » Просмотр файлов » Книжка Хабы

Книжка Хабы (970988), страница 4

Файл №970988 Книжка Хабы (Практикум по программированию на BORLAND PASCAL-7.0(всякая теория)) 4 страницаКнижка Хабы (970988) страница 42013-10-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Var X,Y,I: byte;

Begin

NormVideo;

ClrScr;

for I:=1 to 40 do

begin

X:= Succ(Random(80));

Y:= Succ(Random(25));

Window (X, Y, X+Random(20), Y+Random(8));

TextBackGround(Random(8));

ClrScr;

Write(‘Вывод в окно’, ^G,I:); { ^G - подает звуковой сигнал}

Delay(300);

end

End.

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

Для сохранения координат окон можно воспользоваться следующей структурой:

Type WinRecord – record

XUpLeft;

YUpLeft;

XLowRight;

YLowRight: byte;

end;

const MaxWin = 10;

Var WinMas: array[1..MaxWin] of WinRecord;

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

Окна часто используются в программах для скроллинга (прокрутки) текстовой информации. Этот процесс проще всего реализовать с помощью процедур InsLine и DelLine.

Пример 3.2.

Program DemoInsLine;

Uses Crt;

Var I: byte;

Begin

Window (20,6,60,15);

ClrScr;

for I:=1 to 10 write (‘Вывод в окно’);

for I:=1 to 5 do

begin

GotoXY(1,1);

InsLine;

write(‘Вставка строки’);

Delay(500);

end

End.

2. Демонстрационные примеры

Пример 3.3. Разработать вертикальное меню из четырех пунктов:

New, open, save, exit. Окно меню синего цвета, названия пунктов должны быть выведены желтым цветом. Выделение пункта выполнить фиолетовым цветом фона. Реализовать выход по выбору пункта «exit ».

При разработке алгоритма программы выделим 2 подпрограммы:

  • подпрограмму рисования пункта меню как окна с текстом внутри;

  • подпрограмму рисования меню с выделенным пунктом.

В процессе работы основная программа вводит коды клавиш и организует работу меню. После завершения работы такая программа должна восстановить стандартное окно 25х80 и стандартные цвета символа и фона MS DOS.

Program ex;

Uses crt;

Var npos,i: integer;

ch1,ch2: char;

Type

win = record {описываем тип окон пунктов меню}

x1,y1,x2,y2: word; {координаты окна}

text: string [8]; {название пункта меню}

end;

{описываем массив окон пунктов меню}

const menu: array [1..4] of win =

((x1:5; y1:4; x2:15; y2:4; text: ‘new’),

(x1:5; y1:5; x2:15; y2:5; text: ‘open’),

(x1:5; y1:6; x2:15; y2:6; text: ‘save’),

(x1:5; y1:7; x2:15; y2:7; text: ‘new’));

{процедура рисования пункта меню}

Procedure DrawWin (w: win; attr: byte);

Begin

With w do

Begin

TextAttr:= attr; {устанавливаем атрибут окна пункта}

Windows (x1,y1,x2,y2); {устанавливаем окно пункта}

Clrscr; {высвечиваем окно пункта}

GotoXY(2,1); {устанавливаем курсор}

Write(text); {выводим название пункта меню}

End;

End;

{процедура рисования меню с выделением пунктов npos}

procedure DrawMenu ( npos: integer);

begin

clrscr;

for i:=1 to 4 do

if i = npos then DrawWin (menu[i],94) {выводим выделенный пункт}

else DrawWin (menu [i],30); {выводим невыделенный пункт}

end;

{основная программа}

begin

npos:= 1; {выделенный пункт меню}

DrawMenu (npos); {выводим меню}

Repeat

Ch1:= ReadKey; if ch1=#0 then ch1:=ReadKey;

Case ch1 of

#0: case ch2 of

#72: begin {стрелка вверх}

if npos > 1 then {если не верхний пункт}

begin

DrawWin(menu[npos], 30); {убираем выделение текущего пункта меню}

Npos:=Npos - 1; {переходим к предыдущему пункту}

DrawWin(menu[Npos],90); {выделяем новый пункт}

End;

End;

#80: begin

if Npos <4 then {если не нижний пункт}

begin

DrawWin(menu[npos],30); {убираем выделение текущего пункта}

Npos:=npos+1; {переходим к следующему пункту}

DrawWin (menu[npos],94); {выделяем новый пункт}

End;

End;

End; {case интерпретации расширенного кода}

#13: begin

Window(1,1,80,25);

TextAttr:=7;

ClrScr; {очищаем экран}

Case npos of

1: begin

Write (‘выполнен пункт ’, menu[npos].text);

Readln;

End;

2: begin

Write (‘выполнен пункт ’, menu[npos].text);

Readln;

End;

3: begin

Write (‘выполнен пункт ’, menu[npos].text);

Readln;

End;

End; {case}

DrawMenu (npos); {выводим меню}

End;

End; {case}

Until (ch1=#27) or (ch1=#13) and (npos=4));{код 27 соответствует клавише Esc}

Window(1,1,80,25); {код 13 соответствует клавише Enter}

TextAttr:=7;

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

End.

3.Задачи, для самостоятельного решения

Задача 1. Разработать программу исследования элементарных функций (y=sin x, y=cos x, e = tg x, e = ln x, e = eх), задаваемых пользователем. Обеспечить для каждой функции вывод таблицы значений на заданном интервале с заданным шагом, поиск корней и определение максимума и минимума. Взаимодействие пользователя и программы организуйте с использованием меню.

Задача 2. Разработать программу тестирования студентов обучающихся по теме «системы исчисления ». Тестируемому предлагаться 6 вопросов по данной теме, включая обычные вопросы с выбором ответа из нескольких и задачи на выполнение арифметических операций, когда необходимо ввести результат указанной операции. Вопросы должны случайным образом выбираться из списка, хранящегося в файле, и не повторяться. Для ответа на каждый вопрос дается две попытки. Предусмотреть, чтобы тестирующийся мог по желанию отказаться отвечать на данный вопрос и получить правильный вопрос. Оценку проводить по соотношению правильных и неправильных ответов.

Задача 3. Разработать вертикальное меню из четырех пунктов: new, open, save, exit. Окно меню синего цвета, названия пунктов должны быть выведены желтым цветом. Выделение пункта выполнить фиолетовым цветом фона. Реализовать выход по выбору пункта «exit ».

Задача 4. Разработать вертикальное меню из четырех пунктов: new, open, save, exit. Окно меню желтого цвета, названия пунктов должны быть выведены красным цветом. Выделение пункта выполнить фиолетовым цветом фона. Реализовать выход по выбору пункта «exit ».

Задача 5. Разработать программу, анализирующую файл, в котором размещены данные о пассажирах. Запись о пассажирах содержит следующие поля: Фамилия, количество вещей (мест), общий вес багажа. Программа позволяет сортировать пассажиров с максимальным весом багажа и максимальным количеством вещей. Создать меню со следующими пунктами: F1 =ввод данных, F2 – просмотр данных, F3 - выход.

Задача 6. Разработать вертикальное меню из 4-х пунктов: создать, открыть, сохранить, выход. Окна меню синего цвета, названия пунктов должны быть выделены желтым цветом фона. Реализовать выход по выбору пункта «Выход » или по нажатию клавиши «Esc ».

При разработке алгоритмов программы выделить 2 подпрограммы:

  1. рисования пункта меню как окна с текстом внутри,

  2. рисования меню с выделенным пунктом.

В процессе работы основная программа вводит коды клавиш и организует работу с меню. После завершения работы такая программа должна восстановить стандартное окно 25х80 и стандартные цвета символа и фона MS DOS.

Задача 7. Разработать программу по выводу в выделенном окне нажатие специальных клавиш (Home, End, Delete, Insert, PageUp, PageDown, CapsLock, NumLock, ScrollLock, Esc, Break, F1,F2,F3..F12) , используя меню. Обеспечить наглядность решаемых задач с помощью пользовательского интерфейса, оконный интерфейс (опции меню, окна ответов, значение нажатых клавиш).

Задача 8. Разработать программу исследования элементарных функций: sin x, cos x, tg x, ln x, eх, arcsin x, ctg x, задаваемых пользователем. Обеспечить для каждой функции вывод таблицы значений на заданном интервале [0..1] с заданным шагом, поиск корней и определение максимума и минимума. Взаимодействие пользователя и программы организуйте с использованием 2-хуровнего меню (исследование функций, список операций).

Задача 9. Создать базу данных об учениках старших классов школы. Записи должны содержать следующие поля: класс, фамилия, имя, отечество, 4 предмета обучения, средний балл, оценка за поведение. Создать меню со следующими пунктами: F1 – ввод данных, F2 - просмотр, F3 - поиск, F4 – выход. База данных позволяет вывод данных в табличной форме (оконной форме). Пункты меню расположены горизонтально, на одной линии в верхней части экрана. При выводе, вводе, поиске, меню присутствует.

Задача 10. Разработать программу проигрывания 3-х простейших мелодий с помощью управления встроенным динамиком, используя меню выбора мелодий и их прерывания клавишей «Esc ».

Лабораторная работа №4.

Двухуровневое меню

Цель работы – овладение практическими навыками программирования по созданию многоуровневых пользовательских меню, для решения собственных задач.

1. Практическая часть

Результаты выполнения данной лабораторной работы должны быть сведены в два модуля:

  • модуль численного интегрирования;

  • и модуль численного решения уравнений.

Написать программу двухуровневого меню, в которой меню 1-го уровня имеет вид (ориентировочно)

Unit1


Unit2


Exit


а меню 2-го уровня имеют вид (ориентировочно)

Метод 1

Метод 1


Метод 2

Метод 2


Метод3

Возврат


Возврат


Меню 2-го уровня должны частично перекрывать меню 1-го уровня, например, так

Unit2


Unit2


Метод 1


Метод 2


Выход


Для "анимации" меню использовать клавиши "Стрелка вверх", "Стрелка вниз", Home, End. Для выполнения пункта меню использовать клавишу Enter. Для возврата из меню 2-го уровня в меню 1-го уровня допустить использование клавиши Esc. Для завершения программы допустить использование комбинаций клавиш Alt-X или Ctrl-C. Нажатие всех прочих клавиш сопровождать звуковым сигналом. При работе с меню курсор временно выключать. Ввод данных и вывод результатов выполнять в диалоговых окнах. При возможности все процедуры и функции работы с окнами и меню собрать в отдельный модуль, с тем, чтобы главная программа была как можно меньшей.

В качестве ориентира предлагается текст главной программы, реализующей одноуровневое меню (файл MENEDEMO.PAS). Для зажигания/гашения курсора используется модуль Cursor (файл CURSOR.PAS).

2.Задачи, для самостоятельного решения:

Задача 1. Разработать двухмерное меню с выделением цветом нужного режима:

Для выбора режима используйте клавиши: , , , , Ввод. Методика выбора состоит в перемещении по меню, как по горизонтали, так и вертикали, с выделением цвета. Активизируется яркий режим нажатием клавиши «Ввод».

Характеристики

Тип файла
Документ
Размер
580 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее