Abril 26, 2018, 06:40:18 pm

Autor Tema: Curso C/C++  (Leído 147235 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Curso C/C++
« en: Noviembre 12, 2007, 11:52:18 am »
Curso C/C++ desde cero

You are not allowed to view links. Register or Login

Iniciamos la revisión del curso, con vuestra participación


- El tema queda abierto. Así con vuestra ayuda conseguiremos una mejor revisión.

Quienes concozcais el curso, en su revisión anterior, y querais contribuir con vuestras modificaciones, contactar con los moderadores del foro.


¿Que es C++?

Bueno, creo que antes de empezar con el manual y explicar códigos y demás... es mejor comenzar sabiendo un poco sobre C / C++

Se trata de un lenguaje de programación, es muy potente ya que puedes llegar a programar con él directamente sobre los registros del procesador.

C en lenguaje lineal, su rumbo seguira, reflejado en código un principio y un final. Hay otro tipo de programación que es la orientada a objetos, con lo que nos encontramos con C++ un C para el para el paradigma de programación orientada a objetos. Abstracción, Encapsulación, Herencia, y Polimorfismo.

Hay otro lenguaje, orientado a objetos, que muestra más proximidad a C que C++ se trata de Objetive C que ademas es totalemente orientado a objetos. Pero que en el curso no lo trataremos, ... de momento.

Tódo lo que se puede hacer en C se puede hacer en C++, lo podemos considerar un C ampliado. Un código escrito para C podremos construirlo con un compilador de C++ pero no al revés. Un código con propiedades de C++ no puede ser compilado en C.

Programar en este lenguaje nos permite hacer, desde el mas sencillo programa, hasta programas de cualquier índole y complejidad.

C++ nace como evolución del lenguaje C a finales de los 70, y su creador es Bjarne Stroustrup.

Bueno, con esto es suficiente... pues tampoco vamos a entrar en detalles sobre eso...

pasemos a la acción....

Comencemos!!!


... iniciando ....
« Última modificación: Junio 15, 2013, 04:43:20 pm por .xAk. »
Por una red libre de información y sin censuras
"Podrán morir las personas, pero jamas sus ideales"

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Re: Curso C++ desde 0
« Respuesta #1 en: Noviembre 12, 2007, 12:19:29 pm »
Instalación en windows

--- este mensaje se está construyendo ---

Vamos a crear nuestro entorno de desarrollo, para el curso.

You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or LoginYou are not allowed to view links. Register or LoginYou are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login

El entorno significará que tendremos un área de que reservamos a la programación. En cualquier lenguaje, centrándonos en este en el que estamos C / C++

Los compiladores que utilizaremos en las explicaciones, serán dos, podéis escoger el que queráis. El de You are not allowed to view links. Register or Login y el de You are not allowed to view links. Register or Login.

Luego utilizaremos un IDE, para programar. Y en ambos casos utilizaremos Dev-C++, para mostrar los ejemplos y responder delante de las dudas. Utilizándolo con cualquiera de los dos compiladores.

Así que lo primero que haremos es instalar un compilador, nosotros responderemos delante de estos dos, el You are not allowed to view links. Register or Login y del You are not allowed to view links. Register or Login, especialmente delante de este último.

Su instalación ya veréis que no es complicada, en el caso de MinGW añadirle aquello que queráis, el compilador de c++ y el MSYS, también podeis instalar el compilador para Objective C


Vamos a probarlo. Iniciemos la shell para trabajar desde la línea de comandos
     

Se nos abrira una ventana de comandos, si habeis optado por MSyS vereis que es una shell diferente a la que se utiliza, más cercana a unix que a win :))

escribimos notepad inicio.c pulsamos enter, copiamos estas lineas en el editor y guardamos.

Código: You are not allowed to view links. Register or Login
#include <stdio.h>

int main ( void )
{
puts ( "Hola compilador C" );
return getchar () == 0;
}

guardamos y regresamos a nuestra shell. Vamos a compilarlo.

Si estamos en Visual C ++ el compilador para C y C++ se llama cl.exe así lo utilizaremos del siguiente modo:

Código: You are not allowed to view links. Register or Login
D:\Microsoft Visual Studio 10.0\VC>cl inicio.c
Compilador de optimización de C/C++ de 32 bits de Microsoft (R) versión 16.00.30
319.01 para 80x86
(C) Microsoft Corporation. Reservados todos los derechos.

inicio.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:inicio.exe
inicio.obj

D:\Microsoft Visual Studio 10.0\VC>

Por la extensión del archivo el compilador ya sabe que debe compilarlo en C

Podremos comprobar que funciona si lo ejecutamos.

Con el entorno en MinGW utilizaremos el gcc.exe para compilar en C y g++.exe para los que sean C++

~ $ gcc -o inicio inicio.c

Y ya lo tendremos construido, podemos lanzarlos y probarlos



Ahora, nos encargaremos del You are not allowed to view links. Register or Login que utilizaremos: You are not allowed to view links. Register or Login.

Lo descargamos de los enlaces anteriores y lo instalamos.

Durante la instalación nos preguntará dónde lo queremos instalar, nosotros lo podemos dejar como está y dejarlo en C:\Dev-Cpp o cambiarlo y evitarnos una configuraciones y establecerlo en C:\MinGW, si es que habéis optado por este compilador.

Fijaros bien en la ruta de instalación, que sea igual a la que veis en la imagen, que se corresponda con el directorio de MinGW


Si no lo hacemos de este modo o lo instalamos en el directorio por defecto u otro directorio, nos encontraremos con el siguiente mensaje, cuando iniciemos Dev-C++ indicándonos que como no se han localizado las rutas a diferentes directorios necesarios, las rutas por defecto no se escribirán. Y tampoco indexará lo contenidos. Nos mostrará un mensaje de advertencia:


Vamos a intentar evitarlo, así cuando lo iniciemos veremos cómo nos pregunta por la indexación.

Vamos a configurarlo.

Tenemos, o bien instalado el Visual C++, o el MinGW y el Dev C++ en el directorio del MinGW o en el suyo por defecto: C:\Dev-Cpp.

Iniciamos el Dev-Cpp desde su directorio con doble click sobre su icono por ejemplo, si lo hacéis desde el explorador.

Veremos los mensajes que nos muestra la primera vez, y luego en el menú desplegaremos Herramientas y pulsaremos sobre Opciones del compilador.

Nos aparecerá un asistente. Es donde configuraremos el compilador o los compiladores que utilizaremos con este IDE, Si no fijamos en la pestaña actual veremos que estamos preparando la configuración para el Default GCC compiler, el compilador de GNU que nos ofrece MinGW.

Vamos a pulsar sobre la pestaña pestaña Directorios, son los directorios de búsqueda por defecto. Veremos que hay diferentes cosas a buscar.

La primera que encontramos en la de binarios. Aquí tenemos archivos exe, que podemos utilizar en desarrollo. Vemos la ruta a C:\Dev-Cpp\bin, tenemos que añadir la ruta al bin de MinGW ... y si queremos suprimir la que aparece. (Sólo contiene un ejecutable), luego de añadirla, le daremos prioridad a la de MinGW, como veis en la imagen:


En la siguiente pestaña, Bibliotecas, indicaremos su directorio, se encuentran en: C:\MinGW\lib, lo dejamos indicado en la pestaña y pasamos a las siguientes.

A continuación vereis los directorios que debemos incluir en cada pestaña. He superpuesto las imágenes, supongo lo entenderéis.


Es decir, en la bibliotecas como dijimos añadiremos:
C:\MinGW\lib

en Includes C
C:\MinGW\include
C:\MinGW\lib\gcc\mingw32\4.5.0\include


y a Includes C++
C:\MinGW\lib\gcc\mingw32\4.5.0\include\c++
C:\MinGW\lib\gcc\mingw32\4.5.0\include\c++\mingw32
C:\MinGW\lib\gcc\mingw32\4.5.0\include\c++\backward

Con ello tendremos este apartado listo.

Podemos pulsar en la pestaña general, programas, y comprobar que tenemos todas las casillas rellenadas


Estos archivos son los que se buscaran en los directorios de búsqueda que indicamos antes en binarios.

Ya tenemos configurado nuestro entorno para el compilador de GNU.

Configuración para un compilador de Visual C++

...
« Última modificación: Febrero 16, 2011, 10:37:47 pm por .xAk. »

Desconectado mycrox

  • ANSI C Programmer
  • Yo vivo en CPH
  • ***
  • Mensajes: 698
  • Sexo: Masculino
    • Ver Perfil
Re: Curso C++ desde 0
« Respuesta #2 en: Noviembre 12, 2007, 03:39:57 pm »
Instalación en Gnu/Linux

--- este mensaje se está construyendo ---

Si vas a seguir el curso y utilizas como tú sistema operativo GNU/Linux, en este mensaje verás sugerencias sobre establecer un IDE cercano al de win.

Normalmente las instalaciones GNU/Linux ya cuentan con su entorno de programación en C / C++ este sistema operativo, desde el pricipio era orientado a programadores y no pierde ese principio ;)

Si os encontrais con cualquier error o problema, participar en el hilo. Si no teneis las herramientas de desarrollo en vuestro sistema indicar de que distribución se trata. Cuento con que las teneis instaladas, pero, el número de diferentes distribuciones es muy extenso ;)

Voy a terminar enseguida. La forma más sencilla que creo os servirá para seguir el curso en un entorno de desarrollo similar, va a ser el You are not allowed to view links. Register or Login. Lo podeis descargar dode querais.

Descomprimir el archivo, y luego entrais en la carpeta MinGWStudio y le dais a MinGWStudio, ya sabeis, con las herramientas que nos ofrece el sistema

Si prefiráis realizar las acciones por medio de la terminal, entonces podemos seguir estos pasos, supongamos que el archivo lo hemos descargado y guardado en la raiz de nuestro home (~) es decir el archivo está en ~/mingw-devstudio_linux-2.06.tar.gz ... abrimos la terminal:

animalf@keeper ~ $

ahora descomprimimos

animalf@keeper ~ $ tar xfvz ~/mingw-devstudio_linux-2.06.tar.gz
luego nos metemos en el directorio y ejecutamos el MinGWStudio

animalf@keeper ~ $ cd MinGWStudio && ./MinGWStudio

 
Como en sistema nix todo sigue el estandar, al arrancar las configuraciones del ide son localizadas y serán correctas. Probemoslo con un hola curso C / C++

iniciamos un nuevo proyecto y le damos nombres ... el que queramos, por ejemplo inicial



Así nos asignamos ademas un directorio en el que tendremos los archivos que utilizaremos en el proyecto.

A continuación crearemos un nuevo archivo, será para código fuente,  dónde escribiremos el programa.


Vamos a escribir un pequeño programa y así comprobamos si nos funciona.

Código: (c) You are not allowed to view links. Register or Login
#include <stdio.h>

int main ( void )
{
puts ( "Hola compilador C" );
return getchar () == 0;
}

Si pulsamos F8 el programa se compilará y se lanzará en una terminal.

Podremos comprobar que esta terminal, nos mostrará además, cuando finaliza le ejecución su código de retorno, y nos pide pulsar una tecla para finalizar.


Con Dev-C++ es un poco más complicado hacerlo funcionar, si adecuar el sistema, estoy investigando sobre ello, por lo de a continuación de momento sigue en construcción ...

Dev-C++ es un proyecto terminado. Hace ya años que finalizó su desarrollo. Ha surgido un proyecto a raiz de él que es muy interesante: You are not allowed to view links. Register or Login que convierte el IDE en RAD. Pero no es para el sistema operativo del que trata este mensaje.

Como en el curso se utiliza Dev-C++ aquí lo utilizaremos también, o uno muy similar. Resulta que el Dev-C++ sólo funciona en libc5 y no en libc6. Es código abierto, pero es un código para kylix. Y Los binarios los construye para libc5. Para poder correr el programa en Linux necesitamos crear un entorno compatible para este tipo de casos. Existen creo que en todas las distribuciones paquetes que costruyen este entorno.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Estoy probando un sistema alternativo que consiste en descargase You are not allowed to view links. Register or Login en un directorio. Y luego llamar al binario de este modo:

/directorio/descarga/ld-linux.so.2 --library-path /directorio/descarga:/otro/dirlib/busqueda ejecutable

¿Vamos a ver si funciona?

Situemonos en una Terminal

animalf@keeper ~ $

Descargamos el You are not allowed to view links. Register or Login y lo guardamos:

animalf@keeper ~ $ wget -O devcpp-bin_070.tar.gz You are not allowed to view links. Register or Login

Vamos a crear un directorio temporal y nos meteremos en él e iniciaremos la instalación del IDE, hacer lo siguiente:

animalf@keeper ~ $ mkdir tmp && cd tmp && tar xfvz ../devcpp-bin_070.tar.gz && sudo ./install.sh
tall.sh
INSTALL
README
README-BETA.txt
install.sh
binary.tar.gz
Contrasenya:
** Dev-C++ installation script **

You must be root to install. Do you want to continue ?
 (Y/n) ?


Tenemos que ver lo siguiente:


Tecleamos Y y return para continuar con la instalación

bin/devcpp
bin/libqtintf.so
README
README-BETA.txt
BUGS
templates/gtk+.ico
templates/gtk+.template
templates/gtk+_c.txt
templates/hello.ico
templates/hello.template
templates/hello_c.txt
templates/hello_cpp.txt
templates/opengl.template
templates/opengl.txt
templates/opengl_cpp.txt
templates/test.template
templates/test_cpp.txt
Where do you want to install Dev-C++ ? [/root/dev-c++] : /usr/local/bin


Le indicamos dónde queremos que lo instale, esto cada uno, por ejemplo en /usr/local/bin

Lo primero que nos dirás es que no ha encontrado el archivo TODO y luego con pedirá confirmación hacia las herramientas para nuestro sistema. Su valores por defecto serán correctos por lo general.

mv: ha fallat stat() sobre «TODO»: El fitxer o directori no existeix

* This script will now guess your gcc and make paths
* Press enter if the path is correct for each program

make is located in : [/usr/bin/make] :
gcc is located in : [/usr/bin/gcc] :
g++ is located in : [/usr/bin/g++] :
gdb (or your favourite debugger) is located in : [/usr/bin/gdb] :
xterm, aterm or Eterm is located in : [/usr/bin/xterm] :

* Configuration file is now been written in /root/.devcpp/config


* Installation terminated, you may now run /usr/local/bin/devcpp


Vemos que ya nos díce cómo arrancarlo, escribiendo su ruta entera. Si teneis teneis en $PATH la ruta a /usr/local/bin entonces, sólo tendremos que escribir su nombre para iniciarlo

Como hemos puesto en nuestro equipo un archivo binario, construido en otra máquina, vamos a comprobar sus dependéncias:

animalf@keeper ~ $ ldd /usr/local/share/dev-c++/devcpp
   linux-gate.so.1 =>  (0xffffe000)
   libqtintf.so => /lib/libqtintf.so (0xb75e1000)
   libX11.so.6 => /usr/lib/libX11.so.6 (0xb74cc000)
   libpthread.so.0 => /lib/libpthread.so.0 (0xb74b3000)
   libdl.so.2 => /lib/libdl.so.2 (0xb74af000)
   libc.so.6 => /lib/libc.so.6 (0xb7368000)
   libqt.so.2 => not found
   libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb734e000)
   /lib/ld-linux.so.2 (0xb778d000)
   libXau.so.6 => /usr/lib/libXau.so.6 (0xb734a000)
   libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7344000)

Me muestra que libqt.so.2 => not found entonces, no podré iniciar el IDE sin esa librería. Está realizado bajo las QT.





« Última modificación: Febrero 16, 2011, 09:54:34 pm por .xAk. »
<A HREF="You are not allowed to view links. Register or Login"> Hermano católico.. ¡defiende tu fe!</A>

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Re: Curso C++ desde 0
« Respuesta #3 en: Noviembre 16, 2007, 12:07:45 pm »
You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login

- Introduccion:

Una vez descargado, lo instalan y lo ejecutan.

Les aparecerá algo asi...





Bien. Ya tienen en su pantalla el Dev C++ xD

Podrida pararme a explicar un poco que es cada botón... pero creo que es mejor que vallan echando un vistazo por ustedes mismos, ya que al fin y al cabo, esta en español, y es igual o parecido a cualquier programa... con su menú de Archivo, edición... los botones ya los conocen mas o menos... etc... asi que pasemos a nuestro primer programa en C++ !!!

Vamos a Archivo y seleccionamos la opción Nuevo código fuente

Les aparecerá en pantalla, un espacio en blanco donde podrán ir escribiendo.

Voy a escribir el código en C y también en C++

Pues nuestro primer programa sera, el tan famoso "hola mundo" así que para ello copian el siguiente codigo:

Nuestro programa en C
Código: You are not allowed to view links. Register or Login
#include <stdio.h>

int main ( void )
{
    printf ( "Hola mundo\n\nPulsa Return para terminar ...\n" );
    getchar ();
    return 0;
}

Ahora el mismo programa en C++

Código: You are not allowed to view links. Register or Login
#include <iostream>

using namespace std;

int main()
{
    cout << "Hola mundo" << endl << endl << "Pulsa Return para terminar ..." << endl;
    cin.get ();
    return 0;
}

Lo que ara este código sera mostrar en una pantalla de terminal el texto "hola mundo"

Asi que van a Ejecutar y seleccionan compilar y ejecutar o solo Compilar pero en ambos casos les pedirá que elijan un sitio donde guardarlo...

Pueden crear por ejemplo una carpeta en el escritorio llamada "c++ codes" o como quieran...

Cuando guardemos un archivo, nos fijarermos en su extensión, un código en C lo guardaderemos como codigo.c y un código en C++ lo guardaremos con la extensión codigo.cpp, tenemos dos extensiones, *.c y +.cpp (tenemos más extensiones de archivos, pero de momento nos fijaremos en estas dos)

Cuando lo compilen, se les creara un archivo .exe acompañando a nuestro código que nos servirá para que cuando cerremos el dev c++ podamos abrirle y tener el código del programa para poder verlo, hacer modificaciones... etc...

Con respecto al código, vamos a explicar un par de cosas...


----------------------


#include sirve para referir archivos extras que complementarán el código, estos tienen relación con las bibliotecas de funciones que vamos a usar... en ellos están las declaraciones de las funciones, variables, contantes y más cosas que iremos viendo.

el modo de empleo es #include <nombre_archivo>

En C++, y con las librerías estandar, sólo se utiliza en nombre de archivo SIN SU EXTENSIÓN. Son referencias a espacios de nombres que ya veremos más adelante.

Tanto en el código de C como en el de C++ hemos incluido el archivo que hace referencia a la entrada y salida estandar. En C lo conocemos como stdio.h y en C++ por iostream

Entrada y salida estandar, se refiere cómo se le introducen los datos al programa, por lo que hace referencia al teclado y salida se refiere a dónde la muestra, que hace referencia a la terminal que se nos muestra en pantalla.

Contiene funciones para el trato de caracteres, la forma de recogerlos cuando se pulsan y también la forma de mostrarlos a nuestro antojo en la pantalla de la terminal.

----------------------


int main () es necesario, puesto que todo programa en C++ comienza con una función main() y solo puede haber una, y como siempre regresa un entero, pues se coloca delante en int

Por regla general, en programa devuelve 0 (null, void, false ...) si todo ha ido bien, cualquier otro numero que devuelva, indicaría un error en su funcionamiento, eso depende del programador o grupo de ellos. Ya que pueden tener una lista con la referencia de los distintos errores de retorno, por ejemplo si  retorna 1 es porqué no no existe archivo de configuración y no se puede crear, si retorna 2 por ejemplo que existe el archivo pero no se puede modificar ... nosotros, en principio devolveremos 0 como que todo a ido bien y 1 o -1 para indicar que termina porque algo ha ido mal.

Hay malas costumbres, como indicar la función principal, la función main de este modo void main (), está mal ya que así siempre devolverá 0, no hay opción para el error y eso no es correcto. Aunque funcione. Entonces para finalizar la función utilizaremos return a secas sin indicar un entero. Pero eso no se hace.

Veremos más adelante que return, lo que hace es finalizar la función en la que se encuentra y devolver en valor, al flujo principal de nuestro programa. Aquí vemos que al tratarla en la función principal, lo que hace es finalizar la aplicación y devolver un valor al sistema operativo.

----------------------

En C hemos utilizado la función printf perteneciente a stdio.h, que muestra lo que le indicamos entre paréntesis en la pantalla
Código: You are not allowed to view links. Register or Login
printf  ( "Hola mundo\n\nPulsa Return para terminar ...\n" );El caracter \n es  un caracter de escape, un caracter especial, introducirá un salto de línea, lo que va a continuación de ese simbolo, se mostrará en la pantalla como el principio de la próxima línea.

Veremos luego que printf tienes más formas de uso, nos permitirá formatear valores para presentarlos.

En C++ vamos a trabajar con cout, cin y endl, estos forman parte de std. A continuación de los includes, si os fijais le hemos indicado que utilizaremos todo el espacio std

Código: You are not allowed to view links. Register or Login
using namespace std;
También lo ubiesemos podido expresar de este modo, indicándole sólo aquello que utilizaremos del espacio de nombres estandar dentro de iostream:

Código: You are not allowed to view links. Register or Login
using std::cout;
using std::cin;
using std::endl;

cout lo utilizarémos para mostrar datos en la pantalla, cin para recoger datos del teclado y endl es el caracter de fin de línea introduce un salto de línea, al igual que el caracter \n

Si no incluimos una de las dos formas, entonces cuando utlizamos la orden tendríamos que indicar tambien que pertenece al espacio de nombres estandar de ioestream. Es decir, tenemos las líneas

