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

  • Краткие сведения из теории 9.1. Объявление переменной типа множества

  • Например

  • Задание к работе 1. Выполнить задание А. 2. Выполнить задание Б. Методические указания

  • Варианты индивидуальных заданий Задание А

  • ЛАБОРАТОРНАЯ РАБОТА N 10 Тема: "Комбинированный тип данных - записи" Цель работы

  • Краткие сведения из теории 10.1. Объявление данных типа записи

  • 10.2. Доступ к полям записи

  • 10.3. Записи с вариантами

  • 10.4. Оператор присоединения

  • Задание к работе Выполнить индивидуальное задание Содержание отчета

  • Варианты индивидуальных заданий

  • ЛАБОРАТОРНАЯ РАБОТА N 11

  • лабораторные работы паскаль. Практикум по программированию на языке Паскаль Учебное пособие


    Скачать 0.89 Mb.
    НазваниеПрактикум по программированию на языке Паскаль Учебное пособие
    Анкорлабораторные работы паскаль.pdf
    Дата28.01.2018
    Размер0.89 Mb.
    Формат файлаpdf
    Имя файлалабораторные работы паскаль.pdf
    ТипПрактикум
    #14972
    страница6 из 11
    1   2   3   4   5   6   7   8   9   10   11
    Тема: “Сложный тип данных – множества”
    Цель работы
    1. Получение навыков в задании переменных типа множество и организации ввода и вывода данных типа множество.
    2. Получение практических навыков в выполнении операций над множествами.
    Краткие сведения из теории
    9.1. Объявление переменной типа множества
    В математике под множеством понимается некоторый набор элементов. Например, множество фигур на плоскости (прямоугольник, круг, ромб, квадрат).
    К множествам применимы следующие операции:
    1. Объединение множеств ( C = A
    ∪ B ). Каждый элемент множества C является элементом либо множества A, либо множества B.
    2. Пересечение множеств ( C = A
    ∩ B ). Каждый элемент множества C является элементом множеств A и B одновременно.
    3. Разность двух множеств ( C = A \ B ). Каждый элемент множества C является элементом множества A, но не является элементом множества B.
    Например: а) { круг, ромб }
    ∪ { круг, квадрат } = {круг, ромб, квадрат}; б) { круг}
    ∩ { круг, ромб, квадрат } = { круг }; в) { круг, ромб, квадрат } \ { круг, квадрат } = { ромб }.
    Под множеством в языке Турбо - Паскаль понимают ограниченный, неупорядоченный набор различных элементов одинакового типа.
    Множественный тип задается с помощью двух служебных слов SET и OF, после которых указывается базовый тип. В качестве базового типа можно использовать следующие типы:
    INTEGER, BYTE, CHAR, перечислимый и ограниченный.
    При определении множественных типов существует два ограничения:
    1) вещественный тип в качестве базового в множествах использовать нельзя;
    2) число элементов в множестве определяется каждой конкретной реализацией ЭВМ.
    Обычно число элементов колеблется между 64 и 256 ( для Турбо - Паскаля - 256). Такая зависимость приводит к потере переносимости программ, обладающих этим типом, с машины на машину.
    Множества объявляются либо в разделе описания переменных VAR, либо в разделе описании типов TYPE. Объявление множества в разделе описания переменных имеет вид:
    VAR
    < имя множества > : SET OF < базовый тип >;
    Например
    :
    Var god : set of 1900..2000; symbol : set of char;
    Объявление множества с использованием раздела описания типов имеет вид:
    Type
    < имя типа > = set of < базовый тип >;
    Var
    < имя множества > : имя типа;
    Например
    :
    Type god = set of 1900..2000; symbol = ( 'A'..'Z');
    Var

    66
    g : god; s : set of symbol;
    Значения переменных и констант множества задаются в разделе операторов с помощью конструктора. Конструктор представляет собой список элементов базового типа, заключенный в квадратные скобки, который затем можно присвоить переменной, или обработать.
    Конструктор множества можно рассматривать как константу типа множества.
    Например:
    figura := [romb]; или figura := [krug,romb,kvadrat]; simv := ['A','B','C'];
    M1 := [1,3,5,10];
    M2 := []; { пустое множество }
    9.2. Операции над множествами
    В языке Турбо-Паскаль имеются следующие группы операций над множествами:
    1) объединение, пересечение, вычитание множеств;
    2) проверка принадлежности элемента множеству;
    3) проверка на равенство и неравенство множеств;
    4) проверка на принадлежность одного множества другому.
    Операции объединения, пересечения и вычитания являются традиционными действиями над множествами и обозначаются символами '+', '*', '-' соответственно. Например:
    [1,2] + [3,4] = [1,2,3,4];
    [1..10] + [5..15] = [1..15];
    [1..10] * [5..15] = [5..10];
    [1,2] * [3,4] = [];
    [1..10] - [5..15] = [1..4];
    Проверка принадлежности множеству - это логическая операция, которая обозначается служебным словом IN. Правый операнд должен быть множеством, левый - значением базового типа множества. Операция возвращает TRUE, если значение входит в множество, и
    FALSE в противном случае. Например:
    2 in [1..10,12]; { имеет значение true}
    5 in [1,2,7,10]; { имеет значение false}
    Операцию проверки принадлежности удобно использовать для исключения более сложных проверок, например, оператор вида if (symb = 'a') or (symb = 'b') or (symb = 'x') or (symb ='y') then s; может быть переписан в более компактной форме if symb in ['a','b','x','y'] then s;.
    Второй вариант эффективен с точки зрения быстродействия.
    Проверка на равенство, неравенство и включение множеств - это бинарные логические операции, которые обозначаются следующими символами:
    = равенство (совпадение) двух множеств;
    <> неравенство множеств;
    <= проверка на вхождение множества из левого операнда в множество из правого операнда;
    >= проверка на вхождение множества из правого операнда в множество из левого операнда.
    Все эти операции вырабатывают логическое значение TRUE или FALSE в зависимости от успеха проверки. Например:
    [1,2,3] = [1,2] - false;
    [1,2,3] >= [1,2] - true;
    [S] <= [1..10] - true, если S - целое число из диапазона 1..10;
    [1,2,3] <> [1,2,2] - true.

    67
    Синонимом логической операции над множествами является слово "компаратор".
    Набор операций над множествами в языке Турбо-Паскаль не содержит одной практически важной операции - выборки значений из множества (или близко связанного с ней средства циклического перебора значений множества). Поэтому при необходимости подобных действий приходится организовывать цикл по всему диапазону значений базового типа, проверяя на каждой итерации принадлежность очередного значения данному множеству,
    например
    :
    Var symbols : set of char; s : char;
    Begin
    For s := chr(0) to chr(255) do if s in symbols then
    < действия с переменной s >
    Контрольные вопросы
    1. Что понимается под множеством?
    2. Какие вы знаете операции над множесвами в математике?
    3. Как записываются операции над множествами в языке Турбо-Паскаль?
    4. Как задаются множества на языке Турбо-Паскаль?
    5. Что такое пустое множество и как оно задается?
    6. Как организовать вывод элементов множества?
    Задание к работе
    1. Выполнить задание А.
    2. Выполнить задание Б.
    Методические указания
    1. При выполнении индивидуального задания А необходимо: a) ознакомиться с конечным и упорядоченным множеством символов, определенным на используемой для выполнения задания ЭВМ; b) составить программу для конкретного варианта, работающую для произвольного набора символов. c) входная строка символов может быть длиннее строки экрана терминала, при этом программа работает не с функцией EOLN, а с признаком конца строки, который задается программистом.
    2. При выполнении индивидуального задания Б необходимо учесть приемы программирования, использованные в приведенной ниже программе ASMAG.
    Известен набор продуктов - хлеб, масло, сыр, молоко, имеющихся в ассортименте магазинов. В три магазина доставлены отдельные виды этих продуктов. Требуется построить множества A, B, C, которые содержат соответственно:
    - продукты, имеющиеся одновременно во всех магазинах;
    - продукты, имеющиеся по крайней мере в одном из магазинов;
    - продукты, которых нет ни в одном из магазинов.
    Program ASMAG;
    Const N=3;
    Type product=(bread,butter,cheese,milk); {задается список объектов (продуктов), определяющий базовый тип PRODUCT} assort = set of product; {на базовом типе PRODUCT определя-ется множественный тип
    ASSORT}

    68
    magazin = array [1..N] of assort; {информация о наличии продуктов во всех магазинах задается как массив множеств}
    Var m1 : magazin; x : product; a,b,c, xm1 : assort; i,j,iw,m : integer;
    Begin for i := 1 to N do {ввод исходной информации} begin xm1 := []; writeln (' введите номера продуктов',i : '-го магазина ='); repeat {в цикле REPEAT формируется множество XM1, характеризующее наличие товаров в одном магазине.} read(iw); case iw of
    1: x := bread;
    2: x := butter;
    3: x := cheese;
    4: x := milk end; xm1 := xm1 + [x]; until eoln; m1[i] := xm; {информация о наличии товаров записывается в массив M1} end; for i := 1 to 3 do {формирование множеств A,B,C и их распечатка} begin case i of
    1: writeln('продукты, имеющиеся одновременно во всех магазинах');
    2: writeln('ассортимент продуктов');
    3: writeln('продукты, которых нет ни в одном магазине') end; for x := bread to milk do if x IN a then case x of bread: write('хлеб'); butter: write('масло'); cheese: write('сыр'); milk: write('молоко') end; if i = 1 then a := b else a := c; writeln end end.
    Содержание отчета
    1. Титульный лист.
    2. Словесная постановка задачи.
    3. Графический или текстуальный алгоритм решения задачи.

    69 4. Листинг программы.
    5. Контрольный тест и результаты тестирования программы.
    6. Инструкция по эксплуатации программы.
    7. Ответы на контрольные вопросы.
    Варианты индивидуальных заданий
    Задание А
    Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются символы, встречающиеся в последовательности индивидуального варианта:
    Вариант
    Последовательность символов
    1
    Буквы от 'A' до 'F' и от 'X' до 'Z';
    2
    Цифры от '5' до '9' и знаки арифметических операций;
    4
    Буквы от 'T до 'X' и цифры от '1' до '4';
    5
    Знаки препинания и операций отношения;
    6
    Знаки арифметических операций и буквы от 'E' до 'N';
    7
    Буквы от 'A' до 'Z' и знаки препинания;
    8
    Знаки операций отношения;
    9
    Цифры от '0' до '9';
    10
    Знаки арифметических операций и операций отношения.
    Задание Б
    1. Даны два конечных множества А и В, элементами которых могут быть любые целые числа в диапазоне от 1 до 30. Найти прямое произведение этих множеств и вывести его на экран.
    2. Даны два прямоугольника. Множества А и В - это множества точек, принадлежащих соответствующим прямоугольникам. Координаты точек - это натуральные числа от 1 до 10.
    Определить пересекаются ли данные прямоугольники, если пересекаются, то вывести на экран их общие точки.
    3. Даны два конечных множества Х и У, состоящие из целых чисел. Определить выполняется ли равенство: (A
    ∪B)\B=A.
    4. Даны два конечных множества Х и У, состоящие из целых чисел. Определить выполняется ли равенство: (A\B)
    ∪ (B\A)=(A∪B) \ (A∩B).
    5. Пусть А, В, С - конечные множества, такие что В
    ⊆ А ⊆ С. Найдите множество Х, удовлетворяющее условиям А
    ∩ Х =В и А ∪ Х =С.
    6. Пусть А, В, С - конечные множества, такие что В
    ⊆ А, А ∩ С= ∅. Найдите множество Х, удовлетворяющее условиям А \ Х=В и Х \ А =С.
    7. Даны следующие множества А={1, 2, 3}, B={2, 3, 5, 4}, U={0, 1, 2, 3, .. ,9 }. Найти и вывести на экран A
    ∪ B, , A \ B, B \ A, U \ A.
    8. Даны два конечных множества A и B, состоящие из целых чисел. Найти и вывести на экран (A
    ∪ B) \ (A ∩ B).
    9. Даны два множества A={1, 2}, B={3, 4, 5}. Выведите на экран элементы множеств А
    × B,
    B
    × A.
    10. Пусть А={b, o}. Перечислите элементы множеств A
    3 и А
    4

    70
    ЛАБОРАТОРНАЯ РАБОТА N 10
    Тема: "Комбинированный тип данных - записи"
    Цель работы
    1. Получить навыки в организации ввода и вывода значений комбинированных типов данных.
    2. Получить навыки программирования задач с использованием записей.
    Краткие сведения из теории
    10.1. Объявление данных типа записи
    Комбинированный тип характеризует объекты, называемые записями. Синонимом понятия " комбинированный тип" является понятие "структурный тип". Запись (структура) - это сложная переменная с несколькими компонентами. При определении комбинированного типа задаются имя всей записи, имя и тип каждой компоненты. Описание комбинированного типа начинается со служебного слова RECORD и заканчивается словом
    END. Записи, как и другие данные, объявляются в разделе описаний и используются в разделе операторов.
    Записи можно объявлять в разделе TYPE либо VAR.
    Объявление записи в разделе VAR имеет следующий вид:
    VAR
    < имя записи > : RECORD
    < имя компоненты 1: тип >;
    < имя компоненты 2: тип >;
    < имя компоненты N: тип >
    END;
    Здесь служебное слово RECORD (запись) выполняет роль открывающей операторной скобки, END - закрывающей. Внутри операторных скобок описываются компоненты записи. Допускается вместо имени записи указывать список имен, т.е. имена записей, разделенные запятыми. Компоненты записи вместе с их описанием называются полями записи.
    Более универсальной формой объявления записи является описание с использованием раздела TYPE, которое имеет вид:
    TYPE
    < имя типа > = RECORD
    < имя компоненты 1 >: тип;
    < имя компоненты 2 >: тип;
    < имя компоненты N >: тип
    END;
    VAR
    < имя записи >: имя типа;
    Пример
    . Дана ведомость списка студентов с их оценками (рис.1) Для представленной ведомости объявление записи в разделе переменных выглядит следующим образом:
    VAR vedom : RECORD n : integer; fio : string[15]; progr,fizika : integer
    END;

    71

    Фамилия
    Оценка п/п имя, отчество программирование физика
    1
    Бадмаев И.П. 5 4
    2
    Иванов А.Р. 4 4
    3
    Павликова Ю.Т. 5 3
    Рис.1. Ведомость успеваемости.
    В данном примере фамилия имеет тип STRING, состоящий из 15 элементов, порядковый номер и оценки по предметам - тип INTEGER.
    Длина записи Vedom равна 21 байту.
    Объявление ведомости с использованием раздела типов имеет вид:
    TYPE vedom = RECORD n : integer; fio : string[15]; progr,fizika : integer
    END;
    VAR v : vedom;
    Здесь сначала введен тип с именем VEDOM, а затем указана переменная V, имеющая тип записи.
    Поле записи используется в программе так же, как обычная переменная. Таким образом, поле записи можно указывать как в левой части оператора присваивания, так и в выражениях. Над полем записи можно выполнять действия, допустимые для данных его типа. Если тип поля записи - INTEGER, то выполняются все операции, допустимые для целых данных.
    10.2. Доступ к полям записи
    Доступ к полям записи производится с помощью селектора записи, имеющего следующий вид:
    NAME_Z.NAME_P , где NAME_Z - имя переменной комбинированного типа (всей записи);
    NAME_P - имя поля.
    В практическом программировании такая запись называется уточненным именем данного.
    Для переменных, введенных выше, допустимы следующие конструкции:
    Vedom.n := 5;
    Vedom.fio := 'Иванов А.Р.'; или
    V.n := 35;
    V.fio := ' Павликова Ю.Т.';
    Комбинированные типы можно использовать для построения более сложных структур: массивов; файлов; вложенных структур с одним или более полей, которые, в свою очередь, могут быть записью. Например:
    VAR group : array[1..10] of vedom; database : file of vedom;
    Для переменных GROUP доступ к полям записей, составляющих этот массив, производится следующим образом:
    Group[i].fio := ' Бадмаев И.П. ';
    If group[i].fio = ' Бадмаев И.П. ' then
    WriteLn (group[i].progr)
    Else writeln ('Нет такой фамилии!');

    72
    Рассмотрим случай, когда в составе записи содержатся поля, имеющие тип записи. Пусть для комбинированного типа VEDOM необходимо хранить информацию о дате сдачи экзамена. Эту информацию можно представить в виде трех полей: месяц, день, год, дополняющих предыдущий состав типа VEDOM. Однако, логичнее дату сдачи экзамена определить как отдельный тип. Это позволит использовать тип DATE в описании других типов и переменных:
    TYPE
    Date = RECORD
    Mounth : (jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec);
    Day : 1..31;
    Year : 1900..2000
    END;
    Теперь тип DATE можно использовать в записи VEDOM:
    TYPE
    Vedom = RECORD
    N : integer;
    Fio : string[15];
    Progr,Fizika : integer;
    D_exem : date
    END;
    Доступ к полям D_EXEM осуществляется по общим правилам, т.е. при записи селектора слева от символа 'точка ' всегда должна находиться переменная типа запись, а справа идентификатор поля этой записи, например:
    V.D_exem.Mounth := jan;
    V.D_exem.Day := 25;
    Комбинированный тип может употребляться для спецификации параметров подпрограмм.
    Например, можно определить специальный тип для представления комплексных чисел как пары вещественных переменных (действительную и мнимую части комплексного числа):
    ТYPE
    Complex = RECORD
    Re,Im : real
    END;
    Далее можно с помощью процедур определить операции над комплексными числами
    (сложение, умножение, деление):
    Procedure Addc( c1,c2: complex; var R: complex);
    Procedure Mulc( c1,c2: complex; var R: complex);
    Procedure Divc( c1,c2: complex; var R: complex);
    10.3. Записи с вариантами
    Часто в зависимости от конкретного значения некоторого поля возникает необходимость в пределах одной записи иметь различную информацию. В таких случаях используются записи с вариантами.
    Рассмотрим тип PERSON, содержащий информацию о человеке.
    Если поле POL имеет значение М (мужской), то пусть необходимо предусмотреть такие поля:
    - служил в армии или нет;
    - если служил, то дату последних военных сборов.
    Если поле POL имеет значение W (женский), то необходима информация о цвете глаз.
    Запись с вариантами типа PERSON имеет вид:
    Type
    Date = Record
    Mounth : (jan,feb,mar,apr,may,jun,jul,aug,

    73
    sep,oct,nov,dec);
    Day : 1..31;
    Year : 1900..2000
    End;
    Person = Record
    Fio : string[20];
    Special : word;
    Birthday : date;
    PersonPol: (M,W);
    Case pol : PersonPol of
    M: (Army : boolean;
    D_Army : date);
    W: (EyesColor : (blue,brown, gray,green))
    End;
    Записи с вариантами имеют фиксированную и вариантную части. Изменяющаяся часть записи называется вариантом. Вариант всегда располагается в конце записи. Поле ( в данном случае POL), позволяющее различать варианты, называется полем признака.
    Вариантная часть содержит несколько альтернатив (в данном примере - M и W), в каждой из которых в круглых скобках задается список полей, присущих данному варианту ( ARMY и D_ARMY -> M, EYESCOLOR -> W ). Списку полей предшествует метка, являющаяся конкретным значением признака POL. Метка служит критерием выбора вариантов.
    Перечисление альтернатив начинается с определения признака POL.
    Началом вариантной части является служебное слово CASE; после признака выбора вариантов записывается служебное слово OF. Вариантная часть завершается служебным словом END вместе с завершением всей записи. В определении комбинированного типа может быть только одна вариантная часть и она должна быть задана в конце записи.
    Альтернативы вариантной части помечаются допустимыми значениями поля POL, которое определено в фиксированной части. Иногда поле, значения которого задают варианты, называют дискриминантом записи.
    Идентификаторы полей во всех вариантах должны быть различными и отличаться от идентификаторов полей фиксированной части. В этом случае после метки, соответствующей этим значениям может стоять пустой список вида ( ).
    Любой вариант, в свою очередь, может иметь свою вариантную часть, которая должна располагаться в конце списка полей данного варианта.
    При использовании вариантных записей необходимо учитывать следующие особенности:
    1. Для размещения переменной комбинированного типа всегда отводится фиксированный объем памяти, причем если в записи есть варианты, то объем определяется по самому большому варианту. Различные варианты одной записи как бы накладываются " друг на друга" в памяти, занимая одну и ту же область.
    2. Система Турбо-Паскаль не содержит никаких средств контроля за правильностью работы с вариантами записей. За соответствием текущего значения дискриминанты и доступа к полям записи должен следить программист.
    10.4. Оператор присоединения
    Оператор присоединения предназначен для более наглядной и эффективной организации работы с данными комбинированного типа и используется для доступа к полям записи.
    Оператор присоединения начинается со служебного слова WITH, далее следует имя записи и служебное слово DO. Операторы, содержащие имена полей записи, заключаются в операторные скобки:
    WITH < имя записи > DO
    BEGIN
    < операторы, содержащие имена полей записи > фиксированная часть вариантная часть

    74
    END;
    Например
    : для рассмотренной записи (списка студентов) операции присваивания, суммирования и ввода можно объединить в один оператор:
    With v do
    Begin
    N := 4;
    SUM := progr + fizika;
    Read (N)
    End.
    Контрольные вопросы
    1. Что понимается под записью в языке Паскаль?
    2. Как объявляются записи?
    3. Какие операции допустимы над полями записи?
    4. Как организовать ввод и вывод данных типа записи?
    5. Как осуществляется доступ к полям записи?
    6. Можно ли использовать в записи поля одного типа?
    7. Чем отличается запись от массива?
    8. Каково назначение оператора присоединения?
    Задание к работе
    Выполнить индивидуальное задание
    Содержание отчета
    1. Титульный лист.
    2. Словесная постановка задачи.
    3. Графический или текстуальный алгоритм решения задачи.
    4. Листинг программы.
    5. Контрольный тест и результаты тестирования программы.
    6. Инструкция по эксплуатации программы.
    7. Ответы на контрольные вопросы.
    Методические указания
    1. При выполнении работы использовать массив записей.
    2. Разработать алгоритмы и программы для решения задач заданий.
    3. Скомпилировать программы.
    4. Составить контрольные тесты и протестировать программы.
    5. Составить отчет и представить его к защите.
    Варианты индивидуальных заданий
    1. Дан список учебной группы, включающий 20 человек. Для каждого студента известны: фамилия, имя, дата рождения, оценки по всем дисциплинам за последний семестр.
    Составить программу, которая обеспечивает ввод информации и отображение ее на экран в виде таблицы. Отобразить на экран анкетные данные студентов-отличников в виде таблицы. Отобразить на экран фамилию и имя студентов, родившихся зимой и весной.
    2. Сведения об экзамене содержат следующие данные: дисциплину (программирование, алгебра, история, геометрия), дату сдачи экзамена (год, месяц, день), сведения о студенте
    (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние два года; в них факультет и предмет кодируются первыми буквами названия. Определить количество неуспевающих по программированию на экономическом факультете среди студентов первого курса, сдававших экзамены зимой 1995 года, вывести на экран их группу и номер в журнале.
    3. Сведения об экзамене содержат следующие данные: дисциплину (программирование, социология, иностранный язык, физика), дату сдачи экзамена (год, месяц, день), сведения

    75
    о студенте (фамилия, факультет, курс, группа) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить количество отличников по программированию на технологическом факультете среди студентов первого курса, сдававших экзамены летом 1995 года, вывести на экран их фамилии и группу.
    4. Сведения об экзамене содержат следующие данные: дисциплину (программирование, вычислительная техника, информатика), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить, на каком факультете самый высокий средний балл по программированию среди студентов первого и второго курсов, сдававших экзамены зимой 1995 года.
    5. Сведения об экзамене содержат следующие данные: дисциплину (программирование, вычислительная техника, информатика), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить, на каком факультете самый высокий показатель качества успеваемости по информатике (то есть самый высокий процент отличников и хорошистов) среди студентов первого курса, сдававших экзамены зимой 1995 года или летом 1996 года.
    6. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию
    (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного разговора, которой является максимальным по продолжительности среди срочных разговоров за указанный месяц.
    7. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию
    (срочный, обычный) и тариф (плата в рублях за минуту). Вывести на экран код города и номер телефона в другом городе для телефонных разговоров, состоявшихся с телефона
    235678 8 марта 1996 года.
    8. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию
    (срочный, обычный) и тариф (плата в рублях за минуту). Вывести на экран номер телефона абонента, код города и номер телефона в другом городе для срочных телефонных разговоров, состоявшихся между 15 марта и 12 апреля 1996 года .
    9. Деталь автомобиля описывается инвентарным номером (положительное целое число), весом (в килограммах), ценой и стоимостью (в рублях), датой начала производства (год, месяц, день), статусом (имеет или не имеет знак качества) и объемом производства (в штуках за смену). В заданной последовательности сведений о деталях найти инвентарные номера деталей с наибольшей датой начала производства среди всех заданных деталей. Вывести на экран инвентарный номер, объем производства, цену и стоимость деталей со знаком качества.
    10. Деталь автомобиля описывается инвентарным номером (положительное целое число), весом (в килограммах), ценой и стоимостью (в рублях), датой начала производства (год, месяц, день), статусом (имеет или не имеет знак качества) и объемом производства (в штуках за смену). В заданной последовательности сведений о деталях найти инвентарные номера деталей с минимальным весом среди деталей без знака качества.
    Вывести на экран инвентарный номер, объем производства, цену и стоимость деталей, выпускаемых с февраля 1977 года.

    76
    ЛАБОРАТОРНАЯ РАБОТА N 11
    1   2   3   4   5   6   7   8   9   10   11


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