Лабораторная работа №1

Министерство образования и науки Российской Федерации

Московский авиационный институт

(национальный исследовательский университет)

Неверовская В.А

О-209Б

Организация ЭВМ и систем

Отчет по лабораторным работам

Вариант № 20

 

 


 

Оглавление

1.   ЛАБОРАТОРНАЯ РАБОТА №1. 3

2.   ЛАБОРАТОРНАЯ РАБОТА №2. 8

 

 

 


 



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

Постановка задачи

 

Необходимо разработать программу, которая будет включать в себя набор функций выполняющих базовые логические операции — отрицание, дизъюнкцию, конъюнкцию, сложение по модулю 2. В соответствии с вариантом № 20 языком программирования является Си, типом данных – short. Количество входов – 3.

ЛОЖЬ – четное значение, ИСТИНА – прочие.  

 

Реализация

В соответствии с условиями задачи:

1. выводом является либо истина(1), либо ложь(0);

2. возвращаемым типом данных является short int;

3. в функциях количество формальных параметров – 3;

4. во всех функциях используется алгоритм вычисления свойства четности или нечетности. Исходя из полученного результата происходит дальнейший вывод(см.п.1);

5. для получения лучшего результата используются различные четные и нечетные числа(от 9 до 14), количество тестов увеличено до 8.

 

Исходный код

//LABA#1
//Неверовская В.А; Группа 6О-209Б; Вариант №20
//Тип логических данных - short. Ложь-четное значение, истина - прочие значения. Кол-во входов:3.

#include <stdio.h>
short int otrizanie(short int key);
short int diz(short int key, short int key2, short int key3);
short int con(short int key, short int key2, short int key3);
short int slozh(short int key, short int key2, short int key3);
int main(){
short int a=9,b=10,c=11,d=12,e=13,f=14;
short int m;
//Создание функции отрицания
short int otrizanie(short int key){
if ((key%2)!=0){
return 0;}
else{
return 1;}
}
//Создание функции дизъюнкции
short int diz(short int key,short int key2,short int key3){
short int s;
s=0;
if ((key%2)!=0){
s=1;
goto exit1;}
else{
s=0;}

if ((key2%2)!=0){
s=1;
goto exit1;}
else{
s=0;}

if ((key3%2)!=0){
s=1;
goto exit1;}
else{
s=0;}
exit1:
return s; }
// Создание функции конъюнкции
short int con(short int key,short int key2,short int key3){
short int s;
s=0;
if ((key%2)!=0){
s=1;}
else{
s=0;
goto exit1;}

if ((key2%2)!=0){
s=1;
}
else{
s=0;
goto exit1;}

if ((key3%2)!=0){
s=1;
}
else{
s=0;
goto exit1;}
exit1:
return s; }

 

//Создание функции сложения по модулю два
short int slozh(short int key, short int key2, short int key3){
int d=0;
if (key%2!=0){
d++;}

if (key2%2!=0){
d++;}

if (key3%2!=0){
d++;}

if ((d%2)!=0){
return 1;}
else{
return 0;} }

printf("******************\n");
//Отрицание
printf("ОТРИЦАНИЕ\n");
m = otrizanie(a);
printf("Функция отрицания от a=9: %hi \n",m);
m= otrizanie(b);
printf("Функция отрицания от b=10: %hi \n",m);


printf("******************\n");
//Дизъюнкция


m= diz(b,d,f);
printf("Дизъюнкция от b=10,d=12,f=14: %hi \n",m);

m= diz(b,d,a);
printf("Дизъюнкция от b=10,d=12,a=9: %hi \n",m);

m= diz(b,a,d);
printf("Дизъюнкция от b=10,a=9,d=12: %hi \n",m);

m= diz(a,b,d);
printf("Дизъюнкция от a=9,b=10,d=12: %hi \n",m);

m= diz(b,a,c);
printf("Дизъюнкция от b=10,a=9,c=11: %hi \n",m);

m= diz(a,b,c);
printf("Дизъюнкция от a=9,b=10,c=11: %hi \n",m);


m= diz(a,c,b);
printf("Дизъюнкция от a=9,c=11,b=10: %hi \n",m);

m= diz(a,c,e);
printf("Дизъюнкция от a=9,c=11,e=13: %hi \n",m);

printf("******************\n");
m= con(b,d,f);
printf("Коньюкция от b=10,d=12,f=14: %hi \n",m);

m= con(b,d,a);
printf("Коньюкция b=10,d=12,a=9: %hi \n",m);

m= con(b,a,d);
printf("Коньюкция от b=10,a=9,d=12: %hi \n",m);

m= con(a,b,d);
printf("Коньюкция от a=9,d=12,d=12: %hi \n",m);

m= con(b,a,c);
printf("Коньюкция от b=10,a=9,c=11: %hi \n",m);

m= con(a,b,c);
printf("Коньюкция от a=9,b=10,c=11: %hi \n",m);

m= con(a,c,b);
printf("Коньюкция от a=9,c=11,b=10: %hi \n",m);

m= con(a,c,e);
printf("Коньюкция от a=9,c=11,e=13: %hi \n",m);


printf("******************\n");
//Сложение по модулю два
m= slozh(b,d,f);
printf("Сложение по модулю два от b=10,d=12,f=14: %hi \n",m);

m= slozh(b,d,a);
printf("Сложение по модулю два от b=10,d=12,a=9: %hi \n",m);

m= slozh(b,a,d);
printf("Сложение по модулю два от b=10,a=9,d=12: %hi \n",m);

m= slozh(a,b,d);
printf("Сложение по модулю два от a=9,b=10,d=12: %hi \n",m);

m= slozh(b,a,c);
printf("Сложение по модулю два от b=10,a=9,c=11: %hi \n",m);

m= slozh(a,b,c);
printf("Сложение по модулю два от a=9,b=10,c=11: %hi \n",m);

m= slozh(a,c,b);
printf("Сложение по модулю два от a=9,c=11,b=10: %hi \n",m);

m= slozh(a,c,e);
printf("Сложение по модулю два от a=9,c=11,e=13: %hi \n",m);

printf("******************\n");
}

 

 


 

Тестирование

Выводы

В соответствии условиям задачи были разработаны наборы функций, вычисляющие базовые логические операции. Результатом всех операций были либо истина, либо ложь(по причине количества вхождений и логической операции количество выходных параметров изменялось от 2 до 8).













































































































Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: