Zona 1





 
ÍndiceFAQBuscarRegistrarseConectarse
 
  InvitadoTe RECORDAMOS que TODOS LOS LINKS de DESCARGA estan OCULTOS. Debes dejar un MENSAJE AGRADECIENDO el aporte.
Cuando actualices, en el 1° Mensaje apareceran los links!




Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» [V3r] Monster Pack NERONE V.2 boot loader 0A.30 y 0A.40
Hoy a las 6:13 pm por dannyjpa

» FLash Reviver para v3r Muertos BOOT OA.52
Hoy a las 6:11 pm por dannyjpa

» [K1]Ultimate MonsterPack 2.0 by Jesu556 for K1 (Sin RSA, Parcheada, iTunes)
Hoy a las 6:10 pm por memojaria

» [K1]MonsterPack KRZR CK 2.0
Hoy a las 6:08 pm por memojaria

» [K1]::: MonsterPack iPhone para K1 :::
Hoy a las 6:04 pm por memojaria

» Necesito ayuda para liberar nokia 5800 xpressmusic
Hoy a las 4:16 pm por 笨Love笨

» Mas de 1500 fondos de pantalla 240x320 (packs) varias categorias
Hoy a las 3:35 pm por Joab

» Android 2.3.4 para Galaxy ACE GT-S5830L Oficial de Samsung
Hoy a las 11:12 am por valenzuelaluism@gmail.com

» (Xperia X8) Cambiar Banda Base a X015
Hoy a las 2:07 am por asdsad

» Android 2.3.7 para Xperia X8 (Instalacion y Descarga)
Hoy a las 2:06 am por asdsad

» NivlaFX_v3_Droid_Edition 2Gb Mp L7
Hoy a las 1:21 am por joan carlos carrillo

» L6/L6i Monsterpack Venus 01 L6/L6i
Hoy a las 12:28 am por verny

» Revivir Samsung E215L
Ayer a las 11:14 pm por scorpion1000jm

» MonsterPack KRZR KrlzCK.Plus
Ayer a las 12:33 pm por Ariel Peralta

» |ROM X8| GingerXperia V27 Final.
Mar Mayo 22, 2012 11:10 pm por angryb

» [KM900][FW Personalizado]V10P_00_Chocolate
Mar Mayo 22, 2012 10:10 pm por aandres1000

» (Tutorial)Como flasher Motomagx (e8, em30,u9)
Mar Mayo 22, 2012 6:07 pm por nokiacfw

» [W5] Backup W5 [Posible solucion al error 35:02 y al Deat Error]
Mar Mayo 22, 2012 2:33 pm por walen

» PES 2011 para Android APK + SD File
Lun Mayo 21, 2012 8:03 pm por felipe_el_mata

» Gps Ndrive 10.1.15 +Mapas Argentina
Lun Mayo 21, 2012 3:19 pm por dreej

De donde nos visitan
¿Quién está en línea?
En total hay 84 usuarios en línea: 1 Registrado, 0 Ocultos y 83 Invitados :: 2 Motores de búsqueda

antoper5

La mayor cantidad de usuarios en línea fue 196 el Jue Ene 05, 2012 12:11 am.
Estadísticas
Tenemos 54676 miembros registrados.
El último usuario registrado es antoper5.

Nuestros miembros han publicado un total de 110238 mensajes en 9517 argumentos.
Mejores posteadores
Fran Villa (7830)
 
Zona 1 (3723)
 
笨Love笨 (3560)
 
Decano (3072)
 
·•τчτus•· (1969)
 
lokomotiko (1759)
 
ll.YONA.ll (1735)
 
\ r0kR // (1674)
 
garcandrey (1624)
 
bill_kevin (1584)
 
Los posteadores más activos del mes
笨Love笨
 
Oneloveddie
 
cuervowilld
 
jimmy01
 
MLL
 
MotoZonic
 
starter59
 
sagieco
 
linasofia68
 
Genuino1209
 

