Министерство Образования Российской Федерации
Московский Государственный Педагогический Университет
Кафедра прикладной математики-информатики
Курсовая работа
по дисциплине «Программирование»
Тема: «Выявление функциональной зависимости
в массиве данных»
Москва-2009
Введение
В настоящее время формализованы многие задачи, возникающие в процессе человеческой деятельности, и все шире осуществляется их автоматизация на основе средств вычислительной техники.
Одним из методов формализации является алгоритмическое решение задач. Эффективность алгоритмического метода заключается в том, что он позволяет легко автоматизировать решение задачи путем составления программы на одном из языков программирования.
Простым в изучении, хорошо формализованным и широко распространенным языком программирования является язык C++. Его формальная строгость, высокая мощность конструкций объявления и обработки данных, возможности объектного программирования, а также общая направленность на обучение методам программирования выгодно выделяют этот язык среди других языков программирования высокого уровня.
С ходом научно-технического прогресса человечество всё более нуждается в удобном способе хранения и поиска данных.
Самоорганизующиеся списки (таблицы) обеспечивают способы наиболее эффективного хранения, поиска и наилучшей обработки данных. Именно поэтому самоорганизующиеся таблицы приобретают все большее значение в современном мире. В условиях глобальной компьютеризации самоорганизующиеся таблицы из фактора узкопрофессионального назначения переходят на более глобальный и, более того, даже бытовой уровень!
В этой работе приводится одна из реализаций простейшей самоорганизующейся таблицы, с самоорганизацией методом транспозиции.
1. Формальная постановка задачи
Определить функциональную зависимость в массиве данных.
2. Описание алгоритма
Алгоритм определяемой функциональной зависимости состоит из одного главного модуля и нескольких модулей. В главном модуле находится 3 цикла. В главном модуле создается файл, в котором сохраняется вся информация. Вывод информации производится в файле «dat.txt».
3. Описание программы
Программа состоит из одного главного модуля, в котором используются операторы стандартных библиотек:
· stdio.h.
· stdlib.h
· conio.h
· math.h
· time.h
· io.h
· dos.h
· string.h
· sys\stat.h
Для хранения информации в программе создается файл «dat.txt».
Атрибут a функционально определяет атрибут b, если каждому значению атрибута a соответствует не более одного значения атрибута b.
4. Инструкция пользователю
Программа предназначена для определения функциональной зависимости в массиве данных.
Программа функционирует на IBMPC/AT 386 и выше и для нормальной работы требует 1 Мб оперативной памяти и 15 Кб дисковой памяти.
Для запуска программы необходимо запустить на выполнение файл kursovic.exe, а затем, для просмотра результата, открыть файл dat.txt.
Входные данные заполняются в программе случайными целыми числам.
Для завершения работы с программой необходимо нажать клавишу escape.
Контрольный пример
![](data:image/jpeg;base64,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AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArH8Rf8AHiP94VsVj+Iv+PEf7woA4rUf+PnR/wDsK2v/AKGKKNR/4+dH/wCwra/+hiigDqvAp2+BNJOCcW+cD6mneG9ZtdUlnW3soLciNJCYHDcNnCvgDa4xyvOM9ab4FUN4D0lT0Nvg/mal8P2NhbSytaaoL5oYktQA6HyY0ztQ7e4yeTzQBYvb/dqZ0s6Y1yWtnuEZyoRyrKNoz3+cHPap9L1CS+S4We3WCe2m8mRUk8xc7VbhsDPDDsOcim6jZxO5vWvWs5EtpLdZgVAj3lDu+YYyCoxnjmn6TpzaXYLam5a42kkOyKp/HaBk5ySepJoAztV1m2stYtbA21q8pUSqZ5liIy2P3eR8zZB447c81qapef2dpV1efZ3uPIiZ/KTGXwOnPFZWp6Zpusau8Q1JUuvI8m5t42Qu8Od2CDllGT1GOo9q19RSCTTLqO6mENu8TLJIWChVIwTk8CgDFtvEFveeI0sobezEiQxl5JLgLKu9d21U25bAKk8j71amral/ZltFKbaScSTxwkIQAm9wu457DNUodJt717K5g1J57GApJFHGUZGdF2htwGTx2zireqGwuRFp11eRQyyyRyRxmRQ7lHDjAPXlaAK9pquNabSDaRQ7UZ0EUwYqoI++oHyZzkcnPPSpdevoNN043E1tFMrOkeJWCoMnguxBwo9cGlj0vy9UOo3F9NN5aOsKSBQsSsQW5ABP3R16YqOc6f4jtdllqcTvbypIstrIkhjccjI5H4GgCxot5Ff6TBcwwLDG24BEIK8MRlSMZU4yDgZBBq/VXTrFdOsltlkaTDM7O+MszMWY8cDJJ4FWqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKx/EX/HiP8AeFbFY/iL/jxH+8KAOK1H/j50f/sK2v8A6GKKNR/4+dH/AOwra/8AoYooA6jwOpbwDpajqbfH6mm+ErLVLGIQXyyiOG1ihDTCPJkXIbZs/wCW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I4grhhIcnufkkQfoaANO61SxsZ4Ybq7hhlmOI1dwC3ardYWvRXlysNhFp0lxZzrtu5o5EVgoI+UBmB55yecDOOTxu0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVnan1j/GtGs7U+sf40AU4v9dH/ALw/nRRF/ro/94fzooAwfCVxdRaX4RiS522s1tMJIQg+dgMgk9ePQetblxNJ/wAJRbw2upSPIDuubUsvlxxbTjjGdxbBHfGe1ZPhDU4rbw74cs2s5pZZrWR45FUYXbklck9T/wDrxWtZzwXN3eXEmhRx6ta7SQPLZ23L8uJPpx14oA36Ko6ZqDX8c4ltzbz28vlSxlw4DbVYYYdeGX9RV6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArO1PrH+NaNZ2p9Y/xoApxf66P/eH86KIv9dH/vD+dFAGV4RsVufCnh24Fz5M8FvJ5QwDksCM4PXHWtLSbYxaLeRQa9BczNuLXscaEo5HLNgkE9+eOgxgVzvh/S5bvw74ZureOQSx2NxEZ4yN0W5TjGTjOcfkM1saFDLZaLewy6dcTWMKKIIJbaNJpQF5XauFPQAZ/OgDX0C3W20pES+ivULEieJQA/qTgnJznJz1rTrG8NxsLKed7aW1luJzK8Dx7Ah2quFHphRz3OTxmtmgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArO1PrH+NaNZ2p9Y/wAaAKcX+uj/AN4fzooi/wBdH/vD+dFAEXgP/kRtI/64f1NU4fFl3cak6w2JaKVI1tI2kC+YxaXLFudvER4we3rxD4T1yy0zwjol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+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3aKwvNk/wCej/8AfRo82T/no/8A30aAN2isLzZP+ej/APfRo82T/no//fRoA3a5/wAWlP7JaJrsWrSfKkoZQyn1G7gkVR1TVb20uLeK2VpTKVXaBluc88/SuZulTV/Fd4mpRQ3awWkPlLMiuqEtJkqDwM4GSOuBQBQsYrm1h0WDUNbTVL06vbM0oCKMeZwFVe2PXvRW/pmj6XDqtrLFptlHIsqlXS3QEHPUECigBtr4bvLazt7eDxSqwwJsjH9nBsDJPXdzyTV/SNGGnahdXt1rJvJp4ki/49fKChSx7E5PzGqHiDXLrRord4YXnj+zglFn8s5+p4/r7GvNfDnxT8Qav4it4p7iL7Lc3MMH2dI3Hl+YSOJM8sMA4PXnHSpckinCShztaf1/T7dT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)
5.
![](data:image/jpeg;base64,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p5f2iBJdmc7dyg4z+NN1DTLfUhF5xlR4mLRyQytG65GDgg55FWbeCK1toreBAkMSBEQdFUDAH5UAYVrrt3NrSQPFALSW5mtUAz5itGCSxPQg7TxgYyOa2bi7SI+TG0T3bIWigaQKz4/p74qtFoljDqRvkSTzSzOFMjFFZvvMFzgE85PuavlFLhyoLAYDY5FAFPRr2TUtEsb6VFSS4gSV1QkgEqCQM9qztS1u7tdUlihjgNvbm2EofO9/OkKDac4GMZ5Bz7Vs2lrDY2cNrbrthhQRouScKBgcmql1olleXy3cySeYNm5VkYLJsOU3KDhtp5GaALd3P9lsp7jbu8qNn25xnAzisvQtUvL6SWK8WDeIIbhWhBA2ybsKQSeRt6989BWxJGk0TxSKGR1Ksp6EHqKpadpFrpYk+z+aS4VS0srOQq52qCTwoycD3NAF+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACs/U+sf41oVnan1j/GgCnF/ro/8AeH86KIv9dH/vD+dFAEXgP/kRtI/64f1NdFXO+A/+RG0j/rh/U10VABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVnan1j/GtGs7U+sf40AU4v9dH/vD+dFEX+uT/AHh/OigCLwH/AMiNpH/XD+pqKz8YQ3Nm9ywiSO1VnvnDZEQywVR6scfQd6l8B/8AIjaR/wBcP6mnppWgXel20SBDayGSKI7ypk3Fiy+p5BOPUZ7UAS23ijTLpYPLkfdO2yNduSzb9jAY4JU9cZwOelW9L1a21eB5rUSeWrbQXXG70I/w6juBVNPD8ceoadIjL9nsRIy7wWkZ34PPYd/ripNPt9L0vUprG3nJvrhDcPG8hd9ikLn6AsBz696ANeiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACs7U+sf41o1maxKsESSuGYA4wvvQBVi/wBdH/vD+dFY15rn2abTxBD8099BbsZDkBXcAkY74ooA1PAf/IjaR/1w/qap2+han5WlW1zZ2LR6de/aFl88sWB38hdnBG8Hr261c8B/8iNpH/XD+prKsddeSz0S3i1VPtP9oGK8jf53KEyYVsnK8hRn6UAbs/hy3n1xdVaQCVWVtv2eE/dAH3im7t61bksXbXbe/XYI47aWJx/ESzRkfh8h/Oqk82tjXFSGEnT9y5fyYzxgZ+YyhvX+D86pXdzaP4xt7W2v3jvkYPOj3DbTHtOI1TOCT97gcY68igDp6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKx/EX/HiP94VsVj+Iv8AjxH+8KAOK1H/AI+dH/7Ctr/6GKKNR/4+dH/7Ctr/AOhiigDZ8G6lLb6F4ZsBbBobq2kLTl8bSuSAF759ePx7dPqk95b2pltPsg25aR7pyqIoHXgVzXg06e3h/wAMpPMovlt5Gto9+Cw6OcdwARWz4kjsJbSAX95dWyLKHT7MW3Ow5GQAcgdemOAaANGxuWvNPtrpoWhaaJZDE/VCQDg+46VYqK2KNawtFL50ZRSsu7O8Y4Oe+etS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFY/iL/AI8R/vCtisfxF/x4j/eFAHFaj/x86P8A9hW1/wDQxRRqP/Hzo/8A2FbX/wBDFFAGz4P0959B8LXqCMLbQSCQn7xDAgAfjXSaxHdTWRitrcT7zh1F01uwHqHUZrk/CbXCab4Q2XEwgktpleFfuMQMgn1Pp+NbXja+vbHwzdfYFuhPKjL59tGXaAbSS+PwwPcigDY0y2ey0qztJGVpIIEjZkXCkqoBIHYcVaqCzkMtjbyEMC8asQ4wRkd/ep6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsfxF/x4j/eFbFY/iL/jxH+8KAOK1H/j50f/ALCtr/6GKKNR/wCPnR/+wra/+hiigDa8G6lJb6D4ZsBbFo7q2kJn3gBSuTjHU5/DHvWz4i1w6LFaiNI2luJSi+bv2qApYk7VY9gOnesfwaLBvDvhnz51W9S3ka3i34Ljoxx3ABH51u67LaQ2sbXWpXFjl8I9u3zNxyMYOfy4oA0LeTzraKUtG29A26NtynI7HuKlqCyit4LC3htMfZo4lWLacjYAAMHvxip6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsfxF/x4j/eFbFY/iL/AI8R/vCgDitR/wCPnR/+wra/+hiijUf+PnR/+wra/wDoYooA2PB+nvPofhW+RY9tvbyCRj97DAgAevNa3iTTLu+lsLi1WRzbO5eOK4MDsGXHDjpg89q5nw1dQLpPhu1h1NotQaKNzA1ztjEW87spn5iwyBwTnnjFdZ4keJNPHmXy2rlv3e+7a2Rz6F1GRxk470AaVjHcRafbR3coluUiVZZFGA7gDJH1Oanqlo8ss+iWE07O0sltGzl12sWKgnI7HPartABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWP4i/48R/vCtisfxF/wAeI/3hQBxWo/8AHzo//YVtf/QxRRqP/Hzo/wD2FbX/ANDFFAGr4UvZ7Lwp4fY2UEltIscPmGT97udiPlXbyB1PI4BPaul8QapHo+iXV9Jbm5MSFkt1xmVuyjP8+wye1cn4QWw/s7w9JLq8sN4LULFabk2EFj2Kkgt0yCCcYFdJ4ntdDvNNEWusiwEkRsXKsGKkErjnOCaANiJ/MhSTGNyg4+tPqK1SGO0hjtyDCsarGQ2cqBxz34qWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArH8Rf8eI/3hWxWP4i/48R/vCgDitR/4+dH/wCwra/+hiijUf8Aj50f/sK2v/oYooA0PC0d/deHfDtv9hL6akcc0kyyqCZFfKgg87VIB46nHbOd7xLpt3ey6fcWizP9mdy6QTiGRgy44Y9BnBPSuX8P3LW+g+GTBflZiIUktxc4OxpMZEWPnyCckn5QMjpium8a6ldaZ4ZunsvtCXEiMqzwwNL5HyklyAD0xgZ4yRnigDZsUuItPto7t1kuUiVZXQYDOAMke2c1YqGzl8+yt5fm+eNW+YEHkZ5BqagAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArH8Rf8eI/wB4VsVj+Iv+PEf7woA4rUf+PnR/+wra/wDoYoo1H/j50f8A7Ctr/wChiigDS8K6oLDw94biktIHE8axRyGXEuSxB2rt5AyCfmHGetdF4h16LQ4rUOsDPdS+UonlMaABSSS21vT071zfhRbCfw/4ft7nVmjkMUcq2O9AJGRiynkbuoB4Iziuq1uW3gtUkuNWfTQGwJVZBnI6YYEH8qANCFzJBG52ZZQfkbcvI7HuPen1BYwQWun21vakG3iiVIsNn5QABz34qegAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA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)
Заключение
На данном тестовом наборе программа функционирует успешно. Поставленная задача выполнена полностью, оформление соответствует требованиям ЕСПД.
Приложение А.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приложение Б# include <stdio.h>
# include <conio.h>
# include <math.h>
# include <stdlib.h>
# include <time.h>
# include <io.h>
# include <dos.h>
# include <string.h>
# include <SYS\STAT.H>
int const m=6, n=10, Ld=m*n/4, Lk=m*5;
unsigned short kk=0;
int a [n-1] [m-1];
int b [n-1] [m-1];
unsigned short k[Lk];
unsigned short kn[m];
unsigned short d[Ld] [2];
unsigned short dn[m] [2];
unsigned short kt [m+1];
unsigned short Lt;
unsigned short mt;
// – //
unsigned short i, j;
void tabl()
{
int i;
randomize();
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
a[i] [j]=rand()%(n+m);
if (a[i] [j]<0)
a[i] [j]=0;
}
}
void vivod_1 ()
{
FILE *f;
int i, j;
f=fopen («dat.txt», «a+»);
fprintf (f, «matrica\n»);
for (i=1; i<=m; i++)
fprintf (f,» a % 1d», i);
fprintf (f, "\n»);
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
fprintf (f, «%3d», a[i] [j]);
fprintf (f, "\n»);
}
fprintf (f, "\n»);
fclose(f);
}
void vivod_2 ()
{
FILE *f;
int i, j;
f=fopen («dat.txt», «a+»);
fprintf (f, «new_matrica\n»);
for (i=1; i<=m; i++)
fprintf (f,» a % 1d», dn[i] [1]);
fprintf (f, "\n»);
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
if (b[i] [j]>0)
fprintf (f, «%3d», d [b[i] [j]+dn [j-1] [2]] [1]);
else
fprintf (f, «%3d», b[i] [j]);
fprintf (f, "\n»);
}
fprintf (f, "\n»);
fclose(f);
}
// – //
void create_domain()
{
FILE *f;
unsigned short i, j, ii, jj, num;
unsigned short dt [n-1] [1];
f=fopen («dat.txt», «a+»);
dn[0] [2]=0;
for (num=1; num<m; num++)
{
dn[num] [2]=dn [num-1] [2];
j=0;
for (i=0; i<n; i++)
if (a[i] [num]!=0)
{
ii=1;
while ((ii<=j)&&(dt[ii] [1]<a[i] [num]))
ii=ii+1;
if (ii<=j)
{
if (a[i] [num]=dt[ii] [1])
dt[ii] [2]=dt[ii] [2]+1;
else
{
for (jj=j; jj>ii; jj–)
{
dt [jj+1] [1]=dt[jj] [1];
dt [jj+1] [2]=dt[jj] [2];
}
j=j+1;
dt[ii] [1]=a[i] [num];
dt[ii] [2]=1;
}
}
else
{
j=j+1;
dt[j] [1]=a[i] [num];
dt[j] [2]=1;
}
}
for (i=0; i<j; i++)
if (dt[i] [2]>1)
{
dn[num] [2]=dn[num] [2]+1;
d [dn[num] [2]] [1]=dt[i] [1];
d [dn[num] [2]] [2]=dt[i] [2];
}
fprintf (f,» dom=%1d», num);
for (i=dn [num-1] [2]; i<dn[num] [2]; i++)
for (j=0; j<=2; j++)
fprintf (f, "», d[i] [j]);
fprintf (f, "\n»);
}
fclose(f);
}
void first_key()
{
unsigned short i;
for (i=0; i<Lt; i++)
kt[i]=i;
}
void next_key()
{
unsigned short i, j;
j=Lt;
while ((j>0) && (kt[j]>=mt-Lt+j))
j=j-1;
if (j>0)
{
kt[j]=kt[j]+1;
for (i=j+1; i<Lt; i++)
kt[i]=kt [i-1]+1;
}
else
kt[1]=0;
}
void new_table()
{
unsigned short i, j, ii;
for (i=1; i<n; i++)
for (j=1; j<mt; j++)
if (a[i] [dn[j] [1]]=0)
b[i] [j]=-1;
else
{
ii=dn [j-1] [2]+1;
while ((ii<=dn[j] [2])&&(a[i] [dn[j] [1]]>d[ii] [1]))
ii=ii+1;
if ((ii<=dn[j] [2])&&(a[i] [dn[j] [1]]=d[ii] [1]))
b[i] [j]=ii-dn [j-1] [2];
else
b[i] [j]=0;
}
}
void analiz_1 ()
{
unsigned short i, j;
kn[0]=0;
kn[1]=0;
j=0;
for (i=1; i<m; i++)
if (dn[i] [2]=dn[j] [2])
{
kn[1]=kn[1]+1;
k [kn[1]]=i;
}
else
{
j=j+1;
dn[j] [1]=i;
dn[j] [2]=dn[i] [2];
}
mt=j;
}
void analiz_n()
{
unsigned short mm [m-1];
unsigned short i, j, ii, jj;
char yes_key;
unsigned long s[8];
for (i=1; i<mt; i++)
mm[i]=dn[i] [2] – dn [i-1] [2];
kn[2]=kn[1];
for (Lt=2; Lt<mt; Lt++)
{
first_key();
do
{
yes_key=1;
i=2;
while (yes_key && (i<Lt))
{
j=kn [i-1]+1;
while (yes_key && (j<=kn[i]))
{
jj=j;
ii=1;
while (yes_key && (jj-j<i) && (ii<=Lt))
{
if (k[jj]<kt[ii]) {
j+=i;
break;
}
else
if (k[jj]=kt[ii])
{
jj=jj+1;
ii=ii+1;
if (jj-j>=i)
yes_key=0;
}
else
if (Lt-ii<i+j-jj)
{
j+=i;
break;
}
else