|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - DanielC#
1
« en: Martes 6 de Mayo de 2014, 22:14 »
Hola a todos y que tengan un muy buen día.-
Saludos. Daniel
2
« en: Domingo 27 de Abril de 2014, 19:58 »
Hola leosansan El caso es que al compilar me sigue dando error y no me deja crear el ejecutable, voy a actualizar el compilador.- Saludos y gracias. Daniel
3
« en: Sábado 26 de Abril de 2014, 20:50 »
Hola leosansan Muy bien entendí todo sólo que en mi compilador MinGW no me permite declarar las variables en cualquier lado, tiene que ser todas al principio de la función Main.- ......... izq = der = --n/2; char ch[n+1]; for(i=0; i<n; i++) .........
Saludos y gracias por tu tiempo. Daniel
4
« en: Viernes 25 de Abril de 2014, 21:56 »
Hola leosansan Maravilloso tú código ya estaba por desistir, tengo unas duditas para consultarte/consultarles.- Si declaro la variable de esta manera funciona. Si la declaro de estas otras 2 no me imprime ningún asterisco.- Me podrían dar alguna explicación.- Otra cosita, según tengo entendido el signo igual tiene asociatividad por la derecha pero esto no lo entiendo.- ate[izq--] = ate[der++] = '*'; Saludos. Daniel
5
« en: Viernes 25 de Abril de 2014, 19:25 »
Hola chenech Muchas gracias por la ayuda, un solo favor más te voy a pedir, tan sólo decime si lo que quiero hacer (con el código de dejo a continuación) es factible, practique de todas maneras con paréntesis, punto y coma y nada, con solo saber que se puede hacer voy a seguir leyendo y practicando hasta lograrlo.- #include <stdio.h> int main(){ int i=0, izq=5, der=5; char ate[] = " "; for(; i<10; i++){ (i<5) ? ate[izq] = '*' ate[der] = '*' izq-- der++ : izq++ der-- ate[izq] = ' ' ate[der] = ' '; } return 0; }
Saludos. Daniel
6
« en: Jueves 24 de Abril de 2014, 19:33 »
Hola chenech. No obtengo el resultado esperado, parecería que no está contemplado en el prototipo de la función printf, de cualquier manera pude mejorar y de hecho optimizar mi código, sólo me falta hacerlo con el operador condicional (ternario), por el momento me falta un poco de práctica para lograrlo pero ya lo estoy intentando (si queréis darme una mano, te estaré muy agradecido).- #include <stdio.h> int main(){ int i=0, izq=5, der=5; char ate[] = " "; for(; i<10; i++){ if(i<5){ ate[izq] = '*';ate[der] = '*'; izq--;der++; } else{ izq++;der--; ate[izq] = ' ';ate[der] = ' '; } } return 0; }
Saludos. Daniel
7
« en: Martes 22 de Abril de 2014, 16:44 »
Hola a todos y que tengan un muy buen día. #include <stdio.h> int main (int argc,char **argv){ char *a[] = {" *", " ***", " *****", " *******", "*********"}; int i=0, j=2; for(; i<9; i++){ if(i >= 0 && i <= 4){ } else{ j+=2; } } return 0; }
Bueno al fin lo logre, sin copiar a las muchas versiones que debe haber en internet, solo que me parece innecesarios los espacios que tuve que poner en el array de punteros “a”, supongo que debe haber otra manera.- La consulta es, se puede introducir entre “%s” una variable entera para que quede de esta manera: Int b = 7; printf("\n %bs", a); Me da error y no logro hacerlo de otra manera, cualquier sugerencia será bienvenida.- Desde ya muchas gracias por el tiempo.- Saludos. Daniel
8
« en: Domingo 13 de Abril de 2014, 15:57 »
Hola chenech. Muchas gracias por responder, el sentido es reemplazar estas 12 líneas de código por una sola, switch(op){ case'+':resultado = atoi(aux [0]) + atoi(aux [1]); break; case'-':resultado = atoi(aux [0]) - atoi(aux [1]); break; case'*':resultado = atoi(aux [0]) * atoi(aux [1]); break; case'/':resultado = atoi(aux [0]) / atoi(aux [1]); break; case'%':resultado = atoi(aux [0]) % atoi(aux [1]); break; }
Seguiré leyendo y consultando para ver si lo logro, el caso es saber cómo guarda en memoria esta línea el preprocesador, tal vez allí esté el secreto.- Saludos. Daniel
9
« en: Domingo 13 de Abril de 2014, 01:45 »
Hola a todos. La siguiente forma de usar los operadores funciona: #include <stdio.h> #define MAS + int main(void){ int a=5; a = a MAS 5; return 0; }
¿Se podrá lograr algo como lo siguiente:? y que funcionen realmente como operadores? char operadores[] = {"%", "*", "+", "-", "/"};
Bueno es todo. Saludos y desde ya muchas gracias por su tiempo. Daniel
10
« en: Sábado 28 de Septiembre de 2013, 00:03 »
Hola a todos. Les muestro el programita, es lo más conciso que pude lograr para validar ingreso de datos, Pero no funciona cuando se ingresa algo que no sea un entero.- #include <stdio.h> int main(void){ int entero,ok; do{ printf("\n Ingresa un entero.....: "); ok =scanf("%d%*c", &entero ); } while(!ok); printf("\n Ingresaste............: %d", entero ); return 0; }
Saludos. Daniel
11
« en: Viernes 27 de Septiembre de 2013, 23:58 »
Hola a todos. Bien lo entendí viendo otros ejemplos y con la ayuda de Uds. Lo tengo claro.-
Gracias y saludos. Daniel
12
« en: Viernes 27 de Septiembre de 2013, 00:23 »
Hola ProfesorX Tenes mucha razón, me compilaba con resultado óptimo en Dev-C++, cuando alguien me advirtió que con otros IDE(compilador) el resultado era erróneo descargue Turbo C++ 4.5 y verifique que realmente me daba cualquier número, espero que el turbo C++ tenga un buen compilador.- Maravilloso era lo que quería aprender, cambiar valores declarados en la función principal y mediante una función cambiar los mismos siendo esta void.- Una cosita mas (tengo un mambo importante con esto), yo haria esto:
int a = 5, b = 9, res, *pa = &a, *pb = &b; Porque tu código utilizas los *(* contiene el valor de la variable y & contiene la dirección de memoria de la misma)sin declarar y asignar los apuntadores y funciona?.- Gracias herzdark por tu aclaración.-
Un gran abrazo a ambos.- Daniel
13
« en: Jueves 26 de Septiembre de 2013, 00:30 »
Hola a todos. Me podrían decir la diferencia de una manera u otra de utilizar paso por referencia a función.- #include <stdio.h> int suma(int a, int b, int *res) { *res = a + b; } int main(void) { int a = 5, b = 9, res; res = suma(a,b,&res); printf("\n El resultado es...: %d\n", res ); printf("\n Pulse una tecla para cerrar la aplicacion..."); getchar(); return 0; }
#include <stdio.h> int suma(int *a, int *b, int *res) { *res = *a + *b; } int main(void) { int a = 5, b = 9, res, *pa = &a, *pb = &b; res = suma(&a,&b,&res); printf("\n El resultado es...: %d\n", res ); printf("\n Pulse una tecla para cerrar la aplicacion..."); getchar(); return 0; }
Bueno espero aclaración.- Saludos. Daniel
14
« en: Domingo 22 de Septiembre de 2013, 03:41 »
Hola herzdark. Gracias, me servirá para aprender a pasar las estructuras por valor ya que acabo de lograr el paso por referencia o puntero.-
espero que hallas entendido, suerte con el aprendizaje Saludos y hasta la proxima.- Daniel
15
« en: Sábado 21 de Septiembre de 2013, 21:11 »
Hola a todos. El caso es que estoy haciendo una agenda, en especial para aprender estructuras en C, créanme que hace 1 día que estoy renegando con el manual, el amigo Google y mucho picar código pero no lo logro.- Lo que quiero es poner el ingreso de datos en una función como escribir_datos pero no hay caso.-
#include <stdio.h> #include <stdlib.h> #include <windows.h>
typedef struct { int orden; char nombre[30]; }agenda;
void escribir_datos(agenda param) { printf("\n Orden....:%d", param.orden); printf("\n Nombre...:%s", param.nombre); } int main() { agenda datos; datos.orden = 1; strcpy(datos.nombre, "Daniel"); escribir_datos(datos); printf("\n\n Pulse una tecla para cerrar la aplicacion..."); system("PAUSE>NULL"); return 0; } Windows Xp, Borland C++ 5.5, lenguaje C. (autodidacta de 61 años)
Bueno es todo.- Un gran saludo. Daniel (espero encontrar amigos, no profesores)
16
« en: Jueves 29 de Agosto de 2013, 00:10 »
Hola a todos. Bueno al fin lo logre me faltan algunas cosas pero funciona de una manera aceptable.- using System; namespace IndexadoresArray { class ProgramaApp { static void Main(string[] argumentos) { Entorno entorno = new Entorno (); entorno._entorno(); Datos datos = new Datos (); datos._Datos(); Console.Write("\n\n Pulse una tecla para cerrar la aplicación..."); Console.ReadLine(); } } }
using System; namespace IndexadoresArray { class Entorno { public void _entorno() { Console.Title = " Indexadores"; Console.WindowHeight = 30; Console.WindowWidth = 70; Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Yellow; Console.Clear(); } } }
using System; namespace IndexadoresArray { class Datos { private int[] numeros = new int[5]; public int this[byte indice] { get { return numeros[indice];} set { numeros[indice] = value;} } public void _Datos() { byte _top = 2; int aux = 0; Console.SetCursorPosition(02, _top); Console.Write("Ingrese 10 entero(máximo 99999)"); _top += 2; Console.SetCursorPosition(02, _top); Console.Write("Natutal Ordenados"); _top += 2; Ordenar ordenar = new Ordenar (); for (byte i = 0; i < numeros.Length; i++) { while (true) { Console.SetCursorPosition(02, _top); Console.Write(""); if ((int.TryParse(Console.ReadLine(), out aux)) && aux < 100000) { obj[i] = aux; break; } } _top++; ordenar.ordenar(obj.numeros, i); } } } }
using System; namespace IndexadoresArray { class Ordenar { public void ordenar(int[] aOrdenar,int cTraigo) { int temp = 0; cTraigo++; for (int e = 0; e < cTraigo; e++) { for (int i = 0; i < cTraigo - 1; i++) { if (aOrdenar[i] > aOrdenar[i + 1]) { temp = aOrdenar[i]; aOrdenar[i] = aOrdenar[i + 1]; aOrdenar[i + 1] = temp; } } } byte filaCd = 6; for (byte m = 0; m < cTraigo; m++) { Console.SetCursorPosition(12, filaCd); Console.Write(" "); Console.SetCursorPosition(12, filaCd); Console.Write("" + aOrdenar[m]); filaCd++; } } } }
Saludos y hasta la proxima.- Daniel
17
« en: Martes 27 de Agosto de 2013, 22:57 »
Hola. Es simplemente una sugerencia, para los ansiosos como yo es muy importante.-
Un gran abrazo. Daniel
18
« en: Martes 27 de Agosto de 2013, 22:46 »
Hola a todos. En este caso les consulto 2 cosas.- 1):¿Me podrían decir si el uso de Indexadores es correcta?.- 2):¿Que estoy haciendo mal que el array no me queda ordenado.-? using System; namespace IndexadoresArray { class ProgramaApp { static void Main(string[] argumentos) { Entorno _Entorno = new Entorno (); _Entorno._entorno(); Datos _datos = new Datos (); _datos._Datos(); Console.Write("\n\n Pulse una tecla para cerrar la aplicación..."); Console.ReadLine(); } } }
using System; namespace IndexadoresArray { class Datos { private int[] numeros = new int[10]; public int this[byte indice] { get { return numeros[indice]; } set { numeros[indice] = value; } } public void _Datos() { byte _top = 2,hasElMom = 1; int aux = 0; Console.SetCursorPosition(02, _top); Console.Write("Ingrese 10 entero(máximo 99999)"); _top += 2; Console.SetCursorPosition(02, _top); Console.Write("Natutal Ordenados"); _top += 2; for (byte i = 0; i < 10; i++) { while (true) { Console.SetCursorPosition(02, _top); Console.Write(""); if ((int.TryParse(Console.ReadLine(), out aux)) && aux < 100000) { obj[i] = aux; break; } } Array.Sort(numeros); byte _topOrd = 6; for (byte f = 0; f < hasElMom; f++) { Console.SetCursorPosition(12, _topOrd); Console.Write("{0}", obj[f]); _topOrd++; } _top++; hasElMom++; } } } }
Bueno espero aflojar un poco, tengo miedo de cansarlos.- Saludos. Daniel PD. Por unas horas voy a estar un poco ocupado en otra cosa (a las 19.10 juega la selección - Argentina)
19
« en: Lunes 26 de Agosto de 2013, 18:58 »
Hola a todos. Bueno creo haber logrado lo que pretendía, seguramente se puede mejorar pero para mis conocimientos actuales me sirve.- Dejo el programa porque considero que puede ser de ayuda para algún principiante, gracias gabio2 por tú tiempo.- using System; namespace ArrayDaniel { class Entorno { public void entorno() { Console.Title = " Array ordenado"; Console.WindowHeight = 30; Console.WindowWidth = 70; Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Yellow; Console.Clear(); } } }
using System; namespace ArrayDaniel { class ProgramaApp { static void Main(string[] argumentos) { Entorno ent = new Entorno (); ent.entorno(); AgregarNombres anc = new AgregarNombres (); anc.agrNombres(); Console.ReadKey(); } } }
using System; using System.Text.RegularExpressions; namespace ArrayDaniel { class AgregarNombres { public void agrNombres() { int cant = 0; while(true) { Console.SetCursorPosition(02,02); Console.Write("Ingrese la cantidad de personas(máximo 10)...:"); if(Int32.TryParse(Console.ReadLine(), out cant)) { if (cant > 0 && cant < 11) { break; } } } Regex reg = new Regex ("^[A-Za-z ]+$"); byte _top = 4; string[, ] nombres = new string[cant, 2]; string codigo = ""; byte auxCodigo = 0; for(byte i = 0; i<cant; i++) { auxCodigo++; codigo = Convert.ToString(auxCodigo); while (true) { Console.SetCursorPosition(02, _top); Console.Write("Ingrese nombre....:"); string linea = Console.ReadLine(); if (!string.IsNullOrEmpty(linea) && reg.IsMatch(linea)) { nombres[i, 0] = linea; nombres[i, 1] = codigo; break; } } _top += 2; } Ordenar OrdenarArray = new Ordenar (); OrdenarArray.ordenar(nombres); } } }
using System; namespace ArrayDaniel { class Ordenar { public void ordenar(string [,] _array) { bool huboCambio = true; byte _top = 2, col = 0; int maxim = _array.Length/2; while (huboCambio) { huboCambio = false; for (byte Row = 0; Row < maxim-1; Row++) { if (_array[Row, col].CompareTo(_array[Row+1, col]) > 0) { string auxNomb = _array[Row, col]; _array[Row, col] = _array[Row+1, col]; _array[Row+1, col] = auxNomb; huboCambio = true; string auxCodi = _array[Row, col+1]; _array[Row, col+1] = _array[Row + 1, col+1]; _array[Row + 1, col+1] = auxCodi; } } } Console.Clear(); Console.SetCursorPosition(02, _top); Console.Write(" === Ordenado por nombre ==="); _top +=2; Console.SetCursorPosition(02,_top); Console.Write(" Código nombre"); _top +=2; for (byte Row = 0; Row < maxim; Row++) { Console.SetCursorPosition(02, _top); Console.WriteLine(" {0} {01}", _array[Row, 1], _array[Row, 0]); _top++; } } } }
Saludos. Daniel
20
« en: Domingo 25 de Agosto de 2013, 20:53 »
Hola ahora bien en tu código tu variable miVaSt no es un vector, sólo es un objeto de tipo string, para ser un vector tendría que ser declarado así: No me referia a si a esto string[] nombres = new string[cant ];
Bueno seguiré investigando, lo único que me falta es ordenar el array y mover los códigos.- Saludos. Daniel
21
« en: Domingo 25 de Agosto de 2013, 19:30 »
Hola gabio2. En primer lugar tengo 61 años y en mis tiempos de primaria/secundaria ni por las tapas el inglés sólo ahora estoy alternando el estudio del lenguaje y el idioma siempre de forma autodidacta, no obstante la traducción de Google fue casi perfecta, voy a leerlo detenidamente para ver que obtengo.- Sí te pido un favor más, me podes decir si esta es la forma más eficiente para insertar los códigos en mi array?, teniendo en cuenta que el mismo es de string.- using System; public class MainClass { public static void Main () { string miVaSt = ""; for(byte i = 1; i<10; i++) { miVaSt = Convert.ToString(i); Console.Write("\n {0}", miVaSt); } Console.ReadLine(); } }
Desde ya muchas gracias por tú tiempo.- Saludos. Daniel
22
« en: Sábado 24 de Agosto de 2013, 20:57 »
Hola a todos. Estoy tratando de aprender un poco más sobre matrices, el caso es que con una dimensión logro hacerlo correctamente pero cuando quiero agregarle otra para insertar los códigos no me sale.- Otra cosita que me falta es, como debo hacer para que al ordenar por el nombre se corran los códigos como se muestra a continuación?.- Ingreso por teclado Ordenado por nombre
01 - Daniel Virgili 06 - Celeste Cid 02 - Rosita Scardino 04 - Claudio Raimonda 03 - Pedro Cimarelli 01 - Daniel Virgili 04 - Claudio Raimonda 05 - Pedro Carestia 05 - Pedro Carestia 03 - Pedro Cimarelli 06 - Celeste Cid 02 - Rosita Scardino
using System; using System.Text.RegularExpressions;
namespace ArrayDaniel { class AgregarNombres { public void agrNombres() { int cant = 0; while(true) { Console.SetCursorPosition(02,02); Console.Write("Ingrese la cantidad de personas(máximo 10)...:"); if(Int32.TryParse(Console.ReadLine(), out cant)) { if (cant > 0 && cant < 11) { break; } } } Regex reg = new Regex("^[A-Za-z ]+$"); byte _top = 4; string[] nombres = new string[cant]; for(int i = 0; i<cant; i++) { while(true) { Console.SetCursorPosition(02, _top); Console.Write("Ingrese nombre....:"); string linea = Console.ReadLine(); if (!string.IsNullOrEmpty(linea) && reg.IsMatch(linea)) { nombres[i] = linea; break; } } _top += 2; } Array.Sort(nombres); _top += 2; Console.SetCursorPosition(02,_top); Console.Write(" ----- Se muestran los nombres ordenados ----- "); _top += 2; int a = 0; foreach(String i in nombres) { Console.SetCursorPosition(02, _top); Console.Write("Código...: Nombres...:{0}", nombres[a]); a++; _top ++; } } } } Espero puedan ayudarme realmente estoy estancado.- Saludos. Daniel
23
« en: Lunes 5 de Agosto de 2013, 18:25 »
Hola Profe. Como me gusta este foro, no lo digo con ninguna hipocresía, son muy completas las respuestas y con mi edad(61)necesito, me hace falta para aprender tipos como vos.- Bueno como pequeño aporte dejo lo que yo había implementado(igual no funciona 10 puntos pero sirve).-
............................... byte error = 0; string temp = ""; do { error = 0; Console.SetCursorPosition(02, 02); Console.Write("Ingrese nombre completo....:"); temp = Console.ReadLine(); if(temp.Length > 0) { foreach (char c in temp) { if (!Char.IsLetter(c)) {error++;} } } else error++; }while(error > 0);*/ ................................ Un abrazo y hasta la proxima. Daniel(Arequito,Santa Fé, Argentina)
24
« en: Domingo 4 de Agosto de 2013, 00:29 »
Hola a todos.- Bueno eso, quiero validar que una cadena sólo contenga letras(para un campo nombre y apellido) sin tener que construir un bucle.-
Saludos. Daniel
25
« en: Miércoles 31 de Julio de 2013, 18:45 »
Hola Profe. Como nota personal, yo no uso mucho la sobrecarga de operadores, pero se como se hace, asi por ejemplo si me encuentro un programa que la utiliza, se lo que esta haciendo y como se utiliza, que al final es lo que importa. Muy bueno no queda nada más por decir,debo aprenderlo.- En cuanto a sintaxis no logro implementarla todavia, por lo tanto voy a hacer lo de siempre lo dejare pendiente y seguramente en algún momento se me iluminará la idea.- Saludos y un abrazo.- Daniel
|
|
|