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

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

                  |
|     Следующая программа заполняет массив значениям квадратов индексов     |
|элементов:                                                                 |
|Program M3;                                                                |
|Const                                                                      |
|N=50; {Константа N будет содержать количество элементов массива}           |
|Var                                                                        |
|A : Array [1..N] Of Integer;                                               |
|I : Integer;                                                               |
|Begin                                                                      |
|For I:=1 To N Do                                                           |
|A[I]:=I*I                                                                  |
|For I:=1 To N Do                                                           |
|Write(A[I],'VVV')                                                          |
|End.                                                                       |
|     В дальнейшем для учебных целей мы будем использовать массивы, заданные|
|с помощью генератора случайных чисел. В языке Паскаль случайные числа      |
|формирует функция Random. Числа получаются дробными, равномерно            |
|расположенными в интервале от 0 до 1. Выражение, дающее целое случайное    |
|число в интервале [-50,50] будет выглядеть так:                            |
|Trunc(Random*101)-50                                                       |
|Зададим и распечатаем случайный массив из сорока целых чисел:              |
|Program M4;                                                                |
|Const                                                                      |
|N=40; {Константа N будет содержать количество элементов массива}           |
|Var                                                                        |
|A : Array [1..N] Of Integer;                                               |
|I : Integer;                                                               |
|Begin                                                                      |
|For I:=1 To N Do                                                           |
|Begin                                                                      |
|A[I]:= Trunc(Random*101)-50                                                |
|Write(A[I],'VVV')                                                          |
|End                                                                        |
|End.                                                                       |
|     С обработкой линейных массивов связано множество задач. Их мы         |
|рассмотрим на практических занятиях.                                       |
|                                                                           |
|Двумерные и многомерные массивы                                            |
|Представьте себе таблицу, состоящую из нескольких строк. Каждая строка     |
|состоит из нескольких ячеек. Тогда для точного определения положения ячейки|
|нам потребуется знать не одно число (как в случае таблицы линейной), а два:|
|номер строки и номер столбца. Структура данных в языке Паскаль для хранения|
|такой таблицы называется двумерным массивом. Описать такой массив можно    |
|двумя способами:                                                           |
|I.                                                                         |
|Var                                                                        |
|    A : Array [1..20] Of Array [1..30] Of Integer;                         |
|II.                                                                        |
|Var                                                                        |
|    A : Array [1..20,1..30] Of Integer;                                    |
|В обоих случаях описан двумерный массив, соответствующий таблице, состоящей|
|из 20 строк и 30 столбцов. Приведенные описания совершенно равноправны.    |
|Отдельный элемент двумерного массива адресуется, естественно, двумя        |
|индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет  |
|называться A[5][6] или A[5,6].                                             |
|Для иллюстрации способов работы с двумерными массивами решим задачу:       |
|"Задать и распечатать массив 10X10, состоящий из целых случайных чисел в   |
|интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали." |
|При отсчете, начиная с левого верхнего угла таблицы, главной будем считать |
|диагональ из левого верхнего угла таблицы в правый нижний. При этом        |
|получается, что элементы, лежащие на главной диагонали будут иметь         |
|одинаковые индексы, а для элементов выше главной диагонали номер столбца   |
|будет всегда превышать номер строки. Договоримся также сначала указывать   |
|номер строки, а затем - номер столбца.                                     |
|Program M5;                                                                |
|Var                                                                        |
|A : Array[1..10,1..10] Of Integer;                                         |
|I, K : Byte;                                                               |
|S : Integer;                                                               |
|Begin                                                                      |
|S:=0;                                                                      |
|For I:=1 To 10 Do                                                          |
|Begin                                                                      |
|For K:=1 To 10 Do                                                          |
|Begin                                                                      |
|A[I,K]:=Trunc(Random*100)+1;                                               |
|Write(A[I,K]:6);                                                           |
|If K>I Then S:=S+A[I,K]                                                    |
|End;                                                                       |
|Writeln                                                                    |
|End;                                                                       |
|Writeln('Сумма элементов выше гл. диагонали равнаV',S)                     |
|End.                                                                       |
|Если модель данных в какой-либо задаче не может свестись к линейной или    |
|плоской таблице, то могут использоваться массивы произвольной размерности. |
|N-мерный массив характеризуется N индексами. Формат описания такого типа   |
|данных:                                                                    |
|Type                                                                       |
|<Имя типа>=Array[<диапазон индекса1>,<диапазон индекса2>,...               |
|<диапазон индекса N>] Of <тип компонент>;                                  |
|Отдельный элемент именуется так:                                           |
|          <Имя массива>[<Индекс 1>,<Индекс 2>,...,<Индекс N>]              |
|                                                                           |
|Процедуры и функции                                                        |
|При решении сложных объемных задач часто целесообразно разбивать их на     |
|более простые. Метод последовательной детализации позволяет составить      |
|алгоритм из действий, которые, не являясь простыми, сами представляют собой|
|достаточно самостоятельные алгоритмы. В этом случае говорят о              |
|вспомогательных алгоритмах или подпрограммах. Использование подпрограмм    |
|позволяет сделать основную программу более наглядной, понятной, а в случае,|
|когда одна и та же последовательность команд встречается в программе       |
|несколько раз, даже более короткой и эффективной.                          |
|В языке Паскаль существует два вида подпрограмм: процедуры и функции,      |
|определяемые программистом. Процедурой в Паскале называется именованная    |
|последовательность инструкций, реализующая некоторое действие. Функция     |
|отличается от процедуры тем, что она должна обязательно выработать значение|
|определенного типа.                                                        |
|Процедуры и функции, используемые в программе, должны быть соответствующим |
|образом описаны до первого их упоминания. Вызов процедуры или функции      |
|производится по их имени.                                                  |
|Подпрограммы в языке Паскаль могут иметь параметры (значения, передаваемые |
|в процедуру или функцию в качестве аргументов). При описании указываются   |
|так называемые формальные параметры (имена, под которыми будут фигурировать|
|передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы|
|вместе с ее именем должны быть заданы все необходимые параметры в том      |
|порядке, в котором они находятся в описании. Значения, указываемые при     |
|вызове подпрограммы, называются фактическими параметрами.                  |
|Формат описания процедуры:                                                 |
|Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>;                  |
|< Имя форм. параметра 2>:<Тип>?);                                          |
|<Раздел описаний>                                                          |
|Begin                                                                      |
|<Тело процедуры>                                                           |
|End;                                                                       |
|Раздел описаний может иметь такие же подразделы, 
Пред.678910След.
скачать работу

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

 

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

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


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