Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Грушвицкий 22.12.11 пособие исправленное.doc
Скачиваний:
28
Добавлен:
09.02.2015
Размер:
1.01 Mб
Скачать

2.4 Итог

Мы спроектировали программу Вашей лабораторной работы №1. Не правда ли, текст программы на языке С выглядит просто и понятно для человека-проектировщика. Простота и наглядность текста – это то, к чему Вы и в дальнейшем должны стремиться.

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

Настоящее пособие не призвано заменять какую-либо книгу, подробно описывающую язык С. Язык программирования следует изучать по оригиналу (такому как [1]) самостоятельно, что Вы и должны уже сейчас начать делать. А задача преподавателей, читающих лекции и ведущих практические занятия как раз и заключается в том, чтобы помочь Вам разобраться во всех тонкостях предмета. Если Вы чувствуете трудности в освоении языка, то целесообразно воспользоваться учебником [2].

3. Цикл лабораторных работ первого семестра

3.1 Лабораторная работа №1. Программа определения суммы трех чисел Задание

Разработать программу для определения суммы трёх чисел a+b+c.

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

Внимательно изучите простейший пример из раздела 2. Третья программа этого раздела будет служить вам заготовкой для проектирования последующих своих программ.

С самого начала беритесь за дело грамотно. Составьте проект в среде BorlandC3.1 (смотрите раздел 5.1), откомпилируйте и выполните программу (смотрите раздел 5.2), установите точку останова на выделенную строку и проинспектируйте в пошаговом режиме значения переменных a,b,c. Это позволит вам на практике ознакомится с простейшими способами отладки программ в средеBorlandC3.1.

Попробуйте что-нибудь изменить в программе. Введите какую-нибудь ошибку и наблюдайте за реакцией компилятора. Встав на строку сообщения об ошибке, нажмите клавишу [Enter] – компилятор автоматически найдет соответствующую строку в исходном тексте.

Модифицируйте программу так, чтобы получать сумму трех чисел.

3.2 Лабораторная работа №2. Решение квадратного уравнения Задание

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

Решение уравнения должно быть получено при любых действительных значениях коэффициентов a, b, c (в том числе нулевых).

Обратите внимание, что мы изменили тип переменных с целочисленного intнаdoubleв строкеdouble a, b, c;. Это тип переменной с плавающей точкой двойной точности. Он позволяет хранить дробные числа.

Согласитесь, что программа, работающая только с целыми данными, не так уж и полезна.

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

Опорный алгоритм данной лабораторной работы представлен на рис. 2. Обратите внимание на три аспекта:

  1. Данная схема выполнена с некоторыми отступлениями от рекомендаций по реализации схем алгоритма. В частности, она изобилует подробностями, которые не должны присутствовать на функциональной схеме. Это связано с необходимостью представить исчерпывающий материал для разработки в одной схеме, не создавая дополнительных объяснений;

полученным в результате выполнения программы

Рис. 1 Опорный алгоритм вычисления корней квадратного уравнения

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

Схема алгоритма не отражает возможность равенства нулю некоторых коэффициентов уравнения. Например, при а=0 последствия выполнения соответствующей программы становятся просто катастрофическими: деление на 0 вызывает ее грубое прерывание вместо определения корней. Вам необходимо соответственно доработать алгоритм, представленный на рис. 2.

При создании тестовых примеров необходимо заранее знать результаты правильно работающей программы. Для нашей программы мы должны задать такие значения a,b,cдля которых заранее известен результат. Например, мы хотим получить корни -5 и 3. Уравнение для таких корней выглядит следующим образом:. Приведя его к форме квадратного уравнения, получаем следующее уравнение, а значит и исходные коэффициенты для нашей программы:.

При выборе исходных данных целесообразно избегать для них значений 1 и 0 вследствие того, что мы не сможем определить, не произошло ли умножение на 1 и не выполнено ли сложение с 0. Поэтому выберем, например, a= 2,b=4,c=30.

Для полноценного тестирования программы необходимо учесть все возможные варианты развития действий, то есть все ветви алгоритма. Выполнение определенных ветвей алгоритма происходит при появлении соответствующих условий. Исходя из опорного алгоритма к работе, у нас есть 3 ветви, но при дальнейшей разработке их количество может увеличиться. В нашей программе учтена возможность вычисления уточненных значений корней. Поэтому необходимо задать такие значения коэффициентов уравнения, которые позволят убедиться в достижении заданного результата. Например, введем значения в = 1.0 E10,a= 1.0E-10, то естьbсущественно больше 4ac.

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