Курсовая: Обработка экономической информации средствами языка Pascal - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

Обработка экономической информации средствами языка Pascal

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 263 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной курсовой работы

Узнайте стоимость написания уникальной работы

Обработка экономической информации сре дствами языка Pascal Аннотация Пояснительная записка курсовой работы "Обработка эконом ической информации с помощью файлов" содержит в себе постановку задачи, разработку математической модели, пояснение к алгоритму, пояснение к пр ограмме, описание входных, выходных данных. При изучении дисциплины "Осн овы информатики" для написания курсовой работы использовались различн ые литературные источники, которые перечислены в соответствующем доку менте. В данной курсовой работе приведена программа, которая применяется для в ычисления остатка продукции на конец года. Здесь был использован метод с труктурного программирования для облегчения написания и отладки прогр аммы, а также повышения ее наглядности и читаемости. Целью написания дан ной работы было получение и закрепление практических навыков разработ ки алгоритмов различными методами. Представленная программа реализована на языке программирования Borland Pascal в ерсии 7.0. Язык Borland Pascal 7.0 - это один из самых мощных языков для ЭВМ типа IBM PC/AT, работающий в с реде операционной системы DOS, сочетающий в себе как мощность низкоуровне вых языков программирования, так и структурированность с надежностью, п рисущих языкам высокого уровня. Для успешной работы с представленной программой необходим компьютер IBM 80286 или любой совместимый с ним. Для реализации данного алгоритма был выб ран язык программирования - TURBO PASCAL, для ЭВМ типа IВМ РС/АТ/ХТ, работающих в сред е операционной системы МS DOS. Файл с текстом программы (kurs. pas) имеет размер, равный 12,5Kb; Исполняемый файл (kurs. exe) имеет размер 33,3Kb; Содержание Введение Постановка задачи Математической модели Описание алгоритма Описание программы Общие сведения языка программирования Операторы Turbo Pascal Входные и выходные данные Описание переменных Описание программы Список литературы Приложение А Приложение Б Введение Информатика - научная дисциплина, изучающая структуру и о бщие свойства информации, а также закономерности всех процессов обмена информацией при непосредственном устном и письменном общении специали стов до формальных процессов обмена посредством различных носителей и нформации. Значительную часть этих процессов составляет научно-информ ационная деятельность по сбору, переработке, хранению, поиска и распрост ранению информации. Объектом изучения информатики не является содержа ние конкретной научно-информационной деятельности, которой должны зан иматься специалисты в соответствующих отраслях науки и техники. Она изу чает внутренние механизмы реферирования документов на естественных яз ыках, разрабатывает общие методы такого реферирования. Информатику рассматривают как один из разделов кибернетики, считается, что в последнюю входят проблемы автоматизации информационной службы, п еревода и реферирования научно-технической литературы, построение инф ормационно-поисковых систем и ряд других задач. Как было сказано выше информатика входит в состав более общей науки кибе рнетики, изучающей общую теорию управления и передачи информации. Основ ное свойство кибернетики заключается в том, что она пригодна для исследо вания любой системы, которая может записывать, накапливать, обрабатыват ь информацию, благодаря чему ее можно использовать в целях управления. Кибернетика - наука об общих законах получения, хранения, передачи и пере работки информации в сложных системах. При этом под сложными системами п онимаются технические, биологические и социальные системы, поэтому киб ернетика нуждалась в мощном инструменте, и этим инструментом стали комп ьютеры. Информация - это совокупность сведений, определяющих меру наших знаний о тех или иных событиях, явлениях или факторах. Информация является абстр актной категорией и связана с процессом познания человеком окружающег о мира. Информатика - это наука, которая изучает структуру и особенность информа ции, а также вопросы, связанные со сбором, хранением и переработкой инфор мации. Как правило, все числа внутри компьютера представляются с помощью нулей и единиц, а не десяти цифр, как это привычно для людей. Иными словами, компь ютеры обычно работают в двоичной системе счисления, поскольку при этом и х устройство получается значительно более простым. Ввод чисел в компьют ер и вывод их для чтения человеком может осуществляться в привычной для людей десятичной форме. Для обработки на компьютере текстовой информации обычно при вводе в ком пьютер каждая буква кодируется определенным числом, а при выводе на внеш ние устройства (экран или печать) для восприятия человеком по этим числа м строятся соответствующие изображения букв. Соответствие между набор ом букв и числами называется кодировкой символов. Постановка задачи Обработка экономической информации, представленной в ви де таблицы (см. приложение №1) . Основные данные, входящие в данную таблицу хранить в файле на внешнем но сителе информации. Предусмотреть в данном курсовом проекте возможность вывода таблицы на экран, создание новых записей, добавления новых записей в файл на внешне м носителе, удаление записей из файла, возможность редактирования запис и в таблице и графическую заставку для данного курсового проекта с испол ьзованием модуля Graph. Представить вместе с исходным текстом программы, написанной на языке Pascal, пояснительную записку. Построение математической модели Даны исходные данные: № Переходящий остаток продукции на начало года (А1) Приход продукции, шт (А2) Расход, шт (А3) Цена за 1 шт (А4) Остаток на конец года (А) 1 45 32 21 6.90 (Aў) 2 234 3454 32 5.67 (Aў ў) … … … … … … Итого : As=A ў +A ў ў +…A n Для вычисления окончательных данных в таблице используются с ледующие формулы: А=((А1+А2) -А3) *А4 As=Aў +Aў ў +…A n Описание алгоритма Шаг 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” главного меню. Описание программы Общие сведения языка программирования Система программирования Турбо Паскаль, разработанная а мериканской корпорацией Borland, остается одной из самых популярных систем п рограммирования в мире, которой по плечу любые задачи от создания просты х программ, предназначенных для решения несложных вычислительных зада ч, до разработки сложнейших реляционных систем управления базами данны х. К основным достоинствам языка следует отнести гибкость и надежность, пр остоту и ясность конструкций, легкость реализации на ЭВМ, возможность по лного контроля правильности программ во время компиляции и выполнения, наличие набора структурных типов данных (массивов, файлов и записей) , воз можность построения новых типов данных. Версия языка TURBO PASCAL V 7.0. включает в себя возможности: -использование отдельно компилируемых модулей; -интегрированный отладчик; -интегрированная сре да разработчика; -объектно-ориентированную оболочку для создания прикл адных программ. Турбо Паскаль 7.0 оперирует объектами, присущими типичной ЭВМ: символами, ц елыми числами и числами с плавающей запятой. Программисту разрешено упр авлять размещением объектов и использовать в программах знания размер а объектов и способов их взаимного расположения. Операторы 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 <оператор_1> elese <оператор_2>; Внач але вычисляется условное выражение <условие>. Если результат есть TRUE, то вы полняется <оператор_1>, а <оператор_2> пропускается; если результат есть FALSE, на оборот, <оператор_1> пропускается, а выполняется <оператор_2>. Счетный оператор цикла FOR: FOR <пар_цик>: = <нач_знач> to <конеч_знач> do <оператор> <пар_цик> - параме тр цикла <нач_знач> - начальное значение <конеч_знач> - конечное значение <опе ратор> - произвольный оператор Турбо Паскаля. При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осу ществляется присваивание <пар_цик>: = <нач_знач>. После этого цикл повторяется: · Пр оверка условия <пар_цик> <= <конеч_знач>, если условие не выполнено оператор FOR завершает свою работу; · Выполнение оператора <оператор>; · Наращивание переменной <пар_цик> на еди ницу. Оператор цикла WHILE с предпроверкой условия : WHILE <условие> DO <оператор>. <условие> - выражение логического типа; <оператор> - произвольный оператор Турбо Паскаля Если выражение <условие> имеет значение TRUE, то выполняется о ператор, после чего вычисление выражения <условие> и его проверка повтор яются. Если <условие> имеет значение FALSE, оператор WHILE прекращает работу. Оператор цикла REPEAT…UNTIL с постпроверкой усло вия: REPEAT <тело цикла> UNTIL <условие>. <тело цикла> - произвольная последовательность операторов Турбо Паскаля . <условие> - выражение логического типа. Операторы <тело цикла> выполняются хотя бы один раз, после чего вычисляет ся выражение <условие>: если его значение FALSE, операторы <тело цикла> повторя ются, в противном случае оператор REPEAT…UNTIL завершает свою работу. Оператор выбора CASE <ключ_выбора> OF <список выбора> [else <операторы>] END <ключ_выбора> - ключ выбора; <список_выбора> - одна или более конструкций вида; <операторы> - произвольные операторы ТП. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последов ательности операторов <список_выбора> отыскивается такой, которому пред шествует константа, равная вычисленному значению. Найденный оператор в ыполняется, после чего оператор выбора завершает свою работу. Если в спи ске выбора н будет найдена константа, соответствующая вычисленному зна чению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто заверши т свою работу. Метки и операторы перехода GOTO <метка>. <метка> - метка Метка – это произвольный идентификатор, позволяющий имен овать некоторый оператор программы и таким образом ссылаться на него. Оп исание меток состоит из зарезервированного слова LABEL, за которым следует список меток. Важнейшей особенностью языка Turbo Pascal является иерархическая структура про грамм, которая возможна благодаря наличию процедур и функций. Процедуры и функции позволяют разделить логику программы на более мелкие и управл яемые фрагменты и аналогичны подпрограммам в других языках. Как и в осно вном блоке программы, все действия в процедурах и функциях заключаются в begin и end. Процедуры и функции - главная особенность языка Турбо Паскаль 7.0, обеспечи вающая возможность практической реализации принципов структурного пр ограммирования. Процедура: Procedure <имя> (список формальных параметров) ; Begin <тело процедуры> End; Функция: Function <имя>(список формальных параметров>: тип функции; Begin <тело функции> end; При написание данного курсового проекта необходимо было восп ользоваться структурированные типами данных (массивы, записи, множеств а, файлы) . Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличи и от массива, компоненты (поля) записи могут быть различного типа. Чтобы мо жно было ссылаться на тот или иной компонент записи, поля именуются. Структура объявления типа записи: <имя типа> = RECORD <сп. полей> END <имя типа> - идент ификатор; <сп. полей> - список полей; представляет собой последовательност ь разделов записи, между которыми ставится точка с запятой. Каждый разде л записи состоит из одного или нескольких идентификаторов полей, отделя емых друг от друга запятыми. За идентификатором (идентификаторами) стави тся двоеточие и описание типа поля (полей) . Файлы . Под файлом понимается либо именов анная область внешней памяти ПК либо логического устройства. Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает воз можность программе работать одновременно с несколькими файлами. Во-вто рых, он содержит компоненты одного типа. В-третьих, длина вновь создаваем ого файла никак не оговаривается при его объявлении. <имя> = FILE OF <тип>; <имя> = TEXT; <имя> = FILE; <имя> - имя файлового типа; TEXT – имя стандартного т ипа текстовых файлов; <тип> - любой тип ТП, кроме файлов. В зависимости от способа объявления можно выделить три вида файлов: · Ти пизированные файлы (file of…) ; · Текстовые файлы (определяются типом TEXT) ; · Нетипизированные файлы (определяются типом FILE) . Файловая переменная связывается с именем файла в результ ате обращения к стандартной процедуре ASSIGN: ASSIGN (<ф. п. >, <имя файла или л. у. >) ; <ф. п. > - ф айловая переменная; <имя файла или л. у. > - текстовое выражение, содержащие и мя файла или логическое устройство. В ТП можно открыть файл для чтения, для записи информации, а также для чтен ия и записи одновременно. Для чтения файл инициируется с помощью стандартной процедуры RESET: RESET (<ф. п. >) ; В ТП разрешается обращаться к типизированным файлам, открытым процедур ой 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-ноpм, 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) - Рисует закрашенный прямоугольник, используя установку SetFillSty le; 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; - выключает звук генератора. Входные и выходные данные Входными данными являются записи: номер продукции (n) , пере ходящий остаток продукции на начало года (e1) , приход продукции (e2) , расход (e3) , цена за 1 шт (e4) . При завершении ввода данных и выборе соответствующего пунк та меню программы, программа выдаст пользователю итоговые данные в виде таблицы. Выходными данными, т.е. результатом программы является таблица которая с одержит исходные записи и следующие переменные: · Ос таток на конец года (st) ; · Итого (itog) ; Файл с текстом программы (kurs. pas) имеет размер, равный 12,5 Kb; Исполн яемый файл (kurs. exe) имеет размер 33,3 Kb; Описание переменных В программе используются следующие переменные: 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– координата по Х; var itog: 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 ; - процедура выхода из программы Описание программы При запуски программы идет подключение дополнительных м одулей 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('--------------------------------------------------------------') ; Установка цвета символов и печать шапки таблицы 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('--------------------------------------------------------------') ; Установка цвета символов и текстового экрана для вывода данных таблицы 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(a. n) ; textcolo r(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('--------------------------------------------------------------') ; Вывод итогового значения 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('Для дальнейшей работы с программой выберите номерок: ') ; Установка цвета фона textbackground(0) ; Печать пунктов меню, устанавливая цвет для цифр меню и с вой цвет для названия пункта меню gotoxy(16,5) ; textcolor(10) ; write('1') ; textcolor(7) ; write(' - Просмотр ') ; gotoxy(16,6) ; textcolor(10) ; write('2') ; textcolor(7) ; write(' - Cоздать') ; 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('Введит е номер: ') ; Установка цвета символа и его мерцание textcolor(10+128) ; Ввод переменной l, н еобходимой для дальнейшей работы программы и установка стандартного т екстового режима readln(l) ; textmode(Co80) ; Конец процедура вывода главного меню end; Процедура вывода заставки – zast : Очистка экрана clrscr; Установка белого цвета символо в textcolor(white) ; Вывод сообщения: “Показать заставку?” Write(‘ Показать заставку? (y/n) ’ ) ; Считывание нажатия клавиши. 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 ##') ; Выч есление числа байт, необходимого для сохранения прямоугольной области экрана 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"') ; Установка текущего шрифта, стиля, размера текста. 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. ') ; Наращива ние переменных для вывода на экран битового изображения и для смены теку щего цвета 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--------- Закрытие граф. режима 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(1 0) ; 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, 'htt p: //sorgepro. agava. ru') ; settextstyle(2,0,5) ;setcolor(15) ; outtextxy(getmaxx div 4, getmaxy-30, '(c) 2000. "Sorge pro". All rights don''t reserved. ') ; until keypressed; Закрытие граф. режима closegraph; Выход из программы exit; Завершение процедуры end; ==========================Proga=========================== Идет в ыполнение процедуры 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('!!! ПРЕДЫДУЩИЕ ЗАПИСИ БУДУТ УТЕРЯНЫ!!! ') ; Установка цвета фона и символо в и вывод на экран сообщения textbackground(0) ; gotoxy(1,4) ; writeln('Для продолжения нажмите или -возврат в главное меню. ') ; Считывание клавиши с клавиатуры c: =readkey; Если нажа та клавиша , то выполняется возврат к главному меню и переход к метки menu2 if c=#27 then begin menu; goto menu2 end Иначе идет ввод переменной q – количество создаваемых зап исей else begin writeln('Введите количество записей: ') ; read(q) ; Очистка экрана clrscr; Подготовка файла к записи rewrite(f) ; Цикл ввода новых записей. Выход из цикла осуществитьс я в том случае, когда a. n будет равно q repeat writeln('введи текущий номер продукции ... ') ; readln(a. n) ; writeln('введи переходящий остаток продукции на начало года... ') ; readln(a. e1) ; writeln('в веди приход продукции... ') ; readln(a. e2) ; writeln('введи расход... ') ;readln(a. e3) ; writeln('введи цену за 1 шт ... ') ;readln(a. e4) ; write(f, a) ; until (a. n=q) ; Очистка экрана и вывод сообщения clrscr; writeln('ВСЁ OK. ') ; Задержка пр ограммы. Возврат в главное меню и переход к метки 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) ') ; Считывание клавиши с клавиатуры 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) ; a. n: =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. ') ; Задержка программы 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) ') ; Считывание клавиши с клавиатуры 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 l<>nn then begin q: =q+1; seek(f, l-1) ; read(f, a) ; b. n: =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) ; a. n: =b. n; 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) ') ; Считывание клавиши с клавиатуры 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(a. n) ; gotoXY(i-5,1) ;write(a. e1) ; gotoxy(i+11,1) ;write(a. e2) ; gotoxy(i+20,1) ;wr ite(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) ; Очистка экрана, возврат к главному меню и переход к метке menu2 clrscr; menu; goto menu2; Завершение составных операторов begin…end end; end else Если l не равно 1, н е 2 и не 3, и не 4, и не 5, а равно 6, то выполняется процедура вывода заставки - zast, по сле завершения которой происходит переход к главному меню и метке menu2 if l=6 then begin zast; menu; goto menu2; end; Если l не равно 1, не 2 и не 3, и не 4, не 5, и даже не 6, а - 7, то выполняет ся процедура выхода из программы – exitt if l=7 then exitt Если l не равно 1, не 2 и не 3, и не 4, не 5, и даже не 6, и уж точно не 7, то выполняется процедура вывода сообщения об ош ибке. После завершения этой процедуры происходит переход к метке menu2 else begin error; goto menu2; end; ========================END_Proga======================== ЗАВЕРШЕНИЕ ПРОГРАММЫ END. Список литературы 1. Фаронов В. В. Турбо Паскаль 7.0. Начальный курс. Учебное пособ ие. -М.: “Нолидж” , 1998. -616 с. 2. Вычислительная техника и программирование. Под редакцией А. В. Петрова М , Высшая школа, 1990 3. Марченко А. И., Марченко Л. И. Программирование в среде Turbo-Pascal 7.0-М., Бином Универ сал, К.: Юниор, 1997 4. http: //www. rusdoc. ru 5. http: //www. borland. ru 6. http: //www. infocity. kiev. ua Приложение А. Реализация продукции за год № Переходящий остаток продукции на начало года Приход продукции, Шт Расход, шт Цена за 1 шт Остаток на конец года 1 45 32 21 6.90 386.40 2 234 3454 32 5.67 20729.52 3 79 345 34 3.99 1556.10 4 234 4567 54 9.30 44147.10 5 500 566 865 4.98 1000.98 6 5867 11 543 4.67 24914.45 7 560 7789 55 2.90 24052.60 8 129 2000 234 4.89 9266.55 9 123 567 435 7.90 2014.50 10 875 907 800 8.90 8739.80 11 743 800 600 2.67 2517.81 12 456 800 560 6.89 4795.44 Итого : 144121.25 Приложение Б uses crt, graph; type bas=record n: integer; e1, e2, e3: integer; e4: real; end; label menu2; метка var c: char; с - для ридкея o: real; ww, l, nn, q, i: integer; w, ww-для шапки, l-для меню и для удал nn, o-редактирование q-для обнавле ния i-счетчик gd, gm: integer; для графики pp, qq, n, mm: integer; для добавки f, f2: file of bas; файлы a, b: bas; st: real; су мма в таблице -----------------------------------------вывод таблицы ------------------------------------- procedure view(w: integer) ; var itog: real; cумма в таблице, всего begin window(1,1,80,6) ; textbackground(5) ;textcolor(15) ; gotoxy(w, 1) ;write('Реализация продукции за год ') ; textcolor(9) ;gotoxy(w-16,2) ;textbackground(0) ; write('--------------------------------------------------------------') ; 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('--------------------------------------------------------------') ; textcolor(15) ; window(1,7,80,25) ; reset(f) ; 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(a. n) ; 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('--------------------------------------------------------------') ; textcolor(9) ;gotoxy(w+7, ww) ; write('¦') ; textbackground(5) ; textcolor(10) ;write('Итого : ', itog: 4: 2) ; textbackground(0) ; textcolor(9) ; write('+') ; writeln; end; ----------------------------------------основное меню-------------------------------------- procedure menu; begin textmode(Co80) ; clrscr; window(13,3,70,15) ; textbackground(14) ;textcolor(15) ; gotoxy(1,3) ; write('Для дальнейшей работы с программой в ыберите номерок: ') ; textbackground(0) ; gotoxy(16,5) ; textcolor(10) ; write('1') ; textcolor(7) ; write(' - Просмотр ') ; gotoxy(16,6) ; textcolor(10) ; write('2') ; textcolor(7) ; write(' - Cоздать') ; 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('Введит е номер: ') ; textcolor(10+128) ;readln(l) ; textmode(Co80) ; end; ----------------------------------------------заставка----------------------------------------- procedure zast; var xm, ym: integer; xm, ym, x, y-координаты size: integer; saucer: pointer; size, saucer, k, kk-для движения k, kk: integer; begin clrscr; textmode(Co80) ; textcolor(white) ; write('Показ ать заставку ? (y/n) ') ; c: =readkey; if c=#121 then begin initgraph(gd, gm, 'bgi') ; xm: =getmaxx div 4; ym: =getmaxy div 4; settextstyle(2,0,5) ; outtextxy(xm+100,10, '## Sergei Kovbasyuk ##') ; 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) ; k: =0;kk: =0;i: =0;n: =0; repeat settextstyle(10,0,5) ; setcolor(i+1) ; outtextxy((getmaxx div 5) , (getmaxy div 4) , '"Sorge pro"') ; settext s tyle(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. ') ; 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) ; circle(322,250, i) ; delay(10) ; end; ----------end_krugi--------- closegraph; end; end; ------------------------------------ Вывод об ошибке --------------------------------------- Procedure error; begin i: =0; repeat textmode(Co 80) ; 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; -----------------------------------------------B ыход ----------------------------------------- procedure exitt; begin 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 rights don''t reserved. ') ; until keypressed; closegraph; exit; end; ==========================Proga=========================== BEGIN zast; assign (f, 'k') ; textmode(Co80) ; печать первого меню menu; menu2: ------------------------------------------- печать т a блицы ----------------------------------- if l=1 then begin view(27) ; textcolor(15) ; gotoxy(7, ww+1) ; writeln(' Для выхода нажмите или - возврат в главное меню . ') ; c: =readkey; textmode(Co80) ; if c=#27 then begin menu; goto menu2 end else exitt; end else ----------------------------------------- Заново ------------------------------------------------ if l=2 then begin clrscr; textbackground(14) ;textcolor(15) ; writeln(' Вы действительно хоти те создать новые записи ? ') ; writeln('!!! ПРЕДЫ ДУЩИЕ ЗАПИСИ БУДУТ УТЕРЯНЫ !!! ') ; textbackground(0) ; gotoxy(1,4) ; writeln(' Для продолжения нажмите или - возврат в главное меню . ') ; c: =readkey; if c=#27 then begin menu; goto menu2 end else begin writeln(' Введите количество записей : ') ; read(q) ; clrscr; rewrite(f) ; repeat writeln(' введи текущий номер продукции ... ') ; readln(a. n) ; writeln('введи переходящий остаток п родукции на начало года... ') ; readln(a. e1) ; writeln('введи приход продукции... ') ; readln(a. e2) ; writeln('введи расход... ') ;readln(a. e3) ; writeln(' введи цену за 1 шт ... ') ;readln(a. e4) ; write(f, a) ; until (a. n=q) ; clrscr; writeln(' ВСЁ OK. ') ; delay(1000) ; menu; goto menu2; end; end else ---------------------------------- Добавление записи --------------------------------------- if l=3 then begin clrscr; textbackground(0) ; textcolor(15) ; writeln(' Продо лжить ? (y/n) ') ; c: =readkey; if c<>#121 then begin textmode(Co80) ; menu;goto menu2; end else begin clrscr; writeln(' Введите количество добовляемых записей : ') ; read(mm) ; clrscr; reset(f) ; n: =filesize(f) ; seek(f, n) ; pp: =n+1; repeat writeln(' введи текущий номер продукци и ... ') ;readln(qq) ; a. n: =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. ') ; delay(1000) ; menu; goto menu2; end; end else ----------------------------------------- удаление записи ------------------------------------ if l=4 then begin clrscr; window(1,1,68,22) ; view(17) ; window(64,1,80,22) ; textcolor(15) ; writeln(' Продолжить ? (y/n) ') ; c: =readkey; if c<>#121 then begin textmode(Co80) ; menu;goto menu2; end else begin write(' Введи номер : ') ; r eadln(nn) ; 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 l<>nn then begin q: =q+1; seek(f, l-1) ; read(f, a) ; b. n : =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) ; a. n: =b. n; 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; if c=#27 then begin menu; goto menu2; end else begin textmode(Co80) ; l: =4; goto menu2; end; end; end else --------------------------------------- редактирование -------------------------------------- if l=5 then begin view(27) ; textcolor(15) ; writeln(' Продолжить ? (y/n) ') ; c: =readkey; if c<>#121 then begin textmode(Co80) ; menu;goto menu2; end else begin write(' Введите номер для редактировани я : ') ; read(nn) ; if nn>filesize(f) then begin error; goto menu2; end; 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(a. n) ; gotoXY(i-5,1) ;write(a. e1) ; gotoxy(i+11,1) ;w rite(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) ; 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(100 0) ; clrscr; menu; goto menu2; end; end else -------------------------------------- вывод заставки ------------------------------------ if l=6 then begin zast; menu; goto menu2; end; --------------------------------------- выход ---------------------------------------------- if l=7 then exitt else begin error; goto menu2; end; ========================END_Proga======================== END.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
мой говорит мне вчера:
- А ну дай телефон своего бывшего, ща я ему позвоню - пусть он тебя обратно забирает))))
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

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

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru