
- •Использование программы Turbo Pascal 7.0
- •Проверка на ошибки - "компиляция".
- •Запуск программы - "выполнение".
- •Программирование на Паскале
- •Целые типы
- •Пишем программу
- •Домашнее задание по Паскалю
- •Арифметические процедуры
- •Вопросы - ответы
- •Структура программы
- •Новые типы данных
- •If…then…else - Важная конструкция языка
- •Вопросы - ответы
- •Процедура goto
- •Повторить действие? (y/n):
- •Практика
- •Вопросы - ответы
- •Цикл for
- •Задание №1
- •Задание №2
- •Задание №3 (обширное)
- •2.По теме "строки": напишите программу, присваивающую переменной Char последний символ введенной строки.
- •Вопрос 3. Может ли Паскаль считывать данные до нажатия "Ввода" (Например, как в Windows: нажмите Esc для отмены)?
- •Вопрос 4. Можно ли сделать ввод данных скрытым звёздочками (***), например, как при вводе пароля?
- •Вопрос 5. Есть ли в Паскале функция, с помощью которой внутренний динамик может "бипнуть" (Примерно, как при загрузке компьютера)?
- •Звездное небо (аналог экранной заставки Norton Commander)
- •Обработка строк
- •А можно и так:
- •Вопрос 1. Программа подсчитывает дискриминант! в конце запрос: "Вы хотите еще найти дискриминант? y/n" Как сделать чтобы при нажатии на "y" программа начаналась сначала, а при нажатии на "n" выходила?
- •Вопрос 4. У меня вот такой вопрос- как в программе описать массив X, если заранее неизвестна его размерность (т.Е. Кол- во элементов, как я понимаю) ?
- •Вопрос 5. Как можно запустить программу?
- •Вопрос 7. При запуске Паскаля всё время появляется старая программа и приходится закрывать окно с этим текстом и открывать свежее. Как от этого избавится?
- •Вопрос 8. В рассылке n11 Вы рассказывали про форматный вывод .Чтобы реализовать это, мы приписывали к переменной, стоящей в процедуре два числа, разделив их двоеточием: Write('Real: ', a:5:2);
- •Список_переменных: тип
- •Оформление процедуры
- •Write(Add(n1, n2)); - печатаем значение, возвращаемое функцией Add;
- •Из чисел в строки
Целые типы
|
| |
Обозначение типа |
Диапазон значений | |
ShortInt |
-128 до 127 | |
Integer |
-32768 до 32768 | |
LongInt |
-2147483648 до 2147483647 | |
Byte |
0 до 125 | |
Word |
0 до 65536 |
Это все целые типы, используемые в Паскале. Их вам необходимо выучить - не обязательно, конечно, точные диапазоны значений, но названия и примерные границы. Не забывайте про эту таблицу - в дальнейшем она вам может понадобиться.
Пишем программу
В этом уроке я хочу предложить вам модифицировать программу, написанную в предыдущем выпуске. Нам необходимо сделать, чтобы она запускалась и работала по-настоящему - принимала данные с клавиатуры и выводила ответ на экран.
Для этого сначала напишем небольшой пример, в котором разберемся, как же выводить и принимать данные.
У программистов существует такое негласное правило - чтобы продемонстрировать новый язык программирования, необходимо написать на нем программу, выводящую "Hello, world!", что значит "Привет, мир!". Это забавное правило придумано для того, чтобы показать хоть что-нибудь на языке, не знакомом пользователю. Я возьму это правило на вооружение и применю для того, чтобы продемонстрировать как можно вывести данные на экран.
Итак, пишем программу, выводящую строку "Hello, world!"
Ее текст будет выглядеть так:
Program Hello_world;
begin
Write('Hello, world!');
Readln;
end.
Откройте Turbo Pascal и введите эту программу. Далее - нажатием клавиш Ctrl-F9 запустите ее. Если у вас показало ошибки, исправьте их - введите программу в точности так, как я показал на примере.
Если же программа запустилась, то она выведет вам строку Hello, world!, после чего остановиться и будет ждать дальнейших действий. При нажатии клавиши Enter она завершит работу.
Итак, разберем эту программу по частям:
Program Hello_world; - как обычно, заголовок программы.
begin - начало текста программы. Заметьте, мы не используем переменных, поэтому раздел var отсутствует.
Write('Hello, world!'); - Это строка и выводит Hello, world!. Как же это реализуется? Здесь я познакомлю вас с первой процедурой.
Процедура Write. (Write - по-английски "писать").
Эта процедура выводит на экран какие-либо данные. Она может выводить три основные вещи:
Строку символов;
Переменную;
Результат вычислений;
Разберем, как это делается:
Делается это след. образом. После самой процедуры, в скобках пишутся параметры. Здесь стоит обратить внимание, что все параметры, которые передаются процедурам, пишутся рядом с ними в скобках.
Чтобы вывести строку (как в нашем случае) - необходимо ее заключить в одинарные кавычки - ' . Пример:
Write('Это строка');
Между символами кавычек могут быть абсолютно любые символы. Если нам надо вывести сам символ кавычек, то мы его удваиваем:
Write('Здесь напечатается один символ кавычек - '' .');
Далее - все просто. Параметров может быть сколько угодно, они идут через запятую. Переменные и вычисления не заключаются в кавычки. Если мы хотим, например вывести переменную с комментарием, то пишем так:
Write('Значение переменной Name: ', Name);
Вот пример непосредственных вычислений прямо в скобках:
Write('5+12 равно: ', 5+12);
А теперь последний пример, сочетающий все вышеприведенные. Обратите внимание, что можно использовать любое количество параметров, располагая их в любом порядке:
Write('Значение переменной Name: ', Name, ' Name+5 = ', Name+5);
Итак, мы разобрались с процедурой Write. Разбираем программу далее.
Следующая строка - Readln;.
4.Readln; - это процедура чтения с клавиатуры. Разберем эту процедуру:
Процедура Readln; - используется для чтения с клавиатуры. В нашей программе она служит для того, чтобы затормозить программу после выполнения. В этой процедуре может быть задан параметр, помещенный после нее в скобках -
Readln(A);
В качестве параметра может быть только переменная, ее значение будет читаться с клавиатуры.
Итак, мы разобрали эту программу - научились читать данные и выводить их на экран. Что теперь? А теперь давайте модифицируем программу, написанную в прошлом выпуске с учетом полученных знаний. Что мы будем делать?
Заведем три переменных - A,B,C;
Предложим пользователю ввести по порядку две переменных - А и В;
Сложим их и поместим результат сложения в переменную С;
Выведем переменную С на экран;
Чтобы пользователь увидел ввод, затормозим программу, ожидая нажатия Enter.
Итак, пишем программу:
Program Primer2;
var
A,B,C: Integer;
begin
Write('Введите А: ');
Readln(A);
Write('Введите B: ');
Readln(B);
C := A + B;
Write('A+B = ', C);
Readln;
end.
Откройте Паскаль и введите эту программу. Запустите ее на выполнение клавишами Ctrl-F9. Если возникли ошибки, проверьте правильность текста, сверьтесь с примером.
Что вы видите? Программа теперь реагирует на ввод, производит с введенными данными какие-нибудь действия и выводит ответ на них.
Вот эту программу я уже объяснять по частям не буду. Теперь вам предстоит самостоятельно разобраться, что она делает и как, без моих комментариев. Посмотрите на нее, вы должны понять каждую строку.