16. Составьте программу вычисления выталкивающей силы , действующей на тело объемом V, наполовину погруженное в жидкость плотностью
, пользуясь формулой F=g
V.
17. Составьте программу вычисления потенциальной энергии тела массой м на высоте h относительно Земли, пользуясь формулой E
=gmh.
18. Составьте программу вычисления механической работы, когда тело равномерно движется под действием приложенной к нему силы, пользуясь формулой A=FS, где F – приложенная сила, а S – пройденный путь.
19. Ввести 4-значное число. Превратить его в 2-значное, отбросив первую и последнюю цифру.
20. С клавиатуры задается число К. Выбросить из записи К цифру, обозначающую сотни. Вывести полученное число на экран.
Приготовьте для проверки файлы и листинги с вашими программами. Будьте готовы ответить на следующие вопросы:
1. Почему при записи формул на Паскале их "вытягивают" в линию? Почему знак умножения всегда выписывают явно?
2) Почему на Паскале аргумент функции всегда записывают в скобках (например, ln(5), а не ln5)
3) Укажите символы, буквы, составные символы:
^, Y, <>, +, *, R, k, $, !, ф
4) Что в списке можно рассматривать как идентификаторы:
FIO, ФИО, 33719, X, Y, >=, $, &, Summa, _Rezult
5) Какие идентификаторы удобнее использовать и почему:
klass1, Klass_1, summadohoda, SummaDohoda, nomerdoma, Nomer_Doma
6) Найдите в следующем списке зарезервированные слова:
X, Program, Y, Summa, MyMoney, Произведение, Vova, begin, end, if, repeat, Read.
7) В каких случаях надо использовать переменные:
• если в программе используется какое-то число,
• если в вычислениях какой-то операнд постоянно меняет свое значение,
• если операнд в выражении хотя бы раз меняет свое значение.
8) Какая структура программы правильна:
a) Program MyProgram; b) Program MyFirst;
Begin Begin
WriteLn(‘Привет!’); X:=Y+100;
End. End.
9) Какой из перечисленных разделов обязателен в программе?
• раздел Var
• раздел Const
• раздел Type
• раздел Begin... End
• раздел Label
10) Для чего используется слово Uses?
11) В разделе процедур и функций описываются только стандартные процедуры?
• да,
• нет, только пользовательские,
• и стандартные, и пользовательские.
12) Найдите ошибки в программах:
a) Program Ошибки1;
Begin
Summa:=6+8;
End;
b) Program Ошибки2;
Begin
Var
X:integer;
X:=6+8;
Write(X);
End;
13) С чего начинается программа?
14) Как описываются переменные?
15) С чего начинается основная программа?
16) Как выглядит оператор вывода? Для чего он служит? Какое существует различие между выводом сообщения и выводом значения переменной? Можно ли с помощью оператора вывода выполнить два действия? Если – да, то какие?
17) Что собой представляет оператор ввода? Для чего он служит? Как можно его использовать, чтобы осуществить задержку экрана?
18) Как происходит присваивание переменной какого-либо значения? Как называется этот оператор?
19) Чем заканчивается программа?
20) Как сохранить программу на диске?
21) Как сохранить программу под другим именем? Зачем это бывает необходимо?
22) Как отрыть новый файл?
23) Как отрыть уже существующий файл?
24) Как выйти из программы?
25) Какие есть способы загрузки программы Турбо Паскаля в оперативную память?
26) Что такое процедура и чем она отличается от процедуры?
27) Что означает понятие "зарезервированное слово" ?
28) Какие имена можно использовать в языке TurboPascal?
29) Из каких частей состоит программа, написанная на языке TurboPascal?
30) Для чего необходим в программе раздел описаний?
31) Какие стандартные типы вам известны?
32) Какие типы относятся к порядковым.?
33) В чем различия между данными действительного и целого типов?
34) Назовите функции горячих клавиш F1-F10.
35) С помощью какой клавиши можно выйти в главное меню?
Графика
Занятие 1: Графический режим. Инициализация графического режима. Построение точки, линии.
Стандартное состояние компьютера после запуска Турбо Паскаля – текстовый режим. Для того, чтобы использовать его графические средства, программист должен "определенным образом инициировать режим работы дисплейного адаптера". В графическом режиме работой дисплейного адаптера управляет графический драйвер.
Драйвер – это специальная программа, которая управляет техническими средствами компьютера. Для всех существующих типов адаптеров фирма Borland разработала графические драйверы (они имеют расширение. bgi и находятся на диске в одноименном подкаталоге).
Необходимые процедуры и функции для работы с графикой собраны стандартном модуле – Graph.
Инициализация графики производится с помощью процедуры InitGraph, которая имеет вид:
InitGraph(GraphDriver, GraphMode, Path);
где переменные GraphDriver и GraphMode имеют тип Integer, а переменная Path имеет тип String.
То, что записано в скобках, называется параметрами вызова процедуры (подробнее с данным вопросом мы ознакомимся позднее в теме “Процедуры и функции”), а сейчас рассмотрим параметры GraphDriver, GraphMode и Path.
GraphDriver – целая переменная, определяющая тип драйвера. Процедура загружает драйвер в оперативную память и переводит адаптер в графический режим работы. Тип драйвера должен соответствовать типу графического адаптера. Для указания типа драйвера в модуле предопределены следующие константы:
CGA | 1 | EGA | 3 | EGAMono | 5 | HercMono | 7 | VGA | 9 |
MCGA | 2 | EGA64 | 4 | IBM8514 | 6 | ATT400 | 8 | PC3270 | 10 |
Detect = 0;
Целая переменная GraphMode задает режим работы графического адаптера. Многие адаптеры могут работать в нескольких режимах. Например, переменная GraphMode в момент обращения к InitGraph может иметь одно из следующих значений для адаптера VGA:
VGALo = 0; VGAMed = 1; VGAHi = 2;
Примечание: Более подробно о переменной Mode можно узнать в справочном руководстве по TurboPascal.
Теперь представьте такой вариант: Вам нужно написать программу на языке Pascal с использованием графических возможностей компьютера. Хорошо, если это – программа для компьютера с известным адаптером. А если нет, как действовать в этом случае? Выход один. Если нам неизвестен тип адаптера или программа должна работать с любым адаптером, необходимо обращаться к InitGraph с запросом на автоматическое определение драйвера.
Это происходит следующим образом: переменной GraphDriver присваиваем значение detect. В этом случае компьютер сам определит необходимый драйвер и подберет наилучший режим.
Program Primer1;
Uses
Graph;{Подключение модуля библиотеки графических процедур}
Var
GraphDriver,
GraphMode : integer;
Begin
GraphDriver := detect; {автоопределение типа драйвера }
InitGraph(GraphDriver, GraphMode, Path);
{Инициализация графического режима}
. . .
. . .СloseGraph;{Закрытие графического режима}
End.
Для получения графического изображения нужно заставить светиться заданным цветом определенную группу пикселей (точек). Это можно делать в программе, но ваша работа тогда станет очень трудоёмкой. Чтобы облегчить труд программиста существует модуль Graph, в котором содержиться 79 полезных процедур и функций, десятки стандартных констант и типов данных (например, процедуры рисования линии, окружности и др.). Чтобы воспользоваться этим модулем нужно сначала его подключить. Для этого в программе записывают строчку: Uses Graph.
Условно весь модуль Graph можно подразделить на несколько функциональных групп по выполняемым действиям. Рассмотрим эти группы (внутри групп взяты основные функции, необходимые нам для первоначального ознакомления с графикой):
1) Инициализация графики, подготовительные работы, управление цветом, закрытие режима:
InitGraph | установление (инициализация) графического режима работы |
CloseGraph | завершение работы с графикой |
DetectGraph | определение драйвера |
FloodFill | заливка замкнутого контура выбранным типом и цветом палитры |
RestoreCRTMode | возврат в текстовый режим |
SetBkColor | выбор и установка нового цвета закраски фона |
SetColor | выбор и установка нового текущего цвета |
SetFillStyle | выбор и установка нового шаблона и цвета заполнения |
2) Процедуры и функции для управления курсором и видеостраницами:
ClearDevice | очистка текущего устройства вывода |
ClearViewPort | очистка текущего окна |
GetMaxX | получение максимально доступной координаты по оси X |
GetMaxY | получение максимально доступной координаты по оси Y |
GetPixel | получение текущего цвета точки экрана |
GetX | получить значение координаты X |
GetY | получить значение координаты Y |
MoveRel | переместить курсор из данной текущей точки на заданное приращение. |
MoveTo | переместить курсор из данной текущей точки в заданную точку |
3). Процедуры и функции для работы с "графическими примитивами":
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |


