
- •Лекции по 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. Толковый словарик
-
Самостоятельные задания
Во всех заданиях используйте «защиту от дурака», если это уместно.
-
Составить программу, которая запрашивает два положительных числа и находит наибольшее.
-
Дано два чётных числа. Вывести сначала то, что меньше, потом то, что больше.
-
Найти сумму цифр введенного трёхзначного числа.
-
Дано два целых числа: a, b. Найти:
-
min (a, b) ;
-
max (a+b, a–b) ;
-
min (a*b, a+b, 2*a–b) .
-
Даны длины трёх отрезков. Определить, можно ли из них составить треугольник.
-
Ввести с клавиатуры дату (день, месяц, год), записать ее, назвав месяц словами. Например: Введите день месяц год через пробел: 22 9 1978 Это 22 сентября 1978 года!
-
Придумать интересное задание на использование оператора case.
-
Стандартные типы переменных
-
Общий обзор стандартных типов.
-
До сих пор мы работали только с переменными целого типа. Сейчас мы кратко познакомимся со всеми стандартными типами. Более подробно они будут рассмотрены далее. В нижеследующей таблице приведены характеристики всех стандартных типов.
Таблица 5. Стандартные типы
Вид типа |
Имя типа |
Диапазон возможных значений |
Объём памяти |
Значащих цифр |
Целые типы |
Byte |
0 … 255 |
1 байт |
- |
Shortint |
-128 … 127 |
1 байт |
- |
|
Word |
0 … 65535 |
2 байта |
- |
|
Integer |
-32768 … 32767 |
2 байта |
- |
|
Longint |
-2147483648…2147483647 |
4 байта |
- |
|
Веществен-ные типы |
Single |
1.5e-45 … 3.4e38 |
4 байта |
7 – 8 |
Real |
2.9e-39 … 1.7e38 |
6 байт |
11-12 |
|
Double |
5.0e-324 … 1.7e308 |
8 байт |
15-16 |
|
Extended |
3.4e-4932 … 1.1e4932 |
10 байт |
19-20 |
|
Comp |
-263 … 263-1 |
8 байт |
целые числа |
|
Логический тип |
Boolean |
False и True |
1 байт |
- |
Символьные типы |
Char |
один любой символ |
1 байт |
- |
String |
Строка символов |
256 байт |
- |
-
Целые типы
Для разных целей нужны разные диапазоны возможных значений. Скажем, если в переменной хранится возраст человека в годах, то для хранения этого значения вполне достаточно интервала от 0 до 150. Для того чтобы разумно распределить память компьютера используют различные целые типы.
-
Тип byte
Переменная этого типа может принимать значения от 0 до 255. Если вы попробуете присвоить ей большее значение, то компьютер вместо этого значения возьмёт остаток от деления на 256. Это происходит из-за того, что в представлении компьютера числа идут «по кругу» и после 255 идёт 0. Эmоm нюанс иллюстрирует программа, которая пытается прибавить к 250 число 10.
Program Byte_Example;
Var b : byte;
Begin
b := 250;
writeln (b);
{$R-} { Выключить проверку границ, см. ниже }
b := b + 10;
writeln (b);
End.
На экране будут напечатаны два числа: 250 и 4. На самом же деле, 250+10=260. Это число в переменной типа byte компьютер запомнить не может, потому записывает 260 mod 256 = 4. Эти опасные случаи надо учитывать, создавая свои программы.
Впрочем, компьютер может сам следить за этим. Вы наверное уже обратили внимание на строку {$R–}. Это директива компилятору. Она используется для того, чтобы компилятор знал каким способом компилировать программу. В данном случае он отключает проверку на превышения границ. Если вместо этого написать {$R+}, то программа напечатает только одно число 250, после чего компьютер выдаст сообщение об ошибке: "Range check error" – превышение границ. Это позволяет избежать ошибок связанных с переполнением, однако при такой проверке программа работает немного медленней.
Так зачем же надо использовать тип byte, если он имеет такой маленький диапазон значений? Ответ прост: для экономии памяти. Переменная такого типа занимает в памяти компьютера всего 1 байт.
-
Тип shortint
Этот тип также позволяет сохранять только 256 разных целых чисел, но уже и с отрицательными значениями. Его диапазон от –128 до 127. В памяти компьютера этот тип также занимает один байт. При переполнении (попытке записать число, выходящее за диапазон возможных значений) компьютер начнёт считать от –128. Например, в его «арифметике»: 127 + 1 = –128, поэтому:
127 + 10 = (127+1) + 9 = –128 + 9 = –119.
Имейте это ввиду!
-
Тип word
Если целой переменной выделить не 1 байт, а 2 байта, то она сможет принимать в 256 раз больше разных значений, то есть числа от 0 до 65535 (65536 = 2562). При попытке присвоить такой переменной большее значение, будет использован лишь остаток от деления на 65536.
-
Тип integer
Integer – первый тип, с которым мы познакомились. Уже упоминалось, что он позволяет хранить числа от –32768 до 32767. Для этого типа есть даже специально определённая константа maxint, которая хранит максимальное целое число, представимое этим типом. Попробуйте выполнить:
Program Maxint_Demo;
begin
Writeln (maxint); { Напечатает 32767 }
end.
Однако избавиться от переполнения условием
if a > maxint
Then ... ...
невозможно, так как если переменная a имеет тип integer, то она не может быть больше, чем maxint. А при попытке записи большего значения получится неверный результат. Поэтому если ваша программа выдаёт заведомо неверный ответ (слишком маленький или даже отрицательный), первым делом проверьте, не происходит ли переполнения. Для контроля ставьте автоматическую проверку переполнения. Если в самом деле причина в этом, то задайте другие начальные данные или используйте целый тип longint.
-
Тип longint
Это целый тип, который работает с самым большим диапазоном
от –2147483648 до 2147483647
Максимальное значение хранится в константе maxlongint. Этого диапазона хватает для многих практических целей, но для хранения переменной этого типа необходимо уже 4 байта.