- •Котов владислав викторович доцент, профессор кафедры робототехники и автоматизации производства, доктор технических наук
- •1.Введение в информатику
- •1.1.История развития информатики
- •1.2. Структура курса. Рекомендуемая литература
- •1.3.История развития вычислительной техники
- •2.Понятие информации
- •2.1.Информация и её свойства
- •2.2.Дискретный источник информации
- •2.3.Мера информации по Хартли
- •2.4.Мера информации по Шеннону
- •3. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- •3.1.Процессы сбора, передачи, обработки и накопления информации
- •3.2.Этапы обращения информации в информационно-измерительных и управляющих системах
- •4.Технические средства реализации информационных процессов
- •4.1.Структура персонального компьютера
- •4.2.Периферийное оборудование персонального компьютера
- •5.Программные средства реализации информационных процессов
- •5.1.Виды программного обеспечения
- •5.2.Операционные системы. Организация и средства человеко-машинного интерфейса в ос Windows
- •5.3.Прикладное программное обеспечение
- •6.Способы представления и хранения текстовой и числовой информации
- •6.1.Хранение информации в компьютере. Кодирование символьных данных. Кодовые таблицы ascii, ansi, koi-8
- •6.2.Знаковые и позиционные системы счисления. Правила перевода чисел из одной системы счисления в другую
- •6.3.Основные арифметические операции в двоичной системе
- •6.4.Булева алгебра. Основные операции и правила булевой алгебры
- •7.Алгоритмизация и программирование
- •7.1.Понятие алгоритма
- •7.2.Основные условные элементы для создания схем алгоритмов
- •7.3.Примеры простейших алгоритмов
- •8.Языки программирования высокого уровня. Основы языка Паскаль
- •8.1.Языки программирования высокого уровня
- •8.2.Запись программы на Паскале
- •8.3.Основные типы данных в Паскале
- •8.4.Структура Паскаль-программы
- •9.Оператор присваивания. Ввод-вывод в программах на Паскале
- •9.1.Оператор присваивания. Запись арифметических выражений
- •9.2.Процедуры ввода данных с клавиатуры
- •9.3.Процедуры вывода данных на экран
- •Условный оператор
- •9.4.Алгоритмы с ветвлением
- •9.5.Структура и синтаксис условного оператора
- •9.6.Задание логических выражений для передачи управления
- •9.7.Составные условия с использованием логических операторов
- •Операторы циклов с неопределённым числом повторений
- •9.8.Назначение операторов циклов. Циклы с пред- и постусловием
- •9.9.Структура и синтаксис оператора while
- •9.10.Структура и синтаксис оператора repeat … until
- •Оператор цикла с параметром
- •9.11.Цикл с параметром. Структура и синтаксис оператора for
- •9.12.Примеры программирования итерационных алгоритмов
- •Диапазонный тип данных. Массивы
- •9.13.Диапазонные типы данных
- •9.14.Массивы. Описание и использование массивов
- •Процедуры и функции
- •9.15.Структурный подход к разработке программы. Подпрограммы
- •9.16.Понятие подпрограммы, виды подпрограмм в Паскале.
- •9.17.Синтаксис объявления и использования процедур
- •9.18.Синтаксис объявления и использования функций
- •9.19.Примеры использования подпрограмм на Паскале
- •9.20.Параметры-значения и параметры-переменные
- •Строковый тип данных
- •9.21.Общие сведения о работе со строками символов
- •9.22.Процедуры и функции обработки строк
- •Работа с файлами
- •9.23.Понятие файла. Типы файлов в Паскале
- •9.24.Инициализация файловых переменных
- •9.25.Процедуры открытия файлов
- •9.26.Ввод-вывод данных в файл и общие подпрограммы для работы
- •Работа с графикой
- •9.27.Графический и текстовый режимы работы видеоадаптера
- •9.28.Инициализация графического режима
- •9.29.Основные средства библиотеки Graph для работы с графикой
- •Программное обеспечение и технологии программирования
- •9.30.Технология структурного программирования
- •9.31.Принципы проектирования программ «сверху-вниз» и «снизу-вверх»
- •9.32.Модульный принцип программирования
- •9.33.Технология объектно-ориентированного программирования
- •9.34.Основные критерии оценки качества программ
- •Базы данных
- •9.35.Общее представление о базах данных
- •9.36.Основные понятия систем управления базами данных
- •9.36.1.Классификация субд
- •9.36.2.Основные функции субд
- •9.37.Уровни представления данных
- •9.38.Основные модели данных
- •9.38.1.Понятие модели данных
- •9.38.2.Типы структур данных
- •9.38.3.Сетевая модель данных (смд)
- •9.38.4.Иерархическая модель данных (имд)
- •9.39.Реляционные базы данных
- •Домен 1 . . .. . Домен 2 . . . . . . . . .Домен 3 (ключ) . . . .Домен 4 . . . ..Домен 5
- •9.39.1.Достоинства и недостатки рмд
- •9.39.2.Операции реляционной алгебры
- •Локальные и глобальные сети эвм
- •9.40.Понятие о сетях эвм
- •9.41.Классификация сетей: локальные и глобальные сети эвм
- •9.42.Понятие топологии. Виды сетевых топологий
- •9.43.Информационные технологии, основанные на сетях
- •Методы защиты информации
- •9.44.Основы защиты информации и сведений, составляющих государственную тайну
- •9.45.Организационные методы защиты информации
- •9.46.Криптографическая защита информации
- •Экономические и правовые аспекты информационных технологий
- •9.47.Система стандартов на программную документацию
- •9.48.Виды программ и программных документов
- •9.49.Основные стадии и этапы разработки программ и программной документации
9.10.Структура и синтаксис оператора repeat … until
Имеет следующий синтаксис:
repeat оператор until условие_завершения;
В отличие от рассмотренного выше оператора while, данный оператор является циклом с постусловием. Это означает, что проверка условия осуществляется не до выполнения тела, а после. Следствием этого является тот факт, что тело цикла с постусловием обязательно выполнится хотя бы один раз, тогда как в цикле с предусловием тело может не выполниться ни разу.
Другим отличием оператора repeat…until является то, что входящее в его состав условие рассматривается как условие завершения цикла. То есть, если на очередной итерации результат вычисления условия оказывается равным true, цикл завершается. В противном случае управление вновь передается на тело цикла.
Пример. Алгоритм Евклида (с использованием цикла с постусловием)
Var
m, n, d, r : word;
Begin Write('Введите m: '); Read(m);
Write('Введите n: '); Read(n);
If m < n then Begin
r := m; m := n; n := r;
End;
If n > 0 then Repeat r := m mod n;
m := n;
n := r; Until n = 0;
d := m;
Writeln('d=',d);
End.
Раздел №12 (2 часа)
Оператор цикла с параметром
План:
• Цикл с параметром. Структура и синтаксис оператора for
• Примеры программирования итерационных алгоритмов
Оператор цикла с параметром
9.11.Цикл с параметром. Структура и синтаксис оператора for
Рассмотрим в качестве примера несложную задачу: найти сумму первых ста положительных целых чисел: S = 1 + 2 + 3 + … + 99 + 100.
Алгоритм решения может быть представлен в виде:
РИСУНОК
Переменная i играет в этом алгоритме двоякую роль: с одной стороны, она является счётчиком числа повторений цикла. При этом до начала цикла ей присваивается определённое начальное значение: i := 1; на каждой итерации её значение увеличивается на единицу i := i + 1; и, кроме того, очередная итерация выполняется лишь в том случае, если значение i не превысило конечное значение: i 100.
С другой стороны, переменная i представляет собой очередное слагаемое искомой суммы, поэтому именно она добавляется в теле цикла к переменной S, в которой и накапливается эта сумма.
Чтобы показать более наглядно различие двух этих сторон использования переменной i, слегка изменим условие задачи: найти сумму первых ста положительных нечётных чисел: S = 1 + 3 + 5 + … + 197 + 199. Пронумеруем слагаемые, входящие в сумму:
№ слагаемого |
1 |
2 |
3 |
… |
99 |
100 |
Слагаемое |
1 |
3 |
5 |
… |
197 |
199 |
Общая структура алгоритма останется той же, что и в предыдущем примере: необходимо «пробежаться» по всем слагаемым, с первого по сотое, и накапливать их кумулятивную сумму в переменной S. Точно так же, переменной i можно придать смысл счётчика числа повторов цикла (т.е. счётчика слагаемых), однако в выражении для накапливания суммы теперь нельзя просто использовать i, поскольку теперь значение слагаемого отличается от его порядкового номера. Рассматривая приведённую выше таблицу несложно заметить, что между номером слагаемого и его значением существует функциональная связь:
.
Таким образом, схема алгоритма для данного примера примет вид:
РИСУНОК
Точно так же, как и в предыдущем случае, здесь присутствует переменная-счётчик числа повторений, которой до первого попадания в цикл присваивается начальное значение, на каждой итерации производится приращение счётчика на единицу, и цикл повторяется до тех пор, пока счётчик не превысит некоторое конечное значение.
На практике довольно часто возникают задачи, аналогичные по структуре рассмотренным выше, т.е. задачи программирования циклических алгоритмов, для которых число повторений известно заранее. И хотя они могут быть запрограммированы с использованием изученных ранее циклов типа while или repeat..until, здесь целесообразнее использовать специальный оператор цикла, который в Паскале называется оператор цикла с параметром for. С его помощью реализуются циклы, количество повторений которых заранее известно или может быть определено до начала выполнения цикла.
В общем виде алгоритмическая структура этого оператора имеет вид:
РИСУНОК
Синтаксически оператор for имеет вид:
for переменная_цикла := нач_знач to конечн_знач do оператор;
Переменная цикла в процессе выполнения цикла принимает все возможные значения в диапазоне от начального до конечного, увеличиваясь на единицу по завершении очередной итерации. Начальное и конечное значения фактически определяют число повторений оператора, образующего тело цикла.
Существует еще одна форма оператора for:
for переменная_цикла := нач_знач downto конечн_знач do оператор;
В этом случае переменная цикла после каждой итерации не увеличивает, а уменьшает свое значение на единицу (предполагается, что ее начальное значение должно быть больше конечного).
Оператор for также относится к циклам с предусловием.
