Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АПр лб 2008.doc
Скачиваний:
7
Добавлен:
12.11.2018
Размер:
680.45 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

РАДІОЕЛЕКТРОНІКИ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ З ДІСЦИПЛІНИ

"АЛГОРИТМІЗАЦІЯ ТА ПРОГРАМУВАННЯ"

для студентів денної форми навчання напрямку КН

Укладач – доц.каф.ШІ Шергін Вадим Леонідович

Затверджено каф. ШІ

протокол №

від 200 р.

Харків ХНУРЕ 2008

СОДЕРЖАНИЕ

Общие положения 3

Порядок подготовки к проведению лабораторных работ 3

Описание лабораторной установки 3

Порядок выполнения работ 3

Содержание отчета 4

Оценивание работы студента 4

1. Проектирование, написание и отладка программ, содержащих структуру выбора 5

1.1. Цель работы 5

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

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

1.4. Содержание отчета 10

1.5. Варианты индивидуальных заданий 10

2. Программная реализация циклических вычислительных процессов 10

2.1. Цель работы 11

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

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

2.4. Содержание отчета 16

2.5. Варианты индивидуальных заданий на оценку «хорошо» 16

2.6. Варианты индивидуальных заданий на оценку «отлично» 17

3. Обработка массивов 18

3.1. Цель работы 18

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

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

3.4. Содержание отчета 20

3.5. Варианты индивидуальных заданий 20

4. Создание и применение функций 23

4.1. Цель работы 23

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

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

4.4. Содержание отчета 23

4.5. Варианты индивидуальных заданий 23

5. Сортировка массивов 24

5.1. Цель работы 24

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

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

5.4. Содержание отчета 27

5.5. Варианты индивидуальных заданий 27

Общие положения

Данные методические указания предназначены для проведения лабора-торных работ по курсу “Алгоритмизация и программирование”. Лаборатор­ные работы проводятся в первом семестре с целью обучения на практике основным приемам алгоритмизации задач, написания и отладки структурных программ на языке С++.

Методические указания содержат описание 5 лабораторных работ.

Порядок подготовки к проведению лабораторных работ

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

Описание лабораторной установки

При выполнении всех лабораторных работ используется единая конфигурация программно-аппаратных средств: ПЭВМ с процессором не ниже Pentium100, операционная система не ниже Windows 98, Borland C++ Builder 6.0 и старше.

Порядок выполнения работ

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

Выполнение работы включает следующие этапы:

  1. Подготовительный этап (до проведения лабораторной работы):

а) получение задания согласно данному методическому указанию, и требованиям преподавателя;

б) изучение теоретического материала по теме лабораторной работы;

в) разработка алгоритма и черновика программы;

  1. Непосредственное создание программы в компьютерном классе:

а) прохождение допуска к лабораторной работе (обсуждение с препода-вателем предлагаемого решения задачи);

б) написание программы;

в) отладка программы;

г) проверка правильности выполнения задания (тестирование).

  1. Выполнение отчета и защита лабораторной работы.

Содержание отчета

Отчет должен содержать:

  • титульный лист с названием лабораторной работы и данными исполнителя;

  • цель работы;

  • задание;

  • описание алгоритма решения поставленной задачи;

  • текст программы с комментариями и пояснениями;

  • результаты работы программы и их анализ;

  • выводы;

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

Оценивание работы студента

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

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

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

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

Задания, выполненные не по своему варианту и задания, выполненные несамостоятельно оцениваются "неудовлетворительно".

1. Проектирование, написание и отладка программ, содержащих структуру выбора

1.1. Цель работы

Цель работы - изучение понятия "структура выбора", приобретение навыков написания, трансляции и отладки программ в среде Borland C++ Builder.

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

Изучить теоретический материал: конспект лекций, методические указания к практическим занятиям по соответствующим темам.

Подготовить ответы на контрольные вопросы.

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

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

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

Для представления ветвлений в алгоритмах применяются блоки «реше­ние». В блоках «решение» проверяются некоторые условия, вариантами которых являются операции отношения (>, >=, ==, !=, <, <=). В то же время условия могут быть описаны более сложными структурами – логическими выражениями. Результатом выполнения операции отношения будут являться или «истина» (при удовлетворении указанного условия) или «ложь» (при невыполнении). Такой же результат «истина» или «ложь» будет получен при вычислении логического выражения любой сложности. В графическом пред­ставлении алгоритма выход «истина» логического блока (блока «решение») обозначается «да», выход «ложь» логического блока – «нет». Обычно на схеме алгоритма отображается только один из выходов блока выбора (“да” или “нет”).

Пример 1.1. Составить алгоритм вычисления значения функции

Данная задача достаточно традиционна по постановке: имеется некото­рая величина x, которая может принимать любые значения. Но если x имеет значение до 2, то расчет величины y следует выполнить по первой формуле: y=x+4x-7; если x имеет значение большее или равное 2, то расчет должен выполняться по второй формуле: y=. На рисунке 1.1 представлен алгоритм вычисления функции y по примеру 1.

Рисунок 1.1. Алгоритм вычисления функции примера 1.1.

Обращает на себя внимание тот факт, что хотя в исходных данных указаны два условия (x<2 и x2), в алгоритме используется только одно (блок 3, условие x<2). Имеющиеся два выхода из блока 3 реализуют оба условия: выход «Да» на блок 4 реализует условие x<2, выход “Нет” на блок 5 реализует условие x2.

Пример 1.2. Составить алгоритм вычисления значения функции

На рисунке 1.2 в алгоритме имеется 3 блока сравнения, реализующих перечисленные четыре логические условия.

Рисунок 1.2. Алгоритм вычисления функции по примеру 1.2.

Здесь условия блоков 4 и 5 учитывают только одно отношение (x  0 в блоке 4 и x  2 в блоке 5) и этого в данной ситуации достаточно. Вторые отношения в этих же условиях реализуются структурно, за счет предшест­вующих логических блоков.

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

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

К логическим операциям относятся:

  • логическое умножение – конъюнкция (операция «И», математическое обозначение );

  • логическое сложение – дизъюнкция (операция «ИЛИ», математическое обозначение );

  • отрицание – инверсия (операция «НЕ», математическое обозначение ).

Результатом вычисления логических выражений может быть «истина» или «ложь».

Таблицы истинности логических операций.

ab

ab

b

b

Истина

Ложь

Истина

Ложь

a

Истина

Истина

Ложь

a

Истина

Истина

Истина

Ложь

Ложь

Ложь

Ложь

Истина

Ложь

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

Пример 1.3. Составить алгоритм вычисления функции y:

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

При реализации каждого отношения отдельным блоком алгоритм будет иметь вид, показанный на рисунке 1.3. В данном алгоритме блоки 3 и 4, а также блоки 6 и 7 реализуют логическое умножение (значение «истина» у которых получается при истинности обоих отношений). Блоки 9 и 10 реали­зуют логическое сложение (в результате получится «истина», если истинным будет хотя бы одно отношение).

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

Рисунок 1.3. Алгоритм вычисления значения функции к примеру 1.3.