- •Общая функциональная схема эвм
- •Языки программирования
- •Этапы решения задач на эвм
- •Понятие алгоритма и его свойства
- •Типы алгоритмов
- •Ос эвм. Понятие о файловой системе
- •Команды ms dos
- •Программирование на языке паскаль
- •Структура программы на языке паскаль
- •Описание данных
- •1. Константы
- •2. Переменные
- •Комментарии
- •Операторы языка паскаль
- •Операторы обработки данных
- •1. Операторы ввода
- •2. Операторы вывода
- •3. Вычисление по формулам. Оператор присваивания
- •Линейные программы
- •Управляющие операторы
- •1. Разветвляющиеся алгоритмы. Оператор if (если)
- •2. Пример разветвляющейся программы
- •3. Оператор case
- •Циклические алгоритмы и программы
- •1. Общая схема цикла
- •2. Циклы со счетчиком
- •3. Итерационные циклы
- •3.1. Оператор цикла с пост-условием
- •3.2. Оператор цикла с пред-условием
- •Tипы данных, используемых в паскале
- •1.Представление данных в эвм
- •2. Стандартные функции Паскаля и Турбо Паскаля
- •3. Булевские переменные и выражения
- •4.Функции для работы с символами
- •5. Массивы
- •Примеры программ обработки массивов
- •Особенности алгоритмов и программ с накапливанием
- •Алгоритм нахождения минимума и максимума
- •Задача сортировки
- •Обработка многомерных массивов
- •Итерационные циклы
- •Типовые алгоритмы с итерационными циклами
- •1. Приближенное вычисление функций
- •2. Решение уравнений приближенными методами
- •2.1. Метод Ньютона
- •Программы обработки строк символов (текстов)
- •1. Простейшие алгоритмы и программы обработки строк
- •Типовые программы обработки строк
- •Задача 1 выделения слов из текста (слова разделены одним пробелом)
- •Задача 2 выделения слов из текста (слова разделены несколькими пробелами)
- •Алгоритмы поиска
- •Алгоритм линейного поиска
- •Библиографический список
- •Содержание
Понятие алгоритма и его свойства
Алгоритм – это точное предписание о выполнении в определенном порядке некоторых операций, приводящих к решению всех задач данного класса.
Пример – решение систем линейных уравнений методом Гаусса, вычисление определенного интеграла методом трапеций.
Свойства алгоритма:
1) определенность (точность предписаний и однозначность результата);
2) массовость (ориентирован на класс задач: система произвольного количества уравнений, данные любые);
3) дискретность (деление процесса решения на этапы, понятные человеку и ЭВМ);
4) результативность (результат должен быть обязательно - даже если его нет, должно быть сообщение об этом).
Способы описания алгоритмов:
1) словесный (выполнение математических операций в столбик, и т.д.);
2) математический (в виде формул);
3) графический (схемы алгоритмов);
4) на языке программирования.
Первые два способа описания известны из школы и в данном курсе будут, в основном, использоваться совместно – для составления плана решения при математической постановке задачи. При составлении плана решения мы будем руководствоваться наиболее перспективным методом программирования – сверху вниз ( от общей постановки задачи – к отдельным шагам ее решения). План решения учитывает:
1) особенности задачи, математические методы ее решения;
2) возможности языка программирования и его основные конструкции:
- ввод-вывод данных и вычисление по формулам;
- принятие решения ( в зависимости от некоторого условия);
- повторение некоторых команд ( групп команд);
- выделение общих частей алгоритма в одну общую часть и обращение к ней в случае необходимости.
Пример. Алгоритм определения всех множителей нескольких целых чисел.
Множитель – это число, на которое нацело делится исходное число. Последовательность чисел вводится с дисплея в ЭВМ, в конце ее вводится признак конца последовательности (например, "0" или отрицательное число).
План будем разрабатывать по методу сверху вниз: постепенно уточняя отдельные шаги.
План 1
1. Ввести в ЭВМ первое число.
2. Пока нет признака конца обработать число и прочитать следующее число.
3. Выдать сообщение, что программа закончила свою работу.
Этот план в таком виде правилен.
Пункты 1 и 3 - очевидные и просто реализуются. Пункт 2 надо уточнить - как обработать число. Число может быть:
1) простое;
2) составное.
Если простое, то множитель один – оно само. Если составное, то оно должно делиться на множитель без остатка. Значения множителя могут быть любые в пределах от 2 до ]число/2[ - целое.
Уточняем п.2:
2.1. Предположить, что число - простое.
2.2. Изменять множитель от 2 до ]число/2[ и выполнять:
если число делится на множитель, то
изобразить значение множителя и частного и изменить предположение о том, что число простое на противоположное.
2.3. Если число простое, то
выдать сообщение "Простое число".
2.4. Прочитать следующее число.
Чтобы убедиться, что пункт 2 выполняется верно, проверим его вручную.
Пусть число равно 12
Множители должны быть: 2, 3, 4 и 6.
Проверяя работу пунктов 2.1 - 2.4, получаем пары:
2 и 6 3 и 4 4 и 3 6 и 2
Теперь план, в котором описаны пункты 1, 2.1 - 2.4 и 3 может быть запрограммирован. Он содержит только типовые конструкции. Программу составим позднее.
