Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
krkris
/
Loogikafunktsioon
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
58d71dc7
authored
3 years ago
by
erfeld
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lihtimplikantide leidmise koodi lisandused
parent
e94f9aff
master
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
129 additions
and
53 deletions
Kood.c
Kood.c
View file @
58d71dc7
#include <stdio.h>
#include <string.h>
// kood kommenteerida, muutujate nimed, funktsioonide lisamine
typedef
struct
{
char
kood
[
5
];
int
indeks
;
}
implikandid
;
}
implikandid
;
// kleepimata implikandid
typedef
struct
{
char
kood
[
5
];
int
indeks
;
}
implikandid2
;
}
implikandid2
;
// 1.kleepimise tulemus
typedef
struct
{
char
kood
[
5
];
int
indeks
;
}
implikandid3
;
// 2.kleepimise tulemus
// Kasutaja sisestatu kontrollimine:
int
kontroll
(
char
a
[
16
]){
int
i
;
for
(
i
=
0
;
i
<
strlen
(
a
);
i
++
){
...
...
@@ -26,6 +34,8 @@ int kontroll(char a[16]){
return
0
;
}
// Kasutaja loogikaväärtuste sisestus:
int
sisestus
(
const
char
tekst
[
40
],
char
a
[
16
],
char
b
[
16
],
char
c
[
16
],
char
d
[
16
]){
int
i
;
printf
(
"%s"
,
tekst
);
...
...
@@ -99,24 +109,10 @@ int sisestus(const char tekst[40], char a[16], char b[16], char c[16], char d[16
return
0
;
}
void
info
(
char
a
[
16
],
char
b
[
16
],
char
c
[
16
],
char
d
[
16
]){
char
f0
;
char
f1
;
char
f2
;
char
f3
;
char
f4
;
char
f5
;
char
f6
;
char
f7
;
char
f8
;
char
f9
;
char
fA
;
char
fB
;
char
fC
;
char
fD
;
char
fE
;
char
fF
;
// Reed-Mulleri polünoomi kujul oleva loogikafunktsiooni kohta info andmine:
void
info
(
char
a
[
16
],
char
b
[
16
],
char
c
[
16
],
char
d
[
16
],
char
f0
,
char
f1
,
char
f2
,
char
f3
,
char
f4
,
char
f5
,
char
f6
,
char
f7
,
char
f8
,
char
f9
,
char
fA
,
char
fB
,
char
fC
,
char
fD
,
char
fE
,
char
fF
){
//char f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, fA, fB, fC, fD, fE, fF;
if
(
strlen
(
a
)
>=
16
){
f0
=
a
[
0
];
...
...
@@ -226,19 +222,17 @@ void info(char a[16], char b[16], char c[16], char d[16]){
}
else
{
printf
(
"ilma [x4] PAARIS
\n
"
);
}
}
// info funktsiooni lõpp siin
}
// Kontuuride leidmine
void
kontuur
(
char
f0
,
char
f1
,
char
f2
,
char
f3
,
char
f4
,
char
f5
,
char
f6
,
char
f7
,
char
f8
,
char
f9
,
char
fA
,
char
fB
,
char
fC
,
char
fD
,
char
fE
,
char
fF
){
implikandid
implikant
[
16
];
int
i
=
0
;
int
arv
=
0
;
int
j
,
k
;
/*char array[16] = {f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, fA, fB, fC, fD, fE, fF};
for(i = 0; i<16; i++){
if(array[i] == '1'){
arv++;
}
}*/
if
(
f0
==
'1'
){
strcpy
(
implikant
[
i
].
kood
,
"0000"
);
...
...
@@ -336,69 +330,151 @@ void info(char a[16], char b[16], char c[16], char d[16]){
implikant
[
i
].
indeks
=
4
;
i
++
;
}
printf
(
"
\n
"
);
printf
(
"%s
\n
"
,
implikant
[
0
].
kood
);
printf
(
"Indeksid:"
);
// indeksite test
for
(
j
=
0
;
j
<
i
;
j
++
){
printf
(
"%d
\n
"
,
implikant
[
j
].
indeks
);
}
int
eri
=
0
;
implikandid2
implikant2
[
16
];
int
q
;
char
arr
[
5
];
int
t
=
0
;
for
(
j
=
0
;
j
<
i
;
j
++
){
for
(
k
=
0
;
k
<
i
;
k
++
){
if
(
implikant
[
i
].
indeks
-
implikant
[
k
].
indeks
==
1
||
implikant
[
i
].
indeks
-
implikant
[
k
].
indeks
==
-
1
){
if
(
implikant
[
i
].
kood
[
0
]
!=
implikant
[
k
].
kood
[
0
]){
for
(
j
=
0
;
j
<
i
;
j
++
){
for
(
k
=
0
;
k
<
i
;
k
++
){
if
(
implikant
[
j
].
indeks
-
implikant
[
k
].
indeks
==
1
||
implikant
[
j
].
indeks
-
implikant
[
k
].
indeks
==
-
1
){
if
(
implikant
[
j
].
kood
[
0
]
!=
implikant
[
k
].
kood
[
0
]){
eri
++
;
q
=
0
;
}
if
(
implikant
[
i
].
kood
[
1
]
!=
implikant
[
k
].
kood
[
1
]){
if
(
implikant
[
j
].
kood
[
1
]
!=
implikant
[
k
].
kood
[
1
]){
eri
++
;
q
=
1
;
}
if
(
implikant
[
i
].
kood
[
2
]
!=
implikant
[
k
].
kood
[
2
]){
if
(
implikant
[
j
].
kood
[
2
]
!=
implikant
[
k
].
kood
[
2
]){
eri
++
;
q
=
2
;
}
if
(
implikant
[
i
].
kood
[
3
]
!=
implikant
[
k
].
kood
[
3
]){
if
(
implikant
[
j
].
kood
[
3
]
!=
implikant
[
k
].
kood
[
3
]){
eri
++
;
q
=
3
;
}
if
(
eri
==
1
){
strcpy
(
implikant2
[
0
].
kood
,
implikant
[
i
].
kood
);
printf
(
"%s"
,
implikant2
[
0
].
kood
);
/*printf("\n");
arr[0] = '-';
arr[1] = implikant[i].kood[1];
arr[2] = implikant[i].kood[2];
arr[3] = implikant[i].kood[3];
printf("%s", arr);*/
/*if(q == 0){
implikant2[t].kood[0] = '-';
if
(
eri
==
1
){
if
(
q
==
0
){
strcpy
(
implikant2
[
t
].
kood
,
implikant
[
j
].
kood
);
// des, source
implikant2
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant2
[
t
].
kood
);
}
if
(
q
==
1
){
strcpy
(
implikant2
[
t
].
kood
,
implikant
[
j
].
kood
);
implikant2
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant2
[
t
].
kood
);
}
if
(
q
==
2
){
strcpy
(
implikant2
[
t
].
kood
,
implikant
[
j
].
kood
);
implikant2
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant2
[
t
].
kood
);
}
if
(
q
==
3
){
strcpy
(
implikant2
[
t
].
kood
,
implikant
[
j
].
kood
);
implikant2
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant2
[
t
].
kood
);
}
t++;*/
t
++
;
}
eri
=
0
;
}
}
}
}
int
uhtedeArv
;
for
(
j
=
0
;
j
<
t
;
j
++
){
uhtedeArv
=
0
;
if
(
implikant2
[
j
].
kood
[
0
]
==
'1'
){
uhtedeArv
++
;
}
if
(
implikant2
[
j
].
kood
[
1
]
==
'1'
){
uhtedeArv
++
;
}
if
(
implikant2
[
j
].
kood
[
2
]
==
'2'
){
uhtedeArv
++
;
}
if
(
implikant2
[
j
].
kood
[
3
]
==
'3'
){
uhtedeArv
++
;
}
implikant2
[
j
].
indeks
=
uhtedeArv
;
}
printf
(
"
\n
"
);
printf
(
"
\n
"
);
printf
(
"
\n
"
);
implikandid3
implikant3
[
16
];
t
=
0
;
for
(
j
=
0
;
j
<
i
;
j
++
){
for
(
k
=
0
;
k
<
i
;
k
++
){
if
(
implikant2
[
j
].
indeks
-
implikant2
[
k
].
indeks
==
1
||
implikant2
[
j
].
indeks
-
implikant2
[
k
].
indeks
==
-
1
){
if
(
implikant2
[
j
].
kood
[
0
]
!=
implikant2
[
k
].
kood
[
0
]){
eri
++
;
q
=
0
;
}
if
(
implikant2
[
j
].
kood
[
1
]
!=
implikant2
[
k
].
kood
[
1
]){
eri
++
;
q
=
1
;
}
if
(
implikant2
[
j
].
kood
[
2
]
!=
implikant2
[
k
].
kood
[
2
]){
eri
++
;
q
=
2
;
}
if
(
implikant2
[
j
].
kood
[
3
]
!=
implikant2
[
k
].
kood
[
3
]){
eri
++
;
q
=
3
;
}
if
(
eri
==
1
){
if
(
q
==
0
){
strcpy
(
implikant3
[
t
].
kood
,
implikant2
[
j
].
kood
);
// des, source
implikant3
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant3
[
t
].
kood
);
}
if
(
q
==
1
){
strcpy
(
implikant3
[
t
].
kood
,
implikant2
[
j
].
kood
);
implikant3
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant3
[
t
].
kood
);
}
if
(
q
==
2
){
strcpy
(
implikant3
[
t
].
kood
,
implikant2
[
j
].
kood
);
implikant3
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant3
[
t
].
kood
);
}
if
(
q
==
3
){
strcpy
(
implikant3
[
t
].
kood
,
implikant2
[
j
].
kood
);
implikant3
[
t
].
kood
[
q
]
=
'-'
;
printf
(
"%s
\n
"
,
implikant3
[
t
].
kood
);
}
t
++
;
}
eri
=
0
;
}
}
}
}
int
main
(
void
){
char
a
[
16
],
b
[
16
],
c
[
16
],
d
[
16
];
char
f0
,
f1
,
f2
,
f3
,
f4
,
f5
,
f6
,
f7
,
f8
,
f9
,
fA
,
fB
,
fC
,
fD
,
fE
,
fF
;
int
input
;
input
=
sisestus
(
"Sisestage 4x4 Karnaugh kaart voi 16 loogikavaartust:
\n
"
,
a
,
b
,
c
,
d
);
if
(
input
==
1
){
return
1
;
}
info
(
a
,
b
,
c
,
d
);
info
(
a
,
b
,
c
,
d
,
f0
,
f1
,
f2
,
f3
,
f4
,
f5
,
f6
,
f7
,
f8
,
f9
,
fA
,
fB
,
fC
,
fD
,
fE
,
fF
);
kontuur
(
f0
,
f1
,
f2
,
f3
,
f4
,
f5
,
f6
,
f7
,
f8
,
f9
,
fA
,
fB
,
fC
,
fD
,
fE
,
fF
);
return
0
;
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment