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

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

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

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

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

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

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

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

Итоги урока

Тип данных запись.

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

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

Презентация к уроку на тему "Тип данных запись"

Просмотр содержимого документа
«Тип данных запись.»

 Тип данных   Записи (Record)   в Паскале Составила учитель информатики ПУ ТМТЛ им. С. Демиреля С. Конгаз  Радова А.Ф. 2024-2025 уч. год

Тип данных Записи (Record) в Паскале

Составила учитель информатики

ПУ ТМТЛ им. С. Демиреля

С. Конгаз

Радова А.Ф.

2024-2025 уч. год

Определение:   Запись  – это структура данных, которая состоит из фиксированного числа компонент, называемых полями.   Каждое поле может иметь свой тип данных. Общий вид описания типа record в языке программирования Pascal: type t = record  id11, id12, …: type1;  id21, id22, …: type2;  ... end; здесь начинаются  с id - идентификаторы (имена) полей;  с type – типы полей;  t – имя записи.

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

Общий вид описания типа record в языке программирования Pascal:

type t = record

id11, id12, …: type1;

id21, id22, …: type2;

...

end;

здесь начинаются

с id - идентификаторы (имена) полей;

с type – типы полей;

t – имя записи.

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

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

type complex = record

re, im: real

end;

var c: complex;

Здесь :

complex – имя типа (имя записи),

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

Эти поля переменной c обозначаются как c.re и c.im.

Пример 2. Даты событий можно описать следующим образом: В этом примере описан тип data и переменная d, принадлежащая этому типу.  Переменная d описана как запись, состоящая из трех полей : mesiact, deni , god. Каждое поле содержит соответственно данные:  целое число в пределах от 1 до 12 (номер месяца), целое число от 1 до 31 (день), целое число (год). Поле deni переменной d записывается как d.deni. type data = record  mesiact: 1..12;  deni: 1..31;  god: integer end; var d: data; Например , чтобы заслать в d дату 04.10.2024, надо выполнить следующие операторы:  d.mesiact := 10; d.deni := 04; d.god := 2024;

Пример 2. Даты событий можно описать следующим образом:

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

Переменная d описана как запись, состоящая из трех полей :

  • mesiact,
  • deni ,
  • god.

Каждое поле содержит соответственно данные:

  • целое число в пределах от 1 до 12 (номер месяца),
  • целое число от 1 до 31 (день),
  • целое число (год).

Поле deni переменной d записывается как d.deni.

type data = record

mesiact: 1..12;

deni: 1..31;

god: integer

end;

var d: data;

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

d.mesiact := 10;

d.deni := 04;

d.god := 2024;

Запись так же может быть элементом других структур.  Например, введем тип family (семья: отец, мать, 1-й ребенок, 2-й ребенок): Type  family = (papa, mama, rebionok1, rebionok2); var denirojdenia= array[family] of date; где date – описанная выше запись. Переменная denirojdenia есть массив, состоящий из записей – дат рождения членов семьи. Каждая дата рождения имеет тип date, который может быть описан в программе. Для занесения даты рождения, например, papa, достаточно выполнить операторы: denirojdenia[papa].mesiact := 10; denirojdenia[papa].deni := 7; denirojdenia[papa].god := 1975;

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

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

Type

family = (papa, mama, rebionok1, rebionok2);

var

denirojdenia= array[family] of date;

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

Переменная denirojdenia есть массив, состоящий из записей – дат рождения членов семьи. Каждая дата рождения имеет тип date, который может быть описан в программе.

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

denirojdenia[papa].mesiact := 10;

denirojdenia[papa].deni := 7;

denirojdenia[papa].god := 1975;

Оператор With Оператор with используется для удобства работы с переменными типа record (запись). Общий вид: with a do st; здесь a – имя переменной типа record, st – операции. В операциях st при ссылках на компоненты записи имя a можно опускать.

Оператор With

Оператор with используется для удобства работы с переменными типа record (запись).

Общий вид:

with a do st;

здесь a – имя переменной типа record, st – операции.

В операциях st при ссылках на компоненты записи имя a можно опускать.

Пример. Присвоение полям записи при использовании оператора with: with denirojdenia[papa] do  begin  mesiact := 10;  deni := 7;  god := 1975; end;

Пример. Присвоение полям записи при использовании оператора with:

with denirojdenia[papa] do

begin

mesiact := 10;

deni := 7;

god := 1975;

end;

