10207

Использование модулей при написании программного кода

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 8 Тема: Модули Цель работы: отработать навыки использования модулей при написании программного кода. Образец решения задачи. Задача № 1. Вставьте в двумерный массив строку из нулей после строки с номером t. Анализ постановки задачи В задаче ...

Русский

2013-03-21

69.5 KB

1 чел.

Лабораторная работа № 8

Тема: Модули

Цель работы: отработать навыки использования модулей при написании программного кода.

Образец решения задачи.

Задача № 1. Вставьте в двумерный массив строку из нулей после строки с номером t.

Анализ постановки задачи

В задаче опишем два модуля. В первом модуле опишем объекты программы, которые будут использоваться не только в основной программе, но и в других модулях. Во втором модуле будут находиться процедуры обработки данных.

Функциональная структура алгоритма

Текст программы

{Модуль 1, содержащий описания используемые, как в основной программе, так и в другом модуле}

unit op;

interface

const   MaxN=100; MaxM=80;

type     TMyArray=Array[1..MaxN, 1..MaxM] of Integer;

implementation

end.

{Модуль 2, содержащий процедуры ввода, вывода, сдвига строк и заполнение  строки t - нулями}

unit sdvig;

interface

 uses op;

 procedure Zapolnenie(v, w: integer; var X :TMyArray);

 procedure Vivod (v, w: integer; X :TMyArray);

 procedure SdvigStr (v, w, r: integer; var X :TMyArray);

 procedure InsertStr (w, r: integer; var X :TMyArray);

implementation

  var i, j : integer;

procedure Zapolnenie;

begin

For i:=1 to v do

 For j:=1 to w do

  X[i, j]:=random(20)-10;

end;

procedure Vivod;

begin

For i:=1 to v do

begin

 For j:=1 to w do  write(X[i, j], ‘ ‘);

 Writeln;

 end;

end;

procedure SdvigStr;

begin

For i:=v downto r+1 do

            For j:=1 to w do  X[i+1, j]:= X[i, j];

end;

procedure InsertStr;

begin

For j:=1 to w do  X[r+1, j]:=0;

end;

end.

{Основная программа}

uses op, sdvig;

var       A           : TMyArray;

           n, m, t     : Integer;

begin

Writeln(‘введите количество строк <100 и столбцов <=80’);

Readln(n, m);

If (n>=100) or (m>80) then Writeln(‘Неправильный ввод данных’)

    Else begin

Writeln(‘введите номер строки после которой будет вставляться

строка из нулей’);

Readln(t);

If  t>n then Writeln(‘Неправильный ввод данных’)

        Else begin

   Zapolnenie(n, m, A);

  {вывод элементов заполненного массива}

   Vivod(n, m, A);

   SdvigStr(n, m, t, A);

   InsertStr(m, t, A);

  {вывод элементов измененного массива}

   Vivod(n, m, A);

   end;

end;

end.

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

Анализ постановки задачи.

В данной задаче опишем три модуля. В первом модуле опишем объекты программы, которые будут использоваться не только в основной программе, но и в других модулях. Во втором модуле будут  процедуры ввода-вывода данных. В третьем модуле будут находиться процедуры обработки данных.

Функциональная структура алгоритма

Текст программы

{Модуль 1, содержащий описание данных}

unit op;

interface

const   MaxN = 10; {число команд}

type     TMyArray= array[1..MaxN, 1..5] of integer;

            TArray= array[1.. MaxN] of string[30];     

implementation

end.

{Модуль 2, содержащий процедуры ввода-вывода данных обработки}

unit vv_viv;

interface

 uses op;

 procedure Zapolnenie_Game(v: integer; var X :TMyArray);

 procedure Zapolnenie_Team(v: integer; var X : TArray);

 procedure vivod (v: integer; var X : TMyArray; var Y: TArray );

implementation

  var i, j : integer;

procedure Zapolnenie_Game;

begin

For i :=1 to v do

 For j :=1 to 3 do

                Readln(X[i, j]);

end;

procedure Zapolnenie_Team;

begin

For i :=1 to v do

 Readln(X[i]);

end;

procedure vivod;

begin

    writeln;

    writeln('** Итоговая таблица**');

    writeln('------------------------------------------------------');

    writeln('    Команда    Матчей   Побед   Ничьих   Поражений   Очков');

    writeln('------------------------------------------------------');

    for i := 1 to v do

        begin

           write(i:2,'. ',y[i]);

           for j:=1 to 5 do

                 write(x[i, j]:7);

           writeln;

        end;

    writeln('------------------------------------------------------');

end;

end.

{Модуль 3, содержащий процедуры обработки данных}

