Процедурные типы. Паскаль. Конспект урока

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 
  • Конспект урока
  • Процедурные типы. Паскаль.

  • Цели написания курсовой :
  1.                             1. Найти и разобраться с новым материалом.
  2.                             2. Составить план занятия по теме ”Процедурный тип данных в языке Turbo Paskal”.
  3.                             3. Написать конспект урока по найденному материалу.
  •                              + Демонстрация практического применения нового материала.
  1.                             4. Оценить усвоенные теоретические знания учащихся (текущим опросом)
  •  
  •  
  •   Содержание курсовой:
  •                        1. НЕОБХОДИМОСТЬ СТРУКТУРИЗАЦИИ В ПРОГРАММИРОВАНИИ                                                          
  •                        2. ПОДПРОГРАММЫ В ЯЗЫКЕ ПАСКАЛЬ.
  •                        3. ОБЩИЕ СВЕДЕНИЯ.
  •                        4. ПЕРЕЧЕНЬ ТИПОВ ДАННЫХ В ТУРБО ПАСКАЛЕ.
  •                        5. ПРОЦЕДУРНЫЕ ТИПЫ.
  •                        6. ПРОЦЕДУРНЫЕИ ЗНАЧЕНИЯ.
  •                        7. ПРИМЕРЫ ПРАКТИЧЕСКОГО ПРИМЕНЕНИЯ.
  •                        8. ЗАДАНИЯ ОБУЧАЮЩИМСЯ. 
  •                        9. СПИСОК ЛИТЕРАТУРЫ.
  •  
  • ПРЕДИСЛОВИЕ.
  • ПЛАН ЗАНЯТИЯ:
  • 1.Описание процедурного типа.
  • 2.Процедурные значения.
  • 3.Пример, иллюстрирующий пользу процедурного типа, когда над              множеством процедур или функций выполняются общие действия.
  • 3'.Задание-упражнение.
  • 4.Проверка теоретических знаний тестом. Контрольная работа-зачет
  •     проводится после изучения всего раздела “Процедуры и функции”,
  •     где по этой теме задание: решить задачу-пример1.1.           
  •   
  •     План занятия может выглядеть следующим образом, потому что я не знакома с методами преподавания информатике. После изучения этой
  • дисциплины план будет корректироваться. Сейчас же, исходя из своего
  • двухлетнего обучения информатике и перенеся его через свое сознание
  • я имею некоторое представление, которое объективно оценить не могу.
  •     В своей школьной работе, при предоставленной возможности изуче-ния Турбо Паскаля, буду ориентироваться на учебник Попова В.Б. “TU-
  • RBO PASKAL для школьников”, где затронута эта тема.
  •     Безусловно, эта курсовая не конечный результат. Со временем она будет пополняться новыми практическими заданиями и усовершенствованием  преподавания теоретического  материала для облегчения пони-мания учащимися.
  •      Само написание курсовой имело очень большое образовательного
  • значение:  расширение своих представлений о возможностях Турбо Паскаля; навыки работы на компьютере, т.к. Word не преподавался;
  • появление практических представлений об  Internet.  
  •     
  • 1. НЕ ОБХОДИМОСТЬ СТРУКТУРИЗАЦИИ В ПРОГРАММИРОВАНИИ
  •  Развитие индустрии создания программных средств и все более широкое ис­пользование различных программ для удовлетворения информацион-ных потребно­стей человека существенно повышают требования к надеж-ности программного из­делия, т. е. к уменьшению числа оставшихся невы-явленных ошибок в программе и таких неучтеных ситуаций, при возни-кновении которых программа может выдать неопределенный результат или прекращает свое нормальное функционирование.
  •      Значительное увеличение сложности задач, решаемых с помощью ЭВМ, при­водит к увеличению размеров и сложности программ, что поро-ждает дополнитель­ные трудности при их разработке и отладке. Увеличе-ние продолжительности жизненного цикла программ приводит к тому, что с течением времени из-за изме­нения условий использования прог-рамм возникает необходимость их модифика­ции, повышения их эффекти-вности, удобства пользования ими.
  •      Для разрешения возникших при этом проблем в практике программи-рования выработан ряд приемов и методов, которые принято называть ме-тодами структур­ного программирования.
  •      Под структурным программированием понимают такие методы чет-ко прослеживаться логика ее работы, т. е. не должно быть "скачков" на фрагменты программы, расположенные где-то в другом месте програм-мы.
  •      Структурное программирование — "программирование без gо tо", т. е. не ис­пользуются операторы перехода без особой необходимости. В связи с этим отдель­ные фрагменты программы представляют собой некоторые логические (управляю­щие) структуры, которые определяют порядок вы-полнения содержащихся в них правил обработки данных. Любая програм-ма получается построенной из стандарт­ных логических структур, число типов которых невелико.
  •       Основные логические структуры :
  •       следование — последовательность операторов, групп операторов, выполняе­мых друг за другом в порядке их следования в тексте програм-мы;
  •       ветвление — управляющая структура, которая в зависимости от вы-полнения заданного условия определяет выбор для исполнения одного из двух или более за­данных в этой структуре групп операторов;
  •       повторение — цикл, в котором группа операторов может выполнять-ся по­вторно, если соблюдается заданное условие.
  •       Существенная особенность всех этих структур — то, что каждая из них имеет только один вход и только один выход, что и обеспечивает логически последова­тельную структуру программы. Все эти структуры определяются рекурсивно, т. е. каждая из входящих в структуру групп операторов может быть одним оператором, группой операторов и может быть любой из допустимых структур — допускается вложение структур.
  •        Так как программа задает правила обработки данных, то проекти-рование самих данных при изготовлении программы имеет не менее важ-ное значение, чем проек­тирование правил их обработки. Очевидно, что, чем четче определены сами дан­ные, тем легче разрабатывать правила их обработки. Простота и надежность про­граммы существенно зависят от того, насколько удобно отдельные обрабатывае­мые данные объединены в некоторые структуры. При этом язык программирования Паскаль требует от программиста четкого описания вводимой в употребление структуры данных, что позволяет транслятору обеспечивать работу с каждой такой структурой и следить за корректностью ее использования.
  •       
  •        Для того чтобы возложить на транслятор контроль за корректностью использо­вания в программе различных типов данных, в Паскале требу-ется описывать кон­станты и переменные перед их применением с указа-нием их типа. Чтобы эти описа­ния было легче использовать транслятору или программисту, Паскаль требует чет­кой структуризации программы, отводя для различного рода информации строго отведенное место.
  •        Метод нисходящего проектирования программ. С массовым внед-рением вычислительной техники процесс программирования постепенно превращается в промышленное изготовление программ. Для этой цели со-здаются разнообразные технологии программирования. Примерами таких технологий могут служить тех­нология нисходящего программирования и технология восходящего программиро­вания.
  •        Технология нисходящего программирования базируется на методе програм­мирования "сверху-вниз". Часто этот метод называют методом пошаговой детали­зации. Большинство специалистов в области програм-мирования придерживаются той точки зрения, что именно этот метод создает предпосылки к решению сложных проблем. Основой такого ме-тода является идея постепенной декомпозиции исходной задачи на ряд подзадач. Сначала формулируется самая грубая модель реше­ния, отдель-ные детали которой на первом этапе могут быть довольно расплывчаты­ми (как вид какого-либо участка земли с большой высоты, в котором нераз-личимы мелкие подробности). По мере разработки программы, разбивая наиболее неясные части алгоритма и добиваясь все более точных и дета-лизированных формулировок, мы получаем более подробное решение, как бы опускаемся с большой высоты ни­же и начинаем при этом разли-чать более мелкие детали. Решение отдельного фраг­мента сложной зада-чи может представлять собой самостоятельный программный блок, назы-ваемый подпрограммой. Такой процесс детализации продолжается до тех пор, пока не станут ясны все детали решения задачи. В этом случае прог-рамму решения сложной задачи можно представить как иерархическую совокупность от­носительно самостоятельных фрагментов — подпрог-рамм.
  •        Таким образом, подпрограммой называют обособленную, оформлен-ную в ви­де отдельной синтаксической конструкции и снабженную име-нем часть програм­мы. Использование подпрограмм позволяет, сосредото-чив в них подробное описа­ние некоторых операций, в остальной програм-ме только указывать имена подпро­грамм, чтобы выполнить эти операции. Такие вызовы подпрограммы возможны не­однократно из разных участков программы, причем при вызове подпрограмме мож­но передать некото-рую информацию (различную в разных вызовах), чтобы одна и та же под-программа выполняла решение подзадачи для разных случаев.
  •        Понятие подпрограммы как обособленной именованной части прог-раммы со своими собственными объектами (константами, переменными и т.п.) является во многих языках программ0ирования основным средством структурирования про­грамм. Современные подходы к разработке прог-рамм поощряют явное оформление в виде подпрограммы любого достато-чно самостоятельного и законченного про­граммного фрагмента.
  •  
  • 2.  ПОДПРОГРАММЫ В ЯЗЫКЕ ПАСКАЛЬ
  •        За наличие структурирования программ язык про­граммирования Турбо Паскаль называется процедурно-ориентированным.
  •        Подпрограммы в Турбо Паскале реализованы посредством процедур и функ­ций. Имея один и тот же       смысл и аналогичную структуру, про-цедуры и функции различаются назначением и способом их использова-ния.
  •       Процедура — это независимая именованная часть программы, кото-рую можно вызвать по имени для выполнения определенных действий. Структура процедуры повторяет структуру программы. Процедура не может выступать как операнд в вы­ражении. Упоминание имени проце-дуры в тексте программы приводит к активиза­ции процедуры и называет-ся ее вызовом. Например, Read(F) читает с клавиатуры некоторое значе-ние и присваивает его переменной F, Delау(5) вызывает задержку выпо-лнения программы на 5 мс.
  •        Отличие подпрограмм-процедур от подпрограмм-функций состоит в том, что процедуры служат для задания совокупности действий, направ-ленных на изменение внешней по отношению к ним программной об-становки, а функции, являясь частным случаем процедур, отличаются от них тем, что они обязательно возвращают в точку вызова основной прог-раммы единственный результат как значение имени этой функции.
  • 3. ОБЩИЕ СВЕДЕНИЯ
  • При решении задач выполняется обработка информации различного характера. Это могут быть целые и дробные величины, строки и др. Соответственно констан­ты и переменные должны быть описаны как целые, дробные, строковые и т. д.
  • Для описания множества допустимых значений величины и совокупности опе­раций, в которых может участвовать данная величина, используется указание ее ти­па данных. Тип данных (data type) — множество величин, объединенных опреде­ленной совокупностью допустимых операций.
  • Каждый тип данных имеет свой диапазон значений и специальное зарезервиро­ванное слово для описания. Например, значения 1 и 2 относятся к целочисленному типу, их можно складывать, умножать и выполнять над ними другие арифметиче­ские операции.
  • Все типы данных можно разделить на две группы: скалярные и структуриро­ванные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские.
  • Стандартные типы предлагаются пользователям разработчиками системы Тур­бо Паскаль. К ним относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.
  • Пользовательские типы разрабатываются пользователями системы программи­рования Турбо Паскаль.
  • 4. ПЕРЕЧЕНЬ ТИПОВ ДАННЫХ В ТУРБО ПАСКАЛЬ.
  • Перечень типов данных в языке Турбо Паскаль можно представить в виде сле­дующей схемы:       
  1. 1. Простые типы (скалярные типы ). Порядковые типы.
  •          Целые типы:
  • byte,       shortint,
  • integer,
  • word,
  • longint.
  • Логический тип boolean. Символьный тип char.
  • Перечисляемый тип.  
    Интервальный тип (диапазон).
    Вещественные типы:
  • real,
  • single,
  • double,    
  • extended,
  • comp.
  • Ссылочный тип.
  1. 2. Структурированные типы.
    Строковый (string).    
    Регулярный (array).
    Комбинированный (record).
    Множественный (set).
    Файловый (file).            
  2. 3. Процедурные типы.
  • Данные целочисленных типов могут быть представлены как в десятичной, так и в шестнадцатеричной системе. Если число представлено в шестнадцатеричной системе, перед ним без пробела записывается знак $. Диапазон изменений шестнадцатеричных чисел от $0000 до $FFFF.
  • В десятичной системе числа могут записываться двумя способами:5 с фиксиро­ванной и с плавающей точкой.
  • Вещественные десятичные числа с фиксированной точкой записываются по обычным правилам арифметики. Целая часть от дробной отделяется десятичной точкой. Если десятичная точка отсутствует, число считается целым. Перед числом может находиться знак "+" или "—", если знак отсутствует, по умолчанию число считается положительным.
  • Примеры:                                                                                      
    125        — целое десятичное число                                                     
    S1FF     — шестнадцатеричное число
  • 124.674 — вещественное число                                                                                   
    — 12.9 — отрицательное вещественное число
  • Вещественные десятичные числа в форме с плавающей точкой представлены в экспоненциальном виде: mЕ+р, где m — мантисса (целое или дробное число с деся­тичной точкой), Е означает десять в степени, р — порядок (целое число).
  •        Пример.
  •                                                                                                                                                      
  • 5.18Е+02 = 5.18* 102=518
    10Е — 03 = 10* 10-3 = 0.01                                                                       .
  • Пользовательские типы — перечисляемый и интервальный — разрабатывают­ся самим программистом.
  • Структурированные типы в своей основе имеют один или несколько скалярных типов данных. К структурированным типам относятся строки, массивы, множества, записи, файлы и данные совершенно новой природы: процедурного типа и типа object. Двум последним типам трудно поставить в соответствие данные в обычном понимании этого слова. Разработчики фирмы Borland назвали их процедурными типами и объектами, что точно соответствует их базовым признакам. Понимание работы с этими типами требует наличия определенного опыта и навыков програм­мирования.
  • 5. ПРОЦЕДУРНЫЕ ТИПЫ.
  • В стандартном  Паскале  процедуры  и функции рассматриваются только как части программы, которые можно выполнять с помощью вызова процедуры или функции. В качестве расширения стандартного Паскаля , Borland Pascal позволяет рассматривать гораздо шире:

             здесь допускается интерпретация процедур и функций,  как объектов,  которые можно присваивать переменным и передавать в качестве параметров.

                 Такие действия можно выполнять с помощью процедурных типов.

                 В описании процедурного типа задаются параметры, а для функции – результат

    функции.

     

            процедурный тип

             ¦

             ¦ 

              procedure

              ¦               ¦       

              ¦               ¦список формальных параметров

              ¦

              function : результат

                              ¦

                              список формальных параметров

                       

     

                 Характерно, что синтаксис записи процедурного типа в точности совпадает с записью заголовка процедуры  или  функции,  только опуска-ется  идентификатор  после  ключевого  слова  procedure или function.  Приводится  пример описаний  процедурного типа:

     

                 type

                    Proc = procedure;

                    SwapProc = procedure(var X, Y: Integer);

                    StrProc = procedure(S: String);

                    MathFunc = function(X: Real): Real;

                    DeviceFunc = function(var F: text): Integer;

                    MaxFunc = function(A, B: Real; F: MathFunc): Real;

     

                Имена параметров в описании процедурного типа  играют  чисто декоративную роль - на смысл описания они не влияют.

                Borland Pascal не позволяет описывать функции, которые возвращают значения процедурного типа. 

                Результат функции должен быть

                                 строкового,

                                 вещественного,

                                 целого,

                                символьного,

                                булевского типа,

                                указателем 

                или иметь перечислимый тип,  определенный пользователем.

     

     

    6.ПРОЦЕДУРНЫЕ ЗНАЧЕНИЯ.  

      Как только процедурный тип определен , можно объявлять переменные этого типа . Такие переменные называются процедурными переменными. Они могут быть использованы в качестве формальных параметров при вызове процедур и функций. Подобно тому, как целочисленной перемен-ной можно присвоить процедурное значение. Такое значение может быть и другой процедурной переменной, но может также быть идентификато-ром процедуры или  функции. В этой ситуации объявление процедуры или функции можно рассматривать как особый вид o6ъявления  констан-ты, значением которой является процедура или функция.    

               Как и во всех других операциях присваивания, переменная в левой части и  переменная  в правой части оператора присваивания должны быть совместимыми по присваиванию. Для того чтобы считаться совмес-тимыми по присваиванию, процедурные  типы должны  иметь одинаковое число параметров, параметры в соответствующих   позициях должны быть тождественных типов; наконец, типы результатов функций должны  быть идентичны. Дополнительно к совместимости типов процедура или функция должны удовлетворять следующим требованиям, если они присваиваются процедурной переменной.

        

  •   • Они должны быть объявлены с директивой far (использование дальнего типа  вызова подпрограмм) и откомпилированы в состоянии {$F+};
  •         • Они не должны быть:   
  •                  - стандартной процедурой или функцией;   
  •                  - вложенной процедурой или функцией;    
  •                  -inline процедурой или функцией;    
  •                  -interrupt процедурой или функцией.
  •           При использовании параметров-процедур или параметров-функций в списке перед соответствующими формальными параметрами указывается зарезервированное слово procedure или function, например:
  •  
  •    procedure Exampl (К,L:integer;    var   M  :   real;  procedure   Prob; function Step: real) ;
  •  

    В списке формальных параметров процедуры Exampl:

    :         K,L—параметры-значения;

              M—параметр-переменная;

              Prob — параметр-процедура;

              Step — параметр-функция, результатом выполнения которой будет значение вещественного типа.

            При вызове подпрограммы на место формальных параметров-процедур и параметров

    ­функций осуществляется подстановка имен соответствующих факти-ческих процедур или функций. При этом, если процедуры и функции, фигурирующие в качестве фактических параметров, имеют, в свою оче-редь, параметры, они могут быть только параметрами-зна-чениями.

             Переменной процедурного  типа  можно  присвоить  процедурное значение. Процедурные значения могут быть следующими:

                 * значениями nil;

                 * ссылкой на переменную процедурного типа;

                 * идентификатором процедуры или функции.

     

         В контексте  процедурных  значений  описание  процедуры  или

    функции можно  рассматривать  как  специальный вид описаний конс-тант, когда значением константы является процедура  или  функция.

            Рассмотрим, например, следующее описание:

              var

                    P: SwapProc ;

                    F: MathFunc ;

     

                 procedure Swap(var A, B: Integer); far;

                 var

                   Temp: Integer;

                 begin

                   Temp := A;

                   A := B;

                   B := Temp;

                 end;

     

                 function Tan(Angle: Real); far;

                 begin

                   Tan := Sin(Angle) / Cos(Angle);

                 end;

     

                 Переменным P и F можно присвоить значения следующим образом:

                 P := Swap;

                 F := Tan;

     

            а вызовы с помощью P и F можно выполнить так:

                 P(I, J);                  { эквивалентно Swap(I, J) }

                 X = F(X);                { эквивалентно X := Tan(X) }

           Использование процедурных  переменных,  которым  в операторе вызова процедуры или функции присваивается значение nil, приводит к ошибке.  Значение nil предназначено для указания того, что процедурная переменная не присвоена, и, так где процедурная переменная может  по-лучить значение nil,  участвующие в этой процедурной переменной вызовы процедур и функций следует подвергать проверке:

             if @ P <> nil then P(I, J);

     

               Внимание. Операция @ используется для  указания того, что P проверяется, а не вызывается.

              Приводятся примеры применения процедурных типов:      

  • 7.ПРИМЕРЫ ПРАКТИЧЕСКОГО ПРИМЕНЕНИЯ.
  • Пример 1.1 иллюстрирует механизм передачи процедур в качестве фактических параметров вызова. Программа выводит на экран таблицу двух функций:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
  •                      sin1(x)=(sin(x)+1)*p(-x) и cos1(x):=(cos(x)+1)*exp(-x).
  • Вычисление и печать значений этих функций реализуются в процедуре PRINTFUNC, которой в качестве параметров передаются номер позиции N на экране, куда будет выводиться очередной результат (с помощью этого параметра реализуется вывод в две колонки), и имя нужной функции.
  •         {---------------------------------------------------------------}
  •         Uses CRT;
  •         type
  •           Func =Function(x: real):real;  
  •         {----------}
  •         procedure printfunc(Xpos:byte; F:Func);
  •         {Определяет печать функции F (Xpos-горизонтальная позиция начала
  •           вывода)}   
  •         const
  •           np = 20;
  •         var
  •           x : real;
  •           I : integer;
  •         Begin {printFunc}
  •           For I := 1 to np do
  •             Begin
  •                X :=I * (2 * pi / np);
  •                Gotoxy (xpos, wherey);
  •                Writeln (x:5:3, f(x):18:5)
  •             End
  •         End; {printfunc}
  •         {------------}
  •         function sin1 (x :real): real; far;
  •         begin
  •            sin1 := (sin(x) +1) * exp(-x);
  •         end;
  •         {------------}
  •         function cos1 (x :real): real; far;
  •         begin
  •            cos1 := (cos(x) +1) * exp(-x);
  •         end;
  •         {------------}
  •         begin {основная программа}
  •           ClrScr;                     {очищаем экран}
  •           Printfunc (1, sin1);
  •           GotoXY (1,1);               {переводим курсор в левый верхний
  •                                        угол}
  •           PrintFunc(40, cos1);
  •           Readln;
  •         End.
  •        
  •         Внимание: для установления правильных связей функций SIN1 и COS1 c
  •         процедурой PRINCFUNC они должны компилироваться с расчетом на дальнюю модель памяти. Вот почему в программу вставлены стандар-тные директивы FARсразу за заголовками функций. В таком режиме должны компилироваться любые процедуры (функции), которые будут передаваться в
  •         Параметры процедурного типа  особенно полезны в  ситуациях, когда над множеством процедур или функций выполняются общие действия.
  • Пример1.2.
  • Примером использования параметров-функций может служить программа, которая с помощью одной и той же процедуры  печати таблицы выводит на экран три таблицы арифметических функций (сложения, умножения и произведения суммы на разность чисел , каждая из которых выполняется отдельной функцией.
  •  
  • Program  Demo_Tabl;
  • |{Описание процедурного типа Func — целой функции двух  аргументов целого типа}
  •       type
  •           Func=function(X,Y  : integer) : integer;
  •  {$F+}  {Директива компилятору на использование дальнего типа вызова подпрограмм}                                                          
  • {Описание функции сложения двух целых чисел}
  •           function Add(X,Y : integer) : integer; 
  •           begin
  •                 Add: =X+Y;
  •           end;
  •  {Описание функции умножения двух целых чисел}  
  •           function Mult (X,Y  : integer) : integer;    
  •           begin      
  •                  Mult :=X*Y;    
  •            end;
  • {Описание функции умножения суммы на разность двух целых чисел}     
  •            function Funny(X,Y  : integer) : integer;    
  •            begin       
  •                  Funny:= (X+Y) * (X-Y) ;   
  •            end;
  • {$F-}
  • {Описание процедуры вывода на экран таблицы для двух чисел от 1 до 10, вид арифметической операции задается значением параметра-функции Operation}    
  •            procedure Type_Tabl(W,H  : integer;  Operation : Func) ;     
  •                var         
  •                      X,Y : integer;    
  •            begin      
  •                  for Y:=1 to  H  do          
  •                      begin            
  •                            for  X:=1 to  W  do               
  •                                 Write (Operation(X,Y):5);                                     
  •                                 Writeln;                                             
  •                      end;    
  •             end;
  • begin                                                    { Начало главной программы}     
  •       Type_Tabl(10,10,Add);               {Вызов процедуры для печати таблицы сложения}                            
  •       Type_Tabl<10,10,Mult);             {Вызов процедуры для печати таблицы умножения}                                                         Туре_ТаЬ1(10,10,Funny);          {Вызов процедуры для печати таблицы произведений     
  •                                                                 суммы  чисел от 1 до 10 на их разность}
  • end.
  •     Примечание.  {SF+} — указание (директива) компилятору Турбо Паскаль на использование дальнего (far) типа вызова для корректной обработки вызова процедуры Туре_Tabl1  с параметрами-функциями.                                                  
  •     В данной программе процедура Туре_Таb1 представляет собой общее действие, выполняемое  над параметрами-функциями Add, Mult, Funny. После запуска программы  сначала вызывается процедура Туре_Таb1 для фактических параметров 10,  10 и Add, в результате чего формальным параметрам Х и Y присваиваются значения чисел 10 и 10,а формальному параметру Operation процедурного типа Func присваивается имя фактической функции Add. В результате этого на экран будет выведена таблица сложения от 1 до 10. Затем процедура Type_Tabl вызывается к исполнению для фактических параметров 10, 10 и параметра-функции Mult, в результате чего на экран будет выведена таблица умножения от 1 до 10. Аналогично вызов процедуры Туре_Таb1 с параметрами 10, 10 и Funny даст в результате на экране таблицу произведения суммы на разность чисел от 1 до 10.
  •  
  • 8. ЗАДАНИЕ ОБУЧАЮЩИМСЯ.
  •       Можно предложить выполнить следующее задание:   
  •  Упражнение 1. Запустите интегрированную среду программирования. Введите текст
  • программы Demo_Tabl и запишите файл на диск под соответствующим именем, а затем откомпилируйте его. После того как компиляция испол-ните программу в пошаговом режиме с заходом в процедуру и пронаблю-дайте за вызовом функций вычисления суммы, произведения двух чисел или произведения их суммы и разности. Обратите внимание на исполне-ние оператора Write(Operation(X,Y):5), как в зависимости от фактическо-го  значения параметра-функции Operation процедурного типа Func осу-ществляется вызов различных функций Add, Mult или Funny. Попробуете удалить строку с директивой компилятору об использовании дальнего ти-па вызова или возьмите в фигурные скобки описание процедурного типа Func и пронаблюдайте за результатом. В случае появления ошибок нажа-тием клавиши F1 получите справку о причинах ошибки и рекомендации на коррекцию.
  •             
  • ПОСЛЕСЛОВИЕ.
  •            Тема: “Процедурный тип данных” может быть рассмотрена как подтему  раздела “Процедуры и функции языка Turbo Pascal”, который имеет следующее содержание:
  •                           1 тема.  Введение. Необходимость структуризации в                                 
  •                                       программировании.
  •                           2 тема.  Подпрограммы в языке Паскаль:
  •                                                   2.1. Стандартные библиотечные модули.
  •                                                   2.2. Встроенные функции и процедуры.
  •                            3 тема.  Процедуры  и функции пользователя:
  • 3.1.    Процедуры.
  • 3.2.    Функции.
  • 3.3.    Механизм передачи параметров:
  • 3.3.1Общие сведения.
  • .                                                         3.3.2. Параметры-значения.
  •                                                            3.3.3.Параметры-переменные.
  •                                                             3.3.4. Параметры-процедуры и функции
  •                                                                                                                                                                                                                                                                                                                                                                             3.4.Область действия параметров.
  •                                                   3.5.   Рекурсии.
  •                                                   3.6.   Нетрадиционное использование    подпрограмм.
  •             После изученного раздела провести контрольную работу-зачет по вопросам и заданиям из источника [2.]
  •             
  •             Тема:  ''Процедурный тип данных''  может преподаваться на первом курсе второго семестра не гуманитарных факультетов,  старших классов профильных школ или в качестве факультативного материала. Т.к. понимание работы с этими типами требуют наличия определенного
  • опыта и навыков программирования.                        
  •  
  • ЛИТЕРАТУРА:
  • 1.ПОПОВ В.Б. “TURBO PASKAL для школьников”
  • 2.ФАРОНОВ В.C. “TURBO PASKAL”, учебник.
  • 3.ИНФОРМАЦИЯ ИЗ INTERNET.
  • Попутно была рассмотрена литература нескольких библиотек, выставок и книжных магазинов. 
  •  
  •  
  •  


 

Недавно добавили