28
Составные типы данных Лекция 8- 9. Ломаско Павел Сергеевич June 13, 2022

Составные типы данных

  • Upload
    brac

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

Составные типы данных. Лекция 8-9. 16 сентября 2014 г. Ломаско Павел Сергеевич. План. Массивы. Строки. Файлы. Массивы. Понятие массива. Одномерные массивы. Массив – конечная последовательность однотипных элементов, имеющих определенные индексы. Одномерный массив целых чисел: - PowerPoint PPT Presentation

Citation preview

Page 1: Составные типы данных

Составные типы данных

Лекция 8-9.

Ломаско Павел СергеевичApril 21, 2023

Page 2: Составные типы данных

План

1. Массивы.

2. Строки.

3. Файлы.

Page 3: Составные типы данных

Массивы

Page 4: Составные типы данных

Понятие массива. Одномерные массивы.

Массив – конечная последовательность однотипных элементов, имеющих определенные индексы.

Одномерный массив целых чисел:

Размер – количество элементов

1 2 3 4 5 6 7

1 1 2 3 5 8 14

Page 5: Составные типы данных

Описание одномерного массива

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;

Page 6: Составные типы данных

Обращение к элементам

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.

Page 7: Составные типы данных

Процедура ввода одномерного массива

Const n=22;Type mytable=array[1..n] of integer;Var a:mytable;

Procedure massin(var m:mytable);Var i:integer;beginFor i:=1 to n do

beginwrite(‘Введите [’, i ,’]=’);readln(m[i]);end;

end;

Page 8: Составные типы данных

Процедура вывода одномерного массива

Const n=22;Type mytable=array[1..n] of integer;Var a:mytable;

Procedure massout(m:mytable);Var i:integer;beginwriteln(‘Вывод массива:');For i:=1 to n do

beginwriteln('[', i ,']=',m[i]);end;

end;

Page 9: Составные типы данных

Процедура задания одномерного массива случайным образом

Const n=22;Type mytable=array[1..n] of integer;Var a:mytable;

Procedure rand_massin(r:integer; var m:mytable);Var i:integer;beginFor i:=1 to n do

beginm[i]:=random(r);end;

end;

Page 10: Составные типы данных

Пример 1

Найти сумму элементов массива целых чисел размерности N.

Page 11: Составные типы данных

Пример 2

Найти максимальный элемент массива целых чисел размерности N, заданный случайным образом.

Page 12: Составные типы данных

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

1 2 3 4

1

2

3

Var a:array[1..3, 1..4] of integer;

Page 13: Составные типы данных

Процедура вводаtype mas=array[1..5, 1..6] of integer;var b:mas;Procedure d_massin(var m:mas);var i,j:integer;beginfor i:=1 to 5 dofor j:=1 to 6 do

beginwrite(‘Введите [ ‘ , i ,‘ , ‘ , j , ‘ ]=‘ );readln(m[i,j]);end;

end;

Page 14: Составные типы данных

Процедура выводаProcedure d_massout(m:mas);Var i,j:integer;beginwriteln(‘Вывод массива:');For i:=1 to 5 do

beginfor j:=1 to 6 do write(m[i,j]:5);writeln;

end;end;

Page 15: Составные типы данных

Строки

Page 16: Составные типы данных

Тип данных char.

Так же, как переменная типа integer может хранить одно целое число, переменная типа char может хранить один символ.

Var Alpha : char;Begin Alpha :='p'; Alpha :='+'; Alpha :=#56; //Cимвол ASCII Alpha :=#13; //Обозначение конца строки

Page 17: Составные типы данных

Строка. Тип данных string.

Строка может быть рассмотрена как одномерный массив символов.

Тип данных (string) определяет строки с максимальной длиной 255 символов или произвольной длины.

Var L : string;

City : string[30];

Page 18: Составные типы данных

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

1. Присваивание

s:=‘Это строка’;

2. Конкатенация (сложение)

S:= ‘Object '+‘Pascal'+‘!‘;

3. Сравнение (=, <>, >, <, >=, <=)

If S1=S2 then …

Page 19: Составные типы данных

Обращение

S:=‘Мама мыла раму’; S[11]:=‘Т’; S[12]:=‘o’;

Page 20: Составные типы данных

Стандартные подпрогаммы

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) - преобразует строку в число и выдает код правильности преобразования.

Page 21: Составные типы данных

Пример

Заменить во вводимой с клавиатуры строке буквы по следующему правилу:

а→я, п→б, ы →и

Результат вывести на экран.

Page 22: Составные типы данных

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

Page 23: Составные типы данных

Определение

Текстовый файл – это совокупность символьных данных, имеющая имя и хранимая во внешней памяти.

При считывании файла в оперативную память машины символы файла преобразуются в тот тип данных, который объявлен в программе.

Page 24: Составные типы данных

Режимы работы

С текстовыми файлами возможно 3 режима работы:

1. Чтение (директива reset)

2. Запись (директива rewrite)

3. Дозапись (директива append)

Page 25: Составные типы данных

Порядок работы с файлами

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);

Page 26: Составные типы данных

Пример

В файле input.txt находятся два целых числа, записать в файл output.txt их произведение.

Page 27: Составные типы данных

Для самостоятельной работы

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

Page 28: Составные типы данных

Спасибо за внимание!