280 likes | 500 Views
Составные типы данных. Лекция 8-9. 16 сентября 2014 г. Ломаско Павел Сергеевич. План. Массивы. Строки. Файлы. Массивы. Понятие массива. Одномерные массивы. Массив – конечная последовательность однотипных элементов, имеющих определенные индексы. Одномерный массив целых чисел:
E N D
Составные типы данных Лекция 8-9. 16 сентября 2014 г. Ломаско Павел Сергеевич
План • Массивы. • Строки. • Файлы.
Понятие массива. Одномерные массивы. • Массив – конечная последовательность однотипных элементов, имеющих определенные индексы. • Одномерный массив целых чисел: • Размер – количество элементов индексы значения
Описание одномерного массива 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; 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; 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; end;
Пример 1 Найти сумму элементов массива целых чисел размерности N.
Пример 2 Найти максимальный элемент массива целых чисел размерности N, заданный случайным образом.
Двумерные массивы j i 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 to5 do for j:=1 to6 do begin write(‘Введите [‘, i ,‘,‘,j,‘]=‘); readln(m[i,j]); end; 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; end;
Строки 'Hello, world!'
Тип данных 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. Сравнение (=, <>, >, <, >=, <=) If S1=S2 then …
Обращение • 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 режима работы: • Чтение (директива reset) • Запись (директива rewrite) • Дозапись (директива 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 их произведение.
Для самостоятельной работы 1. http://www.pascaler.ru/pascal/arrays/ 2. http://www.pascaler.ru/pascal/lines/ 3. http://www.pascaler.ru/pascal/filetype Все занятия дома прорешать! Лекции и вопросы к зачету: http://lomasko.com/load/informatika/6