master
Сommit
b616275308
@ -0,0 +1,3 @@
|
|||||||
|
@echo off
|
||||||
|
g++ -o general_program general_program.cpp
|
||||||
|
general_program.exe < input.txt > output_general.txt
|
@ -0,0 +1,9 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
g++ individual_program.cpp -o individual_program.exe
|
||||||
|
|
||||||
|
|
||||||
|
individual_program.exe < input.txt > output_individual.txt
|
||||||
|
|
||||||
|
fc output_individual.txt expected_output.txt
|
||||||
|
pause
|
@ -0,0 +1,2 @@
|
|||||||
|
Number of columns: 2
|
||||||
|
Formula used: Square root formula (sqrt(N))
|
@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <iomanip>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
size_t number_count;
|
||||||
|
cout << "Enter number count: ";
|
||||||
|
cin >> number_count;
|
||||||
|
|
||||||
|
vector<double> numbers(number_count);
|
||||||
|
cout << "Enter numbers:\n";
|
||||||
|
for (size_t i = 0; i < number_count; ++i) {
|
||||||
|
cin >> numbers[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t bin_count;
|
||||||
|
cout << "Enter number of bins: ";
|
||||||
|
cin >> bin_count;
|
||||||
|
|
||||||
|
double min = *min_element(numbers.begin(), numbers.end());
|
||||||
|
double max = *max_element(numbers.begin(), numbers.end());
|
||||||
|
double bin_size = (max - min) / bin_count;
|
||||||
|
|
||||||
|
vector<size_t> bins(bin_count, 0);
|
||||||
|
for (double number : numbers) {
|
||||||
|
size_t bin_index = static_cast<size_t>((number - min) / bin_size);
|
||||||
|
if (bin_index >= bin_count) bin_index = bin_count - 1;
|
||||||
|
bins[bin_index]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t max_bin_count = *max_element(bins.begin(), bins.end());
|
||||||
|
const size_t max_width = 80;
|
||||||
|
double scaling_factor = max_bin_count > max_width ? static_cast<double>(max_width) / max_bin_count : 1.0;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < bin_count; ++i) {
|
||||||
|
cout << bins[i] << "|";
|
||||||
|
size_t scaled_height = static_cast<size_t>(bins[i] * scaling_factor);
|
||||||
|
for (size_t j = 0; j < scaled_height; ++j) {
|
||||||
|
cout << '*';
|
||||||
|
}
|
||||||
|
cout << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int N;
|
||||||
|
cout << "Enter the total number of elements (N): ";
|
||||||
|
cin >> N;
|
||||||
|
|
||||||
|
int columns;
|
||||||
|
string formula_used;
|
||||||
|
|
||||||
|
if (N == 0) {
|
||||||
|
columns = 0;
|
||||||
|
formula_used = "None (N is 0)";
|
||||||
|
} else {
|
||||||
|
double sqrt_value = sqrt(N);
|
||||||
|
|
||||||
|
if (sqrt_value > 25) {
|
||||||
|
columns = 1 + static_cast<int>(log2(N));
|
||||||
|
formula_used = "Sturges' formula (1 + floor(log2(N)))";
|
||||||
|
} else {
|
||||||
|
columns = static_cast<int>(sqrt_value);
|
||||||
|
formula_used = "Square root formula (sqrt(N))";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << "Number of columns: " << columns << endl;
|
||||||
|
cout << "Formula used: " << formula_used << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
7
|
||||||
|
1 2 2 3 3 3 4
|
||||||
|
4
|
@ -0,0 +1,5 @@
|
|||||||
|
Enter number count: Enter numbers:
|
||||||
|
Enter number of bins: 1|*
|
||||||
|
2|**
|
||||||
|
3|***
|
||||||
|
1|*
|
@ -0,0 +1,2 @@
|
|||||||
|
Enter the total number of elements (N): Number of columns: 2
|
||||||
|
Formula used: Square root formula (sqrt(N))
|
@ -0,0 +1,45 @@
|
|||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <cstdint>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void print_in_hex(uint8_t byte) {
|
||||||
|
cout << hex << setw(2) << setfill('0') << static_cast<int>(byte) << " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_in_hex(const void* data, size_t size) {
|
||||||
|
const uint8_t* bytes = static_cast<const uint8_t*>(data);
|
||||||
|
for (size_t i = 0; i < size; ++i) {
|
||||||
|
print_in_hex(bytes[i]);
|
||||||
|
if ((i + 1) % 16 == 0) cout << endl;
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_in_binary(uint8_t byte) {
|
||||||
|
for (int i = 7; i >= 0; --i) cout << ((byte >> i) & 1);
|
||||||
|
cout << " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_in_binary(const void* data, size_t size) {
|
||||||
|
const uint8_t* bytes = static_cast<const uint8_t*>(data);
|
||||||
|
for (size_t i = 0; i < size; ++i) {
|
||||||
|
print_in_binary(bytes[i]);
|
||||||
|
if ((i + 1) % 4 == 0) cout << endl;
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
uint8_t data[] = {0xDE, 0xAD, 0xBE, 0xEF, 0x12, 0x34, 0x56, 0x78};
|
||||||
|
size_t size = sizeof(data);
|
||||||
|
|
||||||
|
cout << "Hexadecimal representation:" << endl;
|
||||||
|
print_in_hex(data, size);
|
||||||
|
|
||||||
|
cout << "Binary representation:" << endl;
|
||||||
|
print_in_binary(data, size);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <bitset>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
uint16_t operand1, operand2;
|
||||||
|
char operation;
|
||||||
|
|
||||||
|
cout << "Enter first operand: ";
|
||||||
|
cin >> operand1;
|
||||||
|
cout << "Enter operation (&, |, ^): ";
|
||||||
|
cin >> operation;
|
||||||
|
cout << "Enter second operand: ";
|
||||||
|
cin >> operand2;
|
||||||
|
|
||||||
|
uint16_t result = 0;
|
||||||
|
if (operation == '&') result = operand1 & operand2;
|
||||||
|
else if (operation == '|') result = operand1 | operand2;
|
||||||
|
else if (operation == '^') result = operand1 ^ operand2;
|
||||||
|
else {
|
||||||
|
cout << "Invalid operation" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << "Hexadecimal: " << hex << setw(4) << setfill('0') << result << endl;
|
||||||
|
cout << "Binary: " << bitset<16>(result) << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <cstring>
|
||||||
|
#include <cstdint>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
struct Student {
|
||||||
|
char name[17];
|
||||||
|
uint16_t enrollment_year;
|
||||||
|
float gpa;
|
||||||
|
uint8_t gender : 1; // 0 = female, 1 = male
|
||||||
|
uint8_t courses_completed;
|
||||||
|
Student* group_leader;
|
||||||
|
};
|
||||||
|
|
||||||
|
void print_memory_info(const Student& student) {
|
||||||
|
cout << "Name address: " << &student.name << ", size: " << sizeof(student.name) << endl;
|
||||||
|
cout << "Year address: " << &student.enrollment_year << ", size: " << sizeof(student.enrollment_year) << endl;
|
||||||
|
cout << "GPA address: " << &student.gpa << ", size: " << sizeof(student.gpa) << endl;
|
||||||
|
cout << "Gender address: " << &student.gender << ", size: 1 bit" << endl;
|
||||||
|
cout << "Courses address: " << &student.courses_completed << ", size: " << sizeof(student.courses_completed) << endl;
|
||||||
|
cout << "Leader address: " << &student.group_leader << ", size: " << sizeof(student.group_leader) << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Student students[3] = {
|
||||||
|
{"Alice", 2021, 3.8, 0, 5, nullptr},
|
||||||
|
{"Bob", 2021, 3.5, 1, 4, nullptr},
|
||||||
|
{"Charlie", 2020, 3.9, 1, 6, &students[0]}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (size_t i = 0; i < 3; ++i) {
|
||||||
|
cout << "Student " << i + 1 << " memory info:" << endl;
|
||||||
|
print_memory_info(students[i]);
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <cstring>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
bool is_valid_filename(const char* filename) {
|
||||||
|
const char* invalid_chars = "*<>?|";
|
||||||
|
if (strpbrk(filename, invalid_chars)) return false;
|
||||||
|
|
||||||
|
const char* colon = strchr(filename, ':');
|
||||||
|
if (colon && (colon != filename + 1 || !isalpha(filename[0]) || colon[1] != '\n')) return false;
|
||||||
|
|
||||||
|
const char* ext = strrchr(filename, '.');
|
||||||
|
if (ext && strcasecmp(ext, ".txt") != 0) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_txt_extension(char* filename) {
|
||||||
|
strcat(filename, ".txt");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
char filename[256];
|
||||||
|
cout << "Enter filename: ";
|
||||||
|
cin >> filename;
|
||||||
|
|
||||||
|
if (!is_valid_filename(filename)) {
|
||||||
|
cout << "Invalid filename." << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strrchr(filename, '.')) add_txt_extension(filename);
|
||||||
|
|
||||||
|
ifstream file(filename, ios::binary | ios::ate);
|
||||||
|
if (!file.is_open()) {
|
||||||
|
cout << "Failed to open file." << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
streamsize size = file.tellg();
|
||||||
|
file.seekg(0, ios::beg);
|
||||||
|
|
||||||
|
char* buffer = new char[size];
|
||||||
|
file.read(buffer, size);
|
||||||
|
|
||||||
|
char search[256];
|
||||||
|
cout << "Enter string to search: ";
|
||||||
|
cin >> search;
|
||||||
|
|
||||||
|
size_t count = 0;
|
||||||
|
char* pos = buffer;
|
||||||
|
while ((pos = strstr(pos, search))) {
|
||||||
|
++count;
|
||||||
|
pos += strlen(search);
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << "Occurrences: " << count << endl;
|
||||||
|
|
||||||
|
delete[] buffer;
|
||||||
|
return 0;
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче