From 6aac203481ad2bcc9eb2769956870874d561646d Mon Sep 17 00:00:00 2001 From: FokinSA Date: Sun, 5 Jan 2025 11:11:06 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Задание 3.cpp | 59 +++++++++++++++++ Задание 4.cpp | 72 +++++++++++++++++++++ Контрольные вопросы.docx | Bin 0 -> 22585 bytes задание 1.cpp | 49 ++++++++++++++ задание 2.cpp | 43 ++++++++++++ 5 files changed, 223 insertions(+) create mode 100644 Задание 3.cpp create mode 100644 Задание 4.cpp create mode 100644 Контрольные вопросы.docx create mode 100644 задание 1.cpp create mode 100644 задание 2.cpp diff --git a/Задание 3.cpp b/Задание 3.cpp new file mode 100644 index 0000000..cccf397 --- /dev/null +++ b/Задание 3.cpp @@ -0,0 +1,59 @@ +#include +#include +#include +#include + +struct Student { + char name[17]; + uint16_t year; + float gpa; + unsigned gender : 1; + uint8_t courses; + Student* leader; +}; + +void printStudentInfo(const Student &student) { + std::cout << ": " << student.name << std::endl; + std::cout << " : " << student.year << std::endl; + std::cout << " : " << student.gpa << std::endl; + std::cout << ": " << (student.gender ? "" : "") << std::endl; + std::cout << " : " << static_cast(student.courses) << std::endl; + std::cout << " : " << student.leader << std::endl; +} + +void printMemoryLayout(const Student &student) { + std::cout << " : " << &student << std::endl; + std::cout << " : " << offsetof(Student, name) << ", : " << sizeof(student.name) << std::endl; + std::cout << " : " << offsetof(Student, year) << ", : " << sizeof(student.year) << std::endl; + std::cout << " : " << offsetof(Student, gpa) << ", : " << sizeof(student.gpa) << std::endl; + // offsetof gender + // std::cout << " : " << offsetof(Student, gender) << ", : 1 " << std::endl; + std::cout << ": 1 ( offset-of)" << std::endl; + std::cout << " : " << offsetof(Student, courses) << ", : " << sizeof(student.courses) << std::endl; + std::cout << " : " << offsetof(Student, leader) << ", : " << sizeof(student.leader) << std::endl; + + std::cout << " : "; + const unsigned char* bytes = reinterpret_cast(&student); + for (size_t i = 0; i < sizeof(Student); ++i) { + std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast(bytes[i]) << " "; + } + std::cout << std::dec << std::endl; +} + +int main() { + Student student1 = {"Alice", 2021, 3.8, 0, 5, nullptr}; + Student student2 = {"Bob", 2021, 3.5, 1, 6, &student1}; + Student starosta = {"Charlie", 2020, 4.0, 1, 8, nullptr}; + + Student students[] = {student1, student2, starosta}; + + std::cout << " : " << &students << ", : " << sizeof(students) << std::endl; + + for (size_t i = 0; i < 3; ++i) { + std::cout << "\n--- " << i + 1 << " ---" << std::endl; + printStudentInfo(students[i]); + printMemoryLayout(students[i]); + } + + return 0; +} diff --git a/Задание 4.cpp b/Задание 4.cpp new file mode 100644 index 0000000..903f377 --- /dev/null +++ b/Задание 4.cpp @@ -0,0 +1,72 @@ +#include +#include +#include +#include + +bool isValidFilename(const char* filename) { + const char* invalidChars = "*\"<>?|"; + if (strpbrk(filename, invalidChars)) return false; + + char* colon = strchr(filename, ':'); + if (colon) { + if (colon != filename + 1 || !isalpha(filename[0]) || colon[1] != '\\') return false; + } + + const char* extension = strrchr(filename, '.'); + if (extension) { + char ext[5]; + strncpy(ext, extension, 4); + ext[4] = '\0'; + for (char& c : ext) c = tolower(c); + if (strncmp(ext, ".txt", 4) != 0) return false; + } + return true; +} + +int main() { + char filename[256]; + std::cout << " : "; + std::cin.getline(filename, 256); + + if (!isValidFilename(filename)) { + std::cerr << " ." << std::endl; + return 1; + } + + if (!strrchr(filename, '.')) { + strcat(filename, ".txt"); + } + + std::ifstream file(filename, std::ios::binary); + if (!file) { + std::cerr << " ." << std::endl; + return 1; + } + + file.seekg(0, std::ios::end); + std::streamsize fileSize = file.tellg(); + file.seekg(0, std::ios::beg); + + char* buffer = new char[fileSize + 1]; + file.read(buffer, fileSize); + buffer[fileSize] = '\0'; + file.close(); + + char searchString[256]; + std::cout << " : "; + std::cin.getline(searchString, 256); + + size_t searchLength = strlen(searchString); + size_t count = 0; + char* position = buffer; + + while ((position = strstr(position, searchString)) != nullptr) { + ++count; + position += searchLength; + } + + std::cout << " : " << count << std::endl; + + delete[] buffer; + return 0; +} diff --git a/Контрольные вопросы.docx b/Контрольные вопросы.docx new file mode 100644 index 0000000000000000000000000000000000000000..b4a6ed0883e9856d42a892eb0e7f7f4ce87258fd GIT binary patch literal 22585 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 l`2eKw!#4LI+*9WOe9r=FsZs*!1p +#include + +void print_in_hex(uint8_t byte) { + std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast(byte) << " "; +} + +void print_in_hex(const void* data, size_t size) { + const uint8_t* bytes = static_cast(data); + for (size_t i = 0; i < size; ++i) { + print_in_hex(bytes[i]); + if ((i + 1) % 16 == 0) std::cout << std::endl; + } + std::cout << std::endl; +} + +void print_in_binary(uint8_t byte) { + for (int i = 7; i >= 0; --i) { + std::cout << ((byte >> i) & 1); + } + std::cout << " "; +} + +void print_in_binary(const void* data, size_t size) { + const uint8_t* bytes = static_cast(data); + for (size_t i = 0; i < size; ++i) { + print_in_binary(bytes[i]); + if ((i + 1) % 4 == 0) std::cout << std::endl; + } + std::cout << std::endl; +} + +int main() { + uint8_t byte = 0b10101010; + uint8_t data[] = {0b00000001, 0b00000010, 0b00000011, 0b00000100, + 0b00000101, 0b00000110, 0b00000111, 0b00001000, + 0b00001001, 0b00001010, 0b00001011, 0b00001100, + 0b00001101, 0b00001110, 0b00001111, 0b00010000}; + + print_in_hex(byte); + std::cout << std::endl; + print_in_hex(data, sizeof(data)); + + print_in_binary(byte); + std::cout << std::endl; + print_in_binary(data, sizeof(data)); + + return 0; +} diff --git a/задание 2.cpp b/задание 2.cpp new file mode 100644 index 0000000..41c008a --- /dev/null +++ b/задание 2.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +int main() { + uint16_t operand1, operand2; + char operation; + + std::cout << " (0-65535): "; + std::cin >> operand1; + + std::cout << " (&, |, ^): "; + std::cin >> operation; + + std::cout << " (0-65535): "; + std::cin >> operand2; + + uint16_t result; + + switch (operation) { + case '&': + result = operand1 & operand2; + break; + case '|': + result = operand1 | operand2; + break; + case '^': + result = operand1 ^ operand2; + break; + default: + std::cerr << ": !" << std::endl; + return 1; + } + + std::cout << " : 0x" + << std::hex << std::uppercase << result << std::endl; + + std::cout << " : " + << std::bitset<16>(result) << std::endl; + + return 0; +}