Контрольный пример для проверки алгоритма информационно-справочной системы




 

Массив работников предприятия имеет следующий вид, представленный в таблице 3.

Таблица 3. Пример данных массива А.

Номер отдела Табельный номер работника Год рождения ребенка работника Месяц рождения ребенка работника Дата рождения ребенка работника
(Ai, 1) (Ai, 2) (Ai, 3) (Ai, 4) (Ai, 5)
         
         
         
         
         

На предприятии работают 5 работников, соответственно в отделе 01 – 2 человека, в отделе 02 – 1 человека, в отделе 03 – 1 человек. Данные по дате рождения ребенка работника приведены в столбцах 3-5.

5. Трассировочная таблица алгоритма для контрольного примера.

 

Трассировочная таблица представляет собой модель работы процессора, выполняемой вручную. Представим трассировочную таблицу в таблице 4.

Таблица 4. Трассировочная таблица алгоритма

№ шага Номер блока Команда алгоритма N Y k i
S1

 

j
Aij
Выполняемые действия
                     
    Ввод N,Y                
                    Вызов подпрограммы 2
  2.1 Для i от 1 до N               i:=1, i≤ 5, да
  2.2 Для j от 1 до 5               j:=1, j≤5, да
 
2.3

 

Ввод Aij

 

              Ввод A 1,1, j:= j +1, 2 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 2, 2 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 1,2, j:= j +1, 3 к блоку 2.2
  2.2 Для j от 1 до 5               j:=3, 3 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 1,3, j:= j +1, 4 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 4, 4 4, да  
 
2.3

 

Ввод Aij

 

              Ввод A 1,4, j:= j +1, 5 к блоку 2.2
  2.2 Для j от 1 до 5               j:=5, 5 ≤5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 1,5, j:= j +1, 6 к блоку 2.2
  2.2 Для j от 1 до 5               j:=6, 6 ≤5, нет i:= i +1, 2 к блоку 2.1
 
2.1

 

Для i от 1 до N

 

              i:=2, 2 5, да
  2.2 Для j от 1 до 5               j:=1, j≤5, да
 
2.3

 

Ввод Aij

 

              Ввод A 2,1, j:= j +1, 2 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 2, 2 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 2,2, j:= j +1, 3 к блоку 2.2
  2.2 Для j от 1 до 5               j:=3, 3 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 2,3, j:= j +1, 4 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 4, 4 4, да  
 
2.3

 

Ввод Aij

 

              Ввод A 2,4, j:= j +1, 5 к блоку 2.2
  2.2 Для j от 1 до 5               j:=5, 5 ≤5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 2,5, j:= j +1, 6 к блоку 2.2
  2.2 Для j от 1 до 5               j:=6, 6 ≤5, нет i:= i +1, 3 к блоку 2.1
 
2.1

 

Для i от 1 до N

 

              i:=3, 3 5, да
  2.2 Для j от 1 до 5               j:=1, j≤5, да
 
2.3

 

Ввод Aij

 

              Ввод A 3,1, j:= j +1, 2 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 2, 2 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 3,2, j:= j +1, 3 к блоку 2.2
  2.2 Для j от 1 до 5               j:=3, 3 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 3,3, j:= j +1, 4 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 4, 4 4, да  
 
2.3

 

Ввод Aij

 

              Ввод A 3,4, j:= j +1, 5 к блоку 2.2
  2.2 Для j от 1 до 5               j:=5, 5 ≤5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 3,5, j:= j +1, 6 к блоку 2.2
  2.2 Для j от 1 до 5               j:=6, 6 ≤5, нет i:= i +1, 4 к блоку 2.1
 
2.1

 

Для i от 1 до N

 

              i:=4, 4 5, да
  2.2 Для j от 1 до 5               j:=1, j≤5, да
 
2.3

 

Ввод Aij

 

              Ввод A 4,1, j:= j +1, 2 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 2, 2 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 4,2, j:= j +1, 3 к блоку 2.2
  2.2 Для j от 1 до 5               j:=3, 3 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 4,3, j:= j +1, 4 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 4, 4 4, да  
 
2.3

 

Ввод Aij

 

              Ввод A 4,4, j:= j +1, 5 к блоку 2.2
  2.2 Для j от 1 до 5               j:=5, 5 ≤5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 4,5, j:= j +1, 6 к блоку 2.2
  2.2 Для j от 1 до 5               j:=6, 6 ≤5, нет i:= i +1, 5 к блоку 2.1
 
2.1

 

Для i от 1 до N

 

              i:=5, 5 5, да
  2.2 Для j от 1 до 5               j:=1, j≤5, да
 
2.3

 

Ввод Aij

 

              Ввод A 5,1, j:= j +1, 2 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 2, 2 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 5,2, j:= j +1, 3 к блоку 2.2
  2.2 Для j от 1 до 5               j:=3, 3 5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 5,3, j:= j +1, 4 к блоку 2.2
  2.2 Для j от 1 до 5               j:= 4, 4 4, да  
 
2.3

 

Ввод Aij

 

              Ввод A 5,4, j:= j +1, 5 к блоку 2.2
  2.2 Для j от 1 до 5               j:=5, 5 ≤5, да  
 
2.3

 

Ввод Aij

 

              Ввод A 5,5, j:= j +1, 6 к блоку 2.2
  2.2 Для j от 1 до 5               j:=6, 6 ≤5, нет i:= i +1, 6 к блоку 2.1
  2.1 Для i от 1 до N               i:=6, 6 5, нет, выход из ПП 2, к блоку 3
    k=1               K:=1
    Пока k=1 или k=2               K=1или K=2? да, к блоку 5
    Ввод k               Вызов подпрограммы 7
 
7.1

 

S1=0

 

              S1:=0
  7.2 Для i от 1 до N               I:=1, i<=5, да К блоку 7.3
  7.3 Y-A13<=14?               2016-2009<=14, да
  7.4 S1=S1+1               S1:=1
  7.2 Для i от 1 до N               i:=2, i<=5, да К блоку 7.3
  7.3 Y-A23<=14?               2016-2011<=14, да
  7.4 S1=S1+1               S1:=2
  7.2 Для i от 1 до N               i:=3, i<=5, да К блоку 7.3
  7.3 Y-A33<=14?               2016-2010<=14, да
  7.4 S1=S1+1               S1=3
  7.2 Для i от 1 до N               i:=4, i<=5, да К блоку 7.3
  7.3 Y-A43<=14?               2016-2006<=14, да
  7.4 S1=S1+1               S1=4
  7.2 Для i от 1 до N               i:=5, i<=5, да К блоку 7.3
  7.3 Y-A43<=14?               2016-2006<=14, да
  7.4 S1=S1+1               S1=5
  7.2 Для i от 1 до N               i:=6, i<=5, нет К блоку 7.5
  7.5 Вывод: «Общее количество подарков по предприятию равно», S1, «штук»                 Ответ: Общее количество подарков по предприятию равно 5 штук, Выход из ПП 7
                     

Программа алгоритма информационно-справочной системы

 

Текст программы на языке Pascal приведен ниже. Программа включает: главную программу и три подпрограммы, текст которых, для удобства, приведен отдельно для каждого из них. В конце данного пункта приведен листинг программы.

Главная программа

program INFORMATION_SYSTEM_OF_STUDENT;

{Информационно-справочная система}

const Y=2016;

Var

{Входные данные}

N, k, M2: integer;

A: array [1..1000, 1..5] of real;

{1000 – максимально возможное количество работников на предприятии. Принят условно.}

{Выходные данные}

S1, S2: real;

{Промежуточные переменные}

i,j:integer;

{Подпрограмма ввода двумерного массива A(1..1000,1...5)}

procedure Vvod_A();

{Первый запрос: Общее количество подарков по предпрятию}

