- •Лекции по 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. Толковый словарик
-
Самостоятельные задания.
-
Замените в процедуре цикл For на While.
-
Переделайте эту программу так, чтобы она искала сумму всех делителей числа.
-
* измените эту программу и процедуру так, чтобы вводилось два числа, а выводились только их общие делители, то есть такие числа, на которые делится и первое число, и второе.
-
Простые числа
Рассмотрим пример из предыдущего пункта, при М=97. Что в этом случае выведет на экран только что составленная нами программа? Два числа: 1 и 97. Как известно, те числа, которые делятся только на единицу и на себя называются простыми. Поэтому 97 – простое число. Если число имеет больше двух делителей, то оно называется составным.
Вы знаете из математики, что простых чисел существует бесконечно много (логично предположить, что составных чисел тоже бесконечно много). Вот первые 10 простых чисел: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. Обратите внимание, что число 1 простым не является (и к составным его тоже не относят). Простые числа играют в алгебре очень важную роль. Поэтому давайте составим функцию, которая определяет, является ли аргумент простым числом.
Как составить такую функцию? Здесь, в отличии от предыдущего примера, нам нужно будет не выводить делители на экран, а считать их. И по числу найденных делителей уже можно будет определить: является число простым или нет. Как мы только что выяснили, простое число имеет всего два делителя. Функция будет иметь результат логического типа (boolean): True – если аргумент простое число и False в обраттном случае.
Вот сама программа с функцией для поиска простого числа.
Program Prostota;
Var M : integer;
Function Prostoe (p : integer) : boolean;
var i, s : integer;
begin
s := 0;
For i := 1 to M do
If p mod i = 0
Then s := s + 1;
prostoe := s = 2 { 7 }
end;
Begin
Write (’Введите число М: ’);
Readln (M);
If prostoe (M)
Then Writeln (’Это число простое.’)
Else Writeln (’Это число составное.’);
Writeln (’Нажмите ENTER для выхода.’);
Readln
End.
-
Самостоятельные задания.
-
Измените программу так, чтобы она правильно работала с начальным данным 1.
-
Измените функцию так, чтобы она работала быстрее.
-
Составьте программу, которая найдет первые М простых чисел (число М вводится с клавиатуры).
-
Наибольший общий делитель двух чисел.
НОД двух чисел А и В – это макимальное число, на которое делится и А, и В.
Например:
НОД (14, 21) = 7, НОД (16, 24) = 8.
Давайте составим процедуру, для нахождения НОД двух чисел. Как это сделать?! Подумайте, прежде чем читать дальше! Ещё раз внимательно прочитайте определение.
Так как найденный делитель должен быть общим, то на него должно делиться и первое число, и второе. Кроме того, нам нужен максимальный такой делитель. Если мы будем перебирать все общие делители в возрастающем порядке, то интересующий нас делитель будет последним. Переведём всё сказанное с русского языка на Паскаль:
Procedure NOD (a, b : integer; var rez : integer);
Var i : integer;
Begin
For i := 1 to a do
If (a mod i = 0) and (b mod i = 0)
Then rez := i;
End;
Составьте самостоятельно программу, которая будет использовать эту процедуру.