Compartir | 
 

 lo que no hay que hacer en C/C++ NIVEL BASICO

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
·•τчτus•·

Moderador Master
Moderador Master


Masculino
Mensajes: 1969
Edad: 19
Pais: mexico
Empleo/Ocio: dormir
Registrado: 14/01/2009
Premios:

MensajeTema: lo que no hay que hacer en C/C++ NIVEL BASICO   Dom Abr 11, 2010 1:29 am

*******************
Extraido de elhacker.net
*******************


a mayoría que recién esta empezando con C/C++ y viene al
foro a sacarse dudas, cometen errores similares. Incluso muchos tienen
conceptos erroneos sobre la utilidad o eficiencia de ciertas funciones,
probablemente debido a el estudio de textos incorrectos o de libros
anticuados.

Pero incluso a veces uno no puede escapar de ciertas
cosas. Imaginen a alguien que recien entra en la universidad y el
profesor le hace incluir conio para utilizar getch. Seguramente el
alumno de por sentado que hacer eso esta perfecto, e incluso el
profesor recompense con notas altas a los que programan tal cual se ha
enseñado.
Por lo tanto, ciertas cosas son comprensibles y el
unico consejo que se puede dar es que nunca den por sentado algo, es
recomendable informarse antes para ver que es lo que se esta
realizando, sobre todo en programación.


1)
gets();

La
falta de control en un programa es un factor bastante negativo, y
también peligroso en caso de programas comerciales o masivos.
Ese es el principal problema de gets, no tiene control interno.

¿Que signifca no tener control interno?

Significa
que la funcion acarrea como consecuencia el mal comportamiento del
programa, resultados inesperados y erroneos, vulnerabilidades entre
otras tantas cosas.
Define una cadena de 10 caracteres, y gets va a aceptarte eso y muchisimo mas como entrada.

Veamos este codigo:

Código
#include

int main()
{

char letra1[]="AAAAA";
char letra2[]="BBBBB";
char letra3[]="CCCCC";

[Tienes que estar registrado y conectado para ver este vínculo]("A: %s\nB: %s\nC: %s\n\n",letra1,letra2,letra3);

[Tienes que estar registrado y conectado para ver este vínculo]("Ingrese la letra D, 5 veces: ");
gets(letra2);

[Tienes que estar registrado y conectado para ver este vínculo]("\nA: %s\nB: %s\nC: %s\n\n",letra1,letra2,letra3);

getchar();
}
Código:
A: AAAAA
B: BBBBB
C: CCCCC

Ingrese la letra D, 5 veces: DDDDD

A: AAAAA
B: DDDDD
C: CCCCC

Como
vemos nada paso, y los elementos de letra2 se reemplazaron por el input
ingresado como debería ser . Ahora en vez de 5 veces, ingresemos
la letra 'D' mas veces de lo que el programa nos indica:

Código:
A: AAAAA
B: BBBBB
C: CCCCC

Ingrese la letra D, 5 veces: DDDDDDDDDDDDDDDDDDD

A: DDD
B: DDDDD
C: CCCCC

Que paso con letra1? [Tienes que estar registrado y conectado para ver esa imagen]
precisamente lo que no queremos que pase en nuestro programa. gets
sobreescribio una zona de memoria que no debia sobreescribir, ya que el
input debia ser ingresado en letra2, pero simplemente no le importo que
el input sea muchisimo mas grande que el tamaño de la cadena.
Razon mas que suficiente para no utilizarla.

Por lo tanto es recomendable utilizar fgets();

Código
fgets(char *string, int length, FILE * stream)
Es decir:

Código
fgets(letra2, 5, stdin);
Con fgets permites que sean ingresados lenght-1 caracteres.
Aunque
no todo es color de rosas, y en caso de que se ingresen menos
caracteres de los que has definido como tamaño, tendras que
lidiar con un salto de linea '\n'. Obviamente es una nimiedad que
puedes arreglarla de esta forma:


