русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Описать массив можно двумя способами.


Дата добавления: 2013-12-23; просмотров: 6251; Нарушение авторских прав


Лекция №11. Массивы. Символьные строки

 

План занятия:

1. Одномерные массивы;

2. Обработка массивов;

3. Матрицы – двумерные массивы;

4. Строковые переменные и строковые константы;

5. Встроенные функции для обработки строк.

 

1. Одномерные массивы

В математике наряду со множеством, часто рассматривают упорядоченные наборы чисел (например координаты точки в двумерном, трехмерном пространстве). Упорядоченные двойки, тройки и т.д. чисел в языке Паскаль удобно задавать с помощью массивов длины 2, 3 и т.д.

Массив – это упорядоченный набор однотипных элементов определенной длины. Каждый элемент массива имеет свой номер (индекс). К каждому элементу массива имеется прямой доступ. Это означает, что для того, чтобы обратиться к какому-либо элементу массива, нет нужды перебирать все его предыдущие элементы, нам достаточно указать номер этого элемента.

Первый способ.

В разделе описания переменных мы можем описать массив следующим образом:

Var A:Array[n1..n2] Of базовый тип;

Здесь А – название массива;

Array – служебное слово (англ. массив).

n1,n2- соответственно номер первого и последнего элемента массива.

Базовый тип – любой из уже изученных типов.

Количество элементов массива будет равно n2-n1+1.

Например, запись

Var Massiv:Array[1..20] Of Real;

означает, что полученный массив будет состоять из 20 вещественных чисел, первое из которых будет иметь номер 1, последнее – 20. Наш массив будет иметь название Massiv.

Второй способ.

Описание массива заключается в создании нового оригинального типа. Для того чтобы программист мог создавать свои новые типы данных в Паскале существует раздел описания типов Type. Этот раздел находится между разделом описания констант и разделом описания переменных.

Type

<Имя типа>=Array[n1..n2]Of Базовый тип;



После этого в разделе описания переменных мы можем описать массив, который имеет созданный нами тип, например,

Type

Mas=Array[10..19] Of Integer;

Var B:Mas;

В данном случае мы сначала описали новый тип Mas – массив из десяти целых чисел с номерами от 10 до 19, затем описали переменную B типа Mas. Переменная В – переменная типа Mas.

Чтобы обратиться к какому либо элементу массива, необходимо указать имя массива и в квадратных скобках номер элемента. В[5], A[i] и т.д. Номером элемента может быть любое целочисленное выражение.

Замечание: номерами элементов могут быть не только выражения типа Integer, но так же и типа Char, перечисления и диапазоны.

 

 

2. Обработка массивов

В большинстве случаев для обработки массивов используются циклы. В цикле имеется возможность поочередно перебрать все элементы массива.

Для ввода массива с клавиатуры может быть использован цикл следующего вида: пусть у нас имеется массив с именем А, состоящий из n элементов, тогда:

For i:=1 To n Do Read(A[i]);

В этом случае, пользователь вводит через пробел n элементов массива.

Ввод данных в массив происходит следующим образом: сначала значение счётчика цикла равно 1; выполняется операция read (A[1]); после чего счётчик цикла становится равным 2; выполняется операция Read(A[2])… и т.д. до значения i=n включительно.

Для вывода массива на экран используется следующий цикл:

For i:=1 To n Do Write(A[i]);

Writeln;

В данном случае на экран в одну строку будут выведены все n элементов массива, после чего курсор переместится на строку вниз.

Как уже было сказано для обработки массивов используются циклы.

Пример.

Пусть имеется массив М, состоящий из n элементов с номерами от 1 до n. Найти Сумму элементов массива, вывести ее на экран.

Sum:=0;

For i:=1 To n Do Sum:=Sum+M[i];

Writeln(‘Сумма элементов массива = ’ ,Sum);

 

3. Матрицы – двумерные массивы

В математике очень распространено такое понятие, как матрица. Матрица – это таблица из коэффициентов A=(aij). Элементы матрицы образуют столбцы и строки. Первый индекс ( i ) указывает номер строки, второй ( j ) – номер столбца, на пересечении которых находится элемент aij.

