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 - Littlehorse

#371
Programación C/C++ / Ayuda con Pilas y Colas
26 Octubre 2010, 18:57 PM
El mensaje 'Ayuda con Pilas y Colas' fue bloqueado
HeavyPsychedelic, bienvenido/a al foro. En esta sección no se hacen tareas!
Leer reglas:
http://foro.elhacker.net/reglas
#372
Si el programador utiliza una aplicación tuya, también es un usuario ;D. Las aplicaciones pueden ir destinadas a cualquier tipo de usuario, incluyendo por supuesto, programadores.

#373
Citar-puedo presentar mi codigo en un repositorio tipo GIT o SVN?
Como poder, podes, pero tal vez quien no tenga experiencia con ese tipo de servicios se pueda marear un poco por lo tanto yo te recomendaría que eso lo dejes como un extra en caso que sea un proyecto, en el cual por supuesto, desees que otras personas participen terminado el concurso.

Citar-Debo presentar codigo y ejecutable ya compilados o puedo dejar solo codigo y makefile?
Código, y ejecutable. Ten en cuenta que muchos no podrán/sabrán/querrán compilar la aplicacion por ende necesitan el ejecutable para poder probarla y poder votar correctamente.

Citar
-Debe ser multiplataforma o puedo elegir solo hacerlo para unix?
No hace falta que sea multiplataforma.

Espero que participes!

#
Agrego tus preguntas al FAQ.

Saludos!
#374
Este tema tiene como objetivo recopilar términos de uso frecuente en este apartado del foro y definirlos de forma informal teniendo en cuenta el contexto en el que se encuentran. Es decir, no se trata de una definición de diccionario ni de un artículo de la wikipedia entero, se trata de una breve definición añadiendo datos interesantes relacionándolos con el subforo.

Pueden aportar los términos que quieran con o sin su definición correspondiente, los iremos poniendo en este post y creando el glosario. Los términos pueden estar compuestos por varias palabras y las definiciones se modificaran para crear un conjunto mas o menos uniforme (extensión, registro del lenguaje utilizado...).

Esperamos hacer entre todos un recopilatorio de términos que sea útil y sobre todo ameno a la lectura.

Gracias por participar!




Glosarios creados:
Criptografía
Redes
Programación
Seguridad
Hacking Wireless



Indice alfabético

A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z




Terminos:

A
Acumulador
Algoritmo
Alpha


B
Beta
Bottom-Up
Buffer



C
Camelcase
Compilador
Constante



D


E


F


G


H


I
Interprete



J


K


L


M


N
Nivel de complejidad:


O


P
Pascalcase
Pseudocodigo



Q


R


S


T
Top-Down:


U


V
Variable



W


X


Y


Z




Acumulador: Variable que sirve para llevar una suma o el resultado de un conjunto de operaciones.

Algoritmo: Por definición es un conjunto finito de instrucciones para llevar a cabo una tarea, y de esta forma resolver un problema puntual. Estas instrucciones deben ser precisas y de ser posible, eficientes.
Los algoritmos se implementan en forma de sentencias en el o los lenguajes de programación que se hayan elegido, dependiendo de esto ultimo el paradigma utilizado.
Los algoritmos pueden ser representados en forma gráfica, comúnmente utilizando diagramas de flujo. De esta forma son facilmente comprensibles, sobre todo para personas no relacionadas con la programación.

Alpha: Una versión Alpha es una versión "precoz" de un software. Una versión alpha puede no contener todas las características de la versión final. Normalmente todo software pasa, antes de su lanzamiento, por dos etapas. Esta es la primera etapa (Alpha) y normalmente está disponible solo para usuarios internos y desarrolladores. La segunda etapa, beta, generalmente implica a un número limitado de usuarios pero estos sí pueden o no ser internos. Las versiones alpha en su mayoría de los casos no son estables y no es recomendado su uso para usuarios finales.

Beta Implementa todas las características de los requerimientos iniciales. Posiblemente tenga algunos fallos menores y es usada normalmente para testing y demostraciones. Los usuarios que usan esta versión son llamados [Beta Testers] y normalmente su función es la de reportar los fallos para que sean corregidos en la versión final.

Bottom-Up: Método opuesto al Top-Down. Consiste en afrontar el problema desde los niveles de complejidad más bajos, partiendo desde la base de código a usar, e ir luego construyendo los niveles de complejidad mas altos hasta completar la solución.

Buffer: Porción de memoria que se utiliza para almacenar datos en pos de procesarlos, validarlos u realizar cualquier otro tipo de operación con ellos.

Camelcase: Es similar a PascalCase, salvo que la primera letra de la primera palabra va en minúsculas. Ejemplo: numeroCuenta.

Compilador: Es un programa que se encarga de generar una aplicacion partiendo de un código fuente base, traduciendo este ultimo a un lenguaje que la maquina sea capaz de comprender (Código maquina, o usualmente denominado código nativo). El objetivo principal de los compiladores es permitir a los programadores codificar en un lenguaje de programación mucho mas cercano a como piensa un ser humano.

Constante: Valor o conjunto de valores que permanecen invariables durante la ejecución de la aplicación.

Interprete: Cumple un objetivo similar al del compilador solo que implementado de una manera bastante distinta. El interprete analiza, traduce y ejecuta las sentencias a medida que se van requiriendo, ya sea partiendo de un código fuente base u de un código intermedio. Esto genera un rendimiento menor a un programa compilado, ya que las tareas que se realizan en tiempo de compilación, un lenguaje interpretado debe realizarlas en cada ejecución, no obstante los lenguajes interpretados poseen mayor flexibilidad, dado que no dependen de la maquina en la cual están siendo ejecutados si no del interprete.