Código
if (letra2[strlen(letra2)-1] == '\n')//string.h para strlen();
letra2[strlen(letra2)-1] = '\0';
Supongo que con esto queda claro que no tiene sentido utilizar gets();.

Links:
[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]


2) fflush(stdin);

fflush(stdin) es un invitado casi diario. Pocas veces pasa un dia sin que alguien lo recomiende o lo mencione como la solucion! a los malos comportamientos de las pausas en los programas.

STDIN, como su nombre lo indica, significa 'Standard input'. Es decir, el ingreso por teclado.

Acorde
al Standard, fflush espera solamente un stream de salida (STDOUT:
'Standard Output) por lo que el comportamiento con streams de entrada
como STDIN es indefinido. Por mas que en algunas plataformas funcione, o que en algunos compiladores funcione, no deberia ser utilizado.

Por el otro lado, para evitar esas pausas fastidiosas es necesario evitar las funciones que dejan basura por doquier (como scanf();) y utilizar funciones como la ya mencionada fgets();


[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]




3) system("PAUSE");

Otro
invitado diario es la pausa utilizando system. Esto incluso me ha
tocado en mi universidad. Que el profesor me haga realizar ejercicios
exclusivamente utilizando system y la pausa tambien habia que
realizarla exclusivamente utilizando system. En fin, seguramente muchos
consideren que realizar esto no es un gran problema, y probablemente
tengan razon en los codigos que uno realiza como tarea estudiantil.
Pero es un habito malo, y como todo, hay que dejarlo algun dia.
Claramente no puedes pasarte toda la vida llamando al sistema para
hacer una pausa.

*No es portable, solo va a funcionar en sistemas que tengan el comando PAUSE.


*Es una funcion pesada. Llamar al sistema, suspender tu programa, buscar el comando PAUSE, etc etc etc etc.

Por
el otro lado si se siguio la norma de no dejar basura en el buffer de
entrada, se puede utilizar soluciones mas sencillas como getchar(); (o
cin.get(); en C++).


4)
conio.h

Librerias
inutiles si las hay, pero por sobre todas las cosas NO standard. No
existe problema para el cual sea exclusivamente necesario utilizar
conio.h. Y visto que aca la mayoria de los que la incluyen lo hacen
para utilizar getch(); supongo que con todo el parrafo anterior habran
quedado claras las alternativas.

[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]


5) void main();

Seguramente
para justificar esto habría que decir que el estándar
dice que void no puede ser el valor de retorno del main, lo cual es
verdad, pero no siempre es suficiente. Sobretodo considerando que
muchas veces en los libros el void main dice presente.

No voy a
extenderme mucho con esto ya que voy a dejar los links necesarios para
el que quiera entender porque sucede, pero como base comprendamos esto:

-Devolver
un valor void es perder la garantia que un valor de retorno distinto de
0 implica un error, lo cual es malo tanto para el SO como para el
determinado programa que pueda estar llamando a tu código.

-Esta mal acorde al estándar.

-Puede que tu programa no funcione correctamente.

Los
errores pueden depender de los mecanismos de retorno o la arquitectura
especifica en la cual estemos. Pero por supuesto, si elegimos un
lenguaje de alto nivel como lo es C o C++, es para no tener que
preocuparnos por esos asuntos.

En conclusión, el que quiera entender el " por que", leer los siguientes links.

Links:

[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]


6) Procesamiento de cadenas: string.h

La
mayoría de las funciones que no tienen la posibilidad de pasar
como argumento el tamaño del buffer que debe procesarse, estan
completamente expuestas al desbordamiento de buffer. Sobre todo si el
contenido del buffer origen es ingresado por el usuario, y por sobre
todas las cosas, si no se hicieron las validaciones correspondientes.
(Por ejemplo, haber utilizado gets o no haber chequeado el
tamaño de la cadena antes de copiar/concatenar o cualquier otra
forma de procesar una cadena).
Obviamente no voy a hablar sobre
todas las funciones, pero si sobre dos ejemplos que dan la pauta de lo
que sucede y de lo que debería hacerse: strcpy y strcat.

