ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Обробка економічної інформації засобами мови Pascal
         

     

    Кибернетика

    Лист завдання

    Анотація

    Пояснювальна записка курсової роботи "Обробка економічноїінформації за допомогою файлів "містить в собі постановку задачі, розробкуматематичної моделі, пояснення до алгоритму, пояснення до програми,опис вхідних, вихідних даних. При вивченні дисципліни "Основиінформатики "для написання курсової роботи використовувалися різнілітературні джерела, які перераховані у відповідному документі.

    У цій роботі приведена програма, яка застосовується дляобчислення залишку продукції на кінець року. Тут був використаний методструктурного програмування для полегшення написання і налагодженняпрограми, а також підвищення її наочності і читання. Метою написанняданої роботи було отримання та закріплення практичних навичокрозробки алгоритмів різними методами.

    Представлена програма реалізована на мові програмування Borland
    Pascal версії 7.0.

    Мова Borland Pascal 7.0 - це один з найбільш потужних мов для ЕОМ типу
    IBM PC/AT, що працює в середовищі операційної системи DOS, що поєднує в собіяк потужність низькорівневих мов програмування, так іструктурованість з надійністю, притаманних мов високого рівня.

    Для успішної роботи з представленою програмою необхідний комп'ютер
    IBM 80286 або будь-який сумісний з ним. Для реалізації даного алгоритмубула вибрана мова програмування - TURBO PASCAL, для ЕОМ типу IВМ
    РС/АТ/ХТ, що працюють в середовищі операційної системи МS DOS.
    Файл з текстом програми (kurs.pas) має розмір, що дорівнює 12,5 Kb;
    Виконавчий файл (kurs.exe) має розмір 33,3 Kb;

    Зміст
    | 1. Вступ | 5 |
    | 2. Постановка завдання | 7 |
    | 3. Математичної моделі | 8 |
    | 4. Опис алгоритму | 9 |
    | 5. Опис програми | |
    | 5.1. Загальні відомості мови програмування | 11 |
    | 5.2. Оператори Turbo Pascal | 12 |
    | 5.3. Вхідні та вихідні дані | 22 |
    | 5.4. Опис змінних | 23 |
    | 5.5. Опис програми | 25 |
    | 6. Список літератури | 44 |
    | Додаток А | 45 |
    | Додаток Б | 46 |

    1 Введення

    Інформатика - наукова дисципліна, що вивчає структуру і загальні властивостіінформації, а також закономірності всіх процесів обміну інформацією прибезпосередньому усному і письмовому спілкуванні фахівців до формальнихпроцесів обміну за допомогою різних носіїв інформації.
    Значну частину цих процесів складає науково-інформаційнадіяльність зі збору, переробки, зберігання, пошуку та розповсюдженнюінформації. Об'єктом вивчення інформатики не є вмістконкретної науково-інформаційної діяльності, якою повинні займатисяфахівці у відповідних галузях науки і техніки. Вона вивчаєвнутрішні механізми реферування документів на природних мовах,розробляє загальні методи такого реферування.

    Інформатику розглядають як один з розділів кібернетики, вважається,що в останній входять проблеми автоматизації інформаційної служби,перекладу та реферування науково-технічної літератури, побудоваінформаційно-пошукових систем та ряд інших завдань.

    Як було сказано вище інформатика входить до складу більш загальної наукикібернетики, що вивчає загальну теорію управління і передачі інформації.
    Основна властивість кібернетики полягає в тому, що вона придатна длядослідження будь-якої системи, яка може записувати, накопичувати,обробляти інформацію, завдяки чому її можна використовувати з метоюуправління.

    Кібернетика - наука про загальні закони одержання, зберігання, передачі і переробки інформації у складних системах. При цьому під складнимисистемами розуміються технічні, біологічні та соціальні системи,тому кібернетика мала потребу в могутньому інструменті, і цим інструментомстали комп'ютери.

    Інформація - це сукупність відомостей, що визначають міру наших знаньпро ті чи інші події, явища або чинники. Інформація єабстрактною категорією і пов'язана з процесом пізнання людиною навколишньогосвіту.

    Інформатика - це наука, яка вивчає структуру і особливістьінформації, а також питання, пов'язані зі збором, зберіганням і переробкоюінформації.

    Як правило, всі числа всередині комп'ютера представлені за допомогою нулівта одиниць, а не десяти цифр, як це звично для людей. Іншими словами,комп'ютери зазвичай працюють у двійковій системі числення, оскільки при цьомуїхній пристрій виходить значно простішим. Введення чисел в комп'ютері виведення їх для зручності людини, може здійснюватися у звичній для людейдесяткового формі.

    Для обробки на комп'ютері текстової інформації звичайно при введенні вкомп'ютер кожна буква кодується певним числом, а при виведенні назовнішні пристрої (екран або друк) для сприйняття людиною за цимичислах будуються відповідні зображення букв. Відповідність міжнабором літер і числами називається кодуванням символів.

    2. Постановка завдання

    Обробка економічної інформації, представленої у вигляді таблиці (див.додаток № 1).

    Основні дані, що входять в дану таблицю зберігати у файлі на зовнішньомуносії інформації.

    Передбачити в даному курсовому проекті можливість виведення таблиці наекран, створення нових записів, додавання нових записів у файл на зовнішньомуносії, видалення записів з файлу, можливість редагування записи втаблиці і графічну заставку для даного курсового проекту звикористанням модуля Graph.

    Представити разом з вихідним текстом програми, написаної мовою
    Pascal, пояснювальну записку.

    3 Побудова математичної моделі
    Дано вихідні дані:
    | № | Перехідний | Прихід | Витрата, шт | Ціна за | Залишок на |
    | | Залишок продукції | продукції, | (А3) | | кінець року |
    | | На початок року | шт (А2) | | 1 шт | (А) |
    | | (А1) | | | (А4) | |
    | 1 | 45 | 32 | 21 | 6.90 | (A () |
    | 2 | 234 | 3454 | 32 | 5.67 | (A (() |
    | ... | ... | ... | ... | ... | ... |
    | Разом: As = A (+ A ((+ ... An |

    Для обчислення остаточних даних в таблиці використовуються наступніформули:

    А = ((А1 + А2)-А3) * А4

    As = A (+ A ((+ ... An

    4 Опис алгоритму
    Крок 1. Запит про запуск графічної заставки - (y/n)
    Крок 1.1. При натискання клавіші виконується виведення графічної заставки наекран
    Крок 1.2. При натискання будь-якої клавіші (окрім) виконується перехід доголовного меню програми
    Крок 2. Вибір пунктів головного меню
    Крок 3. Виконання подалгорітма виведення основної таблиці при виборі пункту
    «1» головного меню.
    Крок 3.1. Друк на екран «шапки» таблиці.
    Крок 3.2. Друк основних даних таблиці.
    Крок 3.3. Повернення до кроку 2 або вихід з програми.
    Крок 4. Виконання подалгорітма створення нових записів при виборі пункту
    «2» головного меню.
    Крок 4.1. Підтвердження створення нової таблиці.
    Крок 4.2. Введення кількості записів.
    Крок 4.3. Виконання алгоритму створення нових записів.
    Крок 4 .. 4. Повернення до кроку 2.
    Крок 5. Виконання подалгорітма додавання запису при виборі пункту «3»головного меню.
    Крок 5.1. Підтвердження додавання запису.
    Крок 5.2. Введення кількості додаються записів.
    Крок 5.3. Виконання алгоритму додавання записів.
    Крок 5.4. Повернення до кроку 2.
    Крок 6. Виконання подалгорітма видалення запису при виборі пункту «4»головного меню.
    Крок 6.1. Підтвердження видалення запису
    Крок 6.2. Вибір видаляється записи з використанням попереднього переглядутаблиці.
    Крок 6.3. Виконання алгоритму видалення запису.
    Крок 6.4. При натискання клавіші - повернення до кроку 6.1, або при натисканнябудь-якої клавіші, окрім - до кроку 2
    Крок 7. Виконання подалгорітма редагування запису при виборі пункту «5»головного меню.
    Крок 7.1. Підтвердження операції редагування запису
    Крок 7.2. Вибір редагованої записи з використанням попередньогоперегляду таблиці.
    Крок 7.3. Виконання алгоритму редагування запису.
    Крок 7.4. Повернення до кроку 2.
    Крок 8. Виконання перегляду заставки при виборі пункту «6» головного меню.
    Крок 8.1. Підтвердження запуску заставки
    Крок 8.2. Алгоритм виведення графічної заставки на екран
    Крок 9. Виконання подалгорітма виходу з програми при виборі пункту «7»головного меню.

    5 Опис програми

    5.1 Загальні відомості мови програмування

    Система програмування Турбо Паскаль, розроблена американськоюкорпорацією Borland, залишається однією з найпопулярніших системпрограмування в світі, якій під силу будь-які завдання від створенняпростих програм, призначених для рішення нескладних обчислювальних завдань, до розробки найскладніших реляційних систем управліннябазами даних.

    До основних достоїнств мови слід віднести гнучкість і надійність,простоту і ясність конструкцій, легкість реалізації на ЕОМ, можливістьповного контролю правильності програм під час компіляції та виконання,наявність набору структурних типів даних (масивів, файлів і записів),можливість побудови нових типів даних.

    Версія мови TURBO PASCAL V 7.0. включає в себе можливості:

    -використання окремо компільованих модулів;

    -інтегрований відладчик;

    -інтегроване середовище розробника;

    -об'єктно -орієнтовану оболонку для створення прикладних програм.

    Турбо Паскаль 7.0 оперує об'єктами, притаманними типовою ЕОМ:символами, цілими числами і числами з плаваючою комою. Програмістовідозволено керувати розміщенням об'єктів і використовувати в програмах знаннярозміру об'єктів і способів їх взаємного розташування.

    5.2 Оператори Turbo Pascal.

    У своїй простій формі програма Borland Pascal складається з заголовкапрограми, який іменує програму, і основного програмного блоку,виконує призначення програми. В основному програмному блоцізнаходиться секція коду, укладена між ключовими словами begin та end.
    Проста програма, що ілюструє ці принципи: program Privet; begin

    Writeln ( 'Ласкаво просимо до Borland Pascal'); end.
    Перший рядок - це заголовок програми, який іменує данупрограму. Інша частина програми - це початковий код, якийпочинається ключовим словом begin і закінчується end. Хоча данаконкретна програма містить тільки один рядок, їх може бути багато.
    У будь-якій програмі Borland Pascal всі дії виконуються між begin іend.

    Вихідний код між begin і end містить оператори, які описуютьщо виконуються програмою дії. Це називаються операторної частиноюпрограми.
    Наведемо приклади операторів:

    A: = B + C; (присвоїти значення)

    Calculate (Length, Height); (активізувати процедуру) if X <2 then (оператор умови)

    Answer: = X * Y; begin (складовоюоператор)

    X: = 3;

    Y: = 4;

    Z: = 5; end;

    while not EOF (InFile) do (оператор циклу) begin

    ReadLn (InFile, Line);

    Process (Line); end;
    Умовний оператор:

    Дозволяє перевірити деякий умова і залежно від результатівперевірки виконати ту чи іншу дію. Структура умовного операторамає такий вигляд:

    IF THEN elese;
    Спочатку обчислюється умовне вираження. Якщо результат є TRUE,то виконується, а пропускається; якщо результатє FALSE, навпаки, пропускається, а виконується
    .
    Лічильний оператор циклу FOR:

    FOR: = to do

    - параметр циклу

    - початкове значення

    - кінцеве значення

    - довільний оператор Турбо Паскаля.
    При виконанні оператора FOR спочатку обчислюється вираз іздійснюється присвоювання: =.
    Після цього цикл повторюється:
    . Перевірка умови: тип функції;
    Begin end;

    При написання даного курсового проекту необхідно було скористатисяструктуровані типами даних (масиви, записи, множини, файли).

    Запис - це структура даних, що складається з фіксованого числакомпонентів, які називаються полями запису. На відміну від масиву, компоненти
    (поля) запису можуть бути різного типу. Щоб можна було посилатися на тойабо інший компонент записи, поля іменуються.

    Структура оголошення типу запису:

    = RECORD END

    - ідентифікатор;

    - список полів ; являє собою послідовністьрозділів записи, між якими ставиться крапка з комою. Кожен розділзапису складається з одного або декількох ідентифікаторів полів, відокремлюваниходин від одного комами. За ідентифікатором (ідентифікаторами) ставитьсядвокрапка і опис типу поля (полів).

    Файли. Під файлом розуміється або іменована область зовнішньої пам'яті ПКабо логічного пристрою. Будь-який файл має три характерні особливості.
    По-перше, у нього є ім'я, що дає можливість програмі працюватиодночасно з кількома файлами. По-друге, він містить компонентиодного типу. По-третє, довжина знову створюваного файла ніяк необмовляється при його оголошенні.

    = FILE OF;

    = TEXT;

    = FILE;

    - ім'я файлового типу;

    TEXT - ім'я стандартного типу текстових файлів;

    - будь-який тип ТП, крім файлів.
    Залежно від способу оголошення можна виділити три види файлів:

    . Типізовані файли (file of ...);

    . Текстові файли (визначаються типом TEXT);

    . Нетипізовані файли (визначаються типом FILE).
    Файлова мінлива зв'язується з ім'ям файлу в результаті звернення достандартною процедурою ASSIGN:

    ASSIGN (,);

    - файлова змінна;

    - текстове вираження, що містять ім'я файлу абологічний пристрій.

    У ТП можна відкрити файл для читання, для запису інформації, а також дляпроцедурою RESET за допомогою процедури WRITE (тобто для запису інформації).
    Така можливість дозволяє легко оновлювати раніше створені типізованіфайли і при необхідності розширювати їх. Для текстових файлів, відкритихпроцедурою RESET, не можна використовувати процедуру WRITE.

    Стандартна процедура REWRITE () ініціює запис інформації вфайл або в лог. пристрій, пов'язане раніше з файлової змінної.
    Але цією процедурою не можна ініціювати запис інформації в ранішеіснував дисковий фото: під час виконання цієї процедури старий файлзнищитися.

    Процедура READ.
    Забезпечує читання чергових компонентів типізований файлу. Форматобігу: READ (,)
    - список введення, що містить одну або більше змінних такого жтипу, що й компоненти файлу.

    Процедура SEEK.
    Зміщує покажчик файлу до необхідного компоненту. Формат обігу:

    SEEK (,)
    - вираз типу Longint.
    Процедуру не можна застосовувати до текстових файлів.

    Функція FileSize.
    Повертає значення, яке містить кількість компонентів файлу.

    FileSize ()

    Функція EOF (): Boolean.
    Логічна функція, тестуються кінець файлу.

    Модулі.

    Модуль - це автономно компільовані програмна одиниця, що включає всебе різні компоненти розділу описів (типи, константи, змінні,процедури, функції) і, можливо, деякі виконуються операториініціації частини.

    Зв'язок встановлюється спец. оголошенням:
    USES - список пов'язують модулів.

    При написання даного курсового проекту, використовувалися двадодаткових модулів: GRAPH та CRT.

    Модуль GRAPH

    GRAPH - являє собою бібліотеку підпрограм, що забезпечуєповне управління графічними режимами для різних адаптерів дисплеїв:
    CGA, EGA, VGA ... Містить 78 процедур і функцій (як базових - малюванняточок, ліній, кіл, прямокутників), так і розширюють можливостібазових (багатокутники, сектору, дуги, зафарбовування фігур, виводутексту і т.д.).

    Для запуску програми з використанням модуля GRAPH необхідно,щоб у робочому каталозі знаходилися графічні драйвери з розширенням
    *. BGI, також повинен бути доступний компілятору модуль GRAPH.TPU.

    На початку програми модуль GRAPH повинен бути підключений
    USES GRAPH;
    InitGraph (driver, mode, 'шлях до BGI') ; driver - визначає тип графічного драйвера, mode - змінна, що задає режим роботи графічного адаптера;

    Процедури і функції модуля GRAPH

    ClearDevice - Очищає екран і поміщає курсор у точку (0,0 );
    SetViewPort (x1, y1, x2, y2: integer; Clip: boolean) - Встановлює поточнийвікно для графічного виводу. X1, y1 - координата верхнього лівого кута;x2, y2 - координата нижнього правого кута. Якщо Clip = true, то всі зображеннявідсікаються на кордонах висновку;
    Closegraph - закриває графічний режим
    ClearViewPort - Очищає поточне вікно;
    GetMaxX: integer - повертає максимальну горизонтальну координатуграфічного екрану;
    GetMaxY: integer - повертає максимальну вертикальну координатуграфічного екрану;
    GetX: integer - повертає координату Х поточного покажчика у вікні;
    GetY: integer - повертає координату Y курсора у вікні;
    SetLineStyle (Line, Pattern, Thickness: word) - Встановлює стиль (0 .. 4),шаблон штрихування (0 .. 12) і товщину (1-стандартам, 3-утpоенная);
    SetFillStyle (Pattern, Color: word) - встановлює зразок штрихування і колір
    (0 .. 15 і 128-меpцаніе);
    SetGraphMode (Mode: integer) - встановлює новий графічний режим іочищає екран;
    SetColor (Color: word) - встановлює основний колір, яким виконуєтьсямалювання (0 .. 15);
    SetBkColor (Color: word) - Установка кольору фону.
    PutPixel (X, Y: integer; Color: word) - Виводить точку кольором Color зкоординатою X, Y;
    LineTO (X, Y: integer) - Малює лінію від поточного покажчика до точки зкоординатою Х, У;
    LineRel (DX, DY: integer) - Малює лінію від поточного у?? азателя до точки,заданої збільшенням координат;
    Line (X1, Y1, X2, Y2: integer) - Малює лінію від точки (X1, Y1) до точки зкоординатою Х2, У2;
    MoveTO (X, Y: integer) - зміщує поточний покажчик до точки з координатою
    Х, У;
    MoveRel (DX, DY: integer) - зміщує поточний покажчик до точки, заданоїзбільшенням координат;
    Rectangle (X1, Y1, X2, Y2: integer) - Малює прямокутник, використовуючи поточнийколір і тип лінії з верхньої лівої та правої нижньої точок;
    Bar (X1, Y1, X2, Y2: integer) - Малює зафарбований прямокутник, використовуючиустановку SetFillStyle;
    Bar3D (X1, Y1, X2, Y2: integer; Depth: word; Top: Bolean) - Малює зафарбованийпаpаллеліпіпед. Depth - глибина в Pixel (1/4 ширини). Якщо Тор = True, томалюється верхня грань пеpеллеліпіпеда;
    Circle (X, Y: integer; R: word) - Малює коло радіуса R, використовуючи X, Y яккоординати центру;
    Fillellipse (X, Y: integer; XR, YR: word) - Малює защтpіхованний еліпс,використовуючи X, Y як центр і XR, YR як горизонтальний і вертикальний радіуси.
    RestorCRTMode - Відновлює текстовий режим роботи екрану;
    OutText (Text: string) - Виводить текстовий рядок на екран.
    OutTextXY (X, Y: integer; Text: string) - Виводить текст у задане місцеекрану.

    Модуль CRT

    Включає процедури та функції, які управляють текстовим режимомроботи дисплея. За допомогою підпрограм модуля можна переміщати курсор поекрану дисплея, міняти колір символів, що виводяться і фону, створювати вікна наекрані, керувати звуком, працювати з клавіатурою.
    Функції управління клавіатурою:
    KeyPressed: Boolean; - повертає True, якщо на даний момент наклавіатурі була натиснута клавіша, інакше False. Чи не призупиняєвиконання програми. Використовується при організації роботи циклів.
    ReadKey: Char; - читає і повертає до програми символ з клавіатури (безвідображення на екрані). Припиняє виконання програми, перш ніж натиснутина будь-яку клавішу символу. Використовується в операторах IF для перевіркисимволів.
    WhereX: Byte; - повертає горизонтальну координату поточної позиціїкурсору щодо вікна.
    WhereY: Byte; - повертає вертикальну координату поточної позиціїкурсору щодо вікна.
    Процедури управління дисплеєм
    ClrEol; - видаляє всі символи праворуч від курсора до кінця рядка безпереміщення курсору.
    ClrScr; - очищає екран (вікно на екрані) і поміщає курсор у верхнійлівий кут.
    Delay (D: word); - припиняє роботу програми на D мілісекунд.
    GotoXY (X, Y: byte); - переміщує курсор в потрібне місце екрану (вікна). Лівий верхній кут екрану (вікна) має координати (1,1). Відлік координат йдезліва направо і зверху вниз. Кількість символів у рядку і самихрядків залежить від типу дисплея (зазвичай 25 рядків і 80 символів).
    InsLine; - вставляє порожню рядок у позицію курсору.
    HighVideo; - встановлює високу яскравість символів.
    LowVideo; - встановлює низьку яскравість символів.
    NormVideo; - встановлює нормальну яскравість символів.
    Window (X1, Y1, X2, Y2: byte); - визначає розміри вікна на екрані для виведеннятексту. X1, Y1 - координати лівого верхнього кута, X2, Y2 - правого нижньогокута.
    TextBackGround (Color: byte); - встановлює колір фону екрану (вікна) від 0
    (чорний) до 15 (білий).
    TextColor (Color: byte); - встановлює колір символу.
    TextMode (Mode: word); - встановлює потрібний текстовий режим: 0,1,2 ...
    Управління звуковим генератором
    Sound (F: word); - включає звук генератора, F - частота звуку вгерцах.
    Delay (T: word); - встановлює тривалість звучання вмілісекундах.
    NoSound; - вимикає звук генератора.

    5.3 Вхідні та вихідні дані

    Вхідними даними є записи: номер продукції (n), що переходитьзалишок продукції на початок року (e1), прихід продукції (e2), витрата (e3),ціна за 1 шт (e4). При завершенні введення даних і виборівідповідного пункту меню програми, програма видасть користувачупідсумкові дані у вигляді таблиці.

    Вихідними даними, тобто результатом програми є таблиця якамістить вихідні запису і наступні змінні:
    . Залишок на кінець року (st);
    . Разом (itog);
    Файл з текстом програми (kurs.pas) має розмір, що дорівнює 12,5 Kb;
    Виконавчий файл (kurs.exe) має розмір 33,3 Kb;

    5.4 Опис змінних

    У програмі використовуються наступні змінні:
    Bas - запис.type bas = record n: integer; e1, e2, e3: integer; e4: real; end;
    Де: n - номер продукції; e1 - перехідний залишок продукції на початок року; e2 - прихід продукції; e3 - витрата; e4 - ціна за 1 шт.menu2 - мітка, використовується для роботи з головним меню програми;

    C: char, використовується для роботи оператора readkay (читає символ зклавіатури без ехоповтора на екрані);
    O: real використовується для редагування записів.ww, l, nn, q, i, gd, gm: integer; ww-використовується для виведення шапки таблиці (координата по Y). l-використовується для роботи з меню і для видалення запису nn, q-використовується в програмі для створення нових записів i-лічильник gd, gm - для графіки: gd - визначає тип графічного драйвера, gm - змінна, що задає режим роботи графічного адаптера;pp, qq, n, mm: integer; - змінні для додавання нового запису;f, f2: file of bas; - файли a, b: bas; a, b - змінні, що містять записи типу Bas.

    Змінна b використовується для видалення записів. st: real; st - для обчислення суми в таблиці
    Процедури:procedure view (w: integer);

    - процедура виведення таблиці, де w-координата по Х;varitog: real;-для обчислення підсумкового значення сума в таблиці;
    Procedure menu;

    - процедура виведення меню;
    Procedure zast;

    - процедура виведення графічної заставкиvar xm, ym: integer; xm, ym-координати для виводу граф. об'єктівsize: integer; saucer: pointer;k, kk: integer; size, saucer, k, kk-для руху
    Procedure error;

    - процедура виводу повідомлення про помилку
    Procedure exitt;

    - процедура виходу з програми

    5.5 Опис програми
    При запуски програми йде підключення додаткових модулів Crt і Graph: uses crt, graph;
    Опис змінних (див. пункт 5.4)
    Опис процедур:

    Процедура виведення таблиці на екран - view:
    Встановлення текстового вікна на екрані для виведення шапки з координатами лівоговерхнього кута -1,1 і правого нижнього - 80,6 window (1,1,80,6);
    Установка кольору фону і символів textbackground (5); textcolor (15);
    Друк назви таблиці gotoxy (w, 1); write ( 'Реалізація продукції за рік'); textcolor (9); gotoxy (w-16, 2); textbackground (0); write ('-------- -------------------------------------------------- ----< br>');
    Установка кольору символів і друк шапки таблиці textcolor (15); gotoxy (w-15, 4); write ( 'N'); gotoxy (w-13, 3); write ( 'Перехідний залишок'); gotoxy (w-10 , 4); write ( 'продукції на'); gotoxy (w-10, 5); write ( 'початок року'); gotoxy (w +9,3); write ( 'Прихід'); gotoxy (w +8 , 4); write ( 'продукції'); gotoxy (w +11,5); write ( 'шт'); gotoxy (w +18,4); write ( 'Витрати'); gotoxy (W +20,5 ); write ( 'шт'); gotoxy (w +26,4); write ( 'Ціна за'); gotoxy (w +27,5); write ('1 шт '); gotoxy (w +35,4 ); write ( 'Залишок на'); gotoxy (w +35,5); writeln ( 'кінець року'); textcolor (9); gotoxy (w-16, 6); write ('------ -------------------------------------------------- ------< br>');
    Установка кольору символів і текстового екрану для виведення даних таблиці textcolor (15); window (1,7,80,25);
    Підготовка файлу до читання reset (f);
    Установка координати y, необхідної для виведення даних таблиці і обнуленняпідсумкового значення таблиці. ww: = 1; itog: = 0;
    Висновок основних даних таблиці repeat writeln; read (f, a); st: = ((a.e1 + a.e2)-a.e3) * a.e4; itog: = itog + st; textcolor (13); gotoxy (w-15, ww); write (an); textcolor (15); gotoxy (w-5, ww); write (a.e1); gotoxy (w 11, ww); write (a.e2); gotoxy (w 20, ww); write (a.e3); gotoxy (w 29, ww); write (a.e4: 4:2); gotoxy (w 37, ww); write (st: 4 : 2); ww: = ww 1;
    Перевірка для виведення черговий рядка на екран. Необхідно в тому випадку,коли кількість записів перевищує кількість рядків на моніторі. if ww> = 19 then begin if (ww = 19) then begin writeln; write ( 'Для перегляду використовуйте клавішу
    '); Write (' Для продовження - '); c: = readkey; delline; if c = # 32 then ww: = ww-1 else break; end; end;
    Висновок даних в таблицю поки не кінець файлу until eof (f);
    Установка кольору символу і висновок лінії на екран textcolor (9); gotoxy (w-16, ww); write ('------------------------- -------------------------------------< br>');
    Виведення підсумкового значення textcolor (9); gotoxy (w 7, ww); write ('|'); textbackground (5); textcolor (10); write ( 'Разом:', itog: 4:2); textbackground ( 0); textcolor (9); write ('+'); writeln;
    Завершення процедури виведення таблиці end;

    Процедура виведення основного меню - menu:
    Очищення екрану і встановлення стандартного текстового режиму clrscr; textmode (Co80);
    Встановлення текстового вікна на екрані з координатами лівого верхнього кута
    -13,3 І правого нижнього - 70,15 window (13,3,70,15);
    Установка кольору фону і символів textbackground (14); textcolor (15);
    Переміщення покажчика та друк повідомлення gotoxy (1,3); write ( 'Для подальшої роботи з програмою виберітьномерок :');< br>Установка кольору фону textbackground (0);
    Друк пунктів меню, встановлюючи колір для цифр меню і свій колір дляназви пункту меню gotoxy (16,5); textcolor (10); write ('1 '); textcolor (7); write (' -
    Перегляд '); gotoxy (16,6); textcolor (10); write ('2'); textcolor (7); write ( '-
    Створити '); gotoxy (16,7); textcolor (10); write ('3'); textcolor (7); write ( '-
    Додати '); gotoxy (16,8); textcolor (10); write ('4'); textcolor (7); write ( '-
    Видалити '); gotoxy (16,9); textcolor (10); write ('5'); textcolor (7); write ( '
    -Редагувати '); gotoxy (16,10); textcolor (10); write ('6'); textcolor (7); write ( '-
    Заставка '); gotoxy (16,11); textcolor (10); write ('7'); textcolor (7); write ( '-
    Вихід '); gotoxy (16,13); write (' Введіть номер :');< br>Установка кольору символу і його мерехтіння textcolor (10 +128);
    Введення змінної l, необхідної для подальшої роботи програми і установкастандартного текстового режиму readln (l); textmode (Co80);
    Кінець процедура виводу головного меню end;

    Процедура виведення заставки - zast:
    Очищення екрану clrscr;
    Установка білого кольору символів textcolor (white);
    Висновок повідомлення: «Показати заставку?»

    Write ( 'Показати заставку? (Y/n )');< br>Зчитування натискання клавіші. c: = readkey
    При натискання клавіші - виконується подальший хід процедури:
    Ініціалізація графіки initgraph (gd, gm, 'bgi')
    Установка координат xm, ym для виведення графічних об'єктів xm: = getmaxx div 4; ym: = getmaxy div 4;
    Установка поточного шрифту, стилю та розміру тексту settextstyle (2,0,5)
    Виведення тексту на екран, використовуючи координати x = xm +100, y = 10 outtextxy (xm 100,10, '# # Sergei Kovbasyuk ##');< br>Обчислень числа байт, необхідного для збереження прямокутної областіекрану size: = imagesize (xm 100,10, xm +275,10 +20);
    Створення динамічної змінної getmem (saucer, size);
    Збереження у змінній бітовий образ вказаній частині екрана. getimage (xm 100,10, xm +275,10 +20, saucer ^);
    Висновок бітового образу на екран putimage (xm 100,10, saucer ^, xorput);
    Обнулення змінних, необхідних для виведення на екран бітового зображення,використовуючи при цьому оператор циклу REPEAT ... UNTIL і цикл FOR. k: = 0; kk: = 0; i: = 0; n: = 0;
    Циклу REPEAT ... UNTIL repeat
    Установка поточного шрифту, стилю та розміру тексту settextstyle (10,0,5);
    Установка поточного кольору шрифту setcolor (i +1);
    Виведення тексту на екран outtextxy ((getmaxx div 5), (getmaxy div 4), ' "Sorge pro "');< br>Установка поточного шрифту, стилю, розміру тексту. settextstyle (5,0,5); setcolor (15);
    Виведення тексту на екран outtextxy ((getmaxx-200), (getmaxy-250), 'present');
    Установка поточного шрифту, стилю, розміру тексту. settextstyle (3,0,1);
    Виведення тексту на екран outtextxy (40, (getmaxy-50), 'http://sorgepro.agava.ru'); outtextxy (290, (getmaxy-50), 'e-mail: office@sorgepro.agava.ru' );
    Установка поточного шрифту, стилю, розміру тексту. settextstyle (2,0,5);
    Виведення тексту на екран outtextxy (getmaxx-150, getmaxy-20, 'Press'); outtextxy (20, getmaxy-20, '(c) 2000. All rights don''t reserved .');< br>Нарощування змінних для виведення на екран бітового зображення і длязміни поточного кольору k: = k 5; i: = i +1;
    Висновок бітового образу на екран putimage (k, 10, saucer ^, xorput);
    Затримка програми delay (50);
    Нарощування змінної для виведення на екран бітового зображення kk: = kk 5;
    Висновок бітового образу на екран putimage (kk, 10, saucer ^, xorput);
    Якщо бітове зображення досягла заданих меж екрану, то йде обнуленнякоординат виведення цього зображення на екран if k> getmaxx-100 then begin k: = 0; kk: = 0 end;
    Виконання цього циклу, поки не натиснута яка-небудь клавіша until keypressed;
    Виведення на екран трьох кіл, що змінюють свій розмір за допомогою нарощуваннязмінної.

    {----------- krugi ------------) for i: = 0 to 399 do begin setcolor (red); circle (200,100, i); setcolor (green); circle (400,100, i); setcolor (yellow); circle (300,300, i); delay (10); end;
    Виведення на екран кола, що зменшує свій радіус. for i: = 399 downto 0 do begin setcolor (i); сircle (322,250, i); delay (10); end;

    {---------- end_krugi --- ------}< br>Закриття граф. режиму closegraph;
    Завершення складеного оператора begin ... end end;
    Завершення процедури виведення заставки end;

    Процедура виводу повідомлення про помилку - error: begin
    Скинути лічильник i: = 0;
    Цикл виводу повідомлення про помилку, поки i не дорівнює 5 repeat textmode (Co80); clrscr; gotoxy (24,8); textcolor (15); write ( 'Ви ВВЕЛИ НЕПРАВИЛЬНИЙ НОМЕР'); звук, при виводі повідомлення sound (185) ; delay (100); nosound; clrscr; gotoxy (24,8); textcolor (7); write ( 'Ви ВВЕЛИ НЕПРАВИЛЬНИЙ НОМЕР'); sound (174); delay (100); nosound;нарощування лічильника i: = i +1; until i = 5;
    Відключення звуку nosound;
    Повернутись в головне меню menu;
    Завершення процедури виводу повідомлення про помилку end;
    Процедура виходу з програми - exitt:
    Очітстка екрану clrscr;
    Ініціалізація графіки initgraph (gd, gm, 'bgi');
    Виведення тексту на екран поки не натиснута яка-небудь клавіша repeat settextstyle (7,0,4); setcolor (15); outtextxy (90, getmaxy div 4, 'Technical support by e-mail:'); settextstyle (1,0 , 4); setcolor (10); outtextxy (120, (getmaxy div 4) +50, 'support@sorgepro.agava.ru'); settextstyle (7,0,4); setcolor (15); outtextxy (140, (getmaxy div 4) +100, 'or visited our web site:'); settextstyle (1,0,4); setcolor (10); outtextxy (120, (getmaxy div 4) +150, 'http://sorgepro . agava.ru '); settextstyle (2,0,5); setcolor (15); outtextxy (getmaxx div 4, getmaxy-30,' (c) 2000. "Sorge pro". All rightsdon''t reserved. '); until keypressed;
    Закриття граф. режиму closegraph;
    Вихід з програми exit;
    Завершення процедуриend;

    {========================== Proga ============= ==============}< br>Триває виконання процедури Zast:при натискання будь-якої іншої клавіші - встановлюється зв'язок з файлом assign (f,''шлях до файлу ')

    Встановлення стандартного текстового режиму textmode (Co80);
    Друк головного меню, використовуючи процедуру menu
    Встановлення мітки menu2:
    Якщо l = 1, то виконується друк таблиці if l = 1 then begin
    Друк таблиці за допомогою процедури view, де w = 27;
    Висновок повідомлення для користувача після виведення таблиці textcolor (15); gotoxy (7, ww +1); writeln ( 'Для виходу натисніть або-повернутись в головнеменю. ');
    Зчитування натискання клавіші з клавіатури c: = readkey;
    Встановлення стандартного текстового режиму textmode (Co80);
    Якщо натиснута клавіша відбувається повернення в головне меню: виконанняпроцедури menu і перехід до мітки menu2 if c = # 27 then begin menu; goto menu2 end
    Інакше виконується процедура виходу - exitt else begin exitt;
    Завершення складеного оператора begin ... end end
    Якщо l не дорівнює 1, а рівно 2 то виконується алгоритм створення записівзаново else if l = 2 then begin
    Очищення екрану clrscr;
    Установка кольору фону і символів та виведення на екран повідомлення textbackground (14); textcolor (15); writeln ( 'Ви дійсно хочете створити нові записи?'); Writeln ('!!! ПОПЕРЕДНІ ЗАПИСИ буде втрачено !!!');< br>Установка кольору фону і символів та виведення на екран повідомлення textbackground (0); gotoxy (1,4); writeln ( 'Для продовження натисніть або-повернення вголовне меню .');< br>Зчитування клавіші з клавіатури c: = readkey;
    Якщо натиснута клавіша, то виконується повернення до головного меню та перехіддо позначки menu2 if c = # 27 then begin menu; goto menu2 end
    Інакше йде введення змінної q - кількість створених записів else begin writeln ( 'Введіть кількість записів:'); read (q);
    Очищення екрану clrscr;
    Підготовка файлу до запису rewrite (f);
    Цикл введення нових записів. Вихід з циклу здійснитися в тому випадку, колиan дорівнюватиме q repeat writeln ( 'введи поточний номер продукції ...'); readln (an); writeln (' введи перехідний залишок продукції на початок року ...'); readln (a.e1); writeln ( 'введи прихід продукції ...'); readln (a.e2); writeln ( 'введи витрата ...'); readln (a.e3); writeln (' введи ціну за 1 шт ...'); readln (a . e4); write (f, a); until (an = q);
    Очищення екрану і висновок повідомлення clrscr; writeln ( 'ВСЕ OK .');< br>Затримка програми. Повернутись в головне меню і перехід до мітки menu2 delay (1000); menu; goto menu2;
    Завершення складеного оператора begin ... end end;
    Завершення складеного оператора begin ... end end
    Якщо змінна l не дорівнює 1 і 2, а дорівнює 3, то виконується алгоритмдодавання запису else if l = 3 then begin
    Очищення екрану, установка кольору фону і символів і виведення повідомлення clrscr; textbackground (0); textcolor (15); writeln ( 'Продолжить (y/n )');< br>Зчитування клавіші з клавіатури c: = readkey;
    Якщо натиснута будь-яка клавіша, крім, то виконується повернення до головногоменю і перехід до мітки menu2 if c # 121 then begin menu; goto menu2; end
    Інакше виконується алгоритм додавання нового запису else beginочищення екрана clrscr;
    Введення кількості добовлять записів-mm writeln ( 'Введіть кількість добовлять записів:'); read (mm);очищення екрана clrscr;
    Підготовка файлу до читання, визначення кінця файлу і установка покажчика вкінець файлу reset (f); n: = filesize (f); seek (f, n);установка номери добовлять запису pp: = n +1;
    Цикл додавання запису. Завершиться тоді, коли номер останньої додається,запису qq буде дорівнює mm repeat writeln ( 'введи поточний номер продукції ...'); readln (qq); an: = pp; writeln (' введи перехідний залишок продукції на початок року ...'); readln (a.e1 ); writeln ( 'введи прихід продукції ...'); readln (a.e2); writeln (' введи витрата ...'); readln (a.e3); writeln ( 'введи ціну за 1 шт ... '); readln (a.e4); write (f, a); pp: = pp 1; until (qq = mm);
    Очищення екрану і висновок повідомлення clrscr; writeln ( 'ВСЕ OK .');< br>Затримка програми delay (1000);
    Повернутись в головне меню і перехід до мітки menu2 menu; goto menu2;
    Завершення складеного оператора begin ... end end;
    Завершення складеного оператора begin ... end end else
    Якщо l не дорівнює 1, не 2 і не 3, а дорівнює 4, то виконується алгоритмвидалення записів if l = 4 then begin
    Очищення екрану clrscr;
    Встановлення текстового екрану для виведення таблиці за допомогою процедури view window (1,1,68,22); view (17);
    Встановлення текстового екрану для управління видалення записів window (64,1,80,22);
    Установка кольору символів і виведення повідомлення textcolor (15); writeln ( 'Продолжить (y/n )');< br>Зчитування клавіші з клавіатури c: = readkey;
    Якщо натиснута будь-яка клавіша, крім, то виконується повернення до стандартноготекстового режиму, до головного меню та перехід до мітки menu2 if c # 121 then begin textmode (Co80); menu; goto menu2; end
    Інакше відбувається введення видаляється запису - nn else begin write ( 'Введи номер:'); readln (nn);
    Якщо вводиться номера запису не існує - виконується процедура виведенняповідомлення про помилку - error, і перехід до мітки menu2 if nn> filesize (f) then begin error; goto menu2; end;
    Видалення запису: запис у новий файл:
    Підготовка файлу до читання reset (f);
    Установка зв'язок з новим файлом assign (f2, 'k2');
    Підготовка нового файлу до запису rewrite (f2);
    Обнулення змінних, необхідних для видалення запису l: = 0; q: = 0;
    Визначення кількості записів в первинному файлі n: = filesize (f);
    Цикл перезапису записів з першого файлу в новий і стирає записігнорується. Цикл завершується, коли всі записи будуть переписані repeat l: = l +1; if lnn then begin q: = q 1; seek (f, l-1); read (f, a); bn: = q; b.e1: = a.e1; b.e2: = a.e2; b.e3 : = a.e3; b.e4: = a.e4; write (f2, b); end; until l = n;
    Підготовка щойно створеного файлу до читання. reset (f2);
    Підготовка початкового файлу до перезапису rewrite (f);
    Цикл перезапису з тільки що створеного файлу записів в початковий, алевже без необхідної запису. Перезапис буде проводитися, поки не кінецьдругий файлу repeat read (f2, b); an: = bn; a.e1: = b.e1; a.e2: = b.e2; a.e3: = b.e3; a.e4: = b.e4 ; write (f, a); until eof (f2);
    Висновок повідомлення і затримка програми writeln; writeln ( 'Всі Ok!'); Delay (1000);
    Висновок повідомлення про можливість продовження видалення нових записів абоповернення до головного меню writeln ( 'Reload-'); write ( 'Exit-');
    Зчитування клавіші з клавіатури c: = readkey;
    Якщо натиснута клавіші, то відбувається повернення до головного меню та перехіддо позначки menu2 if c = # 27 then begin menu; goto menu2; endінакше встановлюється стандартний текстової режим, l присвоюється 4 таздійснюється перехід до мітки menu2, тобто відбувається знову алгоритмвидалення запису else begin textmode (Co80); l: = 4; goto menu2; end;
    Завершення складових операторів begin ... end end; end


    Якщо l не дорівнює 1, не 2 і не 3, і не 4, а так само 5, то виконується алгоритмредагування записів else if l = 5 then begin
    Виконується процедура виведення таблиці view (27);
    Установка кольору символів і виведення повідомлення textcolor (15); writeln ( 'Продолжить (y/n )');< br>Зчитування клавіші з клавіатури c: = readkey;
    Якщо натиснута будь-яка клавіша, крім, то виконується повернення до стандартноготекстового режиму, до головного меню та перехід до мітки menu2 if c # 121 then begin textmode (Co80); menu; goto menu2; end
    Інакше відбувається введення номера запису для редагування - nn else begin write ( 'Введіть номер для редагування:'); read (nn);
    Якщо вводиться номера запису не існує - виконується процедура виведенняповідомлення про помилку - error, і перехід до мітки menu2 if nn> filesize (f) then begin error; goto menu2; end;
    Очищення екрану та встановлення змінної i, для попереднього переглядузапису clrscr; i: = 27;
    Підготовка файлу до читання і запису і встановлення покажчика на потрібнійредагованої запису reset (f); seek (f, nn-1);

    Зчитування і виведення на екран редагованої запису для попередньогоперегляду read (f, a); st: = ((a.e1 + a.e2)-a.e3) * a.e4; gotoXY (i-15, 1); write (an); gotoXY (i-5 , 1); write (a.e1); gotoxy (i +11,1); write (a.e2); gotoxy (i +20,1); write (a.e3); gotoxy (i +29,1 ); write (a.e4: 4:2); gotoxy (i +37,1); write (st: 4:2); gotoxy (7,2);
    Установка покажчика на необхідної запису, тому що після виведення на екранпокажчик зрушив seek (f, nn-1);
    Виведення повідомлень про підтвердження редагування кожного компонентаредагованої запису.
    Якщо при цьому буде натиснута, то виконується перезапис компонентазапису, шляхом введення нової (nn) і присвоювання її-старої (a.e1 ... a.e4).
    Якщо при виведенні повідомлення буде натиснута будь-яка клавіші, окрім, товиконується перехід до редагування наступного компонента цього запису. writeln ( 'Змінити перехідний залишок продукції на початок року?

    (y/n)'); c: = readkey; if c = # 121 then begin write ( 'Вводимо нове:'); read (nn ); a.e1: = nn; end; writeln; writeln ( 'Змінити прихід продукції? (y/n)'); c: = readkey; if c = # 121 then begin write ( 'Вводимо нове:'); read (nn); a.e2: = nn; end; writeln; writeln ( 'Змінити витрата? (y/n)'); c: = readkey; if c = # 121 then begin write ( 'Вводимо нове:'); read (nn); a.e3: = nn; end; writeln; writeln ( 'Змінити ціну за 1 шт? (y/n)'); c: = readkey; if c = # 121 then begin write ( 'Вводимо нове : '); read (o); a.e4: = o; end; write (f, a);
    Висновок повідомлення і затримка програми writeln; write ( 'Всі Ok'); delay (1000);
    Очищення екрану, повернення до головного меню і пере

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати !