- •Лекции по Turbo Pascal 7.0
- •1 Курс, «Информатика»
- •Интегрированная среда Turbo Pascal 7.0
- •Первый шаг
- •Создание нового файла
- •Набор и редактирование текста программы
- •Клавиши перемещения курсора
- •Клавиши для редактирования текста:
- •Сохранение и открытие программ
- •Запуск программы
- •Завершение работы
- •А теперь, когда вы уже знаете, как набирать и запускать программы на компьютере, начнём изучать язык паскаль.
- •Первая программа
- •Краткая история
- •Что такое программа?
- •Зарезервированные слова
- •Переменные
- •Константы
- •Стандартные математические операции
- •В информатике, как и в математике, на ноль делить нельзя!
- •Оператор присваивания
- •Пример программы
- •Операторы ввода и вывода.
- •Оператор ввода Readln
- •Оператор вывода Write
- •Самостоятельные задания
- •Работа с цифрами
- •Выделение цифр числа
- •Конструирование числа по его цифрам
- •Обобщение
- •Самостоятельные задания
- •Условный оператор
- •Что такое условие?
- •Укороченный вариант условного оператора
- •Составной оператор
- •Составные условия
- •“Защита от дурака”
- •Вложенные условные операторы
- •Оператор выбора Case
- •Самостоятельные задания
- •Стандартные типы переменных
- •Общий обзор стандартных типов.
- •Целые типы
- •Вещественные типы
- •Способ записи вещественных чисел
- •Вывод на экран вещественных чисел
- •Точность и диапазон вещественных чисел различных типов
- •Вещественные функции
- •Линейная запись математических выражений
- •Логический тип
- •Символьные типы
- •Стандартные функции для работы со строками
- •Стандартные функции для типа char
- •Подпрограммы
- •Зачем нужны подпрограммы?
- •Процедуры
- •Аргументы процедуры
- •Результаты процедуры
- •Функции
- •Самостоятельные задания
- •Цикл For
- •Руками не трогать!
- •Нахождение суммы
- •Нахождение произведения
- •Нахождение количества
- •Цикл While ... Do
- •Цикл Repeat ... Until
- •2.7. Самостоятельные задания
- •Цикл в цикле
- •Натуральные числа
- •Делители чисел
- •Самостоятельные задания.
- •Простые числа
- •Самостоятельные задания.
- •Наибольший общий делитель двух чисел.
- •Самостоятельные задания.
- •Наименьшее общее кратное двух чисел
- •Самостоятельные задания.
- •Массивы
- •Определение и примеры
- •Операции с элементами массива
- •Анализ информации в массиве
- •Рекуррентные соотношения
- •Самостоятельное задание
- •Последовательность Фибоначчи
- •Другие рекуррентные последовательности
- •Оптимизация программ
- •Задача про интеллигентного студента.
- •Самостоятельные задания
- •Оформление программ
- •Понятие модуля
- •Управление цветом
- •Управление звуком
- •Опрос клавиатуры
- •Управление курсором.
- •Дополнительные задачи и вопросы
- •Теоретические вопросы
- •Практические задачи
- •Условия
- •Ряды и рекуррентные последовательности
- •Просмотр всех команд меню
- •Команды меню File
- •Команды меню Edit
- •Команды меню Search
- •Команды меню Run
- •Команды меню Compile
- •Команды меню Debug
- •Команды меню Options
- •Команды меню Window
- •Команды меню Help
- •Синтаксические ошибки
- •Ошибки выполнения
- •Логические ошибки
- •Средства отладки
- •Пошаговый режим работы программы
- •Просмотр/изменение переменных
- •Окно Watch
- •1. Теоретическая часть
- •1.1. Понятие алгоритма и его свойства.
- •1.2. Культура программирования
- •1.3. Устройство компьютера и его компоненты.
- •1.4. Информация
- •1.5. Логика
- •1.6. Системы счисления
- •1.7. Арифметические действия с двоичными числами
- •1.8. Информационные взаимодействия – коммуникации
- •1.9. Информационная революция
- •1.10. Компьютеры и информационное общество.
- •1.11. Польза и опасности компьютеризации.
- •1.12. Киберфобия.
- •1.13. Компьютеры и будущее
- •1.14. Понятие информационного моделирования.
- •2. Толковый словарик
-
Самостоятельные задания
-
Составьте программу нахождения суммы двух чисел с использованием функции.
-
Составьте программу нахождения площади круга по заданному целому значению радиуса. Решите это задание двумя способами: с использованием процедуры; с использованием функцией. Обратите внимание на оформление программы, не забывайте, что подпрограммы должны только вычислять, но не выводить сообщений на экран.
-
Составьте процедуру поиска суммы цифр двузначного числа. Если задано не двузначное число, вернуть результат 0.
-
Составить функцию для поиска суммы цифр трёхзначного числа.
-
Циклы
Определение.
Цикл – это структура языка, которая предписывает многократное выполнение указанного оператора.
Говоря проще, цикл - это такой оператор, который заставляет компьютер многократно повторять некоторые действия. Образно это можно записать так:
ЦИКЛ 10 раз
начало цикла
write ('*');
конец цикла
В результате работы такой воображаемой структуры мы могли бы получить 10 звездочек на экране, потому что всё, что заключено между началом и концом цикла выполняется несколько раз. Все, что вне этих рамок - только один раз.
Например:
write ('<');
ЦИКЛ 5 раз
начало цикла
write ('Да-');
конец цикла
write ('>');
В результате выполнения этих операторов на экран напечатается следующее:
<Да-Да-Да-Да-Да->
Обратите внимание, что слово "Да" было напечатано 5 раз, а каждая из угловых скобок – только один раз. Почему именно так? Потому что оператор
write('Да-')
выполняется 5 раз, так как он находится внутри цикла, а операторы
write ('<');
и
write('>')
только один, так как он находится вне цикла.
Итак, всё, что находится внутри цикла (для наглядности эта область заключена в рамочку), выполняется несколько раз подряд. Всё что вне цикла – выполняется только один раз.
Однако в Паскале нет оператора цикла "N раз", зато есть три других:
For, While и Repeat (Для, Пока и Повторять).
Из них на наш цикл "N раз" больше всего похож цикл For, c которым мы сейчас и познакомимся.
-
Цикл For
Формат записи оператора цикла For:
For <переменная цикла>:=<начальное значение> to <конечное значение> do
begin
<Операторы>;
end
Примечание.
Операторные скобки begin и end обозначают, соответственно, начало и конец оператора цикла. Все операторы, заключенные между этими словами будут повторены несколько раз. Однако, если между begin и end находится только один оператор, то операторные скобки можно опускать. Но поначалу мы будем все равно их использовать, а для наглядности операторы цикла ещё и обводить рамочкой (но только на бумаге, на компьютере никаких рамочек конечно же рисовать не надо).
Познакомимся с принципом работы этого оператора на уже знакомом примере, который заставит компьютер напечатать 10 звёздочек:
program Zvezdy ;
var i : integer ;
begin
For i := 1 to 10 do
begin
write ('*');
end
end.
Этот цикл выполнится 10 раз и на экран будет выведено 10 звёздочек. Первая строка со словом For называется заголовком цикла. В нём содержится вся необходимая информация для организации цикла. Подробней и по-русски этот заголовок можно было бы записать так:
Для целой переменной i, которая вначале принимает значение 1, организуем цикл.
После каждого выполнения цикла переменная i будет увеличиваться на единицу, пока не примет конечного значения 10.
После этого цикл выполнится последний раз и больше выполняться не будет.
Начало операторов цикла
напечатать символ ('*')
Конец операторов цикла
Как видите, оператор цикла For не существует сам по себе, а организуется специально для какой-либо целой переменной, которая называется "переменной цикла" или "параметром цикла". Она автоматически увеличивает своё значение после каждого выполнения операторов цикла, пока не примет своего конечного значения. Когда это произойдёт, операторы цикла выполнятся последний раз и выполнение цикла закончится. Переменную цикла можно использовать внутри цикла как обычную переменную. Однако, ей нельзя ничего присваивать, ведь не зря же для неё организовали целый цикл! Организаторы сами следят за значением этой переменной…
В зависимости от начального и конечного значения параметра цикла, которые задаются в заголовке, цикл может выполнится то или иное количество раз. Например, если начальное и конечное значения совпадают, то цикл выполнится только один раз. Если же начальное значение превышает конечное, то цикл не выполнится ни разу! Вот так цикл!..
А сколько раз выполнится циклы со следующими заголовками:
for i := 5 to 9 do
for i := 0 to 8 do
for i := -1 to 10 do
for i := 100 to 200 do
for i := 0 to 0 do
Итак, ещё раз, запомните! Оператор цикла является замкнутой структурой, поэтому все, что не входит в этот оператор цикла, выполняется один раз! Например:
program For_Demo;
var i : integer;
begin
write ('<');
for i := 1 to 5 do
begin
write ('Да-')
end;
write ('>')
end.
Знакомый пример, не правда ли? Объясните, как будет выполняться эта небольшая программа и что будет выведено на экран.
Как вы уже заметили, <переменная цикла> – это любая переменная целого типа (например: integer, byte, word и др. целые типы). Её значение в цикле всё время изменяется. Сначала оно равно начальному значению, которое указывается в заголовке цикла, потом каждый раз увеличивается на единицу, пока не примет конечного значения, которое тоже указывается в заголовке. В самом цикле эта переменная может быть использована для каких-либо целей. Давайте составим программу, которая будет выводить значение этой переменной при каждом выполнении цикла, тогда мы сами сможем увидеть подтверждение теоретических умозаключений на практике.
program For_and_i;
var i : integer;
begin
for i := 1 to 5 do
begin
writeln (i)
end
end.
На экран напечатается 5 чисел (потому что этот цикл выполняется 5 раз).
1
2
3
4
5
Каждое число – есть значение переменной цикла при очередном выполнении тела цикла.
Можно придать этой программе некоторый практический смысл, если выводить на экран не только целые числа, но и их квадраты – получим таблицу квадратов первых пяти чисел. Смотрите, как изменится программа:
program Numbers_and_them_squares;
var i, s : integer;
begin
for i := 1 to 5 do
begin
write (i, '*', i);
s := i*i;
writeln (' = ', s)
end
end.
Вот что мы получим в результате работы программы:
1*1 = 1
2*2 = 4
3*3 = 9
4*4 = 16
5*5 = 25
Значение переменной цикла может использоваться и для более полезных действий, но ни в коем случае не может быть изменено её значение. В этом смысле параметр цикла можно сравнить с музейной диковинкой на которой висит табличка: