Ejercicio
Conversor De C# A Pascal
Objectivo
Crear un programa para convertir programas simples de C#, como el siguiente, al lenguaje Pascal
Ejemplo Ejercicio C#
Mostrar Código C#
// Importing the System namespace to use basic functionality like Regex
using System;
class Program // Class definition in C#
{
// Main method where the program execution begins
static void Main()
{
// Example C# code to convert
string cSharpCode = @"
using System;
class Program
{
static void Main()
{
int x = 10;
int y = 5;
if (x > y)
{
Console.WriteLine(""x is greater"");
}
else
{
Console.WriteLine(""y is greater"");
}
}
}
";
// Convert the C# code to Pascal
string pascalCode = ConvertCSharpToPascal(cSharpCode);
// Print the Pascal code to the console
Console.WriteLine("Converted Pascal Code:");
Console.WriteLine(pascalCode);
}
// Method to convert simple C# code to Pascal code
static string ConvertCSharpToPascal(string cSharpCode)
{
// Remove 'using System;' line from C#
// This line removes the unnecessary 'using System;' from the C# code
cSharpCode = Regex.Replace(cSharpCode, @"using\s+System;\s*", "");
// Convert C# class declaration to Pascal program declaration
// This converts the C# 'class Program' to Pascal's 'program Program;'
cSharpCode = Regex.Replace(cSharpCode, @"class\s+(\w+)", "program $1;");
// Convert C# method declaration to Pascal method declaration
// This converts the C# 'static void Main()' to Pascal's 'begin'
cSharpCode = Regex.Replace(cSharpCode, @"static\s+void\s+Main\(\)", "begin");
// Convert C# variables declaration to Pascal variable declaration
// This converts C# declarations like 'int x = 10;' to Pascal's 'var x: Integer; begin x := 10;'
cSharpCode = Regex.Replace(cSharpCode, @"int\s+(\w+)\s*=\s*(\d+);", "var $1: Integer; begin $1 := $2;");
// Convert C# if-else block to Pascal if-else block
// This converts C# 'if (condition) { ... } else { ... }' to Pascal's 'if condition then ... else ...'
cSharpCode = Regex.Replace(cSharpCode, @"if\s*\((.*?)\)\s*{(.*?)}\s*else\s*{(.*?)}", "if $1 then\n$2\nelse\n$3");
// Convert C# method calls like Console.WriteLine to Pascal WriteLn
// This converts the C# method 'Console.WriteLine()' to Pascal's 'WriteLn()'
cSharpCode = Regex.Replace(cSharpCode, @"Console\.WriteLine\((.*?)\);", "WriteLn($1);");
// Add an 'end.' to complete the Pascal program
// This adds 'end.' at the end of the Pascal code to indicate the end of the program
cSharpCode = cSharpCode + "\nend.";
// Return the final Pascal code
return cSharpCode;
}
}
Salida
program Program;
var
x, y: Integer;
begin
x := 10;
y := 5;
if x > y then
WriteLn('x is greater')
else
WriteLn('y is greater');
end.
Código de Ejemplo Copiado!
Comparte este Ejercicio C# Sharp
¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.
Este ejercicio consiste en crear una utilidad de "dump": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes por fila y 24 filas por pantalla. El progr...
Este ejercicio consiste en crear un programa que muestre la lista de campos almacenados en un archivo DBF. El formato DBF es utilizado por el antiguo gestor de bases de dato...
Este ejercicio consiste en crear un programa que censure archivos de texto. El programa debe leer un archivo de texto y volcar su contenido a un nuevo archivo, reemplazando ...
En este ejercicio, debes crear un programa en C# capaz de analizar comandos SQL de tipo INSERT y extraer sus datos en líneas de texto separadas. El programa debe proc...
El formato PGM es una de las versiones de los formatos de imagen NetPBM. Específicamente, es la variante capaz de manejar imágenes en tonos de gris. Su encabezado comienza con una ...
En este ejercicio, se te solicita desarrollar un programa en C# que pueda mostrar un archivo BMP de tamaño 72x24 en la consola. Para ello, deberás utilizar la ...