Статические и динамические массивы




· Статистическими(традиционными) массивами, называются те массивы при объявлении которых в явном или косвенном виде указываются конкретные границы изменения каждого индекса.

Пример:

Const

A=3

K=2

Type

Mat = array[1..a,1..k]

Var

x: Array [3…10]

Y: mat

· Динамические массивы не содержат указания о границах изменения индексов

Пример:

SetLenght(da1,100) - такое обращение эквивалентно статическому

описаниювидаx: Array [0…99] of integer

Вопрос№24.

Длина и размер массива.

Длина и размер массива - это объем оперативной памяти в байтах, занятых элементами массива. Для определения этой характеристики обычно прибегают к функции SizeOf.
Каждый элемент массива занимает 8 байт. Аоскольку в массиве оъем объявлено 13 элементов, то для хранения их значений компилятор отведет 8х13=104 байта.
Размер одномерного статического массива совпадает с количеством его элементов. И для определения этой характеристики обычно прибегают к функции Length: Length (sa1) = 13
В языке Паскаль предусмотрены еще две функции - Low и High для определения минимального и максимального значения индекса одномерного и статического массиваю Например:
Low (sa1) = 3
High (sa1) = 15

Результат функции SizeOf(da1) иногда равен 4. Фактически, это объем памяти, занимаемый указателем da1 на соответсвующие данные. Функции Length выдает фактическое значение, равное текущему количеству элементов динамического массива, и пока обращение к процедуре SetLength еще не было, эта характеристика равна 0.
Для двумерного массива q размером nxm компилятор заводит n указателей. Первый из них имеет для q0 совпадающее с именем массива. Он является указателем на начало массива и одновременно на первую строку массива. Если минимальное значение первого индекса равно k, то указатель q[k] тоже "смотрит" на первую строку массива (т.е. q и q[k] - это два имение одного и того же указателя). Следующий указатель с именем q[k+1] "смотрит" на вторую строку массива и т.д.

Вопрос№25.

При решении сложных задач целесообразно разбивать их на более простые подзадачи. В языке Паскаль, предусмотрены средства, позволяющие оформлять вспомогательный алгоритм как подпрограмму. Использование подпрограмм позволяет сделать основную программу более наглядной, понятной, более короткой и эффективной. Оформление процедур.PROCEDURE имя (формальные параметры);раздел описанийBEGINраздел операторовEND;Вызывается процедура по имени:имя (фактические параметры);

Вопрос№26.

Алгоритм

Алгоритм программирования на языке Pascal – это есть последовательность операторов Паскаль, с помощью которых мы пришли к решению задачи. Она выглядит так:

Program...; { Заголовок программы }

Uses...; { Подключение модулей } – если они есть

Label...; { Раздел объявления меток } – если они есть

Const...; { Раздел объявления констант } – если они есть

Type...; { Раздел объявления новых типов }– если они есть

Var...; { Раздел объявления переменных }– если они есть

Procedure...; { Описание своих процедур }– если они есть

Function...; { Описание своих функций }– если они есть

Begin { начало основной программы }

...;

{ Операторы }

...;

End.

Обязательной частью является лишь тело программы, которое начинается словом begin, а заканчивается словом end с точкой. Операторы в Паскале разделяются точкой запятой. Заголовок программы является хотя и необязательным, но желательным элементом и состоит из зарезервированного слова program и идентификатора - имени программы, за котором следует точка с запятой. Порядок объявлений и описаний не регламентируется.

Вопрос№27.

Следование-действие идёт друг за другом

Вопрос№28.

Выбор

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

Структура оператора выбора в Паскале такова:

Case <ключ_выбора> of
<список_выбора>
[else <оператор_иначе>] end

Здесь case, of, else, end – зарезервированные слова (случай, из, иначе, конец);

· <ключ_выбора> - выражение порядкового типа;

· <список_выбора> - одна или более конструкций вида:

o <константа_выбора>: <оператор>;

· <константа_выбора> - константа того же типа, что и выражение

o <ключ_выбора>;

<операторы> - произвольные операторы Паскаля.

Оператор выбора Паскаля работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <список_выбора> отыскивается константа, равная вычисленному значению. Выполняется оператор, который следует за найденной константой, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор_иначе> можно опустить, тогда при отсутствии в списке выбора нужной константы не будет выполнено никаких действий, и оператор выбора просто завершит свою работу.

