Двумерные массивы


Begin

Работа с элементами переменной строкового типа

Линейные массивы

Установка атрибутов файла

Текстовые файлы

Двумерные массивы

Линейные массивы

ФАЙЛЫ И ФАЙЛОВАЯ СТРУКТУРА

КОДИРОВАНИЕ ИНФОРМАЦИИ

 

1 бит

0 или 1

2 бита

00 01 10 11

3 бита

000 001 010 011 100 101 110 111

т битов – N чисел

N=2m,

где N— количество независимых кодируемых значений;

т — разрядность двоичного кодирования, принятая в данной системе.

 

19:2 = 9+1 9:2=4+1 4:2=2+0 2:2=1+0

Таким образом, 1910= 100112.

 

Для кодирования действительных чисел используют 80-разрядное кодирование. При этом число предварительно преобразуется в нормализованную форму:

 

3,1415926 = 0,31415926 • 101

300 000 = 0,3-106

123 456 789 = 0,123456789 • 1010


Табл. 2

 

Десятичное число Двоичное число Байт
0000 0001
... ... ...

 

1 Мбайт = 1024 Кбайт = 1020 байт

1 Гбайт = 1024 Мбайт = 1030 байт

1 Тбайт = 1024 Гбайт = 1040 байт

Текст.doc –Word

Диаграмма.xls –Excel

*.dbf –Access

*.pas – программа Паскаль и т.д.

 

Пример записи полного имени файла в общем виде:

<имя носителя>\<имя каталога-1>\...\<имя каталога-М>\<собственное имя файла>

 

С:\АВТОМАТИЧЕСКИЕ АППАРАТЫ\ВЕНЕРА\АТМОСФЕРА\ Результаты

С:\РАДИОЛОКАЦИЯ\ВЕНЕРА\РЕЛЬЕФ\Результаты

 


Описание массивов:

Var A: array[ 1. . 30 ] of byte;

S: array[ 1. . 30 ] of string;

SO: array[ 1. . 30 ] of string[12];

Присвоение значений элементам массива:

A[1]:= 5; A[2]:= 4; и т. д.

S[1]:= 'Иванов'; S[2]:= 'Петров'; и т. д.

 

Присвоение значения элементам массива "y" по зависимости:

y=sin(x), где x= Pi * i/180, 0<= i <=180 .

For i:= 0 to 180 Do y[i]:= sin(Pi * i/180);

 

Присвоение случайных значений в диапазоне от -30 до +40 ста элементам массива "R":

Randomize; for i:=1 to 100 Do R[i]:= - 30+Random(71);

 

Присвоение значений семи элементам массива "A" оператором Readln:

For i:= 1 to 7 Do begin Write('Введите A[',i,'] ='); Readln( A [ i ] ) end;

 


Вывод "шапки таблицы"

For j:=1 to 66 do Write('-'); Writeln;

For j:=1 to 3 do Write('|_ _ Фамилия _ _| _ оценка _|'); Writeln;

For j:=1 to 66 do Write('-'); Writeln;

 

Вывод значений ста элементов массивов "S" и "A" в три пары колонок:

For i:=1 to 100 do begin Write('|',s[i]:11,'|',a[i]:8,'|');

if (i mod 3) = 0 Then Writeln;

if (i mod 60) = 0 then readln end;

Определение суммы элементов массива, наибольшего (наименьшего) элемента и создание новых массивов, удовлетворяющие некоторому условию:

s:=0; for i:=1 to 100 do s:=s+a[i];{s-сумма элементов массива}

a_max:=a[1]; for i:=1 to 100 do{поиск наибольшего элемента a[j]}

if a[i]>a_max then begin a_max:=a[i]; j:=i end;

j:= 0; k:= 0;

for i:=1 to 100 do {создание новых массивов с элементами: b[j]>=0, c[k]<0}

if a[i]>=0 then begin j:=j+1; b[j]:=a[i] end

else begin k:= k+1; c[k]:=a[i] end;

j:=0; k:=8;

for i:=1 to 100 do{создание массива номеров "M" для элементов: a[i]>a[k]}

if a[i]>a[k] then begin j:=j+1; M[j]:=i end;

Var S: string; C: char;

S:='Москва', то S[1]='М', S[2]='о' и т. д.

C:= S[1];

 

Перестановка местами элементов массива:

N:= ord(S[0]);{число символов в переменной "S" хранится в переменной S[0]}

for i:= 1 to N div 2 do{Функция "ord" преобразует символьный тип в целый}

begin C:= S[i];

S[i]:= S[N-i+1];

S[N-i+1]:= C

end;

Writeln(S);{ исходное слово выведется справа налево: "авксоМ" }


Var A:array[1..30,1..7] of byte;

Случайный ввод с последующим выводом двумерного массива оценок группы студентов по нескольким предметам:

for i:= 1 to N do

for j:= 1 to M do

A[i, j]:= random(4)+2;{ввод эл-в}

Writeln;

Write('Фамилия\\Предметы:|');{печать шапки таблицы}

For i:=1 to M do write(P[i]:9,'_ |');

for i:= 1 to N do{вывода элементов массива "A"}


<== предыдущая лекция | следующая лекция ==>
ПРЕДСТАВЛЕНИЕ И ОБРАБОТКА ДАННЫХ | Установка атрибутов файла