1 00:00:00,000 --> 00:00:17,040 Hola a todos, este vídeo es para poder explicar el punto 2.1 del ID de Codelity. Aquí tenéis 2 00:00:17,040 --> 00:00:23,800 en el aula virtual un programa, este código lo voy a insertar en Codelity y vamos a ver 3 00:00:23,800 --> 00:00:31,560 pues cómo funciona. Me voy a mi Debian y en mi Debian lo primero que voy es a mi escritorio, 4 00:00:31,560 --> 00:00:36,920 ya he instalado Codelity, no hay una gran dificultad en cuanto a instalar Codelity, 5 00:00:36,920 --> 00:00:43,880 es muy parecido como instalamos tanto Eclipse como NetBeans y es fácil instalarlo. Una 6 00:00:43,880 --> 00:00:51,680 vez que lo tenemos instalado le damos a ejecutar, este va a ser mi ID para poder ejecutar programas 7 00:00:51,680 --> 00:00:58,880 o código en C o C++. Bien, lo primero que tienes que hacer es iros a File y en New generar un 8 00:00:58,880 --> 00:01:05,960 Workspace. Le dais a New Workspace y una vez generado el Workspace le dais al nuevo proyecto, 9 00:01:05,960 --> 00:01:14,040 New Project. El New Project en mi caso yo lo he llamado pues el Workspace primero y el proyecto 10 00:01:14,040 --> 00:01:20,000 le he llamado pues Ejemplo. Dentro de la carpeta src podéis añadir los ficheros. Una vez que 11 00:01:20,000 --> 00:01:26,200 tenemos aquí, pues tendríamos nuestro fichero que le he llamado que sería dentro de nuestro 12 00:01:27,200 --> 00:01:33,720 proyecto. Un ejemplo, tendríamos el main.cpp que es el como le he llamado. ¿Por qué? Porque 13 00:01:33,720 --> 00:01:42,160 tiene el método main dentro. Tenemos el que este código va a tener un include, el include es un 14 00:01:42,160 --> 00:01:48,320 include librería, esta librería aquí en este caso sería stdio que se va a encargar pues tanto de la 15 00:01:48,320 --> 00:01:53,040 entrada como de la salida de datos por pantalla y también la entrada pues a través del teclado y 16 00:01:53,040 --> 00:01:57,880 vamos a crear tres métodos. Necesitaríamos un método main que sería este y luego tenemos el 17 00:01:57,880 --> 00:02:05,560 método xparm1 y el parm2. Los valores que aparecen en rosa serían pues los valores que devuelven 18 00:02:05,560 --> 00:02:10,080 estas métodos o funciones. Aquí void significa que no va a devolver ningún valor y este tampoco va a 19 00:02:10,080 --> 00:02:14,920 devolver ningún valor. Pero esta función sí devolvería un entero, por eso está el return 0, que 20 00:02:14,920 --> 00:02:22,600 retorna 0. La primera función sería, el nombre sería este de aquí y dentro tiene un parámetro. Aquí 21 00:02:22,600 --> 00:02:30,440 en c y en c++ aparece un nuevo formato variable que sería lo que se llama un puntero. El puntero 22 00:02:30,440 --> 00:02:36,320 es un acceso directo a memoria. Entonces en c y en c++ podemos acceder directamente a una 23 00:02:36,320 --> 00:02:42,320 determinada variable a través de su memoria y eso sería un puntero. Aquí tenemos la variable 24 00:02:42,760 --> 00:02:52,080 seInput y el seInput es un puntero que direcciona a una posición de memoria concreta donde se va a 25 00:02:52,080 --> 00:03:03,520 almacenar valores de tipo char, de tipo carácter. Dentro del método, una vez que hemos introducido 26 00:03:03,520 --> 00:03:09,640 aquí, lo que introduciremos realmente es un puntero a un carácter, lo que va a ser son cadenas, esa 27 00:03:09,640 --> 00:03:14,920 cadena de texto vendrá aquí y a través del pin f se podrá imprimir en pantalla. ¿Qué va a imprimir? 28 00:03:14,920 --> 00:03:22,320 Lo que está en verde que es el parámetro 1es. Estos serían caracteres especiales. ¿Para qué? 29 00:03:22,320 --> 00:03:28,640 Para formatear la variable que va a recibir. Ese input que sería la que recibimos a través del 30 00:03:28,640 --> 00:03:34,320 parámetro la va a transformar. Vamos, no es que la vaya a transformar, sino que le está diciendo, 31 00:03:34,440 --> 00:03:43,160 oye, detrás de es, que me aparezca una variable de tipo carácter string. Ese input tiene que ser 32 00:03:43,160 --> 00:03:49,800 en formato string. A continuación, el otro carácter especial sería el barra n. El barra n indica que va a 33 00:03:49,800 --> 00:03:53,800 generar un salto de línea. ¿Para qué? Para que la siguiente línea, si se va a escribir a continuación, 34 00:03:53,800 --> 00:04:00,480 no aparezca a continuación, sino que aparezca en la siguiente línea. El que pasamos al otro método es 35 00:04:00,480 --> 00:04:06,120 exactamente el mismo. Solo lo que pasa es que ahora tiene otro nombre y va a recibir también un ese input, 36 00:04:06,120 --> 00:04:13,520 o sea, un puntero a carácter, a char. Y dentro tenemos un printf donde vamos a imprimir lo mismo que 37 00:04:13,520 --> 00:04:19,160 decíamos anteriormente. Entonces, pasamos al main. El main va a tener dos tipos de argumento. En los tipos 38 00:04:19,160 --> 00:04:26,480 de argumento tenemos el 1 entero, que sería el número de argumentos que va a tener el total o que va a 39 00:04:26,480 --> 00:04:35,440 recibir él cuando nos deje que le demos el main. Y luego un array, que es otro puntero. Vamos a tener un 40 00:04:35,440 --> 00:04:43,280 array de punteros a carácter. Entonces, aquí lo que vamos a recibir serán una serie de cadenas de texto. 41 00:04:43,280 --> 00:04:51,760 El array, si tiene tres cadenas de texto, es un array con tres elementos. Por tanto, a continuación, 42 00:04:51,760 --> 00:04:57,800 esto no viene en el Aura virtual. Ahora veréis para qué lo he repetido. Lo pongo con doble barra para que se quede 43 00:04:57,800 --> 00:05:04,240 como comentario y no lo rebote. A continuación, lo que hace es que llama a la primera función, a xpar1, que sería el 44 00:05:04,240 --> 00:05:11,600 primer método o función, y le pasa el parámetro rgv1. Es que es rgv1. Hay que decir que dentro de este array va a 45 00:05:11,600 --> 00:05:18,600 haber, aquí en este caso, tendremos tres parámetros, o lo que queramos añadir. Nosotros, en nuestro caso, vamos a 46 00:05:18,600 --> 00:05:26,480 meter dos parámetros, dos cadenas de texto, que va a ser hola para el 1 y adiós para el 2. Y luego tenemos el rgv0, 47 00:05:26,480 --> 00:05:35,680 porque, si sabéis, los arrays empiezan en cero, tanto en C++ como en Java. Entonces, el array cero, el término cero de 48 00:05:35,680 --> 00:05:47,640 dicho array, el rgv0, lo que va a tener es la cadena, la URL, si dijéramos, o la dirección donde va a estar nuestro 49 00:05:47,640 --> 00:05:55,800 fichero que vamos a ejecutar, nuestro .c. Por lo tanto, ahora veréis y lo comprenderéis en cuanto lo ejecute. A continuación, 50 00:05:55,800 --> 00:06:05,680 antes de ejecutarlo, para poder introducir en el main nuestros argumentos, nos vamos al Workspace. En Workspace, en Open 51 00:06:05,680 --> 00:06:13,960 Active Project Settings, podemos configurar esto. Ya lo veis aquí, en argumentos de programa, pues, si le picáis, podéis poner las 52 00:06:13,960 --> 00:06:21,640 cadenas que queráis. He puesto hola y adiós, separadas por un espacio, para que sepa que son dos cadenas. Luego, en el compilador 53 00:06:21,640 --> 00:06:30,880 importante, podéis elegir entre varios. Si le dais aquí, tenéis varios. Entonces, elegimos gnu, g++. Y le damos a aplicar y ok. Una vez que 54 00:06:30,880 --> 00:06:40,240 le damos, pues, a continuación, le dais al run, que estaría aquí, y construís y ejecutáis el fichero. ¿Qué nos aparece? Pues, el parámetro 55 00:06:40,240 --> 00:06:52,240 1 es el argumento que hemos metido primero, que es hola. Y el segundo sería el parámetro 2, que es adiós. ¿Qué está haciendo? Entra en el main y le 56 00:06:52,240 --> 00:07:01,360 damos dos parámetros. Uno es hola y otro es adiós. Vamos bien, porque son dos cadenas de texto. A continuación, llama al método expand1 y le pasa 57 00:07:01,360 --> 00:07:12,640 como argumento el primer argumento que hemos pasado, argv1, que es hola. Se lo pasa. ¿Qué hace? Que, con el primer eje, pone el parámetro 1 es y lo imprime. 58 00:07:12,640 --> 00:07:26,920 Hola. A continuación, llama la función parámetro 2 y hace lo mismo. Ahora pone el parámetro 2 es, pero como es el segundo, el argv2, o sea, el tercer parámetro, 59 00:07:26,920 --> 00:07:38,800 porque ese array sería adiós y se lo pasa. Entonces, imprimiría el parámetro 2 es adiós. Y así nos daría lugar al resultado que hemos visto. ¿Qué sucede si ahora lo que 60 00:07:38,800 --> 00:07:51,960 hacemos es, para que veáis que hay un argv0 dentro de este array, como empieza en 0, el argv0 ya ha dicho que lo que imprime es la dirección donde tengo mi 61 00:07:51,960 --> 00:08:05,640 fichero que estoy ejecutando. Entonces, ahora, cuando le deis a ejecutar, construir y ejecutar, lo que nos aparece, ¿veis? Aparece la ruta con mi proyecto donde ejecuto el fichero. 62 00:08:05,640 --> 00:08:17,720 Ese sería el parámetro 0. El 1 sería el hola y el 2 sería el adiós. Y esto sería en cuanto a codelite. Poco más en cuanto a la ejecución del mismo. 63 00:08:21,960 --> 00:08:24,960 Subtítulos realizados por la comunidad de Amara.org