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

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

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

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

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

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

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

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

Итоги урока

Записи в паскале

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

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

Данная разработка применялась на уроке информатики

Просмотр содержимого документа
«Записи в паскале»

Записи (Record)  в Рascal ABC

Записи (Record) в Рascal ABC

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

Понятие

Запись  – это структура, состоящая из фиксированного числа компонент, называемых полями.

Данные одного поля разных записей имеют один и тот же тип , а разных полей могут иметь разные типы. 

Пример. Данные комплексного вида можно описать переменной типа  record . type complex = record re, im: real end; var c: complex; здесь  complex  – имя типа, а  c  – имя переменной. Переменная c состоит из двух полей:  re  и  im , имеющих один и тот же тип (real). Эти поля переменной c обозначаются как  c.re  и  c.im .

Пример.

Данные комплексного вида можно описать переменной типа  record .

type complex = record

re, im: real end;

var c: complex;

здесь  complex  – имя типа, а  c  – имя переменной. Переменная c состоит из двух полей:  re  и  im , имеющих один и тот же тип (real). Эти поля переменной c обозначаются как  c.re  и  c.im .

Пример. Даты каких-либо событий можно описать следующим образом: type date = record month: 1..12; day: 1..31; year: integer end; var d: date; В этом примере описан тип  date  и переменная  d , принадлежащая этому типу.

Пример.

Даты каких-либо событий можно описать следующим образом:

type date = record

month: 1..12;

day: 1..31;

year: integer

end;

var d: date;

В этом примере описан тип  date  и переменная  d , принадлежащая этому типу.

Например, чтобы заслать в d дату 12.01.2003, надо выполнить следующие операторы: d.month := 1; d.day := 12; d.year := 2003;

Например, чтобы заслать в d дату 12.01.2003, надо выполнить следующие операторы:

d.month := 1;

d.day := 12;

d.year := 2003;

Запись может быть компонентой других структур. Например, введем тип family(семья: отец, мать, 1-й ребенок, 2-й ребенок): type family = (father, mother, child1, child2); var birthday: array[family] of date;  где date – описанная выше запись.

Запись может быть компонентой других структур.

Например, введем тип family(семья: отец, мать, 1-й ребенок, 2-й ребенок):

type family = (father, mother, child1, child2);

var birthday: array[family] of date;

где date – описанная выше запись.

Для занесения даты рождения, например, mother, достаточно выполнить операторы: birthday[mother].month := 5; birthday[mother].day := 1; birthday[mother].year := 1965;

Для занесения даты рождения, например, mother, достаточно выполнить операторы:

birthday[mother].month := 5;

birthday[mother].day := 1;

birthday[mother].year := 1965;

 Вывести на экран фамилии студентов, чей балл выше среднего по группе.   Задача:  Описание переменных:  arr_studs – группа студентов;  average – средний балл в группе.

Вывести на экран фамилии студентов, чей балл выше среднего по группе.

Задача:

Описание переменных: 

arr_studs – группа студентов; average – средний балл в группе.

average then writeln(arr_studs[i].sname); readln end . " width="640"

Код программы:

type

studs = record

sname: string [25];

eval: integer ;

end ;

var

arr_studs: array [1..15] of studs;

sum: integer ;

average: real ;

i,n: byte ;

begin

write('Количество студентов: ');

readln(n);

sum := 0;

for i:=1 to n do

with arr_studs[i] do begin

write(i,'-й студент: ');

readln(sname);

write(' Оценка: ');

readln(eval);

sum := sum + eval;

end ;

average := sum / n;

writeln;

writeln('Студенты с оценкой выше средней:');

for i:=1 to n do

if arr_studs[i].eval average then

writeln(arr_studs[i].sname);

readln

end .

Программа, определяющая количество дней в месяце. Задача:  Алгоритм решения задачи:  Переменная d имеет тип данных запись и содержит два поля: year – для хранения года и month – для месяца. Пользователь вводит год и месяц. Оператор выбора  case  по номеру месяца определяет количество дней в нем. Ситуация осложняется тем, что в феврале может быть как 28 дней, так и 29 (в високосный год). Год является високосным, если делится без остатка на 4 и при этом не является последним годом столетия, за исключением того столетия, которое без остатка делится на 400.

Программа, определяющая количество дней в месяце.

Задача: 

Алгоритм решения задачи: 

Переменная d имеет тип данных запись и содержит два поля: year – для хранения года и month – для месяца.

Пользователь вводит год и месяц.

Оператор выбора  case  по номеру месяца определяет количество дней в нем. Ситуация осложняется тем, что в феврале может быть как 28 дней, так и 29 (в високосный год).

Год является високосным, если делится без остатка на 4 и при этом не является последним годом столетия, за исключением того столетия, которое без остатка делится на 400.

Код программы: type date = record  year:1900..2100;  month:1..12  end ; var d: date; begin  write('Год: ');  readln(d.year);  write('Месяц: ');  readln(d.month);  case d.month of  4,6,9,11: writeln('В этом месяце 30 дней'); 1,3,5,7,8,10,12:  writeln('В этом месяце 31 день');  2:  if (d.year mod 400 = 0) or  (d.year mod 100  0) and (d.year mod 4 = 0) then writeln('В этом месяце 29 дней')  else writeln('В этом месяце 28 дней');  end ; readln; end .

Код программы:

type date = record

year:1900..2100;

month:1..12

end ;

var d: date;

begin

write('Год: ');

readln(d.year);

write('Месяц: ');

readln(d.month);

case d.month of

4,6,9,11:

writeln('В этом месяце 30 дней');

1,3,5,7,8,10,12:

writeln('В этом месяце 31 день');

2:

if (d.year mod 400 = 0) or

(d.year mod 100 0) and (d.year mod 4 = 0) then

writeln('В этом месяце 29 дней')

else

writeln('В этом месяце 28 дней');

end ;

readln;

end .

Из ведомости 3-х студентов с их оценками  ( порядковый  номер,  Ф.И.О. и три оценки) определить количество отличников и средний бал каждого студента.   Program Spic;  Type wed = record {Тип wed включает 3 поля: n, fio, bal}  n : integer ;  fio : string[40] ;  bal : array [1..3] of integer  {Поле bal – массив из 3 оценок }  end;

Из ведомости 3-х студентов с их оценками ( порядковый  номер,  Ф.И.О. и три оценки) определить количество отличников и средний бал каждого студента.

  • Program Spic; Type wed = record {Тип wed включает 3 поля: n, fio, bal} n : integer ; fio : string[40] ; bal : array [1..3] of integer  {Поле bal – массив из 3 оценок } end;
begin  n:=i;  Write (' Vvedite FIO ');  Readln (fio);  s:=0;  For j:= 1 to 3 do  begin  write ( 'Vvedite ocenky: ' );  readln ( bal [j] );  s := s+ bal [j];  end;  if s=15 then kol:=kol+1; {подсчет количества отличников}  sr := s/3; writeln ( fio, ', Sredniy bal = ',); end;  writeln ( ' Kolichestvo otlichnikov);  readln;  end.

begin n:=i; Write (' Vvedite FIO '); Readln (fio); s:=0; For j:= 1 to 3 do begin write ( 'Vvedite ocenky: ' ); readln ( bal [j] ); s := s+ bal [j]; end; if s=15 then kol:=kol+1; {подсчет количества отличников} sr := s/3; writeln ( fio, ', Sredniy bal = ',); end; writeln ( ' Kolichestvo otlichnikov); readln; end.

ДОМАШНЕЕ ЗАДАНИЕ ОПИСАТЬ ПРИ ПОМОЩИ ЯЗЫКА ПАСКАЛЬ АНКЕТУ: Рабочий Адрес Место работы Дата рождения ПОЛ ФИО Должность

ДОМАШНЕЕ ЗАДАНИЕ

ОПИСАТЬ ПРИ ПОМОЩИ ЯЗЫКА ПАСКАЛЬ АНКЕТУ:

Рабочий

Адрес

Место работы

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

ПОЛ

ФИО

Должность

Задания с обработкой записей (самостоятельная работа)

1. Ввести оценки студента по 5 экзаменам. Определить средний балл и подсчитать количество удовлетворительных, хороших и отличных оценок. Напечатать название предмета, если есть «неуд».

2. Дан список студентов и оценка каждого на экзамене (оценки на N экзаменах). Подсчитать количество удовлетворительных оценок, хоро­ших, отлич- ных и средний балл в группе. Напечатать фамилии неуспеваю­щих студентов.

3. Дан список студентов группы. Заполнить его следующими сведе­ниями: фамилия, имя, отчество; имеет ли компьютер (если имеет, то ка­кой и с какого года). Подсчитать сколько студентов имеют ПК.

4. Сформировать пополняемую базу данных «Континент – страны», в которой указать столицы, численность населения, крупные города. Ор­ганизовать поиск страны по городу, стран или городов на континенте.

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

6. В файле задан список книг (автор, название, год издания). Разработать программу выбора книг, выпущенных ранее заданного года.

7. Сформировать телефонный справочник. По номеру организовать поиск владельца, и наоборот.

8. Сформировать запись «Даты – праздники». Организовать в прог­рамме ввод дат, подсчитать число праздничных дней и рабочих.

9. Сформировать запись «английское слово – перевод». Вводя слово (английское или русское), найти перевод или выдать сообщение «нет в словаре». По возможности предусмотреть пополнение словаря.

10. Сформировать запись «операторы PascalABC»: оператор, действие. Подсчитать их количество и число операторов, имеющих повторяющие­ся ключевые слова.