- •Лекции по 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. Толковый словарик
-
“Защита от дурака”
Одним из способов применения условий является проверка исходных данных. Это так называемая “защита от дурака”, которую желательно использовать в своих программах, чтобы предотвратить обработку заведомо неверных данных, а следовательно избежать глупых ошибок, потому что неверные данные никогда не влекут за собой верные результаты! Сообщение об ошибке должно быть лояльным, не оскорбляющим достоинство пользователя. Не нужно писать фразы, вроде: "Болван! Ты в своём уме? Условие прочти!!!". Такие фразы прикольно читать только впервый раз, потом это будет раздражать каждый раз, как случайно нажмёшь не ту клавишу.
Пример использования "защиты от дурака":
Write (’Введите трёхзначное число: ’);
Readln (a);
if (a < 100) or (a >= 1000)
Then begin
Writeln (’Вы ввели не трёхзначное число.’);
Writeln (’Будьте внимательны!!’);
Halt; { Оператор выхода из программы }
End;
{ введено правильное число, продолжаем работу. }
Здесь использован новый оператор halt. Он завершает выполнение программы.
"Защиту от дурака" надо использовать во всех мало-мальски серьёзных программах. Используйте её во всех своих программах, ведь вы потихоньку теряете статус начинающего программиста!
-
Вложенные условные операторы
Оператор, записанный в условном предложении после then или else, тоже может быть условным оператором. Так получаются вложенные условные операторы.
Например:
Program Maximal_of_3_numbers;
Var a, b, c : integer;
begin
write (’Введите три числа через пробел: ’);
readln (a, b, c);
write (’Максимальное число – ’);
if a > b
Then if a > c { Случай, когда a > b }
Then writeln (a)
Else writeln (c)
Else if b > c { Случай, когда a <= b }
Then writeln (b)
Else writeln (c) ;
End.
В этом примере оператор writeln(a) выполнится только в том случае, если а будет больше b, и a будет больше c.
-
Оператор выбора Case
Попробуйте самостоятельно решить такое задание:
Дан номер месяца m. Вывести на экран название этого месяца.
Если бы вы начали решать это задание, то столкнулись бы с необходимостью много раз использовать условный оператор:
if m = 1 then write (’Январь’);
if m = 2 then write (’Февраль’);
if m = 3 then write (’Март’);
и так далее.
В таких случаях значительно удобней использовать оператор выбора Case.
Формат записи оператора case:
Case <переменная> of
<список1 возможных значений> : <оператор1> ;
<список2 возможных значений> : <оператор2> ;
...
<списокN возможных значений> : <операторN> ;
else <операторN+1>
End
Здесь <список возможных значений> - одно или несколько значений, разделенные запятыми, которые может принимать <переменная>.
Оператор выбора Case работает так. Сначала компьютер берёт значение переменной, которая записывается после служебного слова case, и проверяет, входит ли она в <список1 возможных значений>. Если да, то выполняется <оператор1>, после чего выполнение оператора выбора заканчивается. В противном случае, компьютер проверяет, входит ли значение переменной в <список2 возможных значений>. Если да, то выполняется <оператор2>, после чего выполнение оператора выбора заканчивается. В противном случае проверка продолжается дальше до тех пор, пока есть списки возможных значений. Если значение переменной не вошло ни в один из этих списков, то выполняется <операторN+1>, записанный после слова else.
Как и в условном операторе, в операторе выбора строка со словом else и оператором может отсутствовать. Это будет укороченный вариант записи оператора выбора.
Вернёмся к списку возможных значений. В нём можно указывать не только отдельные числа, но и целые промежутки, например, следующие <списки возможных значений> идентичны, хотя записаны по разному:
1, 2, 3, 4, 7, 8
1..4, 7, 8
1..4, 7..8
8, 2..4, 1, 7
Вспомним задачу, сформулированной вначале. Смотрите, как просто она решается с оператором выбора!
Program All_months;
Var mesiac : integer;
Begin
Write (’Введите номер месяца: ’);
Readln (mesiac);
case mesiac of
1 : write (’Январь’);
2 : write (’Февраль’);
3 : write (’Март’);
4 : write (’Апрель’);
5 : write (’Май’);
6 : write (’Июнь’);
7 : write (’Июль’);
8 : write (’Август’);
9 : write (’Сентябрь’);
10 : write (’Октябрь’);
11 : write (’Ноябрь’);
12 : write (’Декабрь’);
else write (’Задан неверный номер месяца.’)
end { Если mesiac не совпал ни с одной переменной }
end.
Теперь сами попробуйте составить программу, которая по заданному номеру месяца выведет время года.
Ниже показан один из способов решения этой задачи. В нём продемонстрированы все особенности оператора выбора.
Program Vremena_goda;
Var mesiac : integer;
Begin
Write (’Введите номер месяца: ’);
Readln (mesiac);
case mesiac of
3, 4, 5: write (’Весна’);{Можно перечислить все возможные значения}
6 : write (’Лето’); { Можно указать только одно значение }
7 : write (’Лето’); { Можно указать только одно значение }
8 : write (’Лето’); { Можно указать только одно значение }
9..11 : write (’Осень’); { Можно задать промежуток }
1..2,12: write (’Зима’);
else write (’Задан неверный номер месяца.’)
{ Если mesiac не совпал ни с одной переменной }
end
end.
Остаётся добавить, что если в оператора case после двоеточия нужно указать более одного оператора, то надо использовать составной оператор.