1.7 Описание двумерных массив

 

 

D[I,J] - элемент матрицы,

где I- номер строки,

J- номер столбца.

1.8 Ввод-вывод двумерных массивов

 

Var <имя массива>: array[<диапазон строк>,<диапазон столбцов>]

of <тип элементов>;

Пример:

Var D:array[1..2,1..3] of integer;или Type MATR=array[1..2,1..3] of integer;

Var D: MATR;

Type ST=array[1..2] of integer;

MATR=array[1..3] of ST;

Var D: MATR;

Пример:

for I:=1 to 2 do

for J:=1 to 3 do

Read(D[I,J]); {Последовательность ввода: 1 3 2 4 6 7}

{Ввод элементов двумерного массива}

Пример:

{Вывод элементов двумерного массива}

for I:=1 to 2 do

for J:=1 to 3 do

Write(D[I,J]); {вывод в строку 1 3 2 4 6 7}

или

for I:=1 to 2 do

begin Writeln;{переход на новую строку}

for J:=1 to 3 do

Write(D[I,J]) {вывод элементов строки}

end;{результат вывода: 1 3 2

4 6 7}

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

Например: Var D: array [1..M,1..N] of integer;

тогда для D[I,J]IPR=(I-1)*N+J

Начальные значения элементам массивов в среде Turbo-Pascal могут быть заданы с использованием типизированных констант.

Пример:

Type MAS2=array [1..3] of integer;

MATR=array[1..2,1..3] of integer;

Const B:MAS2=(12,34,56);{одномерный массив: 12 34 56}

D:MATR=((1,3,2),(4,6,7));{двумерный массив: 1 3 2 46 7}


 

2. СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ

2.1 Строки. Описание строки

 

Для обработки группы символов в среде Turbo-Pascal используется структурированный тип String.

Определение типа

Var S:string[n];

где n - длина строки (целое число без знака из интервала 1..255).

Текущая длина строки может изменяться в процессе выполнения программы, но не должна превышать указанной в описании. Если длина строки не указана в описании, то по умолчанию она принимается равной 255 символов.

Пример:

Var S:string;Var C:char;

I:byte; S:string[5];

......

S:=’PASCAL’;S:=’HELLO’;

Write(S[2]); {A}C:=S[1]; {C:=’H’}

for I:=4 downto 1 do S[2]:=’*’;

Write(S[I]); {CSAP} Writeln(S); {H*LLO}

S:=’’;{пустая строка}

2.2 Операции над строками

 

Слияние строк - конкатенация

Var S1,S2,S3:string;

...

S1:=’-PASCAL’;

S2:=’TURBO’;

S3:=S2+S1;

Writeln(S3);{TURBO-PASCAL}

Сравнение строк

Сравнение строк происходит посимвольно, начиная с первого символа в строке, в соответствии с их кодами ASCII.

а) Строки равны, если они одинаковой длины и посимвольно эквивалентны: ‘abcd’ = ‘abcd’

‘_abcs’<>’abcd’

‘abcd’ <> ‘ABCD’.

в) Если при очередном сравнении окажется, что код одного символа больше кода другого, то строка его содержащая также считается большей:

‘abcd’ > ‘abca’т.к. ASCII- коды ‘a’<’b’<’c’<...<’z’,

‘abcd’ > ‘aBcb’‘b’>’B’

 

2.3 Процедуры и функции обработки строк

 

Пример:

Var S1,S2,S3:string;

K:byte;

...

S1:=’12345’;

S2:=’67890’;

Функция Length(S:string):byte

Функция выдает текущую длину строки.

K:=Length(S1);

Write(K); {5}

Write(Length(S2)); {5}

Функция Concat(S1,S2,...,SN:string):string

Функция возвращает конкатенацию (слияние) строк.

S3:=Concat(S1,S2);

Writeln(S3); {1234567890}

Writeln(Concat(S1,S2));{1234567890}

