C sharp - aprendiendo C#

 
Vista:

aprendiendo C#

Publicado por Raül  (7 intervenciones) el 30/03/2010 13:39:18
Hola a todos, estoy aprendiendo a programar en c# y en los ejercicios propuestos de la sección, hay uno que se me resiste; vamos que no sé cómo abordarlo.
El ejercicio dice así: "Realice un programa que lea una cadena de n carácteres e imprima el resultado que se obtiene cada vez que se realize la rotación de un carácter a la derecha sobre dicha cadena. El proceso finalizará cuando se haya obtenido la cadena de caracteres original. Por ejemplo, HOLA AHOL LAHO OLAH HOLA.

Muchas gracias por la ayuda, a ver si me podeis dar alguna pista, que tengo que entregar estos ejercicios la semana que viene... ;p
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:aprendiendo C#

Publicado por Evan (32 intervenciones) el 31/03/2010 06:13:08
Hola para esto debes de usar un vector o alguna estructura de datos como una pila,aqui solo use 2 vectores uno que contendra el arreglo de caracteres normal y otro auxiliar que ira almacenando los reccorridos de este checa este ejemplo que hice no es la forma mas optimizada pero para iniciarse sirve de ejemplo.

Console.Write("Palabra: ");
string palabra = Console.ReadLine();
string[] cadena = new string[palabra.Length];
string[] varauxiliar = new string[palabra.Length];
for (int i = 0; i < palabra.Length; i++)
cadena[i] = palabra[i].ToString();
bool paro = true;
while (paro)
{
for (int i = 0; i < palabra.Length; i++)
{
if (i == 0)
varauxiliar[i] = cadena[palabra.Length - 1];
if (i < palabra.Length - 1)
{
varauxiliar[i + 1] = cadena[i];
}
}
for (int i = 0; i < palabra.Length; i++)
cadena[i] = varauxiliar[i];
for (int i = 0; i < palabra.Length; i++)
Console.Write(cadena[i]);
if (palabra[0].ToString() == cadena[0])
paro = false;
Console.WriteLine("");

}

Console.ReadLine();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:aprendiendo C#

Publicado por Raül  (7 intervenciones) el 01/04/2010 09:55:45
Gracias, estaba bastante perdido ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aprendiendo C#

Publicado por Raül  (7 intervenciones) el 01/04/2010 10:27:12
Hola Evan, primero de todo gracias por la ayuda... pero al compilar el código me sale el siguiente error:
En string[] varauxiliar = new string[palabra.Lenght]; me sale el error de que 'string' no contiene una definición de 'lenght' ni se encontró ningún método de extensión 'lenght' que acepte un primer argumento de tipo 'string'.

Gracias por mirártelo y un abrazo;
Raül.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aprendiendo C#

Publicado por Evan (32 intervenciones) el 01/04/2010 21:24:18
Algo anda fuera de lugar,checa que este declarada como string palabra,todos las variables de tipo strin tienen la propiedad lenght que es el largo de la cadena checa por ahi que anda mal y si no deja tu correo y te mando el archivo ya compilado y con breve explicacion.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aprendiendo C#

Publicado por Raül  (7 intervenciones) el 06/04/2010 22:49:52
Hola Evan,

Efectivamente estaba escribiendo algo mal... de todos modos el objetivo de la aplicación era que también se imprimiesen las palabras intermedias; esto es, si la cadena introducida era HOLA, el resultado que se debía imprimir en pantalla debía ser: HOLA OHLA OLHA OLAH HOLA... me sigues? me podrías ayudar de nuevo? Te lo agradecería mucho.

Raül.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aprendiendo C#

Publicado por miguel (1 intervención) el 17/04/2010 01:19:19
Console.WriteLine("Palabra:");
string palabra=Console.ReadLine()
string[] cadena=new string[palabra.length];
string[] temp=new string[palabra.length];
for(i=0;i<palabra.length;i++)
{

cadena[i]=palabra[i];

}
bool paro;
while(paro==false)
{
for(i=0;i<palabra.length;i++)
{
int x = palabra.length;
tem[i]=cadena[x-1];
x--;
}
if(temp[0]==cadena[0])
{
paro=true;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar