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 - 08l00D

#22
Cita de: Littlehorse en 13 Enero 2011, 20:29 PM
No, en C++ bool es un tipo de dato primitivo aparte. En C, desde C99 como bien decís, se define mediante macros en stdbool.h, pero es al día de hoy que se sigue definiendo aparte no solo por retrocompatibilidad, también por claridad de código.
_Bool como puse arriba es una palabra reservada por tanto nuevo tipo... y te podes dar cuenta por 2 cosas no se necesita incluir ningun archivo de cabecera (que tenga un typedef, definicion de constante, enumeracion, etc) para poder declarar variables con _Bool y la otra es que las palabras reservadas(luego del estandar) suelen llevar como primer caracter el guion bajo.. al igual que _Complex _Imaginary .. tambien introducidos en C99...
bool en stdbool.h si es una macro... no dije que no lo fuera


Cita de: Littlehorse en 13 Enero 2011, 20:29 PM
No esta establecido que sea una mala practica no utilizar NULL. Es simplemente una cuestión de estilo que se suele aplicar mas que nada en código critico donde se requiera dejar bien en claro que se esta tratando con punteros, pero no mas que eso.

Saludos
Si tenes razon, lo dije sin ser demasiado objetivo... en lo personal no me gusta dejar al compilador que haga ese tipo de conversiones (de constantes a punteros) por que hay situaciones en donde el compilador no es capaz de realizar la conversion...
por ejemplo.. en el paso de un argumento a una funcion que espera un puntero, si la funcion no tiene prototipo el cual no es obligatorio en C, se le esta pasando un int ... en vez de (void *)(0) ...
ademas para mi le da mas legibilidad al codigo...es lo mismo que lo de true o false.. gustos personales
#23
Cita de: Littlehorse en 12 Enero 2011, 23:44 PM
Por otro lado, el tipo de dato bool no existe en C, solo en C++
Saludos

En realidad si existe en C.. se implemento a partir del estandar C99..
se puede utilizar como _Bool ... o bool (incluyendo <stdbool>, donde esta definido)
aunque igual siempre es mejor definirlo para no joder la compatibilidad con compiladores viejos..


unsigned long strlen(char* string)
/**
    Retorna la longitud de [string]
    By BlackZeroX ( http://Infrangelux.sytes.net/ )
**/
{//no esta mal pero deberias restarle 1 a i antes de retornarla asi no incluye el valor te terminador de cadena, asi el que use tu implementacion de la funcion no tenga que restarle 1 al valor cada vez que la use...
    unsigned long i=0;
    while (*(string++) != '\0') i++;
    return i;
}

char* strcpy(char* str_dest,char* str_src)
/**
    Copia una string a otra [*str_src] a [*str_dest].
    Retorna el puntero a [str_dest]
    By BlackZeroX ( http://Infrangelux.sytes.net/ )
**/
{
    while( (*(str_dest++)=*(str_src++) == '\0' ) ); // MAL... la comparacion esta mal .. tenes que comparar si la cadena es distinta a '\0' no igual.... cuando copias tambien esta mal ... ya que estarias copiando el resutado de la comparacion ..la precedencia del operador == es mayor al de asignacion... necesitas parentesis..
    return (str_dest);
}



Por lo demas no lo vi en detalle ... pero vi que los punteros devueltos por malloc los comparas por 0 .. lo cual en teoria no esta mal ya que el compilador se da cuenta que el 0 esta siendo utilizada en un contexto de puntero y hace la conversion a NULL implicitamente.. pero no es una buena practica en C... utiliza siempre NULL.. al igual que cuando inicialices tus punteros...
ah y otra cosa cuando tenes una expresion como *cadena++  los parentesis no son necesarios ... el operador ++ tiene mayor precedencia que el de desreferencia...

Saludos
#24
Cita de: crazykenny en 11 Enero 2011, 22:36 PM
Una pregunta absurda, si me permitis, claro esta; ¿no se supone que firefox es gratuito?.
Me disculpo por las molestias causadas.
Saludos.
si hubieras leido la noticia no haria falta que lo preguntaras
#25
Código (asm) [Seleccionar]

global _start

section .code
_start:
push ecx
mov byte [esp], 041h
mov eax, 0x4
mov ebx, 0x1
mov ecx, esp
mov edx, 0x1
int 80H
pop ecx


mov eax, 1
xor ebx, ebx
int 80H

La sintaxis  no es igual en masm y nasm ... la linea que te puso eternal idol para copiar la letra a la pila es para masm, incluso lo puso como comentario en el codigo... en nasm para especificar el tamaño del dato a apuntar es con la palabra byte sola (en el caso de un byte obviamente)...
PD: Un buen libro que podes leer es Professional Assembly Language... es muy completo y de lectura facil y comprensible..

