">
Информатика ![]() | |||||||||||||||||||||||||||||||||||||||||
Похожие работы:
| |||||||||||||||||||||||||||||||||||||||||
МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ ФГОУ.ВПО «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ИМЕНИ К.Д.ГЛИНКИ» КАФЕДРА ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ АГРОЭКОНОМИЧЕСКИХ СИСТЕМ Курсовая работа Выполнил: студент Проверил: . Воронеж 2012 Содержание ВВЕДЕНИЕ3 1.ПОДПРОГРАММЫ5 1.1 ПОНЯТИЕ И ВИДЫ ПОДПРОГРАММ5 1.2.ПРОЦЕДУРЫ И ИХ ОПИСАНИЕ11 1.3.ФУНКЦИИ19 2.РАЗРАБОТКА ПРОГРАММЫ В СРЕДЕ ПРОГРАММИРОВАНИЯ В DELPHI ПОКАЗЫВАЮЩУЮ ПРОПУСКИ УЧЕНИКОВ24 2.1 ПОСТАНОВКА24 2.2 БЛОК-СХЕМА24 2.3 ПРОГРАММНЫЙ КОД25 2.4 РЕЗУЛЬТАТЫ27 ВЫВОДЫ И ПРЕДЛОЖЕНИЯ31 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ33 ВВЕДЕНИЕ Программа объемом до 10000 операторов считается малой, до 100000 операторов – средней. Понятно, что строить такие программы непосредственно из элементарных операции практически невозможно. Для упрощения разработки программ в Паскале можно использовать подпрограммы - процедуры и функции. Они представляют собой инструмент, с помощью которого любая программа может быть разбита на ряд в известной степени независимых друг от друга частей. Такое разбиение необходимо по двум причинам. Во-первых, это средство экономии памяти: каждая подпрограмма существует в программе в единственном экземпляре, в то время как обращаться к ней можно многократно из разных точек программы. При вызове подпрограммы активизируется последовательность образующих ее операторов, а с помощью передаваемых подпрограмме параметров нужным образом модифицируется реализуемый в ней алгоритм. Вторая причина заключается в применении современных методов нисходящего проектирования программ. В результате применение этих методов алгоритм представляется в виде последовательности относительно крупных подпрограмм, реализующих более или менее самостоятельные смысловые части алгоритма. Подпрограммы в свою очередь могут разбиваться на менее крупные подпрограммы, те - на подпрограммы нижнего уровня и т.д. Последовательное структурирование программы продолжается до тех пор, пока реализуемые подпрограммами алгоритмы не станут настолько простыми, чтобы их можно было легко запрограммировать. Паскаль даже в сравнении с промышленными системами программирования обладает очень мощными средствами работы с подпрограммами. Тема является актуальной, так как использование подпрограмм в Паскале значительно упрощает работу для пользователя, потому что процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы вызывает процедуру (функцию). Цель данной работы заключается в изучение написания подпрограмм в Паскале, а также выявления отличия функции и процедур. В связи с поставленной целью курсовой работы выделяются следующие задачи: Понятие и виды подпрограмм Процедуры. Их описание Функции Основной метод исследования применяемыми в написании данной курсового проекта, является: Метод индукции и дедукции Метод анализа и синтеза Метод восхождения от простого к сложному Метод научной абстракции Метод качественного и количественного анализа Объектом исследования является подпрограмма (процедуры и функции). В структуре Паскаль программ существует специальный раздел для описания процедур и функций. 1.ПОДПРОГРАММЫ 1.1 ПОНЯТИЕ И ВИДЫ ПОДПРОГРАММ Подпрограмма (англ. subprogram) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства. Подпрограммы изначально появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости. К настоящему времени данная функция подпрограмм стала вспомогательной, главное их назначение — структуризация программы с целью удобства её понимания и сопровождения.[1] Назначение подпрограмм Выделение набора действий в подпрограмму и вызов её по мере необходимости позволяет логически выделить целостную подзадачу, имеющую типовое решение. Такое действие имеет ещё одно (помимо экономии памяти) преимущество перед повторением однотипных действий: любое изменение (исправление ошибки, оптимизация, расширение функциональности), сделанное в подпрограмме, автоматически отражается на всех её вызовах, в то время как при дублировании каждое изменение необходимо вносить в каждое вхождение изменяемого кода. Даже в тех случаях, когда в подпрограмму выделяется однократно производимый набор действий, это оправдано, так как позволяет сократить размеры целостных блоков кода, составляющих программу, то есть сделать программу более понятной и обозримой.[2] Подпрограмма – это реализация вспомогательного алгоритма на языке Паскаль. В языке Паскаль существуют два вида подпрограмм: процедуры функции. Основным отличием функций от процедур является то, что функция всегда вычисляет один результат простого, ссылочного или строкового типа; процедура вычисляет любое количество результатов любых типов, в том числе не одного результата или один простого, ссылочного или строкового типа. При разработке подпрограмм учитывают, что вспомогательный алгоритм – это отдельно существующий алгоритм, который имеет строго определенные: назначение; имя; перечень входных и выходных данных, называемый списком формальных параметров (все общение вспомогательного алгоритма с окружающей средой осуществляется через эти параметры).[2] Структура текста подпрограммы Текст подпрограммы состоит из разделов. Первый раздел – это заголовок подпрограммы. Остальные разделы представляют собой блок. Понятие блока определено в структуре текста программы и включает в себя 6 разделов: раздел меток; раздел поименованных констант; раздел нестандартных типов; раздел переменных; раздел текстов подпрограмм; раздел операторов. Таким образом, структура текста подпрограммы в основном совпадает с текстом программы. За исключением того, что в подпрограмме отсутствует раздел используемых модулей, подпрограмма заканчивается точкой с запятой, а не точкой и вид заголовка подпрограммы отличается от заголовка программы.[1] Заголовок подпрограммы Заголовок зависит от вида подпрограммы. Он несет в себе следующую информацию: вид подпрограммы (процедура или функция); имя подпрограммы; список формальных параметров; тип результата (только для функций).[4] Технология разработки подпрограмм Постановка задачи и выбор математической модели. Разрабатывается спецификация на подпрограмму. Спецификация – это документ, включающий в себя следующие пункты: назначение подпрограммы; имя подпрограммы; вид подпрограммы; перечень входных и выходных данных с указанием для каждого данного: статуса (входное или выходное данное; для функций добавляется возвращаемое данное), назначения, имени, типа, вида. заголовок подпрограммы. Выбор или разработка метода решения. Разработка информационной модели. Информационная модель содержит только промежуточные данные, называемые локальными переменными, т.к. входные и выходные переменные определены в списке формальных параметров. Локальные переменные описываются в разделе переменных VAR подпрограммы и действуют только в пределах этой подпрограммы. Разработка алгоритмической модели. Разработка программной модели. Отладка подпрограммы.[4] Области применения подпрограмм Исторически сложились первые две области применения подпрограмм: В одной задаче необходимо неоднократно (хотя бы два раза) выполнять одинаковые действия над разными по величине данными. В этом случае обычно пишется подпрограмма, включаемая в седьмой раздел текста собственной программы. Когда одинаковые действия над разными по величине данными выполняются в разных задачах. В таких случаях обычно пишутся библиотечные подпрограммы, включаемые в модуль или в отдельный текстовый файл. Следующие две области применения определяются двумя технологиями программирования: Технология программирования “сверху - вниз”. Эта технология используется при разработке больших программных задач большим коллективом программистов. В технологии “сверху-вниз” задача разбивается на подзадачи. Для каждой подзадачи разрабатывается спецификация. В свою очередь каждая подзадача разбивается на более мелкие. И так далее. В итоге отдельный программист получает для разработки элементарную подзадачу, для которой определена спецификация. Он реализует ее в виде подпрограммы. Затем из готовых подпрограмм собирается большая задача. Технология программирования «снизу – вверх» Эта технология используется двумя диаметрально противоположными категориями программистов: суперпрограммистами, экономящими свое время; людьми, практическими не умеющими программировать. При этой технологии из готовых собственных или чужих подпрограмм собирается готовая задача. Эта область непосредственно связана с процедурно-ориентированным подходом к программированию. Этот подход ассоциируется с технологией «сверху – вниз». Здесь задача также разбивается на подзадачи. Каждая из подзадач реализуется в виде подпрограмм, из которых затем собирается вся задача. Применение подпрограмм в объектно-ориентированном программировании. Здесь информационный объект представляет собой неразрывную совокупность данных и действий над этими данными, называемыми методами. Методы оформляются в виде подпрограмм.[1] Список формальных параметров (СФОП) Список формальных параметров определяет собой интерфейс для общения подпрограммы с окружающим миром, то есть с программой, которая вызывает данную подпрограмму. Все общение подпрограммы с блоком, вызывающим ее, осуществляется через параметры, соответствующие данному интерфейсу. Поэтому, если подпрограмма не предназначена для ввода или вывода информации, то она не должна содержать обращений к процедурам ввода/вывода. СФОП строится на основе перечня входных и выходных данных, определенного в спецификации, и, в некоторой степени, определяется видом подпрограммы (в функции единственный результат простого или строкового типа не входит в СФОП). Для каждого входного и выходного данного в СФОП задается: произвольное имя; тип данных; вид параметра. Последние две характеристики (тип данных и вид параметра) определяют требования к фактическим параметрам, которые обрабатываются подпрограммой при ее вызове. Вид параметра определяется статусом и типом параметра: параметры-значения – это всегда входные данные (обычно только простых, ссылочных или строковых типов); параметры-переменные – это всегда выходные данные; параметры-константы – это входные параметры сложных типов, кроме строковых и ссылочных (параметры-константы определены только в Турбо Паскале).[5] 1.2.ПРОЦЕДУРЫ И ИХ ОПИСАНИЕ Для упрощения разработки программ в Паскаль можно использовать подпрограммы - процедуры и функции. Они представляют собой инструмент, с помощью которого любая программа может быть разбита на ряд в известной степени независимых друг от друга частей. Такое разбиение необходимо по двум причинам. Во-первых, это средство экономии памяти: каждая подпрограмма существует в программе в единственном экземпляре, в то время как обращаться к ней можно многократно из разных точек программы. При вызове подпрограммы активизируется последовательность образующих ее операторов, а с помощью передаваемых подпрограмме параметров нужным образом модифицируется реализуемый в ней алгоритм. Вторая причина заключается в применении современных методов нисходящего проектирования программ. В результате применение этих методов алгоритм представляется в виде последовательности относительно крупных подпрограмм, реализующих более или менее самостоятельные смысловые части алгоритма. Подпрограммы в свою очередь могут разбиваться на менее крупные подпрограммы, те - на подпрограммы нижнего уровня и т.д. Последовательное структурирование программы продолжается до тех пор, пока реализуемые подпрограммами алгоритмы не станут настолько простыми, чтобы их можно было легко запрограммировать.[4] Паскаль даже в сравнении с промышленными системами программирования обладает очень мощными средствами работы с подпрограммами. Процедуры и функции, как уже отмечалось, представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое единственное значение простого, строкового типа или указателя, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами. В структуре Паскаль программ существует специальный раздел для описания процедур и функций. Как известно, любое имя в программе должно быть обязательно описано перед тем, как оно появится среди исполняемых операторов. Не делается исключения и в отношении процедур: каждую необходимо описать в разделе описаний. Для использования процедуры в программе необходимо написать оператор вызова. Описание процедуры состоит из: заголовка процедуры тела процедуры Заголовок включает служебное слово Procedure, имя процедуры и заключенные в круглые скобки список формальных параметров, с указанием их типов (именно типов, а не описаний). Пример процедуры: Procedure <имя процедуры> (список формальных параметров); Var (может отсутствовать); Begin Тело поцедуры; End; Вызов осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При его выполнении выполняется вся подпрограмма.[8] Формальные и фактические параметры Параметры бывают формальные и фактические. Параметры, которые записываются в скобках после имени процедуры, называются формальными параметрами. Они указывают на то, что для выполнения данной процедуры необходимы дополнительные данные – фактические параметры. Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их тип, например: Procedure A (a : real; b : integer: с : char) Как видно из примера, параметры в списке отделяются друг от друга точками с запятой. Несколько следующих подряд однотипных параметров можно объединять в подсписки, например, вместо Procedure A (а : integer; b : integer); можно написать проще: Procedure A (a, b : integer); Операторы тела подпрограммы рассматривают список формальных параметров как своеобразное расширение раздела описаний: все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы. Таким способом осуществляется настройка алгоритма подпрограммы на конкретную задачу. Первый формальный параметр заменяется первым фактическим, второй-вторым и т. д.[8] Механизм замены формальных параметров на фактические позволяет нужным образом настроить алгоритм, реализованный в подпрограмме. Паскаль следит за тем, чтобы количество и тип формальны параметров строго соответствовали количеству и типам фактических параметров в момент обращения к подпрограмме. Смысл используемых фактических параметров зависит от того, в каком порядке они перечислены при вызове подпрограммы. Пользователь должен сам следить за правильным порядком перечисления фактических параметров при обращении к подпрограмме. Приведем пример. рассмотрим интересующую нас часть программы (не самой удачной, но это пока неважно) для вычисления x = (5! + 2!)/(5+2)! Program factorial; {Тело программы} Procedure A(y:integer, var z: integer); (объявление процедуры, её имя , список формальных параметров) Begin z:=1; While y>1 do Begin z:=zxy;{тело процедуры, которая также предусматривает, что 0! и 1! =1} y:=l-1; end; end; begin (вызов процедуры) A(5,a); A(2,b); A(2+5,c); … end. В данном случае y, z формальные параметры. Фактические параметры: 5, а, 2, b, 2+5, c. В «основном» разделе VAR должны быть описаны а, b, c При первом вызове процедуры фактический параметр 5 заменит формальный y, фактический a заменит формальный z, во втором 2 заменит y, b заменит z. В третьем соответственно 2+5 заменит y, c заменит z. Для того, чтобы окончательно разобраться в программе, необходимо пояснить, какими бывают виды формальных и фактических параметров, их назначение.[10] Виды параметров. По способу передачи данных параметры можно разделить на несколько категорий. Любой из формальных параметров подпрограммы может быть либо параметром-значением, либо параметром-переменной, либо параметром-константой. Рассмотрим все виды переменных: Если параметры определяются как параметры-переменные, перед ними необходимо ставить зарезервированное слово VAR, например: Procedure A (var a : real); Здесь параметр a - параметр-переменная. Заголовок процедуры может быть устроен так, что некоторые группы формальных параметров не содержат слова VAR. Например: Procedure B (a,b,c:real; var s:real); Формальные параметры, которые входят в группы, не содержащие слова VAR, называются формальными параметрами-значениями.[4] Определение формального параметра тем или иным способом существенно только для вызывающей программы: если формальный параметр объявлен как параметр-переменная, то при вызове подпрограммы ему должен соответствовать фактический параметр в виде переменной определенного типа; если формальный параметр объявлен как параметр-значение, то при вызове ему может соответствовать произвольное выражение. Контроль за неукоснительным соблюдением этого правила осуществляет компилятором Паскаля. Для того чтобы понять, в каких случаях использовать параметры значения, а в каких - параметры-переменные, рассмотрим, как осуществляется замена формальных параметров на фактические в момент обращения к подпрограмме. Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передается подпрограмме. Важно учесть, что даже если в качестве фактического параметра указано простейшее выражение в виде переменной или константы, все равно подпрограмме будет передана лишь копия переменной (константы).[3] Таким образом, назначение параметра-значения – передача данных из программы в подпрограмму. Если же параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия. Любые возможные изменения в подпрограмме параметра-значения никак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменение параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе. Параметр-константа схож с параметром-переменной: в подпрограмму передается сама константа, но изменение её невозможно. Назначение такого параметра совпадает с назначением параметра-значения . Формальные параметры-константы указываются в заголовке программы после служебного слова const. Его действие распространяется до ближайшей точки с запятой. Program Primer; var a, b: integer; {Тело программы} Procedure А (a: integer; var b: integer); begin a:=sqr(a); b:=sqr(b); writeln(‘в квадрате они выглядят так: ’,a,’, ’,b); end; …. begin a:=4; b:=6; writeln(‘внимательно посмотрите на эти числа: ’, a,’, ’, b); А(a,b); writeln(‘а так не в квадрате: ’,a, ’, ’,b); end. Результаты выглядят так: внимательно посмотрите на эти числа: 4, 6 в квадрате они выглядят так: 16, 36 а так квадрате: 4, 6 «закрыла» локальная переменная а, объявленная как параметр-значение. Итак, параметры-переменные используются как средство связи алгоритма, реализованного в подпрограмме, с «внешним миром»: с помощью этих параметров подпрограмма может передавать результаты своей работы вызывающей программе. Разумеется, в распоряжении программиста всегда есть и другой способ передачи результатов - через глобальные переменные. Однако злоупотребление глобальными связями делает программу , как правило, запутанной, трудной в понимании и сложной в отладке. В соответствии с требованиями хорошего стиля программирования рекомендуется там, где это возможно, использовать передачу результатов через фактические параметры-переменные.[8] Описание всех формальных параметров как параметров-переменных нежелательно по двум причинам. Во-первых, это исключает возможность вызова подпрограммы с фактическими параметрами в виде выражений, что делает программу менее компактной. Во-вторых, и главных, в подпрограмме возможно случайное использование формального параметра, например, для временного хранения промежуточного результата, т.е. всегда существует опасность непреднамеренно «испортить» фактическую переменную. Вот почему параметры-переменные следует объявлять только те, через которые подпрограмма в действительности передает результаты вызывающей программе. Чем меньше параметров объявлено параметрами-переменными и чем меньше в подпрограмме используется глобальных переменных, тем меньше опасность получения непредусмотренных программистом побочных эффектов, связанных с вызовом подпрограммы, тем проще программа в понимании и отладке. Существует одно обстоятельство, которое следует учитывать при выборе вида формальных параметров. Как уже говорилось, при объявлении параметра-значения осуществляется копирование фактического параметра во временную память. Если этим параметром будет массив большой размерности, то существенные затраты времени и памяти на копирование при многократных обращениях к подпрограмме могут стать peшающим доводом в пользу объявления такого параметра параметром-переменной или передачи его в качестве глобальной переменной.[5] 1.3.ФУНКЦИИ Функция - это инструкция (множество команд), имеющая имя и результат, который может быть присвоен переменной или может входить в выражение. Выполнение функции происходит при появлении в тексте программы ее имени. Паскаль поддерживает следующие разновидности функций: встроенные функции; функции, создаваемые программистом; библиотечные функции. Последовательность команд встроенных функций скрыта от программиста. Например, при появлении в тексте программы слова Sin выполняется последовательность команд вычисления Sin. Процесс использования функции в программе называется обращением к функции. Функция возвращает значение, которое может быть присвоено переменной программы. В общем виде обращение к функции выглядит следующим образом: Переменная: = функция (параметры), где переменная - имя переменной, которой надо присвоить значение, вычисленное функцией; функция - имя функции, значение которой надо присвоить переменной; параметр - выражение, значение которого используется для вычисления значения функции.[4] Необходимо учитывать :каждая функция возвращает значение определенного типа, поэтому тип возвращаемого значения функции, должен совпадать с типом переменной, которой присваивается значение функции. Для вычисления значения функции используется параметр, тип которого для функции строго определен, поэтому тип выражения, значение которого используется как параметр, должен совпадать с установленным для функции типом параметра. Паскаль позволяет программисту определить свою собственную функцию и в дальнейшем использовать ее так же, как и встроенные функции. Например, можно определить функцию вычисления факториала, назвав ее Factor. Затем в том месте программы, где нужно вычислить факториал, вместо последовательности команд, делающих это, написать y := factor(x). Определение создаваемой функции в общем виде выглядит так: Function имя функции (параметр1:тип1, параметр2:тип2,параметр а:тип а): тип var (раздел описания внутренних переменных функции) begin (раздел команд функции) имя := выражение; end; Function - зарезервированное слово языка Паскаль, обозначающее, что далее следуют команды функции; имя - имя функции, используемое для вызова последовательности команд между begin и end. Параметр - это обобщенное имя значения, используемого для вычисления значения функции. В последовательности команд функции параметр используется как обычная переменная. Конкретное значение параметр получает при вызове функции из основной программы. Завершается последовательность команд операцией присвоения функции значения выражения, тип которого должен совпадать с типом функции. Пример функции вычисления факториала: Function factor(n:integer): integer; var i, f: integer; begin f:=1; for i:=2 to n do f:=fхi; factor:=f; end; У функции, рассмотренной в примере, один параметр - число типа Integer, которое надо вычислить (конкретное значение n получает при вызове функции). Возвращает функция вычисленное значение - число типа Integer.[8] Если необходимо использовать в программе свою функцию, то описание этой функции должно быть помещено в текст программы после раздела описания переменных VAR. Команды функции будут выполнены, если в тексте программы встретится имя этой функции. Переход от команд основной программы к командам функции называется вызовом функции, или обращением к функции. Если в описании функции указаны параметры, то в команде вызова тоже должны быть указаны параметры. Причем количество и типы параметров, задаваемых при вызове функции, должны соответствовать количеству и типам параметров в описании функции. Параметры, задаваемые при обращении к функции, называются фактическими. В качестве фактических параметров обычно используют константы или переменные, реже выражения. Локальные и глобальные переменные Чаще всего программа состоит из основной программы и процедур и функций программиста. Любая из них содержит раздел описания переменных. Переменные, описанные в основной программе, доступны всем командам программы, в том числе и командам процедур и функций программиста. Такие переменные называются глобальными. Переменные, описанные в процедуре или функции программиста, доступны только командам этой процедуры или функции и называются локальными.[4] Например: Program prog; var x:integer; (глобальная переменная) procedure А; var y:integer; (локальная переменная) begin {можно использовать x и y} end; Begin {можно использовать только x} end. Если в процедурах описаны переменные с одинаковыми именами, пусть даже одинакового типа, то это разные переменные, и изменение переменной внутри одной процедуры не меняет значение переменной другой процедуры. Например: Program prog; var i:integer; procedure А; var i:integer; begin i:=100; end; begin i:=1; А; writeln(i); end. В результате получим, что i будет равно 1. Процедура может изменить значение глобальной переменной, если внутри процедуры не описана переменная с таким же именем.[10] Кроме локальных переменных, в подпрограммах могут быть и локальные подпрограммы. Это подпрограммы, текст которых размещен внутри текста подпрограммы более высокого уровня. Использование таких подпрограмм, как и локальных переменных, ограничивается подпрограммой, к которой они принадлежат. Локальность или глобальность являются понятиями относительными. Программа с вложенными в нее подпрограммами представляет собой иерархическое дерево. Объект, локальный по отношению к более высокому уровню иерархии, ведет себя как глобальный по отношению к подпрограммам более низкого уровня. 2.РАЗРАБОТКА ПРОГРАММЫ В СРЕДЕ ПРОГРАММИРОВАНИЯ В DELPHI ПОКАЗЫВАЮЩУЮ ПРОПУСКИ УЧЕНИКОВ 2.1 ПОСТАНОВКА Задача: Разработать программу, позволяющую отображать, свободную информацию: О пропусках отдельного ученика, по предметам с указание даты и причины. Всего класса по конкретному предмету. 2.2 БЛОК-СХЕМА 2.3 ПРОГРАММНЫЙ КОД unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, ComCtrls, Mask, DBCtrls, StdCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; DataSource1: TDataSource; ADOConnection1: TADOConnection; ADODataSet1: TADODataSet; DBGrid1: TDBGrid; Button1: TButton; Edit1: TEdit; ComboBox1: TComboBox; Button2: TButton; DBGrid2: TDBGrid; DataSource2: TDataSource; ADODataSet2: TADODataSet; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); end; var Form1: TForm1; predmet:String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ADODataSet1.Close; ADODataSet1.CommandText:=select * from Пропуски Where Фамилия like "+Edit1.text+%" order by[Фамилия]; ADODataSet1.Open; end; procedure TForm1.Button2Click(Sender: TObject); begin ADODataSet2.Close; ADODataSet2.CommandText:=select * from Пропуски Where +predmet+ like "н" order by [Фамилия]; ADODataSet2.Open; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin case Combobox1.ItemIndex of 0:predmet:=Физика; 1:predmet:=Экономика; 2:predmet:=Информатика; end; end; end. 2.4 РЕЗУЛЬТАТЫ Результаты пропусков отдельного ученика Результаты пропусков всего класса по отдельному предмету ВЫВОДЫ И ПРЕДЛОЖЕНИЯ В данной работе мы рассмотрели виды подпрограмм и выявили, сто подпрограмма - это отдельная функционально независимая часть программы. Подпрограммы решают три важные задачи: избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты; улучшают структуру программы, облегчая ее понимание; повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях программы. Очень важно понимать, что в подпрограмму может выделяться любой законченный фрагмент программы. В качестве ориентиров следует использовать следующие: Когда несколько раз переписать в программе одну и ту же последовательность команд, необходимость введения подпрограммы приобретает характер острой внутренней потребности. Иногда слишком много мелочей заслоняют главное. Полезно убрать в подпрограмму подробности, скрывающие смысл основной программы. Полезно разбить длинную программу на составные части - просто как книгу разбивают на главы. При этом основная программа становится похожей на оглавление. Бывают сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах. Включение отлаженных алгоритмов в основную программу будет легким, если они оформлены как подпрограммы. Для повторного использования частей лучше сразу выделять в программе полезные алгоритмы в отдельные подпрограммы. Подпрограммы могут быть стандартными, т.е. определенными системой, и собственными, т.е. определенными программистом. Стандартная подпрограмма (процедура или функция) - подпрограмма, включенная в библиотеку программ, доступ к которой обеспечивается средствами языка программирования. Вызывается подпрограмма по имени с заданием фактических параметров. Типы фактических параметров должны соответствовать типам формальных параметров, указанным при описании данной процедуры в библиотечке процедур и функций. Из набора стандартных процедур и функций по обработке одного типа информации составляются модули. Структура текста подпрограммы соответствует структуре текста основной программы за двумя исключениями: подпрограмма начинается с заголовка, содержащего имя подпрограммы, передаваемые в нее и возвращаемые от нее параметры, т.е. запись заголовка подпрограммы отличается от заголовка программы; подпрограмма кончается не точкой, а точкой с запятой. В данной работе мы определили различие между процедурой и функцией Основное различие состоит в том, что процедура только выполняет какую-либо законченную последовательность действий, не возвращая результата работы в основную программу, а функция и выполняет действия, и возвращает результат. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ В.Ю. Микрюкова. Алгоритмизация и прогаммирование. Учебное пособие для студентов среднего профессионального образования. Ростов – на – Дону. «Феникс», 2007 – 304 с С.М. Окулов. Основы программирования. М. Бином. Лаборатория знаний, 2006 – 440с А.М. Епанешников, В.А. Епашников. Программирование в среде Паскаль. «Диско – Мифи», 1998 – 367с С. Немнюгин, Л. Перколаб. Изучаем Паскаль. СПб: Питер, 2008 – 320с С. А. Абрамов. Начала программирования на языке паскаль А. Масюков. Краткий конспект лекций по информатике. А.В. Жуков «Изучаем Делфи№. СПб. Питер, 2000 – 385с http//www.biblioteka.net.ru/data/paskal/pas1/ http//.book.kulichiki.net./data/delphi/del 2/ http//schools.keldysh.ru/sch887/paskal.html |
© 2010–2021 Эссе.рф: Библиотека учебных материалов |