Воскресенье, 2025-12-14, 8:18 PM
Приветствую Вас Гость | RSS
Главная | Урок 8 | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Программирование

    Урок 8 — Записи в Паскале. Примеры решение задач в Turbo Pascal

     

    Записи в Паскале – фиксированное число элементов одного или нескольких типов, то есть в  отличие от массивов, в которых содержатся элементы одного типа, в записях могут содержаться элементы как одного, так и разных типов. Тема, например, сведения о книгах имеет структуру: автор, название книги, издательство, год издания, её цена. Первые три элемента относится к строковому типу данных, четвертый к целому, а цена  - к вещественному типу. Элементами записей могут быть базовые типы, переменные, массивы, указатели, записи и т.д. Элементы записи вместе с их описанием называются полями записи. Над элементами записи можно выполнять действия, допустимые для данных этого типа.

    Все записи должны быть описаны  в разделе TYPE . Описание записи начинается со служебного слова RECORD заканчивается END, между  которыми указывается список имен и типов полей, выбранных пользователем. Все идентификаторы полей в записи должны быть различными. Например, запись Воок можно описать следующим типом card:

    TYPE  card = record
    Author : string [15];    
    Title: string [20];  
    Firm: string[10];   
    year : integer ;   
    cena  : real
    End;
    VAR Book  :  card;

    Тип записи (например, card) вводит только шаблон записи и с его именем не связан никакой конкретный обьект. Обращение к полю выполняется с помощью составного имени (селектора записи),  которое состоит из : 
    Имя_записи . имя_элемента

    Например, присвоить значения элементам записи Author и Title можно так:   Book.author:=’Довгаль С.И.’; Book.title:=’Турбо Паскаль V 7.0’;

    Ввод цены книги с клавиатуры :  readln (Book.cena);

    Для упрощения и сокращения записи составных имен используется оператор присоединения WITH. Имя записи выносится в заголовок оператора присоединения, а в блоке используются только имена полей записи.  Общий вид оператора присоединения:
    WITH  имя записи  DO оператор;

    Предыдущие операторы можно записать проще:

    With  Book  do  begin
    author:=’Довгаль С.И.’; title:=’Турбо Паскаль V 7.0’; readln (cena);
    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;
    Var spisok : wed ; {Запись spicok типа wed}
    i, j, kol, s : integer; sr : real;
    Begin
    kol:=0; {kol- количество отличников}
    With spisok do {with присоединяет имя записи spisok ко всем }
    For i:=1 to 3 do { полям внутри цикла For по i }
    begin
    n:=i;
    Write (' Vvedite FIO # ', i ,' ');
    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 = ', sr:4:1); end;
    writeln ( ' Kolichestvo otlichnikov = ', kol );
    readln;
    end.

     

    Результат работы программы:

    uCozCopyright MyCorp © 2025