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




МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Южно-Российский технический университет

(НПИ)

Факультет автоматики и управления

Кафедра автоматики и телемеханики

 

А.Г.Малашенко, Л.И.Малашенко

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К лабораторным работам по дисциплине «ИНФОРМАТИКА»

Часть 2

для студентов направления «Электроника и наноэлектроника»

 

 

НОВОЧЕРКАССК 2011

 

 


 

УДК 519.6 (076.3)

 

А.Г.Малашенко, Л.И. Малашенко

 

Методические указания к лабораторным работам

по дисциплине "Информатика".

для студентов направления «Электроника и наноэлектроника»

Часть 2.

 

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

Методические указания предназначены для студентов первого курса.

 

Объем 38 стр., тираж 15 экз.

 

Методические указания обсуждены и одобрены на заседании кафедры "Автоматика и телемеханика"

ФИТУ ЮРГТУ(НПИ),

., протокол № от 2011 г

 

Южно-Российский государственный технический университет (НПИ), 2011
Введение

Для проведения лабораторных работ необходимы IBM -совместимые персональные компьютеры. В качестве системного программного обеспечения (ПО) требуется операционная среда Windows XP и выше, а в качестве инструментального ПОлюбая интегрированная среда Pascal.

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

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

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

В отчете по каждой работе должны быть представлены:

1. наименование и программа работы;

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

3. содержание индивидуального задания;

4. текст программы, исходные данные тестовой задачи и результаты расчета по ней;

5. перечень синтаксических и семантических ошибок и их исправления в процессе отладки.

 

 

ЛАБОРАТОРНАЯ РАБОТА №1

Программирование разветвляющихся алгоритмов

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

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

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

1. Загрузить на выполнение инструментальную среду и ознакомиться с окнами среды и ее главным меню. Ознакомиться с разделами меню

Файл ( команды Новый, Открыть, Сохранить, Закрыть, Выход).

Правка ( команды Вырезать, Копировать, Вставить, Перейти к строке).

Вид ( команды Нижняя панель, Окно вывода, Список ошибок, Сообщение компилятора).

Программа ( команды Компилировать, Выполнить).

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

3. Отладить программу индивидуального задания.

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

1. В чем заключается различие константы и переменной по смыслу, описанию и написанию в программе?

2. Что является результатом вычисление выражения?

3. Какова структура оператора присваивания, как он выполняется?

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

5. Какова структура оператора условного перехода и как он выполняется?

6. Как выполняется оператор условного перехода?

7. Что выполняется по оператору условного перехода, не имеющего группы else, если условие не выполняется?

8. Какова структура и как выполняется оператор ввода?

9. По каким параметрам должны совпадать список переменных ввода и список констант ввода?

10. Что может являться элементом списка оператора вывода и что при этом будет выведено на экран?

11. Что позволяет выполнять раздел меню?

12. Сколько наборов исходных данных необходимо подготовить для отладки индивидуального задания этой работы?

13. Как описываются типы пользователя?

14. Какие команды разделов меню применялись при выполнении работы?

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

К п.1 Раздел главного меню Файл предназначен для работы с файлами программы: создание нового, открытие существующего, сохранение, закрытие и выход из среды. Раздел Правка позволяет редактировать текст программы обрабатывая строки. Раздел Вид Позволяет открывать различные окна среды. Раздел Программа обеспечивает компиляцию и запуск программы на выполнение.

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

Program Log;

Var

r:real;

Begin

readln (r);

writeln (2*r);

end.

К п.2

При составлении программы на Паскале следует учитывать, что

программа должна иметь следующие разделы:

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

Uses... { Подключение модулей }

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

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

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

...

{ Операторы – тело программы}

...;

End.

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

В разделе объявления переменных (раздел Var) следует использовать следующие стандартные целые и вещественные типы данных (в скобках представлены пределы их значений);

Целые

integer (целый занимает 4 байта, диапазон от -2147483648 до 2147483647).
byte (байтовый 1 байт и находятся в диапазоне от 0 до 255.)

word (беззнаковый целый). Значения этого типа занимают 2 байта и находятся в диапазоне от 0 до 65535.
char (символьный)

boolean (логический 1 байт и принимают значения True (истина) и False (ложь)).