Например, составим программу, которая по номеру дня недели выводит на экран его название:

Следует помнить, что все константы из списка выбора должны быть различны.

Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов ‘ y’ или ‘ Y’ выведет на экран «Да», а при вводе ‘ n’ или ‘ N’ – слово «Нет».

Вопрос№29.

Цикл

Цикл — организация многократного исполнения набора инструкций(операций). Также циклом может называться любая многократно исполняемая последовательность операций, организованная любым способом.

Эта последовательность как раз и является телом любого цикла.

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

Какие бывают циклы? Сейчас мы рассмотрим все возможные варианты циклов по порядку.

1) Безусловные (бесконечные) циклы.

Такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует, либо заменяется константным значением (while true do …).

2) Цикл с предусловием.

Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу. Реализуется такой цикл оператором while. На языке Pascal цикл с предусловием имеет следующий вид:

while <условие> do

begin

<тело цикла>

end;

3) Цикл с постусловием.

Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. Реализует цикл оператор repeat..until.

repeat

<тело цикла>

until <условие>

Т.е цикл завершается, когда его условие выполнено.

4) Цикл с выходом из середины.

Цикл с выходом из середины — оформляется с помощью трёх конструкций: начала цикла, конца цикла и команды выхода из цикла. Внутри тела должна присутствовать команда выхода из цикла, при выполнении которой цикл заканчивается и управление передаётся на оператор, следующий за конструкцией конца цикла. Чтобы цикл выполнился более одного раза, команда выхода должна вызываться не безусловно, а только при выполнении условия выхода из цикла.

Но в языке pascal таких конструкций не предусмотрено, поэтому для выхода из середины цикла используется оператор безусловного перехода goto.Он позволяет изменить порядок выполнения команд.

Goto n;

1:write(x);

n:write(y);

Где n – метка, по которой определяется, в какую часть программы следует перейти при определённых условиях.

5) Цикл со счётчиком.

Цикл со счётчиком — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. Реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик.

n:= 100;

for i:= 1

to n do

begin

... тело цикла

end;

Цикл со счётчиком всегда можно записать как условный цикл, перед началом которого счётчику присваивается начальное значение, а условием выхода является достижение счётчиком конечного значения.

То есть в конструкции for сначала пишется произвольное предложение инициализации цикла, затем — условие продолжения и, наконец, выполняемая после каждого тела цикла некоторая операция.

6) Вложенные циклы.

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

begin

If K then D

Else

Begin

If R then M

Else P;

End;

End;

Здесь в условный оператор вложен еще один условный оператор, что создаёт вложенный цикл.

С вышеперечисленными циклами можно выполнять определённые операции, для усовершенствования их функционала.

Бывают ситуации, когда необходимо сделать досрочный выход из цикла по определённым причинам (ошибка в теле цикла и т.д.). Для решения таких проблем существует команда break, а её действие аналогично действию команды безусловного перехода (goto) на команду, непосредственно следующую за циклом, внутри которого эта команда находится. Этот оператор прерывает работу того цикла, в котором он непосредственно находится.

If S then V

Else

Break;

Вопрос№30.

Графические средства FP

Практически повторяет набор графических средств Turbo Pascal, Borland Pascal. Дополнительным в FP является выделение приложением двух окон. В главном окне реализуются взаимодействие между пользователем и приложением)ввод/вывод по операциям: read/readln, write/writeln, readkey/keypressed) В дополнительном окне выполняется построение фигур и отображение пояснительных записей с помощью процедур BCI.

Вопрос№31.

система координат

Рабочее поле графического окна имеет систему координат, начало которой находится в левом верхнем углу. Ось х направлена вправо, а ось у – вниз.

Единицы измерения – пикселы.

Вопрос№32.

Графический курсор.

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

Ряд графических процедур наряду с абсолютными координатами использует и относительные координаты, которые задаются в виде смещений (dx,dy) относительно позиции текущей точки CP (Current Point). При создании графического окна текущая точка перемещается в начало координат. Ее последующие перемещения зависят от выполняемых графических операций. Например, при построении отрезка прямой текущая точка переводится в конец отображаемого отрезка. При построении окружности положение текущей точки не изменяется. Текущую точку обычно называют графическим курсором, который в отличие от постоянно мигающего текстового курсора не изображается в графическом окне, чтобы не исказить выводимую картинку. Координаты текущей точки программа может опросить с помощью функции GetX и GetY.

Вопрос№33.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: