|
|
zadach477.PAS |
|
{* Задача 477 *}Unit ZADACH477;Interface Implementation Begin writeln('Имеются две коробки, в которых могут быть одинаковые наборы карандашей. После длительного употребления определить карандаши какого цвета имеются в наличии.'); End. Program zadach477; Uses zadach477.pas; {* Эту строку можно удалить *} Type {названия возможных цветов карандашей} palitra = (krasn, gelt, zelen, sini, korichn, chern); korobka = Set Of palitra; {тип информационной модели коробки карандашей} Const {массив с символьными названиями цветов карандашей} colors : Array[palitra]Of String = ('красный', 'желтый', 'зеленый', 'синий', 'коричневый', 'черный'); Var {* В работе нам потребуются переменные: *} n1 : korobka; n2 : korobka; {коробки с карандашами} i : palitra; {для перебора цветов} otvet : String; {строка с ответом пользователя} nal : korobka; otsut : korobka; {результаты вычислений: наличие, отсутствие} k : integer; {для подсчета количества карандашей при выводе результатов} Begin {формируются два множества - n1, n2; показаны два способа ввода значений перечисляемого типа} {заполнение первой коробки} n1 := []; {коробка пуста - пустое множество} {перебор возможных цветов} For i := krasn To chern Do {* Переменная i увеличивается с krasn до chern *} Begin writeln('Есть ', colors[i], ' карандаш? Ответьте: д/н'); readln(otvet); If (otvet[1] = 'Д')Or(otvet[1] = 'д') Then Begin n1 := n1 + [i]; {добавление элемента в мнжество} writeln(colors[i], ' карандаш находится в коробке') End; Else writeln(colors[i], ' карандаш отсутствует в коробке') End; n2 := []; Repeat writeln('Введите цвет карандаша: красный, желтый, '); writeln(' зеленый, синий, коричневый, черный'); writeln('или н, если карандашей больше нет.'); readln(otvet); For i := krasn To chern Do {* Увеличиваем i от krasn до chern с шагом 1 *} If colors[i] = otvet Then Begin n2 := n2 + [i]; writeln(colors[i], ' карандаш находится в коробке') End; Until (otvet[1] = 'Н')Or(otvet[1] = 'н'); {формирование результатов} nal := n1 + n2; {объединение двух множеств - коробок} otsut := [krasn, gelt, zelen, sini, korichn, chern] - nal; {вычитание из множества возможных цветов множества наличных цветов} {вывод названий имеющихся цветов} k := 0; write('В коробках '); For i := krasn To chern Do {* Увеличиваем i от krasn до chern с шагом 1 *} If i In nal Then Begin If k0 Then write(', '); k := k + 1; write(colors[i]) End; If k = 0 Then writeln('нет карандашей') Else If k = 1 Then writeln(' карандаш') Else writeln(' карандаши'); {вывод названий отсутствующих цветов} k := 0; write('В коробках '); For i := krasn To chern Do {* Переменная i увеличивается с krasn до chern *} If i In otsut Then Begin If k0 Then write(', '); k := k + 1; write(colors[i]) End; If k = 0 Then writeln('есть все карандаши') Else If k = 1 Then writeln(' карандаш отсутствует') Else writeln(' карандаши отсутствуют'); End. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|