
- •Лекции по 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. Толковый словарик
2.7. Самостоятельные задания
Выполните каждое задание тремя способами, используя сначала цикл For, потом While, затем Until.
-
Вывести на экран 22 звёздочки в ряд.
-
Дано число N. Вывести на экран N звёздочек в ряд.
-
Вывести на экран все нечетные чисел из интервала от 1 до 30.
-
Вывести на экран все нечетные чисел из интервала от 1 до 30 в обратном порядке.
-
Найти сумму первых 10 чётных чисел.
-
Найти количество двузначных чисел, у которых первая цифра больше второй.
-
Найти произведение тех чисел от 1 до 50, которые кратны 17.
-
Цикл в цикле
В теле цикла могут быть самые различные операторы. Мы уже познакомились со случаем, когда внутри цикла используется условный оператор. Сейчас мы познакомимся с более сложным и более интересным вариантом, когда внутри одного цикла находится другой цикл.
Начнём знакомство с составления программы, которая выводит на экран числа от 10 до 29. Выпишем сначала все эти числа в ряд:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Посмотрите внимательно! Замечаете закономерность? Сначала увеличиваються единицы от 0 до 9, при этом значение десятков не меняется. Только когда перебор единиц завершён, десятки увеличились на 1. После этого опять пошли плясать подряд единицы.
Давайте отразим поведение десяток и едениц в составляемой программе. В переменной a – у нас будут десятки, в b – единицы:
for
a := 1 to
2 do
for b := 0 to 9 do
begin
s := a*10 + b;
writeln (s)
end;
Вот они: вложенные циклы! Как только начал выполнение первый цикл “для а”, тут же началось выполнение цикла “для b”. И пока этот внутренний цикл не выполнится (в маленьком прямоугольнике), внешний цикл не продолжит выполнение.
Как вы думаете, сколько всего раз выполниться содержимое маленького прямоугольника? А содержимое большого?
Попробуйте на основе этого примера самостоятельно составить программу, которая выведет на экран числа от 27 до 49, причём чтобы единицы принимали только значения от 7 до 9. То есть на экран должны буть выведены следующие числа:
27 28 29
37 38 39
47 48 49
Теперь несколько небольших заданий на эту тему.
Сколько раз выполниться оператор writeln внутри следующих циклов:
for i := 1 to 5 do
for
j := 5 to
10 do
begin
writeln (i+j)
end;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 5 do
while
a <= 10 do
a := a + 1;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 10 do
while
a <= 20 do
a := a + 1;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 20 do
while
a <= 10 do
a := a + 1;
Найти все двузначные числа, которые делятся на сумму своих цифр. Решить, используя вложенные циклы.
Натуральные числа
В этой главе рассматриваются свойства натуральных чисел: делители чисел, простые числа, наибольший общий делитель и наименьшее общее кратное.
-
Делители чисел
Решим такое задание:
Дано число М, вывести на экран все его делители.
Как решать такое задание? Для начала надо вспомнить, что является делителем числа. Как известно, делителем числа А называют такое число В, что А делится на В без остатка. Например, делителями 12 являются числа:
1, 2, 3, 4, 6 и 12.
В каком промежутке находятся делители любого числа? В промежутке от 1 до самого числа. Следовательно, для поиска делителей числа М надо проверить все числа от 1 до М. И для каждого перебираемого числа проверять: делится ли на него М без остатка? Если да, то вывести его на экран.
Для того чтобы проверить, делится ли одно число на другое без остатка, надо найти этот остаток и сравнить его с нулём. Понятно, что если остаток равен 0, то первое число делится на второе.
Чтобы перебрать все числа из промежутка, надо использовать цикл. Здесь удобней всего использовать цикл For, так как нам заранее известно сколько раз выполнится цикл (М раз).
Реализуем сказанное выше в процедуре, вставленной в программу.
Program Deliteli_Chisla;
Var M : integer;
Procedure Deliteli (M : integer);
var i : integer;
begin
For i := 1 to M do
If M mod i = 0 { Если М делится на i }
Then write (i, ’ ’);
writeln;
end;
Begin
Write (’Введите число М: ’);
Readln (M);
Writeln (’Его делители следующие:’);
Deliteli (M);
Writeln ;
Writeln (’Нажмите ENTER для выхода.’);
Readln
End.