Ваша первая программа на Паскале
Вид материала | Программа |
СодержаниеПовторить действие? (Y/N) Program UseCHAR Char можно прямо в программе присвоить значение. Это делается посредством знака присваивания: ":=" Program UseCHAR; var |
- Тема урока: Программирование ветвлений на Паскале, 61.32kb.
- Программирование ветвлений на Паскале Оператор ветвления на Паскале, 166.05kb.
- А. В. Розина программирование на паскале методическое пособие, 480.71kb.
- Агенство ваша бухгалтерия, 168.25kb.
- Книга Первая, 7751.74kb.
- Где и кто должен встречать посетителя, 1789.68kb.
- Первая. Новое восприятие проблемы рождаемости глава первая, 1589.66kb.
- Первая. Новое восприятие проблемы рождаемости глава первая, 5106.96kb.
- Кормление среднеазиатских овчарок: слагаемые рациона Чтобы Ваша собака была здоровой, 257.42kb.
- С. В. Элективный курс «Программируем на Паскале» общие вопросы самылкина Н. Н. Программа, 503.53kb.
Тип Char
В прошлом выпуске мы с вами изучили новый тип, позволяющий работать со строками символов. Это был тип String, с его помощью можно хранить любые данные в текстовом виде, запрашивать программой строки будь то имя, фамилия или что-нибудь еще. Очень полезная возможность, не так ли? Но вот давайте представим, что мы решили запросить не целую строку, а один символ, например в качестве ответа на такой вопрос:
Повторить действие? (Y/N):
Здесь видно, что ввести нужно всего лишь одну букву - Y или N. Заводить для этого целую строку нецелесообразно, хотя и можно. Но при этом программа получается более громоздкой - целая строка используется для хранения всего лишь одного символа. При этом мы теряем память, засоряя ее; работа несколько замедляется, так как строки долго обрабатываются. В общем, здесь встает вопрос оптимизации, который волнует абсолютно всех программистов на свете.
Именно для таких целей - оптимизации - существует один тип, тоже символьный, он более простой, чем строки. Это тип Char.
Char - Переменная этого типа способна хранить всего лишь один символ. Это как бы строка, но с максимальной длиной, равной единице. Он очень удобен для некоторых случаев: невероятно экономит память, ускоряет работу и позволяет легче состалять программу.
Вот примеры присваивания значений переменной типа Char:
|
Program UseCHAR; |
var |
C: Char; |
begin |
C := 'Y'; |
Write(C); |
C := ':'; |
Write(C); |
Readln(C); |
If C <> 'Y' Then Write('C не является буквой Y!'); |
Readln; |
end. |
Посмотрите внимательно на пример. Он очень простой, введите его в Паскале и посмотрите, что он делает. При его работе выводиться: Y: после чего программа ждет ввода. Если введенный символ не буква Y, то об этом сообщается пользователю. Необходимые пояснения к типу Char.
- Переменной типа Char можно прямо в программе присвоить значение. Это делается посредством знака присваивания: ":=", после которого должен находиться символ, заключенный в одиночные кавычки (апострофы): 'A'.
- Переменную можно с успехом использовать в конструкциях сравнения;
- Ее можно читать с клавиатуры. При этом если мы введем строку, состоящую из нескольких символов, то значением переменной Char станет только 1-й символ.
- Его можно прибавлять к строке:
Program UseCHAR;
var
C: Char;
S: String;
begin
Write('Введите строку: ');
Readln(S);
Write('Введите символ: ');
Readln(C);
S := S + C;
Write('Если это сложить, получиться: ',S);
Readln;
end.
Но вычитать нельзя!!! Запомните это.
- Переменная типа Char может хранить совершенно любой символ, в том числе и букву русского языка (знак кириллицы).
Ну а теперь, напоследок, напишем программу, которая будет очень хорошо демонстрировать использование строк, символов, сравнения и goto.
Программа будет читать символы с клавиатуры, пока не прочитает символ "!" - восклицательный знак. Он будет служить сигналом окончания ввода. Все читаемые символы будут записываться в строку, которая по окончанию действия выведстя на экран. Начнем?
Для начала, как всегда, запишем алгоритм программы, то есть определимся, что она будет делать и расскажем это простым человеческим языком. Условимся, что мы имеем две переменных
- S: String; - в нее будут записываться все вводимые символы;
- C: Char; - этот символ будет постоянно читаться с клавиатуры.
А теперь алгоритм:
- Читаем символ с клавиатуры;
- Проверяем - если это не "!", то:
- Добавляем введенный символ в строку (прибавляем его к строке);
- Переходим у вводу символа - пункту 1.
- Добавляем введенный символ в строку (прибавляем его к строке);
Иначе (символ = !):
- Выводим составленную строку на экран;
- Ставим Readln; тем самым затормаживая программу;
- Завершаем программу;
Вот вроде и все. Теперь текст программы:
|
Program Primer; |
label |
A; |
var |
C: Char; |
S: String; |
begin |
A; |
Write('Введите символ: '); |
Readln(С); |
If C <> '!' Then |
begin |
S := S + C; |
Goto A; |
end |
else |
Write('Вы ввели эти символы: ',S); |
Readln; |
end. |
Введите эту программу и запустите. Как вам ее работа? Она делает все то, что и планировалось, помещает вводимые символы в строку и выводит ее на экран. Объяснять эту программу по шагам я не буду, разбирайтесь сами, это будет очень полезно. Советую написать что-нибудь самостоятельно в этом роде; придумайте условие и реализуйте его.
А пока на сегодня про Паскаль все, осталась небольшая практика.