Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_на_ЯВУ (Cpp)_-_Лекции.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
882.69 Кб
Скачать

Академия маркетинга и социально-информационных технологий

Конспект лекций

по дисциплине

Информатика и программирование

Часть II. Программирование на ЯВУ (С++)

Краснодар 2009

Лекция 1 Основы алгоритмизации

1.1 Языки программирования

Языки программирования делятся на 3 основных класса, как показано на рис. 1.1.

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

2. Языки высокого уровня близки к языку математики и разговорному (традиционно - английскому).

В этих языках:

1) формулы записываются на языке, близком к математическому (в одну строку, с явным указанием всех операций и т.д.);

2) используется ограниченное количество типовых конструкций (вычисление по формулам; принятие решения; повторение; цикл; процедуры);

3) для выполнения на ЭВМ программы преобразуются на машинный язык с помощью самой ЭВМ, при этом используются так называемые компиляторы и интерпретаторы с языков высокого уровня.

Итак, выполнение на ЭВМ программ, написанных на языках высокого уровня, состоит из следующих этапов (рис. 1.2):

1) ввод текста программы в ЭВМ (исходный модуль);

2) компиляция и получение текста на машинном языке (объектный модуль);

3) загрузка объектного модуля и стандартных процедур и функций в память ЭВМ и выполнение программы.

1.2 Этапы решения задач на компьютере

Решение задач на ЭВМ – сложный процесс, состоящий из следующих этапов.

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

2. Математическое описание. Выбор математических методов и моделей, запись формул, обеспечивающих решение задачи. Составление плана решения.

3. Программирование задачи. Оно состоит из трех частей:

1) графическое изображение метода решения (составление схемы алгоритма);

2) написание программы на языке программирования (кодирование);

3) ввод текста программы в ЭВМ.

4. Отладка программы. Выявление ошибок (кодирования и методов решения), проверка правильности результатов.

5. Обработка реальных данных и получение результатов. Выполнение готовой программы на ЭВМ, выдача результатов.

Из этих этапов первые три не требуют ЭВМ, наиболее сложные - первые два, а наиболее трудоемкий – четвертый. Все они сопровождаются соответствующей документацией, состав которой определяется стандартами.

1.3 Понятие алгоритма и его свойства

Алгоритм – это точное предписание о выполнении в определенном порядке некоторых операций, приводящих к решению всех задач данного класса.

Свойства алгоритма:

1) определенность (точность предписаний и однозначность результата);

2) массовость (ориентирован на класс задач, например решение системы произвольного количества уравнений при любых исходных данных);

3) дискретность (деление процесса решения на этапы, понятные человеку и ЭВМ);

4) результативность (результат должен быть обязательно – даже если его нет, должно быть сообщение об этом).

Способы описания алгоритмов:

1) словесный (описание действий, которые должны привести к решению задачи, например построение треугольника по трем его сторонам);

2) математический (в виде формул, например формула для нахождения корней квадратного уравнения);

3) графический (схемы алгоритмов);

4) на языке программирования.

Первые два способа описания известны из школы и в данном курсе будут, в основном, использоваться совместно – для составления плана решения при математической постановке задачи. При составлении плана решения мы будем руководствоваться наиболее перспективным методом программирования – сверху вниз (от общей постановки задачи – к отдельным шагам ее решения). План решения учитывает:

1) особенности задачи, математические методы ее решения;

2) возможности языка программирования и его основные конструкции:

– ввод / вывод данных и вычисление по формулам;

– принятие решения (в зависимости от некоторого условия);

– повторение некоторых команд (групп команд);

– выделение общих частей алгоритма в одну общую часть и обращение к ней в случае необходимости.

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

Условие задачи. Последовательность чисел вводится в ЭВМ с клавиатуры; в конце ее вводится признак конца последовательности (например, "0" или отрицательное число).

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

План 1 (укрупненный).

1. Ввести в ЭВМ первое число.

2. Пока нет признака конца последовательности

обработать число и

прочитать следующее число.

3. Выдать сообщение, что программа закончила свою работу.

Пункты 1 и 3 очевидные и реализуются просто, а пункт 2 - надо уточнить, как обработать число. Так, число может быть:

1) простым;

2) составным.

Если число простое, то множитель у него один – оно само, если составное, то оно должно делиться на делитель без остатка. Значения делителя могут быть любые в пределах от 2 до ]число/2[. Здесь запись ] X [ означает целую часть от X.

Уточним пункт 2.

2.1. Предположить, что число – простое.

2.2. Изменять делитель от 2 до ]число/2[ и выполнять:

если число делится на делитель, то

а) вывести значение делителя и

б) изменить предположение, что число простое, на противоположное.

2.3. Если число простое, то

выдать сообщение 'Простое число'.

2.4. Прочитать следующее число.

Чтобы убедиться, что пункт 2 выполняется верно, проверим его вручную.

Пусть число равно 12.

Делители должны быть: 2, 3, 4 и 6.

Проверяя работу пунктов 2.1 – 2.3, получаем в результате:

2 3 4 6

Теперь план, в котором описаны пункты 1, 2.1 – 2.4 и 3, может быть запрограммирован. Он содержит только типовые конструкции. Программу составим позднее.