unit obrabotka;

interface

 uses op;

 procedure Sum_st4 (v : integer; var X :TMyArray);

 procedure Sum_st5 (v : integer; var X :TMyArray);

 procedure SortStr (v: integer; var X : TMyArray; var Y: TArray );

implementation

  var i, j : integer;

procedure Sum_st4;

begin

For i:=1 to v do

 begin  

        X[i, 4]:=0;

               For j :=1 to 3 do  X[i, 4]:= X[i, 4]+X[i, j];

 end;

end;

procedure Sum_st5;

begin

For i:=1 to v do

       X[i, 5]:= X[i, 1]*3+X[i, 2];

end;

procedure SortStr;

var  n_max, temp1     : integer;

       temp                    : string[30];

begin

  for i:=1 to N-1 do

           begin

             n_max:=i;

             for j:=i+1 to N do

                     if x[j, 5]>x[n_max, 5] then n_max:=j;

            temp:=y[i];

            y[i]:=y[n_max];

            y[n_max]:=temp;

            for j:=1 to 5 do

                    begin

                         temp1:=x[i, j];

                         x[i, j]:=x[n_max, j];

                         x[n_max, j]:=temp1

                    end

          end;  

end;

end.

{Основная программа}

uses op, vv_viv, obrabotka;

var

    Team        : TArray;

    Game       : TMyArray;

     n              : integer;

begin

 Writeln(‘Введите количество команд’);

 Readln(n);

          Zapolnenie_Game (n, Game);

