Методическое пособие для учащихся 9-11 классов средних общеобразовательных школ программирование на языке pascal
Вид материала | Методическое пособие |
СодержаниеЗаписи. обработка записей Краткие теоретические сведения. Оператор присоединения. Вопросы к защите лабораторной работы |
- Методическое пособие и контрольные задания для учащихся общеобразовательных школ учебно-тренировочные, 1398.7kb.
- Учебно-методическое пособие для учителей общеобразовательных школ Издательство, 2357.68kb.
- Областная юниорская олимпиада по физике среди учащихся 7-8 классов, 24.46kb.
- Учебное пособие для учащихся 10 (11) классов «Экология Москвы и устойчивое развитие», 879.38kb.
- Конкурс проводится с целью стимулирования интереса школьников к изучению истории родного, 50.93kb.
- Методическое пособие для проведения занятий по правилам пожарной безопасности с учащимися, 235.71kb.
- Методическое пособие для учителей, психологов, воспитателей общеобразовательных учреждений, 2321.32kb.
- Учебное пособие для преподавателей общеобразовательных школ, 98.81kb.
- Программирование на языке высокого уровня, 59.92kb.
- Программа учебного курса «экология москвы и устойчивое развитие» для 10 классов средних, 707.86kb.
ЗАПИСИ. ОБРАБОТКА ЗАПИСЕЙ
Цель работы: научиться работать с записями; записывать инструкции присваивания; особое внимание уделить понятию переменной поля записи, очень важного в программировании.
Краткие теоретические сведения.
Запись – это последовательность байтов на носителе, ограниченная с двух сторон специальными признаками. Такое определение дает представление о записи как о единице обмена между внешней и оперативной памятью компьютера. Однако сама запись бывает сложной структурой, содержащей разные данные. Запись может, например, соответствовать строке ведомости заработной платы, в которой указаны фамилия и несколько чисел, или строке классного журнала, где также содержатся фамилия и оценки. Таким образом, запись понимается как сложная конструкция. Поэтому в Паскале и других программных системах слово «запись» имеет двойной смысл: это и сложная структура, и единица данных на носителе (например, диске).
Запись — совокупность разнородных данных, описываемых и обрабатываемых как единое целое.
Данные, из которых состоит запись, называются ее полями. Поля могут быть простыми данными или составными, например массивами или записями. С помощью записей удобно описывать свойства объектов, хранить их совместно. Из записей состоят базы данных, включающие описание нескольких объектов. Описание записи состоит из ключевого слова 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 < 50) 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?
Лабораторная работа №13