Saludos y feliz año nuevo
#26
jaja despues de crear la gui interface se codeo el programa para debuggear ojos
[youtube=425,350]http://www.youtube.com/watch?v=mRU1JKHbn7Y&feature=related[/youtube]
#27
Cita de: Tzhed en 31 Diciembre 2010, 07:00 AM
El ordenador que actuará de servidor, necesita .NET Framework instalado. Yo personalmente no lo veo como un problema, es rarísimo que un ordenador hoy en dia venga sin .NET instalado de fábrica.
Si pero XP no venia incluido con .net por defecto... y XP sigue siendo usado por muchos usuarios..y no a todos esos usuarios les importa instalarlo o necesiten instalarlo..
#28
Cita de: ¡Micronet! en 30 Diciembre 2010, 08:41 AM
y como hago que mi vector sea dinamico ¿? (por que si lo noto en el problema es un numero infinito)  :huh:
justamente con memoria dinamica... lo que podrias hacer es declarar el array como un puntero al tipo de dato que quieras usar y con el operador new le asignas la cantidad de memoria que precises... despues el identificador que usaste para declarar el puntero lo podes usar como si enrealidad fuera un array... es decir indexandolo con los operadores [ y ].. o sino usando aritmetica de punteros.. puntero + i... *(puntero + i)

con respecto a tu problema pienso que lo estas planteando mal... el algoritmo no seria asi..el problema te deci que encuentres la subsecuencia creciente mas grande..osea de un array de enteros cual es la secuencia de menor a mayor mas grande...
Como dice el ejercicio P se refiere al numero en el que empieza esa subsecuencia...
y S se refiere a la longitud de esa subsecuencia NO al elemento con el que termina... es decir a la cantidad de elementos que conforman esa subsecuencia...

Citar
tengo en mente que la secuencia es la siguiente:
3 + 1 = 4  (S=3 (ORIGEN))             
4 + 1 = 5 (P=4 (FIN)) ¿por que? porque el siguiente numero no da la suma correcta
1 + 5 = 9 (Error)

El planteamiento esta mal por que el programa no te pide que busques el cumplimiento de una sucesion de patrones....
mira te pongo el ejemplo de como seria la subsecuencia de esa secuencia que pusiste:
secuencia: 3,1,4,1,5,9,2
subsecuencia maxima: 3,4,5,9  (como ves cuenta de 4 elementos, S es igual a 4)
p: 3
s: 4

tambien hay otra subsecuencia maxima empezando por el elemento nº 2
1,4,5,9

la implementacion del algoritmo no es muy compleja... si entendiste lo que puse vas a poder hacerlo facilmente.. cualquier duda pregunta...
#29
Programación C/C++ / Re: [Libros/Papers] C/C++
31 Diciembre 2010, 04:08 AM
Muy buena la coleccion de libros... agrego algunos de C que no vi y que me parecen importantes y de lectura recomendada...

The New C Standard: An Economic and Cultural Commentary
Un tocho como de 1500 paginas vendria a ser como una mezcla del documento del estandar de C con el Rationale y anotaciones de las diferencias de las implementaciones en los distintos estandars de C, C++, y otras anotaciones para implementacines en otros lenguajes.. viene bien para usarlo como referencia pero no creo que alguien quisiera leerlo de principio a fin ja..

http://www.coding-guidelines.com/cbook/cbook1_2.pdf


C: A Reference Manual
Uno de las mejores referencias del lenguaje junto con la de JP Plauger(esta online por si alguien la quiere buscar..), muy completo y diferencia las caracteristicas de C tradicional, de C89 y del ultimo estandar..

http://rapidshare.com/files/440052721/C__A_Reference_Manual.rar


C Traps and Pitfalls
No lo lei pero... por lo que lei... trae varios tips para no cometer errores y evitar bugs en el codigo..es medio viejo del 88 o 89 pero creeria que es aplicable todavia..

http://rapidshare.com/files/440052963/C_Traps_and_Pitfalls._Andrew_Koening._Addison-Wesley.rar


C Programming: A Modern Aproach
Para mi uno de los mejores libros para aprender C si estas empezando en la programacion y queres empezar por este lenguaje. En la segunda edicion se cubre las adiciones que hubo el estandar C99 y las diferencias con el anterior.. una de las cosas interesantes que tiene tambien son las secciones "Q&A" estilo faq al final de cada capitulo ... en la que por medio de pegruntas y respuestas se dan aclaraciones acerca del contenido del capitulo .. ya sea de puntos importantes, errores comunes, diferencias entre implementaciones,  y varios buenos tips.. muy completo y de lectura muy recomendada ..

http://www.filesonic.com/file/16286849/953_C.Programming.A.Modern.Approach.rar


ISO/IEC 9899 - Programming languages - C
El documento del corriente estandar (C99), en realidad no es el documento del estandar en si (ese puede comprarse en el sitio de ANSI).. sino se le dice que es como un paper borrador del estandar(aunque fue hecho despues de que saliera el documento oficial) igualmente practicamenete es lo mismo... viene con los tres Technical Corrigendum(son unas pequeñas reformaciones que se le hacen al documento del estandard, ya sea adicionando algo o arreglando parte del documento) que salieron despues...

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf


Rationale for ISO/IEC 9899
El Rationale es el documento que describe el porque detras del estandar... es decir porque se establecieron asi las cosas...

http://www.open-std.org/jtc1/sc22/wg14/www/docs/C99RationaleV5.10.pdf
#30
Lo que podes hacer es que te pongas a leer si se te aconseja que utilices arrays, lee sobre arrays  :rolleyes:

http://www.google.com.ar/#hl=es&biw=1280&bih=607&q=%22arrays+en+c%22&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=7030631060be8803