Compare commits
No commits in common. "0c7c564e3de17f3ddc20f4cc91a6822dcd75f46f" and "1edb0fa0ec36025debbaa97445262955f5885444" have entirely different histories.
0c7c564e3d
...
1edb0fa0ec
5 changed files with 11 additions and 25 deletions
2
.vscode/tasks.json
vendored
2
.vscode/tasks.json
vendored
|
@ -12,7 +12,7 @@
|
||||||
"${workspaceFolder}\\build\\build.exe"
|
"${workspaceFolder}\\build\\build.exe"
|
||||||
],
|
],
|
||||||
"options": {
|
"options": {
|
||||||
"cwd": "${workspaceFolder}\\build\\"
|
"cwd": "${fileDirname}"
|
||||||
},
|
},
|
||||||
"problemMatcher": [
|
"problemMatcher": [
|
||||||
"$gcc"
|
"$gcc"
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
Uruchom program i zacznij wpisywać dzialanie.
|
|
||||||
|
|
||||||
Wciśnij enter aby zaakceptować wejście.
|
|
||||||
|
|
||||||
wpisz `:h` aby uzyskać komendy w programie.
|
|
||||||
|
|
||||||
# Wymagania
|
|
||||||
Program jest na tyle lekki że zadziała na każdym komputerze wydanym w ciągu 10 lat.
|
|
||||||
|
|
||||||
Skompilowny program jest binarką x64, która wymaga procesora 64bit.
|
|
||||||
|
|
||||||
Możliwa jest kompilacja z plików źródłowych, żeby działał na komputerach innej architektury.
|
|
||||||
|
|
||||||
# Obsługiwane znaki
|
|
||||||
Obsługiwane znaki w trybie obliczania to jedyne podstawowe znaki algebraiczne, nawiasy (`+`, `-`, `*`, `/`, `(`, `)`) i cyfry z przecinkami (od 0 do 9, `.`)
|
|
|
@ -145,11 +145,12 @@ void correctNegativeSign(parseResult* _input) {
|
||||||
for (auto it = parsed->begin(); it != parsed->end(); it++) {
|
for (auto it = parsed->begin(); it != parsed->end(); it++) {
|
||||||
auto jt = it + 1; //next element
|
auto jt = it + 1; //next element
|
||||||
if (it->type == SymbolType::subract && jt != parsed->end() && jt->type == SymbolType::number) {
|
if (it->type == SymbolType::subract && jt != parsed->end() && jt->type == SymbolType::number) {
|
||||||
it->type = SymbolType::add;
|
it = parsed->erase(it);
|
||||||
jt->value = jt->value * (-1);
|
it->value = it->value * (-1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
parsed->shrink_to_fit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -161,8 +162,6 @@ void correctNegativeSign(parseResult* _input) {
|
||||||
*/
|
*/
|
||||||
bool validateParsation(const std::vector<Symbol>* _input) {
|
bool validateParsation(const std::vector<Symbol>* _input) {
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// FIXME: It's broken somewhere
|
|
||||||
if (_input->size() == 0) return false;
|
if (_input->size() == 0) return false;
|
||||||
for (auto it = _input->begin(); true /* Break argument 2 lines down */; it++) {
|
for (auto it = _input->begin(); true /* Break argument 2 lines down */; it++) {
|
||||||
auto jt = it + 1;
|
auto jt = it + 1;
|
||||||
|
@ -312,8 +311,11 @@ Symbol calculateUsingStack(std::vector<Symbol>& _stack) {
|
||||||
return toPut;
|
return toPut;
|
||||||
} break;
|
} break;
|
||||||
case SymbolType::subract: {
|
case SymbolType::subract: {
|
||||||
//subtract is unnecessary because it's already converted to addition in previous step.
|
Stack::take<Symbol>(_stack); //top symbol...
|
||||||
throw "impossible";
|
Symbol toPut;
|
||||||
|
toPut.value = calculateUsingStack(_stack).value - calculateUsingStack(_stack).value;
|
||||||
|
Stack::put<Symbol>(_stack, toPut);
|
||||||
|
return toPut;
|
||||||
} break;
|
} break;
|
||||||
case SymbolType::multiply: {
|
case SymbolType::multiply: {
|
||||||
Stack::take<Symbol>(_stack); //top symbol...
|
Stack::take<Symbol>(_stack); //top symbol...
|
||||||
|
|
|
@ -139,7 +139,7 @@ int main() {
|
||||||
terminal::key_right(keys);
|
terminal::key_right(keys);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// debugKey(input, debugOffset);
|
debugKey(input, debugOffset);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -176,7 +176,7 @@ int main() {
|
||||||
exit |= commands::loop();
|
exit |= commands::loop();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// debugKey(input, debugOffset);
|
debugKey(input, debugOffset);
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ Poziom dokumentacji: 3 stopniowa (wymagania, instrukcja z zrzutami ekranu, kod p
|
||||||
Format instrukcji: A4
|
Format instrukcji: A4
|
||||||
Format zapisu instrukcji: PDF
|
Format zapisu instrukcji: PDF
|
||||||
Format pliku do upload'u: ZIP (bez hasła)
|
Format pliku do upload'u: ZIP (bez hasła)
|
||||||
Nazwa pliku zip: R1IS_Prog.CPP_projekt_<nazwisko><imie>.zip
|
|
||||||
Czcionka kodu programu: KONSOLOWA
|
Czcionka kodu programu: KONSOLOWA
|
||||||
Wymagana wersja źródłowa kodu: TAK
|
Wymagana wersja źródłowa kodu: TAK
|
||||||
Wymagana wersja wykonywalna kodu: TAK
|
Wymagana wersja wykonywalna kodu: TAK
|
||||||
|
|
Reference in a new issue