a) strcpy ( char * destination, const char * source );

Veamos un ejemplo de un codigo incorrecto:


Código
#include
#include

int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};

[Tienes que estar registrado y conectado para ver este vínculo]("Ingrese cadena: ");
fgets(cadena2,100,stdin);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strcpy(cadena1,cadena2);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}
Código:
Ingrese cadena: 1111111111111111111111111111111111111111111111111111

//Antes de strcpy
cadena1: aaaa
cadena2: 111111111111111111111111111111111111
cadena3: 0123

//Despues de strcpy
cadena1: 111111111111111111111111111111111111
cadena2: 111111111111111111111111111111111111
cadena3: 1111111111111111111111111111111111111111111111111111


Como
se ve claramente, el problema esta vez no estuvo en la recepción
de los datos (en el sentido técnico), si no en el copiado. Ya
que strcpy no verifica si el buffer destino es efectivamente capaz de
contener los datos del buffer origen, lo cual por supuesto ocasiona
perdida de datos y buffers overflows.
Obviamente si el fgets se hubiese utilizado correctamente, esto no hubiese sucedido.

b) strcat ( char * destination, const char * source );

La
misma historia sucede aqui. Al no poder especificar el tamaño
del buffer destino la funcion es insegura. Veamos un ejemplo incorrecto:

Código
#include
#include

int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};

[Tienes que estar registrado y conectado para ver este vínculo]("Ingrese cadena: ");
fgets(cadena2,100,stdin);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strcat(cadena1,cadena2);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}
Código:
Ingrese cadena: 11111111111111111111111111111111111111111111

//Antes de strcat
cadena1: aaaa
cadena2: 1111111111111111111111111111
cadena3: 0123


//Despues de strcat
cadena1: aaaa1111111111111111111111111111
cadena2: 1111111111111111111111111111
cadena3: 11111111111111111111111111111111111111111111

Como
pueden ver suceden errores muy similares. Obviamente es un error tonto
de programación en el cual el desarrollador pasa un mal
argumento a fgets, ya que de haberlo hecho bien el error no sucederia.
Pero ese no es el asunto, lo importante es que tanto strcpy o strcat (y
toda la familia de funciones) no realizan (o permiten realizar) la
validación extra necesaria. Imaginen que creas una cadena para
tomar una ruta del sistema operativo para luego concatenar, ¿Y
si el atacante se da cuenta de eso y decide explotar el overflow por
ese lado? mil variantes pueden existir y probablemente no siempre uno
cubra todas ellas.

c) Entonces que se puede utilizar?

strncpy y strncat cumplen su función perfectamente si se utilizan en forma correcta.

c1) strncpy ( char * destination, const char * source, size_t num );

Código
#include
#include

int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};

[Tienes que estar registrado y conectado para ver este vínculo]("Ingrese cadena: ");
fgets(cadena2,100,stdin);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strncpy(cadena1,cadena2,1);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}
Código:
Ingrese cadena: 1111111111111111111

//Antes de strncpy
cadena1: aaaa
cadena2: 1111111111111111111
cadena3: 0123

//Despues de strncpy
cadena1: 1aaa
cadena2: 1111111111111111111
cadena3: 0123

c2) strncat ( char * destination, const char * source, size_t num );

Código
#include
#include

int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};