Zapolnenie_Team(n, Team);

 {Подсчет количества матчей 

Sum_st4(n, Game);

{Подсчет количества очков}

Sum_st5(n, Game);

{Сортировка таблицы по столбцу с количеством очков}

     SortStr (n, Game, Team);

    {Вывод итоговой таблицы}

vivod(n, Game, Team);

end.

Задания для самостоятельного решения.

Для задач своего варианта лабораторной работы № 7 написать программы с использованием модулей.

Контрольные вопросы:

1. Модуль начинается заголовком, состоящим из зарезервированного слова ________ и имени модуля.

2. Часть программы, рассматриваемая как самостоятельная синтаксическая единица это _____________________________

3. Зависимость результата работы модуля от исходных данных, но не от работы других модулей называется

ВАРИАНТЫ ОТВЕТОВ:

  1.  функциональной завершенностью
  2.  логической независимостью
  3.  прочностью модуля
  4.  структурированностью данных

4. В модульном программировании борьба со сложность программы осуществляется через

ВАРИАНТЫ ОТВЕТОВ:

  1.  обеспечение небольшого размера модуля
  2.  использование небольшого числа команд
  3.  разбиение на максимальное число модулей
  4.  обеспечение независимости компонент системы, использование иерархических структур

5. Модуль должен иметь:

ВАРИАНТЫ ОТВЕТОВ:

  1.  один вход и несколько выходов
  2.  несколько входов и множество выходов
  3.  множество входов и множество выходов
  4.  один вход и один выход

6. Мера внутренних связей модуля характеризует его

ВАРИАНТЫ ОТВЕТОВ:

  1.  прочность
  2.  сцепление
  3.  сложность
  4.  рутинность

7. Мера зависимости по данным от других модулей характеризует его

ВАРИАНТЫ ОТВЕТОВ:

  1.  прочность
  2.  сцепление
  3.  сложность
  4.  рутинность

8. Если результат обращения к модулю зависит только от значений его параметров, то это  характеризует его

ВАРИАНТЫ ОТВЕТОВ:

  1.  прочность
  2.  сцепление
  3.  сложность
  4.  рутинность

9. Модуль состоит из

ВАРИАНТЫ ОТВЕТОВ:

  1.  декларативной части, исполнительной части
  2.  интерфейсной части, секции реализации, секции инициализации
  3.  интерфейсной части, секции реализации
  4.  декларативной части, исполнительной части, секции инициализации

10. Должно ли имя модуля совпадать с именем файла, в который помещается исходный текст модуля? Если да, то почему?  

11. Является ли модуль выполняемой программой?

12. Какие объекты программы содержит интерфейсная часть модуля?

13. Какие объекты программы содержит секция связи модуля?

14. Является ли обязательной инициализирующая часть модуля?

15. Какие объекты программы может  содержать  инициализирующая часть модуля?


заполнение массива

сдвиг строк

аполнение  строки t - нулями

вывод результата 

задача

Модуль 1

Описание данных

Модуль 2

Обработки данных

заполнение одномерного массива

заполнение двумерного массива

вывод результата в виде таблице 

количество матчей и очков для каждой команды

количество матчей для каждой команды

количество очков для каждой команды

сортировка по столбцу с количеством очков

задача

Модуль 1

Описание данных

Модуль 2

Ввода-вывода данных

Модуль 3

Обработки данных


 

А также другие работы, которые могут Вас заинтересовать

31757. ПОНЯТТЯ І КЛАСИФІКАЦІЯ ФІНАНСОВОГО ПОСЕРЕДНИЦТВА 108.5 KB
  Загальні правові засади у сфері надання фінансових послуг здійснення регулятивних та наглядових функцій за діяльністю з надання фінансових послуг встановлює Закон України Про фінансові послуги та державне регулювання ринків фінансових послуг та інші закони України з питань регулювання ринків фінансових послуг а також прийняті згідно з цими законами нормативноправові акти. При укладенні договору юридична або фізична особа мають право вимагати у суб'єкта підприємницької діяльності надання балансу або довідки про фінансове становище...
31758. ФІНАНСОВІ ПОСЛУГИ НА ФОНДОВОМУ РИНКУ 63.5 KB
  Біржові операції з цінними паперами 7. Саморегулівна організація професійних учасників фондового ринку неприбуткове обєднання учасників фондового ринку що провадять професійну діяльність на фондовому ринку з торгівлі цінними паперами управління активами інституційних інвесторів депозитарну діяльність діяльність реєстраторів та зберігачів утворене відповідно до критеріїв та вимог установлених Державною комісією з цінних паперів та фондового ринку. Професійна діяльність на фондовому ринку діяльність юридичних осіб з надання...
31759. Содержание и значение Федерального закона «О бухгалтерском учете» 37.5 KB
  Указанный Закон имеет большое значение для развития бухгалтерского учета в стране поскольку: а устанавливает единые правовые и методологические основы организации и ведения бухгалтерского учета; б повышает юридический статус норм бухгалтерского учета для коммерческих и некоммерческих организаций; в закрепляет обязанность юридических лиц вести бухгалтерский учет; г повышает статус норм бухгалтерского учета до уровня статуса норм другого законодательства. В I разделе Общие положения дано определение сущности бухгалтерского учета названы...
31760. Подготовка и содержание общего плана и программы аудита 38 KB
  Исходя из вышеизложенного выделяются ключевые принципы планирования аудита. Планирование и достижение наибольшей эффективности аудита реализация общей цели и задач проверки акцентирование внимания на главных проблемах что достигается в частности рациональной расстановкой специалистов участвующих в проверке с целью избежания по возможности дублирования выполняемых ими функций с учетом уровня квалификации и компетентности каждого специалиста аудитора ассистента эксперта в определенных вопросах и оформляется календарным графиком...
31761. Содержание и последовательность его проведения комплексного управленческого анализа 28.5 KB
  Содержание и последовательность его проведения комплексного управленческого анализа Информационной базой КУА является вся система информации о деятельности предприятия: информация о технической подготовке производства нормативная и плановая информация; хозяйственный учет прочие виды информации в том числе опросы специалистов информация производственных совещаний пресса и т. КУА включает в свою систему не только производственный но и финансовый анализ. Внутрихозяйственный КЭА включает в себя: анализ в обосновании и реализации...
31762. Содержание Международных стандартов аудита 37.5 KB
  Международная федерация бухгалтеров и крупнейшие международные компании выступили с новой инициативой направленной на повышение качества международных стандартов аудита и финансовой отчетности во всем мире что позволит защитить интересы международных инвесторов и будет способствовать более активному перемещению капитала между странами. В соответствии с данной инициативой планируется создать новое объединение фирм под эгидой Международной федерации бухгалтеров которое совместно с Федерацией будет разрабатывать международные стандарты аудита...
31764. Налогообложение индивидуальных предпринимателей 71 KB
  УСН это система налогообложения при которой ряд налогов заменяется уплатой единого налога исчисляемого по результатам хозяйственной деятельности за налоговый период.2 Упрощенная система налогообложения НК РФ. Индивидуальные предприниматели применяют УСН наряду с иными системами налогообложения предусмотренными законодательством Российской Федерации о налогах и сборах.
31765. Специальные режимы налогообложения 39.5 KB
  3 НК РФ Система налогообложения в виде единого налога на вмененный доход для отдельных видов деятельности ЕНВД Элемент системы Характеристика Основание Порядок установления ЕНВД ЕНВД вводится в действие законами муниципальных районов городских округов городов применяется наряду с общей системой налогообложения и распространяется только на определенные виды деятельности.28 НК РФ Налоги которые заменяет ЕНВД налог на прибыль организаций в части прибыли полученной от деятельности облагаемой ЕНВД налог на имущество организаций в...