- •Конспект лекций по информатике
- •Организация данных в эвм и основы программирования
- •1. Основные понятия языка программирования паскаль
- •1.1. Структурное программирование
- •1.2. Основные символы языка
- •1.3. Элементы языка
- •1.4. Интегрированная среда turbo pascal
- •1.5. Структура программы в turbo pascal
- •1.6. Определение типов
- •1.7. Операторы в программе
- •1.7.1. Операторные скобки
- •1.7.2. Операторы ввода
- •1.7.3. Оператор присваивания
- •1.7.4. Условный оператор
- •1.7.5. Пример простой программы
- •1.7.6. Оперетор безусловного перехода
- •1.8. Организация циклов
- •1.8.1. Использование операторов условного и безусловного перехода
- •1.8.2. Цикл с параметром
- •1.8.3. Цикл с предусловием - цикл while
- •1.8.4. Цикл с постусловием - цикл repeat
- •1.9. Оператор выбора варианта
- •1.10. Расположение операторов в программе
- •1.11. Концепция типов данных
- •2. Стандартные простые типы
- •2.1 Целый тип
- •2.1.1. Операции над данными целого типа:
- •2.2. Действительный тип
- •2.2.1. Операции над данными действительного типа:
- •2.3. Логический тип
- •Var p, q, r : Boolean;
- •2.3.1. Алгебра логики в Паскале
- •2.3.2. Законы алгебры логики в Паскале
- •2.4. Символьный тип
- •2.4.1. Символьные строковые константы
- •3. Нестандартные простые типы (определяемые пользователем)
- •3.1. Перечисляемый тип
- •3.2. Ограниченный тип (диапазон, интервал)
- •4. Процедуры и функции
- •4.1. Описание процедур
- •4.2. Стандартные процедуры
- •4.3. Описание функций
- •4.4. Стандартные функции
- •4.5. Итерация и рекурсия
- •4.6. Побочный эффект рекурсии
- •4.7. Предварительное описание (ссылки вперед)
- •5. Регулярные типы
- •5.1. Одномерный массив, или переменные с индексами
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •2. Сортировка выбором
- •3. Метод Шелла
- •4. Метод Хoopа
- •5.2. Многомерные массивы
- •5.3. Упакованные массивы
- •5.4. Строки
- •6. Множественные типы
- •6.1. Свойства множеств
- •6.2. Операции над множествами
- •7. Комбинированные типы
- •7.1. Описание записей и действия с ними
- •7.2. Оператор присоединения.
- •7.3. Записи с вариантами
- •8. Типизированная константа
- •8.1. Простая типизированная константа
- •8.2. Структурированная (сложная) типизированная константа
- •8.2.1. Типизированная константа массива
- •8.2.2. Типизированная константа записи
- •8.2.3. Типизированная константа множества.
- •9. Преобразование типов
- •9.1. Неявные преобразования типов
- •9.2. Использование стандартных функций для преобразования
- •9.3. Явные преобразования типов
- •9.5. Совместимость типов
- •10. Файловые типы
- •10.1. Определение файлового типа
- •10.2. Структура файла
- •10.3. Имя файла
- •10.4. Описание файлового типа
- •10.5. Файловая переменная
- •10.6. Операции над файлами
- •10.7. Типизированные файлы
- •10.8. Текстовые файлы
- •10.9. Нетипизированные файлы
- •10.10. Стандартные файлы inpuTиOutput
1.8. Организация циклов
Большинство задач, решаемых на ЭВМ, невозможно представить в виде последовательности простых вычислений; часто приходится организовывать повторяемость одних и тех же вычислений.
1.8.1. Использование операторов условного и безусловного перехода
1) Искусственно вводим счетчик числа шагов цикла
2) Проверяем условие окончания циклических расчетов
3) Если надо продолжить, увеличиваем значение счетчика
Задача.Вычислить таблицу квадратов и корней целых чисел от 1 до 100.
Здесь счетчиком чисел может служить само число. Дадим ему имя N.
Использовать операторы условного перехода в программе крайне не желательно!
1.8.2. Цикл с параметром
Если число повторений цикла известно, используется цикл FOR, для которого нет необходимости принудительно увеличивать значение параметра цикла. Такое увеличение производится автоматически.
Общий вид оператора цикла с параметром:
А) Если начальное значение параметра меньше конечного, то используется форма вида:
FOR I: = M TO N DO оператор;
Б) Если начальное значение параметра цикла больше конечного, то используется форма вида:
FOR I: = N DOWNTO M DO оператор;
MиN- выражения задающие начальное и конечное значения
параметра I,
А - простой или составной оператор.
Если после слова DOнеобходимо записать несколько операторов, то следует воспользоваться составным операторомBEGINоператор1;
оператор2;
оператор3
END;
Параметр цикла не может быть вещественным(действительным), а только целым или другим типом, который можно пронумеровать и сосчитать. Шаг всегда равен 1 или –1. Задать другой шаг нельзя!
Пример(тот же).
For n :=1 to 100 do
Writeln(‘n=’,n,’sqr(n)=’,sqr(n),’sqrt(n)=’,sqrt(n));
С помощью этого цикла процедура WRITELNбудет последовательно выполняться для следующих значений переменнойN: 1,2,…,100.
Для циклов FORнет необходимости следить за их завершаемостью. Поскольку множество значений, которое присваивается параметру цикла, конечно, то после конечного числа выполнений тела цикла весь цикл обязательно завершится.
Ограничения.
Значения параметра цикла, начального и конечного значений параметра цикла изменять внутри цикла нельзя.
Войти в цикл можно только через его начало, а выйти- либо при исчерпании значений параметра цикла, либо при выполнении оператора перехода GOTO по метке, расположенной вне данного цикла. При нормальном выходе из цикла значение его параметра равно конечному значению.
Итак, оператор цикла с параметром позволяет осуществить последовательный перебор значений параметра, но с приращением равным 1. В том случае, если шаг просмотра отличен от единицы или заранее не известно количество повторений тела цикла, необходимо применять один из двух других видов операторов цикла: с предусловием или с постусловием.
1.8.3. Цикл с предусловием - цикл while
Пример. Составить таблицу квадратов и квадратных корней для чисел от 1 до 100.
N:=1 ;
While n<=100 do
Begin
Writeln (‘n=’,n,’sqr(n)’,sqr(n),’sqrt(n)’,sqrt(n));
N: =N+1
End;
В общем случае данный оператор цикла записывается так:
WhileусловиеDOоператор;
Правило его выполнения следующее: оператор выполняется до тех пор, пока остается истинным условие цикла. Как только значение условия становится ложным, цикл прекращает выполняться. Если значение условия ложно перед первым выполнением цикла, то он не выполняется ни разу. Обратите внимание на то, что после слова DО может стоять только один оператор, поэтому чаще всего после словаDOстоит составной оператор.
Приведенный в примере оператор WHILEработает так. Первоначальное значение переменнойNUMBERравно 1. Оно задается оператором присваивания. Затем проверяется условие, которое в данном случае имеет вид:N<=100. Знак <= означает “ меньше или равно”. Естественно, что условие 1<= 100 истинно, поэтому выполняется оператор стоящий после словаDO. Этот оператор называется телом цикла. Он вычисляет и выдает на печать значения квадрата и квадратного корня числа 1, а также увеличивает значение переменной на единицу. Теперь ее значение равно двум, условие цикла остается истинным, и цикл выполняется еще раз. Последний раз цикл будет выполняться для значенияn=100. Условие 100<=100 истинно, и цикл выполняется. Внутри цикла происходит очередное увеличение переменнойNна 1, и ее значение становится равным 101. Очередная проверка условия цикла дает значение условия ложное, и выполнение цикла прекратится. Таким образом, данный цикл выдает значения квадратов и квадратных корней для чисел от 1 до 100 включительно.
Выход из цикла осуществляется, когда условие перестает выполняться, значит можно задать цикл, который вообще ни разу не будет выполняться (поставить заведомо ложное условие).