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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: 1 2 [3] 4
21  Programación / Programación C/C++ / Arreglos,punteros y sprintf.- en: 12 Diciembre 2013, 21:46 pm
Hola a todos.
Estoy estudiando punteros y me encuentro con este inconveniente que no puedo resolver, bueno no les doy más explicaciones porque en la captura queda claro que en la cadena concatenada me está tomando el salto de línea de las cadenas  individuales, eso es lo que deseo resolver.-



Código
  1. #include <stdio.h>
  2.  
  3. #define MAX 30
  4.  
  5. int main(void){
  6. char nombre_completo[93], *ptrNC = nombre_completo,
  7. primer_nombre[MAX+1], *ptrPN = primer_nombre,
  8. segundo_nombre[MAX+1], *ptrSN = segundo_nombre,
  9. apellido[MAX+1], *ptrAP = apellido;
  10. int longitud;
  11.  
  12. printf("\n\n Ingrese primer nombre.....: ");
  13. fgets(ptrPN, MAX, stdin);
  14. printf("\n Ingrese segundo nombre....: ");
  15. fgets(ptrSN, MAX, stdin);
  16. printf("\n Ingrese apellido..........: ");
  17. fgets(ptrAP, MAX, stdin);
  18.  
  19. longitud = sprintf(ptrNC, "%s %s %s", ptrPN, ptrSN, ptrAP);
  20.  
  21. printf("\n El nombre completo es: %s.\n", ptrNC);
  22. printf("\n Total de caracteres..: %d", longitud);
  23.  
  24. return 0;
  25. }
  26.  

Saludos.
Daniel

22  Programación / Programación C/C++ / ¿Una manera distinta de ordenar arreglos/vectores.-? en: 3 Diciembre 2013, 21:03 pm
Hola amigos.
Estoy en un verdadero inconveniente con esto de ordenar un arreglo, no pretendo redescubrir la rueda, simplemente estoy practicando y hace mucho tiempo se me antojó esta manera de ordenar pero no logro que funcione.-
Con respecto a la cantidad de elementos del arreglo y hacerlo en una función luego lo arreglo, el tema es que alguna mente iluminada me diga dónde está el error.-
Debo aclarar que en algunos casos funciona, me parece que el error se produce cuando el menor/mayor arrancan muy cerca de los extremos.-   

Código
  1. #include <stdio.h>
  2.  
  3. void mostrar(int numeros[]);
  4.  
  5.  
  6. int main(void){
  7. int numeros[] = {77,58,7,19,62,99,44,49,15,33};
  8. int menor=9999, mayor=0, pos_men=0, pos_may=0, men_cam=0, may_cam=0,i, j=0, m=9;
  9.  
  10. printf("\n\n");
  11. mostrar(numeros);
  12. printf("\n\n");
  13.  
  14. for(i=0; i<5; i++){
  15. men_cam = numeros[i];
  16. may_cam = numeros[m];
  17. for(j=i; j<=m; j++){
  18. if(numeros[j] < menor){
  19. menor = numeros[j];
  20. pos_men = j;
  21. }
  22. if(numeros[j] > mayor){
  23. mayor = numeros[j];
  24. pos_may = j;
  25. }
  26. }
  27. numeros[i] = menor;
  28. numeros[pos_men] = men_cam;
  29.  
  30. numeros[m] = mayor;
  31. numeros[pos_may] = may_cam;
  32. mostrar(numeros);
  33. printf("--> Menor=%d [%d] --- Mayor=%d [%d]", menor, pos_men+1, mayor, pos_may+1);
  34. menor=9999;
  35. mayor=0;
  36. m--;
  37. }
  38. printf("\n\n");
  39. mostrar(numeros);
  40.  
  41. return 0;
  42. }
  43.  
  44.  
  45. void mostrar(int numeros[]){
  46. int t;
  47. printf("\n");
  48. for(t=0; t<10; t++){
  49. printf(" %3d ", numeros[t]);
  50. }
  51. }
  52.  



Bueno espero ayuda.-
Saludos.
Daniel
23  Programación / Programación C/C++ / Acceder de forma individual a cada digito de un número entero(sin sprintf) en: 15 Noviembre 2013, 22:46 pm
Hola a todos.
Esta es la manera que estoy usando para poder acceder de forma individual a cada unos de los dígitos de un número, alguien sabe si se puede hacer lo mismo pero a mano o sea sin usar sprintf.- :huh: :huh: :huh:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4. #include <ctype.h>
  5.  
  6. int main(void) {
  7. int numero, i, longitud, ok = 0, ch;
  8. char cad[11];
  9.  
  10. do{
  11. system("cls");
  12. printf("\n Ingresa un numero entero(maximo %d)....: ", INT_MAX);
  13.        ok = scanf("%d", &numero) == 1 && numero >= 1 && numero <= INT_MAX;
  14.        while ((ch = getchar()) != EOF && ch != '\n');
  15. }while(!ok);
  16. sprintf(cad,"%d",numero);
  17. longitud = strlen(cad);
  18.  
  19. for(i = 0; i < longitud; i++){
  20. printf("\n Posicion[%d] %c ", i+1, cad[i]);
  21. }
  22.  
  23.        return 0;
  24. }

