- •Для школьников,студентовИ начинающих 1999 с,н.Лукин __________________________________________________________ Все права защищены ©
- •Оглавление
- •Часть I. Необходимые сведения о компьютере и программе 8
- •Часть II. Программирование на Паскале – первый уровень 29
- •Часть III. Программирование на Паскале – второй уровень 102
- •Часть IV. Работа в Паскале на компьютере 158
- •От автора
- •Предисловие
- •Кому нужна эта книга?
- •Почему Паскаль?
- •Какой из Паскалей?
- •Краткое содержание с рекомендациями
- •Часть III.Программирование на Паскале – второй уровень. Цели этой части:
- •Часть I. Необходимые сведения о компьютере ипрограмме
- •Первое представление о компьютере и программе
- •Что умеет делать компьютер
- •Что такое компьютер. Первое представление о программе.
- •Как человек общается с компьютером
- •Программа и программирование
- •Список команд. Командный и программный режимы
- •Последовательность работы человека с роботом
- •Что важно знать о программе
- •Понятие о процедуре. Может ли робот поумнеть?
- •Программа для компьютера на машинном языке
- •Языки программирования
- •Пример настоящей программы для компьютера на языке Лого
- •А теперь напишем программу:
- •Последовательность работы программиста на компьютере
- •Основные приемы программирования
- •Устройство и работа компьютера
- •Как устроен и работает компьютер
- •Порядок обмена информацией между устройствами компьютера
- •Устройство и размеры оперативной памяти
- •Взаимодействие программ в памяти
- •Внешние устройства компьютера
- •Устройства ввода
- •Устройства вывода
- •Внешняя память
- •Кодирование информации в компьютере
- •Часть II. Программирование на Паскале – первый уровень
- •Простые (линейные) программы. Операторы ввода-вывода. Переменные величины
- •Процедура вывода Write
- •8 'Котят' 3*3 'щенят'
- •Первая программа на Паскале
- •Выполняем первую программу на компьютере
- •Процедура вывода WriteLn. Курсор
- •Переменные величины. Оператор присваивания
- •Описания переменных (var)
- •Что делает оператор присваивания с памятью
- •Оператор присваивания меняет значение переменной величины
- •Имена переменных
- •Математика. Запись арифметических выражений
- •Вещественные числа в Паскале
- •Три совета
- •5. Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными, чтобы получить результат.
- •Операторы ввода данных ReadLn и Read.
- •Интерфейс пользователя
- •Строковые переменные
- •Диалог с компьютером
- •Константы
- •Разветвляющиеся программы
- •Условный оператор if или как компьютер делает выбор
- •Правила записи оператора if
- •Составной оператор
- •Ступенчатая запись программы
- •Вложенные операторыif. Сложное условие в операторе if. Логические операции
- •Символьный тип данных Char
- •Оператор варианта case
- •Циклические программы
- •Оператор перехода goto. Цикл. Метки
- •Выход из цикла с помощьюif
- •Оператор циклаrepeat
- •Оператор цикла while
- •Отличия операторов repeat и while
- •Оператор цикла for
- •Типичные маленькие программы
- •Вычислительная циклическая программа
- •Роль ошибок
- •Счетчики
- •Сумматоры
- •Вложение циклов в разветвления и наоборот
- •Вложенные циклы
- •Поиск максимального из чисел
- •Процедуры
- •Компьютер звучит
- •Простейшие процедуры
- •Программа 1
- •Программа 2
- •Программа 3
- •Процедуры и операторы
- •Стандартные процедуры Halt и Exit
- •Графика
- •Стандартные модули
- •Стандартный модуль Graph, текстовый и графический режимы
- •Текстовый и графический режимы
- •Переключение между текстовым и графическим режимами
- •Рисуем простейшие фигуры
- •Работа с цветом. Заливка. Стиль линий и заливки
- •Используем в рисовании переменные величины
- •Использование случайных величин при рисовании
- •Движение картинок по экрану
- •Создаем первую большую программу
- •Постановка задачи
- •Программирование по методу “сверху-вниз”
- •Сначала – работа над структурой программы
- •Зачем переменные вместо чисел
- •Записываем программу целиком
- •Порядок описания переменных, процедур и других конструкций Паскаля
- •Управление компьютером с клавиатуры. Функции ReadKey и KeyPressed
- •Буфер клавиатуры
- •Гетерархия. Задание на игру “Торпедная атака”
- •Часть III. Программирование на Паскале – второй уровень
- •Алфавит и ключевые словаПаскаля
- •Алфавит
- •Ключевые слова
- •Использование пробела
- •Работа с разными типами данных Паскаля
- •Список типов
- •Комментарии к списку типов
- •Числовые типы
- •Массивы
- •Переменные с индексами
- •Одномерные массивы
- •Двумерные массивы
- •Какие бывают массивы
- •Определения констант
- •Типизированные константы
- •Придумываем типы данных
- •Логический тип Boolean
- •Перечислимые типы
- •Ограниченный тип (диапазон)
- •Действия над порядковыми типами
- •Символьный тип Char. Работа с символами
- •Строковый тип String. Работа со строками
- •Множества
- •Расположение информации в оперативной памяти. Адреса
- •Процедуры и функции с параметрами
- •Процедуры с параметрами
- •Функции
- •Подпрограммы. Локальные и глобальные переменные
- •Массивы как параметры
- •Параметры-значения и параметры-переменные
- •Индукция. Рекурсия. Стек
- •Сортировка
- •Строгости Паскаля
- •Структура программы
- •Структура процедур и функций
- •Выражения
- •Совместимость типов
- •Форматы вывода данных
- •Переполнение ячеек памяти
- •Дерево типов
- •Синтаксисические диаграммы Паскаля
- •Другие возможности Паскаля
- •Работа с файлами данных
- •Вставка в программу фрагментов из других программных файлов
- •Модули программиста
- •Дополнительные процедуры и функции модуля Graph
- •Копирование и движение областей экрана
- •Вывод текста в графическом режиме
- •Управление цветом в текстовом режиме (модульCrt)
- •Работа с датами и временем (модульDos)
- •Нерассмотренные возможности Паскаля
- •Миг между прошлым и будущим
- •Часть IV. Работа в Паскале на компьютере
- •Что нужно знать и уметь к моменту выполнения первой программы?
- •Порядок работы в Паскале
- •(1) Запуск Паскаля
- •(2) Начало работы. Ввод программы. Выход из Паскаля
- •(3) Сохранение программы на диске. Загрузка программы с диска
- •(4) Выполнение программы
- •(5) Исправление ошибок. Отладка программы.
- •Пошаговый режим
- •Работа с окнами пользователя и отладчика
- •Отладка больших программ
- •Работа с несколькими окнами.
- •Копирование и перемещение фрагментов текста
- •Обзор популярных команд меню
- •Создание исполнимых файлов (exe)
- •Приложения. Справочный материал п1. Как вводить программу в компьютер или работа с текстом в текстовом редакторе
- •Работа с одной строкой текста
- •Работа с несколькими строками
- •Собственно работа с несколькими строками.
- •П2. Файловая система магнитного диска
- •Имена файлов и каталогов
- •Пример структуры каталогов на диске
- •Логические диски. Путь (дорожка) к файлу
- •П3. Список некоторых операций, процедур и функций Паскаля
- •Математика
- •Модуль crt
- •Модуль Graph
- •Модуль dos
- •П5. Решения заданий
- •П6. Список литературы
- •П7. Предметный указатель
Работа с несколькими строками
Ваша задача – ввести такой текст из нескольких строк:
В небе
Облака из серой ваты
Сыровато-сероваты,
Не беда - ведь я привык.
В луже
Эта вата намокает
И волнуясь пробегает
Под водою мой двойник.
Чтобы знать, как реагировать на неожиданности, нужно перед тем, как начать нажимать клавиши, проглядеть не очень внимательно дальнейший материал вплоть до конца приложения П1.
Ввод нескольких строк.Как сделать так, чтобы, введя слова «в небе», следующие слова начать с новой строки? Для этого нужно нажать клавишуEnter, по-другомуReturn, по-другому «Клавиша ввода». Курсор перепрыгнет в начало следующей строки. Введя вторую строку, снова нажмите на клавишу ввода и так далее. Нажатие клавиши ввода - единственный способ в текстовом редакторе Паскаля начать следующую строку. Клавиша перемещения курсораздесь не поможет.
А теперь введите все восемь строк задания.
Перемещение курсора по экрану.При помощи четырех клавиш перемещения курсора потренируйтесь перемещать курсор куда только можно. Вы скоро обнаружите, что курсор можно свободно перемещать только там, где имеется текст. Ни правее, ни ниже введенного текста курсор переместить не удается. Поначалу вам это может показаться непривычно и неприятно, и вы захотите расширить поле действия курсора. Удовлетворить вашу прихоть довольно легко.
Введенным текстом считаются не только буквы, но и пробелы. Доведите курсор до правого края строки и нажмите несколько раз на пробел. У вас в этой строке образовалось пустое поле, по которому свободно может ходить курсор. Так вы можете сделать во всех строках.
А если вы хотите переместить курсор ниже текста? Подведя курсор в правый край самой нижней строки, нажмите на клавишу ввода несколько раз. У вас ниже текста образовалось несколько пустых строк, по которым вверх-вниз может свободно ходить курсор. Все эти строки вы можете, если уж вам так хочется, заполнить пробелами. Вот у вас и получится ниже текста спортплощадка для курсора.
Я назвал это прихотью, так как при вводе текста это никогда не бывает нужно. Но то, что вы сейчас проделали, вам полезно для свободной ориентации на листе.
Собственно работа с несколькими строками.
А теперь вам полезно выполнить несколько заданий.
Чтобы вставить пустые строкимежду строчкой «Не беда - ведь я привык.» и строчкой «В луже», поставьте курсор в конец первой из этих строк или в начало второй и несколько раз нажмите клавишу ввода.
А как теперь убрать эти пустые строки? Поставьте курсор в начало самой верхней из пустых строк и несколько раз нажмитеDelete.
Как разделить строку на две части? Например, вместо «Не беда - ведь я привык.» нужно получить
Не беда –
ведь я привык.
Поставьте курсор на букву "в" и нажмите клавишу ввода.
А как слить эти две строки? Поставьте курсор в правый конец верхней из этих строк и нажмитеDeleteодин или несколько раз, пока строки не сольются.
Невидимые символы. Все эти правила могут показаться запутанными и не имеющими внутренней логики. А логика есть. И если вы ее поймете, то и правил запоминать не нужно. Вот она:
Нажатие на клавишу ввода вызывает появление на экране в том месте, где был перед нажатием курсор, специального невидимого символа, точно так же, как нажатие на клавишу пробела вызывает появление невидимого символа - пустого места. Обозначим для удобства символ клавиши ввода - .
Рассмотрим с новой точки зрения действие различных клавиш:
Нажатие на любую буквенную клавишу или пробел вызывает вставку в текст на место курсора соответствующей буквы или пробела, а вся правая часть текста сдвигается вправо.
Нажатие на клавишу ввода вызывает перемещение вниз на одну строку всего текста, начиная от курсора правее и ниже, причем правая часть текста в строке, где был курсор, перемещается не только вниз, но и в начало следующей строки. Отсюда видно, что в текстовом редакторе Паскаля строка кончается обязательно символом . Это не относится к тем текстовым редакторам, которые переводят строку автоматически. Кроме как в конце строки, символнигде встречаться не может.
Клавиша Deleteстирает любой символ, на котором стоит курсор, будь то буква, пробел или. Стирание символа уничтожает не только сам символ, но и его действие. Поэтому, стерев, мы выполняем действие, обратное действию клавиши ввода, то есть нижние строки поднимаются, а ближайшая нижняя сливается с текущей.
Аналогично действует клавиша BackSpace.
Экран - окно на лист с текстом.Когда вы вводите большой текст, то в конце концов доходите до нижнего края экрана. Продолжайте работать как ни в чем не бывало. Нажав в очередной раз на клавишу ввода, вы обнаруживаете, что весь текст на экране ушел немного вверх. Оказывается, экран - это не лист с текстом, а всего лишь окно на этот большой лист. Упираясь курсором в край экрана, вы можете двигаться в нужном направлении. В паскалевском текстовом редакторе то же самое происходит, когда слишком далеко продолжаешь строку вправо - текст уходит влево.
Впечатление такое, что имеется большой неподвижный лист с текстом, а экран монитора является небольшим подвижным окном, через которое вы можете видеть этот лист. Движением окна можно управлять с клавиатуры или мышкой щелкая по полосам прокрутки.