Para explicar los componentes de un programa, analizaremos la estructura del
programa hola_mundo.c, que es el primer programa que por tradicin se realiza
cuando se aprende a programar en un nuevo lenguaje de programacin. A partir de este ejemplo se revisar la estructura de un programa y los elementos que lo integran. A continuacin se muestra la estructura general: Programa hola_mundo.c /*Directivas de preprocesador*/ #include<stdio.h> /* Definicin de funcin Principal */ main( ) { printf(Hola mundo \n); } El programa hola_mundo.c solo tiene una funcin: main; generalmente se puede dar cualquier nombre a las funciones que se definan en un programa, sin embargo, main es una funcin especial que siempre debe aparecer en algn lugar del programa, ya que es el punto desde el cual se inicia la ejecucin (equivale a la instruccin de inicio de un algoritmo). Los parntesis ( ) que aparecen despus de la palabra main indican que se trata de una funcin; las instrucciones que forman parte de sta, llamadascuerpo de la funcin, van encerradas entre llaves { }, sealando el inicio y fin de la misma, respectivamente. Las instrucciones que comienzan con /* y terminan con */, se llaman comentarios e indican que todo lo que est escrito entre esos smbolos no son instrucciones que la computadora debe ejecutar sino informacin de inters para el programador; por ejemplo la primera lnea de cdigo: /*Directivas de preprocesador*/ Otro tipo de instrucciones especiales son las directivas del preprocesador, que son instrucciones que se realizan antes de la compilacin del programa, un ejemplo es: #include<stdio.h> Se distinguen porque inician con el carcter gato #, en este caso esta instruccin le indica al compilador que debe incluir la informacin que est definida en el archivo de biblioteca stdio.h, en el cual se encuentran todas las funciones de salida y entrada, como printf. Los compiladores de lenguaje C ofrecen distintas directivas, sin embargo las que utilizaremos son: #define, que sirve para definir de constantes y/o macros #include, que se utiliza para incluir otros archivos En el cuerpo de la funcin main, del programa 3.1, slo aparece una instruccin que es la invocacin a la funcin printf con el argumento Hola mundo \n printf(Hola mundo \n); Invocamos o llamamosuna funcin cuando requerimos que se ejecute con un conjunto de datos especficos, a los cuales llamamos argumentos. Una funcin se invoca o llama al nombrarla, es decir, escribiendo su nombre seguido de la lista de argumentos, separados por comas y encerrados entre parntesis. En otras palabras, los argumentos son los valores que una funcin necesita para realizar la tarea que tiene encomendada, por ejemplo, la funcin printf tiene como fin imprimir la cadena de caracteres que recibe como parmetro, en este caso particular imprimir la frase Hola mundo seguida de un salto de lnea, que es lo que representa la secuencia de caracteres \n. Una instruccin o enunciado en lenguaje C se puede definir como una expresin que tiene alguna consecuencia, generalmente sta se ve reflejada en el cambio del valor que est almacenado en las variables. De acuerdo con su estructura sintctica se pueden clasificar en dos tipos: simples y compuestas. Instrucciones simples y compuestas.
Las instrucciones simples se distinguen porque terminan con punto y coma
La sintaxis es:
<instruccin>;
Como ejemplo de instrucciones simples tenemos la declaracin de variables, la llamada de funciones y la asignacin.
int x;
x = 2*y; printf(Hola); En cambio las instrucciones compuestas son un conjunto de instrucciones que se escriben entre llaves
La sintaxis es:
{
<instruccin>;
<instruccin>;
<instruccin>; } Un ejemplo de este tipo de instrucciones es el cuerpo de la funcin
main, del programa 3.1: /*Directivas de preprocesador*/
#include <stdio.h> /* Definicin de funcin Principal */
main
( ) Los comentarios son textos que sirven como informacin al programador y no son procesados por el compilador, es decir, no son instrucciones que debe realizar la computadora y por lo tanto, no son traducidos a lenguaje de mquina. Para que un texto sea considerado como comentario debe estar entre los smbolos /* (marca el comienzo) y */ (marca el final del comentario).
Pueden ir en cualquier parte del programa Un(a) buen(a) programador(a) debe comentar sus programas para que otras personas puedan entender la lgica de stos; incluso, los comentarios pueden ser de utilidad al (a la) programador(a) cuando en un tiempo futuro requiera realizar cambios. Es recomendable incluir al inicio de stos: Nombre del programa Nombre del programador Breve descripcin de la tarea que realiza Fechas de creacin y de la ltima modificacin Todo lo anterior encerrado entre comentarios. Por ejemplo, al inicio del programa hola_mundo.csera conveniente incluir el comentario que se muestra en la imagen del lado derecho. Los comentarios tambin se pueden incluir al lado de una instruccin para describir de qu se trata, por ejemplo:
printf(Hola mundo); /* Imprime el mensaje Hola mundo en la pantalla*/ Las palabras reservadas de cualquier lenguaje de programacin, se llaman as porque tienen un significado especial para el compilador, el lenguaje C tiene 32 palabras reservadas (27 fueron definidas en la versin original y cinco aadidas por el comit del ANSI: enum, const, signed, void y volatile), todas ellas escritas con minsculas . En la siguiente tabla se muestran todas las palabras claves o reservadas de lenguaje C. Es importante que las tengas en cuenta a la hora de realizar tus programas. Ahora que ya se han descrito los diferentes elementos que integran un programa de lenguaje C, podemos describir su estructura general. Si observas el programa hola_mundo.c , vers que la primera instruccin en el programa es la directiva al preprocesador, seguida de la funcin main y las instrucciones que la integran. Esta estructura corresponde a los programas ms simples, pero es similar a la de cualquier programa en C. La forma general de un programa en este lenguaje es la que se muestra en el siguiente cuadro: Como se ha mencionado, se pueden incluir comentarios en cualquier parte del cdigo. Para dejar ms claro esto, a continuacin se presenta un programa que calcula el rea de una circunferencia dada la medida de su radio. Por el momento, basta con que observes la estructura del programa, sobre todo en la parte de los comentarios; el significado de cada una de las lneas del cdigo se ir definiendo en las siguientes secciones.
Para cerrar esta seccin en la siguiente figura se muestra la ejecucin del programa con la entrada radio=3.
Figura 3.1: Ejecucin del programa areaCircunferencia.c utilizando Dev-C++ Estructura general y ejecucin de un programa
Realiza lo siguiente: 1. Escribe el programa areaCircunferencia.c 2. Complalo con DevC++ y ejectalo dando diferentes valores para el radio. 3. Ingresa a la base de datos para comentar tu experiencia, tus dudas, o para responder a los comentarios de tus compaeros. Para ingresar a la base de datos: En la ruta (parte superior izquierda del aula) da clic en Fundamentos. Se enlistarn las actividades de la Unidad 3 y ah da clic en la Actividad 1. Introduccin al lenguaje C. En la Unidad 1 se mencion que todos los datos que son procesados por una computadora se almacenan en la memoria principal y, no importa de qu tipo sean, se representan por medio de unos y ceros; sin embargo, no todos se pueden representar con el mismo nmero de bits, esto s depende del tipo de dato que se trate. Por ejemplo, los caracteres como: a, @, Z, entre otros, se representan utilizando 8 bits, en cambio para representar un nmero decimal se utilizan, al menos, 32 bits; por lo que, cuando se crea un espacio de memoria, es necesario indicar qu tipo de dato se desea almacenar ah, para que se reserve la cantidad de celdas de memoria que se necesitan y las operaciones que se pueden realizar con ellos. En general, los tipos de datos que existen, independientemente del lenguaje de programacin utilizado, se pueden clasificar de la siguiente forma: Por el momento, slo nos enfocaremos en los tipos de datos simples definidos en el estndar de C, en la Unidad 5 se estudiarn los datos estructurados. En la siguiente tabla se muestran los tipos de datos simples en C: Es posible aumentar o disminuir la capacidad de representacin de los nmeros utilizando los modificadores long, short y unsigned. De esta manera las combinaciones que se ajustan al estndar ANSI, junto con sus rangos mnimos, son las que se muestran aqu.
Una vez que conocemos los tipos de datos que se pueden representar en lenguaje C, es conveniente saber cmo se reservan espacios de memoria donde son almacenados, esto es justo lo que se explica en el siguiente Tema. Tanto las variables como las constantes en lenguaje C se utilizan para almacenar valores, la diferencia que existe entre ellas es que en una el valor almacenado puede cambiarse en cualquier instante del programa y en la otra no. En seguida lo explicamos. A lo largo de este tema descubrirs cmo puedes construir variables y constantes en lenguaje C. Avanza al primer subtema para continuar. En lenguaje C hay una serie de restricciones en cuanto a los nombres o identificadores, ya sea de variables, constantes o funciones. stas son: 1. Los identificadores se integran por letras y dgitos pero es necesario que el nombresiempre comience con una letra, por ejemplo: enteroA, arco3, S184. 2. No pueden contener caracteres especiales, por ejemplo, acentos (, ), la letra ee (), gato (#), guin (-), etc. El caracter de subrayado _ es el nico caracter especial que puede utilizarse, generalmente se usa para darle una mejor legibilidad al nombre de una variable, por ejemplo: entero_A, area_Circulo, i_elemento. 3. No pueden contener espacios en blanco. 4. No pueden ser palabras reservadas. 5. Se distingue entre letras maysculas y minsculas, esto significa que los siguientes identificadores son distintos: area, Area, AREA. 6. Aunque no es una regla, se recomienda que los identificadores sean significativos, es decir, que el nombre indique qu dato se est almacenando ah. 7. Ejemplo 3.1: 8. 1) Se requiere una variable para almacenar el radio de un crculo. 9. Las opciones sugeridas son: radio, radioCirculo, radio_circulo. 10. 2) Se requiere un identificador para una variable que almacene el promedio de ventas anuales de una tienda departamental. 11. Opciones sugeridas: promedioVentas, prom_Ventas, promAnual. 12. 3) Para almacenar el nmero telefnico de una persona. 13. Como opciones sugeridas tenemos: tel, telefono, nTel. 14. Ahora que ya conoces las reglas para escribir los nombres de las variables y las caractersticas bsicas que pueden tener, ests listo(a) para descubrir cmo se crean las variables en lenguaje C. A esta accin se le denomina declaracin de variables. 15. La declaracin de una variable es una instruccin que proporciona informacin de la variable al compilador, para que ste reserve en memoria el espacio adecuado y la referencia (identificador) para tener acceso a ella. Las declaraciones en general tienen la siguiente sintaxis: 16. <tipo><identificador>; 17. Donde <tipo> se refiere a un tipo bsico de C y el <identificador> se refiere al nombre con el cual se identificar el espacio de memoria reservado, puede ser cualquier nombre siempre y cuando se respeten las reglas vistas previamente. Veamos los siguientes ejemplos: 18. int edad; /* declara una variable de tipo entero con el identificador edad*/ 19. float area; /* declara una variable de tipo float a la cual identificar por area*/ 20. Tambin es posible declarar una lista de variables de un mismo tipo separando los nombres con comas ,: 21. <tipo><identificador1>, , <identificadorN>; 22. Podemos ver un ejemplo de este tipo de declaracin en el programa que calcula el rea de una circunferencia (programa 3.2), cuando declaramos las variables locales a la funcinmain: 23. float radio, area;/* declara dos variables (radio y area) de tipo float*/ 24. Siempre es posible asignarles un valor inicial a las variables cuando las declaramos, a esta operacin se conoce como inicializacin. La sintaxis es: 25. <tipo><identificador>=<valor>; 26. Del mismo modo, podemos inicializar varias variables: 27. <tipo><identificador1> = <valor1>, , <identificadorN> =<valorN>; 28. Para ilustrar esto, se presentan los siguientes ejemplos de variables inicializadas: 29. int edad = 18; 30. float radio = 3.0, area = 0.0; En la figura 3.2 se muestra una representacin grfica de estas declaraciones e inicializaciones que puede ayudar a darte una idea general de lo que sucede en la memoria: Las columnas de Direccin representan la direccin fsica de los registros en la memoria RAM, si ha sido asignada una variable se escribe su identificador junto a la direccin, en Contenido se muestra el dato que est almacenado para esa variable. El estado de una variable hace referencia al valor del dato que hay almacenado en un momento determinado. De lo anterior tenemos que: a la variable edad le corresponde la direccin de memoria 02 y su estado es 18; a la variable radio le corresponde la direccin 51 y su estado es 3.0; y por ltimo, a la variable area le corresponde la direccin 54 y el estado es 0.0. Como ya se mencion antes, las constantes son expresiones con un significado invariable, pueden clasificarse en dos tipos: literales y simblicas. Las constantes literales son valores de un determinado tipo, escritos directamente en un programa y pueden ser de los siguientes tipos: a) Constantes numricas, que son nmeros representados en sistema decimal, algunas veces se estila escribir una letra que indique el tamao o tipo de la constante numrica: Enteros: Por ejemplo 123, 2006, -38 Enteros Largos: Se consideran nmeros enteros que superan un entero (int) generalmente valores mayores a 32,000; se le agrega los sufijos l o L por ejemplo: 123456789L. Enteros sin Signo: Aqu se define que el valor de la constante se va a considerar como un nmero positivo o mayor a cero, en estos casos se agrega el sufijo U o u as por ejemplo podemos escribir: 123456789LU. Flotantes:Los valores numricos que impliquen precisin decimal se pueden escribir de dos formas, la primera sera: 14324.983 3.1416. Tambin se puede expresar en representacin exponencial (e-n), por ejemplo: 1.1434E2 o 1.1432e-5. Tambin se ocupan los sufijos f o F y l o L para especificar los tipos double. Como puedes observar, las constantes reales con representacin exponencial, tienen como valor una parte entera o real en forma decimal, seguida por la letra E o seguida de una constante entera, que se interpreta como exponente de la base 10. b) Constantes carcter, se representa internamente por el lenguaje C como un nmero entero corto (short int). Una constante carcter siempre debe ir entre apstrofes, por ejemplo: x, A. Tambin existen constantes carcter que aparentan ser compuestas pero slo son representaciones de caracteres de formato o caracteres especiales y en C se les conoce comosecuencias de escape. \n Salto de lnea \t Tabulador \b Espacio hacia atrs \f Salto de pgina \ Comillas \\ Barra invertida Tabla 3.5: Secuencias de escape c) Constantes cadena, son una secuencia de caracteres entre comillas, incluyendo secuencias de escape, por ejemplo: hola, hola mundo \n. En C existen dos formas de declarar una constante simblica. La primera es utilizando la directiva de preprocesador #define, la cual asocia un identificador a un valor constante, sin reservar espacio en memoria, por lo que no podemos decir estrictamente que se declara, slo se define. La sintaxis general es la siguiente: #define<identificador><valor_constante> Por ejemplo: #define PI 3.1416 Con esta instruccin, cada vez que en el programa se escriba el identificador PI, ste ser sustituido por el compilador con el valor de 3.1416 (no se almacena el valor 3.1416 en ningn espacio de memoria slo se hace una sustitucin textual en el momento de compilacin). La segunda forma de declarar una constante simblica es reservando espacio de memoria que tenga la restriccin de slo lectura, para impedir que el valor sea cambiado, en este caso s la declaramos. La sintaxis general es similar a la forma de declarar una variable slo que se antepone al tipo la palabra reservada const y es obligatorio asignar un valor: const<tipo><identificador> = <valor_constante>; Por ejemplo: const float PI 3.1416; La directiva #define debe escribirse al principio del programa antes del main, en cambio, la declaracin de una constante mediante const puede ser escrita dentro o fuera de las funciones al igual que las declaraciones de variables. Se recomienda escribir el nombre de una constante con letras maysculas para diferenciarlas de las variables, pero las reglas son exactamente las mismas que para los identificadores de las variables. Evidencia de Aprendizaje: Programa en C. Anlisis del problema
Ha llegado la hora de retomar el desarrollo del programa en C que ests realizando como parte de la Evidencia de Aprendizaje, hasta el momento ya debes contar con tu problema perfectamente delimitado. Lo que corresponde para esta unidad es implementar la fase dos del proceso, que consiste en hacer el anlisis del problema para que en la siguiente unidad se pueda comenzar el diseo del algoritmo en pseudocdigo o diagrama de flujo. Realiza lo siguiente: 1. En un archivo de Word, analiza cuidadosamente el problema planteado, para ello considera: o Los datos que se necesitarn como entrada y salida del programa, es decir, qu necesitar ingresar el usuario, y qu se espera que devuelva el programa como resultado final. o La metodologa que seguirs para resolver el problema, es decir, qu elementos de programacin necesitar el programa para resolver el problema. Por ahora no necesitas delimitarlo muy a detalle, ya que conforme avances en el estudio de las unidades siguientes, aprenders nuevos elementos que se pueden incorporar al programa. Lo importante en este punto es que plantees una estructura general que podra servir para el algoritmo.
2. En el mismo documento, realiza un esbozo del algoritmo en lenguaje natural (no necesitas hacerlo en diagrama de flujo ni pseudocdigo) para presentar la estructura general que tendr tentativamente tu programa.
3. Guarda tu trabajo con el nombre FPR_U3_EA_XXYZ.doc y envalo mediante el Portafolio de evidencias; espera a que tu Facilitador(a) devuelva los comentarios a tu trabajo, atiende lo que se te indique y haz los ajustes necesarios para mejorar tu Evidencia. Nota: El plazo lmite para enviar la segunda versin de la Evidencia de Aprendizaje es hasta que acabe la Unidad (consulta al (a la) Facilitador (a) para mayor informacin). Para conocer los lineamientos de evaluacin de esta evidencia, descarga el siguiente documento.
Para enviar tu evidencia: En la ruta (parte superior izquierda del aula) da clic en Fundamentos. Se enlistarn las actividades de la Unidad 3 y da clic en la Evidencia de Aprendizaje: Programa en C. Anlisis del problema Las expresiones matemticas representan una de las partes importantes de la programacin en C, ya que a travs de ellas se pueden resolver problemas de distintas clases. stas pueden ser un nmero, una variable, una constante o la combinacin de operadores y todas las anteriores. Toda expresin al ser evaluada produce un valor. Se dividen en dos tipos de acuerdo al tipo de datos que devuelven cuando son evaluadas: Expresiones aritmticas cuando el resultado de la evaluacin es un nmero. Expresiones booleanas cuando el resultado de la evaluacin es un valor booleano (verdadero o falso). En este punto es importante destacar que el modo en que el lenguaje C maneja los valores booleanos es por medio de valores enteros: cero equivale a falso y cualquier entero distinto de cero representa verdadero. Las expresiones matemticas permiten modelar situaciones reales; por ejemplo, mediante las expresiones aritmticas podemos modelar la forma de calcular el rea de cualquier figura, tambin podemos representar la forma de calcular las races de un polinomio de segundo grado, o calcular el monto de una venta, etc. En cambio las expresiones booleanas son la base para construir programas que pueden tomar decisiones. Observa los siguientes ejemplos: Ejemplo 3.2 a) La hipotenusa es igual a la raz cuadrada de la suma de los cuadrados de catetos. Expresin aritmtica: Codificacin en C: c =sqrt(a*a + b*b); b) x es un nmero par? Sabemos que un nmero es par si es divisible entre 2, en otras palabras, si el residuo de la divisin entre dos es cero, lo cual se puede expresar con el operador de mdulo, que devuelve el residuo de una divisin. Expresin booleana: Codificacin en C: x % 2 == 0 En el prximo subtema se presentan los operadores bsicos del lenguaje C, tanto aritmticos como booleanos. Los operadores son palabras o smbolos que permiten realizar operaciones con los datos de un programa, para cada tipo de datos hay una serie de operadores definidos. Entre todos los operadores se distingue el operador de asignacin =, que se puede leer como guarda un valor en la variable indicada, el valor puede ser una constante literal o el resultado de una expresin. Cabe sealar que este operador en pseudocdigo o diagrama de flujo lo hemos representado con una flecha apuntado hacia la izquierda . Veamos algunos ejemplos: radio =3.0; /* modifica el estado de la variable radio con el valor 3.0*/ area=PI*radio*radio;/* modifica el estado de la variable por el resultado de evaluar la expresin PI * radio * radio */ Mencionamos ya que existen dos tipos de operadores bsicos que se pueden utilizar en el lenguaje C, a continuacin los explicamos: Los operadores aritmticos definidos en C son: + (suma), - (resta), * (multiplicacin),/ (divisin) y %(mdulo). Este ltimo representa el residuo de dividir dos nmeros enteros, por ejemplo si realizamos la divisin de 6 entre 15 (15/6), el cociente es 2 y el residuo es 3, al aplicar el operador mdulo a estos valores tenemos: 15 % 6 3 21 % 4 1 En C tambin existen los operadores de incremento ++ y decremento --, stos tienen el efecto de aumentar o disminuir en una unidad el valor de una variable, supongamos que estamos trabajando con la variable x: x++;/* equivale a hacer: x = x + 1;*/ x--; /* equivale a hacer: x = x 1;*/ Por ejemplo, si el valor de x es 5 el resultado de aplicar ++ y -- es: x++; 6 x--; 4 Los operadores que permiten construir expresiones booleanas son: Operadores relacionales que manipulan expresiones aritmticas y son:> (mayor que), < (menor que), >= (mayor o igual), <= (menor o igual), == (igual), != (distinto) Operadores booleanostambin llamados lgicos, manipulan nicamente expresiones booleanas y son: ! (negacin), || (disyuncin) y && (conjuncin). Observa que el operador de igualdad se escribe con dos smbolos de igualdad seguidos (==). El error ms comn es escribir una comparacin con un slo smbolo de igualdad, recuerda que (=) es el operador de asignacin y su significado es totalmente distinto. En cuanto a los operadores booleanos, su significado es el siguiente: Negacin!, es un operador unario que cambia el valor de verdad de la expresin a la cual se le aplica. Por ejemplo, si el valor de verdad de expresin es verdadero entonces devuelve falso, y viceversa. Por ejemplo, si x=2, y=3, z=5 !(z > x ) !(5 > 2 )!(1) 0 (falso)
!(x > y ) !(2 > 3 ) !(0) 1 (falso)
En pseudocdigo o diagrama de flujo se representa con la palabra en ingls NOT Conjuncin&&, es un operador binario que se evala como verdadero slo cuando las dos expresiones involucradas son verdaderas, en caso contrario devuelve falso. Por ejemplo, si evaluamos las siguientes expresiones en el estado las variables x=2, y=3, z=5 (x>y) && (z>y)(2 > 3) && (5 > 3) 0&&1 0 (falso) !(x > y) && (z>y) !(2 > 3) && (5 > 3) !(0) &&1 1&&1 1 (verdadero) En pseudocdigo y diagrama de flujo se representa con la palabra en ingls AND Disyuncin| |, es un operador binario que devuelve nicamente falso si los dos operadores son falsos, en caso contrario devuelve verdadero. Nuevamente, tomemos el mismo estado de las variables x=2, y=3, z=5 (x>y) | | (z>y) (2>3) | | (5>3) 0 | | 1 1 (verdadero) (x>y) | | (y>z) (2>3) | | (3>5) 0 | | 0 0 (falso)
En pseudocdigo y diagrama de flujo se representa con la palabra en ingls OR Adems de los operadores mencionados, en C existen otros que se pueden utilizar, sin embargo, su estudio supera los objetivos de este curso por lo que no los revisaremos. Si deseas saber ms al respecto puedes consultar el texto de Joyanes & Zohanero(2005). La evaluacin de las expresiones depende de tres cosas, principalmente el estado de las variables que aparecen en la expresin, el significado de los operadores y su precedencia. Esta ltima se refiere a la prioridad de los operadores, es decir, el orden en el que se evalan, eliminando con esto la ambigedad de las expresiones, por ejemplo, si tenemos la expresin: 2 + 3 * 5 Podramos evaluarla de dos diferentes formas: la primera es hacer primero la suma 2+3 (=5) y despus multiplicar el resultado por 5. De tal manera obtendramos como resultado final 25. Otra manera sera realizar primero la multiplicacin 3*5 (=15) y sumar el resultado a 2, obteniendo 17 como resultado final. Pero sabemos que en matemticas primero se realiza la multiplicacin y despus la suma, en otras palabras, tiene mayor prioridad la multiplicacin que la suma. Por lo tanto, el resultado correcto de la expresin 2 + 3 * 5 es 17. En la siguiente tabla se muestra la precedencia de operadores de lenguaje C que se han presentado. Los operadores que se encuentran en el mismo nivel de precedencia se ejecutan de izquierda a derecha segn aparecen en la expresin. Da clic aqu para observar un par de ejemplos. 1. Realiza la siguiente actividad que te servir para autoevaluar tu conocimiento, esto con el fin de que puedas verificar qu tanto has aprendido los temas vistos hasta ahora pues necesitars tener un buen manejo de los mismos para comprender los temas siguientes y para realizar tus prximas actividades.
2. Ingresa al cuestionario Autoevaluacin de la Unidad 3 y contesta cada una de las preguntas que se te plantean. Considera volver a repasar algunos temas si tus respuestas correctas son menos que las incorrectas. Para ingresar al cuestionario: En la ruta (parte superior izquierda del aula) da clic enFundamentos. Se enlistarn las actividades de la Unidad, da clic en Autoevaluacin de la Unidad 3.