MP_02 irgendwas

This commit is contained in:
Johannes Theiner 2018-04-09 20:11:03 +02:00
parent df99b0273a
commit 34ee2fb962
6 changed files with 103 additions and 6 deletions

10
02_MENT/Testat/build.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
rm *.out
clang++-6.0 -std=c++14 -I../helpers/ -o limits.out limits_println.cpp
clang++-6.0 -std=c++14 -I../helpers/ -o println.out printlnDemo.cpp
clang++-6.0 -std=c++14 main_02_MENT.cpp
./a.out

View File

@ -0,0 +1,20 @@
// file: main_02_MENT.cpp
// THIS IS C++, use clang++
#include <iostream>
#include "../../helpers/println.hpp"
struct PascalString{
int length; // number of chars used
char characters[256]; // chars of some character string
};
int main(int argc, char** argv, char** envp) {
PascalString s = {3, '1', '0', '0'};
PascalString s2 = {4, 'f', 'f', 'f', 'f'};
return 0;
}

Binary file not shown.

View File

@ -32,8 +32,6 @@ int hexStringToInt(PascalString binaryDigits) {
return returnValue; return returnValue;
} }
void printPascalString(PascalString s) { void printPascalString(PascalString s) {
for(int i = 0; i <= s.length; i++) { for(int i = 0; i <= s.length; i++) {
println(s.characters[i]); println(s.characters[i]);
@ -49,11 +47,49 @@ PascalString intToDual(int n) {
n = n / 2; n = n / 2;
i--; i--;
} }
return string; return string;
} }
char intToHexChar(int n) {
if(n > 9) {
switch(n) {
case 10: return 'A'; break;
case 11: return 'B'; break;
case 12: return 'C'; break;
case 13: return 'D'; break;
case 14: return 'E'; break;
case 15: return 'F'; break;
default: return 'X';
}
}
else return n + '0';
}
PascalString intToHex(int n) {
int i = std::to_string(n).length();
PascalString string = {i};
while(n >= 1) {
string.characters[i] = intToHexChar(n % 16);
n = n / 16;
i--;
}
return string;
}
PascalString bitwiseDualAnd(PascalString a, PascalString b) {
PascalString shortString = a.length < b.length ? a : b;
PascalString longString = a.length > b.length ? a : b;
PascalString result = {longString.length, '0'};
for(int i = longString.length; i >= 0; --i) {
if(shortString.characters[i] == '1' && longString.characters[i] == '1') result.characters[i] = '1';
else result.characters[i] = '0';
}
return result;
}
int main(int argc, char** argv, char** envp) { int main(int argc, char** argv, char** envp) {
PascalString s = {3, '1', '0', '0'}; PascalString s = {3, '1', '0', '0'};
@ -75,7 +111,14 @@ int main(int argc, char** argv, char** envp) {
println(controlRegister); println(controlRegister);
printPascalString(intToDual(41)); println(intToHexChar(6));
println(intToHexChar(10));
printPascalString(intToDual(4106));
printPascalString(intToHex(965));
printPascalString(intToHex(1956));
printPascalString(bitwiseDualAnd({3, '1', '1', '0'}, {4, '1', '1', '1', '0'}));
return 0; return 0;
} }

Binary file not shown.

View File

@ -115,10 +115,12 @@ int func_1(int arg){
PRINT; return arg * local_1; PRINT; return arg * local_1;
} }
void modifikation1();
void modifikation2();
int main(int argc, const char * argv[]) { int main(int argc, const char * argv[]) {
/*
console.clearScreen(); console.clearScreen();
currentColor = Colors::BLUE; currentColor = Colors::BLUE;
@ -146,13 +148,35 @@ int main(int argc, const char * argv[]) {
currentColor = Colors::MAGENTA; currentColor = Colors::MAGENTA;
test(); test();
*/
console.clearScreen();
currentColor = Colors::BLUE;
modifikation1();
currentColor = Colors::RED;
modifikation2();
std::string s; std::string s;
std::cin >> s; std::cin >> s;
return 0; return 0;
} }
void modifikation1() {
INITPRINT("Modifikation 1");
PRINT;
PRINT;
PRINT;
PRINT;
PRINT;
}
void modifikation2() {
}
void printLineNumber(int lineNumber){ void printLineNumber(int lineNumber){
std::string line = std::to_string(lineNumber); std::string line = std::to_string(lineNumber);
currentTick++; currentTick++;