Официальный сайт tali-sk 24/7/365

Вы не зарегистрированы

Авторизация


Бумажкам.Нет!


Pascal. Записи.

Фото пользователя Валентина Вениаминовна Пономарёва
Размещено: Валентина Вениаминовна Пономарёва - пт, 27/02/2009 - 11:42

Урок по теме: Программирование на языке Pascal.

Цель Ввести понятие структурированных типов. Познакомить учащихся с записями и их реализацией на Pascal.
         
 Теоретический материал.
Выделяют четыре основные разновидности структурированных типов:
  1. регулярный тип (массивы);
  2. комбинированный тип (записи);
  3.  файловый тип (файлы);
  4. множественный тип (множества).
Во многих экономических и информационных задачах обрабатываются ведомости, документы, каталоги, списки. При этом появляется необходимость объединять данные различного типа в одну группу. Для работы с группой данных в языке программирования Паскаль введено понятие запись. Запись представляет собой совокупность ограниченного числа данных различного типа. Понятие записи рассмотрим на примере ведомости списка учащихся с их оценками
 

N п/п

Фамилия, имя

Оценка

1

Антонов Саша

5 4 4 4 4

2

Озеров  Коля

5 3 4 4 3

3

Хлебников

4 5 5 2 4

 Каждая строка в этой ведомости состоит из отдельных элементов - данных различного типа:

а) порядковый номер - целое десятичное число;
б) Фамилия имя. - массив символов;
в) Оценки - массив целых чисел.
Эти данные можно объединить в одну группу и считать записью.
Для представления такой разнородной, но логически связанной информации удобно использовать комбинированный тип. Необходимо отметить, что в данном случае отдельные компоненты комбинированного типа, ввиду их различной природы, не могут идентифицироваться порядковыми номерами (индексами), как в массивах; поэтому для обозначения компонент используются индикаторы. Таким образом, описание комбинированного типа представляет собой список описаний его элементов (которые называются также полями записи); каждое описание похоже на описание простой переменной. Список полей начинается служебным словом record и должен завершаться служебным словом end. Объявление записи в разделе переменных VAR имеет следующий вид:
 
 VAR имя записи: RECORD
имя элемента 1: тип;
имя элемента 2: тип;
....................
имя элемента n: тип;
END;
Для примера, приведенного выше, описание комбинированного типа может выглядеть следующим образом:
VAR B: RECORD
N: INTEGER;
FIO: PACKED ARRAY[1..20] OF CHAR;
OCENKA: ARRAY[1..3] OF INTEGER;
END;
Рассмотрим более универсальную форму объявления записи - с использованием раздела типов TYPE.
TYPE имя типа = RECORD
имя элемента 1: тип;
имя элемента 2: тип;
...................
имя элемента n: тип;
END;

VAR имя записи: имя типа;
TYPE BEDOM=RECORD
N: INTEGER;
FIO: PACKED ARRAY[1..20] OF CHAR;
OCENKA: ARRAY[1..3] OF INTEGER;
END;
VAR B:BEDOM;
Доступ к элементам (полям) записей производится с помощью конструкции, называемой селектором записи и имеющей следующий общий вид: R.F, где R - переменная комбинированного типа; F - идентификатор поля.
Примеры. Порядковому номеру N записи B присвоить значение 2: B.N:=2; Найти сумму 3 оценок S:=b.ocenka[1]+b.ocenka[2]+b.ocenka[3]
ЗАДАЧА 1. Для каждого ученика вводяться: фамилия и оценка по 5 дисциплинам. Вычислить средний балл для каждого.
Решение. При вводе данных необходимо помнить, что под фамилию отводится 15 символов, следовательно, оценки необходимо вводить, начиная с 16 позиции. Например, Антонов Саша. 4 3 5 5 4
program bal;
type str=record
fam:string[15] ;
b1, b2, b3, b4, b5:2..5;
sb:real;
end;
var tbl: array[1..25] of str;
i: integer;
begin
for i:=1 to 5 do
begin
read(tbl[i].fam);
read(tbl[i].b1,tbl[i].b2,tbl[i].b3,tbl[i].b4,tbl[i].b5);
readln;
end;
for i:=1 to 5 do
begin
tbl[i].sb:=(tbl[i].b1+tbl[i].b2+tbl[i].b3+tbl[i].b4+tbl[i].b5)/5;
write(tbl[i].fam,tbl[i].sb);
writeln;
end;
end.
Для более компактной записи селекторов Pascal имеет специальный оператор присоединения, позволяющий в ряде случаев опускать левые части секторов. Обращение к элементам записи происходит с помощью уточненного имени. Оператор присоединения позволяет упростить обращение к элементу записи. Имя записи выносится в заголовок оператора присоединения, а в блоке используются только имена элементов записи. Общая форма оператора присоединения:
WITH имя записи DO
begin
операторы, содержащие имена элементов записи
end;
WITH B DO
begin
N:=2;
S:=ocenka[1]+ocenka[2]+ocenka[3];
read(n);
end;
РЕШЕНИЕ задачи с оператором присоединения:
program sbal;
type str=record
fam:string[15];
b1,b2,b3,b4,b5:2..5;
sb:real;
end;
var
tbl:array[1..25] of str;
i,j,k,m:integer;
x:real;
begin
readln(m);
for i:=1 to m do
with tbl[i] do
begin
read(fam,b1,b2,b3,b4,b5);
readln;
end;
for i:=1 to m do
with tbl[i] do
begin
sb:=(b1+b2+b3+b4+b5)/5;
write(fam,sb);
writeln;
end;
end.
Отладка программы
Обратить внимание на ввод записей и проанализировать результаты вывода.
 
 

»  Тэги к этому документу:
»  Размещено в сообществах:   
Дневник обучения группы сетевых методистов Свердловской области
 
Приглашаем на официальную площадку Года учителя!

Смотреть видео онлайн


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн