derone
Usuario (Argentina)

Tu Pc Corre Cualquier Juego?? Haz La Prueba Aqui Bueno amigos esta pagina hace un tiempo ya le habia Volado Ojo y me parece importante provar y adentrarnos a la web antes de descargar un juego todo esto para saber si tu pc tiene los requerimientos adecuados para poder jugar X Juegos que consideras bajar sin mas palabras se las dejo acontinuacion suerte Wink Es facil 1* vas al que dice [ can you run it? ] 2*te va a aparecer dos cuadrados el primero si queres le escribis el nombre del juego y el segundo es por catalogo elegis el juego que queres probar [ recomiendo el segundo ] 3*le das donde dice can you run it 4*te va a salir un permiso le das que si 5* primero dice geting information despues analizando sistema [ esperas 1 minuto si no pasa nada le das a actualizar] y listo te dice rendimiento, video, memoria ,todo espero que te ayude!! http://cyri.systemrequirementslab.com/srtest/
Dragon Ball Chou En Español: Dragon Ball Super. Toei Animation confirma nueva serie de Dragon Ball, el siguiente texto esta traducido por GOOGLE TRADUCTOR, asi que si notan alguna incoherencia, jodanse. link: https://www.youtube.com/watch?v=Kf3iaHFVYsQ Toei Animation Comienza la Producción en el Super Dragon Ball Drawn From a Parcela Por Creador original del Marca, el Super Dragon Ball es el primer nuevo Serie A Dieciocho Años TOKIO (28 de abril de 2015) - Toei Animation ha anunciado la producción de Dragon Ball Súper (título japonés; tentativa para el lanzamiento Inglés), la primera totalmente nueva serie de televisión Dragon Ball para ser lanzado en 18 años. A raíz de los recientes acontecimientos de la película de éxito, Dragon Ball Z: Resurrection 'F', el Super Dragon Ball se estrenará en Japón en julio de 2015. Reuniendo personajes icónicos de la franquicia, Dragon Ball Súper seguirá las secuelas de una feroz batalla de Goku con Majin Boo, en su intento de mantener la frágil paz de la tierra. Supervisado por creador original de Dragon Ball, Akira Toriyama y producido con Fuji Television, Dragon Ball Súper aprovechará su pasado histórico para crear un audaz, nuevo universo bienvenida a los fans y entrañable a nuevos espectadores. Introducido como un manga en la Weekly Shonen Jump (publicado por Shueisha Inc.) en 1984, Dragon Ball se ha convertido en una marca global amada. Visto en más de 70 países, con más de 230 millones de copias de sus libros de historietas vendidas, Dragon Ball sigue siendo uno de los más populares series de anime de todos los tiempos. "Habiendo amado a Dragon Ball desde la infancia, es muy emocionante ser parte de este proyecto", dijo Osamu Nozaki, productor para Fuji Television. "Sr. Toriyama ha desarrollado una parcela que no sólo es un sueño hecho realidad para millones de Dragon Ball de fans, pero uno que fomente en una nueva generación de espectadores ". "Cuando me uní a Toei Animation, una de mis primeras tareas me vio trabajando en la producción de Dragon Ball Z", dijo Atsushi Kido, productor de Toei Animation. "Si bien no sólo por un corto período de tiempo, ser parte de la serie dejó una impresión duradera. Esperamos con interés el ejercicio de enorme legado de Dragon Ball, con lo que el público un nuevo Dragon Ball con el mismo sentido de corazón y el compromiso que entró en anteriores producciones de Dragon Ball ". "He usado la palabra" cho "(super) en tantos anuncios publicitarios, juegos y otros medios de comunicación, es fantástico que el tan esperado Dragon Ball Súper finalmente comenzar", dijo Masako Nozawa, actriz de voz japonesa de Dragon Ball de Son Goku , Son Gohan y Goten. "Espero que esta serie va a durar mucho tiempo y tienen el mismo impacto en todo el mundo como su predecesor. MAS INFO: http://www.kanzenshuu.com/2015/04/28/new-dragon-ball-super-tv-series-announced-for-2015/ LINK LANZAMIENTO CONFIRMADO POR TOEI: http://www.toei-animation.com/files/Press_Release_DBS_ENG_0.pdf

