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

#761
Cita de: patilanz en 20 Febrero 2014, 07:48 AM
Hola ppr lo que he entendido todo se realiza con librerías del sistema operativo o estándares ? Si quiero reproducir un sonido que se conecta con los drives de sonido no puedo sin usar una api?

Hay mecanismos para comunicarse directamente con los drivers... lo que sucede es que si bajas a ese nivel te encontrarás con el problema de que tus aplicaciones no van a funcionar en equipos diferentes al tuyo.

La razón es que los drivers son algo que está muy cercano al hardware y, por tanto, es muy dependiente del mismo. Quiero decir, si cambia el hardware cambian los drivers... y si tú en tu programa no añades la compatibilidad necesaria para detectar, reconocer y utilizar al menos los drivers más comunes del mercado tu aplicación no servirá para mucho.

El sistema software de un equipo se estructura en capas. Las capas más bajas y más cercanas al hardware son altamente dependientes del mismo... la finalidad de las capas más altas es proporcionar un entorno independiente y aislado a través del cual sabes que tu código siempre va a funcionar, independientemente de lo que haya por debajo.

PD.: no vas a aprender más por programar a bajo nivel, son cosas distintas y cada una tiene su lugar y sus usos.
#762
Programación C/C++ / Re: Funcion recursiva
19 Febrero 2014, 14:47 PM
Cita de: Albertocn en 19 Febrero 2014, 14:46 PM
¿Y cómo le hago para que en vez de arrojarme el resultado, me arroje el procedimiento del factorial paso por paso? Es para dar a entender al que ve el resultado en pantalla cómo funciona el factorial de un numero.

Pon un printf dentro de la función factorial... pero dudo que eso te aporte algo.
#763
Programación C/C++ / Re: Web scrape
19 Febrero 2014, 14:46 PM
La opción de engelx es bastante sensata.

Al final lo más lógico es que se acabe llamando a un servicio Web que proporcione los datos en algún formato que esperemos sea estándar ( XML por ejemplo ).

En ese caso tendrías que analizar la forma en la que accedes a dicho servicio web para solicitar los mismos datos... después los procesas y los muestras en tu aplicación.
#764
Programación C/C++ / Re: Funcion recursiva
19 Febrero 2014, 08:24 AM
int factorial(int n)

La función factorial te devuelve un entero... recógelo en el main y muéstralo con un printf.
#765
Programación C/C++ / Re: Macros en C
19 Febrero 2014, 08:22 AM
Cita de: m@o_614 en 19 Febrero 2014, 03:35 AM
muchas gracias por sus respuestas una ultima duda, si yo tengo en un switch varios cases que van a realizar las mismas operaciones,por ejemplo:


switch(car)
{
               case '1':
               case '2':
               case '3':
               case '4':
               case '5':
               case '6':
               case '7':
               case '8':
               case '9':
               ........
               ........
               default:
                  printf("Error");
           }
           break;


podria yo juntas los cases 1,2,3,4,5,6,7,8,9 en un solo case, llamado por ejemplo: IDM y que ese IDM fuera una macro que tuviera definida como

#define IDM if(car > 0 && car < 10) para asi poder ahorrarme lineas de codigo, puede una macro contener un condicional (un if en este caso)???

gracias

Sinceramente deberías evitar el uso de macros más allá de lo estrictamente necesario.

Usar macros ofusca el código y lo vuelve, normalmente, más ilegible, ya que para comprender el código tienes que "explotar" tú manualmente las macros para intentar adivinar el código resultante.

Además el uso de macros dificulta las tareas de depuración.

En C yo limitaría el uso de macros a:

* Definir valores constantes para no tener que poner los valores "a pelo" en el código
* Para generar código multiplataforma
* Para nada más.
#766
Cuando uno decide que quiere dedicarse... no se, a pintar por ejemplo, su primera obra no acaba pareciéndose en nada a un Goya... sus primeros pasos serán torpes y su estilo lo irá encontrando por el camino a base de perfeccionar su técnica.

Nadie nace sabiendo...ni tu ni yo ni nadie... por qué te iban a salir los programas a la primera?? Da gracias de que no es así, de otra forma no aprenderías absolutamente nada.

Aprender a programar es como todo, práctica, paciencia e invertir tiempo.

#767
Hay muchas formas de programar absolutamente lo mismo... la forma de pensar de cada uno es un mundo.
#768
Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
int main ()
{
  int matriz[10];
  int valor = 4;
  for (int i=0; i < 10; i++)
{
    matriz[i] = valor;
    valor += 4;

    std::cout << " DIRECCIÓN: " << &matriz[i];
    std::cout << "| VALOR: " << matriz[i] << std::endl;
  }
return 0;}
#769
Cita de: EzianGES en 18 Febrero 2014, 15:13 PM
1 ) Mayúsculas te referís con poner en mayúsculas las iniciales? Generalmente uso mi_funcion, y en nombres de clases uso mayúsculas para iniciales jaja. Me di un capricho :P

Quería decir negrita...

Cita de: EzianGES en 18 Febrero 2014, 15:13 PM
2) Es porque estoy experimentando y quería ver alguna noobeada.

Para eso intenta cogerte algún manual, te propondrá prácticas con cierto sentido y orden.

Cita de: EzianGES en 18 Febrero 2014, 15:13 PM
3) No llegué a POO en C++, no conozco la sintáxis :P Usé estructuras para comprenderlas mejor, al principio no me funcionó, hasta que entendí un poco (?)

En serio, busca manuales en internet, es la mejor forma de aprender.

Cita de: EzianGES en 18 Febrero 2014, 15:13 PM
6) ¿A qué te referís con "extraño"?

Lo suyo sería pasar el vector directamente en vez de almacenar la posición en memoria en un puntero y luego trastear con el puntero a discrección... que sí, que funciona, pero no es desde luego un mecanismo ni elegante ni seguro ni sencillo de mantener.

Cita de: EzianGES en 18 Febrero 2014, 15:13 PM
¿Los punteros están bien utilizados? Es decir, ¿vos usarías punteros en esta situación?

Como bien dices se trata de practicar, pero a este ejercicio no le veo demasiado sentido, busca un manual y haz las prácticas que te propone... si quieres entonces pásame tu versión y te comento cómo lo habría hecho yo.
#770
1. No escribas en mayúsculas negrita, queda feo.

2. En el siguiente código:

Código (cpp) [Seleccionar]

int valor;
int *ptr_valor;
valor = 4;
ptr_valor = &valor;
puntero = n;
for (int i=0; i < 10; i++) {
n[i] = *ptr_valor;
showMemoryCellInfoTab(puntero);
puntero++;
*ptr_valor += 4;
}


No entiendo el uso de ptr_valor... de hecho podrías hasta eliminar esa variable:

Código (cpp) [Seleccionar]

int valor = 4;
puntero = n;
for (int i=0; i < 10; i++) {
n[i] = valor;
showMemoryCellInfoTab(puntero);
puntero++;
valor += 4;
}


3. Deberías evitar el uso de variables globales. Tal vez sería conveniente crear una clase para gestionar las funciones MemoryCell

4. "n" no dice nada para el nombre de un vector, deberías poner nombres más claros.

5. Queda raro eso de mezclar en tu propio código nombres en español e inglés.

6.  La forma de acceder a "n" en GetMemoryCellInfo y showMemoryCellInfoTab son extraños.