English
English
Slovensky
Slovensky
Èesky
Èesky
©ari¹sky
©ari¹sky
 
Kategorija: Programy zos Pascalu (KMP)

Zrobil: Ján Benkoviè
web: www.tbteacher.host.sk

Program: Karnaf.pas
Subor exe: Karnaf.exe
Výpoèet funkcie logických obvodov pomocou karnafovej mapy.
Kuklo ¹e: 480x


{ KARNAF.PAS                             Copyright (c) Jan Benkovic }
{ Vypocet funkcie logickych obvodov pomocou karnafovej mapy.        }
{                                                                   }
{ Datum:18.10.2001                             http://www.trsek.com }
 
uses crt;
var
 karnafova_mapa : array[1..2,1..2] of byte;
 cislo : byte;
 jednotka:byte;
 x,y : byte;
 
begin
 clrscr;
 jednotka:=0;
 Writeln('Zadavaj cisla do mapy');
 for x := 1 to 2 do
  for y := 1 to 2 do
   begin
    repeat
     Write('X : ',x,' Y : ',y,' : ');
     Readln(cislo);
    until (cislo=1) or (cislo=0);
    if cislo=1 then inc(jednotka);
    karnafova_mapa[x,y]:=cislo;
   end;
 Writeln('Dakujem, pokracujte lubovolnou klavesou.');
 readkey;
 Writeln;
 Writeln;
 Writeln;
 Writeln('Karnafova mapa :');
 Writeln;
 Writeln;
 Writeln('                A    ');
 Writeln('    ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿');
 Writeln('    ³       ³       ³');
 Writeln('    ³   ',karnafova_mapa[1,2],'   ³   ',karnafova_mapa[2,2],'   ³');
 Writeln('    ³       ³       ³');
 Writeln('    ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´');
 Writeln('    ³       ³       ³');
 Writeln('  B ³   ',karnafova_mapa[1,1],'   ³   ',karnafova_mapa[2,1],'   ³');
 Writeln('    ³       ³       ³');
 Writeln('    ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ');
 Writeln;
 if jednotka=0 then Writeln('Vysledna funkcia je : 0');
 if jednotka=1 then
  begin
   if karnafova_mapa[1,1]=1 then Writeln('Vysledna funkcia je : An*B');
   if karnafova_mapa[1,2]=1 then Writeln('Vysledna funkcia je : An*Bn');
   if karnafova_mapa[2,2]=1 then Writeln('Vysledna funkcia je : A*Bn');
   if karnafova_mapa[2,1]=1 then Writeln('Vysledna funkcia je : A*B');
  end;
 if jednotka=2 then
  begin
   if (karnafova_mapa[1,1]=1)and(karnafova_mapa[2,1]=1) then Writeln('Vysledna funkcia je : B');
   if (karnafova_mapa[1,2]=1)and(karnafova_mapa[2,2]=1) then Writeln('Vysledna funkcia je : Bn');
   if (karnafova_mapa[2,2]=1)and(karnafova_mapa[2,1]=1) then Writeln('Vysledna funkcia je : A');
   if (karnafova_mapa[1,2]=1)and(karnafova_mapa[1,1]=1) then Writeln('Vysledna funkcia je : An');
   if (karnafova_mapa[1,2]=1)and(karnafova_mapa[2,1]=1) then Writeln('Vysledna funkcia je : An*Bn + A*B');
   if (karnafova_mapa[2,2]=1)and(karnafova_mapa[1,1]=1) then Writeln('Vysledna funkcia je : A*Bn + An*B');
  end;
 if jednotka=3 then
  begin
   if (karnafova_mapa[1,2]=1)and(karnafova_mapa[1,1]=1)and(karnafova_mapa[2,1]=1) then Writeln('Vysledna funkcia je : An+B');
   if (karnafova_mapa[1,2]=1)and(karnafova_mapa[2,2]=1)and(karnafova_mapa[2,1]=1) then Writeln('Vysledna funkcia je : A+Bn');
   if (karnafova_mapa[2,2]=1)and(karnafova_mapa[2,1]=1)and(karnafova_mapa[1,1]=1) then Writeln('Vysledna funkcia je : A+B');
   if (karnafova_mapa[1,1]=1)and(karnafova_mapa[1,2]=1)and(karnafova_mapa[2,2]=1) then Writeln('Vysledna funkcia je : An+Bn');
  end;
 if jednotka=4 then Writeln('Vysledna funkcia je : 1');
 readkey;
end.
 

[Naj be¾i] [Ulo¾] [Ciskaj] [Naj idze meilom]