Информационное обеспечение социально экономических процессов

Автор: Пользователь скрыл имя, 24 Ноября 2011 в 18:35, курсовая работа

Краткое описание

ЦЕЛЬ РАБОТЫ: изучение информационного поиска при различных способах организации массивов, различных поисковых стратегиях, различных критериях выдачи.

Файлы: 1 файл

Курс проект по Инф обесп соц-экон процессов.doc

— 425.50 Кб (Скачать)

    l1[2]:=l1[2]+1;

    item:=lavs1[1];

    lavs1[2]:=lavs1[2]-1;

    lavs1[1]:=adr[lavs1[1]];

  until i=3;

  adr[item]:=0;

  k:=2;

  adr[k-1]:=adr[k];

  t[k]:='';

  l1[2]:=l1[2]-1;

  adr[5]:=k;

  adr[k]:=0;

  sch:=2;

  pod4(sch);

  pod4(sch);

  pod4(sch);

  pod4(sch);

end. 

Вариант 3 

   Создание  списка Т(I), I=1,5, поиск и удаление k-гo элемента k=2. Выдача списков Т(I) по критерию выдачи "на совпадение". Программа написана на языке Pascal.

   Описание  массивов и переменных.

Т(25) - массив фамилий, состоит из 5 подмассивов. Первый подмассив Т(I),I=1,5 организуется списковой стратегией организации массивов, в нем же идет поиск k-гo элемента и его удаление.

ADR(25) - массив адресов.

А(3) - массив фамилий, вводимых в массив T(I), I=1,5.

L1(2), L2(2), L3(2), L4(2), L5(2) - указатели списков подмассивов Т.

LAVS1(2), LAVS2(2), LAVS3(2), LAVS4(2), LAVS5(2) - указатели списков пустых подмассивов Т.

ITEM - вспомогательная переменная.

SCH - счетчик подсписков или подмассивов. 

Описание работы головной программы 

Шаг 1: /блоки 1-3/ - начало и ввод массивов.

Шаг 2: /блоки 4-9/ - в этих блоках формируем массив Т(I), I=1,5. В пустые ранее ячейки этого массива вводим элементы массива А. При этом счетчик непустых ячеек массива Т увеличивается, а пустых -уменьшается с каждым шагом на 1.

Шаг 3: /блоки 10,11/ - задаем k=2, ищем этот элемент в списке Т(I), I =1,5,

удаляем его. При этом в адресную ячейку удаленного элемента ставим 0, а в адресную ячейку предыдущего элемента ставим адрес, стоявший ранее в адресной ячейке элемента k.

Шаг 4: /блоки 12-16/ - для дальнейшей работы с программой задаемся счетчиком подмассивов  Т(I). 4 раза обращаемся к подпрограмме POD1 для проверки подмассивов Т(I), I =6,25. Конец головной программы.

 

Описание  работы подпрограммы POD1 

Шаг 1: /блоки 1-3/ - начало подпрограммы POD1, переводим  элементы массива В в строку символов STR.

Шаг 2: /блоки 4-21/ - организуем цикл I =1,3. Ставим условие, чтобы элементы строки STR(1) были равны элементам строки STR(SCH). Если это так, то присваиваем L необходимое по программе значение. Печатаем шапку о выполнении условия на совпадение и печатаем списки, у которых коды совпадают. Если же условие не выполняется, то печатаем об этом сообщение.

Шаг 3: /блоки 19, 20/ - увеличение SCH на 1. Это мы делаем в любом случае – и при выполнении, и при невыполнении условия. Конец подпрограммы POD1. 

Исходные массивы:

    Т: a b c d e f g h i j k l m n o p q r s t u v w x y

    ADR: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

    A: a b с

    В: 1 2 1 3 4

    L1: 1 2   LAVS1: 1 2

    L2: 3 4   LAVS2: 3 4

    L3: 5 6   LAVS3: 5 6

    L4: 7 8   LAVS4: 7 8

    L5: 9 0   LAVS5: 9 0 

Результаты  поиска:

   Условие на совпадение выполнено для списков  Т1 и Т. 

 

Блок-схема  головной программы (вариант  №3) 

 

Блок-схема  подпрограммы POD1

 
 

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

uses crt;

var

  t:array[1..25] of string[20];

  adr:array[1..25] of integer;

  a:array[1..3] of string[20];

  b:array[1..5] of integer;

  l1,l2,l3,l4,l5:array[1..2] of integer;

  lavs1,lavs2,lavs3,lavs4,lavs5:array[1..2] of integer;

  item,sch:integer;

  i,k,l:integer;

  strl,strsch,r:string;

procedure pod1(var sch:integer);

begin

  strl:='';

  strsch:='';

  str(b[1],r);

  strl:=strl+r;

  str(b[sch],r);

  strsch:=strsch+r;

  i:=1;

  if strl=strsch then

  begin

    writeln('Условие  на пересечение выполнено для  списков Т1 и Т');

    if sch=2 then l:=l2[1];

    if sch=3 then l:=l3[1];

    if sch=4 then l:=l4[1];

    if sch=5 then l:=l5[1];

    writeln('Исходный список. Код = ',b[l]);

    for i:=l1[1] to l1[1]+4 do

    begin

      writeln('T[',i,']= ',T[i]);

      writeln('ADR[',i,']= ',ADR[i]);

    end;

    writeln;

    writeln('Список  на пересечение. Код = ',b[sch]);

    for i:=l to l+4 do

    begin

      writeln('T[',i,']= ',T[i]);

      writeln('ADR[',i,']= ',ADR[i]);

    end;

  end;

  sch:=sch+1;

end; 

begin

  clrscr;

  for i:=1 to 25 do

  begin

    write('Bведите T[',i,']:');

    readln(T[i]);

    write('Введите ADR[',i,']:');

    readln(adr[i]);

  end;

  for i:=1 to 3 do

  begin

    write('Введите A[',i,']: ');

    readln(a[i]);

  end;

  for i:=1 to 5 do

  begin

    write('Введите B[',i,']: ');

    readln(b[i]);

  end;

  for i:=1 to 2 do

  begin

    write('Введите LAVS1[',i,']: ');

    readln(lavs1[i]);

    write('Введите LAVS2[',i,']: ');

    readln(lavs2[i]);

    write('Введите LAVS3[',i,']: ');

    readln(lavs3[i]);

    write('Введите LAVS4[',i,']: ');

    readln(lavs4[i]);

    write('Введите LAVS5[',i,']:');

    readln(lavs5[i]);

  end;

  for i:=1 to 2 do

  begin

    write('Введите L2[',i,']: ');

    readln(l2[i]);

    write('Введите L3[',i,']: ');

    readln(l3[i]);

    write('Введите L4[',i,']: ');

    readln(l4[i]);

    write('Введите L5[',i,']: ');

    readln(l5[i]);

  end;

  l1[1]:=lavs1[1];

  l1[2]:=0;

  i:=0;

  repeat

    i:=i+1;

    t[lavs1[1]]:=a[i];

    l1[2]:=l1[2]+1;

    item:=lavs1[1];

    lavs1[2]:=lavs1[2]-1;

    lavs1[1]:=adr[lavs1[1]];

  until i=3;

  adr[item]:=0;

  k:=2;

  adr[k-1]:=adr[k];

  t[k]:='';

  l1[2]:=l1[2]-1;

  adr[5]:=k;

  adr[k]:=0;

  sch:=2;

  pod1(sch);

  pod1(sch);

  pod1(sch);

  pod1(sch);

end.

Информация о работе Информационное обеспечение социально экономических процессов