procedure pr_5;

{Второй запрос: Общее количество подарков по подразделению}

procedure pr_6;

 

Begin

Vvod_A;

k:=1;

While (k=1) or (k=2) DO

Begin

writeln('Введите номер запроса');

writeln('Выход из программы- любое число, кроме 1,2');

writeln('1 – Общее количество подарков по предприятию');

writeln('2 – Общее количество подарков по подразделению');

readln(k);

Case k of

1:pr_5; {первый запрос}

2:pr_6; {второй запрос}

 

End;

End;

End.

 

Описание процедуры Vvod_A

procedure Vvod_A();

var i,j,N:integer;

 

Begin

write('Введите количество работников на предприятии:');

readln(N);

for i:=1 to N do

Begin

writeln('Введем данные о ', i, '-ом ребенке работника предприятия');

readln;

for j:=1 to 5 do

Begin

write(j, '-ый столбец:');

read (A[i,j]);

end;

end;

end;

 

Описание процедуры pr_5

procedure pr_5;

var i,j,n:integer;

Begin

S1:=0;

for i:=1 to N do

if Y-A[i,3]<=14 then S1:=S1+ 1;

writeln('Общее количество подарков по предприятию равно ', S1, ' штук');

end;

Описание процедуры pr_6

procedure pr_6;

var i:integer;

Begin

writeln('Введите номер подразделения');

readln(M2);

S2:=0;

for i:=1 to N do

Begin

if A[i,1]=M2 then

Begin

if Y-A[i,3]<=14 then S2:=S2+1;

end;

end;

if S2=0 then write('Данных по указанному условию не найдено') else writeln('Общее количество подарков по подразделению ', M2, ' равно ', S2, ' штук');

end;


 

Листинг всей программы

program INFORMATION_SYSTEM_OF_STUDENT;

{Информационно-справочная система}

const Y=2016;

Var

{Входные данные}

N, k, M2: integer;

A: array [1..1000, 1..5] of real;

{1000 – максимально возможное количество работников на предприятии. Принят условно.}

{Выходные данные}

S1, S2: real;

{Промежуточные переменные}

i,j:integer;

{Подпрограмма ввода двумерного массива A(1..1000,1...5)}

procedure Vvod_A();

var i,j,N:integer;

 

Begin

write('Введите количество работников на предприятии:');

readln(N);

for i:=1 to N do

Begin

writeln('Введем данные о ', i, '-ом ребенке работника предприятия');

readln;

for j:=1 to 5 do

Begin

write(j, '-ый столбец:');

read (A[i,j]);

end;

end;

end;

 

{Первый запрос: Общее количество подарков по предпрятию}

procedure pr_5;

var i,j,n:integer;

Begin

S1:=0;

for i:=1 to N do

if Y-A[i,3]<=14 then S1:=S1+ 1;

writeln('Общее количество подарков по предприятию равно ', S1, ' штук');

end;

 

{Второй запрос: Общее количество подарков по подразделению}

procedure pr_6;

var i:integer;

Begin

writeln('Введите номер подразделения');

readln(M2);

S2:=0;

for i:=1 to N do

Begin

if A[i,1]=M2 then

Begin

if Y-A[i,3]<=14 then S2:=S2+1;

end;

end;

if S2=0 then write('Данных по указанному условию не найдено') else writeln('Общее количество подарков по подразделению ', M2, ' равно ', S2, ' штук');

end;

 

{ОСНОВНАЯ ПРОГРАММА}

Begin

Vvod_A;

k:=1;

While (k=1) or (k=2) DO

Begin

writeln('Введите номер запроса');

writeln('Выход из программы- любое число, кроме 1,2');

writeln('1 – Общее количество подарков по предприятию');

writeln('2 – Общее количество подарков по подразделению');

readln(k);

Case k of

1:pr_5; {первый запрос}

2:pr_6; {второй запрос}

 

End;

End;

End.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-10-25 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: