- •Содержание отчета
- •Оценивание работы студента
- •1. Проектирование, написание и отладка программ, содержащих структуру выбора
- •1.1. Цель работы
- •1.2. Методические указания по подготовке к лабораторной работе
- •1.3. Контрольные вопросы
- •1.4. Содержание отчета
- •1.5. Варианты индивидуальных заданий
- •2. Программная реализация циклических вычислительных процессов
- •2.1. Цель работы
- •2.2. Методические указания по подготовке к лабораторной работе
- •2.3. Контрольные вопросы
- •2.4. Содержание отчета
- •2.5. Варианты индивидуальных заданий на оценку «хорошо»
- •2.6. Варианты индивидуальных заданий на оценку «отлично»
- •3. Обработка массивов
- •3.1. Цель работы
- •3.2. Методические указания по подготовке к лабораторной работе
- •3.3. Контрольные вопросы
- •3.4. Содержание отчета
- •3.5. Варианты индивидуальных заданий
- •4.4. Содержание отчета
- •4.5. Варианты индивидуальных заданий
- •5. Сортировка массивов
- •5.1. Цель работы
- •5.2. Методические указания по подготовке к лабораторной работе
- •5.3. Контрольные вопросы
- •5.4. Содержание отчета
- •5.5. Варианты индивидуальных заданий
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
РАДІОЕЛЕКТРОНІКИ
МЕТОДИЧНІ ВКАЗІВКИ
ДО ЛАБОРАТОРНИХ РОБІТ З ДІСЦИПЛІНИ
"АЛГОРИТМІЗАЦІЯ ТА ПРОГРАМУВАННЯ"
для студентів денної форми навчання напрямку КН
Укладач – доц.каф.ШІ Шергін Вадим Леонідович
Затверджено каф.
ШІ протокол №
від 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. Цель работы
Цель работы - изучение понятия "структура выбора", приобретение навыков написания, трансляции и отладки программ в среде 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) и этого в данной ситуации достаточно. Вторые отношения в этих же условиях реализуются структурно, за счет предшествующих логических блоков.
Разветвляющиеся вычислительные процессы существуют в алгоритмах не только самостоятельно, но и как составные части алгоритмов сложных задач, входя составной частью в циклические процессы, в линейные фрагменты и ветвления более высокого порядка.
Условия в логических блоках могут быть представлены и в виде логических выражений, то есть в виде последовательности нескольких логических отношений, разделенных знаками логических операций.
К логическим операциям относятся:
-
логическое умножение – конъюнкция (операция «И», математическое обозначение );
-
логическое сложение – дизъюнкция (операция «ИЛИ», математическое обозначение );
-
отрицание – инверсия (операция «НЕ», математическое обозначение ).
Результатом вычисления логических выражений может быть «истина» или «ложь».
Таблицы истинности логических операций.
ab |
|
ab |
||||||
|
b |
|
|
b |
||||
Истина |
Ложь |
|
Истина |
Ложь |
||||
a |
Истина |
Истина |
Ложь |
|
a |
Истина |
Истина |
Истина |
Ложь |
Ложь |
Ложь |
|
Ложь |
Истина |
Ложь |
Логические выражения в схемах алгоритмов могут быть проанализированы как в пределах одного логического блока, так и нескольких, в таком случае в каждом отдельном логическом блоке анализируется одно отношение.
Пример 1.3. Составить алгоритм вычисления функции y:
Подобная запись условия может быть представлена в следующем виде с учетом формального представления логических операций:
При реализации каждого отношения отдельным блоком алгоритм будет иметь вид, показанный на рисунке 1.3. В данном алгоритме блоки 3 и 4, а также блоки 6 и 7 реализуют логическое умножение (значение «истина» у которых получается при истинности обоих отношений). Блоки 9 и 10 реализуют логическое сложение (в результате получится «истина», если истинным будет хотя бы одно отношение).
В данном алгоритме последнее наложенное условие не проверяется, так как оно дополняет область определения аргумента x до всех возможных значений.
Рисунок 1.3. Алгоритм вычисления значения функции к примеру 1.3.