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

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

Пример:

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.

Массив объектов класса. Динамический. Статический. Создание Особенности. ООП C++ Для начинающих #96


Похожие статьи.

Понравилась статья? Поделиться с друзьями: