Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к lab_1 _2 и 3 инф ч2.doc
Скачиваний:
3
Добавлен:
11.04.2015
Размер:
332.8 Кб
Скачать

Программирование циклических алгоритмов и массивов

Продолжительность работы – 4 часа

Цель работы: приобретение основных навыков работы с инструментальной средой и навыков отладки программ с применением массивов, операторов условного перехода и операторов цикла.

Программа работы

1. Загрузить на выполнение среду и ознакомиться с окнами среды и разделами главным меню Правка (команды Найти, Найти далее, Заменить), Программа (команды Шаг без захода в подпрограмму, Выполнить до курсора), Вид (команда окно отладки)

2. Составить программу индивидуального задания, используя все три вида циклов.

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

Контрольные вопросы

  1. Как произвести замену фрагментов программы?

  2. Как можно использовать отладчик инструментальной среды?

  3. Для чего и как используется трассировка программы?

  4. Как найти в программе требуемое имя?

  5. Как выполняется оператор цикла repeat?

  6. Как выполняется оператор цикла for?

  7. Как выполняется оператор цикла while?

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

  9. Какая может возникнуть опасность при использовании цикла while?

  10. Какие могут возникнуть опасности при использовании цикла repeat?

  11. Как описывается массив?

  12. Как из текста программы можно определить размерность массива?

  13. Как из текста программы можно определить максимальный размер массива?

  14. Чему равно число повторений вложенного цикла?

Методические указания

К п.1. Для поиска и замены фрагментов программы используются команды раздела меню Правка: Найти Заменить Найти далее, значение которых понятно из названия.

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

Кп.2. Массив относится к структурам данных, т.е. в отличие от простой переменной одно и то же имея имеют все элементы массива. Массив –

это упорядоченная структура однотипных данных, значение которых определяется положением в этой структуре. Элементы массива (переменные с индексом) имеют одно имя и различаются индексами

Пример записи элементов массивов:

M[3]mas[k,i+2]d[1,n, 10]

Массивы описываются следующим образом:

var<имя массива>:array[ диапазоны индексов ]of<тип элемента массива>;

var mas: array[1..10, 1..5] of real;

Количество индексов у элемента определяет размерность массива. Размер массива – это максимальное число элементов, которое можно использовать в массиве.

В приведенном примере из описания массива ясно, что это двухмерный массив размером 50 элементов.

В Паскале используется три вида циклов for, while, repeat.

При использовании циклов нужно уметь рационально выбирать тип цикла. Цикл ”for””жёстко” задает число повторений тела цикла с шагом +1 или -1. Пример записи цикла для расчета элементов массивов Mas1 и Mas2 :

for i:=0 to 5 do {параметр i изменяется с шагом 1}

Mas1[i]:=i;

или

for i:=2 downto -2 do{параметр i изменяется с шагом -1}

Mas2[i]:=i/3;

Если заранее неизвестно число повторений цикла, то используются циклы whileили repeat . В этих циклах необходимо обеспечивать изменение значения параметра и выполнение условия прекращения цикла, иначе цикл будет бесконечным.

Циклы whileназывают циклами с пред-условием, аrepeat-untilс пост-условием.

Пример записи циклов для расчета элементов массива Mas3:

i:=-2;

while i<=2 do {если условие i<=2- истина, то в теле цикла while операторы междуbegin-endвыполняются}

begin

j:=0;

repeat

Mas3[i,j]:=ln(i+j);

j:=j+1;

until j>5; {пока условие j>5 - ложь, в теле цикла repeat операторы междуrepeat -until выполняются}

i:=i+1

end;{конец циклаwhile}

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

Следует также помнить, что цикл ”while”может не выполниться ни разу, если при входе в цикл условие его выполнения ложно. Операторrepeatорганизует повторяющееся выполнение нескольких операторов до тех пор пока не станет истинным условие, стоящее вuntil-части. Тело цикла обязательно выполняется хотя бы один раз. Таким образом, в этом цикле логическое выражение - это условие выхода из цикла.

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

Пример пересекающихся вложенных циклов whileиrepeat(во вложенном циклеrepeatзакрывается циклwhile - сравните с примером выше):

i:=-2;

while i<=2 do

begin

j:=0;

i:=i+1

repeat

Mas3[i,j]:=ln(i+j);

end;{конец цикла while}

j:=j+1;

until j>5; {конец цикла repeat}

При организации циклов рекомендуется использовать следующие процедуры:

  • Break - немедленный выход из цикла на оператор, стоящий после конца цикла,

  • Continue - досрочный переход на конец цикла.

Также рекомендуется использовать “быстрые” процедуры порядкового типа:

Inc ( x,Dx ) – увеличение значения переменной x на величину Dx.

Dec ( x,Dx ) – уменьшение значение переменной x на величину Dx.

Если Dx=1, то второй параметр можно не указывать:

Inc ( x );