Доклад по информатике. Комбинированный тип данных. Программирование обработки записей. Строки
Скачать 0.56 Mb.
|
ГОСУДАРСТВЕННОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ЛУГАНСКОЙ НАРОДНОЙ РЕСПУБЛИКИ «АЛЧЕВСКАЯ ГИМНАЗИЯ им. П.Н. ЛИПОВЕНКО» ДОКЛАД на тему: «Комбинированный тип данных. Программирование обработки записей. Строки». Выполнила: Саршанова А.А. ученица 10-А класса Проверил: Плужник С.С. г. Алчевск 2020г. Комбинированный тип данных. Программирование обработки записей. Строки. Комбинированный тип данных. Программирование обработки записей. Все структурированные типы данных, с которыми мы уже познакомились, представляют собой совокупности однотипных величин. Но программирование часто используют для моделирования каких-либо объектов или явлений. Для того чтобы смоделировать объект, необходимо указать его характеристики. Так, например, 1) объект окружность имеет следующие характеристики: координаты центра, радиус; 2) объект преподаватель имеет характеристики: фамилия, имя, отчество, название предмета, который он преподает, номер группы, у которой он ведет свой предмет. Указывать характеристики (свойства) объектов в программе гораздо удобнее, если все свойства одного объекта объединить в одну группу. Для этого в Паскале существует такой тип как записи. Запись – комбинация объектов разного типа. Составляющие запись характеристики называются полями. В записи каждое поле имеет свой идентификатор (имя). Так, например, полями для типа круг будут x, y, R. Таким образом, комбинированный тип данных (запись) – это структурированный тип, состоящий из фиксированного числа компонент (полей) разного типа. Описание записей Описание комбинированного типа представляет собой список описаний его элементов (полей). Описание записи выглядит следующим образом: Type <имя типа> = Record <имя поля1> : <тип поля1>; <имя поля2> : <тип поля2>; End; Здесь Record и End — служебные слова. Поля могут иметь любой тип, в том числе они могут быть массивом или записью. В разделе описания переменных можно описать переменные этого типа. Пример: Type Round = Record x, y : Real; R : Real; End; Var Circle1, Circle2 : Round; Krugi : Array[1..5] Of Round; Операции с записями Переменной типа запись можно присвоить только значение переменной такого же типа, т.е. Circle1:= Circle2; Circle2:= Krugi[1]; Krugi[5]:= Krugi[3]; (см. Описание записей) К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру: <имя переменной> . <имя поля> Пример: Circle1.x := 5; Circle1.y := 8; Circle1.R := 2; Read(Krugi[i].R); Writeln(Krugi[i].x); и т.д. Оператор With Легко заметить, что постоянно указывать имя записи – не очень удобно. Чтобы облегчить работу программиста, существует оператор присоединения With. Общий вид оператора With: With <имя переменной> Do <оператор>; В качестве оператора используется любой простой или составной оператор. В операторе имя записи указывать не обязательно, достаточно указать имя поля. Пример: часть программы Circle1.x := 5; Circle1.y := 8; Circle1.R := 2; может выглядеть следующим образом: With Circle1 Do Begin x := 5; y := 8; R := 2; End; Пример программы с использованием записи Пример: сформировать список записей, содержащих информацию о десяти студентах (фамилия, номер группы, 5 оценок за последнюю сессию). Вывести фамилии студентов имеющих средний балл => 4. Type student = record name: string[10]; group: integer; ball: array[1..5] of 2..5; {массив, содержащий оценки} srednball: real; {средний балл} End; Var st: array[1..10] of student; i, j, d: integer; Begin For i:=1 To 10 Do Begin WriteLln (?Введите фамилию студента?); ReadLn (st [i].name); WriteLln (? Введите номер его группы?); ReadLn (st [i]. group); WriteLln (? Введите ?); For i:=1 To 5 Do ReadLn (st [i].ball[j]); d:=0; For i:=1 To 5 Do d:= d + st [i].ball[j]; st [i].srednball := d /5; End; For i:=1 To 10 Do If st [i].srednball >= 4 Then WriteLln (st [i].name) End. Строки. В C++ работа со строками осуществляется с помощью символьных массивов. Для этого строку представляют конечным набором символов, с которым можно работать при помощи массива типа char. Простейший пример выглядит так
Создался нефиксированный массив символов, который получил 3 элемента. Вызвать можно любой из этих символов, указав его номер.
Существует множество функций для работы с таким представлением строк. Для примера возьмем часть кода.
Первые две строки ушли на создание строк. Третья строка вычисляет длину s с помощью функции strlen. Функция strcpy выполняет копирование строки s2 в s, при этом идет полная замена предыдущих символов. Функции strcat не копирует, а объединяет строки, результат объединения сохраняется в первую строку, в данном случае в s. Расширения для предыдущих функций strncpy и strncat добавляют параметр, указывающий с каким количеством символов из второй строки будет работать функция. Последняя strcmp сравнивает 2 строки, выводя 0, если они равны, и +1 или -1 если одна из строк больше. Строки рассматриваются посимвольно, и результат рассчитывается по числовому коду первых неодинаковых символов. Следует отметить, что функции strcpy, strncpy, strcat, strncat не следят за выделением памяти, так что память нужно выделять с помощью других команд. В данном примере в самом начале для каждой строки зарезервировано место под хранение 100 символов. |