real (вещественный 8 байт, содержат 15-16 значащих цифр и по модулю не могут превосходить величины 1.7∙10308. Самое маленькое положительное число вещественного типа равно 5.0∙10-324.)
string (строковый до 255 символов)

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

if <логическое выражение> then <оператор1> else <оператор2 >;

Группа else может отсутствовать. Простое логическое выражение реализует простое логическое выражение (условие), т.е. два арифметических или строковых выражения, связанные знаком отношения, например,

a + 1 > D*sin(x)

Сложное логическое выражение – последовательность простых, соединенных знаками логических операций, например,

(A<> 3) OR (C>5) AND NOT (C=6)

Результатом вычисления логических выражений является логическая константа true ( истина) или false ( ложь).

При выполнении оператора условного перехода результат вычисления логического выражения - истина, то выполняется оператор1, если ложь – оператор2 (при отсутствии else выполняется оператор, следующий за оператором условного перехода).

Если необходима развилка на группу операторов, то используют составной оператор - группа операторов, окруженная операторными скобками:

begin.< операторы > end.

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

Program Log;

Var

r:real;

Begin

write ('Введите число: '); readln (r);

{вычисление ln(r)}

if (r<0) or (r=0) then

writeln ('Введите положительное число ')

else writeln(ln(r));

Readln

End.

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

var S: 1..25;{S может принимать значения целых чисел от 1 до 25}


Варианты задания лабораторной работы №1

Для группы 1-1а

Номер варианта Расчетные формулы и условия Тип переменных
x y z
1. Целый Вещественный Интервальный целого типа
2. Вещественный Целый Интервальный целого типа
3. Интервальный целого типа Целый Вещественный
4. Вещественный Интервальный целого типа Целый
5. Целый Интервальный целого типа Вещественный
6. Интервальный целого типа Вещественный Целый
7. Интервальный целого типа Целый Вещественный
8. Целый Интервальный целого типа Вещественный
9. Вещественный Целый Интервальный целого типа
10. Целый Вещественный Интервальный целого типа
11. Интервальный целого типа Вещественный Целый
12. Вещественный Интервальный целого типа Целый
13. Вещественный Целый Интервальный целого типа
14. Целый Вещественный Интервальный целого типа
15. Интервальный целого типа Целый Вещественный
16. Целый Интервальный целого типа Вещественный
17. Интервальный целого типа Вещественный Целый
18. Вещественный Интервальный целого типа Целый
19. Целый Вещественный Интервальный целого типа
20. Вещественный Целый Интервальный целого типа
21. Вещественный Интервальный целого типа Целый
22. Интервальный целого типа Вещественный Целый
23. Вещественный Целый Интервальный целого типа
24. Целый Вещественный Интервальный целого типа
25. Интервальный целого типа Вещественный Целый
26. Вещественный Интервальный целого типа Целый

Для Группы 1-2

1. Целый Вещественный Интервальный целого типа
2. Вещественный Целый Интервальный целого типа
3. Интервальный целого типа Целый Вещественный
4. Вещественный Интервальный целого типа Целый
5. Целый Интервальный целого типа Вещественный
6. Интервальный целого типа Вещественный Целый
7. Интервальный целого типа Целый Вещественный
  Целый Интервальный целого типа Вещественный
9. Вещественный Целый Интервальный целого типа
10. Целый Вещественный Интервальный целого типа
11. Интервальный целого типа Вещественный Целый
12. Вещественный Интервальный целого типа Целый
13. Вещественный Целый Интервальный целого типа
14. Целый Вещественный Интервальный целого типа
  Интервальный целого типа Целый Вещественный
  Целый Интервальный целого типа Вещественный
  Вещественный Целый Интервальный целого типа
18. Вещественный Интервальный целого типа Целый
19. Интервальный целого типа Вещественный Целый
20. Вещественный Целый Интервальный целого типа
21. Целый Вещественный Интервальный целого типа
22. Интервальный целого типа Вещественный Целый
23. Вещественный Интервальный целого типа Целый
24. Вещественный Целый Интервальный целого типа
25. Целый Вещественный Интервальный целого типа
26. Интервальный целого типа Целый Вещественный

 

ЛАБОРАТОРНАЯ РАБОТА №2

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

 

Продолжительность работы – 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 }

 

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

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

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

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

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

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

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

Inc (x);



Поделиться:




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

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


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