Составные типы данных Лекция 8-9. Ломаско Павел Сергеевич9 августа 2012 г.
План 1. Массивы. 2. Строки. 3. Файлы.
Массивы
Понятие массива. Одномерные массивы. Массив – конечная последовательность однотипных элементов, имеющих определенные индексы. Одномерный массив целых чисел: Размер – количество элементов
Описание одномерного массива 1. Простое описание Var name: array [x..y] of type; Пример: Var Fib:array[1..7] of integer; 2. С помощью констант Пример: Const n=15; Var R:array [1..n] of real; 3. С помощью пользовательских типов Пример: Const m=22; Type mytable=array[1..m] of char; Var a,b,c:mytable;
Обращение к элементам Var с:array[1..3] of integer; Begin c[1]:=1; c[2]:=c[1]+5; Readln(c[3]); Writeln (c[1]:4, c[2]:4, c[3]:4); End.
Процедура ввода одномерного массива Const n=22; Type mytable=array[1..n] of integer; Var a:mytable; Procedure massin(var m:mytable); Var i:integer; begin For i:=1 to n do begin write(Введите [, i,]=); readln(m[i]); end;
Процедура вывода одномерного массива Const n=22; Type mytable=array[1..n] of integer; Var a:mytable; Procedure massout(m:mytable); Var i:integer; begin writeln(Вывод массива:'); For i:=1 to n do begin writeln('[', i,']=',m[i]); end;
Процедура задания одномерного массива случайным образом Const n=22; Type mytable=array[1..n] of integer; Var a:mytable; Procedure rand_massin(r:integer; var m:mytable); Var i:integer; begin For i:=1 to n do begin m[i]:=random(r); end;
Пример 1 Найти сумму элементов массива целых чисел размерности N.
Пример 2 Найти максимальный элемент массива целых чисел размерности N, заданный случайным образом.
Двумерные массивы Var a:array[1..3, 1..4] of integer;
Процедура ввода type mas=array[1..5, 1..6] of integer; var b:mas; Procedure d_massin(var m:mas); var i,j:integer; begin for i:=1 to 5 do for j:=1 to 6 do begin write(Введите [, i,,, j, ]= ); readln(m[i,j]); end;
Процедура вывода Procedure d_massout(m:mas); Var i,j:integer; begin writeln(Вывод массива:'); For i:=1 to 5 do begin for j:=1 to 6 do write(m[i,j]:5); writeln; end;
Строки
Тип данных char. Так же, как переменная типа integer может хранить одно целое число, переменная типа char может хранить один символ. Var Alpha : char; Begin Alpha :='p'; Alpha :='+'; Alpha :=#56; //Cимвол ASCII Alpha :=#13; //Обозначение конца строки
Строка. Тип данных string. Строка может быть рассмотрена как одномерный массив символов. Тип данных (string) определяет строки с максимальной длиной 255 символов или произвольной длины. Var L : string; City : string[30];
Операции над строками 1. Присваивание s:=Это строка; 2. Конкатенация (сложение) S:= Object '+Pascal'+!; 3. Сравнение (=, , >, =,
Обращение S:=Мама мыла раму; S[11]:=Т; S[12]:=o;
Стандартные подпрогаммы Delete (Str, Poz, N) - удаление N символов строки Str, начиная с позиции Poz. Insert (What, Where, Poz) - вставка строки What в строку Where, начиная с позиции Poz. Copy (Str, Poz, Nstr) - выделяет строку длиной Nstr, начиная с позиции Poz, из строки Str. Concat (Str1,Str2,...,StrN) - выполняет сцепление строк в том порядке, в каком указаны в списке параметров. Poz (What, Where) - обнаруживает первое появление подстроки What в строке Where. UpCase (Ch) - преобразует строчную букву в прописную. Str (Number, Stroka) - преобразует число в строку. Val (Stroka,Number,Code) - преобразует строку в число и выдает код правильности преобразования.
Пример Заменить во вводимой с клавиатуры строке буквы по следующему правилу: ая, пб, ы и Результат вывести на экран.
Текстовые файлы
Определение Текстовый файл – это совокупность символьных данных, имеющая имя и хранимая во внешней памяти. При считывании файла в оперативную память машины символы файла преобразуются в тот тип данных, который объявлен в программе.
Режимы работы С текстовыми файлами возможно 3 режима работы: 1. Чтение (директива reset) 2. Запись (директива rewrite) 3. Дозапись (директива append)
Порядок работы с файлами 1. Описать файловую переменную var f : text; 2. Ассоциировать файловую переменную с файлом на диске assign(f, input.txt); 3. Открыть файл в соответствующем режиме Reset(f); / Rewrite(f); / Append(f); 4. Произвести чтение/запись Readln(f, a, b, c); / Writeln(f, Это текстовый файл!); 5. Закрыть файл Close(f);
Пример В файле input.txt находятся два целых числа, записать в файл output.txt их произведение.
Для самостоятельной работы Все занятия дома прорешать! Лекции и вопросы к зачету:
Спасибо за внимание!