Sunteți pe pagina 1din 12

MINISTERUL EDUCAŢIEI CULTURII ȘI CERCETĂRII AL REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI


FACULTATEA CALCULATOARE INFORMATICĂ ŞI MICROELECTRONICĂ

CATEDRA MANAGEMENTUL INFORMAȚIEI

Lucrarea nr. 2 Logica propozițiilor compuse.

Numele :Bacal Irina


Numărul :1
Grupa :MI-191

Nr Sarcina Puncte
1 Structura,
2 Continutul,
3 Exemplul/exemple,
Utilitatea, domeniile de
4
aplicabilitate.
Recomandări dacă
5
studentul le consideră utile.
6 Limba străină la prezentare
7 Aplicaţia în limbajul C
Total

Verificat / Nota : ………………………….

Data : ………………………….

Sarcina I: Determinaţi: este adevărata sau falsă expresia din sarcina Dvs. Prezentaţi un text în
limba română, echivalentul narativ pentru sarcina Dvs.
Varianta I: Este dată expresia:

Construim tabelul adevărurilor:

Tabel 1.1 – ”Tabelul adevărurilor generat pe site-ul https://web.stanford.edu/class/cs103/tools/truth-table-tool/”

I II α III IV VI VII β VIII IX γ δ


A B C ~C A/\B C/\B II /\A A/\~C B/\C III<->IV α ->VII ~A/\C VIII/\B β/\IX δ\/A
~A ~I ~VI ~I\/ γ
0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1
0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1
0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1
0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1
1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1
1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1
1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1
1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1
Tabel 1.2 – ”Tabelul adevărurilor desfășurat”

Concluzie: Expresia este adevărată.


Text narativ exchivalent cu expresia logică:
~(A/\B) \/ ((C/\B/\A) -> ~ ((A/\~C) <-> (B/\C))) /\ (~A/\C/\B) \/ A

A- ”Astăzi este o zi însorită”


B- ”Cerul este senin”
C- ”Azi nu va ploua”
~ - negația ; /\ - conjuncția; \/-disjuncția; -> - implicația; <-> - echivalența; ( ) - , ,

Nu este adevărat că, astăzi este o zi însorită și cerul este senin, sau, dacă, azi nu va ploua și
cerul este senin și astăzi este o zi însorită, atunci este fals că, dacă și numai dacă , astăzi
este o zi însorită și azi nu va ploua, atunci, cerul este senin și azi nu va ploua, și, astăzi nu
este o zi însorită și cerul este senin și azi nu va ploua, sau astăzi este o zi însorită.
Programul în C:
#include<stdio.h>
#include<stdlib.h>

