elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15
101  Programación / Programación C/C++ / Re: Printf un poco especial en lenguaje C en: 12 Noviembre 2013, 02:24 am
Hola rir3760.
Gracias por el código, no es un espacio lo que me ocupa sino que se ingrese un número decimal.-

Saludos.
Daniel
102  Programación / Programación C/C++ / Re: Printf un poco especial en lenguaje C en: 11 Noviembre 2013, 20:17 pm
Hola.
Buscando y buscando encontré que una de las maneras para saber si un número es decimal seria esta.

Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. int a;
  5. float b;
  6. printf("\n Ingresa un numero...:");
  7. scanf("%f", &b);
  8. a = b;
  9. if(a == b)
  10. printf("\n es entero");
  11. else
  12. printf("\n NO es entero");
  13.  
  14.  
  15. return 0;
  16. }

Me podes decir si hay una manera más concisa para meter precisamente aquí(**).-

Código
  1. ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31 (**);

Desde ya muchas gracias.-
Saludos.
Daniel
103  Programación / Programación C/C++ / Re: Printf un poco especial en lenguaje C en: 11 Noviembre 2013, 16:14 pm
Hola.
Muchas gracias por  responder, no sé si interprete del todo la ayuda que propusiste pero a partir de ella pude lograrlo.- ;-)

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void mostrar(int orden, int dd, int mm);
  5.  
  6. int main(void){
  7.  
  8.    int dd,mm,aaaa,orden,ok,ch; dd = mm = aaaa = orden = ok = ch = 0;
  9.  
  10.    do{
  11.        system("CLS");
  12. printf("\n Ingrese dia...: ");
  13.        ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31;
  14.        while ((ch = getchar()) != EOF && ch != '\n');
  15. }while(!ok);
  16.  
  17.    do{
  18. mostrar(1, dd, mm);
  19.        printf("\n Ingrese mes...: ");
  20.        ok = scanf("%d", &mm) == 1 && mm >= 1 && mm <= 12;
  21.        while ((ch = getchar()) != EOF && ch != '\n');
  22. }while(!ok);
  23.  
  24.    do{
  25.        mostrar(2, dd, mm);
  26.        printf("\n Ingrese año..: ");
  27.        ok = scanf("%d", &aaaa) == 1 && aaaa >= 1 && aaaa <= 9999;
  28.        while ((ch = getchar()) != EOF && ch != '\n');
  29.    }while(!ok);
  30.  
  31.    printf("\n La fecha ingresada es %d/%d/%d", dd,mm,aaaa);
  32.  
  33.    return 0;
  34. }
  35.  
  36. void mostrar(int orden, int dd, int mm){
  37.    system("CLS");
  38.    if(orden == 1){
  39.        printf("\n Ingrese dia...: %d", dd);
  40.    }
  41.    if(orden == 2){
  42.        printf("\n Ingrese dia...: %d", dd);
  43.        printf("\n Ingrese mes...: %d", mm);
  44.    }
  45. }

Igual tiene algo que no me gusta, si se ingresa 10.15 me toma el 10 me parece que voy a tener que modificar la validación.-

Un saludo.
Daniel
104  Programación / Programación C/C++ / Printf un poco especial en lenguaje C en: 10 Noviembre 2013, 19:30 pm
Citar
Hago esta aclaración porque en muchos casos suponen que tengo 15 o 20 años(es lo lógico) y en realidad tengo 61, como comprenderán no voy a la facultad y la gente que conozco no tiene la más mínima idea lo que es la computadora y menos programar.-

Hola a todos.
Bueno luego de tantas  idas y venidas pude finalizar el vendito almanaque, estoy contento porque he aprendido bastante con tantas prácticas debido a los innumerables errores, al grano, el programita que les dejo es parte del mismo y como verán lo que hace es verificar que se ingrese día , mes y año válidos, el problema es que no puedo lograr  quitar el 0 que aparece después del printf, como lo muestra la imagen.-



Código:
#include <stdio.h>
#include <stdlib.h>

void mostrar(int orden, int dd, int mm, int aaaa);

int main(void){

int dd,mm,aaaa,orden,ok,ch; dd = mm = aaaa = orden = ok = ch = 0;

do{
dd = 0;
mostrar(0, dd, mm, aaaa);
ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);

do{
mm = 0;
mostrar(1, dd, mm, aaaa);
ok = scanf("%d", &mm) == 1 && mm >= 1 && mm <= 12;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);

do{
aaaa = 0;
mostrar(2, dd, mm, aaaa);
ok = scanf("%d", &aaaa) == 1 && aaaa >= 1 && aaaa <= 9999;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);
mostrar(3, dd, mm, aaaa);

return 0;
}