Código: You are not allowed to view links. Register or Login
cout << "Hola mundo" << endl << endl << "Pulsa Return para terminar ..." << endl;
cin.get ();
si no le decimos que utilice el espacio std entonces las líneas deberíamos escribirlas del siguiente modo:

Código: You are not allowed to view links. Register or Login
std::cout << "Hola mundo" << std::endl << std::endl << "Pulsa Return para terminar ..." << std::endl;
std::cin.get ();

La instrucción cout esta dentro de la biblioteca iostream que empleamos (declaramos) al principio. Lo que hace esto en definitiva es mostrar el texto, asi que no se lien con lo que acabo de decir ni se preocupen...

----------------------

getchar y cin.get lo que hacen es esperar que se introduzcan datos por el teclado y se pulse return. (Así hacemos una pausa antes de finalizar)

----------------------

return 0; Esto es otra instrucción (return) que determina lo que devolveremos a  main() que en este caso, como habitamos declarado que seria un entero, pues ponemos el 0 lo cual no dara errores durante la ejecución...
Si no lo han entendido bien, tampoco se preocupen... esto es sencillo y lo iran cogiendo mas adelante.

La llave de cierre de la función main() indica el termino del bloque de instrucciones.

Y una ultima cosa para terminar...

Igual que encerramos código entre las llaves, también podemos introducir comentarios en nuestro código, notas nuestras que nos ayuden a entender que se está haciendo, o que ocurre en esa parte del código, notas de cada uno. Las podemos encerrar entre los símbolos /* y */ por ejemplo:

Código: You are not allowed to view links. Register or Login
/*
    Este bloque es un comentario
    El compilador ignorará estas líneas
*/

En C++ además se pueden utilizar las barras / / para introducir un comentario en el codigo. Lo que va a continuación de la doble barra será un comentario que llegará hasta el final de la linea, por ejemplo

Código: You are not allowed to view links. Register or Login
int main () //esto es un comentario
Seria igual que usar el comando rem en batch.

Si por ejemplo, a nuestro code le metemos:

Código: You are not allowed to view links. Register or Login
#include <iostream>

int main()
{
    std::cout << "Hola mundo" << std::endl << "Pulsa return ..." << std::endl;
    // manual por txshack
    std::cin.get();
    return 0;
}

verán que e puesto un comentario entre / / pues bien, eso no repercute en el código, ni se muestra ni nada... solo es para que si alguien lo lee el code, pues vea cosas que deja escritas el autor...

Y bueno amigos, hasta aquí por hoy que ya me canse de escribir jeje.

Me lo e currado poniendo acentos y sin faltas de ortografía xD

Otro dia que tenga tiempo continuo explicando las cosas fundamentales...

Para los que ya sepan de C pues verán el manual muy básico al principio, pero esto es para los que precien comienzan, aunque la cosa ya ira complicándose jejeje

You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login
« Última modificación: Febrero 16, 2011, 10:16:01 pm por .xAk. »

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Re: Curso C++ desde 0
« Respuesta #4 en: Noviembre 17, 2007, 01:34:57 am »
You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login
POR: Mycrox y TxShack



Bueno amigos, antes de continuar adentrándonos en C / C++ como buen consejo que dio @Mycrox, convendría explicar alguna cosa mas, para tener claros los conceptos... así que este 2º capitulo, sera un capitulo, por llamarlo de alguna forma, "teórico" xD.


explicación desde cero sobre tipos de datos

Los diferentes tipos de datos sirven para que el computador sepa con que tipos de datos desea trabajar, ya sea con números, números con decimales, letras, etc.

Existen varios tipos de datos con los que se trabaja en C.

tenemos los mas comunes que son:



int------>Tipo de dato ENTERO desde el -32767 hasta el 32767
long int------>Tipo de dato ENTERO pero más largo desde el -2.147.483.647 hasta el 2.147.483.647.
float------>Tipo de dato numérico con decimales {0.1, 2.9, etc}, desde el 3.4*e-38 hasta el 3.4*e38
double------>Tipo de dato numérico con decimales pero con rangos más grandes, desde el 1.7*e-307 hasta ek 1.7*e308
char------>Tipo de dato carácter {a, b, c....}



Cuando declaramos en el lenguaje C algún tipo de dato, el compilador reserva en memoria RAM los bytes necesarios para guardar ese dato.


Explicación desde cero sobre identificadores


¿Qué es un identificador?


Los identificadores son los nombres que se le asignan a las variables para poder "identificarlas en el programa". Una variable, es un espacio reservado en memoria que "varía" su valor.

por ejemplo, declaro una variable donde se guardara el resultado de una suma.

seria algo así:

Código: You are not allowed to view links. Register or Login
int suma;
int--->tipo de dato númerico, ya que si quiero guardar un resultado de una suma, normalmente es ENTERO.
suma--->Es el nombre de la variable pero de tipo numérico por el int.
Código: You are not allowed to view links. Register or Login
float suma;
float--->Tipo de dato con coma flotante (decimales), si escribo float, el resultado de la suma me va a dar con decimales
suma--->Es el nombre de la variable pero de tipo numérico con decimales por el float.

Código: You are not allowed to view links. Register or Login
char suma;
char--->Tipo de dato de caracteres, aqui no podríamos realizar operaciones matemáticas ya que la variable suma, no seria considerada como un numero, si no que como una letra, mas adelante veremos esto con más profundidad.


Si nos damos cuenta, la variable suma no tiene ningún valor, ya que supuestamente cuando se realice la suma, la variable tomará el valor del resultado, cierto?

Pero también se puede cambiar esto, si yo quiero que un valor se inicialice en un número, perfectamente se podría hacer:

Código: You are not allowed to view links. Register or Login
int x=5
int y=10

entonces, si por ejemplo quiero sumar 5+10 en C, el código sería el siguiente:

Código: You are not allowed to view links. Register or Login
int x=5;
int y=10;
suma=x+y;

o más simple todavía:

Código: You are not allowed to view links. Register or Login
suma=5+10;

*Toda linea de código debe terminar con un punto y coma (;) a excepción de algunos casos que veremos más adelante.


PALABRAS RESERVADAS:

Si se fijaron, yo puedo declarar una variable con el nombre que yo desee (char nombre, int numero, etc) pero existen palabras reservadas en C que no puedo utilizar como variables propias o definiciones.

acá les va la lista:


Citar
ansi       continue     float       new            signed       try
auto      default        for         operator     sizeof         typedef
break    delete         friend     private        static         union
case      do               goto      protected    struct         unsigned
catch     double        if            public          switch        virtual
char       else            inline     register       template    void
class      enum          int         return          this            volatile
const     extern         long      short           throw         while


cuando en el compilador escriban estas palabras, el texto se les pondrá en negrita.


Librerías:


Las librerías, son unos ficheros que contienen el código objeto de muchos programas que nos permiten hacer cosas como escribir en pantalla, manejar números, leer el teclado, hacer operaciones matemáticas... etc.
Existen librerías de entrada y de salida, de manejo de memoria, de manejo de texto, matemáticas....

Un conjunto de librerías especiales son las ANSI que se incluyen con todos los compiladores de C y C++ y después existen otros tipos de librerías publicas, y otras de distribución comercial, aunque las que trataremos principalmente son las ANSI.

Segun vallamos desarrollando el manual, irán entendiendo mejor como usar las librerías, asi que no se preocupen. ;)


Tipos de errores:


Al crear un código, podemos cometer errores a la hora de codearlo, ya sea por despiste error de escritura etc...
Estos errores, los podemos clasificar de distintas formas:


AVISOS: Los avisos (Warnings) son errores que no son lo suficientemente graves para impedir la generación de código objeto, pero es conveniente corregirlos, ya que puede dar confusión al compilador, a la hora de ejecutar el programa, y puede tomar decisiones las cuales nosotros no teníamos en mente a la hora de programarlo.


ERRORES DE SINTAXIS: Estos errores se detectan en la fase de compilación, y nos dará una lista de errores de sintaxis, los cuales, pueden haber sido ocasionados por expresiones incompletas o erróneas, que hayamos escrito algo mal... etc.


ERRORES A LA HORA DE EJECUTAR: Existen ocasiones, en las que una vez creado el ejecutable, a la hora de ejecutarlo, se cierra de forma brusca debido a algún error. Este tipo de fallos son los mas difíciles de localizar, pero existen unos programas auxiliares llamados debuggers (depuradores) que inspeccionan el programa paso a paso, comprobando las variables... etc



Bueno, espero que esto les hay aclarado algo mas las cosas antes de continuar...

Las explicaciones del principio, han sido escritas por @Mycrox, el cual se a unido a la creación del curso, y me mando por m.p. para que lo publicase... Esperemos que siga colaborando ^^ Lo de las librerías y los tipos de errores ha sido echo por mi.

Recuerden que si tienen alguna pregunta, no duden en postear ;)

Pronto seguiremos con el manual... (en cuanto haya un rato libre)

Saludos y hasta pronto!!!

You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login
« Última modificación: Marzo 05, 2011, 10:42:34 am por .xAk. »

Desconectado mycrox

  • ANSI C Programmer
  • Yo vivo en CPH
  • ***
  • Mensajes: 698
  • Sexo: Masculino
    • Ver Perfil
[Utilizando valores] Curso C++ desde 0
« Respuesta #5 en: Diciembre 02, 2007, 12:46:15 pm »
You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login
Utilizando valores



Vamos a volver con las variables. Las variables recordemos que podemos declararlas, con un identificador, para que almacenen un tipo de dato. Estos los vimos en el capitulo anterior. Siempre se han de declarar las variables en C / C++ es decir identificarlas con el tipo de dato que contendrán.

ASIGNACIONES DE VALORES.

Una asignación quiere decir que "entrego" un valor a una variable determinada. En lenguaje C esas asignaciones se hacen de derecha a izquierda, ya que al revés nos saldrá error.

ejemplos buenos:
Código: You are not allowed to view links. Register or Login
a = 5 //el valor 5 se guarda en la variable a
a = b //el valor de b se guarda en la variable a.

ejemplos malos:
Código: You are not allowed to view links. Register or Login
5 = a;
a + b = c;

si nos fijamos, los ejemplos malos tienen lógica, pero en lenguaje C eso no existe.



IMPRIMIR DATOS POR PANTALLA.

La funcion puts se encarga de ello, acepta un argumento en su interior, que serán lo que queremos que se muestre. Una vez a mostrado el contenido, luego añade un salto de línea.

Código: You are not allowed to view links. Register or Login
puts ( "Curso C / C++ de CPH" );
En lenguaje C existe una función llamada printf que quiere decir "imprimir de first y primero de f (printf)"

¿El primero que?
El primer dispositivo de salida que en este caso es el monitor.

Sintaxis: printf ( "texto" );

Veamos un ejemplo:



Pasaré a explicar el código.

#include <stdio.h>
#include <stdlib.h>
-- Son las librerias con las funciones necesarias para que funcione el programa, en este caso la stdio para el printf y la stdlib para el system ( "pause" )

system, lo que hace es ejecutar comandos del sistema y espera a que finalicen para seguir el flujo de la aplicacion. Lo que hacemos es iniciar otra sesión del interprete de comandos, ejecutar pause y esperar que termine la aplicación.

Lo utilizamos por la facilidad que nos ofrece, podemos simularlo utilizando getchar por ejemplo.

int main() -- Funcion principal.

printf ( "Esto es una cadena de texto\n" ); -- La funcion printf imprimirá en la pantalla todo lo que tenga entre comillas. Lo que se añade, el "\n", quiere decir salto de línea.

system ( "pause" ); -- Ejecuta una instruccion del MS-DOS en este caso es pause y espera que finalice, la utilizamos para que puedas visualisar lo que hay en pantalla, ya que interrumpe el flujo de la aplicación. Si sepPrueba sin esta funcion, no podremos apreciar nada, ya que rápidamente se ejecuta la aplicación y termina, sin darnos tiempo a contemplarlo.

imprimirá lo siguiente:





SECUENCIAS DE ESCAPE

También existen secuencias de escape, son como complementos a la función printf.

Las secuencias son las siguientes:

\a - Sonido audible
\b - Retroceso
\n - Salto de linea
\t  - Tabulacion
\0 - Caracter Nulo
\f - Salto de página
\r - Retorno de carro
\x1B - Caracter de escape
...

Su utilización es dentro de la función printf, solo prueben y verán de que les hablo, ya que es mejor aprender haciendo. Escribir muchos códigos para probar, no os preocupéis si no tienen mucho sentido, lo importante es que os familiaricéis con el lenguaje, y que vayáis viendo que ocurre lo que queráis que ocurra.




La función printf también puede imprimir variables y operaciones después del cierre de comillas y separados con una coma con el signo % (porcentaje) y la inicial del tipo de dato,a continuación se muestra más claramente si no entendiste:

printf ( "la variable es %i", a );

suponiendo que la variable a es de tipo entero ( int ) se imprimirá el valor de dicha variable.

Veamoslo de una manera mas completa:



Explicación del código:


declaro las librerías correspondientes y luego dentro del main, declaro la variable a como tipo de dato entero, en este caso, le asigno el valor de 5.

Luego la imprimo con el símbolo %i, su inicial es i porque el dato es INT.

Se imprimirá lo siguiente:


Existe un equivalente a %i que es %d es exactamente lo mismo. Para enteros.

Veamos otro ejemplo pero con otro tipo de dato:


En este caso para exactamente lo mismo, pero ahora es %f debido a que el dato es de tipo float, es decir, de coma flotante (con decimales).

Se imprime lo siguiente:





También se puede imprimir mas de una variable, tan solo hay que separarlas por comas para diferenciarlas.

printf ( "la variable a es %i y la variable b es %i", variable1, variable2 );

el primer %i pertenece a la variable variable1 y el segundo %i pertenece a variable 2



Veamos una relación de estos signos con su significado:

%d
%i
Especifica un número entero
%uEntero sin signo
%fnumero real (de cóma flotante)
%ereal en formato exponencial
%gseleciona %e o %f automáticamente según el tamaño
%cun caracter
%sUna cadena de caracteres
%oUn número octal sin signo
%xUn número hexadecimal sin signo
...



IMPRIMIENDO OPERACIONES.

Otro de tipo de operaciones puede ser imprimir operaciones como sumas, restas, multiplicaciones y un sinfín de cosas que mas adelante veremos.

veamos un ejemplo:



Si podrán darse cuenta, declaro a y b con valores iniciales y luego los sumo, tan solo imprimo su resultado como %i, ya que el resultado es un entero.

Se imprime lo siguiente:





Hemos visto que todo esto es para C, todo lo que se puede hacer en C también se puede hacer en C++ pero si vamos a utilizar las librerías estandar de C lo que haremos será identificarlas como tales, es decir si utilizamos el compilador de C++ en lugar de llamar a la librería estandar de entrada salida stdio.h lo que haremos será llamarla con el nombre cstdio

Código: You are not allowed to view links. Register or Login
include <cstdio>
include <cstdlib>

using namespace std;

...

Les quitamos la extensión h y les añadimos c al principio.

C++ es una extensión de C, pero nos interesa hacerlo correctamente. Igual funcionará si no hacemos nada, pero podemos caer en vicios e incluso dejarnos engañar, comunicando a otros que tenemos un codigo en C cuando el código puede contener elementos que son sólo de C++ como true

Lo ideal en C++ es utilizar su librería estandar de entrada salida iostream, veamos un simple ejemplo.
Código: (cpp) You are not allowed to view links. Register or Login
#include <iostream>

using namespace std;

int main ( void )
{
int a = 5;
cout << "La variable a vale: " << a << endl;
cout << "Pulsa return para finalizar ...";
cin.get();
return 0;
}

Veamos una explicación, empezamos viendo que incluimos la librería estandar de entrada salida, iostream, a continucación le decimos que utilizaremos su espacio de nombre std (estandar). En caso de no incluir esta línea, tendriamos que indicar cout, endl y cin de este modo std::cout std::endl std::cin con lo que tendríamos:

Código: (cpp) You are not allowed to view links. Register or Login
#include <iostream>

int main ( void )
{
int a = 5;
std::cout << "La variable a vale: " << a << std::endl;
std::cout << "Pulsa return para finalizar ...";
std::cin.get();
return 0;
}

También podríamos indicarle, que elementos del espacio de nombres queremos utilizar, indicandolo de este modo:

Código: (cpp) You are not allowed to view links. Register or Login
#include <iostream>

using std::cout;
using std::endl;
using std::cin;

int main ( void )
{
int a = 5;
cout << "La variable a vale: " << a << endl;
cout << "Pulsa return para finalizar ...";
cin.get();
return 0;
}

Los códigos anteriores son equivalentes.

Sigamos con el código, entramos en la función principal del programa, declaramos una variable y le damos un valor.

Luego nos encontramos con cout que un objeto que representa a nuestra terminal, de caracteres. No aparece un operador << que redirige lo que tiene a su derecha hacia ella, que es una cadena de caracteres encerrada entre comillas, volvemos a encontrarnos el operador de redirección y a continuación la variable, el mismo cout se encargará de identificar el valor y mostrarlo y finalmente endl que escribe un salto de línea.

En la línea siguiente nos volvemos a encontrar con el mismo objeto y el operador de redirección junto con una cadena. Que hará eso, escribir en la pantalla, lo que contiene la cadena.

Y En la próxima línea nos encontramos con cin que se trata de un objeto que representa a nuestra entrada estándar (el teclado), simplemente con su función miembro get, espera un dato antes de continuar. (es una forma de hacer una pausa)

Consultarnos las dudas que tengáis, preguntando en este hilo

PRIXIMO CAPITULO, LEER DATOS POR TECLADO.

saludos!

You are not allowed to view links. Register or Login You are not allowed to view links. Register or LoginYou are not allowed to view links. Register or Login
« Última modificación: Marzo 05, 2011, 11:00:58 am por .xAk. »

Desconectado mycrox

  • ANSI C Programmer
  • Yo vivo en CPH
  • ***
  • Mensajes: 698
  • Sexo: Masculino
    • Ver Perfil
Re: Curso C++ desde 0
« Respuesta #6 en: Diciembre 09, 2007, 01:03:49 pm »
LO PROMETIDO SE CUMPLE:


Ya hemos visto:

-Descarga e insalacion del compilador DevC++
-Generalidades
-Tipos de datos y variables
-Identificadores
-Palabras reservadas
-Librerias
-Tipos de errores
-Asignaciones
-Imprimir datos en pantalla (printf y cout)


A continuacion:  LEER DATOS POR TECLADO.

En lenguaje C existen varias maneras de ingresar varios tipos de datos, por el momento, veremos como ingresar tipos de datos numericos, no nos vamos a meter con caracteres (letras) ya que por lo que hemos avanzado, quedarian colgados. Para los curiosos, las cadenas de caracteres se llaman strings.

Bueno, vamos al grano y basta de bla bla.

FUNCION:

la funcion para leer datos por teclado es scanf.

sintaxis:

scanf("%tipo de dato", &variable);

veamos varios ejemplos para que esto quede totalmente claro.



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro la variable numero como variable entera.
- imprimo con printf diciendole al usuairo que ingrese un numero.
- Utilizo la funcion scanf y guardo la variable numero en memoria.
- Luego imprimo el resultado de ese scanf o variable.


Veamos ahora otro ejemplo pero con dos variables:



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro las variables numero1 y numero 2 como variables enteras (int).
- Imprimo que ingrese un numero, lo guardo en la variable numero1.
- vuelvo a imprimir que ingrese otro numero y lo guardo en la variable numero2.
- Luego imprimo las dos variables que el usuario ingreso.

---------------------------------------------------------------------------------------------------------------------------

- Si se habran dado cuenta, utilizo en el scanf el tipo de dato "%i" que quiere decir "int", es decir, entero. Si yo escribiese "%f" la variable tendria que ser float, es decir, coma flotante o decimales.

- Luego utilizo el & (ampersand o algo asi xD) que indica al PC que la variable se guarde en una posicion de memoria aleatoria (en la RAM). Esto es de suma importancia, ya que si no antepones el & antes de la variable, no te saldra error, pero el PC no guardara el valor que le ingresaste.

-Por ultimo escribo el nombre de la variable donde voy a guardar el valor que ingrese.

---------------------------------------------------------------------------------------------------------------------------

Veamos un ultimo ejemplo para que todo quede mas claro:



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro las variables numero1 y numero 2 como variables enteras (int).
- Declaro la variable numero3 pero como un tipo de dato con decimales (float).
- Imprimo que ingrese los numeros.
- Por cada impresion, guardo en su respectiva variable el valor ingresado.
- Si podran notar, en la variable numero3, el scanf tiene "%f" debido a que la variable es de tipo float.
- Luego imprimo una operacion dentro del printf.
- Imprimo la variable numero3 y la sumo con el numero 1. Imprimo su resultado.

---------------------------------------------------------------------------------------------------------------------------

Como comprenderan, el uso de la funcion scanf es esencial al momento de crear un programa, ya que no sabemos con que valores va a trabajar el usuario y esto nos permite guardar cualquier valor en una variable cualquiera para que despues podamos trabajar con ella.

No es dificil usar scanf pero es sumamente importante.

Espero verlos el proximo capitulo.

saludos.
« Última modificación: Diciembre 09, 2007, 01:17:06 pm por mycrox »

Desconectado mycrox

  • ANSI C Programmer
  • Yo vivo en CPH
  • ***
  • Mensajes: 698
  • Sexo: Masculino
    • Ver Perfil
Re: Curso C++ desde 0
« Respuesta #7 en: Diciembre 15, 2007, 04:01:58 am »
SENTENCIAS.

un nuevo capitulo.