[Tienes que estar registrado y conectado para ver este vínculo]("Ingrese cadena: ");
fgets(cadena2,100,stdin);
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strncat(cadena1,cadena2,0);//Obviamente esta linea es un absurdo
//Pero queda claro el control que la funcion mantiene
[Tienes que estar registrado y conectado para ver este vínculo]("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}
Código:
Ingrese cadena: 123123

//Antes de strncat
cadena1: aaaa
cadena2: 123123
cadena3: 0123

//Despues de strncat
cadena1: aaaa
cadena2: 123123
cadena3: 0123

Estas
ultimas funciones a pesar de poder utilizarse perfectamente como
solucion a lo anterior expuesto, tambien tienen sus contras:

-Tanto
strncpy o strncat no proveen un valor de retorno que pueda implicar un
error o el exito de la cadena resultante, si no que devuelven un
puntero al buffer destino. Por lo tanto requiere un esfuerzo extra por
parte del programador.

- strncpy no finaliza la cadena
resultante con null si el destino es al menos igual en tamaño
que el origen, por lo tanto siempre debe finalizarse la cadena con null
después de la llamada a strncpy.

- strncpy tambien tiene
un comportamiento que puede afectar el rendimiento del programa en caso
que el buffer destino sea considerablemente mas grande que el buffer
origen, ya que en este caso se realiza el zero-padding, es decir, llena el resto de la cadena con nulls.

Microsoft tiene una lista de funciones baneadas
(lo que en Visual Studio se conoce como deprecated) y obviamente tiene
el reemplazo de estas llamandolas funcion_s. Ejemplo: strcpy_s,
strcat_s, gets_s y etc.
Pueden ver las funciones catalogadas como inseguras en este [Tienes que estar registrado y conectado para ver este vínculo], y su reemplazo en esta [Tienes que estar registrado y conectado para ver este vínculo]. (Gracias Vertex por los links )

Tambien existen opciones como strlcpy y strlcat, las cuales pueden ver a fondo en este [Tienes que estar registrado y conectado para ver este vínculo].

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario http://www.moto-advance.com
ll.YONA.ll

Moderador Master
Moderador Master


Masculino
Mensajes: 1735
Edad: 22
Pais: Neuquen - villa la Angostura - Argentina.
Empleo/Ocio: estudiante
Registrado: 19/03/2009

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Lun Mayo 24, 2010 6:29 pm

exelente aporte ... muy util amigo !!!
gracias

_________________
ll.YONA.ll
[Tienes que estar registrado y conectado para ver esa imagen]

ll.YONA.ll Z1
Gana Dinero con
[Tienes que estar registrado y conectado para ver este vínculo]
Volver arriba Ir abajo
Ver perfil de usuario http://www.stylezrecords.com
Dark_Engel001

Ex-Moderador
Ex-Moderador


Masculino
Mensajes: 652
Edad: 21
Pais: México
Empleo/Ocio: Estudiante
Registrado: 11/07/2009

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Lun Mayo 24, 2010 6:51 pm

Excelente post, he vivido engañado por mis profes, jaja gracias por el dato [Tienes que estar registrado y conectado para ver esa imagen][Tienes que estar registrado y conectado para ver este vínculo] border="0" alt="" />

_________________
"Si las puertas de la percepción se abrieran, todo aparecería ante el hombre tal cual es: infinito

[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario
Fran Villa

Web Master
Web Master


Masculino
Mensajes: 7830
Edad: 18
Pais: San Juan, Argentina
Empleo/Ocio: Estudiante
Registrado: 14/08/2008

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Lun Mayo 24, 2010 11:00 pm

aiii que es eso?¿?¿

good post

_________________


[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]
FACE
BOOK

[Tienes que estar registrado y conectado para ver este vínculo]



Volver arriba Ir abajo
Ver perfil de usuario http://www.zona1.net
Dark_Engel001

Ex-Moderador
Ex-Moderador


Masculino
Mensajes: 652
Edad: 21
Pais: México
Empleo/Ocio: Estudiante
Registrado: 11/07/2009

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Mar Mayo 25, 2010 4:29 pm

|WLP| Decode escribió:
aiii que es eso?¿?¿

good post


es programacion en programas tales como: turbo c, borland c++, etc [Tienes que estar registrado y conectado para ver esa imagen][Tienes que estar registrado y conectado para ver este vínculo]
border="0" alt="" /> , durante un tiempo fue mi dolor de cabeza jaja

_________________
"Si las puertas de la percepción se abrieran, todo aparecería ante el hombre tal cual es: infinito

[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario
笨Love笨

Administrador
Administrador


Masculino
Mensajes: 3560
Edad: 23
Pais: city
Empleo/Ocio: English and Spanish
Registrado: 19/08/2008

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Mar Mayo 25, 2010 6:21 pm

ASi es amigo DARk


Bueno he estudiado este curso en mi carrera en la Uni y es un
programa muy excelente hacer figuras graficas crear juegos
todo tipo de juegos 3D y otros es un programa
muy interesante creo que el visual basic se que da un poco atras
tambien esta SQL no digamos el html java scritp con los que se trabaja
en el foros --------------------------------------
bueno tengo conocimiento de algunos programas como estos he he

tytus es un buen comienzo para todos aquellos que quieren aprender
este programa c++ te ayudara a mejorar en todo s i te sabes este
c++ podras facilitarte en todos los demas programas es muy completo
aun no aprendo del todo pero tengo algunos conocimientos basicos..

Bueno todos a aprender c++..

_________________
[Tienes que estar registrado y conectado para ver esa imagen]


PoR + fUeRtE qUE sEaS, sIeMpRe ExIsTiRa OtRo +
PoDeRoSo QuE tU... Agradece mis aportes
Volver arriba Ir abajo
Ver perfil de usuario
YonY

Moderador Multimedia
Moderador Multimedia


Masculino
Mensajes: 1254
Edad: 17
Pais: argentina
Empleo/Ocio: Estudiante/Hacker Retirado/DJ/Jugador de Operation 7 Latino xD
Registrado: 04/08/2010

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Lun Abr 25, 2011 8:20 pm

JUJU muy interesante esto amigo!!!
Es muy importante a la hora de programar!!!
Y me viene esto de lujo!!!
Estoy viendo de hacerme una mod para el Battlefield 2 o algún juego de guerra parecido. Y sera de la histórica guerra de Malvinas!!!
Pero bueno

ha chinitopex que carreras has estudiado o estudias!!??
Porque yo estoy averiguando para irme a la facultad dentro de 2 años!!!!
Y me gustaría seguir ingeniería en informática!!

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario http://www.4shared.com/account/dir/83w9wHBv/sharing.html?rnd=58
Fran Villa

Web Master
Web Master


Masculino
Mensajes: 7830
Edad: 18
Pais: San Juan, Argentina
Empleo/Ocio: Estudiante
Registrado: 14/08/2008

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Lun Abr 25, 2011 10:40 pm

no se imaginan como rabeo con este lenguaje en la facu u.u

_________________


[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]
FACE
BOOK

[Tienes que estar registrado y conectado para ver este vínculo]



Volver arriba Ir abajo
Ver perfil de usuario http://www.zona1.net
YonY

Moderador Multimedia
Moderador Multimedia


Masculino
Mensajes: 1254
Edad: 17
Pais: argentina
Empleo/Ocio: Estudiante/Hacker Retirado/DJ/Jugador de Operation 7 Latino xD
Registrado: 04/08/2010

MensajeTema: Re: lo que no hay que hacer en C/C++ NIVEL BASICO   Mar Abr 26, 2011 7:40 pm

Jaja yo me tengo que acostumbrar a el jaja!!!
Ya me tocara rabear con el jaaj

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario http://www.4shared.com/account/dir/83w9wHBv/sharing.html?rnd=58
 

lo que no hay que hacer en C/C++ NIVEL BASICO

Ver el tema anterior Ver el tema siguiente Volver arriba 

 Temas similares

-
» Curso de Programação de Jogos - Nivel Básico
» Asi me quedo la Staff Sun... No pude hacer mas. (Por el Momento)
» FLDS # 56 [Temática: Girls]
» Duda para hacer una carretera en curva con líneas...
» Que un macro se active cuando se usa una skill a determinado nivel
Página 1 de 1.

Permiso de este foro:No puedes responder a temas en este foro.
Zona 1 :: Tecnología :: Software :: Programacion y Diseño de Software-