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

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

что преобразование типа прошло совершенно успешно и в строке нецифровых    |
|символов не встретилось.                                                   |
|     Противоположное действие осуществляет оператор Str. Формат оператора: |
|   Str(X,S);                                                               |
|X - число (либо арифметическое выражение), S - строковая переменная.       |
|     В переменную S попадает строковое представление числа X. Это нужно,   |
|например, при необходимости выводить на экран числа в графическом режиме   |
|(будет изучено позже), так как стандартные процедуры вывода на экран там   |
|работают только со строковыми величинами.                                  |
|     Для иллюстрации рассмотрим такую задачу: "Найти сумму цифр введенного |
|натурального числа". Используя только числовые переменные, решить ее можно,|
|но предлагаемое здесь решение, по-моему, проще.                            |
|Program Str5;                                                              |
|Var                                                                        |
|S : String;                                                                |
|I,X,A,C : Integer;                                                         |
|Begin                                                                      |
|Writeln('Введите натуральное число');                                      |
|Readln(S); {Число вводится в строковую переменную}                         |
|A:=0;                                                                      |
|For I:=1 To Length(S) Do                                                   |
|Begin                                                                      |
|Val(S[I],X,C); {Цифровой символ превращается в число}                      |
|A:=A+X {Цифры суммируются}                                                 |
|End;                                                                       |
|Writeln('Сумма цифр равна ',A)                                             |
|End.                                                                       |
|     Теперь рассмотрим еще несколько действий над строками:                |
|оператор DELETE(S,I,C) из строковой переменной S удаляет C символов,       |
|начиная с I-того;                                                          |
|оператор INSERT(SN,S,I) вставляет подстроку SN в строковую переменную S    |
|перед символом с номером I;                                                |
|функция COPY(S,I,C) возвращает подстроку строки S из C символов, начиная с |
|символа с номером I;                                                       |
|функция Pos(SN,S) возвращает номер символа, с которого в строке S          |
|начинается подстрока SN (позицию первого вхождения подстроки в строку).    |
|Если такой подстроки нет, то возвращается ноль.                            |
|     Пример их использования:                                              |
|"Во введенной строке заменить все вхождения подстроки 'ABC' на подстроки   |
|'KLMNO'".                                                                  |
|Program Str6;                                                              |
|Var                                                                        |
|S : String;                                                                |
|A : Byte;                                                                  |
|Begin                                                                      |
|Writeln('Введите строку');                                                 |
|Readln(S);                                                                 |
|While Pos('ABC',S)<>0 Do                                                   |
|Begin                                                                      |
|A:= Pos('ABC',S);                                                          |
|Delete(S,A,3);                                                             |
|Insert('KLMNO',S,A)                                                        |
|End;                                                                       |
|Writeln(S)                                                                 |
|End.                                                                       |
|                                                                           |
|Определение типов                                                          |
|     Как было упомянуто ранее, в изучаемом языке возможно определять новые |
|типы переменных. После определения этот тип становится доступным для       |
|описания переменных, также как и стандартные типы.                         |
|     Новый тип перед первым его использованием должен быть описан в        |
|соответствующем разделе описаний. Его заголовок - служебное слово Type.    |
|Type                                                                       |
|    <Имя типа> = <Описание типа>;                                          |
|     Есть несколько способов описания. Иногда говорят даже о видах типов   |
|(как бы это странно ни звучало).                                           |
|     Итак, первым рассмотрим так называемый перечисляемый тип.             |
|     Перечисляемый тип используется для повышения наглядности программ,    |
|позволяя записывать в переменные этого типа названия разнообразных         |
|объектов, исследуемых программой. Этот тип представляет собой набор        |
|идентификаторов, с которыми могут совпадать значения параметров.           |
|     Формат описания следующий: <Имя типа> = (<Ид.1>, <Ид.2>,? <Ид.n>);    |
|     Далее можно определить любое число переменных уже описанного типа.    |
|Обратите внимание на то, что каждый идентификатор может участвовать в      |
|описании только одного перечисляемого типа.                                |
|     Этим переменным можно присваивать только значения из списка,          |
|определенного при описании типа. Эти значения не являются ни числами, ни   |
|строковыми величинами, ни даже величинами логического типа, поэтому они не |
|могут участвовать в арифметических, строковых, логических выражениях, а    |
|также не могут быть выведены на экран или принтер. Величины перечисляемого |
|типа можно сравнивать между собой, над их множеством в языке Паскаль       |
|определены несколько функций:                                              |
|    Ord(X) - порядковый номер значения переменной X в списке               |
|идентификаторов.                                                           |
|    Succ(X) - следующее значение для величины Х.                           |
|    Pred(X) - предыдущее значение данного типа.                            |
|     Обратите внимание на то, что для функции Ord нумерация среди значений |
|идет, начиная от нуля. Для последнего значения нельзя применять функцию    |
|Succ, для первого - Pred.                                                  |
|     Переменные различных перечисляемых типов несовместимы друг с другом.  |
|     Множество стандартных порядковых типов в языке Паскаль на самом деле  |
|определены как перечисляемые. Это типы Char, Integer, другие. Достоинства  |
|стандартных порядковых типов лишь в том, что над каждым из них уже         |
|определены специфические действия. Например, тип Boolean описан так:       |
|Type                                                                       |
|Boolean = (False, True);                                                   |
|     Единственное его отличие от перечисляемых типов, определяемых         |
|программистом, состоит в том, что значения типа Boolean можно выводить на  |
|экран. Можете проверить, Ord(False)=0.                                     |
|     Интересно, что переменная перечисляемого типа может быть счетчиком в  |
|цикле "с параметром".                                                      |
|Пример:                                                                    |
|Program T1;                                                                |
|Type                                                                       |
|    Colors = (Black, Blue, Green, Cyan, Red, Magenta, Brown, Yellow,       |
|White);                                                                    |
|Var                                                                        |
|    C1,C2 : Colors;                                                        |
|Begin                                                                      |
|C1:=Green;                                                                 |
|C2:=Red;                                                                   |
|Writeln(Ord(C1), Ord(Succ(C2)))                                            |
|End.                                                                       |
|     Во время выполнения на экране появятся числа "2" и "5", что           |
|соответствует номерам значений Green и Magenta.                            |
|     Следующий тип, который можно определить в программе - тип-диапазон.   |
|     Здесь не нужно перечислять все значения этого типа, потому, что       |
|возможными для него являются значения поддиапазона уже определенного до    |
|него любого порядкового типа (стандартного или описанного ранее            |
|перечисляемого типа). Достаточно лишь указать начальную и конечную величину|
|отрезка порядкового типа. Единственное условие: начальное значение не      |
|должно превышать конечное.                                                 |
|     Формат описания отрезочного типа:                                     |
|Type                                                                       |
|    <Имя типа>=<Нач.>..<Кон.>;
Пред.678910След.
скачать работу

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

 

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

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


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