Las imagenes que estas apunto de ver son impresionantes, si eres una persona sensible, te recomiendo salir del post, porque las imagenes que se mostraran a continuacion son fuertes. _______________________________________________________________ Kabang, el perro que se quedó sin hocico al arriesgar su vida para salvar a dos niñas, recibirá un tratamiento para recuperarlo _______________________________________________________________ El perro se llama Kabang y se hizo muy conocido por arriesgar su propia vida para salvar la vida de dos chicas jóvenes en Filipinas. Actualmente Kabang, conocido como el perro héroe, ya se encuentra en suelo americano a la espera de que los veterinarios hagan un milagro. Gran parte de su rostro fue cortado hace un año cuando estaba ayudando a las jóvenes en un barrio de Zamboanga (Filipinas). El perro salió disparado contra una motocicleta que estaba a punto de atropellar a sus dueñas, dos niñas de tres y nueve años que estaban cruzando la calle sin mirar. Parece que Kabang pudo sentir el peligro y sin pensárselo mucho se abalanzó contra la moto evitando que las niñas fueran golpeadas. El conductor de la moto salió despedido por encima del manillar, las niñas no sufrieron ningún daño pero Kabang se llevó la peor parte. Según explicaron algunos testigos que presenciaron la escena el perro metió su cabeza entre los radios de la rueda delantera lo que le seccionó parte de su hocico. “Wow, esto sirve para demostrar lo mucho que nos quieren nuestras mascotas, nos aman incondicionalmente y nos salvarán”, explicaba Becky Hüls, dueño del perro. El incidente hizo que se hiciera conocido internacionalmente y actualmente gracias a la intervención de un grupo de expertos intentará volver a recuperar su hocico. La mundialmente conocida “UC Davis Veterinary Hospital” está mirando que se puede hacer por el perro héroe, llevado a California por Anton Lim, el veterinario de Kabang en Filipinas. Kabang puede comer y hacer otras cosas normalmente y gracias a que su familia ya ha conseguido los 20.000 dólares para pagar el tratamiento y el desplazamiento, Kabang está más cerca de poder volver a ser como antes. “He seguido las últimas innovaciones y estamos muy esperanzados en que Kabang recibirá la mejor y moderna atención que él necesita”, explicaba Lim. Los propietarios de perros van al hospital para animales UC Davis para intentar ayudar a sus animales. Hace poco un perro llamado Batman fue equipado con una silla de ruedas después de que fuera golpeado por un coche. “Es increíble que ya consiguieron la financiación para hacer esto, sólo espero que podamos hacer todo lo posible por volver a hacerlo feliz, saludable y que sea capaz de disfrutar de la vida como ella se merece”, dijo Anjali Daryani. Los veterinarios creen que Kabang necesitará por lo menos dos cirugías. Una para el trabajo dental y la segunda para cerrar la herida abierta en su rostro. Desde schnauzi.com deseamos tener pronto buenas noticias de Kabang y que las operaciones sean todo un éxito. Este perro ha salvado la vida de esas dos niñas y la vida debe devolverle el favor. Más fotografías de Kabang y el equipo médico: KABANG
Muñeco Diabólico 6 (Curse of Chucky) Género: Suspense, Thriller, Terror Temática: Asesinos en Serie, Violencia, Muerte, Psicopatía, Muñecos País: Estados Unidos Año:2013 Sinopsis: Nica (Fiona Dourif) está destrozada tras el terrible suicidio de su madre. Su hermana mayor Barb (Danielle Bisutti) regresa a su casa para ayudarle en este duro trance, trayéndose con ella a su hija pequeña, quien posee un muñeco parlante llamado Chucky que llegó misteriosamente por correo. A medida que una serie de brutales asesinatos comienzan a aterrorizar a la familia, Nica sospecha que Chucky puede ser la clave del derramamiento de sangre, pero lo que sabe es que éste está decidido a terminar un trabajo que comenzó hace más de 20 años, y esta vez lo va a llevar acabo hasta el final. link: http://www.youtube.com/watch?feature=player_embedded&v=9mgFjHyjhi8

Con este efecto, vamos a conseguir crear gotas de agua de la nada, y aplicar dicho efecto a un texto con la herramienta Photoshop. Para que el efecto gotas de agua quede vistoso, podemos elegir una fotografía con paisajes verdes, ramas, flores, etc. Nosotros hemos escogido ésta: Abrimos el archivo (menú/archivo/abrir) en la herramienta Photoshop. A continuación, vamos a la paleta de capas, clicamos en el icono “Crear nueva capa” y tendremos la “Capa 1” sobre el “Fondo”. 1. En este primer paso, el objetivo es dibujar una gota de agua con la herramienta “pincel” y crear un “estilo nuevo” que guardaremos para el final. a. En la barra de herramientas, seleccionamos “pincel” y fijándonos en la barra de opciones de arriba, elegimos un grosor de 10 píxeles y dejamos la opacidad al 100%. b. Ahora, con la capa 1 seleccionada y el color negro de fondo, dibujamos una gota de agua valiéndote de tu destreza con el pulso, tal y como te mostramos a continuación. NOTA: Con esta mancha negra en forma de gota de agua empezaremos a crear el nuevo estilo. 2. Empezamos a crear el nuevo estilo. a. Nos vamos a la paleta de capas y con la capa 1 seleccionada dejamos el “Relleno” al 3%, tal y como se muestra en la imagen. NOTA: La mancha negra parecerá haberse ido por completo pero no es así. Lo que hace es reducir la opacidad de los píxeles de relleno, pero conserva la forma de la pintura sobre la capa. b. Con la Capa 1 aún seleccionada, hacemos doble clic sobre ella para abrir la paleta de “Estilos de capa”, nos vamos a “Sombra paralela” y le damos los siguientes valores. No pulsamos OK todavía. c. Ahora, en “Sombra interior”, hacemos lo mismo pero con los valores que aparecen a continuación. d. En la casilla “Resplandor Interior” haremos lo mismo que en los pasos previos. e. Por último, aplicaremos un efecto “Bisel y Relieve” marcando los siguientes parámetros. NOTA: No pulsamos OK todavía. f. Sin cerrar la ventana de “Estilos de Capa” nos situamos en la esquina superior derecha, localizamos “Nuevo Estilo” y clicamos en ella. Enseguida, aparecerá una ventana que nos pedirá poner un nombre al estilo, lo hacemos y le damos a OK. Una vez hecho esto, localizaremos nuestro Nuevo Estilo en la ventana de estilos. Si no nos aparece dicha ventana nos vamos a Menú - Ventana – Estilos. Finalmente, conseguiremos algo como esto: 3. En el siguiente paso, nos encargaremos del texto que vamos a añadir. a. En la ventana de herramientas, activamos la herramienta de “Texto” que, por defecto, será “Texto horizontal”. Si no es así, mantenemos pulsada la herramienta “Texto” y aparecerá un desplegable, clicamos en “Texto horizontal” y listo. NOTA: Otra manera rápida y fácil de activar la herramienta “Texto” es pulsar la tecla “T” del teclado. b. Una vez seleccionada, nos fijamos en el menú de arriba y localizamos el icono “Conmutar paletas Carácter y párrafo” y le damos los valores que aparecen en la imagen. NOTA: Recuerda marcar la casilla de “texto centrado” en el menú de la barra superior. c. Por último, con la herramienta “Texto” seleccionada, hacemos clic en el centro de la imagen e introducimos “Desarrollo Multimedia” o el texto que queramos. NOTA: Para renderizar la capa de texto presionamos las teclas Ctrl + Enter. 4. En este paso, crearemos una “Nueva Capa” en blanco debajo de la “Capa de Texto” para después fusionarlas. a. Nos vamos a la paleta de capas y con la “Capa Texto” seleccionada, clicamos en el icono “Crear Nueva Capa”. El resultado será el siguiente. Como vemos, aparece la “Capa 2” debajo de la Capa de Texto. b. A continuación, rellenaremos la Capa 2 de blanco. Para ello, nos vamos a Menú – Edición – Rellenar y en el desplegable de Contenido – usar, seleccionamos “Color Frontal” (si el color que tenemos de frente es blanco) o buscamos la opción “Blanco”. Por último, clicamos en OK. El resultado después de hacer esto, será el siguiente: c. Clicamos en la “Capa Texto” para activarla y nos vamos a Menú – Capa – Combinar hacia abajo. Con esto hemos conseguido que la “Capa Texto” se funda con la Capa 2. 5. A partir de ahora, vamos a aplicar una serie de filtros para el texto. a. Con la Capa 2 seleccionada, nos vamos a Menú – Filtro - Pixelizar – Cristalizar y en “tamaño de celda” le damos un 6. b. Aplicamos un gaussiano yéndonos a Menú - Filtro – Desenfocar – Desenfoque gaussiano y ponemos un de radio 3. 6. En este paso, vamos a suavizar o endurecer los bordes del texto con un contraste. a. Con la Capa 2 seleccionada vamos a Menú – Imagen – Ajustes – Niveles. Una vez abierta la ventana de niveles introducimos los siguientes valores. 7. A continuación, haremos una selección del texto/imagen y borraremos el área blanca. a. Para hacer la selección de la Capa 2, nos vamos a la paleta de capas y clicamos en la pestaña “Canales” y pinchamos en el icono “Cargar canal como selección”. b. Ahora, volvemos a la pestaña “Capas”, hacemos clic en la Capa 2 y presionamos la tecla “Borrar” del teclado para borrar la parte de blanco. El resultado será el siguiente: c. Por último, deseleccionamos pulsando Ctrl + D en el teclado o yéndonos a Menú – Selección – Deseleccionar. 8. Finalmente, aplicaremos el Estilo de Capa que hemos creado previamente a nuestra Capa Texto. a. Con la Capa 2 seleccionada, nos vamos a Menú – Ventana – Estilos para mostrar la paleta de estilos. b. En la paleta de estilos, localizamos el estilo que hemos guardado (normalmente estará al final de la lista), y clicamos en él para aplicarlo a la Capa 2. El resultado, como podemos apreciar en la imagen de arriba, al estar sobre un fondo negro no destaca como debería. Si has elegido una fotografía con fondos oscuros, es probable que te ocurra lo mismo. La solución a este problema es cambiar el color negro del fondo por otro sobre el que las gotas de agua resalten. 1. Para ello, nos vamos a la paleta de capas y hacemos doble clic en “Fondo” para darle propiedades de una capa. NOTA: Es recomendable que en la paleta de capas, ocultes la Capa 2 que es la que contiene nuestro texto. Para ello, lo único que tenemos que hacer es situarnos en la Capa 2 y clicar en el ojo que aparece a la izquierda de la Capa2. 2. Hecho esto, seleccionamos la “varita mágica” en la paleta de herramientas y, hacemos clic sobre el fondo negro. 3. A continuación, con la herramienta “Bote de Pintura” seleccionada de la paleta de herramientas, nos fijamos en el Menú de arriba - Motivo y elegimos una textura de madera. 4. Con el Bote de Pintura seleccionado pintamos sobre la parte negra seleccionada. El resultado será el siguiente. 5. Por último, volvemos a hacer visible la Capa 2 clicando en el ojo de nuevo. Si queremos, también podemos dibujar más gotas de agua con el pincel que hemos creado, seleccionando el nuevo estilo de la paleta de estilos. FUENTE: www.desarrollomultimedia.es
En este artículo vamos a aprender a implantar o crear un reflejo, sobre unas gafas, ventanas o cualquier tipo de cristal, para realizar este efecto, usaremos el Photoshop. Como siempre, el primer paso es abrir la fotografía que queramos tratar, (Menú/Archivo/Abrir). A continuación creamos una nueva capa, (Menú/Capa/Nueva/Capa) y con ayuda de la lupa y de la Herramienta Lazo Poligonal, hacemos una selección al rededor de los cristales de la gafas o del cristal que queramos que aparezca nuestro reflejo. Una vez hecha la selección y situados sobre la nueva capa que hemos creado, la rellenamos de blanco, para ello, Menú/Edición/Rellenar. El siguiente paso es añadir la imagen que queramos usar como reflejo y situarla en primera posición, dentro del cuadro de capas. Situados en la capa donde tenemos la imagen del reflejo que vamos a usar, aplicamos una máscara de recorte, para ello, Menú/Capa/Crear Máscara de Recorte. Como podréis comprobar, nuestra imagen se queda dentro de la gafas o cristal que hayamos seleccionado previamente. Ahora es el momento de moverlo, para colocarlo a nuestro gusto o transformar el tamaño para que quede bien acoplado, para ello usamos la Herramienta Mover y posteriormente lo colocamos con el ratón o los cursores. Seguidamente vamos a combinar las capas, para quedarnos con el reflejo y el fondo, para ello, seleccionamos la capa del reflejo y la encadenamos a la capa de recorte y combinamos las enlazadas, (tal y como podréis ver en la imagen que os dejamos a continuación). Sobre la capa que hemos creado al combinar las anteriores aplicamos un poco de brillo y contraste, para ello, Menú/Imagen/Ajustes/Brillo Contraste. Aquí se puede poner lo que cada uno crea conveniente, teniendo en cuenta que a mayor brillo y contraste, mayor intensidad tendré posteriormente el reflejo, (pero cuidado, no lo vayáis a quemar). Como podéis ver en la imagen que os dejamos a continuación, nosotros hemos aplicado un +40 de brillo y un 30+ de contraste. Por último, ya sólo nos quedaría cambiar el modo de la capa, de normal a trama y si queréis que quede con mayor realismo, también podéis bajar un poco la opacidad, (nosotros hemos puesto un 33%). Como podéis observar en la imagen de abajo, el resultado es asombroso. Lo único a tener en cuenta, que dependiendo del el brillo de la foto original y de la foto de reflejo, habrá que darle más o menos brillo/contraste o más o menos opacidad. A continuación les dejo otro ejemplo de reflejo, esta vez, sobre el cristal de una ventana. FUENTE: www.desarrollomultimedia.es _________________________________________________________________________________________________________ dijo:Mira mis otros post Efecto de sangre en photoshop ------------------> http://www.taringa.net/posts/arte/8523891/Efecto-de-sangre-en-photoshop.html Efecto de bola de cristal en photoshop -----------------> http://www.taringa.net/posts/arte/8498985/Bola-de-cristal-transparente_-photoshop.html Efecto de gotas de agua en photoshop ----------------> http://www.taringa.net/posts/arte/8489384/Efecto-de-gotas-de-agua-en-Photoshop.html
En este artículo vamos a aprender a realizar un pincel para crear un efecto que nos permitirá añadir pelo a nuestras imágenes, (cabello, barba, etc...), para realizarlo usaremos el programa Photoshop. El primer paso es crear el pincel, para ello, cogemos la imagen que os dejamos a continuación y la abrimos en nuestro Photoshop. A continuación abrimos la imagen, (Menú/Archivo/Abrir). Después, definimos el valor del pincel, (para ello Menú/Edición/Definir valor de pincel). Ponemos el nombre que deseemos y le damos a Ok. Ahora seleccionamos el pincel que acabamos de crear y abrimos su correspondiente ventana, para poder darle los valores que creamos convenientes. Primero aplicamos una Dinámica de forma, con los valores que os dejamos en la imagen de abajo. Y a continuación configuramos la dinámica de color, nuevamente, con los valores que os dejamos a continuación. Ya tenemos creado y configurado nuestro pincel, ya sólo nos queda, seleccionarlo y darle el tamaño que necesitemos, (el tamaño variará dependiendo de las dimensiones de nuestra fotografía). Y por último lo más divertido, abrimos la fotografía que queramos modificar, (Menú/Archivo/Abrir), y a pintar el pelo. Como siempre, cuanto más tiempo se dedique y más despacio lo hagamos, mejor resultado obtendremos, a continuación, os dejamos algunos ejemplos hechos rápidamente. FUENTE: www.desarrollomultimedia.es _________________________________________________________________________________________________________ dijo:Mira mis otros post Efecto amanecer en Photoshop <----------------------------------------------------------- Efecto Fotográfico Andy Warhol, Photoshop <------------------------------------------- Efecto de Reflejo en Photoshop <--------------------------------------------------------- Efecto de sangre en Photoshop <--------------------------------------------------------------- Efecto de bola de cristal en Photoshop <--------------------------------------------------- Efecto de gotas de agua en Photoshop <-----------------------------------------------
![Aprende a Programar en C [Parte 3]](https://storage.posteamelo.com/assets-adonis/assets/2016/01/23/75C.png-9DE2plYS7K1.webp)
Contenido que vamos a ver. Introduccion: Contenido,Lenguaje C, CodeBlocks, Funcion Main( "Hola Mundo " ).Instrucciones definidas en C (Condiciones): IF , ELSE, WHILE , FOR , DO...---. Variables de tipos de datos: INT, CHAR, FLOAT... ---. Funciones definidas en C: Printf,Scanf,Gets,Strcmp,Strcpy,System(). Ejercicios Basicos I : con variables e instrucciones.(Ahora)Introduccion a Funciones y Modularizacion. Introduccion a Pilas y Punteros: Teoria de Pila, FIFO, pilavacia(),desapilar(),apilar(),tope(), mostrar(),leer()... int * p, direccion de memoria &.. Librerias y Definiciones : #include <"nom_lib"> (dentro de CB) , #include "nom_lib" (dentro de Carpeta), #Define "variable" "valor" , #ifnDef , #ifDef , #EndIf (lo basico). Ejercicios Basicos II : con ejercicios de Pilas. Introduccion a Arreglos (Arrays) y Matrices: char A, int B, Ejercicios Basicos III: con ejercicios de Arreglo y Pilas (pasaje de elementos de arreglo a pilas, entre otras). Estructuras y Registros (arreglo de estructuras): Typedef Struct, Typedef Struct A. Ejercicios Medios I: con Arreglos, Estructuras y Registros. Manejo de Archivos: fopen(),fseek,ftell,fwrite,fread, modos de lectura/escritura, etc. Ejercicios Medios II : con manejo de Arreglos, a pasajes de registros, y de registros a archivos. Fabricacion de Pilas. Estructuras Dinamicas: Malloc. Recursividad. Listas Enlazadas: Listas simples, Listas doblemente vinculadas. Arboles: nodos->der, nodos->izq. Ejercicios Avanzados I: Recursion con Listas Ejercicios Avanzados II: Arboles (recursion) y Listas. Ejercicios Avanzados III: Estructuras compuestas: Registros de Listas con recursividad. Ejercicios Basicos I Ya vimos en los anteriores post como usar cada condicion(While,for,if,do) y los tipos de datos (char,int,float) , propondre ejercitacion en la cual tendran que combinar ambas cosas (todo dentro de la funcion main) para que se vayan familiarizando con lo basico del lenguaje. 1) Hacer un scanf() que pida al usuario ingresar un valor, luego indicar por pantalla si ese valor es negativo o positivo. 2) Imprimir por pantalla una variable que se aumente del 0 al 9, pero no muestre el numero 7. 3) Hacer dos scanf() con dos variables, ambas le piden un valor al usuario, mostrar por pantalla el resultado, pero indicar error en caso de que ambas variables contengan el mismo valor. 4) Sumar dos variables (pueden tener cualquier valor) , si el resultado es mayor a 10, restar el resultado por 10, si es menor a 10, multiplicarlo por 10. Mostrar por pantalla el resultado. 5) El director de una escuela desea saber que porcentaje de hombres y mujeres hay en un grupo de estudiantes, si se sabe que hay 50 hombres y 66 mujeres. 6) Calcular si un alumno de una escuela, aprobo o reprobo un curso, si se sabe que hubo 3 examenes y el minimo para aprobar es 7. 7) Dada a[ 10 ] = "Hola" y b[ 10 ] = "Chau", comparar ambos arreglos, luego, copiar el contenido del mayor en el arreglo c[ 10 ]; 8) hacer un scanf() pidiendo el nombre al usuario, luego, copiarlo a un arreglo nombre[ 20 ]. 9) Que tome tres números y diga si la multiplicación de los dos primeros es igual al tercero. 10) Hacer un scanf() que pida al usuario agregar un valor, si el valor es positivo, copiar la palabra "positivo" en un arreglo a[ 10 ] y si es negativo, copiar la palabra "negativo". Luego mostrarlo por pantalla. Con estos ejercicios, estaran preparados para seguir adelante en los proximos post de Lenguaje C.
![Aprende a Programar en C [Parte 4]](https://storage.posteamelo.com/assets-adonis/assets/2016/01/23/75C.png-9DE2plYS7K1.webp)
Contenido que vamos a ver. Introduccion: Contenido,Lenguaje C, CodeBlocks, Funcion Main( "Hola Mundo " ).Instrucciones definidas en C (Condiciones): IF , ELSE, WHILE , FOR , DO.---. Variables de tipos de datos: INT, CHAR, FLOAT... ---. Funciones definidas en C: Printf,Scanf,Gets,Strcmp,Strcpy,System(). Ejercicios Basicos I : con variables e instrucciones.Introduccion a Funciones y Modularizacion.(Ahora) Introduccion a Pilas y Punteros: Teoria de Pila, FIFO, pilavacia(),desapilar(),apilar(),tope(), mostrar(),leer()... int * p, direccion de memoria &.. Librerias y Definiciones : #include <"nom_lib"> (dentro de CB) , #include "nom_lib" (dentro de Carpeta), #Define "variable" "valor" , #ifnDef , #ifDef , #EndIf (lo basico). Ejercicios Basicos II : con ejercicios de Pilas. Introduccion a Arreglos (Arrays) y Matrices: char A, int B, Ejercicios Basicos III: con ejercicios de Arreglo y Pilas (pasaje de elementos de arreglo a pilas, entre otras). Estructuras y Registros (arreglo de estructuras): Typedef Struct, Typedef Struct A. Ejercicios Medios I: con Arreglos, Estructuras y Registros. Manejo de Archivos: fopen(),fseek,ftell,fwrite,fread, modos de lectura/escritura, etc. Ejercicios Medios II : con manejo de Arreglos, a pasajes de registros, y de registros a archivos. Fabricacion de Pilas. Estructuras Dinamicas: Malloc. Recursividad. Listas Enlazadas: Listas simples, Listas doblemente vinculadas. Arboles: nodos->der, nodos->izq. Ejercicios Avanzados I: Recursion con Listas Ejercicios Avanzados II: Arboles (recursion) y Listas. Ejercicios Avanzados III: Estructuras compuestas: Registros de Listas con recursividad. Funciones (Subprogramas) Hasta el momento, no habiamos ido mas alla del main, ahora, aprenderemos a programar fuera y dentro de este. ¿Que son y para que sirven las funciones? Las funciones son subprogramas, que se dividen en bloques de codigo, cada una con una funcion diferente y que cumplen un rol en particular, por ejemplo, una funcion que sume dos valores, otra funcion que se encargue de la resta, otro de la multiplicacion, otro de la divicion, etc, En teoria, la funcion es un recurso que permite la modularizacion de un programa. A traves de esta se puede descomponer un programa complejo en subprogramas mas simples, cada una con una tarea especifica, una funcion puede ser llamada desde el main() como tambien puede ser llamada por otra funcion. Sus ventajas: Evita la duplicacion de codigo, solo basta con llamar a la funcion tantas veces como se necesite.Reduce la complejidad del programa ("Divide y venceras" ).Mejora la legibilidad del codigo.Oculta la complejidad de los algoritmos que pueden llegar a ser demasiado largos. En general, toman valores de entrada y salida, aunque tambien pueden que no. Estructura de una Funcion: <tipo de retorno> nombre_funcion (<parametros formales> ) { <instrucciones> return <valor> } Una funcion que devuelve un valor, su variable receptora tiene que cumplir su mismo tipo de retorno. <variable_receptora> = <nombre_funcion> (<paremtros actuales> ) Esto en caso de que la funcion tenga retorno. <nombre_funcion> (<parametros actuales> ) Esto en caso de que la funcion NO retorne nada. Una vez que este la funcion definida, puede usarse las veces que sea necesario. <tipo de retorno>: Si la funcion no retorna nada, el tipo de retorno sera void, si no se establece, por defecto sera int, aunque lo correcto siempre es establecer el tipo de retorno, que tambien pueden ser float (si devuelve un float), int (si devuelve un int), double, etc. E incluso puede devolver un tipo de estructura, pero lo veremos mas adelante. <nombre_funcion>: Lo recomendable siempre es poner un nombre adecuado que especifique el funcionamiento de la funcion. Si se tiene que usar varias palabras, lo recomendable es usar "_" o las indicarcon mayúsculas cada inicial de la palabra (sumar_elementos,contar_socios,CargarNumeros,etc). <parametros formales>: Los parametros de la funcion, representan los valores de entrada (a veces tambien de salida) que seran ingresados desde el main o desde otra funcion a parte, que llame a esta funcion. Cada parametro se declara igual que una variable y puede haber mas de uno, en este caso, se separan por comas <primero parametro, segundo parametro> pero puede haber mas de 2 parametros. -----a) Parámetros formales: están puestos en la definición de la función. Se declaran dentro de la lista de parámetros, estableciendo nombre y tipo para cada uno. En el momento de declararlos no contienen datos, están vacíos, y sirven a los fines de posibilitar la codificación del algoritmo de la función. Son la “puerta de entrada y a veces de salida” de los datos que necesita procesar la función. ----b) Parámetros actuales: se usan en la invocación de la función. Son variables del programa invocante (el que llama a la función) y se ubican reemplazando a los parámetros formales. Los parámetros actuales contienen datos (valores) que son usados por el cuerpo de la función para realizar los cálculos propios y generar (si hubiere ) el valor de retorno. ----c) Pasaje de parámetros: existen dos maneras de usar los parámetros actuales, lo que determina el tipo de pasaje: pasaje por valor (o copia) y pasaje por referencia (pasando mediante el "&" su direccion de memoria, modificando directamente a la misma desde la funcion). A diferencia del de copia, que en ese caso el parametro actual no modifica el valor original de este (esto lo veremos con mas claridad en pasaje de parametros por punteros). <instrucciones>: Representa el codigo que sera ejecutado cuando se llame a la funcion, el cuerpo de la funcion se encierra entre llaves " { } ". Cuando veamos Pilas entraremos mas en detalle con las funciones. Lo importante es entender el concepto los subprogramas.
![Aprende a Programar en C [Parte 2]](https://storage.posteamelo.com/assets-adonis/assets/2016/01/23/75C.png-9DE2plYS7K1.webp)
Contenido que vamos a ver. Instrucciones definidas en C (Condiciones) (Ahora): IF , ELSE, WHILE , FOR , DO...---. Variables de tipos de datos: INT, CHAR, FLOAT... ---. Funciones definidas en C: Printf,Scanf,Gets,Strcmp,Strcpy,System(). Ejercicios Basicos I : con variables e instrucciones.Introduccion a Funciones y Modularizacion. Introduccion a Pilas y Punteros: Teoria de Pila, FIFO, pilavacia(),desapilar(),apilar(),tope(), mostrar(),leer()... int * p, direccion de memoria &.. Librerias y Definiciones : #include <"nom_lib"> (dentro de CB) , #include "nom_lib" (dentro de Carpeta), #Define "variable" "valor" , #ifnDef , #ifDef , #EndIf (lo basico). Ejercicios Basicos II : con ejercicios de Pilas. Introduccion a Arreglos (Arrays) y Matrices: char A[dimension], int B[dimension], Ejercicios Basicos III: con ejercicios de Arreglo y Pilas (pasaje de elementos de arreglo a pilas, entre otras). Estructuras y Registros (arreglo de estructuras): Typedef Struct, Typedef Struct A[dimension]. Ejercicios Medios I: con Arreglos, Estructuras y Registros. Manejo de Archivos: fopen(),fseek,ftell,fwrite,fread, modos de lectura/escritura, etc. Ejercicios Medios II : con manejo de Arreglos, a pasajes de registros, y de registros a archivos. Fabricacion de Pilas. Estructuras Dinamicas: Malloc. Recursividad. Listas Enlazadas: Listas simples, Listas doblemente vinculadas. Arboles: nodos->der, nodos->izq. Ejercicios Avanzados I: Recursion con Listas Ejercicios Avanzados II: Arboles (recursion) y Listas. Ejercicios Avanzados III: Estructuras compuestas: Registros de Listas con recursividad. Ya vimos la introduccion correspondiente, aplicamos unos ejemplos de variables enteras y mostrarlas por pantalla la suma de dos de estas variables del mismo tipo. Recuerden, que en el Code::Blocks, para compilar, ejecutar, compilar/ejecutar y Reconstruir, se hace mediante estos cuatro botones. Compila el programa. Ejecuta el programa. Compila y luego ejecuta. Reconstruye los codigos. Tambien, a veces pasa que cuando se codifica, puede que la estructura de nuestro programa se "desordene", sin respetar la tabulacion,las llaves estan muy atras con respecto a la condicion... etc. Es posible arreglar estos problemas mediante la opcion "Plugins" y luego "Source code formatter (AStyle) " Condiciones While: Esta condicion, lo que hace, es repetirse a si mismo (bucle) mientras se cumpla el evento que le indicamos en sus parametros. Ejemplo: En este ejemplo, la condicion While(x < 10) nos dice "Mientras que 'x' sea menor a 10...." y nuestra instruccion a esa condicion es "x = x + 1", es lo mismo que poner "x++" que significa "x aumentada" Lo que va a hacer esto es: verificar si x es menor a 10, si es asi, entonces "x = x + 1" ahora, 'x' vale 1, y vuelve a repetir la condicion, ¿es menor a 10?, SI, entonces "x = x + 1" ahora, 'x' vale 2, y vuelve a repetir. En algun momento, x va a valer 10, entonces, la condicion se rompe, quedando x = 10. ACLARACION IMPORTANTE: El operador "=" (igual) , no es el mismo operador que el "=" matematico, lease el "=" como la expresion "Se vuelve" - "Se convierte". Si yo tengo un int x = 2 y un int p = 9; y luego, x = p, no estoy diciendo "x es igual a p", sino, "x se vuelve p". If: Esta condicion, la diferencia con el While anterior, es que solo se verifica una sola vez, normalmente , esta acompañada con el "else", pero tambien puede ser independiente a esta. Ejemplo: En este ejemplo, creamos una variable de tipo entero y lo llamamos 'a', lo igualamos a 5. *entrando a la condicion* if(a < 5) // significa "si 'a' es menor a 5" cumplira una instruccion. else // sino, (si 'a' no es menor a 5) cumplira otra instruccion. For: Esta condicion, es un poco mas compleja que las anteriores,ya que hay que introducir dentro de esta, 3 parametros y separados por un punto y coma ( ; ) . Es muy util para por ejemplo, mostrar los datos de las celdas de un arreglo, o para mostrar X cantidad de veces, un texto. Ejemplo: En este ejemplo, creamos la variable entera 'i' y la igualamos a 0. *entrando a la condicion* for(i=0;i<10;i++) // se traduce: "Para 'i' igual a 0, mientras sea menor a 10, 'i' aumentara." y debajo de ella, la instruccion de printf("%d",i), osea, mostramos el valor de ' i ' para cada instante. i es 0, i es menor a 10?, SI, entonces aumentara. *muestro el valor de i = 0* *i aumenta, y vuelve a repetir la condicion pero desde el parametro numero 2* i es menor a 10?, SI, entonces aumentara. *muestro el valor de i = 1* *i aumenta, y vuelve a repetir la condicion a partir del parametro 2* DO (While): Esta condicion, es otro tipo de bucle, como el While, pero, se ejecutara por lo menos una vez. Ejemplo: Aca cree dos variables, i y rta. la funcion fflush(stdin) significa " liberar (standard input) " osea, "liberar buffer para la insercion de datos de entrada" , el "buffer" es un espacio de memoria de almacenamiento temporal de informacion. Recomiendo usarlo antes de ingresar datos mediante "scanf()" para evitar ciertos errores. En esta condicion hay dos particularidades, la condicion de corte es que rta == 1. ¿Que significa "==" , porque no puse un solo "=" ?. Bueno, principalmente el operador "=" , es un operador de asignacion, y el operador "==" es de verificacion, si yo pongo rta = 1, estoy diciendo "rta se vuelve 1", y si pongo rta == 1, estaria diciendo "si rta es igual a 1", recuerden usar "==" en caso de que quieran verificar una asignacion, mediante un if, un while, etc. La otra particularidad, es que el while final, termina agregandole un ( ; ) , no se olviden de ese ultimo detalle. Tipos de datos Ya conocemos el tipo entero (int). veremos ahora, dos tipos de datos nuevos, el char y el float. (no veremos double, ni long int). Tipo char: Es de tipo caracter, ven vez de asignarle enteros, le asignaremos letras, utilizando comillas simples. char i = 's'; char a = 'p'; Tambien podemos asignarle una lista larga de caracteres (cadenas). char a[ 11 ] = "Hola mundo" Aca cree un arreglo de caracteres, 'a' "variable" [ 11 ] "dimension [entre corchetes]" y luego el texto entre comillas. Cada celda de la dimension es una letra (tambien cuentan los espacios), a[0] = 'H' , a[1] = 'o' ... Las cadenas de caracteres se muestran en el printf() con el operador "%s" , las letras simples se muestran mediante el operador "%c". al asignar por primera vez a[ 11 ] estas agregando un arreglo con su dimension. al asignarlo por segunda vez a[ 11 ] estas mostrando la celda (posicion 10 [recuerda que empieza desde la posicion 0)] del arreglo, la dimension es 11, pero dentro de ella, las posiciones van de 0 a 10. Igual, lo veremos mas adelante esto. Copiar una cadena a otra: Lo primero es lo primero. Para manejar cadenas de caracteres, (copiarlas,compararlas,cambiar tamaño de sus celdas(letras)) necesitaremos incluir en la cabecera del programa, la librearia "string.h". #include <string.h> // contiene las funciones "gets" , "strcmp", "strcpy" , etc.. Supongamos que tengo dos cadenas. int a [ 10 ] = "Hola"; int b [ 10 ]; Quiero que 'b' copie el contenido de 'a'. usaremos la funcion strcpy (string copy). strcpy("en donde lo copio?","de quien?" ). strcpy(b,a). Comparar cadenas: Si quiero comparar cadenas alfabeticamente, cual es mayor que cual. Por ejemplo mi nombre, Damian, es mayor que Agustin, porque, alfabeticamente, D>A, los compara por celdas. Si en cambio, fuera Damian y Daniel, ¿cual seria el mayor? Daniel, porque la 'n' se posiciona despues que la 'm' alfabeticamente. En el strcmp(A,B) , puede dar los siguientes resultados: Si el primer parametro (A) es mayor al segundo (B) , el resultado da mayor a 0 ">0". Si el segundo parametro (B) es mayor al primero (A) , el resultado da menor a 0 "<0" Si ambas cadenas son iguales, el resultado da igual a 0 "=0". Mas adelante lo veremos con mas detalle. Tipo Float: tipo decimal, con coma. float s = 3.52; float a = 1.4; printf("%.2f",s+a); // ponemos %.nf (n = numeros despues de la coma). Por el momento eso es todo, no vimos mucho de float porque es sencillo y no lo vamos a usar mucho (solo cuando necesitemos contar el promedio de algo, por ejemplo).