En esta ocasión veremos sentencias, partiré por una de las mas básicas.

la sentencia condicional IF

Esta función (IF) es muy conocida en casi todos los lenguajes, de hecho, en batch también se usa.

Esta sentencia es de condición, es decir, hara tal cosa siempre y cuando cumpla con una condición.

Veamos un ejemplo:
en C

en C++
Código: (cpp) You are not allowed to view links. Register or Login
#include <iostream>

using namespace std;

int main ( void )
{
int numero;
cout << "Ingresa un número: ";
cin >> numero;
if ( numero > 0 )
cout << "el número es positivo" << endl;
if ( numero < 0 )
cout << "el número es negativo" << endl;
if ( numero == 0 )
cout << "el número es neutro" << endl;
cout << "Pulsa return para finalizar" << endl;
cin.ignore ();
cin.get();
return 0;
}

Explicación del código:

[1]-Ingreso a la variable numero un "numero" (valga la rebundancia)
[2]-Con la función if comparo si es mayor que cero, si esto es verdadero, imprimirá "el numero es positivo".
[3]-Luego comparo si es menor que cero, si esto es verdadero, imprimirá "el numero es negativo"
[4]-Finalmente comparo el numero si es igual a CERO. si esto es verdadero, se imprimirá: "el numero es neutro".

Se entiende la idea?

Ahora, se puede hacer de otra manera mas optima, utilizando su "conjugado" else.

else quiere decir que si no se cumple la condicion del if, hará todo lo que dice el else.

veamos otro ejemplo:

en C


en C++
Código: (cpp) You are not allowed to view links. Register or Login
#include <iostream>

using namespace std;

int main ( void )
{
int numero;
cout << "Ingresa un número: ";
cin >> numero;
if ( numero > 0 )
cout << "el número es positivo" << endl;
else
cout << "el número es negativo" << endl;
cout << "Pulsa return para finalizar" << endl;
cin.ignore ();
cin.get();
return 0;
}

Explicación del código:

[1]-Ingreso nuevamente un numero a la variable numero.
[2]-Comparo, si el numero es mayor que cero, se imprime que es positivo. Si esto es FALSO, hara todo lo que dice el else, en este caso, imprimirá que es "negativo o neutro" ya que el CERO no es positivo ni negativo.

Creo que ya se entiende la idea.

IF ELSE ANIDADOS.

que quiere decir anidados?

Fácil, que si no se cumple el if, hará el else, pero dentro de ese else, habrá otro if y quizás otro else y así sucesivamente..

veamos un ejemplo:



explicación del código:

[1]-Ingreso nuevamente un numero a la variable numero.
[2]-Comparo, si el numero es mayor que cero se imprime tal cosa, si no es asi, hará todo lo del else, pero dentro de este else hay otro if, este if dice si el numero es menor que cero, se imprime otra cosa, pero si no es así, hará todo lo que diga el siguiente else...

Cabe decir que para las sentencias no se utilizan los "punto y coma" (;).

se entiende??? cualquier duda por favor de postear.

ahora, veremos otra sentencia necesaria para el próximo capitulo de vectores y matrices.


SENTENCIA FOR

La sentencia for es una sentencia repetitiva, es decir, hace tales instrucciones hasta que la condición sea falsa.

sintaxis:
for(valor_inicial; condición; complemento)

veamos un ejemplo para tener algo mas claro.



Explicación de la sentencia for.

[1]-Declaro una variable "i" y la inicializo en cero, este es su valor inicial.
[2]-La condición sera que "i" sea menor que 5.
[3]-El complemento es el i++, esto es igual que decir: i=i+1, esto significa que por cada "vuelta" que haga el for, la variable "i" aumentara en 1 hasta que sea menor que 5.

y quedaría algo asi:



Como podrán ver, el mensaje se imprimió 5 veces, ya que se imprime una vez cuando "i" vale 0, luego se aumenta en 1 e "i" vale 1, como es menor que 5 se vuelve a imprimir el mensaje, luego "i" vale 2, como es menor que 5 se vuelve a imprimir el mensaje... así sucesivamente hasta que i sea menor que 5, que es la condición de hecho.


Veamos otro ejemplo:



El codigo imprimira la variable "i" hasta que la condición del for sea FALSA.

quedaría algo asi:




fíjense en lo que se imprime. i vale0, i vale 1, i vale 2.... creo que esto lo deja mas claro.

el contador del for, el i++, no necesariamente debe ir en aumento, también puede decrecer, veamos un ejemplo donde i va bajando de 1 en 1.



Ahora "i" lo inicializo en 5 y luego le quito 1 hasta que no cumpla la condición.

se vera asi:



se entiende ahora?

cualquier duda porfavor postearla.

Proximo Capitulo, vectores y matrices.
« Última modificación: Abril 10, 2011, 03:27:25 am por .xAk. »

Desconectado Camacho21

  • Me das tu IP?
  • *
  • Mensajes: 8
  • Sexo: Masculino
  • SkateBoarding
    • Ver Perfil
Areas de figuras (C/C++)
« Respuesta #8 en: Diciembre 30, 2007, 12:04:09 pm »
Hola! yo estoy empezando en esto de la programacion en C/C++... voy a publicar aqui los programas basicos que he hecho... Estos programas calculan el area de distintas figuras...


