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

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

                                             |
|Примеры:                                                                   |
|Type                                                                       |
|Age=0..150; {Целое число в интервале от 0 до 150}                          |
|Lat='A'.. 'Z'; {Заглавные буквы латинского алфавита}                       |
|Month=(January, February, March, April, May, June, July, August, September,|
|October, November, December);                                              |
|Spring=March..May; {Весенние месяцы}                                       |
|     Есть еще одна возможность определить новый тип, о существовании       |
|которой можно было бы и догадаться.                                        |
|Type                                                                       |
|    <Имя типа>=<Имя ранее определенного или стандартного типа>;            |
|Пример:                                                                    |
|Type                                                                       |
|    Number=Byte;                                                           |
|                                                                           |
|Массивы                                                                    |
|     До сих пор мы рассматривали переменные, которые имели только одно     |
|значение, могли содержать в себе только одну величину определенного типа.  |
|Исключением являлись лишь строковые переменные, которые представляют собой |
|совокупность данных символьного типа, но и при этом мы говорили о строке,  |
|как об отдельной величине.                                                 |
|     Вы знаете, что компьютер предназначен в основном для облегчения работы|
|человека с большими информационными объемами. Как же, используя только     |
|переменные известных вам типов, сохранить в памяти и обработать данные,    |
|содержащие десяток, сотню, тысячу чисел или, к примеру, строк? А ведь такие|
|задачи встречаются в любой области знания. Конечно, можно завести столько  |
|переменных, сколько данных, можно даже занести в них значения, но только   |
|представьте, какой величины будет текст такой программы, сколько времени   |
|потребуется для его составления, как много места для возможных ошибок?     |
|Естественно, об этом задумывались и авторы языков программирования. Поэтому|
|во всех существующих языках имеются типы переменных, отвечающие за хранение|
|больших массивов данных. В языке Паскаль они так и называются: "массивы".  |
|     Массивом будем называть упорядоченную последовательность данных одного|
|типа, объединенных под одним именем. Кстати, под это определение подходит  |
|множество объектов из реального мира: словарь (последовательность слов),   |
|мультфильм (последовательность картинок) и т. д. Проще всего представить   |
|себе массив в виде таблицы, где каждая величина находится в собственной    |
|ячейке. Положение ячейки в таблице должно однозначно определяться набором  |
|координат (индексов). Самой простой является линейная таблица, в которой   |
|для точного указания на элемент данных достаточно знания только одного     |
|числа (индекса). Мы с вами пока будем заниматься только линейными          |
|массивами, так как более сложные структуры строятся на их основе.          |
|     Описание типа линейного массива выглядит так:                         |
|    Type     <Имя типа>=Array [<Диапазон индексов>] Of <Тип элементов>;    |
|     В качестве индексов могут выступать переменные любых порядковых типов.|
|При указании диапазона начальный индекс не должен превышать конечный. Тип  |
|элементов массива может быть любым (стандартным или описанным ранее).      |
|     Описать переменную-массив можно и сразу (без предварительного описания|
|типа) в разделе описания переменных:                                       |
|    Var     <Переменная-массив> : Array [<Диапазон индексов>] Of <Тип      |
|элементов>;                                                                |
|     Примеры описания массивов:                                            |
|Var                                                                        |
|S, BB : Array [1..40] Of Real;                                             |
|N : Array ['A'..'Z'] Of Integer;                                           |
|R : Array [-20..20] Of Word;                                               |
|T : Array [1..40] Of Real;                                                 |
|     Теперь переменные S, BB и T представляют собой массивы из сорока      |
|вещественных чисел; массив N имеет индексы символьного типа и целочисленные|
|элементы; массив R может хранить в себе 41 число типа Word.                |
|     Единственным действием, которое возможно произвести с массивом целиком|
|- присваивание. Для данного примера описания впоследствии допустима        |
|следующая запись:                                                          |
|    S:=BB;                                                                 |
|     Однако, присваивать можно только массивы одинаковых типов. Даже       |
|массиву T присвоить массив S нельзя, хотя, казалось бы, их описания        |
|совпадают, произведены они в различных записях раздела описания.           |
|     Никаких других операций с массивами целиком произвести невозможно, но |
|с элементами массивов можно работать точно также, как с простыми           |
|переменными соответствующего типа. Обращение к отдельному элементу массива |
|производится при помощи указания имени всего массива и в квадратных скобках|
|- индекса конкретного элемента. Например:                                  |
|R[10] - элемент массива R с индексом 10.                                   |
|     Фундаментальное отличие компонента массива от простой переменной      |
|состоит в том, что для элемента массива в квадратных скобках может стоять  |
|не только непосредственное значение индекса, но и выражение, приводящее к  |
|значению индексного типа. Таким образом реализуется косвенная адресация:   |
|BB[15] - прямая адресация;                                                 |
|BB[K] - косвенная адресация через переменную K, значение которой будет     |
|использовано в качестве индекса элемента массива BB.                       |
|     Такая организация работы с такой структурой данных, как массив,       |
|позволяет использовать цикл для заполнения, обработки и распечатки его     |
|содержимого.                                                               |
|     Если вы помните, с такой формой организации данных мы встречались,    |
|когда изучали строковые переменные. Действительно, переменные типа String  |
|очень близки по своим свойствам массивам типа Char. Отличия в следующем:   |
|строковые переменные можно было вводить с клавиатуры и распечатывать на    |
|экране (с обычным массивом это не проходит); длина строковой переменной    |
|была ограничена 255 символами (255 B), а для размера массива критическим   |
|объемом информации является 64 KB.                                         |
|     Теперь рассмотрим несколько способов заполнения массивов и вывода их  |
|содержимого на экран. В основном мы будем пользоваться числовыми типами    |
|компонент, но приведенные примеры будут справедливы и для других типов     |
|(если они допускают указанные действия).                                   |
|Program M1;                                                                |
|Var                                                                        |
|     A : Array [1..20] Of Integer;                                         |
|Begin                                                                      |
|A[1]:=7; {Заполняем массив значениями (отдельно каждый компонент)}         |
|A[2]:=32;                                                                  |
|A[3]:=-70;                                                                 |
|.............. {Трудоемкая задача?}                                        |
|A[20]:=56;                                                                 |
|Writeln(A[1],A[2],A[3], ?,A[20])                                           |
|End.                                                                       |
|     Как бы ни был примитивен приведенный пример, он все же иллюстрирует   |
|возможность непосредственного обращения к каждому элементу массива         |
|отдельно. Правда, никакого преимущества массива перед несколькими простыми |
|переменными здесь не видно. Поэтому - другой способ:                       |
|Program M2;                                                                |
|Var                                                                        |
|A : Array [1..20] Of Integer;                                              |
|I : Integer;                                                               |
|Begin                                                                      |
|For I:=1 To 20 Do {Организуем цикл с параметром I по всем возможным}       |
|Readln(A[I]); {значениям индексов и вводим A[I] с клавиатуры }             |
|For I:=20 Downto 1 Do {Распечатываем массив в обратном порядке}            |
|Write(A[I],'VVV')                                                          |
|End.                                                                       |
|     Эта программа вводит с клавиатуры 20 целых чисел, а затем             |
|распечатывает их в обратном порядке. Теперь попробуйте написать такую же   |
|программу, но без использования структуры массива. Во сколько раз она      |
|станет длиннее? Кстати, введение язык Паскаль цикла с параметром было      |
|обусловлено во многом необходимостью обработки информационных              |
|последовательностей, т. е. массивов.                     
Пред.678910След.
скачать работу

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

 

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

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


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