Определим некоторые действия над матрицами.

1. 1. Две матрицы равны, если равны все элементы, стоящие в одинаковых местах.

2. 2. Суммой двух матриц A=(aij) и B=(bij) называется матрица С=(сij), где сij= aij+bij;

3. 3. Произведением матрицы A=(aij) на число L называют матрицу, у которой каждый элемент равен произведению соответствующего элемента матрицы А на число L.

В программировании матрицы удобно представлять с помощью двумерных массивов. Двумерный массив отличается от одномерного массива тем, что каждый элемент в двумерном массиве имеет два индекса также, как и элементы матрицы.

Описание двумерных массивов отличается от описания одномерных массивов только тем, что в мы указываем начальное и конечное значение для обоих индексов.

Array[n1..n2,m1..m2] Of Базовый Тип;

n1, n2 – начальное и конечное значения первого индекса;

m1, m2 – начальное и конечное значения второго индекса.

Вообще, мы можем описать не только двумерные, но и трех-, четырех-, … -мерные массивы, для этого необходимо указать через запятую начальные и конечные значения для каждого индекса.

Для ввода и для вывода двумерных массивов используются два вложенных цикла:

Ввод массива:

For i:=1 To n Do

For j:=1 To m Do

Read(A[i,j]);

Вывод массива:

For i:=1 To n Do

Begin

For j:=1 To m Do

Write(A[i,j]:3);

Writeln;

End;

Для обработки двумерных массивов также используются два вложенных цикла.

Пример.

Найти произведение массива А на число L.

For i:=1 To n Do

For j:=1 To m Do

A[i,j]:=A[i,j]*L;

 

 

4. Строковые переменные и строковые константы

Данные строкового типа, также как данные символьного, числового, логического типов, подразделяются на переменные, константы и выражения.

Строковые константы – это последовательность символов, заключенных в апострофы, например, ‘Пример’, ‘АВС 1А’.

Строковые константы, также как и числовые, могут быть описаны в разделе описания констант.

Const Str= ‘СТРОКА’;

Переменные строкового типа описываются с помощью служебного слова String:

Var s1,s2:String[N];

где String – служебное слово;

S1,s2 – переменные строкового типа;

N – максимальная длина строки (от 0 до 255).

Строковым переменным можно присваивать значения строковых переменных и строковых констант. Кроме того, мы можем обратиться к отдельному символу в строке. Для этого, после имени переменной, в квадратных скобках необходимо указать его номер, как это делалось с символьными массивами. Отдельный элемент строки – символьная константа, мы можем присвоить ему значение символьной константы, либо символьной переменной.

При считывании значений строковых переменных с клавиатуры во избежание ошибок следует использовать оператор ввода Readln.

При работе со строками часто приходится составлять строку из двух и более строк, прибавлять к строке какие-либо символы и т.д. Для этого в Паскале предусмотрена такая операция, как конкатенация строк (сцепление). Для обозначения конкатенации в Паскале используется знак «+».

Str1:=Str1 + ‘1’+ Str2 + ‘asd’;

Строки можно сравнивать. Сравнение строк происходит слева направо для первого несовпадающего символа

‘Иванов’< ‘Иванова’

‘Кот’ > ‘Код’

 

 

5. Встроенные функции для обработки строк

Для обработки строковых данных используется ряд стандартных процедур и функций. Рассмотрим их. При этом Str, Str1,Str2 – переменные типа String, i,j – выражения типа integer;

Length(Str) – функция, вычисляющая длину переменной Str. Результат функции имеет целочисленный тип.

Copy(Str,i,j) – Функция, которая выделяет из строки Str подстроку длиной j, начиная с позиции i.

Delete(Str,i,j) – Процедура, которая удаляет из строки Str подстроку длиной j, начиная с позиции i.

Insert(Str1,Str2,i) – Процедура, которая вставляет в строку Str1 строку Str2, начиная с позиции i.




<== предыдущая лекция | следующая лекция ==>
Формирование сигнала в радиоканале | Нелинейные элементы с однозначными характеристиками.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.