Главная страница
Навигация по странице:

  • «АЛЧЕВСКАЯ ГИМНАЗИЯ им. П.Н. ЛИПОВЕНКО» ДОКЛАД на тему: «Комбинированный тип данных. Программирование обработки записей. Строки».

  • Выполнила: Саршанова А.А. ученица 10-А класса Проверил: Плужник С.С. г. Алчевск

  • Комбинированный тип данных. Программирование обработки записей.

  • .

  • Оператор With Легко заметить, что постоянно указывать имя записи – не очень удобно. Чтобы облегчить работу программиста, существует оператор присоединения

  • Пример программы с использованием записи

  • Доклад по информатике. Комбинированный тип данных. Программирование обработки записей. Строки


    Скачать 0.56 Mb.
    НазваниеКомбинированный тип данных. Программирование обработки записей. Строки
    Дата21.12.2021
    Размер0.56 Mb.
    Формат файлаdocx
    Имя файлаДоклад по информатике.docx
    ТипДоклад
    #312919


    ГОСУДАРСТВЕННОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ

    УЧРЕЖДЕНИЕ

    ЛУГАНСКОЙ НАРОДНОЙ РЕСПУБЛИКИ

    «АЛЧЕВСКАЯ ГИМНАЗИЯ им. П.Н. ЛИПОВЕНКО»

    ДОКЛАД

    на тему:

    «Комбинированный тип данных. Программирование обработки записей. Строки».

    Выполнила:

    Саршанова А.А.

    ученица 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.

    Простейший пример выглядит так



    1

    char str [] = "abc";

    Создался нефиксированный массив символов, который получил 3 элемента. Вызвать можно любой из этих символов, указав его номер.



    1

    char a = string[2];

    Существует множество функций для работы с таким представлением строк.

    Для примера возьмем часть кода.



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    #include // подключаем файл с функциями для работы со строками

     

    int main()

    {

    char s [100] = "aaaaa";

    char s1 [100] = "bbbbbb";

    char s2 [100] = "ccccccc";

    int a = strlen(s); // после этой строки a=5

    strcpy(s,s2); // после этой строки s = ccccccc

    strncpy(s1,s2,1); // будет s1 = cbbbbb

    strcat(s1,s2); // будет s1 = cbbbbbccccccc

    strncat(s1,s1,3); // будет s1 = cbbbbbccccccccbb

    int b = strcmp(s1,s2); //b будет меньше 0

    return 0; //возвращаем 0 - правило хорошего тона программиста

    }

    Первые две строки ушли на создание строк. Третья строка вычисляет длину s с помощью функции strlen. Функция strcpy выполняет копирование строки s2 в s, при этом идет полная замена предыдущих символов. Функции strcat не копирует, а объединяет строки, результат объединения сохраняется в первую строку, в данном случае в s.

    Расширения для предыдущих функций strncpy и strncat добавляют параметр, указывающий с каким количеством символов из второй строки будет работать функция. Последняя strcmp сравнивает 2 строки, выводя 0, если они равны, и +1 или -1 если одна из строк больше. Строки рассматриваются посимвольно, и результат рассчитывается по числовому коду первых неодинаковых символов.

    Следует отметить, что функции strcpy, strncpy, strcat, strncat не следят за выделением памяти, так что память нужно выделять с помощью других команд. В данном примере в самом начале для каждой строки зарезервировано место под хранение 100 символов.



    написать администратору сайта