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

Задача

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

Решение

 

Программа на языке Паскаль: 

 

type
    t_pub = record
        author: string[40];
        title: string[100];
        year: integer;
        case t: char of
            'b': (publ:string[20]);
            'j': (jour:string[30]; num:byte);
    end;
var
    catalog: array[1..20] of t_pub;
    n,i: integer;
begin
    write('Количество записей: ');
    readln(n);
    for i:=1 to n do begin
        write('Книга или журнал: ');
        readln(catalog[i].t);
        write('Автор: ');
        readln(catalog[i].author);
        write('Название: ');
        readln(catalog[i].title);
        write('Год издания: ');
        readln(catalog[i].year);
        case catalog[i].t of
            'b': begin
            write('Издательство: ');
            readln(catalog[i].publ);
            end;
            'j': begin
            write('Журнал: ');
            readln(catalog[i].jour);
            write('Номер: ');
            readln(catalog[i].num);
            end;
        end;
        writeln;
    end;
 
    for i:=1 to n do
        with catalog[i] do
            if (year >= 2000) and (t = 'b') then
                writeln(author,' ',title,' ',publ,' ',year);
    for i:=1 to n do
        with catalog[i] do
            if (year >= 2000) and (t = 'j') then
                writeln(author,' ',title,' ',jour,' ',year,' ',num);
 
readln;
end.

 

Тема

Записи

Уровень

Простые задачи