- •Вопрос 1. Интуитивное понятие алгоритма.
- •Свойства алгоритмов.
- •Понятие исполнителя алгоритма.
- •Вопрос 2. Словесный способ представления алгоритмов.
- •Вопрос 3. Графический способ представления алгоритмов.
- •Вопрос 4. Название элементов блок-схем, их геометрическое представление, переход от одного блока к другому.
- •Вопрос 5. Базовые структуры блок-схем, название и их геометрическое представление.
- •Вопрос 6. Выражение базовой структуры «цикл с постусловием» и базовой структуры «цикл с параметром» через базовую структуру «цикл с предусловием».
- •Вопрос 7. Понятие базисного множества базовых структур. Понятие структурированной блок-схемы.
- •Вопрос 8. Виды блок-схем.
- •Вопрос 9. Понятие транслятора, компилятора и интерпретатора.
- •Вопрос 10. «Модель – алгоритм - программа» - методологический принцип решения задач на компьютере.
- •Вопрос 11. Алфавит языка Паскаль, служебные слова и идентификаторы.
- •Вопрос 12. Константы. Имена констант, типы констант, их объявление в программе.
- •Вопрос 13. Переменные, имена переменных, типы переменных, их объявление в программе.
- •Вопрос 14. Простые стандартные типы.
- •Вопрос 15. Стандартные функции языка Паскаль, тип значения аргументов и тип значения функции.
- •Вопрос 16. Арифметические операции, арифметические выражения, типы значений арифметических выражений.
- •Вопрос 17. Операции отношений, простые и сложные логические выражения.
- •Вопрос 18. Структура программы, ее три части, характеристика каждой части программы. Программа на языке программирования Pascal может состоять из трех разделов:
- •Вопрос 19.Процедура ввода данных.
- •Вопрос 20.Процедура вывода данных.
- •Вопрос 21.Форматы вывода данных.
- •Вопрос 22.Оператор присваивания, формат записи, порядок работы, типы операндов, графическое представление.
- •Вопрос 23 .Оператор неполного ветвления, формат записи, представление в виде базовой структуры, порядок работы.
- •I f условие Then Оператор 1;
- •Вопрос 24.Оператор полного ветвления, формат записи, представление в виде базовой структуры, порядок работы.
- •Вопрос 25.Оператор выбора, формат записи, представление в виде базовой структуры, порядок работы.
- •Вопрос 27.Оператор цикла с предусловием, формат записи, представление в виде базовой структуры, порядок работы.
- •Вопрос 28.Оператор цикла с постусловием, представление в виде базовой структуры, порядок работы.
- •Вопрос 29.Оператор цикла с известным числом повторений, формат записи, представление в виде базовой структуры, порядок работы, типы операндов.
- •Вопрос 30.Процедуры пользователя, формат объявления процедуры пользователя.
- •Вопрос 31.Формальные и фактические параметры процедуры пользователя, обращение к процедуре пользователя.
- •Вопрос 32.Глобальные и локальные параметры процедуры пользователя.
- •Вопрос 33.Функции пользователя, обращение к функции пользователя.
- •Вопрос 34.Понятие одномерного массива и элемента массива, формат объявления одномерного массива в программе.
- •Вопрос 35.Задание элементов одномерного массива с помощью функции случайных чисел и путем ввода значений с клавиатуры.
- •Вопрос 36,37Способы вывода элементов одномерного массива на экран: в строку, в столбик.
- •Вопрос 42.Понятие двумерного массива и его элемента, формат объявления двумерного массива.
- •Вопрос 43.Задание элементов двумерного массива с помощью случайных чисел и путем ввода с клавиатуры.
- •Вопрос 44.Вывод на экран элементов двумерного массива в виде матрицы.
- •Вопрос 46.Понятия прямоугольного и квадратного двумерного массива, свойства элементов главной и побочной диагоналей.
- •Вопрос 49.Строковый тип данных, формат объявления строковой перемнной.
- •Вопрос 50.Операции над строковыми переменными.
- •Вопрос 51.Тип записи: понятие поля, понятие записи, формат объявления записи.
- •52.1.Ввод значений записи.
- •52.2.Вывод записи на экран.
- •52.3.Оператор над записями.
- •53.Файловый тип данных: виды файлов, формат объявления файлового типа.
- •2.Виды файлов
- •Текстовые
- •55.Запись данных в файл данных.
- •56.Вывод данных из файла данных на экран.
Вопрос 10. «Модель – алгоритм - программа» - методологический принцип решения задач на компьютере.
Мы уже привыкли к тому, что все большее число задач, возникающих в нашей жизни, мы решаем, используя компьютер. Во-первых, это задачи, требующие громоздких вычислений. Во-вторых, это задачи, которые имеют несколько решений, среди которых необходимо выбрать одно решение, в некотором смысле лучшее. Кроме того, компьютер часто используется для хранения больших объемов информации, которая по мере необходимости извлекается из памяти компьютера по частям или целиком в виде, удобном для пользователя.
Но при решении всех этих задач компьютеру обязательно нужно сформулировать задачу во вполне определенном виде, а также указать последовательность действий, которые приведут к ее решению, причем эта последовательность действий также должна быть записана на специальном языке. Иначе говоря, для решения задачи на компьютере ее нужно специальным образом подготовить.
Методологический принцип решения задач на компьютере можно сформулировать как триаду «модель – алгоритм – программа». Любая практическая задача, как правило, формулируется вначале на естественном языке. Затем человек, пытающийся решить эту задачу, ищет закономерности, позволяющие получить результат, имея заданный набор исходных данных. Как правило, эти закономерности записываются в виде математических соотношений. Совокупность математических соотношений, описывающих данную задачу, называют ее математической моделью.
Поясним сказанное выше примером. Пусть необходимо решить такую задачу. В классе 32 мальчика и 24 девочки, а всего учащихся в классе 100. В какой системе счисления ведется счет и сколько мальчиков и девочек в классе в системе счисления с основанием 10?
1 этап – построение математической модели задачи. Обозначим через х основание неизвестной системы счисления. Тогда 3х+2 – число мальчиков в классе, 2х+4 – число девочек в классе, 1х2+0х+0 – число учеников в классе. В итоге получаем 3х+2+2х+4=х2 или х2-5х-6=0. Итак, моделью нашей задачи является квадратное уравнение х2 – 5х – 6=0.
2 этап – построение алгоритма решения задачи. Алгоритмом решения данной задачи будет являться алгоритм решения квадратного уравнения по известной формуле, которая и будет определять алгоритм решения задачи, если только зафиксировать порядок действий.
Выполнив эту программу для исходных данных р=-5, q=-6, получим результат х1=6, х2=-1. Поскольку в нашем случае основание системы счисления не может быть отрицательным числом, то получили, что основанием системы счисления должно быть число 6. Значит в классе 3*6+2=20 девочек и 2*6+4=16 мальчиков, а всего в классе 62=36 учеников, что верно так как 20+16=36.
Разработка алгоритма по его математической модели.
Когда модель построена и есть уверенность в ее соответствии условию решаемой задачи, необходимо разработать алгоритм решения, пользуясь полученной моделью. Часто одной и той же модели могут соответствовать несколько различных алгоритмов. Например, пусть моделью некоторой задачи является система линейных алгебраических уравнений. Но решить эту систему можно различными методами. Тогда можно сказать, что каждый метод решения системы линейных уравнений определяет свой конкретный алгоритм, хотя модель одна и та же.
Следующий шаг – это преобразование алгоритма в программу для компьютера, т.е. необходимо представить алгоритм в виде последовательности операторов некоторого языка программирования. После этого исходная задача готова для решения на компьютере, необходимо лишь задать начальные данные.
Вернемся к примеру предыдущего пункта и выполним 3 этап – представление алгоритма в виде программы. Запишем алгоритм в виде программы на языке Паскаль.
Алгоритмически неразрешимые задачи.
Неправильно было бы думать, что для любой задачи существует алгоритм ее решения. Известна задача древнегреческой математики – задача о трисекции угла, т.е. о делении угла на три равные части с помощью циркуля и линейки. Неразрешимость этой задачи была доказана в 19 веке алгебраическими методами. В этом примере речь идет о задаче, для которой не существует алгоритма решения в рамках фиксированного набора допустимых действий, в данном случае – построения с помощью циркуля и неразмеченной линейки. Однако отсюда не следует, что эту задачу нельзя решить, применяя какие-либо другие средства. Те же древние греки находили для этого хитроумные способы.
Есть также множество проблем, о которых мы и сейчас не можем сказать, разрешимы они или нет, и если разрешимы, то каким образом. Так известна гипотеза о том, что любое четное число представимо в виде суммы двух простых чисел. Но утверждение это пока не доказано, и не ясно, удастся ли его когда-либо доказать или опровергнуть.
Из сказанного выше вытекает, что для некоторых задач существует несколько алгоритмов их решения, для некоторых задач таких алгоритмов вообще не существует, и, наконец, есть задачи, для которых мы не знаем, существуют или нет алгоритмы их решения.