Функция Pos(SubS,S:string):byte

Функция ищет вхождение подстроки SubS в строку S и возвращает номер первого символа подстроки SubS в строке S или 0, если строка не содержит указанную подстроку.

S3:=’1234567890’;

K:=Pos(S1,S3);

Writeln(K); {1}

Write(Pos(S2,S3)); {6}

Функция Copy(S:string; START,LEN:integer):string

Функция возвращает подстроку длиной LEN, начиная с позиции START строки S.

S3:=Copy(S1,2,3);

Writeln(S3); {234}

Writeln(Copy(S2,3,3)); {890}

Процедура Delete( Var S:string; START,LEN:integer)

Процедура удаляет из строки S подстроку длиной LEN, начиная с позиции START.

S3:=S1+S2;{1234567890}

Delete(S3,5,4);

Writeln(S3); {123490}

Процедура Insert(SubS:string; Var S:string; START:integer)

Процедура вставляет подстроку SubS в строку S с позиции START.

S1:=’НАЧАЛО-КОНЕЦ’;

Insert(‘СЕРЕДИНА-‘, S1,8);

Writeln(S1);{НАЧАЛО-СЕРЕДИНА-КОНЕЦ}

Процедуры: Str(X:w:d; Var S:string);

Val(S:string; Var X:<тип>; Var ErrCode:integer)

Процедура Str преобразует числовое значение X (целый или вещественный тип) в строковое S. Возможно задание формата для X:

w- общая длина поля,

d- количество цифр в дробной части.

Процедура Val преобразует строковое значение S (символьное представление числа) в значение числовой переменной X в соответствии с заданным типом (целый или вещественный). Значение переменной ErrCode=0, если изображение числа правильно и представляет собой номер ошибочного символа в случае невозможности преобразования.

Var X:real;

S:string;

I:integer;

...

X:=3.1415926; Str(X:8:4,S);

S:=’X=‘+S;

Writeln(S); {X= 3.1416}

Delete(S,1,2); { 3.1416}

Val(S,X,I);

if I=0 then Writeln(X:10:4) { 3.1416}

else

Writeln(‘Ошибка в строке’, S, ‘ символ’ S[I]);

 

2.4 Комбинированный тип данных – записи. Описание записей

2.4.1 Записи с фиксированной частью

Определение типа

Type REC= RecordREC - новое имя типа запись;

A1:S1;A1,A2,..,AN - идентификаторы полей записи;

A2:S2;S1,S2,..,SN - имена типов полей записи;

... ZAP - имя записи.

AN:SN

End;

Var ZAP:REC;

Пример:

Type COMPLEX= Record Доступ к полям записи:

Im,Re: real;CHIS.Re:=0.5;

CHIS.Im:=1.7;

End;

Var CHIS:COMPLEX;

Пример:

var Date: record

Day:1..31;

Month:(FEV,MAR,APR);

Year:integer

end;

...

Date.Day:=13;Date

Date.Month:=MAR;15MAR1947

Date.Year:=1947;

2.4.2 Записи, использующие вариантную часть

Описание вариантной части:

 

Case V:<тип>of <список описаний вариантов>;

где V - имя вариантного поля записи.

Пример:

Type SH=(TRIANGLE,CIRCLE);

ZAP= Record

X,Y: real;{фиксированная часть}

Case S:SH of

TRIANGLE: (Side,Base:real);{вариантная часть}

CIRCLE: (Rad:real)

End;

Var A: ZAP;

Вариант 1

A.S:=CIRCLE;A.X:=0.5;XYSRad

A.Rad:=15.5;A.Y:=1.5;0.51.5CIRCLE15.5

Вариант 2

A.S:=TRIANGLE;XYSSideBase

A.Side:=12.3;A.X:=0.50.51.5TRIANGLE12.315.7

A.Base:=15.7;A.Y:=1.5

Оператор With

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

Пример:

Var A,B: Record

Day: 1..31;

