Структуры (записи) Программирование на языке Паскаль.

Презентация:



Advertisements
Похожие презентации
1 Записи 2 Запись – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Свойства:
Advertisements

Программирование на языке Паскаль Файлы комбинированного типа (записей)
Указатели Динамические структуры данных. 2 Статические данные переменная (массив) имеет имя, по которому к ней можно обращаться размер заранее известен.
Статичні структури даних.. 2 Статические данные переменная (массив) имеет имя, по которому к ней можно обращаться размер заранее известен (задается при.
Тема: Комбинированный тип данных. Цель:. Комбинированный тип данных – это структурированный тип, состоящий из фиксированного числа компонент разного типа.
Записи Комбинированный тип. Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поля записи могут быть.
1 Пример: Для каждого из 25 учеников класса известны фамилия и оценки (в баллах) по пяти дисциплинам. Требуется вычислить среднюю оценку каждого ученика.
Записи Структурированный тип. Type =record end; Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поля.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Записи – структурированный тип данных, состоящий из отдельных компонентов (полей) различного типа. Запись.
Записи 1.Повторение структуры данных МАССИВ 2.Определение структуры данных ЗАПИСЬ 3.Описание типа данных ЗАПИСЬ в Pascal 4.Решение задачи с использованием.
Комбинированный тип данных (Record) Решение задач Вербицкая Ольга Владимировна, Заозерная школа 16.
Тема урока: Одномерные массивы. - Где в жизни мы можем встретиться с таблицами?
PROGRAM example1; const m=100; var a : ARRAY [1.. m] of INTEGER; i,k,n,q : INTEGER; BEGIN readln (n); randomize; WRITELN('Полученный массив:' ); FOR i.
© М.Е.Макарова
Одномерные массивы целых чисел. 9 класс
© М.Е.Макарова
1 Программирование на языке Паскаль Тема 1. Массивы.
© М.Е.Макарова
Программирование на языке Паскаль ЗАПИСИ в Паскале (RECORD)
Транксрипт:

Структуры (записи) Программирование на языке Паскаль

2 Структуры (в Паскале – записи) Структура (запись) – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Свойства: автор (строка) название (строка) год издания (целое число) количество страниц (целое число) Задача: объединить эти данные в единое целое Размещение в памяти авторназвание год издания количество страниц 40 символов80 символовцелое

3 Одна запись readln(Book.author); // ввод readln(Book.title); Book.year := 1998; // присваивание if Book.pages > 200 then // сравнение writeln(Book.author, '.', Book.title); // вывод readln(Book.author); // ввод readln(Book.title); Book.year := 1998; // присваивание if Book.pages > 200 then // сравнение writeln(Book.author, '.', Book.title); // вывод Объявление (выделение памяти): var Book: record author: string[40]; // автор, строка title: string[80]; // название, строка year: integer;// год издания, целое pages: integer; // кол-во страниц, целое end; var Book: record author: string[40]; // автор, строка title: string[80]; // название, строка year: integer;// год издания, целое pages: integer; // кол-во страниц, целое end; название запись поля Обращение к полям: Для обращения к полю записи используется точка! ! !

4 Новый тип данных – запись const N = 10; var Book: TBook; // одна запись aBooks: array[1..N] of TBook; // массив const N = 10; var Book: TBook; // одна запись aBooks: array[1..N] of TBook; // массив Объявление типа: type TBook = record author: string[40]; // автор, строка title: string[80]; // название, строка year: integer;// год издания, целое pages : integer; // кол-во страниц, целое end; type TBook = record author: string[40]; // автор, строка title: string[80]; // название, строка year: integer;// год издания, целое pages : integer; // кол-во страниц, целое end; Память не выделяется! ! ! Объявление переменных и массивов: TBook – Type Book («тип книга») – удобно!

5 Оператор with with переменная, переменная,...переменная do begin оператор; … опреатор; end; with переменная, переменная,...переменная do begin оператор; … опреатор; end; Этот оператор используется для удобства работы с переменными типа record (запись). Объявление: В операторе, следующем после слова do, к полям одной или большего количества переменных типа записи можно обращаться, используя только их идентификаторы (без указания имени переменной записи).

6 Оператор with with Date[i] do begin Month:=1; Year:=Year+1; end; with Date[i] do begin Month:=1; Year:=Year+1; end; Пример: Это эквивалентно: Date[I].Month:=1; Date[I]. Year:=Date[I].Year+1; Date[I].Month:=1; Date[I]. Year:=Date[I].Year+1;

© С.В.Кухта, Оператор присоединения:пример Type Student = Record F1, F2, F3 : Name; Day : 1..31; Month : 1..12; Year : integer; StudDoc : integer end; Var A : Student; Type Student = Record F1, F2, F3 : Name; Day : 1..31; Month : 1..12; Year : integer; StudDoc : integer end; Var A : Student; Значение переменной A можно изменить операторами: A.F1 := 'Иванов '; A.F2 := 'Илья '; A.F3 := 'Иннокентьевич '; A.Day := 14; A.Month := 9; A.Year := 1976; A.StudDoc := 123; A.F1 := 'Иванов '; A.F2 := 'Илья '; A.F3 := 'Иннокентьевич '; A.Day := 14; A.Month := 9; A.Year := 1976; A.StudDoc := 123;

8 Оператор присоединения:пример Предпочтительнее использовать следующий вариант: with A do begin F1 := 'Иванов '; F2 := 'Илья '; F3 := 'Иннокентьевич '; Day := 14; Month := 9; Year := 1976; StudDoc := 123; end; { оператора with } with A do begin F1 := 'Иванов '; F2 := 'Илья '; F3 := 'Иннокентьевич '; Day := 14; Month := 9; Year := 1976; StudDoc := 123; end; { оператора with }

9 Массив записей Объявление (выделение памяти): const N = 10; var aBooks: array[1..N] of record author: string[40]; title: string[80]; year: integer; pages: integer; end; const N = 10; var aBooks: array[1..N] of record author: string[40]; title: string[80]; year: integer; pages: integer; end; Books[1]... Books[10] authortitleyearpages

10 Массив записей for i:=1 to N do begin readln(aBooks[i].author); readln(aBooks[i].title);... end; for i:=1 to N do if aBooks[i].pages > 200 then writeln(aBooks[i].author, '.', aBooks[i].title); for i:=1 to N do begin readln(aBooks[i].author); readln(aBooks[i].title);... end; for i:=1 to N do if aBooks[i].pages > 200 then writeln(aBooks[i].author, '.', aBooks[i].title); Обращение к полям: aBooks[i].author – обращение к полю author записи aBooks[i] ! !