Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions Dudarev V A/Task 2/PrintHTML.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#include "stdafx.h"

typedef unsigned char flag;

void PrintHtml(char const* string, int style) {
flag bold = 1;
flag italic = 1;
flag underline = 1;
bool bold_1 = false;
bool italic_1 = false;
bool underline_1 = false;
if (style & bold) {
bold_1 = true;
std::cout << "<B>";
}
style >>= 1;
if (style & italic) {
italic_1 = true;
std::cout << "<I>";
}
style >>= 1;
if (style & underline) {
underline_1 = true;
std::cout << "<U>";
}
std::cout << string;
if (underline_1) {
std::cout << "</U>";
}
if (italic_1) {
std::cout << "</I>";
}
if (bold_1) {
std::cout << "</B>";
}
}

int choose_style() {
flag style = 0;
bool value = false;
std::cout << "Bold(0 - false, 1 - true): ";
std::cin >> value;
if (value) {
style |= 1;
value = false;
}
std::cout << "\nItalic(0 - false, 1 - true): ";
std::cin >> value;
if (value) {
style |= 0x02;
value = false;
}
std::cout << "\nUnderline(0 - false, 1 - true): ";
std::cin >> value;
if (value) {
style |= 0x04;
}
return style;
}

int main(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "RUS");
char* some_string = (char*)malloc(256);
std::cout << "Enter the string: ";
std::cin >> some_string;
flag style = choose_style();

PrintHtml(some_string, style);
return 0;
}
111 changes: 111 additions & 0 deletions Dudarev V A/Task 2/uint_32.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#include "stdafx.h"

enum HorAlign {
left,
center,
right,
justify
};
void PrintBinary(uint32_t flags)
{
uint32_t flag = 0x8000;
while (flag)
{
if (flags & flag)
{
printf("1");
}
else
{
printf("0");
}
flag >>= 1;
}
printf("\n");
}
uint32_t setSetting(bool bold, bool italic, bool underline, HorAlign align_, int size) {
uint32_t result = 0;
if (bold) {
result |= 1;
}
if (italic) {
result |= 0x02;
}
if (underline) {
result |= 0x04;
}
uint32_t align_value = align_ << 3;
result |= align_value;
uint32_t size_value = size << 7;
result |= size_value;
return result;
}
void printSetting(uint32_t result) {
if (result & 1) {
printf("Bold: true.");
}
else {
printf("Bold: false.");
}
if (result & 0x02) {
printf("\nItalic: true.");
}
else {
printf("\nItalic: false.");
}
if (result & 0x04) {
printf("\nUnderline: true.");
}
else {
printf("\nUnderline: false.");
}
uint32_t mask = 0x00000008 | 0x000000010 | 0x00000020 | 0x00000040;
HorAlign align = (HorAlign)((result & mask) >> 3);
mask = 0x0000ff00;;
int8_t size = (int8_t)((result & mask) >> 7);
printf("\nHorAlign: %d\nSize: %d", align, size);
}
void input() {
std::cout << "Bold(0 - false, 1 - true): ";
bool bold;
std::cin >> bold;
std::cout << "Italic(0 - false, 1 - true): ";
bool italic;
std::cin >> italic;
std::cout << "Underline(0 - false, 1 - true): ";
bool underline;
std::cin >> underline;
int align_;
std::cout << "Align(0 - left, 1 - center, 2 - right, 3 - justify): ";
std::cin >> align_;
int size;
std::cout << "Size: ";
std::cin >> size;
uint32_t result;
switch (align_) {
case 0:
result = setSetting(bold, italic, underline, left, size);
case 1:
result = setSetting(bold, italic, underline, right, size);
case 2:
result = setSetting(bold, italic, underline, center, size);
case 3:
result = setSetting(bold, italic, underline, justify, size);
}
std::cout << std::endl;
PrintBinary(result);
std::cout << std::endl;
printSetting(result);
}

int main(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "RUS");
uint32_t result = setSetting(false, true, true, right, 60);
printSetting(result);
std::cout << std::endl;
input();
std::cout << std::endl;
return 0;
}