I: integer;

End;

...

With A do эквивалентно A.Day:=5;

Begin Day:=5;I:=1954 End;A.I:=1954;


Заключение

 

В процессе написания работы мы ознакомились с:

организацией ввода-вывода, а именно:

- процедурами ввода;

- процедурами вывода;

- бесформатным выводом;

- форматным выводом;

- описанием одномерных массивов;

- вводом – выводом одномерных массивов;

- описанием двумерных массивов;

- вводом – выводом двумерных массивов.

обработкой массивов, а именно:

- строками и описанием строк;

- операциями над строками;

- процедурами и функциями обработки строк;

- комбинированным типом данных – записи и описанием записей;

- записью с фиксированной частью;

- записью, использующие вариантную часть.

- рассмотрели примеры.


Литература

 

1.  Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.: Наука, 1987;

2.  Абрамов С.А., Зима Е.В. Начала информатики. - М.: Наука, 1988;

3.  Дагене В.А., Григас Г.К., Аугутис К.Ф. 100 задач по программированию. - М.:, Просвещение, 1993;

4.  Ильина М.М. Работа в Word 7.0 на примерах. - М.: Восточная книжная компания, 1996;

5.  Йенсен К., Вирт Н. Паскаль: Руководство для пользователя. /Пер. с англ. М.Л.Сальникова, Ю.В.Сальниковой. - М.:, Компьютер, 1993;

6.  Microsoft Windows 95 .Шаг за шагом: Практическое пособие. /Пер.с англ.- М.: ЭКОМ, 1996;

7.  Новиков Ф.,А., Яценко А.,Д. Microsoft Office в целом. - СПб.: ВHV-Санкт-Петербург, 1995;

8.  Фигурнов В.Э. - IBM PC для пользователя. - М.: Финансы и статистика,1995;

9.  Эрбс Х.-Э., Штольц О. Введение в программирование на языке Паскаль./Пер. с нем. - М.:, Мир, 1989;

10.  Хелворсон М. ,Янг М. Эффективная работа с Microsoft Office 95 /Пер. с англ. - СПб: Питер, 1996.


Информация о работе «Организация ввода-вывода. Обработка массивов. Структурированные данные»
Раздел: Информатика, программирование
Количество знаков с пробелами: 12099
Количество таблиц: 0
Количество изображений: 3

Похожие работы

Скачать
45101
1
0

... функционирования АИС. Автоматизированные инфор­мационные системы реализуют соответствующие информационные технологии. Автоматизированная информационная технология в налоговой системе — это совокупность методов, информационных процессов и программно-технических средств, объединенных в техно­логическую цепочку, обеспечивающую сбор, обработку, хранение, рас­пространение и отображение информации с ...

Скачать
162387
4
0

... схем «ухода» от налогов. Такие налоговые разработки, не направленные на уравнивание возможностей налогоплательщиков по использованию схем минимизации, исключающие тиражирование примененных методик, представляют особую ценность для развития бизнеса. 8 Труды молодых ученых № 1, 2008 Таким образом, общие принципы налоговой оптимизации можно сформулировать следующим образом: - законность, ...

Скачать
200225
20
0

... коммуникационного центра. 51 1. Реферат. В целях комплексной автоматизации документооборота, а также повышения качества диагностики и лечения онкологических больных в Мелитопольском межрайонном онкологическом диспансере, разработан проект информационно-диагностической системы, предназначенной для оперативного ввода, анализа и хранения графической, текстовой лечебно-диагностической информации и ...

Скачать
274963
85
0

... ячейка, а имя переменной превращается в адрес ячейки. Появление этого адреса происходит в результате работы специального оператора языка (NEW), однако его значение в большинстве случаев не используется при программировании на алгоритмических языках типа Паскаль. Условимся считать, что адрес ячейки, которая будет хранить переменную А, есть А. Или, другими словами, А - это общее имя переменной и ...

0 комментариев


Наверх