void mostrar(int orden, int dd, int mm, int aaaa){
system("CLS");
if(orden == 0){
printf("\n Ingrese dia...: %d", dd);
}
if(orden == 1){
printf("\n Ingrese dia...: %d", dd);
printf("\n Ingrese mes...: %d", mm);
}
if(orden == 2){
printf("\n Ingrese dia...: %d", dd);
printf("\n Ingrese mes...: %d", mm);
printf("\n Ingrese año..: %d", aaaa);
}
}

Lo que dejo en claro es que no quiero utilizar conio, Windows.h ni nada que salga de lo estándar.-

Espero que en primer lugar que esto sea factible de lograr y que alguien en este foro sepa cómo hacerlo.-

Un saludo.
Daniel
105  Programación / Programación C/C++ / Re: Soy Nuevo En C, Ayuda Por Favor! en: 8 Noviembre 2013, 01:43 am
Hola Ronniicruz.
Te falta poner ; en la línea 15 y decirnos el porqué declaras las variables como globales, antes de la función principal (main).-
edad=acc-an;

Un saludo.
Daniel.
106  Programación / Programación C/C++ / Re: While duplica printf(fgets)(sscanf) en: 7 Noviembre 2013, 17:40 pm
Hola rir3760
Genio, funciona a la perfección.-
Quiero hacer un pequeño párrafo con respecto a todo lo bueno que haces por los demás, estuve leyendo unas cuantas respuestas tuyas y realmente demostras que tenes muchísimo conocimientos de C, si en algún momento alguien se olvidó de agradecerte por alguna ayuda yo lo hago en este momento por todos ellos, seguí así, sos de los tipos que cualquiera quisiera tener sentado al lado frente a la pc.(estudiando C)   

Muchas gracias.-
Un saludo.
107  Programación / Programación C/C++ / While duplica printf(fgets)(sscanf) en: 7 Noviembre 2013, 15:30 pm
Citar
Hago esta aclaración porque en muchos casos suponen que tengo 15 o 20 años(es lo lógico) y en realidad tengo 61, como comprenderán no voy a la facultad y la gente que conozco no tiene la más mínima idea lo que es la computadora y menos programar.-

Hola a todos.
Debo aclarar que hace un día que estoy asiéndole cambios al código y Buscando en google, en este momento me doy por vencido y recurro a Uds. El caso es que el siguiente while me duplica en muchos casos los printf, bueno está todo dicho, si necesitan el código completo por favor me lo solicitan.-

Código
  1. if(opciones == 1){
  2.    while(dd < 1 || dd > 31){
  3.        printf("\n ingrese dia...:");
  4.        fgets(cadena, 3, stdin);
  5.        sscanf(cadena, "%d", &dd);
  6.    }
  7.    d_d = 1;
  8.    while(mm < 1 || mm > 12){
  9.        printf("\n ingrese mes...:");
  10.        fgets(cadena, 3, stdin);
  11.        sscanf(cadena, "%d", &mm);
  12.    }
  13.    m = mm;
  14.  
  15.    while(aaaa < 1 || aaaa > 9999){
  16.        printf("\n ingrese año...:");
  17.        fgets(cadena, 5, stdin);
  18.        sscanf(cadena, "%d", &aaaa);
  19.   }
  20. }
