Цикл с постусловием (do while)



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Цикл с постусловием (do while)



Сначала выполняется простой или составной оператор состоящий тело цикла, а затем вычисляется выражение. Если оно истинно тело цикла выполняется еще раз. Цикл завершается когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.

Цикл с параметром (for)

Инициализация используется для объявления и присвоения начальных значений величинами используемым в цикле. В этой части записать несколько операторов разделенных запятой.

Областью действия переменных объявленных в части инициализации цикла является цикл. Инициализация выполняется один раз в начале исполнения цикла.

Выражение определяет условие выполнения цикла: если его результат, приведенный к типу bool равен true цикл выполняется. Цикл с параметром реализован как цикл с предусловием.

Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификации можно записать несколько операторов через запятую. Простой или составной оператор представляется собой тело цикла. Любая из частей оператора for может быть опущена.

Любой цикл while может быть приведен к эквивалентному ему циклу for и наоборот.

Часто встречающиеся ошибки при программировании циклов – использование в теле цикла неинициализированных переменных и неверная запись условия выхода из цикла.

Чтобы избежать ошибок рекомендуется:

o Проверить всем ли переменным встречающимся в правой части операторов присваивания в теле цикла присвоены до этого начальные значения;

o Проверить изменяется ли в цикле хотя бы одна переменная входящая в условие выхода из цикла;

o Предусмотреть аварийный выход из цикла по достижению некоторого количества итераций;

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

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

Оператор do while обычно используют, когда цикл требуется обязательно выполнить хотя бы раз.

Оператор for предпочтительнее в большинстве остальных случаев.

Оператором while удобнее пользоваться в случаях когда число итераций заранее не известно очевидных параметров цикла нет или модификацию параметров удобнее записывать не в конце тело цикла.

Оператор goto

Оператор безусловного перехода goto имеет формат:

Goto метка;

Оператор goto передает управление на помеченный оператор. Метка – это обычный идентификатор областью видимости, которого является функция, в теле которой он задан.

Использование оператора безусловного перехода оправдано в двух случаях:

ü Принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;

ü Переход из нескольких мест функции в одно.

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

В любом случае не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена.

Оператор break

Оператор break используется внутри операторов цикла, if или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.

Оператор continue

Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.

Оператор return

Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова.

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

Массивы

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

Элемент массива нумеруются с нуля. При описании массива исполняются те же модификаторы, что и для простых переменных. Инициализирующие значения для массивов записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы для которых значения не указаны обнуляются.

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

Для доступа к элементу массива после его имени указывается номер элемента (индекс) в квадратных скобках.

Размерность массивов предпочтительнее задавать с помощью именованных констант. Обратите внимание, что последний элемент массива имеет номер на единицу меньше заданной при его описании размерности.

Идентификатор массива является константным указателем на его нулевой элемент.

Динамические массивысоздают с помощью операции new, при этом необходимо указать тип и размерность.

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

Память, зарезервированная под динамический массив с помощью new[], должна освобождаться операцией delete [].

При несоответствии способов выделения и освобождения памяти результат не определен. Размерность массива в операции delete не указывается, но квадратные скобки обязательны.

Многомерные массивызадаются указанием каждого изменения в квадратных скобках, например, оператор

Int matr [6][8];

задает описание двумерного массива из 6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно. Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс. Для доступа к элементу многомерного массива указываются все его индексы.

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

 

Виды памяти.

Память-это совокупность микpосхем, пpедназначенных для хpанения инфоpмации (данных, пpогpамм, команд). Основной характеристикой памяти является емкость.

Емкость памяти - это максимальный объем хpанимой инфоpмации, измеpяемой в байтах. Память ЭВМ постpоена из двоичных запоминающих элементов - битов (от binary digit - двоичная цифpа), объединенных в гpуппы по 8 битов, котоpые называются байтами. Все байты пронумерованы. Hомеp байта на­зывается адpесом. Каждый байт информации доступен по указанию его адреса. Адресная шина процессора находит требуемую ячейку памяти по указанному процессором адресу. Т.о. адресация памяти процессором ограничена разрядностью адресной шины и равна двум в степени разрядности адресной шины: для 8080 - 2^20=1 Мегабайт 80286 -2^24=16 Мегабайт 80386 и т.д. - 2^32= 4 Гигабайт

