Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Word (2).docx
Скачиваний:
9
Добавлен:
21.02.2016
Размер:
238.23 Кб
Скачать

9) Цикл for

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

В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.

Цикл for существует в двух формах:

for счетчик:=значение to конечное_значение do

тело_цикла;

for счетчик:=значение downto конечное_значение do

тело_цикла;

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

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

var

i, n: integer;

 

begin

write ('Количество знаков: ');

readln (n);

 

for i := 1 to n do

write ('(*) ');

 

readln

end.

10) Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

var

i, n: integer;

 

begin

write ('Количество знаков: ');

readln (n);

 

i := 1;

repeat

write ('(*) ');

i := i + 1

until i > n;

 

readln

end.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

11) Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, еслиfalse – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

var

i, n: integer;

 

begin

write ('Количество знаков: ');

readln (n);

 

i := 1;

while i <= n do begin

write ('(*) ');

i := i + 1

end;

 

readln

end.

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

Абстрактные типы данных[править | править исходный текст]

Типы данных, которые рассматриваются независимо от контекста и реализации в конкретном языке программирования. Абстракция в математическом смысле означает, что алгебра данных рассматривается с точностью до изоморфизма. Абстрактные типы находят широкое применение в методологии программирования, основанной на пошаговой разработке программ. На этапе построения спецификации проектируемой программы алгебра данных моделирует объекты предметной области, в терминах решаемой задачи. В процессе пошагового уточнения данные конкретизируются путём перехода к промежуточным представлениям до тех пор, пока не будет найдена их реализация с помощью базовой алгебры данных используемого языка программирования. Существует несколько способов определения абстрактных типов: алгебраический, модельный и аксиоматический. При модельном подходе элементы данных определяются явным образом. При алгебраическом используются методы алгебраических отношений, а при аксиоматическом подходе используется логическая формализация.

Целочисленные типы[править | править исходный текст]

Целочисленные типы содержат в себе значения, интерпретируемые как числа (знаковые и беззнаковые).

BYTE[править | править исходный текст]

Cоответствует байту, 8 бит, беззнаковое.

  • Используется в API Win32 (64), в основном в качестве указателя на блок двоичных данных (BYTE *).

  • В спецификации Ogg Media используется для хранения однобайтных значений

Логические типы[править | править исходный текст]

Логические переменные, BOOL или boolean, содержат одно из двух значений (истина или ложь). В зависимости от реализации, истина может обозначаться как единица или «true», так и любым ненулевым числом (Си). Ложь, соответственно, обозначается инверсно к правде. Для реализации типа достаточно одного бита, однако на практике для ускорения размер bool равен размеру машинного слова!

Типы с плавающей запятой[править | править исходный текст]

Используются для представления вещественных (не обязательно целых) чисел. В этом случае число записывается в виде x=a*10^b. Где 0<=a<1, а b — некоторое целое число из определённого диапазона. a называют мантиссой, b — порядком. У мантиссы хранятся несколько цифр после запятой, а b — хранится полностью.

Строковые типы[править | править исходный текст]

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

Идентификационные типы[править | править исходный текст]

Идентификационные типы интерпретируются не как число, а как уникальный идентификатор объекта.

FOURCC[править | править исходный текст]

FOURCC — 32 бита, интерпретируется как идентификатор кодека для воспроизведения содержимого в файлах-медиаконтейнерах (RIFF (AVI), Ogg Media). В оригинальной спецификации [источник не указан 1618 дней] было указано ограничение на использование «псевдо ASCII» представления кода (при записи в little-endianпорядке байт при побайтовом выводе данных должна была получаться ASCII строка).

ATOM[править | править исходный текст]

Atom (от греческого «неделимый») — общесистемный идентификатор строки в операционной системе Windows и X11[1]. Приложение может «поместить» (соответствующим вызовом) строку в таблицу (англ. atom table), вызов возвращает число. По указанному числу любое приложение может получить значение строки. Используется для межпроцессного взаимодействия и уникальных идентификаторов (напр., классов окон).[2]

Сложносоставные типы[править | править исходный текст]

COLORREF[править | править исходный текст]

В операционных системах Windows COLORREF служит для хранения значения трёх цветов (R, G, B — красный, зелёный, синий), размер 32 бита.