Area de un cuadrado (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un cuadrado (C). Autor: Ricardo Camacho*/
#include<stdio.h>
int main()
{
float l,a;
printf("\n");
printf("Area de un cuadrado\n");
printf("  __________ \n");
printf(" |          |\n");
printf(" |          |\n");
printf(" |          |  l\n");
printf(" |          |\n");
printf(" |__________|\n");
printf("\n");
printf("       l\n");
printf("\n");
printf("Escriba el valor del lado (l) del cuadrado: ");
scanf("%f", &l);
a=l*l;
printf("\n");
printf("El area del cuadrado es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un cuadrado (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un cuadrado (C++). Autor: Ricardo Camacho*/
#include<iostream>
using namespace std;
int main()
{
float l,a;
cout<<"\n";
cout<<"Area de un cuadrado\n";
cout<<"  __________ \n";
cout<<" |          |\n";
cout<<" |          |\n";
cout<<" |          |  l\n";
cout<<" |          |\n";
cout<<" |__________|\n";
cout<<"\n";
cout<<"       l\n";
cout<<"\n";
cout<<"Escriba el valor del lado (l) del cuadrado: ";
cin>>l;
a=l*l;
cout<<"\n";
cout<<"El area del cuadrado es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}


Area de un rectangulo (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un rectangulo (C). Autor: Ricardo Camacho*/
#include<stdio.h>
int main()
{
float a,b,h;
printf("\n");
printf("Area de un rectangulo\n");
printf("  ________________________ \n");
printf(" |                        |\n");
printf(" |                        |\n");
printf(" |                        |  h\n");
printf(" |                        |\n");
printf(" |________________________|\n");
printf("\n");
printf("            b\n");
printf("\n");
printf("Escriba el valor de la base (b) del rectangulo: ");
scanf("%f", &b);
printf("Escriba el valor de la altura (h) del rectangulo: ");
scanf("%f", &h);
a=b*h;
printf("\n");
printf("El area del rectangulo es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un rectangulo (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un rectangulo (C). Autor: Ricardo Camacho*/
#include<iostream>
using namespace std;
int main()
{
float a,b,h;
cout<<"\n";
cout<<"Area de un rectangulo\n";
cout<<"  ________________________ \n";
cout<<" |                        |\n";
cout<<" |                        |\n";
cout<<" |                        |  h\n";
cout<<" |                        |\n";
cout<<" |________________________|\n";
cout<<"\n";
cout<<"            b\n";
cout<<"\n";
cout<<"Escriba el valor de la base (b) del rectangulo: ";
cin>>b;
cout<<"Escriba el valor de la altura (h) del rectangulo: ";
cin>>h;
a=b*h;
cout<<"\n";
cout<<"El area del rectangulo es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}


Area de un paralelogramo (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un paralelogramo (C). Autor: Ricardo Camacho*/
#include<stdio.h>
int main()
{
float a,b,h;
printf("\n");
printf("Area de un paralelogramo\n\n");
printf("      * * * * * * * * * * * * * \n");
printf("     *                       *  \n");
printf("    *                       *   \n");
printf("   *                       *   h\n");
printf("  *                       *     \n");
printf(" * * * * * * * * * * * * *      \n");
printf("\n");
printf("            b\n");
printf("\n");
printf("Escriba el valor de la base (b) del paralelogramo: ");
scanf("%f", &b);
printf("\n");
printf("Escriba el valor de la altura (h) del paralelogramo: ");
scanf("%f", &h);
a=b*h;
printf("\n");
printf("El area del paralelogramo es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un paralelogramo (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un paralelogramo (C++). Autor: Ricardo Camacho*/
#include<iostream>
using namespace std;
int main()
{
float a,b,h;
cout<<"\n";
cout<<"Area de un paralelogramo\n\n";
cout<<"      * * * * * * * * * * * * * \n";
cout<<"     *                       *  \n";
cout<<"    *                       *   \n";
cout<<"   *                       *   h\n";
cout<<"  *                       *     \n";
cout<<" * * * * * * * * * * * * *      \n";
cout<<"\n";
cout<<"            b\n";
cout<<"\n";
cout<<"Escriba el valor de la base (b) del paralelogramo: ";
cin>>b;
cout<<"\n";
cout<<"Escriba el valor de la altura (h) del paralelogramo: ";
cin>>h;
a=b*h;
cout<<"\n";
cout<<"El area del paralelogramo es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}


Area de un triangulo (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un triangulo (C). Autor: Ricardo Camacho*/
#include<stdio.h>
int main()
{
float b,h,a;
printf("\n");
printf("Area de un triangulo\n\n");
printf("        *        \n");
printf("       * *       \n");
printf("      * | *      \n");
printf("     *  |  *     \n");
printf("    *   | h *    \n");
printf("   *    |    *   \n");
printf("  *     |     *  \n");
printf(" * * * * * * * * \n");
printf("\n");
printf("        b\n");
printf("\n");
printf("Escriba el valor de la base (b) del triangulo: ");
scanf("%f", &b);
printf("\n");
printf("Escriba el valor de la altura (h) del triangulo: ");
scanf("%f", &h);
a=(b*h)/2;
printf("\n");
printf("El area del triangulo es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un triangulo (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un triangulo (C++). Autor: Ricardo Camacho*/
#include<iostream>
using namespace std;
int main()
{
float b,h,a;
cout<<"\n";
cout<<"Area de un triangulo\n\n";
cout<<"        *        \n";
cout<<"       * *       \n";
cout<<"      * | *      \n";
cout<<"     *  |  *     \n";
cout<<"    *   | h *    \n";
cout<<"   *    |    *   \n";
cout<<"  *     |     *  \n";
cout<<" * * * * * * * * \n";
cout<<"\n";
cout<<"        b\n";
cout<<"\n";
cout<<"Escriba el valor de la base (b) del triangulo: ";
cin>>b;
cout<<"\n";
cout<<"Escriba el valor de la altura (h) del triangulo: ";
cin>>h;
a=(b*h)/2;
cout<<"\n";
cout<<"El area del triangulo es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}


Area de un triangulo rectangulo (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un triangulo rectangulo (C). Autor: Ricardo Camacho*/
#include<stdio.h>
int main()
{
float b,h,a;
printf("\n");
printf("Area de un triangulo rectangulo\n\n");
printf("     *                      \n");
printf("     *  *                   \n");
printf("     *     *                \n");
printf("     *        *             \n");
printf("  h  *           *          \n");
printf("     *              *       \n");
printf("     *                 *    \n");
printf("     *  *  *  *  *  *  *  * \n");
printf("\n");
printf("              b\n");
printf("\n");
printf("Escriba el valor de la base (b) del triangulo rectangulo: ");
scanf("%f", &b);
printf("\n");
printf("Escriba el valor de la altura (h) del triangulo rectangulo: ");
scanf("%f", &h);
a=(b*h)/2;
printf("\n");
printf("El area del triangulo rectangulo es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un triangulo rectangulo (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un triangulo rectangulo (C++). Autor: Ricardo Camacho*/
#include<iostream>
using namespace std;
int main()
{
float b,h,a;
cout<<"\n";
cout<<"Area de un triangulo rectangulo\n\n";
cout<<"     *                      \n";
cout<<"     *  *                   \n";
cout<<"     *     *                \n";
cout<<"     *        *             \n";
cout<<"  h  *           *          \n";
cout<<"     *              *       \n";
cout<<"     *                 *    \n";
cout<<"     *  *  *  *  *  *  *  * \n";
cout<<"\n";
cout<<"              b\n";
cout<<"\n";
cout<<"Escriba el valor de la base (b) del triangulo rectangulo: ";
cin>>b;
cout<<"\n";
cout<<"Escriba el valor de la altura (h) del triangulo rectangulo: ";
cin>>h;
a=(b*h)/2;
cout<<"\n";
cout<<"El area del triangulo rectangulo es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}


Area de un circulo (C)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un circulo (C). Autor: Ricardo Camacho*/
#include<stdio.h>
#include<math.h>
int main()
{
float r,a;
printf("\n");
printf("Area de un circulo\n\n");
printf("    * * *     \n");
printf("  *       *   \n");
printf(" *_____    *  \n");
printf(" *  r      *  \n");
printf("  *       *   \n");
printf("    * * *     \n");
printf("\n");
printf("Escriba el valor del radio (r) del circulo: ");
scanf("%f", &r);
a=M_PI*(r*r);
printf("\n");
printf("El area del circulo es: %f", a);
printf("\n");
printf("\n");
system("PAUSE");
return 0;
}

Area de un circulo (C++)

Código: You are not allowed to view links. Register or Login
/*Programa para calcular el area de un circulo (C++). Autor: Ricardo Camacho*/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float r,a;
cout<<"\n";
cout<<"Area de un circulo\n\n";
cout<<"    * * *     \n";
cout<<"  *       *   \n";
cout<<" *_____    *  \n";
cout<<" *  r      *  \n";
cout<<"  *       *   \n";
cout<<"    * * *     \n";
cout<<"\n";
cout<<"Escriba el valor del radio (r) del circulo: ";
cin>>r;
a=M_PI*(r*r);
cout<<"\n";
cout<<"El area del circulo es: "<<a;
cout<<"\n";
cout<<"\n";
system("PAUSE");
return 0;
}
« Última modificación: Enero 07, 2008, 03:52:20 pm por Camacho21 »

S k a t e B o a r d i n g   i s   n o t   a   c r i m e . . .


Desconectado Matthew Farrel

  • Me das tu IP?
  • *
  • Mensajes: 120
  • Sexo: Masculino
  • El hacker, es la mejor creaccion de Dios
    • Ver Perfil
Re: Curso C++ desde 0
« Respuesta #9 en: Enero 01, 2008, 11:29:24 am »
                                                          Enum

En este capitulo daremos la funcion enum.
Su funcion, es la de hacer una o varias enumeracions y dar los valores a una variable, como no me explico muy bien, os dejo un codigo.

Código: You are not allowed to view links. Register or Login
#include <stdlib.h>
#include <stdio.h>
enum
{
portal_hacker,
el_hacker,
Inmortal_security,
Infierno_hacker
}fhx;     
int main()
{
printf("¿De que foro quieres hablar?\n");
printf("0- el hacker\n");
printf("1- portalhacker\n");
printf("2- inmortal security\n");
printf("3- infierno hacker\n");
printf("¿De que foro quieres hablar?  ");
scanf("%d", &fhx);
if (fhx==portal_hacker)
{
system("cls");
printf("Uff, no tengo palabras para describirlo");
system("pause>nul");
}
if (fhx==el_hacker)
{
system("cls");
printf("Es la mayor comunidad underground que conozco en español.");
system("pause>nul");
}
if (fhx==Inmortal_security)
{
system("cls");
printf("Bueno pero peueño");
system("pause>nul");
}
if (fhx==Infierno_hacker)
{
system("cls");
printf("Una putada, que cancelasen el host");
system("pause>nul");
}
}



Ahora explico el codigo:

enum, ponemos el enum, para indicar que es una enumeracion.

Abrimos la llave, y ponemos las variable que queramos, cada una separada de la siguiente por una coma, excepto en la ultima, que no lleva nada.
Finalmente cerramos la llave y ponemos el nombre de la variable

Luego ponemos int main(),  y empezamos todo normal, printf, y luego scanf, la sintaxis del comando es   scanf("%d", &x);, puesto que a enum le corresponde    %d.
Aunqure para ver las opcions, debemos ponerlas con printf, si no con enum, es imposible verlas. A menos que esten traducidas, pero eso no lo controlo muy bien, y estoy buscando, proximamente, publicare como traducir.
 


Pero la contestacion tiene que ser con numeros, me explico, con el enum, lo que estamos haciendo es dar una serie de valores a la variable, en este caso es fhx. Esos valores van desde 0, que le corresponderia a portal hacker hasta 3, que seria Infierno hacker.

portal_hacker=0
el_hacker=1
Inmortal_security=2
Infierno_hacke r=3



Por lo tanto el scanf, solo acepta que contestemos con numeros, aunque al estar ligados, en el if podemos poner los nombres a los cuales corresponden los numeros o los numeros en si.








Y como veis en el codigo, esta el nombre pero aun asi reacciona como debe reaccionar.









Pero en un codigo, no solo podemos poner una enumeracion, si no que podemos poner varias, tan solo tenemos que cambiar el nombre de la variable en el enum y en el cin o scanf en la parte que le corresponda, para que no coincidan.

Ahi no acaba el enum, pero lo que queda lo veremos en mas capitulos.

« Última modificación: Enero 02, 2008, 10:12:25 am por Matthew Farrel »
Si te falla linux vete a vivir al campo


Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Re: Curso C++ desde 0
« Respuesta #10 en: Enero 02, 2008, 03:41:55 am »
?, SWITCH, WHILE, DO WHILE



- ?:


Este se trata de un operador, parecido al if y else, pero se utiliza solo para codigos cortos... de una sola linea.

Ahora veremos con un ejemplo como funciona.

Código: You are not allowed to view links. Register or Login
#include <iostream.h>
int main(){
int nota;
cout<<"Que nota sacaste en el examen?"<<endl;
cin>>nota;
cout<<(nota>=6 ? "muy bien\n" : "deves estudiar masd\n");
system ("pause>nul");
return 0;
}



Como vemos, comenzamos preguntando por la nota de un examen, y a continuacion, establezemos la condicion:
Código: You are not allowed to view links. Register or Login
cout<<(nota>=6 ? "muy bien\n" : "deves estudiar masd\n");
De que si la nota es menor de 6 o mayor de 6 diga muy bien, o deves estudiar mas...

El ? siempre actua interpretando la 1ºparte como verdadera y la 2º como falsa, es decir:

Citar
? acción a ejecutar en caso verdadero : acción a ejecutar en caso falso ;


- SWITCH:


Este comando, es bastante sencillo de entender, y simplifica bastante el uso de if/else...

Su sintaxis es siempre:

Citar
switch (opcion a comparar)
{
case a :
case b:
case c:
....
....
....
....
default;
}

Aunque para entender esto mejor, veamos un ejemplo:

Código: You are not allowed to view links. Register or Login
# include <stdio.h>
# include <stdlib.h>
int main()
{
    int opcion;
    printf("elije una opcion:\n\n");
    printf("1\n2\n3\n\n");
    scanf("%i", &opcion);
    {
        switch (opcion)
        {
            case 1: printf("As elejido la 1\n");
            break;
            case 2: printf("seleccionaste el 2\n");
            break;
            case 3: printf("elejiste la 3\n");
            break;
            default : printf("Opcion incorrecta\n");
            break;
        }
    }
    system("pause");
}



Como vemos en el codigo, comenzamos preguntando al usuario que elija una opcion (1, 2 o 3) pero esto no explicaremos... iremos a lo que nos interesa que es la parte del switch.

como vemos, comenzamos tal y como dije antes con:
Código: You are not allowed to view links. Register or Login
switch (opcion)ya que "opcion" es el nombre que le dimos al principio (int opcion;)

Seguidamene, vamos poniendo:
case 1: .....
case 2: .....
case 3: .....
default: .....

los case x son las opciones que depende de lo que haya elejido el usuario, si elijio la opcion 2, pues ara lo indicado en case 2:
Si elijio la opcion 1, pues ara lo indicado en case1:
Y si elije una opcion que no esta incluida en case, como por ejemplo 6, 9... etc, pues ara lo marcado en default:

Tambien podeis ver, una nueva instruccion, que es break; y lo que hace, es saltarse el resto de la estructura.
Para que entiendan mejor esto del break, eliminenlo del codigo, seleccionen la opcion 1, y veran que les imprimira en pantalla todas las opciones, puesto que ejecutara el codigo seguido y sin saltos.

"Lo mejor para entender el capitulo, es ir copiando el codigo y compilandolo, para entenderlo mejor... ;) )


- WHILE:

La palabra while, en ingles significa "mientras"

While, es un bucle, que se ejecuta mientras la condicion sea verdadera, y si es falsa pues deja de ejecutarse.

Por ejemplo, creamos un contador, y le decimos que while (mientras) el contador sea menor que 10, nos imprima el valor del contador...

Seria algo asi:

Código: You are not allowed to view links. Register or Login
# include <stdio.h>
# include <stdlib.h>
int main()
{
    int contador;
 
    contador = 0;
    while (contador < 10)
    {
        printf ("El contador vale: %d\n", contador);
        contador = contador + 1;
    }
    system ("pause");
}



y el resultado tras la compilacion, seria:



Como ven, empezamos el codigo marcando las librerias que vamos a utilizar:
Código: You are not allowed to view links. Register or Login
# include <stdio.h>
# include <stdlib.h>

A continuacion, escribimos la funcion
Código: You are not allowed to view links. Register or Login
int main()
Posteriormente, definimos una variable llamada contador, y la ponemos a 0
Código: You are not allowed to view links. Register or Login
int contador;

contador = 0;

Una vez echo esto, aparece:

Código: You are not allowed to view links. Register or Login
    while (contador < 10)
    {
        printf ("El contador vale: %d\n", contador);
        contador = contador + 1;

aqui lo que hacemos, es indicarle con el while, que mientras el contador sea menor que 10..... nos imprima en pantalla (printf) el texto "el contador vale x" y a continuacion, la variable contador coje un valor mas (+1).

Como vemos, cunado el contador supera el valor 10, la condicion del while ya no se cumple, y el programa se detiene.


-DO WHILE:


Empleamos el do while, cuando necesitamos que se repita el bucle por lo menos una vez.

Lo veremos mejor con un ejemplo:

Código: You are not allowed to view links. Register or Login
# include <stdio.h>
# include <stdlib.h>
int main()
{
    int opcion;
    do
    {
     printf("teclea 1, 2 o 3\n\n");
     scanf("%i", &opcion);
    }
    while ((opcion<1)||(opcion>3));
    printf("numero correcto\n");
    system("pause");
}



Como vemos en este ejemplo, deveremos introducir una de las opciones correctas para que el programa finalize, que en este caso son 1, 2, 3.
Si ponemos 1, 2, o 3 el programa acabara, sino, se repetira la pregunta una y otra vez.

Creo que es sencillo de entender y no requiere mucha explicacion...
Al igual que vimos antes, con el bucle, WHILE, el DO WHILE es muy similar...

Código: You are not allowed to view links. Register or Login
do
{
Acciones a ejecutar;
}
while(condicion a cumplir);




Y hasta aqui explicare por hoy.
Me gustaria haber explicado algo mas relacionado con esto, como el break y continue, goto y for, pero no me a dado tiempo, asi que tal vez en otra ocasion ;)

Un saludo

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
Curso C/C++
« Respuesta #11 en: Marzo 03, 2008, 12:42:46 pm »
You are not allowed to view links. Register or Login
POR: Mycrox y TxShack



Bueno amigos, antes de continuar adentrándonos en C / C++ como buen consejo que dio @Mycrox, convendría explicar alguna cosa mas, para tener claros los conceptos... así que este 2º capitulo, sera un capitulo, por llamarlo de alguna forma, "teórico" xD.


explicación desde cero sobre tipos de datos

Los diferentes tipos de datos sirven para que el computador sepa con que tipos de datos desea trabajar, ya sea con números, números con decimales, letras, etc.

Existen varios tipos de datos con los que se trabaja en C.

tenemos los mas comunes que son:



int------>Tipo de dato ENTERO desde el -32767 hasta el 32767
long int------>Tipo de dato ENTERO pero más largo desde el -2.147.483.647 hasta el 2.147.483.647.
float------>Tipo de dato numérico con decimales {0.1, 2.9, etc}, desde el 3.4*e-38 hasta el 3.4*e38
double------>Tipo de dato numérico con decimales pero con rangos más grandes, desde el 1.7*e-307 hasta ek 1.7*e308
char------>Tipo de dato carácter {a, b, c....}



Cuando declaramos en el lenguaje C algún tipo de dato, el compilador reserva en memoria RAM los bytes necesarios para guardar ese dato.


Explicación desde cero sobre identificadores


¿Qué es un identificador?


Los identificadores son los nombres que se le asignan a las variables para poder "identificarlas en el programa". Una variable, es un espacio reservado en memoria que "varía" su valor.

por ejemplo, declaro una variable donde se guardara el resultado de una suma.

seria algo así:

Código: You are not allowed to view links. Register or Login
int suma;
int--->tipo de dato númerico, ya que si quiero guardar un resultado de una suma, normalmente es ENTERO.
suma--->Es el nombre de la variable pero de tipo numérico por el int.
Código: You are not allowed to view links. Register or Login
float suma;
float--->Tipo de dato con coma flotante (decimales), si escribo float, el resultado de la suma me va a dar con decimales
suma--->Es el nombre de la variable pero de tipo numérico con decimales por el float.

Código: You are not allowed to view links. Register or Login
char suma;
char--->Tipo de dato de caracteres, aqui no podríamos realizar operaciones matemáticas ya que la variable suma, no seria considerada como un numero, si no que como una letra, mas adelante veremos esto con más profundidad.


Si nos damos cuenta, la variable suma no tiene ningún valor, ya que supuestamente cuando se realice la suma, la variable tomará el valor del resultado, cierto?

Pero también se puede cambiar esto, si yo quiero que un valor se inicialice en un número, perfectamente se podría hacer:

Código: You are not allowed to view links. Register or Login
int x=5
int y=10

entonces, si por ejemplo quiero sumar 5+10 en C, el código sería el siguiente:

Código: You are not allowed to view links. Register or Login
int x=5;
int y=10;
suma=x+y;

o más simple todavía:

Código: You are not allowed to view links. Register or Login
suma=5+10;

*Toda linea de código debe terminar con un punto y coma (;) a excepción de algunos casos que veremos más adelante.


PALABRAS RESERVADAS:

Si se fijaron, yo puedo declarar una variable con el nombre que yo desee (char nombre, int numero, etc) pero existen palabras reservadas en C que no puedo utilizar como variables propias o definiciones.

acá les va la lista:


Citar
ansi       continue     float       new            signed       try
auto      default        for         operator     sizeof         typedef
break    delete         friend     private        static         union
case      do               goto      protected    struct         unsigned
catch     double        if            public          switch        virtual
char       else            inline     register       template    void
class      enum          int         return          this            volatile
const     extern         long      short           throw         while


cuando en el compilador escriban estas palabras, el texto se les pondrá en negrita.


Librerías:


Las librerías, son unos ficheros que contienen el código objeto de muchos programas que nos permiten hacer cosas como escribir en pantalla, manejar números, leer el teclado, hacer operaciones matemáticas... etc.
Existen librerías de entrada y de salida, de manejo de memoria, de manejo de texto, matemáticas....

Un conjunto de librerías especiales son las ANSI que se incluyen con todos los compiladores de C y C++ y después existen otros tipos de librerías publicas, y otras de distribución comercial, aunque las que trataremos principalmente son las ANSI.

Segun vallamos desarrollando el manual, irán entendiendo mejor como usar las librerías, asi que no se preocupen. ;)


Tipos de errores:


Al crear un código, podemos cometer errores a la hora de codearlo, ya sea por despiste error de escritura etc...
Estos errores, los podemos clasificar de distintas formas:


AVISOS: Los avisos (Warnings) son errores que no son lo suficientemente graves para impedir la generación de código objeto, pero es conveniente corregirlos, ya que puede dar confusión al compilador, a la hora de ejecutar el programa, y puede tomar decisiones las cuales nosotros no teníamos en mente a la hora de programarlo.


ERRORES DE SINTAXIS: Estos errores se detectan en la fase de compilación, y nos dará una lista de errores de sintaxis, los cuales, pueden haber sido ocasionados por expresiones incompletas o erróneas, que hayamos escrito algo mal... etc.


ERRORES A LA HORA DE EJECUTAR: Existen ocasiones, en las que una vez creado el ejecutable, a la hora de ejecutarlo, se cierra de forma brusca debido a algún error. Este tipo de fallos son los mas difíciles de localizar, pero existen unos programas auxiliares llamados debuggers (depuradores) que inspeccionan el programa paso a paso, comprobando las variables... etc



Bueno, espero que esto les hay aclarado algo mas las cosas antes de continuar...

Las explicaciones del principio, han sido escritas por @Mycrox, el cual se a unido a la creación del curso, y me mando por m.p. para que lo publicase... Esperemos que siga colaborando ^^ Lo de las librerías y los tipos de errores ha sido echo por mi.

Recuerden que si tienen alguna pregunta, no duden en postear ;)

Pronto seguiremos con el manual... (en cuanto haya un rato libre)

Saludos y hasta pronto!!!

« Última modificación: Enero 16, 2011, 11:36:51 pm por .xAk. »

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
[En Revisión] Curso C/C++
« Respuesta #12 en: Marzo 03, 2008, 12:47:21 pm »
You are not allowed to view links. Register or Login
Por: Mycrox




ASIGNACIONES DE VALORES.

Una asignación quiere decir que "entrego" un valor a una variable determinada. En lenguaje C esas asignaciones se hacen de derecha a izquierda, ya que al revés nos saldrá error.

ejemplos buenos:

a=5 //el valor 5 se guarda en la variable a
a=b //el valor de b se guarda en la variable a.

ejemplos malos:

5=a;
a+b=c;

si nos fijamos, los ejemplos malos tienen lógica, pero en lenguaje C eso no existe.

----------------------------------------------------------------------------------------------------------------------------

IMPRIMIR DATOS POR PANTALLA.

En lenguaje C existe una función llamAda printf que quiere decir "imprimir de first y primero de f (printf)"

¿El primero que?
El primer dispositivo de salida que en este caso es el monitor.

Sintaxis: printf("texto");

Veamos un ejemplo:



Pasaré a explicar el código.

#include <stdio.h>
#include <stdlib.h>
-- Son las librerias con las funciones necesarias para que funcione el programa, en este caso la stdio para el printf y la stdlib para el system("pause")

int main() -- Funcion principal.

printf("Esto es una cadena de texto\n"); -- La funcion printf imprimirá en la pantalla todo lo que tenga entre comillas. Lo que se añade, el "\n", quiere decir salto de línea.

system("pause"); -- Simula una instruccion del MS-DOS que en este caso es pause para que puedas visualisar lo que hay en pantalla. Prueba sin esta funcion y te aclararás más.

imprimirá lo siguiente:



----------------------------------------------------------------------------------------------------------------------------

SECUENCIAS DE ESCAPE

Tambien existen secuencias de escape, son como complementos a la funcion printf.

Las secuencias son las siguientes:

\a - Sonido audible
\b - Retroceso
\n - Salto de linea
\t  - Tabulacion

Su utilizacion es dentro dela funcion printf, solo prueben y veran de que les hablo, ya que es mejor aprender haciendo.

----------------------------------------------------------------------------------------------------------------------------


La funcion printf también puede imprimir variables y operaciones despues del cierre de comillas y separados con una coma con el signo % (porcentaje) y la inicial del tipo de dato,a continuación se muestra más claramente si no entendiste:

printf("la variable es %i", a);

suponiendo que la variable a es de tipo entero (int) se imprimirá el valor de dicha variable.

Veamoslo de una manera mas completa:



Explicación del código:


declaro las librerias correspondientes y luego dentro del main, declaro la variable a como tipo de dato entero, en este caso, le asigno el valor de 5.

Luego la imprimo con el símbolo %i, su inicial es i porque el dato es INT.

Se imprimirá lo siguiente:



Veamos otro ejemplo pero con otro tipo de dato:




En este caso para exactamente lo mismo, pero ahora es %f debido a que el dato es de tipo float, es decir, de coma flotante (con decimales).

Se imprime lo siguiente:




----------------------------------------------------------------------------------------------------------------------------

Tambien se puede imprimir mas de una variable, tan solo hay que separalas por comas para diferenciarlas.

printf("la variable a es %i y la variable b es %i", variable1, variable2);

el primer %i pertene a la variable variable1 y el segundo %i pertenece a variable 2

----------------------------------------------------------------------------------------------------------------------------

IMPRIMIENDO OPERACIONES.

Otro de tipo de operaciones puede ser imprimir operaciones como sumas, restas, multiplicaciones y un sinfin de cosas que mas adelante veremos.

veamos un ejemplo:



Si podrán darse cuenta, declaro a y b con valores iniciales y luego los sumo, tan solo imprimo su resultado como %i, ya que el resultado es un entero.

Se imprime lo siguiente:



----------------------------------------------------------------------------------------------------------------------------

PRIXIMO CAPITULO, LEER DATOS POR TECLADO.

saludos!

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
[En Revisión] Curso C/C++
« Respuesta #13 en: Marzo 03, 2008, 12:49:13 pm »
You are not allowed to view links. Register or Login
Por: TxShack



Bueno, para completar un poco mas el capitulo anterior que hizo Mycrox, voy a encargarme de mostrarles como serian esos mismos codigos, pero con el lenguage de C++, ya que el comando printf es propio de C (pero sirve tambien para C++) mientras que el cout, tipico de C++ no es posible usarlo para codigos en C.

Bueno, comenzare explicando, el 1º ejemplo que dijo, sobre imprimir un texto en pantalla, pero con el comando cout

Utilizare el mismo ejemplo para que este mas claro todo:



Y como podemos comprobar, imprime esactamente lo mismo que con el comando printf



Bueno, en esta ocasion, voy a analizar el codigo completamente, dando todos los detalles que se, para que puedan aprender lo mejor posible.

La primera linea:

Citar
#include <iostream>

Lo que hace esto, es añadir un archivo llamado iostream (libreria) dentro de nuestro codigo, que vamos a utilizar.

El primer caracter, es el simbolo # que lo que hace es actuar sobre el preprocesador.
Cada vez que comenzamos a compilar, el preprocesador es el primero en actuar, y lo que hace, es buscar por todo nuestro codigo, las lineas que empiezen por el simbolo # y lo que hace, es actuar sobre ellas, antes que se ejecute el compilador.

A continuacion del simbolo # vemos que aparece la palabra include, que lo que hace, es avisar de que devemos incluir (include) un archivo que sera usado en nuestro codigo, que en este caso sera iostream.

Y por ultimo, queda de explicar, para que se ponen alrededor de iostream los simbolos < >
Lo que hacen estos simbolos, es indicar al compilador, donde se encuentra el archivo iostream, para asi no tener que incluir la ruta.
Estos simbolos < > dicen que el archivo a buscar, esta en la carpeta include, que veremos en el directorio donde tenemos instalado en compilador Dev-C++



Bueno, con esto creo que queda claro, lo que hace cada parte el codigo...

Ahora pasemos a al 2º linea:

Código: You are not allowed to view links. Register or Login
int main()
Aqui empieza el programa que escribimos...
Com vemos, empieza por una funcion llamada main().

Una funcion, en general, es un bloque de codigo, que ejecuta una o mas acciones.

Como todas las funciones, main(), tiene que indicarnos el valor que deve de devolvernos, que en este caso es un entero, por eso lo indicamos con la palabra int

A continuacion, en la liea siguiente, vemos que aparece una llave { y de la misma forma, acana con otra llave } que lo que hacen, es indicar, que es lo que forma parte de la funcion.

Pasemos a la siguiente linea:

Código: You are not allowed to view links. Register or Login
std::cout << "Esto es una cadena de texto\n";
Lo que hace esta linea, es indicar que utilizaremos el comando cout, para imprimir un mensaje en pantalla.

El comando cout, biene con la libreria estandar en todos los compiladores, y por lo tanto, lo que hacemos a la hora de escribir std:: es indiarle al compilador, que cout, forma parte de la libreria estandar. Esto tampoco es necesario, tal y como vieron en el primer capitulo, pero es lo correcto a la hora de programar, ya que podemos indicarle otro distinto a la estandar (std) por lo que nos podria imprimir cosas diferentes...

El std es conocido como el "namespace" que mas adelante veremos mas sobre ellos.

El cout es el "objeto"

El << es el "operador" que en este caso nos indica que es un operador de salida, que lo que hace, es mostrar en la consola el texto que hayamos puesto detras.

Y lo que esta entre las " " en este caso "Esto es una cadena de texto\n" es conocido como el string, es decir, caracteres escritos. El \n lo que indica, es que una vez mostrado el texto, debe llebar acabo un salto de linea.

Bueno, con eso que acabamos de explicar, creo que serian perfectamente capazes de hacer el 2º codigo que indico Mycrox, empleando la funcion cout.

Espero que hayan entendido todo bien.

Esta a sido una clase un poco mas teorica tal vez, donde me e centrado un poco mas, en mostrar que hace cada parte del codigo, ya que creo que es necesario saberlo...

Un saludo, y hasta pronto.

Desconectado TXS

  • Moderador Global
  • *****
  • Mensajes: 1774
  • Sexo: Masculino
  • Prefiero morir de pie, a vivir arrodillado
    • Ver Perfil
    • Infierno Hacker
[En Revisión] Curso C/C++
« Respuesta #14 en: Marzo 03, 2008, 12:51:32 pm »
You are not allowed to view links. Register or Login
Por: Mycrox



Ya hemos visto:

-Descarga e insalacion del compilador DevC++
-Generalidades
-Tipos de datos y variables
-Identificadores
-Palabras reservadas
-Librerias
-Tipos de errores
-Asignaciones
-Imprimir datos en pantalla (printf y cout)


A continuacion:  LEER DATOS POR TECLADO.

En lenguaje C existen varias maneras de ingresar varios tipos de datos, por el momento, veremos como ingresar tipos de datos numericos, no nos vamos a meter con caracteres (letras) ya que por lo que hemos avanzado, quedarian colgados. Para los curiosos, las cadenas de caracteres se llaman strings.

Bueno, vamos al grano y basta de bla bla.

FUNCION:

la funcion para leer datos por teclado es scanf.

sintaxis:

scanf("%tipo de dato", &variable);

veamos varios ejemplos para que esto quede totalmente claro.



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro la variable numero como variable entera.
- imprimo con printf diciendole al usuairo que ingrese un numero.
- Utilizo la funcion scanf y guardo la variable numero en memoria.
- Luego imprimo el resultado de ese scanf o variable.


Veamos ahora otro ejemplo pero con dos variables:



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro las variables numero1 y numero 2 como variables enteras (int).
- Imprimo que ingrese un numero, lo guardo en la variable numero1.
- vuelvo a imprimir que ingrese otro numero y lo guardo en la variable numero2.
- Luego imprimo las dos variables que el usuario ingreso.

---------------------------------------------------------------------------------------------------------------------------

- Si se habran dado cuenta, utilizo en el scanf el tipo de dato "%i" que quiere decir "int", es decir, entero. Si yo escribiese "%f" la variable tendria que ser float, es decir, coma flotante o decimales.

- Luego utilizo el & (ampersand o algo asi xD) que indica al PC que la variable se guarde en una posicion de memoria aleatoria (en la RAM). Esto es de suma importancia, ya que si no antepones el & antes de la variable, no te saldra error, pero el PC no guardara el valor que le ingresaste.

-Por ultimo escribo el nombre de la variable donde voy a guardar el valor que ingrese.

---------------------------------------------------------------------------------------------------------------------------

Veamos un ultimo ejemplo para que todo quede mas claro:



El resultado es el siguiente:



Explicacion del codigo:

- Declaro las librerias.
- Declaro la funcion main.
- Declaro las variables numero1 y numero 2 como variables enteras (int).
- Declaro la variable numero3 pero como un tipo de dato con decimales (float).
- Imprimo que ingrese los numeros.
- Por cada impresion, guardo en su respectiva variable el valor ingresado.
- Si podran notar, en la variable numero3, el scanf tiene "%f" debido a que la variable es de tipo float.
- Luego imprimo una operacion dentro del printf.
- Imprimo la variable numero3 y la sumo con el numero 1. Imprimo su resultado.

---------------------------------------------------------------------------------------------------------------------------

Como comprenderan, el uso de la funcion scanf es esencial al momento de crear un programa, ya que no sabemos con que valores va a trabajar el usuario y esto nos permite guardar cualquier valor en una variable cualquiera para que despues podamos trabajar con ella.

No es dificil usar scanf pero es sumamente importante.

Espero verlos el proximo capitulo.

saludos.
« Última modificación: Marzo 03, 2008, 12:52:20 pm por TxShAcK »


smiley
Curso de visual basic 6.0 como el Curso C/C++ desde cero

Iniciado por Paolita747

2 Respuestas
1737 Vistas
Último mensaje Mayo 31, 2008, 01:56:18 am
por Paolita747
xx
Curso de PHP #1 [Soporte eriik + curso basico de php]

Iniciado por eriik

8 Respuestas
2706 Vistas
Último mensaje Abril 03, 2008, 05:12:43 pm
por carlmycol
thumbup
Curso de ASP.:!!

Iniciado por -SharK_90-

2 Respuestas
3947 Vistas
Último mensaje Agosto 05, 2007, 05:25:35 pm
por loco_crazy
exclamation
Curso de C

Iniciado por Yawin

8 Respuestas
2187 Vistas
Último mensaje Diciembre 14, 2009, 02:38:04 pm
por jep
xxx
Curso PGP

Iniciado por syncrack

8 Respuestas
3042 Vistas
Último mensaje Agosto 12, 2009, 07:08:23 am
por ---saster---
xx
Curso PHP

Iniciado por DarkWolf

4 Respuestas
2406 Vistas
Último mensaje ſeptiembre 07, 2008, 05:16:16 am
por DarkWolf
xx
Curso de PHP

Iniciado por Hacker290

3 Respuestas
1148 Vistas
Último mensaje Diciembre 28, 2011, 11:18:14 pm
por Hacker290
xx
Curso

Iniciado por QuEeN PhOeNiX

2 Respuestas
1557 Vistas
Último mensaje Mayo 17, 2006, 03:37:00 pm
por QuEeN PhOeNiX
xx
Curso de ASP.NET

Iniciado por Tilmitt

0 Respuestas
1131 Vistas
Último mensaje Junio 22, 2013, 05:00:53 am
por Tilmitt
xx
Curso de C

Iniciado por Dr.SysCrack

3 Respuestas
1924 Vistas
Último mensaje Noviembre 23, 2007, 03:06:26 am
por TXS