Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Lab1_2013_2014.pdf
Скачиваний:
20
Добавлен:
13.04.2015
Размер:
195.35 Кб
Скачать

Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.

Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.

Приложение Г

Пример решения задачи сложения 2-х целых чисел «в столбец»

Задача: Реализовать операцию сложения 2-х целых чисел а и b по правилу сложения в «столбец», организовать ввод-вывод данных в двоичном и десятичном представлении на экран монитора.

//подключаемые файлы с прототипами функций

#include <stdio.h>// ввода-вывода #include <string.h>//работы со строками

#include <windows.h> //WinAPI

//прототипы функций void ChangeOut( char *); void BinOut(unsigned char);

unsigned char BinAdd (unsigned char, unsigned char); //глобальные переменные

unsigned char a,b,sum; void main ()

{ char * strstr="Сложение 2-х чисел а и b в столбец.";

ChangeOut(strstr);

printf("unsigned char a,b, 0<=a,b,a+b<=255 \n\n"); printf("Enter a: ");

scanf("%d",&a);

BinOut(a); printf("Enter b: ");

scanf("%d",&b);

BinOut(b); sum=BinAdd (a,b);

printf("Decimal presentation a+b=%d\n",sum); BinOut(sum);

printf("Decimal presentation\n a=%d,b=%d,a+b=%d\n", a,b,sum); system( "pause" );

}

//вывод двоичного представления десятичного числа х void BinOut(unsigned char x)

{int i;

printf(" Binary presentation: "); for (i=0;i<8;i++){

if (x & 0x80) putchar ('1'); else putchar('0');

x=x<<1;

}

putchar('\n');

}

// вычисление суммы двух чисел “в столбец” unsigned char BinAdd(unsigned char x, unsigned char y)

11

Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.

Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.

{int i;

unsigned char mem=0, rez=0; for(i=0;i<8;i++) {

rez>>=1;

if (((x>>i)&1)^((y>>i)&1)) {if (!(mem&1)) rez|=0x80;}

else if ((x>>i)&1) if (mem) {mem=1;rez|=0x80;} else mem=1;

else

if (mem) {mem=0;rez|=0x80;} }

return rez; }

// отображение русского текста void ChangeOut( char * str)

{char * lpsz = new char[strlen(str)]; strcpy(lpsz, str);

//функция используется для преобразования кодировки (прототип доступен из

//windows.h)

CharToOem(lpsz,lpsz);

printf("%s\n",lpsz);

}

Рисунок 1 Листинг программы

Сложение 2-х чисел а и b в столбец. unsigned char a,b, 0<=a,b,a+b<=255 Enter a: 33

Binary presentation: 00100001 Enter b: 67

Binary presentation: 01000011 Decimal presentation a+b=100 Binary presentation: 01100100 Decimal presentation a=33,b=67,a+b=100

Press any key to continue

Рисунок 2 Отображение работы программы на экране монитора

Примечание. При работе с проектами в Visual C++ необходимо учитывать настройки проекта по умолчанию и изменять их при необходимости (см. пункт меню Project->…Properties (Alt+F7)->Configuration Properties->C/C++). Например,

при компиляции программы может быть установлен менее жесткий контроль за стилистическими ошибками (см. Project->…Properties (Alt+F7)->Configuration Properties->C/C++->Warning Level->Level3(/W3) )

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]