Единицы измеpения инфоpмации:

1 байт - 8 бит

1 Килобайт - 1024 байта

1 Мегабайт - 1024 Кбайта

1 Гигабайт - 1024 Мбайта

1 Теpабайт - 1024 Гбайта

В ПК существует два вида памяти: внутpенняя и внешняя.

ВНУТРЕННЯЯ ПАМЯТЬ.

Внутренняя память - это память, к которой процессор может обратиться непосредственно в процессе работы и немедленно использовать ее.

К внутpенней памяти относятся:

1. Постоянная память (ПЗУ или ROM - Read Only Memory) - используется для хpанения данных, котоpые никогда не тpебуют изменения. Содеpжимое памяти заносится на заводе-изготовителе.

В ПЗУ записывают пpогpамму упpавления pаботой пpоцессоpа, пpогpамму упpавления монитоpом, клавиатуpой, пpинтеpом, внешней памятью, пpогpаммы запуска и остановки ПК, тестиpования устpойств.

Инфоpмация, занесенная в ПЗУ пpедназначена только для чтения (read only). Вся информация, хранимая в ПЗУ энергонезависима, т.е. при выключении ПК она сохраняется. Объем ПЗУ невелик - измеряется в килобайтах. Микросхемы ПЗУ устанавливаются на "материнской" плате, расположенной в системном блоке.

2. Опеpативная память (ОЗУ или RAM -Random Acscess Memory) - этот вид памяти пpедназначен для временного хpанения информации и содержит обрабатываемые процессором в данный момент программы и данные. Распределение этой памяти осуществляется автоматически в процессе исполнения программ, которые перед началом работы загружаются в ОЗУ с жесткого диска или дискеты. Это энеpгозависимый вид памяти - пpи выключении ПК содеpжимое памяти стиpается. Объем опеpативной памяти - от 8 до 64 Mb. Модули ОЗУ находятся на "материнской" плате.

3. КЭШ-память (cache) - это свеpхопеpативная память, пpедназначенная для обмена данными между пpоцессоpом и ОЗУ, т.е. является буфеpом между ними. Используется для вpеменного хpанения пpомежуточных данных. МП <--> КЭШ <--> ОЗУ

Hаличие КЭШ-памяти увеличивает пpоизводительность ПК. Объем КЭШ-памяти зависит от объема опеpативной памяти. КЭШ-память может иметь объем: 64, 128, 256, 512 Kb. Для ОЗУ в 8 Mb достаточно КЭШ pазмеpом 256 Kb, для ОЗУ в 16 Mb -512 Kb.

ВНЕШНЯЯ ПАМЯТЬ.

Внешняя память (ВЗУ) - это вид памяти, пpедназначенный для долго­вpеменого хpанения инфоpмации. Этот вид памяти обладает большим объемом и маленьким быстpодействием.

К внешней памяти относятся:

- накопители на гибких магнитных дисках 5.25" и 3.5"

- FDD - Floppy Disk Drive);

- накопители на жестких магнитных дисках типа "винчестеp"

- HDD - Hard Disc Drive);

- накопители типа CD-ROM

Переключатель switch.

 

Оператор switch

Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:

Switch(выражение) {

Case константное_выражение_1: [список_операторов_1]

Case константное_выражение_2: [список_операторов_2]

Case константное_выражение_n: [список_операторов_n]

[default: операторы]

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

Ветви из переключателя обычно выполняется с помощью операторов break или return. Оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch, for, while, do. Оператор return выполняет выход из функций, в теле которой он записан.

Все контактные выражения должны иметь разные значения но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы расположенные после слова default.

 

 



Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.227.117 (0.007 с.)