Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - grep

#161
¿Qué procedimiento has seguido para crear el proyecto?

El primer error me dice que NO has creado un proyecto "Windows Forms Application".

Cuando creas un proyecto tipo "Windows Forms Application", la plantilla crea, entre otras cosas, un archivo Program.cs que contiene este código:

Código: csharp

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}


Toda aplicación C# tiene un método static void Main, y el primer error señala esto.

Se supone que en Pila.cs tienes una clase. No tienes definida ninguna clase Pila. Eso son los dos últimos errores.
#162
Además no creo que el código de Pila.cs sea el que has subido. Ese es el código para manejar el evento click de button1.
#163
¿Has probado ejecutando antes sudo apt-get update && sudo apt-get upgrade?

Para agregar:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

En el enlace plantean que se requiere una versión actualizada de bundler y una cierta versión de ruby.
#164
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
        public bool Vacia()
        {
            if (raiz == null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

Para que hace falta bool aqui? Tambien se puede escribir este metodo sin bool. O no?

Forma parte del protitipo del método. Si dice bool, entonces en alguna parte dentro del método debe existir un return <algún valor booleano>;

Si observas un return <algún valor booleano>; entonces el método debe tener bool (o object, pero esto es un concepto muy vago) en su prototipo.

Viendo eso, sabes lo que un método debe retornar.

Si un método es void, entonces no retorna nada.
#165
El problema es que no comprendes la idea de referencia.

Solo se puede referenciar a objetos, no a variables, campos o propiedades.

Piensa en estas variables, campos o propiedades como simples etiquetas.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Pero mira lo que dice aqui:

if (raiz == null)
{
  nuevo.sig = null;
  raiz = nuevo;
}
else
{
  nuevo.sig = raiz;
  raiz = nuevo;
}

En esta parte:

else
{
  nuevo.sig = raiz;
  raiz = nuevo;
}

En esta parte:

nuevo.sig = raiz;

Osea que el campo sig del nodo 3 referencia a raiz y raiz por su parte referencia al nodo 3.
Como es posible, entonces, que el campo sig del nodo 3 referencia al nodo 2?

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
... Osea que el campo sig del nodo 3 referencia a raiz ...

NO. El campo "sig" del Nodo 3 referencia a lo que referencia "raiz", osea al Nodo 2.

"sig" es un campo de un objeto tipo Nodo, y "raiz" es un campo de un objeto tipo Pila.

Por eso, como dije al principio, con esa linea de código NO estas referenciando a "raiz", ya que raiz es simplemente una etiqueta, no un objeto.

Si te fijas en las imágenes que he puesto, "raiz" es solo una etiqueta con una flecha. "sig" sería otra etiqueta con una flecha, no puedes tener una flecha de referencia de etiqueta a etiqueta, solo de etiqueta a un objeto (rectángulo blanco).

Por favor, lee atentamente la primera respuesta que de este hilo. Fíjate el punto (3).
#166
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Hola grep,

la variable informacion guarda el numero 3

Cuando leo esta linea: raiz = raiz.sig;

entiendo que raiz apunta al campo sig del nodo 3. Que habla en contra de que esto no es asi? Y de ser asi porque ha de ser eliminado el nodo 3?

Gracias y saludos

En C# existen dos clasificaciones de tipos:

* Tipos valor
* Tipos referencia

Los tipos valor copian, como es la variable "informacion".

Los tipos referencia referencian, como es la variable "raiz".

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Cuando leo esta linea: raiz = raiz.sig;

entiendo que raiz apunta al campo sig del nodo 3.

No. En primer lugar la variable "raiz" referencia, no apunta. Por último, no referencia al campo "sig" del nodo 3, si no que referencia a lo que referencia el campo "sig" del nodo 3.

Parece un trabalenguas, pero no es dificil de entender. Las imágenes que he subido explican la idea.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
la variable informacion guarda el numero 3

Cuando leo esta linea: raiz = raiz.sig;

... Que habla en contra de que esto no es asi?

No habla en contra. Te explico con mis palabras lo que sucede.

Código: csharp
        public int Extraer()
        {
            if (raiz != null)
            {
                int informacion = raiz.info;
                raiz = raiz.sig;
                return informacion;
            }
            else
            {
                return int.MaxValue;
            }
        }


1.- public int Extraer() Entramos en el método Extraer
2.- if (raiz != null) "raiz" referencia a un objeto que no sea null? pues si, al nodo con info 3.
3.- int informacion = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login; crear una variable de tipo int (entero, es un tipo valor) llamada "informacion" y copiar el valor del campo "info" del objeto al que referencia raiz. Como raiz referencia al Nodo 3, entonces "informacion" copia el valor 3.
4.- raiz = raiz.sig; que "raiz" referencie al objeto al que referencia el campo "sig" del objeto al que actualmente referencia raiz. Como raiz referencia al Nodo 3, y el Nodo 3 referencia al Nodo 2 en su campo "sig", entonces ahora "raiz" va a referenciar al Nodo 2.
5.- return informacion; retornar el valor que contenga "informacion". Entonces Extraer retorna el número 3.


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Y de ser asi porque ha de ser eliminado el nodo 3?

Cuando raiz referencie al Nodo 2, que sucede en el punto (4), ningún otra variable, campo o propiedad va a referenciar a Nodo 3. Por lo tanto será borrado automáticamente.
#167
Código: csharp
raiz = raiz.sig;


El estado de Pila1 cambiará, raiz ahora referenciará al nodo con información 40:

Pasas de esto:



A esto:



Como vez el nodo que tiene la información 3, que fue el ultimo nodo que insertaste, ya no es referenciado por ninguna variable. La máquina virtual de C# se va a percatar de esto, y va a borrar toda existencia de ese nodo. Esto es basicamente la característica de recolección de basura.
#168
int informacion = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login; crea una variable denominada "informacion", y copia el velor del campo "info", que se encuentra en el nodo al que referencia "raiz".

La primera vez que ejecutes el método Extraer, "informacion" va a copiar el valor 3, ya que raiz referencia al último nodo insertado, y este último nodo insertado tiene su campo info con el valor 3.

Si quieres mas o menos un dibujo, es así:



Si no comprendes esa línea, entonces estas pasando por alto conceptos fundamentales de Programación Orientada a Objetos (POO). Deberías leer un poco sobre términos como tipos (o clases), referencia y tipo valor vs tipo referencia.
#169
Tu método "Extraer" siempre va a retornar un entero.

Código: csharp

        public int Extraer()
        {
            if (raiz != null)
            {
                int informacion = raiz.info;
                raiz = raiz.sig;
                return informacion;
            }
            else
            {
                return int.MaxValue;
            }
        }


Si raiz es null, entonces lo que "Extraer" retorna es el máximo valor que puede tener una variable int (return int.MaxValue;).
#170
En un poco ambiguo hablar de un "primer nodo" ya que no sabemos si el que escribe hace referencia al nodo ingresado al principio o el nodo que la pila puede debe extraer primero.

Pero estamos hablando de una Pila, osea, una estructura que acumula objetos, en donde el primero que se puede extraer es el último que se ha ingresado.

Observa:

Código: csharp

pila1.Insertar(10);
pila1.Insertar(40);
pila1.Insertar(3);
...
Console.WriteLine("Extraemos de la pila:"+pila1.Extraer());


Vemos que main ejecuta tres veces "Insertar" y una sola vez "Extraer". El primer nodo en insertar tiene la información 10, mientras que el primer nodo que la pila debe devolver es el que tiene la información 3.

Pero verdaderamente se refiere a raiz? Si, en este caso raiz apunta al último nodo insertado (el que tiene el número 3).

Al primer nodo con el numero 10? No, ese es el primer nodo ingresado, pero el último nodo que puede extraerse.

No he comprendido la imagen que has subido,

Saludos
#171
Dudas y pedidos generales / Re:Parrot so linux
Junio 26, 2016, 11:56:17 AM
Por lo que veo esta distribución usa MATE como entorno de escritorio. Quizás tu problema es una configuración de este paquete o de su file manager "caja".

Puedes ejecutar:

Código: text
dconf-editor


Esto abre una ventana de configuración. Ahora te mueves a org -> mate -> desktop y te puedes fijar si la opción show-desktop-icons se encuentra deshabilitada.
#172
clock_t clock(void) devuelve el número de clock ticks desde el comienzo del programa. Lo que se suele hacer es llamar a esta funcion al principio y al final de un intervalo, se restan los dos valores, y se divide por CLOCKS_PER_SEC (el número de clock ticks por segundo).

Podrías hacer algo como esto:

Código: c

#include <time.h>

int main (void)
{
    clock_t start, diff;
    int elapsedsec;
    int sec = 10;
    int iterations = 0;

    while (iterations < 5) {
        start = clock();

        while (1) {
            diff = clock() - start;
            elapsedsec = diff / CLOCKS_PER_SEC;

            if (elapsedsec >= sec) {
                /*algo para hacer*/

                iterations++;
                break;
            }
        }
    }
   
    return 0;
}


no lo he probado pero la idea creo que se entiende.
#173
Dudas y pedidos generales / Re:C programación
Junio 24, 2016, 11:22:40 AM
¿Qué sistema operativo y qué compilador usas?

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
EOF -> el manual dice que es o que devería devolver 0 o 1

¿Estas en Linux?. Este enlace mestra el valor de EOF:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Lo que quizás te resulte dificil de entender es que EOF no es realmente un caracter. A pesar de que stdio.h defina a EOF como un entero int, esto es solo una "señal" de que el buffer de entrada ha llegado a su final.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
me pide en un ejercicio que imprima en pantalla el valor de  EOF  con el código que he puesto  y solo me devuelve los carácteres que introduzco

no comprendo la idea.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
según el manual pues si no hay mas datos a la  entrada se devuelve EOF pero aunque pulse intro y todo lo que crea que es para parar un programa no me devuelve EOF y sigue esperando una entrada

Un intro (o <ENTER>) solo devuelve '\n' en linux o "\r\n" en windows.

"Si no hay mas datos", mientras siguas presionando teclas obviamente el programa sigue recibiendo entrada. Si no presionas nada, igualmente el programa sigue esperando entrada.

La forma de deternelo es mandando una "señal" desde la terminal. Esto puede ser un EOF o una terminación a la fuerza.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Lo de acomodar el código lo tenía así porque como estoy aprendiendo dejo comentarios y tenía espacios en medio al copiarlos.

Puedes utilizar este indenter antes de pegar el código directamente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#174
No he usado Telegram, pero tengo entendido que si es posible crear grupos sin compartir el número de teléfono. Solo se necesita el nombre de usuario.
fuente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Dos tecnologías muy aceptadas para grupos son IRC y Google Groups. También existen clientes para dispositivos móbiles como HoloIRC y AndChat.

Si prefieres tener un registro de todo lo que se habla es mejor un Google Groups.
#175
Dudas y pedidos generales / Re:C programación
Junio 24, 2016, 09:25:37 AM
Unas cuantas cosas,

a pesar de que tu compilador lo permita, intenta codificar de una forma más clara. Por ejemplo

Código: c
main()


es ambiguo. Si no pretendes recibir entradas, entonces es mejor esta forma

Código: c
int main(void)


más un
Código: c
return 0;
al final de la función.

Y por favor acomoda las líneas de código. A pesar de que el programa tiene pocas líneas de código, puedes hacerlo más legible.


Ahora bien, con respecto a tu pregunta, no puedes imprimir EOF porque tienes un while que dice "mientras c sea distinto a EOF, entonces entro". Si tienes EOF entonces no entras.

Para ingresar EOF en tu terminal debes presionar CTRL+D en Linux o CTRL+Z en Windows. De esta forma getchar() recibe un EOF.

Si quieres imprimir el valor de EOF entonces puedes hacer:

Código: c
printf("EOF: %d", EOF);


Si quieres imprimir antes de terminar puedes hacer esto:

Código: c

#include <stdio.h>

int main (void)
{
    int c = '\0';
   
    while (c != EOF) {
        c = getchar ();
        putchar (c);
    }

    return 0;
}


El valor de EOF suele ser -1, lo encuentras en stdio.h.
#176
¿Lo que quieres es hacer un backup de tu cuenta de mail?

Con cualquier cliente IMAP, como Thunderbird, puedes hacer un backup de tu correo.

También tienes herramientas específicas como getmail y fetchmail.

thunderbird:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

getmail:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

fetchmail:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#177
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Si, en poco tiempo lo subiré a mi cuenta de github (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login), después de que arregle un poco el código, no soy muy bueno programando así que para quienes tengan experiencia igual les da un poco de asco mi codigo.

Genial, voy a estar atento y aportaré con tiempo.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Yo siempre suele crearme un pequeño bloc de notas para anotarme la contraseña o incluso la fuente de donde lo he bajado.

Yo hago lo mismo.
#178
Si te ha resultado útil, no dudes en que le puede resultar útil a alguien más. Me parece una buena idea.

Si liberas el código, puedes obtener más aportes en tu desarrollo.
#179
Dudas y pedidos generales / Re:SPY NET 2.6
Junio 21, 2016, 04:29:21 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#180
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
... Estoy intentando meterme en esto de la seguridad informática ... estoy buscando un poco de ayuda para planificar antes de comenzar a dar ningun paso importante ...

Aprende inglés, aunque sea a leer y escuchar. Lo vas a necesitar.


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
¿Cómo aprendo un lenguaje de programación por mi cuenta sin un curso?
¿Por donde comienzo?
¿Cómo lo hago?
Un libro o varios, o tutoriales + Perseverancia.

Los libros y tutoriales varian de muy básicos a nivel avanzado/experto. Busca, si no le entiendes entonces busca otro o pregunta.

Si nunca programaste, entonces puedes buscar videos. Pero no te acostumbres. Las mejores cosas se encuentran escritas.


Lee y prueba. Así afianzas tus conocimientos del lenguaje.

Si no entiendes intenta encontrar respuesta buscando. Aunque no lo creas, de esta forma te auto-evaluas de tu conocimiento del lenguaje.

Si no encuentras respuesta entonces pregunta.

Si tus programas no funcionan, antes de buscar y/o preguntar, revisa tus programas. Así te vuelves un buen lector y corrector (depurador) de código.

Intenta leer código de terceros. Si no entiendes alguna parte, entonces busca.

Cada lenguaje tiene sus términos o vocabulario, esto es clave para comunicarse con las personas.


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
¿Tengo que aprender algo más antes de adentrarme en cualquier lenguaje de programación?

Tener una idea de computación e informática. Tienes un aparato electrónico, este aparato botea un sistema operativo, y lo que programas comunmente va a correr sobre este sistema operativo o sobre otro programa que se encarga de correr tu programa (un intérprete).


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
... me he informado que el lenguaje de programacion que utiliza exploit es cuby (No sé si esa información es real o no..) ...

Los exploits se programan con lenguajes de programación. Los lenguajes no utilizan exploits.

El lenguaje se llama Ruby, no cuby. Pero yo te recomiendo Python, en internet vas a encontrar mucho material con este lenguaje.

La mayoría de los exploits estan programados en Python, C o C++, PHP, o Ruby. Quien programa exploits conoce bastante bien el entorno que lo rodea.

Si quieres explotar programas puede que necesites conocimiento del lenguaje en que se encuentra progrmado ese programa, de tu sistema operativo, como funciona un proceso (un programa corriendo sobre tu sistema operativo), Networking, e Ingeniería Inversa.

Si quierres explotar software Web, entonces puede que necesites conocer javascript, HTML, el lenguaje que utiliza el servidor (como PHP, Ruby, Python, etc.), sistema operativo sobre el que funciona el servidor y el servidor mismo.


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
He encontrado una guía muy buena (Porcierto, la dejaré al final del post) en la cual te enseña más o menos cuby; y he comenzado a leermela un poco.. pero no le quiero dar caña de verdad hasta saber si estaría bien comenzar por ese.. o busco otro.. o qué hago.

Lee, si no entiendes entonces pregunta o buscas otro tutorial o libro.



Como puedes ver, vas a necesitar conocer tu sistema operativo y más de un lenguaje de programación para programar exploits. No te desanimes, es muy fascinante el camino.

Saludos