int main()
{
int p[4], q[4], i, si, sau, impl,dexcl;

printf("Fie date variabilele p si r. \n Sa se realizeze urmatoarele operatii


logice:\n- conjunctia(&)\n- disjunctia(+)\n- implicatia(->)\n- disjunctia
exclusiva(w)\n\n");

printf("Dati valori pentru p si q:\n");


for(i=0;i<4;i++){
printf("p[%d]=",i);
scanf("%d",&p[i]);}

for(i=0;i<4;i++){
printf("\tq[%d]=",i);
scanf("%d",&q[i]);}

printf("\nTabelul adevarurilor:\n");
printf("____________________________________\n");
printf("| p | q | p&q | p+q | p->q | p w q |\n");
printf("|___|___|_____|_____|______|_______|\n");

for(i=0;i<4;i++){
if(p[i]==1 && q[i]==1)
si=1;
else si=0;

if(p[i]==1 && q[i]==1 || p[i]==1 && q[i]==0 ||p[i]==0 && q[i]==1 )


sau=1;
else sau=0;

if(p[i]==1 && q[i]==0)


impl=0;
else impl=1;

if(p[i]==1 && q[i]==0 || p[i]==0 && q[i]==1)


dexcl=1;
else dexcl=0;

printf("| %d | %d | %d | %d | %d | %d
|\n",p[i],q[i],si,sau,impl,dexcl);
printf("|___|___|_____|_____|______|_______|\n");
}

}
Schema block a programului:
Rezultatele la consolă:
Afișarea sarcinii la consolă:

Afișarea tabelului de adevăruri


Sarcina II: Determinaţi: care este expresia booleană pentru tabelul adevărurilor prezentat.
Aduceti la o formă mai simpla expresia obținută. Prezentaţi un text în limba romînă,
echivalentul narativ pentru sarcina Dvs.
Varianta I: Construiti expresia logică după tabelul adevarurilor. Aduceți expresia la o formă
mai simplă.
x y F(x,y)
0 0 0
0 1 1
1 0 1
1 1 1

S ≡ (~x /\ y) \/ (x /\ ~y) \/ (x /\ y) – expresia obținută

S ≡ ~x /\ (y \/ y \/ ~y) – legea distributivă

S ≡ ~x /\ (y \/ t) – legea negației

S ≡ ~x /\ t - legea identității

S ≡ ~x

Programul în C:

#include<stdio.h>

#include<stdlib.h>

int main(){

char expr[100];

printf("Scrieti expresia booleana pentru tabelul adevarurilor prezentat mai jos:\n\n");

printf("__________________\n");

printf("| x | y | F(x,y) |\n");

printf("|___|___|________|\n");

printf("| 0 | 0 | 0 |\n");

printf("|___|___|________|\n");

printf("| 0 | 1 | 1 |\n");

printf("|___|___|________|\n");

printf("| 1 | 0 | 1 |\n");
printf("|___|___|________|\n");

printf("| 1 | 1 | 1 |\n");

printf("|___|___|________|\n");

printf("\n! -negatia\n& -conjunctia\n+ - disjunctia\n\nS = ");

gets(expr);}

Afișarea la consolă:

Echivalentul în limba română a expresiei logice:


x- ”Astăzi este duminică”
y – ”Astăzi eu nu mă voi duce la muncă”
(~x /\ y) \/ (x /\ ~y) \/ (x /\ y)
Astăzi nu este duminică și astăzi eu nu mă voi duce la muncă, sau, astăzi este duminică
și eu mă voi duce la muncă, sau, astăzi este duminică și eu nu mă voi duce la lucru.
Schema block a programului:
Sarcina 3: Determinaţi: este valabil sau nu argumentul din sarcina Dvs. Prezentaţi un text,
echivalentul narativ în limba română pentru sarcina Dvs.
3.1. Problema votării
Varianta I: Fie dați 3 alegători: A,B și C. Decizia este aprobată dacă se obține majoritate de
voturi.

Rezolvare:
Construim tabelul adevărurilor, unde cu 0 se va nota votul contra al alegătorilor și cu 1 ,
votul pro al alegătorilor. Decizia aprobată se va nota cu F, respectiv va avea valoare de adevăr
doar atunci cînd se va obține majoritate de voturi.
Deoarece majoritatea de voturi înseamnă un număr de voturi egal cu cel puțin jumătate plus
unu din total, F va avea valoare 1 dacă cel puțin 2 din 3 alegători au votat pro, sau 3 din 3
alegători au votat pro.

Construim tabelul adevărurilor:


A B C F
1 1 1 1
1 1 0 1
1 0 1 1
1 0 0 0
0 1 1 1
0 1 0 0
0 0 1 0
0 0 0 0

Construim expresia booleană:


F≡ (A/\B/\C) \/ (A/\B/\~C) \/ (A/\~B/\C) \/ (~A/\B/\C)

Echivalentul narativ în limba română pentru expresia obținută:


Alegătorul A și B și C votează pro, sau, alegătorul A și B votează pro și alegătorul C
votează contra, sau, alegătorul A și C votează pro și alegătorul B votează contra, sau,
alegătorul A votează contra și alegătorul B și C votează pro.

3.2 Anexa 1: Notaţi următoarele propoziţii compuse, folosind litere pentru a indica
componentele ei simple.

Fie dată următoarea propoziție: ”3 este un număr prim și 4 este un număr compus”
Notăm: P = ”3 este un număr prim”
Q= ”4 este un număr compus”
Atunci propoziţia narativă de mai sus poate fi prezentată după cum urmează: F(P,Q) ≡ P/\Q

P Q F
1 1 1
1 0 0
0 1 0
0 0 0
Programul în C:
#include<stdio.h>
#include<stdlib.h>

int main(){
printf("Este data propozitia:\n");
printf("Fie dati 3 alegatori: A, B si C. Decizia este aprobata daca se
obtine majoritate de voturi.");
printf("\n1-vot pro\n0-vot contra\n\nDecizia este aprobata daca cel
putin 2 alegatori voteaza pro.\n\nTabelul adevarurilor:\n");
printf("___________________\n");
printf("| A | B | C | F |\n");
printf("|-----------------|\n");
printf("| 1 | 1 | 1 | 1 |\n");
printf("|-----------------|\n");
printf("| 1 | 1 | 0 | 1 |\n");
printf("|-----------------|\n");
printf("| 1 | 0 | 1 | 1 |\n");
printf("|-----------------|\n");
printf("| 1 | 0 | 0 | 0 |\n");
printf("|-----------------|\n");
printf("| 0 | 1 | 1 | 1 |\n");
printf("|-----------------|\n");
printf("| 0 | 1 | 0 | 0 |\n");
printf("|-----------------|\n");
printf("| 0 | 0 | 1 | 0 |\n");
printf("|-----------------|\n");
printf("| 0 | 0 | 0 | 0 |\n");
printf("|_________________|\n");

}
Rezultatul la consolă:

Schema bloc:
Concluzii:
În urma elaborării lucrării de laborator nr.2 am învățat mai multe despre elemente de calcul
propoziţional, operaţii logice, evaluarea propoziţiilor compuse, tautologii si contradicţii,
echivalenţă logică, propoziţii condiţionale, formulele de echivalenţă logică sau legile logicii
propoziţiilor compuse.
De asemenea, am învățat să utilizez corect legile logicii propoziţiilor compuse, să utilizez
corect tabelul adevărurilor, să construiesc și să utilizez expresii logice formate din propoziţii
compuse si să le evaluez sensul lor logic, să utilizez algoritmul de identificare a valabilităţii
unui argument, tabelul adevărurilor, şi să verific, este sau nu valabil un argument logic.

S-ar putea să vă placă și