Desde ya muchas gracias por la ayuda que puedan brindarme.-
Un saludo.
108  Programación / .NET (C#, VB.NET, ASP) / Re: Indexadores en C# en: 29 Agosto 2013, 00:06 am
Hola a todos.
Bueno al fin lo logre, me faltan algunas cosas pero funciona de una manera aceptable.-

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class ProgramaApp
  6.    {
  7.        static void Main(string[] argumentos)
  8.        {
  9.            Entorno entorno = new Entorno();
  10.            entorno._entorno();
  11.  
  12.            Datos datos = new Datos();
  13.            datos._Datos();
  14.  
  15.            Console.Write("\n\n Pulse una tecla para cerrar la aplicación...");
  16.            Console.ReadLine();
  17.        }
  18.    }
  19. }

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class Entorno
  6.    {
  7.        public void _entorno()
  8.        {
  9.            Console.Title = " Indexadores";
  10.            Console.WindowHeight = 30;
  11.            Console.WindowWidth = 70;
  12.            Console.BackgroundColor = ConsoleColor.Blue;
  13.            Console.ForegroundColor = ConsoleColor.Yellow;
  14.            Console.Clear();
  15.        }
  16.    }
  17. }

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class Datos
  6.    {
  7.        private int[] numeros = new int[5];
  8.  
  9.        public int this[byte indice]
  10.        {
  11.            get { return numeros[indice];}
  12.            set { numeros[indice] = value;}
  13.        }
  14.  
  15.        public void _Datos()
  16.        {
  17.            Datos obj = new Datos();
  18.            byte _top = 2;
  19.            int aux = 0;
  20.            Console.SetCursorPosition(02, _top);
  21.            Console.Write("Ingrese 10 entero(máximo 99999)");
  22.            _top += 2;
  23.            Console.SetCursorPosition(02, _top);
  24.            Console.Write("Natutal   Ordenados");
  25.            _top += 2;
  26.            Ordenar ordenar = new Ordenar();
  27.            for (byte i = 0; i < numeros.Length; i++)
  28.            {
  29.                while (true)
  30.                {
  31.                    Console.SetCursorPosition(02, _top);
  32.                    Console.Write("");
  33.                    if ((int.TryParse(Console.ReadLine(), out aux)) && aux < 100000)
  34.                    {
  35.                        obj[i] = aux;
  36.                        break;
  37.                    }
  38.                }
  39.                _top++;
  40.                ordenar.ordenar(obj.numeros, i);
  41.            }
  42.        }
  43.    }
  44. }

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class Ordenar
  6.    {
  7.        public void ordenar(int[] aOrdenar,int cTraigo)
  8.        {
  9.            int temp = 0; cTraigo++;
  10.            for (int e = 0; e < cTraigo; e++)
  11.            {
  12.                for (int i = 0; i < cTraigo - 1; i++)
  13.                {
  14.                    if (aOrdenar[i] > aOrdenar[i + 1])
  15.                    {
  16.                        temp = aOrdenar[i];
  17.                        aOrdenar[i] = aOrdenar[i + 1];
  18.                        aOrdenar[i + 1] = temp;
  19.                    }
  20.                }
  21.            }
  22.            byte filaCd = 6;
  23.            for (byte m = 0; m < cTraigo; m++)
  24.            {
  25.                Console.SetCursorPosition(12, filaCd); Console.Write("                   ");
  26.                Console.SetCursorPosition(12, filaCd); Console.Write("" + aOrdenar[m]);
  27.                filaCd++;
  28.            }
  29.        }
  30.    }
  31. }

Saludos.
Daniel
109  Programación / .NET (C#, VB.NET, ASP) / Indexadores en C# en: 27 Agosto 2013, 22:50 pm
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.-?

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class ProgramaApp
  6.    {
  7.        static void Main(string[] argumentos)
  8.        {
  9.            Entorno _Entorno = new Entorno();
  10.            _Entorno._entorno();
  11.  
  12.            Datos _datos = new Datos();
  13.            _datos._Datos();
  14.  
  15.            Console.Write("\n\n Pulse una tecla para cerrar la aplicación...");
  16.            Console.ReadLine();
  17.        }
  18.    }
  19. }
  20.  

