Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Основы программирования на языке Паскаль

я     |
|память и увеличивается быстродействие программ.                            |
|     Переменным строкового типа можно присваивать строковые величины       |
|(внутри программы они заключаются в апострофы), значения выражений, которые|
|приводят к строковым величинам. Значения можно также вводить с клавиатуры. |
|При этом апострофы не используются. Как вам известно, в числовую переменную|
|нельзя ввести строковую величину. Сделать наоборот - возможно, однако      |
|число, находящееся в строковой переменной представляет собой просто        |
|последовательность символов (цифр), поэтому в арифметических выражениях    |
|участвовать не может.                                                      |
|     Также, новым для вас явится то, что при использовании строковой       |
|переменной, к каждому ее символу можно обратиться отдельно. Необходимо     |
|только знать номер нужного символа от начала строки. Его достаточно        |
|поставить после имени переменной типа String в квадратных скобках.         |
|     Пример: S[5] - пятый символ строки S.                                 |
|     С отдельным символом строки можно производить все действия, которые   |
|можно производить с любой символьной переменной (ввод, присвоение, вывод на|
|экран, участие в выражениях и т.д.).                                       |
|     Обратите внимание на то, что нумерация символов в строке начинается с |
|единицы. Внутри квадратных скобок вместо числа может находиться выражение, |
|результатом которого является целое число. Главное чтобы символ с таким    |
|номером в строке существовал. Но как же узнать, сколько символов в данный  |
|момент находится в строковой переменной? Для этого существует специальная  |
|функция, которая возвращает длину строковой переменной в символах. Это     |
|функция Length. Ее формат: Length(S)                                       |
|     Здесь S - либо строковая величина, либо строковая переменная.         |
|     Приведенная далее программа выводит на экран длину введенной          |
|пользователем строковой величины.                                          |
|Program Str1;                                                              |
|Var                                                                        |
|S : String;                                                                |
|Begin                                                                      |
|Writeln('Введите последовательность символов');                            |
|Readln(S);                                                                 |
|Writeln('Вы ввели строку из ',Length(S), ' символов')                      |
|End.                                                                       |
|     Другой пример:                                                        |
|Решим задачу: "Введенную строку вывести на экран по одному символу в строке|
|экрана".                                                                   |
|Program Str2;                                                              |
|Var                                                                        |
|S : String;                                                                |
|I : Byte;                                                                  |
|Begin                                                                      |
|Writeln('Введите строку');                                                 |
|Readln(S);                                                                 |
|For I:=1 to Length(S) do {организуем цикл, начиная с первого символа}      |
|Writeln(S[I])                   {строки, до последнего (номер последнего}  |
|{совпадает с количеством символов строки S) }                              |
|End.                                                                       |
|     Какие же еще действия можно выполнять с переменными строкового типа?  |
|     Две строковые величины можно состыковывать. Эта операция называется   |
|конкатенацией и обозначается знаком "+".                                   |
|     Например, результатом выполнения следующих команд:                    |
|   R:= 'kadabra';                                                          |
|   H:= 'abra';                                                             |
|   S:=H+R;                                                                 |
|в переменной S будет значение 'abrakadabra'.                               |
|     Для конкатенации результат зависит от порядка операндов (в отличие от |
|операции сложения). Следует помнить о том, какой максимальной длины может  |
|быть результирующая переменная, так как в случае превышения значением      |
|выражения числа, указанного после String в описании переменной, "лишние"   |
|символы в переменную не попадут.                                           |
|     Строковые величины можно сравнивать между собой. Это относится также и|
|к строковым переменным. Но как же компьютер определяет, какая строка       |
|больше:                                                                    |
|та, которая длиннее?                                                       |
|та, которая содержит больше заглавных букв?                                |
|     На самом деле такая проверка проходит довольно сложно: компьютер      |
|сравнивает сначала первые символы строк. Большим из двух считается тот, код|
|которого больше (вспомните, что такое код символа). Если равны первые      |
|символы, то так же анализируется следующая пара до тех пор, пока не будет  |
|найдено различие. Если начало строк совпадает, а одна из них кончается     |
|раньше, то вторая автоматически называется большей.                        |
|     Код символа в Паскале можно определить при помощи функции Ord.        |
|     Ее формат: Ord(C), где С - либо непосредственно указанный символ, либо|
|переменная символьного типа, либо один символ строковой переменной. Вообще,|
|функция Ord имеет более глубокий смысл, но об этом - позже. Есть и обратная|
|функция, которая возвращает символ по известному коду. Это функция Chr(N), |
|где N - выражение, приводящее к целому числу в интервале от 0 до 255       |
|(возможные значения кода символа). Очевидно, что Chr(Ord(C))=C,            |
|Ord(Chr(N))=N.                                                             |
|     Следующая маленькая программа выводит на экран кодовую таблицу:       |
|Program Str3;                                                              |
|Var                                                                        |
|    I : Byte;                                                              |
|Begin                                                                      |
|For I:=32 to 255 do                                                        |
|Write('VV',I:4, '-',Chr(I))                                                |
|End.                                                                       |
|     Цикл в программе начинается с 32 потому, что символы с кодами от 0 до |
|31 являются управляющими и не имеют соответствующего графического          |
|представления.                                                             |
|     Задача: "Определить, является ли введенная строка "перевертышем".     |
|Перевертышем называется такая строка, которая одинаково читается с начала и|
|с конца. Например, "казак" и "потоп" - перевертыши, "канат" - не           |
|перевертыш".                                                               |
|     Поступим следующим образом: из введенной строки сформируем другую     |
|строку из символов первой, записанных в обратном порядке, затем сравним    |
|первую строку со второй; если они окажутся равны, то ответ положительный,  |
|иначе - отрицательный. Естественно, предложенный способ решения не является|
|единственно возможным.                                                     |
|Program Str4;                                                              |
|Var                                                                        |
|     S,B : String;                                                         |
|     I : Byte;                                                             |
|Begin                                                                      |
|Writeln('Введите строку');                                                 |
|Readln(S);                                                                 |
|B:='';              {Переменной B присваиваем значение "пустая строка"}    |
|For I:=1 to Length(S) do                                                   |
|B:=S[I]+B;     {Конкатенация. Символы строки S пристыковываются к}         |
|{переменной B слева. Самым левым окажется последний.}                      |
|If B=S Then Writeln('Перевертыш') Else Writeln('Не перевертыш')            |
|End.                                                                       |
|     Число, записанное в строковую переменную, естественно числом не       |
|является, но очень часто требуется его все же использовать в качестве      |
|числа. Для этого нужно произвести преобразование типа. Перевод строкового  |
|представления числа в числовое выполняет в Паскале оператор Val.           |
|Его формат:                                                                |
|Val(S,X,C);                                                                |
|     Здесь S - строка, содержащая число, X - числовая переменная, в которую|
|будет помещен результат, С - переменная целочисленного типа, в которую     |
|помещается первого встреченного в S отличного от цифры символа. Если после |
|выполнения оператора Val переменная С имеет значение 0, то это означает,   |
|
Пред.678910След.
скачать работу

Основы программирования на языке Паскаль

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