Bueno eso es todo.-
Un saludo.
Daniel
24  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
25  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.
26  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)
27  Programación / .NET (C#, VB.NET, ASP) / Arreglos Multidimensionales y ordenamiento en: 24 Agosto 2013, 20:44 pm
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
 
Código:
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 que no les resulte demasiado tedioso y puedan ayudarme.-

Un gran abrazo para todos.
Daniel
28  Programación / .NET (C#, VB.NET, ASP) / Problemas con clase,objetos y propiedades en: 3 Agosto 2013, 17:07 pm
Hola a todos.
Bueno no puedo descubrir por mi mismo que estoy haciendo mal,el programa no me arroja ningún error pero no me imprime los datos que están guardados en la propiedades de la clase Datos.-
Yo consideraba que con crear un objeto en la clase imprimir de la clase Datos lo podía hacer pero evidentemente algo estoy haciendo mal.-

Código:
using System;

namespace Propiedades
{
class ProgramaAPP
{
public static void Main(string[] args)
{
Entorno entorno = new Entorno();
Datos DatosCte = new Datos();
Imprimir ImprimieCte = new Imprimir();

entorno._Entorno();
DatosCte.datos();
ImprimieCte._Imprimir();
}
}
}


Código:
using System;

namespace Propiedades
{
public class Datos
{
public string Nombre { get; set; }

public double Sueldo { get; set; }

public void datos()
{
Datos dtos = new Datos();
string lineas = "";
do
{
Console.SetCursorPosition(02,02);
Console.Write("Ingrese nombre completo....:");
lineas = Console.ReadLine();
}while(string.IsNullOrEmpty(lineas));
        dtos.Nombre = lineas;

        bool resultado;
        double temSueldo;
        while(true)
        {
        Console.SetCursorPosition(02,04);
        Console.Write("Ingrese el sueldo mensual..:");
        resultado = double.TryParse(Console.ReadLine(), out temSueldo);
        if(resultado && temSueldo != 0)
        {
        break;
        }
        }
dtos.Sueldo = temSueldo;
}
}
}


Código:
using System;

namespace Propiedades
{
public class Imprimir
{
public void _Imprimir()
{
Datos idc = new Datos();

Console.SetCursorPosition(02,08);
Console.Write("El cliente se llama...: {0} y gana mensualmente...$ {1}" , idc.Nombre,idc.Sueldo);

Console.SetCursorPosition(02,10);
Console.Write("Presione una tecla para cerrar la aplicación...");
Console.ReadKey();

}
}
}


Código:
using System;

namespace Propiedades
{
public class Entorno
{
public void _Entorno()
{
Console.Title = " Práctica con propiedades";
}
}
}

Estoy para el cachetazo psicológico, porque me suena que estoy cometiendo un error infantil.-

Novlucker como notaras implemente las propiedades automáticas.-

Saludos y desde ya muchas gracias.-
Daniel
29  Programación / .NET (C#, VB.NET, ASP) / Sobrecarga de operadores en C# en: 29 Julio 2013, 19:52 pm
Hola a todos.
Alguien me puede dar una mano con esto, llevo días leyendo sobre el tema y bajando ejemplos y no logro entender esto de la sobrecarga de operadores, por Ej. ¿es muy distinto hacer lo mismo con un bucle foreach para sumar 2 vectores y poner el resultado en otro?.-

Fuente:
http://www.csharpya.com.ar/detalleconcepto.php?codigo=197&inicio=60


Bueno, no se me ocurre nada más, espero alguna aclaración.-
Saludos.
Daniel
30  Programación / .NET (C#, VB.NET, ASP) / Array y propiedades en c sharp en: 22 Julio 2013, 00:23 am
Saludos a todos.
Alguien me podria enseñar como aplico las propiedades en el siguiente código-

Código:
using System;

namespace Array
{
    public class ingreso
    {
        public void datos()
        {
            string[] clientes = new string[5];
            byte i = 0;
            byte delTop = 2;

            while (i < 5)
            {
                Console.SetCursorPosition(02,delTop);
                Console.Write(" Ingrese nombre y apellido del Cliente....:");
                string linea = Console.ReadLine();
                if (!string.IsNullOrEmpty(linea))
                {
                    clientes[i] = linea;
                    delTop +=2;
                    i++;
                }
            }
           
            foreach(string ver in clientes)
            {
                Console.WriteLine("Clientes...:" + ver);
            }
        }
    }
   
    class Program
    {
        static void Main(string[] args)
        {
            ingreso ctes = new ingreso();
            ctes.datos();

            Console.ReadKey();
        }
    }
}

Saludos y hasta la proxima.
Daniel
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines