Розробка алгоритму і програми, для обчислення мінтермів для логічної функції заданої логічним виразом

Інформація про навчальний заклад

ВУЗ:
Вінницькій національний технічний університет
Інститут:
Не вказано
Факультет:
Комп'ютерна інженерія
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Інформаційні технології

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Вінницький національний технічний університет Інститут Інформаційних Технологій та Комп’ютерної Інженерії Лабараторна робота № 8. Тема: Розробка алгоритму і програми, для обчислення мінтермів для логічної функції заданої логічним виразом. м.Вінниця 2012 Мета: Набути навичок для обчислення мінтермів для логічної функції заданої логічним виразом, та програмної реалізації досліджуваного алгоритму. Хід роботи: 1.Вивчити теоретичний матеріал. 2.Розробити програму для обчислення мінтермів для логічної функції заданої логічним виразом. 3.Побудувати блок-схему. 4.Приклади тестування програми. 5.Висновок. 6.Лістинг програми. 3.Блок-схема / Рисунок 1. / Рисунок 2. 5. Висновок: набуто навичок обчислення мінтермів для логічної функції заданої логічним виразом. Програмно реалізовано даний алгоритм. 6. Лістинг програми (додаток). uses crt; type sim=array[1..6] of string; const permx:sim=('X1','X2','X3','X4','X5','X6'); permnx:sim=('nX1','nX2','nX3','nX4','nX5','nX6'); var i,n:integer; s:string; a: array[1..100] of string; {повертає кількість непорожніх елементів масиву} function kol(a:array[1..100] of string): integer; var i,k:integer; begin k:=0; for i:=1 to 100 do begin if length(a[i])>0 then k:=k+1; end; kol:=k; end; {витягує перше слово} function token(s:string): string; var res: string; begin res:=''; if pos('+',s)>0 then begin repeat res:=res+copy(s,1,1); delete(s,1,1); until pos('+',s)=1; end else begin repeat res:=res+copy(s,1,1); delete(s,1,1); until s=''; end; token:=res; end; {видаляє перше слово і знак '+'} function tokost(s:string): string; begin if pos('+',s)>0 then begin repeat delete(s,1,1); until pos('+',s)=1; delete(s,1,1); end else begin repeat delete(s,1,1); until s=''; end; tokost:=s; end; {процедура для перетворення аргументів} procedure args(n:integer; s:string; permx:array[1..6] of string; permnx:array[1..6] of string; povx:array[1..100] of string); var p,k,j,i:integer; x,nx:array[1..100] of string; begin for i:=1 to 100 do begin x[i]:=''; nx[i]:=''; end; for j:=1 to n do begin for i:=1 to 100 do begin if length(povx[i])>0 then begin if pos(inttostr(j),povx[i])=0 then begin x[i]:=povx[i]+'*'+permx[j]; nx[i]:=povx[i]+'*'+permnx[j]; end; if pos(inttostr(j),povx[i])>0 then begin x[i]:=povx[i]; end; end; end; for k:=1 to 100 do begin if length(x[k])>0 then povx[k]:=x[k]; end; for p:=1 to 100 do begin if length(nx[p])>0 then povx[kol(povx)+p]:=nx[p]; end; end; for i:=1 to 100 do begin if length(povx[i])>0 then write(povx[i],'+'); end; end; {основа програми} BEGIN writeln('Введіть кількість аргументів (від 2 до 6):'); readln(n); writeln('Введіть функцію ДНФ від ',n,' аргументів:'); readln(s); write('ДДНФ-',n,'='); for i:=1 to 100 do begin a[i]:=token(s); s:=tokost(s); end; args(n,s,permx,permnx,a); END.
Антиботан аватар за замовчуванням

05.02.2014 22:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!