Структуры данных в предметной области

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    406,41 Кб
  • Опубликовано:
    2014-03-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Структуры данных в предметной области

АЛМАТИНСКИЙ ФИЛИАЛ НЕГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ ПРОФСОЮЗОВ»

Факультет: Экономический

Кафедра: Экономики, информатики и математики





ЛАБОРАТОРНАЯ РАБОТА

Структуры данных в предметной области

Выполнил студент: Алигасанов И.С.

ПИВ группы 2 курса

вечернего отделения

Проверил: Николенко А.Б.







Алматы, 20113

Лабораторная работа 5. Написать функцию, которая вычисляет среднее арифметическое элементов непустого списка

Код программы:

crt;spisok=^S;=record:integer;:spisok;;u,x:spisok;,vi:integer;:real;:=0;;;(u);^.num:=3;^.next:=nil;i:=2 to 10 do(x);:=random(20);^.num:=vi;^.next:=u;:=x;;u <> nil do(u^.num:3);:=sr+u^.num;:=u^.next;;:=sr/10;;;('Srednee=',sr:5:1);;.




Лабораторная работа 6. Написать функцию, которая находит наименьший элемент дерева

Код программы:

, SysUtils;=8;=100;=record:Boolean;:Integer;:Integer;:Integer;;=array [1..m] of Node;=array [1..m] of Integer;:Tree;:Char;:array [1..n] of String [100];:Mas;,x,y:Integer;ShowMenu;:Integer;;('Вас приветствует программа для работы с "Бинарным деревом поиска"');('Для работы в программе используйте клавиши "вверх" и "вниз" для перемещения по пунктам. Для выбора пункта нажмите клавишу Enter. Для выхода из программы нажмите клавишу Esc.');i:=1 to n do(x,y+i-1);(menu[i]);;(red);(x,y+punkt-1);(menu[punkt]);;InsertElement (e,k:Integer);:Integer;not BTree[1].ex then[1].ex:=true;[1].info:=e;[1].left:=0;[1].right:=0;e<BTree[k].info thenBTree[k].left=0 theni:=2 to m doBTree[i].ex=false then[k].left:=i;[i].ex:=true;[i].info:=e;[i].left:=0;[i].right:=0;;;(e,BTree[k].left)BTree[k].right=0 theni:=2 to m doBTree[i].ex=false then[k].right:=i;[i].ex:=true;[i].info:=e;[i].left:=0;[i].right:=0;;;(e,BTree[k].right);;;FindElement (e:Integer; d:Boolean; var A:Mas):Integer;:String;,c,i,j:Integer;:=1;i:=1 to m doBTree[i].ex thenBTree[i].info=e then[j]:=i;:=j+1;;:=j-1;:=A[1];A[1]<>0 thenj:=1 to i doA[j]<>0 then:=A[j];:=e;:=IntToStr (BTree[A[j]].info);:=1;c<>1 dob<>m do((BTree[b].left=c) or (BTree[b].right=c)) and (BTree[b].ex) then:=Concat (IntToStr (BTree[b].info),'-',way);:=b;:=0;;:=b+1;;d then('Индекс искомого элемента равен: ',e,' ',way);;d then('Искомый элемент не найден!');;DeleteElement (k:Integer);,b,c,i:Integer;BTree[k].right<>0 then:=BTree[k].right;:=a;:=BTree[a].left;a=0;:=b;[b].left:=BTree[k].left;:=b;:=BTree[b].right;b=0;[c].right:=BTree[k].right;[a].ex:=false;[k].info:=BTree[a].info;[k].right:=BTree[a].right;[a].left:=0;[a].right:=0;i:=1 to m do(BTree[i].left=a) or (BTree[i].right=a) thenBTree[i].left=a then[i].left:=0[i].right:=0;BTree[k].left<>0 then:=BTree[k].left;[a].ex:=false;[k].info:=BTree[a].info;[k].left:=BTree[a].left;[k].right:=BTree[a].right;[a].left:=0;[a].right:=0;[k].ex:=false;i:=1 to m do(BTree[i].left=k) or (BTree[i].right=k) thenBTree[i].left=k then[i].left:=0[i].right:=0;;;DeletePart (k:Integer);k=0 then;[k].ex:=false;(BTree[k].left);(BTree[k].right);;WriteElement (a,b,c,d,e:Integer);not (BTree[d].ex) then:=e-1;;;e=5 then:=e-1;;;(a,b);:=e+1;(BTree[d].info);(BTree[d].left<>0) then(a-c,b+2,c div 2,BTree[d].left,e);(BTree[d].right<>0) then(a+c,b+2,c div 2,BTree[d].right,e);;CreateTree (a:Boolean);e,i,n:Integer;:Char;;BTree[1].ex then ('Дерево уже создано!');;a then('Дерево ещё не создано. Вы желаете создать его? (Да/Нет) (Введите заглавную букву): ');(v);not (v in ['Д','д']) then ;;('Введите количество элементов (не более ',m,'): ');(n);(n>m) or (n<0) do('Ошибочный ввод! Введите заново количество элементов (не более ',m,'): ');(n);;('Вводите элементы, первый элемент будет корнем дерева: ');i:=1 to n do (e);(e,1);;;;InsertElementInTree;,e,i,n:Integer;;not (BTree[1].ex) then (true):=0;i:=1 to m doBTree[i].ex then:=b+1;('Введите количество элементов (не более ',m-b,'): ');(n);(n>(m-b)) or (n<0) do('Ошибочный ввод! Введите заново количество элементов (не более ',m-b,'): ');(n);;('Вводите элементы: ');i:=1 to n do (e);(e,1);;;;FindElementOfTree;,e:Integer;;not (BTree[1].ex) then (true)('Введите элемент: ');(e);i:=1 to m do[i]:=0;(e,true,A);;;;DeleteElementOfTree;,i,j,k,l,n:Integer;:Char;;:=0;not (BTree[1].ex) then(true)('Введите элемент: ');(e);:=0;i:=1 to m doBTree[i].ex thenBTree[i].info=e then:=j+1;j<2 theni:=1 to m do[i]:=0;:=FindElement (e,false,A);k<>0 then(k);('Элемент удалён');('Удаляемый элемент не найден!');('Данных элементов в дереве несколько. Вы хотите удалить их все? (Да/Некоторые/Передумал удалять) (Введите заглавную букву): ');(v);not (v in ['Д','д','Н','н']) then ;(v in ['Д','д']) then i:=1 to m do[i]:=0;:=FindElement (e,false,A);k<>0 then(k);k=0;('Элементы удалены');i:=1 to m do[i]:=0;(e,false,A);('Индексы искомого элемента равны: ');i:=1 to m doA[i]<>0 then(A[i],' ');:=l+1;;;('Введите количество тех элементов, которые хотите удалить, а затем их индексы: ');(k);(k>l) or (k<0) do ('Ошибочный ввод! Введите еще раз: ');(k);;:=k;(n);j:=1 to m do(A[j]=n) and (n<>0) then(n);:=k-1;;i=k then('Ошибочный ввод! Индекс находится не среди удаляемых элементов! Введите еще раз:');k=0;('Элементы удалены');;;;;;DeletePartOfTree;,i,j,k,l,n:Integer;:Char;;:=0;not (BTree[1].ex) then(true)('Введите вершину удаляемого поддерева: ');(e);:=0;i:=1 to m doBTree[i].ex thenBTree[i].info=e then:=j+1;j<2 theni:=1 to m do[i]:=0;:=FindElement (e,false,A);k<>0 then(k);('Поддерево удалено');('Удаляемое поддерево не найдено!');('Данных элементов в дереве несколько. Вы хотите удалить их все? (Да/Некоторые/Передумал удалять) (Введите заглавную букву): ');(v);not (v in ['Д','д','Н','н']) then ;not (v in ['Н','н']) then i:=1 to m do[i]:=0;:=FindElement (e,false,A);k<>0 then(k);(k=0);('Элементы удалены');i:=1 to m do[i]:=0;(e,false,A);('Индексы искомого элемента равны: ');i:=1 to m doA[i]<>0 then(A[i],' ');:=l+1;;;('Введите количество тех элементов, которые хотите удалить, а затем их индексы: ');(k);(k>l) or (k<0) do ('Ошибочный ввод! Введите еще раз: ');(k);;:=k;(n);j:=1 to m do(A[j]=n) and (n<>0) then(n);:=k-1;;i=k then('Ошибочный ввод! Индекс находится не среди удаляемых элементов! Введите еще раз:');k=0;('Поддеревья удалены');;;;;;DeleteFullTree;:Integer;;not (BTree[1].ex) then (true)i:=1 to m do[i].ex:=false;('Дерево удалено');;;;ShowTree;,i:Integer;:AnsiString;;:='Возможно, вы видите лишь часть дерева. Нажмите стрелочку влево, чтобы увидеть левое поддерево данного корня, стрелочку вправо, чтобы увидеть правое поддерево данного корня, стрелочку вверх, чтобы увидеть поддерево родителя данного корня, Enter, чтобы выйти.';:=1;BTree[1].ex then(MessageStr);(80,25,28,d,0);:=ReadKey;;(MessageStr);ch=#80 then(80,25,28,d,0);ch=#72 theni:=1 to m doBTree[i].ex then(BTree[i].left=d) or (BTree[i].right=d) then;(MessageStr);:=i;(80,25,28,d,0);;(80,25,28,d,0);;ch=#75 thenBTree[d].left<>0 then:=BTree[d].left;;(MessageStr);(80,25,28,d,0);;ch=#77 thenBTree[d].right<>0 then:=BTree[d].right;;(MessageStr);(80,25,28,d,0);;ch=#13;(true);;(white);[1]:='Создать дерево';[2]:='Добавить в дерево элементы'; [3]:='Найти элемент'; [4]:='Удалить элемент';[5]:='Удалить поддерево ';[6]:='Удалить дерево';[7]:='Вывести текущее состояние дерева на экран';[8]:='Выход из программы';:=1; :=70; :=25;(lightblue);;:=ReadKey;ch=#0 then :=ReadKey;ch=#80 thenpunkt<n then(lightblue);(x,y+punkt-1);(menu[punkt]);:=punkt+1;(red);(x,y+punkt-1); (menu[punkt]);(lightblue);;ch=#72 thenpunkt>1 then(lightblue);(x,y+punkt-1);(menu[punkt]);:=punkt-1;(red);(x,y+punkt-1); (menu[punkt]);(lightblue);;ch=#13 then (lightblue); punkt of

:CreateTree(false);

:FindElementOfTree;

:DeleteElementOfTree;

:DeletePartOfTree;

:DeleteFullTree;

:ShowTree;

:ch:=#27;;;;ch=#27;.

программный функция дерево элемент



Похожие работы на - Структуры данных в предметной области

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!