178 lines
5.7 KiB
Plaintext
178 lines
5.7 KiB
Plaintext
print("=== CHARACTER PRINTER PROGRAM ===");
|
|
print("Demonstrating string indexing by printing each character...");
|
|
|
|
// ========================================
|
|
// MAIN PROGRAM
|
|
// ========================================
|
|
|
|
var message = "Hello, Bob Language!";
|
|
print("\n📝 Original message: " + message);
|
|
print("📏 Message length: " + toString(len(message)));
|
|
|
|
print("\n🔤 CHARACTER BREAKDOWN:");
|
|
print("┌─────┬─────┬─────────────┬─────────────┐");
|
|
print("│ IDX │ CHR │ ASCII CODE │ DESCRIPTION │");
|
|
print("├─────┼─────┼─────────────┼─────────────┤");
|
|
|
|
for (var i = 0; i < len(message); i = i + 1) {
|
|
var char = message[i];
|
|
var index = toString(i);
|
|
var description = "";
|
|
|
|
// Determine character description
|
|
if (char == " ") {
|
|
description = "Space";
|
|
} else if (char == ",") {
|
|
description = "Comma";
|
|
} else if (char == "!") {
|
|
description = "Exclamation";
|
|
} else if (char == "H") {
|
|
description = "Capital H";
|
|
} else if (char == "e") {
|
|
description = "Lowercase e";
|
|
} else if (char == "l") {
|
|
description = "Lowercase l";
|
|
} else if (char == "o") {
|
|
description = "Lowercase o";
|
|
} else if (char == "B") {
|
|
description = "Capital B";
|
|
} else if (char == "b") {
|
|
description = "Lowercase b";
|
|
} else if (char == "L") {
|
|
description = "Capital L";
|
|
} else if (char == "a") {
|
|
description = "Lowercase a";
|
|
} else if (char == "n") {
|
|
description = "Lowercase n";
|
|
} else if (char == "g") {
|
|
description = "Lowercase g";
|
|
} else if (char == "u") {
|
|
description = "Lowercase u";
|
|
} else if (char == "r") {
|
|
description = "Lowercase r";
|
|
} else {
|
|
description = "Other";
|
|
}
|
|
|
|
// Format the output line
|
|
var line = "│ " + index;
|
|
if (len(index) == 1) {
|
|
line = line + " ";
|
|
} else {
|
|
line = line + " ";
|
|
}
|
|
|
|
line = line + "│ " + char + " │ ";
|
|
|
|
// Add ASCII code (simplified)
|
|
var asciiCode = "";
|
|
if (char == "H") asciiCode = "72";
|
|
else if (char == "e") asciiCode = "101";
|
|
else if (char == "l") asciiCode = "108";
|
|
else if (char == "o") asciiCode = "111";
|
|
else if (char == ",") asciiCode = "44";
|
|
else if (char == " ") asciiCode = "32";
|
|
else if (char == "B") asciiCode = "66";
|
|
else if (char == "b") asciiCode = "98";
|
|
else if (char == "L") asciiCode = "76";
|
|
else if (char == "a") asciiCode = "97";
|
|
else if (char == "n") asciiCode = "110";
|
|
else if (char == "g") asciiCode = "103";
|
|
else if (char == "u") asciiCode = "117";
|
|
else if (char == "r") asciiCode = "114";
|
|
else if (char == "!") asciiCode = "33";
|
|
else asciiCode = "??";
|
|
|
|
line = line + asciiCode;
|
|
if (len(asciiCode) == 2) {
|
|
line = line + " │ ";
|
|
} else {
|
|
line = line + " │ ";
|
|
}
|
|
|
|
line = line + description;
|
|
|
|
// Pad description to fit
|
|
while (len(line) < 45) {
|
|
line = line + " ";
|
|
}
|
|
line = line + " │";
|
|
|
|
print(line);
|
|
}
|
|
|
|
print("└─────┴─────┴─────────────┴─────────────┘");
|
|
|
|
// ========================================
|
|
// CHARACTER STATISTICS
|
|
// ========================================
|
|
print("\n📊 CHARACTER STATISTICS:");
|
|
|
|
var uppercaseCount = 0;
|
|
var lowercaseCount = 0;
|
|
var spaceCount = 0;
|
|
var punctuationCount = 0;
|
|
|
|
for (var i = 0; i < len(message); i = i + 1) {
|
|
var char = message[i];
|
|
|
|
if (char == "H" || char == "B" || char == "L") {
|
|
uppercaseCount = uppercaseCount + 1;
|
|
} else if (char == "e" || char == "l" || char == "o" || char == "b" || char == "a" || char == "n" || char == "g" || char == "u" || char == "r") {
|
|
lowercaseCount = lowercaseCount + 1;
|
|
} else if (char == " ") {
|
|
spaceCount = spaceCount + 1;
|
|
} else if (char == "," || char == "!") {
|
|
punctuationCount = punctuationCount + 1;
|
|
}
|
|
}
|
|
|
|
print(" Uppercase letters: " + toString(uppercaseCount));
|
|
print(" Lowercase letters: " + toString(lowercaseCount));
|
|
print(" Spaces: " + toString(spaceCount));
|
|
print(" Punctuation: " + toString(punctuationCount));
|
|
|
|
// ========================================
|
|
// REVERSE PRINTING
|
|
// ========================================
|
|
print("\n🔄 REVERSE CHARACTER PRINTING:");
|
|
var reverseMessage = "";
|
|
for (var i = len(message) - 1; i >= 0; i = i - 1) {
|
|
var char = message[i];
|
|
reverseMessage = reverseMessage + char;
|
|
print(" Index " + toString(i) + ": " + char);
|
|
}
|
|
print(" Reversed message: " + reverseMessage);
|
|
|
|
// ========================================
|
|
// CHARACTER SEARCH
|
|
// ========================================
|
|
print("\n🔍 CHARACTER SEARCH:");
|
|
var searchChar = "o";
|
|
var positions = [];
|
|
for (var i = 0; i < len(message); i = i + 1) {
|
|
if (message[i] == searchChar) {
|
|
push(positions, i);
|
|
}
|
|
}
|
|
|
|
print(" Character '" + searchChar + "' found at positions: ");
|
|
for (var i = 0; i < len(positions); i = i + 1) {
|
|
print(" Index " + toString(positions[i]));
|
|
}
|
|
|
|
// ========================================
|
|
// SUMMARY
|
|
// ========================================
|
|
print("\n🎉 CHARACTER PRINTER COMPLETE!");
|
|
print("✅ Successfully printed each character");
|
|
print("✅ Analyzed character statistics");
|
|
print("✅ Demonstrated reverse printing");
|
|
print("✅ Performed character search");
|
|
print("✅ Showed string indexing capabilities");
|
|
|
|
print("\n🏆 STRING INDEXING IS WORKING PERFECTLY!");
|
|
print("Bob can now process text character by character!");
|
|
print("Ready for advanced text processing tasks!");
|
|
|
|
print("\n🎊 PROGRAM COMPLETE! 🎊"); |