СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Записи. обработка записей

Категория: Информатика

Нажмите, чтобы узнать подробности

Цель работы: научиться работать с записями; записывать инструкции присваивания; особое внимание уделить понятию переменной поля записи, очень важного в программировании.

 

Краткие теоретические сведения.

Запись – это  последовательность байтов на носителе, ограниченная с двух сторон специальны­ми признаками. Такое определение дает представление о за­писи как о единице обмена между внешней и оперативной памятью компьютера. Однако сама запись бывает сложной структурой, содержащей разные данные. Запись может, на­пример, соответствовать строке ведомости заработной платы, в которой указаны фамилия и несколько чисел, или строке классного журнала, где также содержатся фамилия и оценки. Таким образом, запись понимается как сложная конструкция. Поэтому в Паскале и других программных системах слово «за­пись» имеет двойной смысл: это и сложная структура, и еди­ница данных на носителе (например, диске).

Просмотр содержимого документа
«Записи. обработка записей»

Лабораторная работа № 12

ЗАПИСИ. ОБРАБОТКА ЗАПИСЕЙ


Цель работы: научиться работать с записями; записывать инструкции присваивания; особое внимание уделить понятию переменной поля записи, очень важного в программировании.


Краткие теоретические сведения.

Запись – это последовательность байтов на носителе, ограниченная с двух сторон специальны­ми признаками. Такое определение дает представление о за­писи как о единице обмена между внешней и оперативной памятью компьютера. Однако сама запись бывает сложной структурой, содержащей разные данные. Запись может, на­пример, соответствовать строке ведомости заработной платы, в которой указаны фамилия и несколько чисел, или строке классного журнала, где также содержатся фамилия и оценки. Таким образом, запись понимается как сложная конструкция. Поэтому в Паскале и других программных системах слово «за­пись» имеет двойной смысл: это и сложная структура, и еди­ница данных на носителе (например, диске).

Запись — совокупность разнородных данных, описываемых и обрабатываемых как единое целое.

Данные, из которых состоит запись, называются ее полями. Поля могут быть простыми данными или составными, напри­мер массивами или записями. С помощью записей удобно описывать свойства объектов, хранить их совместно. Из запи­сей состоят базы данных, включающие описание нескольких объектов. Описание записи состоит из ключевого слова record, после которого указываются имена полей и тип каждого поля. Тип поля отделяется от имени двоеточием. Описание записи за­канчивается словом end и точкой с запятой. Записи описыва­ются в разделе типов данных type, В этом разделе указывается имя класса объектов (имя типа) и описание этого класса. Для каждого объекта класса имеется свое имя в разделе перемен­ных var с описанием данного типа. Это имя используется в дальнейшем в программе.

Пример. Объект — физическое тело с измерениями а, b, с (длина, ширина и высота). Описание может иметь вид а), когда для каждого поля указан тип данного, или б), когда подряд идущие однотипные поля описаны совместно:

a) type z = record б) type z = record

a: integer; a, b, c: integer

b: integer; end;

c: integer var x: z;

end;

var x: z;

Пример. Объект — товар, характеризуется названием и ценой:

type tovar = record

sign: string [ 20];

price: real

end;

Пример. Объект — дата рождения: день, месяц, год. День можно указать как диапазон значении, такой тип данных называется интерваль­ным. Этот тип используется для целочислен­ных и символьных данных в описаниях, а также как метка опера­тора варианта. Интервальным типом задаются значения констант в разделе const.

type date_of_birth = record

day: 1 ..31;

month: string [10];

year: integer

end;

var date: date_of_birth;

Записи могут объединяться в массивы. Массив записей описывается в разделе type или var. Раздел пере­менных при объекте товар может иметь вид:

var x: array [ 1.. 100 ] of tovar; y: tovar;

x массив записей, к каждому элементу которого использу­ется обычное обращение, например х[ i ]; у простая пере­менная.

Для обращения к полю записи применяется сложное имя, состоящее из двух имен, разделенных точкой. Первое из них — имя переменной типа «запись» из раздела var, второе — имя поля этой записи из раздела type. Так, для товаров имена по­лей в программе имеют вид:

у. sign, у. price, x [ 1 ]. sign, x [ i ]. price

Содержание сведений

Ф. И. 0.

Должность

Дата рождения

Зарплата

Имя поля записи

name

position

date

salary

Тип данных поля

String [20]

string [10]

date_of_birth

real

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

структуру типа «запись» (в виде поля даты рождения), которую также требуется уточнить и опи­сать в разделе типов раньше, чем запись о работнике.

В описании данной записи используется тип «день рожде­ния» (date_oi_birth) из примера 3. Общее описание записи имеет вид:

type date_of_birth = record

day: 1 ..31;

month: string [10];

year: integer

end;

worker = record

name : string [ 20 ];

position: string [ 10 ];

date : date_of_birth;

salary : real

end;

var x: array [ 1. .7] of worker; w: worker;

Поле записи date содержит запись из трех полей. При фор­мировании имени поля этой внутренней записи необходимо использовать тройное имя: имя переменной раздела var, имя поля записи worker и имя поля записи date_of_birth. Напри­мер, для переменной w обращение к месяцу рождения работ­ника в программе будет иметь вид: w.date.month

В программе ввод и вывод записи производится по полям, но можно присвоить одной записи значение другой, при этом происходит копирование области памяти: х [ 1 ]: = w;

Оператор присоединения. Для обработки записи использу­ется оператор with, который позволяет указать один раз имя записи из раздела переменных, а затем во всей области дейст­вия оператора указывать только имена полей этой записи из раздела type. После слова with можно написать несколько имен полей из раздела переменных.

Оператор присоединения имеет вид:

with список имен записей do оператор;

Оператор бывает простым или составным, ограниченным операторными скобками. Список имен записей может состо­ять из одного имени.

Пример. Дан массив записей, содержащий сведения о работниках пред­приятия (пример предыдущий). Напечатать:

1) список бухгалтеров;

2) список работников от 30 до 50 лет;

3) среднюю заработную плату по предприятию.

Для записей этой задачи определяются их структура, имена и типы полей. Затем опреде­ляется имя массива записей, который используется в про­грамме, и вспомогательные переменные, а также имена ре­зультатов. Программа

program Р37;

const n =10;

type date_of_birth = record

day: 1 .. 31;

month:string [ 10 ];

year: integer

end;

worker = record

name : string [ 20 ];

position: string [ 10 ];

date : date_of_birth;

salary : real

end;

var x: array [ 1..n] of worker; w: worker; i, j, g integer; S: real;

p: string [ 10 ];

begin

{формирование массива записей}

for i: = 1 to n do

with x [ i ] do

begin

writeln (‘сведения о’, i, ‘работнике’);

writeln (‘фамилия, инициалы’);

readln(name);

writeln (‘должность’);

readln(position);

writeln (‘число, месяц и год рождения’);

readln(date.day, date.month, date.year);

writeln (‘зарплата’);

readln(salary);

end;

{решение задачи 1) — печатание списка бухгалтеров}

p: = ‘бухгалтер’;

j: = 0; {счетчик строк списка — количество бухгалтеров}

for i: = 1 to n do

with x [ i ] do

if p = position

then begin

j:=j+1;

writeln (j, ‘.’, name); {после номера в списке печатается точка и фамилия}

end;

{решение подзадачи 2) — список работников от 30 до 50 лет}

writeln (‘список работников от 30 до 50 лет’);

j: = 0;

write (‘введите текущий год в виде четырехзначного числа’);

readln(g);

for i: = 1 to n do

with x [ i ] do

if (g — date.year and (g — date.year 30)

then begin

j:= j+1;

writeln (j, ‘.’, name)

end;

{решение задачи 3) — вычисление средней зарплаты}

S: = 0;

for i: = 1 to n do

S: = S + x[ i ].salary;

write (‘средняя зарплата = ‘, S / n: 10: 2)

end.


Методические указания по работе и задания

Условие задачи

1

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

2

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

3

Составьте программу, осуществляющую приведение подобных членов многочлена с использованием структуры данных «запись»

4

Опишите, используя структуру записи, книги (автор, название, год издания). Составить программу вывода на экран упорядоченного списка книг (по фамилии автора)

5

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

6

Опишите, используя структуру записи, экзаменационную ведомость в которой проставлены оценки за четыре экзамена. Составить программу выводящую на экран количество студентов несдавших экзамены, сдавших на 5, сдавших на 4 и5.

7

Опишите, используя структуру записи, книги (автор, название, год издания, номер шкафа). Составить программу вывода на экран упорядоченного списка книг (по фамилии автора в каждом шкафу)

8

Запись содержит информацию о дневной температуре (число, месяц, температура). Составить программу вычисляющую среднемесячную температуру.

9

Опишите используя структуру записи, сведения о товаре ( наименование, цена, количество). Составить программу определяющую самый дорогой и самый дешевый товар.

10

Опишите объект «работник предприятия», используя запись

11

Опишите используя структуру записи, сведения о товаре ( наименование, цена, количество). Составить программу определяющую на какую сумму имеется товар.

12

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

13

Опишите, используя структуру записи, данные о владельце автомобиля (фамилия, марка автомобиля, гос. номер, цвет). Составьте программу, осуществляющую поиск владельца автомобиля «Жигули» белого цвета с фиксированным гос. номером.

14

Опишите объект «ученик 11 класса», используя запись

15

Создайте базу данных для своего класса и с ее помощью получите сведения о самом старшем ученике в классе;

б) о самом младшем ученике;

в) об оценках каждого ученика по изучаемым в классе предметам;

г) об отличниках;

д) о самом отстающем ученике;

е) о среднем балле каждого ученика по оценкам последней четверти;

ж) о средней успеваемости класса по всем предметам;

з) о тех, кто пропускает уроки чаще, чем раз в неделю.


ВОПРОСЫ К ЗАЩИТЕ ЛАБОРАТОРНОЙ РАБОТЫ

1. Как в информатике понимается слово «запись»?

2. Как обратиться в программе к полю записи?

3. Что необходимо сделать, чтобы описать в программе объект, ха­рактеристики которого — разнотипные данные?

4. Что необходимо сделать, чтобы описать в программе объект, ха­рактеристики которого — однотипные данные?

5. Объясните, что означают имена: х[ 2 ].position, x[ 5 ].date.month, w.name.

6. Для чего используется оператор with?



Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!