Código
  1. using System;
  2.  
  3. namespace IndexadoresArray
  4. {
  5.    class Datos
  6.    {
  7.        private int[] numeros =  new int[10];
  8.  
  9.        public int this[byte indice]
  10.        {
  11.            get { return numeros[indice]; }
  12.            set { numeros[indice] = value; }
  13.        }
  14.  
  15.        public void _Datos()
  16.        {
  17.            Datos obj = new Datos();
  18.            byte _top = 2,hasElMom = 1;
  19.            int aux = 0;
  20.            Console.SetCursorPosition(02, _top);
  21.            Console.Write("Ingrese 10 entero(máximo 99999)");
  22.            _top += 2;
  23.            Console.SetCursorPosition(02, _top);
  24.            Console.Write("Natutal   Ordenados");
  25.            _top += 2;
  26.            for (byte i = 0; i < 10; i++)
  27.            {
  28.                while (true)
  29.                {
  30.                    Console.SetCursorPosition(02, _top);
  31.                    Console.Write("");
  32.                    if ((int.TryParse(Console.ReadLine(), out aux)) && aux < 100000)
  33.                    {
  34.                        obj[i] = aux;
  35.                        break;
  36.                    }
  37.                }
  38.                Array.Sort(numeros);
  39.                byte _topOrd = 6;
  40.                for (byte f = 0; f < hasElMom; f++)
  41.                {
  42.                    Console.SetCursorPosition(12, _topOrd);
  43.                    Console.Write("{0}", obj[f]);
  44.                    _topOrd++;
  45.                }
  46.                _top++;
  47.                hasElMom++;
  48.            }
  49.        }
  50.    }
  51. }

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)
110  Programación / .NET (C#, VB.NET, ASP) / Re: Arreglos Multidimensionales y ordenamiento en: 26 Agosto 2013, 19:10 pm
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 como en mi caso.-

Código
  1. using System;
  2.  
  3. namespace ArrayDaniel
  4. {
  5.    class Entorno
  6.    {
  7.        public void entorno()
  8.        {
  9.            Console.Title = " Array ordenado";
  10.            Console.WindowHeight = 30;
  11.            Console.WindowWidth  = 70;
  12.            Console.BackgroundColor = ConsoleColor.Blue;
  13.            Console.ForegroundColor = ConsoleColor.Yellow;
  14.            Console.Clear();
  15.        }
  16.    }
  17. }

Código
  1. using System;
  2.  
  3. namespace ArrayDaniel
  4. {
  5.    class ProgramaApp
  6.    {
  7.        static void Main(string[] argumentos)
  8.        {
  9.            Entorno ent = new Entorno();
  10.            ent.entorno();
  11.            AgregarNombres anc = new AgregarNombres();
  12.            anc.agrNombres();
  13.  
  14.            Console.ReadKey();
  15.        }
  16.    }
  17. }

Código
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. namespace ArrayDaniel
  5. {
  6.    class AgregarNombres
  7.    {
  8.        public void agrNombres()
  9.        {
  10.            int cant = 0;
  11.            while(true)
  12.            {
  13.                Console.SetCursorPosition(02,02);
  14.                Console.Write("Ingrese la cantidad de personas(máximo 10)...:");
  15.                if(Int32.TryParse(Console.ReadLine(), out cant))
  16.                {
  17.                    if (cant > 0 && cant < 11) { break; }
  18.                }
  19.            }
  20.  
  21.            Regex reg = new Regex("^[A-Za-z ]+$");
  22.            byte _top = 4;
  23.            string[,] nombres = new string[cant,2];
  24.            string codigo = "";
  25.            byte auxCodigo = 0;
  26.            for(byte i = 0; i<cant; i++)
  27.            {
  28.                auxCodigo++;
  29.                codigo = Convert.ToString(auxCodigo);
  30.                while (true)
  31.                {
  32.                    Console.SetCursorPosition(02, _top);
  33.                    Console.Write("Ingrese nombre....:");
  34.                    string linea = Console.ReadLine();
  35.                    if (!string.IsNullOrEmpty(linea) && reg.IsMatch(linea))
  36.                    {
  37.  
  38.                        nombres[i, 0] = linea;
  39.                        nombres[i, 1] = codigo;
  40.                        break;
  41.                    }
  42.                }
  43.                _top += 2;
  44.            }
  45.            Ordenar OrdenarArray = new Ordenar();
  46.            OrdenarArray.ordenar(nombres);
  47.        }
  48.    }
  49. }

Código
  1. using System;
  2.  
  3. namespace ArrayDaniel
  4. {
  5.    class Ordenar
  6.    {
  7.        public void ordenar(string [,] _array)
  8.        {
  9.            bool huboCambio = true;
  10.            byte _top = 2, col = 0;
  11.            int maxim = _array.Length/2;
  12.            while (huboCambio)
  13.            {
  14.                huboCambio = false;
  15.                for (byte Row = 0; Row < maxim-1; Row++)
  16.                {
  17.                    if (_array[Row, col].CompareTo(_array[Row+1, col]) > 0)
  18.                    {
  19.                        string auxNomb  = _array[Row, col];
  20.                        _array[Row, col] = _array[Row+1, col];
  21.                        _array[Row+1, col] = auxNomb;
  22.                        huboCambio = true;
  23.                        string auxCodi = _array[Row, col+1];
  24.                        _array[Row, col+1] = _array[Row + 1, col+1];
  25.                        _array[Row + 1, col+1] = auxCodi;
  26.                    }
  27.                }
  28.            }
  29.            Console.Clear();
  30.            Console.SetCursorPosition(02, _top);
  31.            Console.Write(" === Ordenado por nombre ===");
  32.            _top +=2;
  33.            Console.SetCursorPosition(02,_top);
  34.            Console.Write(" Código    nombre");
  35.            _top +=2;
  36.  
  37.            for (byte Row = 0; Row < maxim; Row++)
  38.            {
  39.                Console.SetCursorPosition(02, _top);
  40.                Console.WriteLine("      {0}    {01}", _array[Row, 1], _array[Row, 0]);
  41.                _top++;
  42.            }
  43.        }
  44.    }
  45. }

Saludos y hasta la proxima.-
Daniel
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines