|
|
zadach500.PAS |
|
{* Задача 500 *}Unit ZADACH500;Interface Implementation Begin writeln('Каждая из N библиотек района составляет заявку на приобретение книг. Заявка содержит перечень книг, состоящий из не более 20 наименований. Каждая библиотека в каждой строке заявки указывает название книги, фамилию автора и количество экземпляров. Определить суммарный спрос на каждую из указанных книг. И напечатать общий список книг в порядке убывания спроса. '); End. Program zadach500; Uses zadach500.pas; {* Эту строку можно удалить *} Uses crt; {* Подключение модулей *} Var {* В работе нам потребуются переменные: *} n : integer; k : integer; i : integer; j : integer; t : integer; l : boolean; c : char; s : String; s1 : String; kn : Array [1..20, 1..2] Of String; kn1 : Array [1..100, 1..2] Of String; x : Array [1..20] Of integer; x1 : Array [1..100] Of integer; Begin clrscr; {* Очистка экрана *} write('Vvedite kolichestvo bibliotek '); readln(n); t := 1; For k := 1 To n Do {* Переменная k увеличивается с 1 до n *} Begin i := 1; writeln('Vvedite zakaz ', k, '-oi biblioteki'); Repeat writeln('Vvedite nazvanie ', i, '-oi knigi'); readln(kn[i, 1]); writeln('Vvedite avtora ', i, '-oi knigi'); readln(kn[i, 2]); writeln('Vvedite kolichestvo exzemplyarov'); readln(x[i]); If (i = 1) And (k = 1) Then Begin kn1[1, 1] := kn[1, 1]; kn1[1, 2] := kn[1, 2]; x1[1] := x[1]; End; Else Begin l := false; For j := 1 To t Do {* Переменная j увеличивается с 1 до t *} If (kn1[j, 1] = kn[i, 1]) And (kn1[j, 2] = kn[i, 2]) Then Begin x1[j] := x1[j] + x[i]; l := true; End; If l = false Then Begin kn1[t + 1, 1] := kn[i, 1]; kn1[t + 1, 2] := kn[i, 2]; x1[t + 1] := x[i]; t := t + 1; End; End; If i = 20 Then writeln('Vy ischerpali vozmojnosti zakaza') Else Begin write('Esli hotite vvesti eshe odnu knigu - najmite "y" '); readln(c); If c = 'y' Then i := i + 1 Else i := 20; End; Until i = 20; End; For i := 1 To t Do {* Цикл для i => [1 .. t] *} Begin n := x1[i]; k := i; For j := i + 1 To t Do If x1[j] > n Then Begin n := x1[j]; k := j; End; If ki Then Begin n := x1[i]; s := kn1[i, 1]; s1 := kn1[i, 2]; x1[i] := x1[k]; kn1[i, 1] := kn1[k, 1]; kn1[i, 2] := kn1[k, 2]; x1[k] := n; kn1[k, 1] := s; kn1[k, 2] := s1; End; End; writeln; {* Пропускаем одну строку *} writeln('Spisok zakazyvaemyh knig'); For i := 1 To t Do {* Цикл для i => [1 .. t] *} writeln(kn1[i, 1], ' ', kn1[i, 2], ' ', x1[i], ' exzemplyarov'); readln; {* Ждем подтверждения пользователя *} 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
|