Exercise 5 draft
Added Exercise 5 but incomplete
This commit is contained in:
63
Informatik_I/Exercise_5/Task_4/run_length.cpp
Normal file
63
Informatik_I/Exercise_5/Task_4/run_length.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "run_length.h"
|
||||
|
||||
void encode() {
|
||||
int i;
|
||||
int c;
|
||||
int count;
|
||||
std::cin >> i;
|
||||
std::cout << 1 << " ";
|
||||
while (i != -1) {
|
||||
count = 0;
|
||||
c = i;
|
||||
while (i == c && i >= 0 && i <= 255) {
|
||||
++count;
|
||||
std::cin >> i;
|
||||
if (count == 255) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i < -1 || i > 255) {
|
||||
if (count == 0) {
|
||||
std::cout << "error";
|
||||
return;
|
||||
} else {
|
||||
std::cout << count << " ";
|
||||
std::cout << c << " ";
|
||||
std::cout << "error";
|
||||
return;
|
||||
}
|
||||
}
|
||||
std::cout << count << " ";
|
||||
std::cout << c << " ";
|
||||
}
|
||||
std::cout << -1;
|
||||
}
|
||||
|
||||
void decode() {
|
||||
int i;
|
||||
int count;
|
||||
std::cin >> count;
|
||||
std::cin >> i;
|
||||
std::cout << 0 << " ";
|
||||
while (count != -1) {
|
||||
if (i < -1 || i > 255) {
|
||||
std::cout << "error";
|
||||
return;
|
||||
}
|
||||
if (count < -1 || count > 255) {
|
||||
std::cout << "error";
|
||||
return;
|
||||
}
|
||||
for (int j = 0; j < count; ++j) {
|
||||
std::cout << i << " ";
|
||||
}
|
||||
std::cin >> count;
|
||||
if (count != -1)
|
||||
std::cin >> i;
|
||||
if (i == -1) {
|
||||
std::cout << "error";
|
||||
return;
|
||||
}
|
||||
}
|
||||
std::cout << -1;
|
||||
}
|
Reference in New Issue
Block a user