Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на экзамен по информатике.docx
Скачиваний:
5
Добавлен:
19.04.2019
Размер:
132.23 Кб
Скачать

28. Графические возможности языка Turbo Pascal.

Починаючи з версії 4.0, до складу Турбо Паскаля включена потужна бібліотека графічних підпрограм Graph. Ця бібліотека в загальній кількості містить понад 50 процедур і функцій, які дозволяють керувати графічним екраном. Для того щоб її підключити необхідно в наступному рядку після Program написати команду Uses Graph. При запуски програми з середовища Турбо Паскаля екран знаходиться в текстовому режимі роботи, тому програма яка використовує графічні можливості комп’ютера, повинна певним чином ініціювати графічний режим роботи. Для цього використовується процедура InitGraph. Ініціювання графіки на Турбо Паскалі має такий вигляд:

river:=detect; InitGraph(driver, mode,’’); Після того, як буде ініційований графічний режим і програма виконає всі потрібні операції потрібно перейти в текстовий режим – команда CloseGraph;

CloseGraph – завершує роботу адаптера в графічному режимі і переходить в текстовий режим.

Багато графічних процедур і функцій використовують координати екрану. Ці координати задаються відносно лівого верхнього кута, який в свою чергу має координати 0, 0. Таким чином, горизонтально координати екрану збільшується зліва на право, а вертикально – зверху вниз. В мові програмування Турбо Паскаль є такі процедури, завдяки яким можна малювати найпростіші геометричні елементи. Серед них: PutPixel(x, y, color) - виводе на екран точку з координатами х, у і кольором Color причому колір задаються або числом від 0 – 15 або константою(словами). Line(x1, y1, x2, y2) – викреслює лінію з координатами початку – х1, у1 і кінця х2, у2.Circle(x, y, r) – викреслює коло з координатами центра х, у і радіусом r. Rectangle(x1, y1, x2, y2) – викреслює прямокутник за координатами кутів: х1, у1 – лівого верхнього; х2, у2 – правого нижнього. Причому всі координати – це змінні типу Integer. Для зміни кольору використовують такі процедури: SetColor(color) – встановлює поточний колір color для ліній і символів які виводяться. SetBkColor(color) – встановлює колір фону – color. Для виводу текстового повідомлення потрібно скористатися процедурою Outtextxy(x,y,text) яка виводить текст в координатах х, у, причому змінна text має тип String і містить текст який виводиться.

29. Организация работы с динамической памятью в языке Turbo Pascal.

Динамическая память - это оперативная память ЭВМ, предоставляемая Турбо-Паскалевой программе при её работе, за вычетом сегмента данных (64 К), стека (обычно 16 К) и собственно тела программы. По умолчанию размер динамической памяти определяется всей доступной памятью ЭВМ и, как правило, составляет не менее 200 - 300 Кбайт. Динамическую память обычно используют при: 1. обработке больших массивов данных; 2. разработке САПР; 3. временном запоминании данных при работе с графическими и звуковыми средствами ЭВМ.

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

Динамические переменные - размещаются в памяти непосредственно в процессе работы программы. При динамическом размещении заранее неизвестны ни тип, ни количество размещаемых данных, к ним нельзя обращаться по именам, как к статическим переменным. Турбо-Паскаль представляет средство управления динамической памятью: указатели. Указатель - это переменная, которая в хранит качестве своего значения адрес байта памяти. Каждому сегменту соответствует непрерывная и отдельно адресуемая область памяти. Сегменты могут следовать в памяти один за другим, или с некоторыми интервалами, или, наконец, перекрывать друг друга. Таким образом любой указатель по своей внутренней структуре представляет собой совокупность двух слов (типа Word), трактуемых как сегмент и смещение. Указатель адресует лишь первый байт типа данных. Вся динамическая память – пространство ячеек, называемое кучей. Физически куча располагается в старших адресах, сразу за программой. Указатель на начало кучи храниться в предопределенной переменной HeapOrg, конец - FreePtr, текущую границу незанятой динамической памяти указывает указатель HeapPtr. Для выделения памяти под любую переменную используется процедура New. Есть несколько процедур и функций для работы с динамической памятью:

Процедура Dispose(x) - возвращает в кучу фрагмент динамической памяти, зарезервированный за типизированным указателем x. Процедура GetMem(P, Size) - резервирует память (за одно обращение не более 65521 байт), если нет свободной памяти - ошибка времени исполнения. Процедура FreeMem - возвращает в кучу фрагмент динамической памяти, который ранее был зарезервирован за нетипизированным указателем. FreeMem(P, Size), P - нетипизированный указатель. Size - длина фрагмента, подлежащего освобождению. И другие.