Nivel de complejidad: Un nivel de complejidad se entiende como una división de la parte que forma una solución a un problema vista esta como una gran pirámide, donde un conjunto de funcionalidades forman otra o varias otras, que a su vez pueden ser usadas para formar otras tantas.

Top-Down: Método que consiste en afrontar el problema desde los niveles de complejidad mas altos, e ir luego solucionando las partes del problema que permite que el código anterior funcione.

Pascalcase: Es una práctica de programación que consiste en declarar funciones y/o variables mediante varias palabras sin espacios, escribiendo en mayúsculas la primera letra de cada palabra. Ejemplo: CreateRemoteThread.

Pseudocodigo: El pseudocodigo es un falso lenguaje de programación donde sus características mas importantes es su semejanza con el lenguaje humano y la posibilidad de representar soluciones en forma abstracta.
Principalmente utilizado por los aprendices de programación para adentrarse en la lógica y en el desarrollo de algoritmos, dado que el pseudocodigo es una manera abstracta de representarlos sin necesidad de involucrarse con un lenguaje en especifico. No obstante también es utilizado por programadores profesionales para representar en forma simple y comprensible las soluciones que hayan creado en pos que otros programadores puedan comprender mas fácilmente la lógica utilizada, o bien para representar las ideas que se generen en la etapa previa del desarrollo.

Variable: Básicamente es un contenedor, una estructura que contiene los datos que se le hayan asignados hasta que se le asigne otro valor u el programa finalice su ejecución. Por supuesto el escenario puede variar dependiendo de los lenguajes, lo que se este haciendo y como, pero la idea principal es ver a una variable como un espacio en memoria al cual le podemos asignar datos, que dependerán del tipo que sea la variable.

#375
Podes hacerlo en esta sección siempre que ademas de la aplicacion también adjuntes el código fuente de la misma.

Saludos
#376
@Mazard

Yo aclare el tema de las posibilidades en C++ porque en los posts anteriores se podía entender entre lineas que en C++ no se podía utilizar POO perfectamente. Mas allá de que sabia que no era eso lo que quisiste decir, es como que flotaba esa idea.
De Eiffel yo solo conozco la torre :xD, lo mencione porque la conclusión era que para aprender POO lo mejor es un lenguaje OO puro, sin embargo ningún lenguaje OO puro había sido mencionado.
De hecho, no recomiendo aprender ni Eiffel, ni Smalltalk, ya que no considero que aporten nada para aprender ni C++, ni Java, ni C#. Lo importante para aprender POO es que el lenguaje soporte el paradigma completamente y nada mas.

En cuanto al resto, estoy de acuerdo a medias por el hecho que el usuario viene de C, por lo tanto esta claro que tiene que saber reconocer los elementos de estructurada a la hora de meterse con C++.
Otra historia es cuando C++ es el primer lenguaje, se tarda un tiempo en dejar la estructurada y se tarda otro tiempo mas en programar orientado a objetos en lugar de basado en objetos. En ese caso si estaría de acuerdo con lo ultimo que dijiste.

Saludos!
#377
Exacto, uno de los objetivos de ambos lenguajes es mantener la simplicidad a toda costa, y la herencia múltiple adiciona demasiada complejidad. Por esa misma razón, Java tampoco permite la sobrecarga de operadores.


Citar
tienes razon el problema es que trato de buscar los fundamentos de la poo y solo encuentro articulos relacionados con otros lenguajes java, c++, javascript...

En las referencias de wikipedia tenes varios:


Saludos

#378
Programación General / Re: Programa ajedrez
22 Octubre 2010, 21:45 PM
Es un tema bastante largo como para resumir en pocas lineas. Fijate si te sirven estos links:



#379
Decir que un lenguaje es OO puro es nada mas ni nada menos que decir que el lenguaje lo es, y no de las posibilidades disponibles del propio lenguaje respecto de la orientación a objetos.

C++ es multiparadigma y por supuesto eso le impide ser OO puro, pero eso no quita que se puedan implementar perfectamente todos los conceptos relacionados a la POO. Esto lo aclaro porque entre lineas se puede entender que C++ corre con una especie de desventaja por no ser OO puro, y eso desde mi punto de vista es incorrecto.

Tomando el concepto que un lenguaje OO puro es mejor para aprender POO, entonces por que nadie aquí todavía menciono a SmallTalk o Ruby?
Si un factor primordial es la salida laboral rápida, yo te recomendaría C# siempre que vaya acorde a tus objetivos, ya que tiene una curva de aprendizaje mas amigable que el resto, pero la verdad es que C++ es la mejor transición si venís de C.

En cuanto a lo de si Java y C# son OO puros, la verdad es que si nos ponemos en detalle lo podemos discutir por un rato largo, pero me parece que seria marear mucho el tema principal.
Solo dejo esto:

CitarLanguages called "pure" OO languages, because everything in them is treated consistently as an object, from primitives such as characters and punctuation, all the way up to whole classes, prototypes, blocks, modules, etc. They were designed specifically to facilitate, even enforce, OO methods. Examples: Smalltalk, Eiffel, Ruby, JADE.


CitarUna buena alternativa a Java como primera experiencia es C#, que viene a ser una mejora de Java pero cerrado a sistemas de Microsoft.
Si te leyese Leyer  ;D. C# no es ni una mejora ni nada similar, son dos lenguajes distintos con sus ventajas y desventajas, y de hecho también existen proyectos como Mono


Saludos! :D
#380
Programación C/C++ / Re: Ayuda con ejercicio!
22 Octubre 2010, 17:14 PM
Vas a calcular números en coma flotante o enteros? lo que te da son advertencias por posibles perdidas de datos. Revisa bien la teoría respecto de los tipos de datos en C.

Saludos