Задание.  Написать программу, которая выведет на экран даты рождения всех членов семьи.

Задание.

Написать программу, которая выведет на экран даты рождения всех членов семьи.

Задачи.  № 1. Частота встречаемости символа в строке. Определить, как часто встречается определенный символ в строке. Описание переменных: s – строка; c – символ; count – количество найденных символов в строке; freq – частота встречаемости, определяемая по формуле (n / len) * 100. Алгоритм решения задачи: Получить строку и символ. Определить длину строки. Перебрать каждый символ в строке: если очередной символ строки совпадает с заданным символом, то увеличить счетчик символов count на единицу. Вычислить значение частоты встречаемости и вывести ее на экран.

Задачи.

1. Частота встречаемости символа в строке.

Определить, как часто встречается определенный символ в строке.

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

s – строка;

c – символ;

count – количество найденных символов в строке;

freq – частота встречаемости, определяемая по формуле (n / len) * 100.

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

Получить строку и символ.

Определить длину строки.

Перебрать каждый символ в строке:

если очередной символ строки совпадает с заданным символом, то увеличить счетчик символов count на единицу.

Вычислить значение частоты встречаемости и вывести ее на экран.

№ 1. Решение.  count := 0; var  for i:=1 to length(s) do  s: string;  c: char;  count, i: byte;  freq: real;  if s[i] = c then  begin  count := count + 1;  write('String: ');  freq := (count / length(s)) * 100;  readln(s);  writeln('Frequency: ', freq:5:2, '%');  write('Char: ');  readln(c); end.

1. Решение.

count := 0;

var

for i:=1 to length(s) do

s: string;

c: char;

count, i: byte;

freq: real;

if s[i] = c then

begin

count := count + 1;

write('String: ');

freq := (count / length(s)) * 100;

readln(s);

writeln('Frequency: ', freq:5:2, '%');

write('Char: ');

readln(c);

end.

 № 2. Четные и нечетные символы разделить по разным строкам. Создайте из четных символов строки str1 строку str2 и из нечетных символов - строку str3. Алгоритм решения задачи: Измерим длину строки. В цикле перебираем символы от 1-го до последнего (его индекс равен значению длины строки). Если индекс очередного символа нечетный, то добавляем этот символ в конец строки str3. Иначе - добавляем к str2.

2. Четные и нечетные символы разделить по разным строкам.

Создайте из четных символов строки str1 строку str2 и из нечетных символов - строку str3.

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

  • Измерим длину строки.
  • В цикле перебираем символы от 1-го до последнего (его индекс равен значению длины строки).
  • Если индекс очередного символа нечетный, то добавляем этот символ в конец строки str3.
  • Иначе - добавляем к str2.
№ 2. Решение. var  str1,str2,str3: string;  l,i: byte; begin  readln(str1);  str2 := '';  str3 := '';  l := length(str1);  for i:=1 to l do  if odd(i) then  str3 := str3 + str1[i]  else  str2 := str2 + str1[i];  writeln(str2);  writeln(str3); end.

№ 2. Решение.

var

str1,str2,str3: string;

l,i: byte;

begin

readln(str1);

str2 := '';

str3 := '';

l := length(str1);

for i:=1 to l do

if odd(i) then

str3 := str3 + str1[i]

else

str2 := str2 + str1[i];

writeln(str2);

writeln(str3);

end.

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

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

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

№ 3. Решение.

Program Spic;

Type wed = record {Тип wed включает 3 поля: n, fio, bal}

For j:= 1 to 3 do

n : integer ;

begin

fio : string[40] ;

write ( 'Vvedite ocenky: ' );

bal : array [1..3] of integer {Поле bal – массив из 3 оценок }

readln ( bal [j] );

s := s+ bal [j];

end;

Var spisok : wed ; {Запись spicok типа wed}

end;

if s=15 then kol:=kol+1; {подсчет количества отличников}

i, j, kol, s : integer; sr : real;

sr := s/3; writeln ( fio, ', Sredniy bal = ', sr:4:1); end;

Begin

writeln ( ' Kolichestvo otlichnikov = ', kol );

kol:=0; {kol- количество отличников}

readln;

With spisok do {with присоединяет имя записи spisok ко всем }

For i:=1 to 3 do { полям внутри цикла For по i }

end.

begin

n:=i;

Write (' Vvedite FIO # ', i ,' ');

Readln (fio);

s:=0;


Скачать

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

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

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

Закрыть через 5 секунд
Комплекты для работы учителя