07_STD_MP: Fehler bei komplett unterschiedlichen Strings behoben, neuen beim Zählen gleicher Zeichen gefunden
This commit is contained in:
parent
cb3cb443cd
commit
f7257a2cc8
|
@ -1,6 +1,8 @@
|
||||||
#include <stdio.h> /* file main_mp2_FLOW_a.cpp */
|
#include <stdio.h> /* file main_mp2_FLOW_a.cpp */
|
||||||
#include "../../helpers/AnsiConsole.h"
|
#include "../../helpers/AnsiConsole.h"
|
||||||
|
|
||||||
|
//TODO: verstehen
|
||||||
|
|
||||||
AnsiConsole console; int firstLine; int currentTick; Colors currentColor;
|
AnsiConsole console; int firstLine; int currentTick; Colors currentColor;
|
||||||
#define INITPRINT(label) {firstLine=__LINE__;console.printText(2*currentTick,0,label,Colors::BLACK);}
|
#define INITPRINT(label) {firstLine=__LINE__;console.printText(2*currentTick,0,label,Colors::BLACK);}
|
||||||
#define PRINT printLineNumber(__LINE__)
|
#define PRINT printLineNumber(__LINE__)
|
||||||
|
@ -44,9 +46,6 @@ void test() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void start_Sequence(void){
|
void start_Sequence(void){
|
||||||
INITPRINT("Sequence");
|
INITPRINT("Sequence");
|
||||||
PRINT;
|
PRINT;
|
||||||
|
|
|
@ -1,41 +1,49 @@
|
||||||
#include <stdio.h> /* file main_mp2_FLOW_a.cpp */
|
#include <stdio.h> /* file main_mp2_FLOW_a.cpp */
|
||||||
#include "../../helpers/AnsiConsole.h"
|
#include "../../helpers/AnsiConsole.h"
|
||||||
|
|
||||||
AnsiConsole console; int firstLine; int currentTick; Colors currentColor;
|
AnsiConsole console;
|
||||||
|
int firstLine;
|
||||||
|
int currentTick;
|
||||||
|
Colors currentColor;
|
||||||
#define INITPRINT(label) {firstLine=__LINE__;console.printText(2*currentTick,0,label,Colors::BLACK);}
|
#define INITPRINT(label) {firstLine=__LINE__;console.printText(2*currentTick,0,label,Colors::BLACK);}
|
||||||
#define PRINT printLineNumber(__LINE__)
|
#define PRINT printLineNumber(__LINE__)
|
||||||
|
|
||||||
void printLineNumber(int lineNumber);
|
void printLineNumber(int lineNumber);
|
||||||
|
|
||||||
void help(int i);
|
void help(int i);
|
||||||
|
|
||||||
void help2();
|
void help2();
|
||||||
|
|
||||||
void recurse2(int i, int rounds);
|
void recurse2(int i, int rounds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void recurse2(int i, int rounds) {
|
void recurse2(int i, int rounds) {
|
||||||
if (i == 0 && rounds == 2) {
|
if (i == 0 && rounds == 2) {
|
||||||
help2();
|
help2();
|
||||||
}
|
} else if (i == 0 && rounds == 1) {
|
||||||
else if(i == 0 && rounds == 1) {
|
|
||||||
recurse2(3, 0);
|
recurse2(3, 0);
|
||||||
} else { recurse2((i - 1), 2); }
|
} else { recurse2((i - 1), 2); }
|
||||||
|
|
||||||
}
|
}
|
||||||
void help2() {PRINT;
|
|
||||||
|
void help2() {
|
||||||
|
PRINT;
|
||||||
recurse2(3, 1);
|
recurse2(3, 1);
|
||||||
PRINT;
|
PRINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void recurse(int i) {
|
void recurse(int i) {
|
||||||
if(i == 0) {help(2); return;}
|
if (i == 0) {
|
||||||
PRINT;recurse(i-1);
|
help(2);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
void help(int i) {if(i % 2 == 0)PRINT;
|
PRINT;
|
||||||
|
recurse(i - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void help(int i) {
|
||||||
|
if (i % 2 == 0)PRINT;
|
||||||
else {
|
else {
|
||||||
PRINT;
|
PRINT;
|
||||||
recurse(3);
|
recurse(3);
|
||||||
|
@ -43,7 +51,6 @@ void help(int i) {if(i % 2 == 0)PRINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void iterationA(int x) {
|
void iterationA(int x) {
|
||||||
for (int i = 0; i < 3; ++i)
|
for (int i = 0; i < 3; ++i)
|
||||||
PRINT;
|
PRINT;
|
||||||
|
@ -89,7 +96,6 @@ int main(int argc, const char * argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void printLineNumber(int lineNumber) {
|
void printLineNumber(int lineNumber) {
|
||||||
std::string line = std::to_string(lineNumber);
|
std::string line = std::to_string(lineNumber);
|
||||||
currentTick++;
|
currentTick++;
|
||||||
|
|
|
@ -31,6 +31,8 @@ int main() {
|
||||||
unittest_stringSimilarity();
|
unittest_stringSimilarity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: Punkte gleichmässig verteilen
|
||||||
int stringSimilarity(std::string string1, std::string string2) {
|
int stringSimilarity(std::string string1, std::string string2) {
|
||||||
//wenn gleicher String, gleich 100 Punkte geben, spart den Rest
|
//wenn gleicher String, gleich 100 Punkte geben, spart den Rest
|
||||||
if(string1 == string2) return 100;
|
if(string1 == string2) return 100;
|
||||||
|
@ -56,25 +58,27 @@ int stringSimilarity(std::string string1, std::string string2) {
|
||||||
//gleiche Anzahl an verschiedenen Zeichen +10 Punkte
|
//gleiche Anzahl an verschiedenen Zeichen +10 Punkte
|
||||||
if(string1map.size() == string2map.size()) points += 10;
|
if(string1map.size() == string2map.size()) points += 10;
|
||||||
|
|
||||||
|
|
||||||
//auf gleiche Zeichenanzahl testen
|
|
||||||
//gleiche Anzahl an gleichen Zeichen
|
|
||||||
int equalCharCount = 0;
|
int equalCharCount = 0;
|
||||||
int equalChars = 0;
|
int equalChars = 0;
|
||||||
for(std::pair<char, int> count : characterCount) {
|
for(std::pair<char, int> count : characterCount) {
|
||||||
if(string1map[count.first] == string2map[count.second]) equalCharCount++;
|
//BUG: equalCharCount ist nicht immer korrekt
|
||||||
if(string1map[count.first] != 0 && string2map[count.first] != 0) equalChars++;
|
if(string1map[count.first] == string2map[count.first]) equalCharCount++;//gleiche Anzahl an gleichen Zeichen
|
||||||
|
if(string1map[count.first] != 0 && string2map[count.first] != 0) equalChars++;//Zeichen exsistiert in beiden
|
||||||
}
|
}
|
||||||
if(equalChars > 0) {
|
if(equalChars > 0) {
|
||||||
points += characterCount.size() / equalChars * 10;
|
points += characterCount.size() / equalChars * 10;
|
||||||
}
|
}
|
||||||
if(equalCharCount > 0) {
|
if(equalCharCount > 0) {
|
||||||
points += characterCount.size() / equalCharCount;
|
points += characterCount.size() / equalCharCount;
|
||||||
|
std::cout << "equalCharCount = " << equalCharCount << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//TODO: Punkte für gleiche Buchstaben und gleiche Buchstaben Anzahl vergeben
|
//TODO: Punkte für gleiche Buchstaben und gleiche Buchstaben Anzahl vergeben
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue