Vous êtes sur la page 1sur 4

Universidad Tecnolgica Nacional Facultad Regional Crdoba Departamento de Electrnica Ctedra de Informtica I Ao acadmico 2012 Gua para trabajar

en laboratorio Nro 3 Responsable: Ing. Rodolfo Luis Parache Chaves

Algoritmos y recursos en C
Una respuesta ma a Qu es un lenguaje de alto nivel Es un conjunto de palabras, smbolos y reglas de sintaxis que permiten generar un texto humanamente comprensible de instrucciones destinadas a realizar un proceso con datos mecanizado en un computador. Este texto es traducible automticamente mediante un programa compilador a las instrucciones operativas del procesador electrnico que llevar a cabo las operaciones que materializan lo diseado. En general son palabras simples en idioma ingls que suelen generar un gran nmero de operaciones elementales en el procesador. Los smbolos suelen incluir signos de puntuacin (punto, coma, punto y coma, dos puntos, etc.) smbolos especiales (llaves, corchetes, signos aritmticos, asteriscos, amperson, etc.). Todos ellos tienen significados precisos y reglas que son controladas por el programa compilador que rechazar cualquier uso indebido o incorrecto de ellos. El lenguaje permite al programador el uso de palabras distintas de las reguladas por el lenguaje con bastante libertad; estas palabras tienen vigencia en el contexto de cada programa y no se agregan al lenguaje (por ejemplo para designar campos de datos del programa variables- o funciones creadas por el programador) Las palabras propias del lenguaje son palabras reservadas que deben utilizarse solamente para la finalidad definida. La economa y la claridad que se logra con un lenguaje de alto nivel se hace evidente comparando los tamaos de los archivos asociados a cada etapa de la creacin de un programa. El ms pequeo es siempre el texto en lenguaje de alto nivel (programa fuente). Le sigue en tamao creciente el archivo de instrucciones de mquina que genera el compilador (programa objeto) y finalmente el de mayor tamao es el archivo que puede transportarse listo para su uso en cualquier mquina (programa reubicable o ejecutable). Este ltimo puede ocupar ms de cien veces el espacio del primero y se obiene a partir de otro programa llamado enlazador (link editor) que lo genera a partir del compilado (objeto). Por otra parte, no es posible la lectura de un programa objeto ya que las mismas instrucciones de mquina (configuraciones de bits) si bien pueden ser interpretadas, no resultan claras para la lectura. El trabajo de interpretar un modulo objeto se denomina desensamblar y suele ser mencionado (por ejemplo en las licencias de uso de programas que se venden solo bajo la forma de ejecutables) como prohibicin de realizar ingeniera inversa. CUESTIONARIO

1. Defina a qu aluden las expresiones Enunciado simple Enunciado compuesto, en Lenguaje C

2. Utilice el vocablo delimitador para definir el uso en el Lenguaje C de los siguientes smbolos: Llaves Punto y coma Parntesis Coma Smbolos de mayor y menor

A trabajar! En esta sesin suponemos que no es un problema escribir un programa nuevo, depurar su sintaxis y estudiar su comportamiento para ajustarlo a una consigna. Adems, afirmaremos conceptos y definiciones acerca del lenguaje y presentamos nuevos conceptos, poniendo en marcha nuevas pretensiones para un programa que qued a punto en la sesin anterior.

Primer consigna: Programa TPP3v1


Lograr que se repita la leyenda INGENIERIA ELECTRONICA subrayada y centrada en el rengln, una determinada cantidad de veces, cada una debajo de la anterior. Para ello, necesitamos una estructura de reiteracin controlada (en trminos de un algoritmo). El lenguaje C nos ofrece varias posibilidades, en este caso recurrimos a la estructura do-while (que traduciremos como hacer - mientras) Simplemente se indica do y a continuacin entre llaves, los enunciados (simples o compuestos) que queremos reiterar. Inmediatamente de la llave de cierre, escribimos la funcin while() con una condicin en el parntesis que indique la finalizacin de la repeticin. Consignar un enunciado do, sin while a continucacin de la llave de cierre, es un error que cancelar la generacin del programa objeto (compilacin) La condicin que escribimos en el parntesis es una expresin lgica. Definamos: 1 Expresin: es una combinacin de constantes, variables y operadores que puede evaluarse en cualquier momento del programa y toma un valor. 2 Expresin lgica: este tipo de expresin contiene comparadores que hacen que la expresin tome un valor lgico. Un valor lgico es uno de dos posibles TRUE o FALSE que corresponden a los valores aritmticos 1 y 0 respectivamente. Por ejemplo 4<3 vale 0 (false), 4>3 vale 1 (true). 3 El signo < y el signo > son operadores en C y tienen el significado comn del lgebra cuando se los utiliza en una expresin lgica. Cmo funciona do-while? 1 ejecuta (do) el enunciado compuesto encerrado entre llaves 2 evala la condicin del while y repite 1. Contina el ciclo mientras la condicin valga 1 (cierto)

3 cuando la condicin vale 0 (falso) contina con los enunciados que estn mas abajo Por ejemplo, para repetir cuatro veces, precisamos un lugar donde vayamos contando las veces que se ejecuta el bloque o enunciado compuesto. Para ello, reservamos un lugar en memoria donde pueda caber un nmero entero y le damos un nombre. Eso se logra con el enunciado int v=0; Con eso logramos disponer de ese espacio en memoria que podremos usar en todo momento dentro de main() mencionando su nombre, en este caso v. Adems, poniendo =0, nos aseguramos que inicialmente ese espacio contiene la cantidad cero. (esto se llama inicializar una variable; v es una variable para un entero por el tipo indicado con la palabra clave int) Pregunta: que es una palabra clave en un lenguaje? qu es un tipo de dato? OBSERVACION: los enunciados de reserva de memoria para variables deben preceder siempre a los enunciados ejecutivos del programa. Los de reserva de memoria y designacin de esos espacios se llaman enunciados declarativos. Retenga y utilice apropiadamente esta clasificacin que tipifica enunciados. Hay dos expresiones que son necesarias para controlar el ciclo de repeticin. Una es el conteo de veces lo que puede hacerse con el enunciado v++; que incrementa en una unidad el valor anterior de v cada vez que se ejecuta. La segunda es la expresin lgica que controla la cantidad de repeticiones: v<4 que escribiremos en el parntesis de while(). Edite un programa del prctico anterior adecuado, cambie su nombre a TPP3v1 y realice los agregados necesarios para lograr lo pedido en la consigna. Utilice un apropiado adentramiento de textos (qu es esto?) Cuando escribimos una cifra en una expresin (como el 4 en v<4) esta cifra es una "constante literal" cuyo significado es el corriente... Porqu se llama "literal"? pues porque hay otro tipo de constantes que se llaman "simblicas". Estas ltimas hacen corresponder un significado propio a una palabra que se utilizar en el texto del programa, mediante una definicin especial.

Segunda consigna: Programa TPP3v2


Se podr lograr que en vez de repetirse la leyenda, se desplace una lnea hacia abajo en la pantalla despus de pulsar una tecla? Esto requiere algo ms de trabajo. Ya que queremos un avance de lnea que se repita una cantidad variable de veces (una mas que la vez anterior cada vez que se pulse una tecla) Es que en realidad la leyenda no baja sino que se muestra en una posicin distinta cada vez. La velocidad en que esto ocurre no permite advertir el borrado de pantalla y parece que la leyenda bajara una lnea. Piense en lo que hay que hacer: Presentar la lnea, borrar la pantalla y presentarla de nuevo una lnea ms abajo. O sea que hay que repetir y contar bajadas de lnea segn cuantas veces se haya hecho esto antes.

Trate de ordenar los pasos a seguir antes de intentar codificar el programa. Sugerencia: precisa dos variables de conteo. Una para contar cuantas veces van y otra para contar las bajadas de lnea, por ejemplo si se han hecho 5 veces, en la sexta habr que bajar cuntas lneas? Este ejercicio sirve para ajustar el conteo de eventos. Un evento es mostrar el letrero, el otro es bajar lneas antes de mostrarlo. Todo conteo requiere un diseo apropiado de: a) la puesta a cero del contador y b) el incremento. A su vez el diseo de un ciclo de repeticin requiere especificar adecuadamente la ruptura del ciclo (hasta cundo?) Pruebe su habilidad para disear esto. Si son sus primeros diseos, no dude en pedir ayuda o discutirlo con sus compaeros.

Tercer consigna: usamos una constante simblica, programa TPP3v3


Podemos dar una directiva de definicin de constante simblica al preprocesador, mediante la instruccin # define veces 4 Con ello, en el texto del programa, utilizamos el nombre veces y el compilador reemplazara veces por 4 al construir el modulo objeto. Este recurso se utiliza para no tener que estar buscando en el texto del programa todos los lugares donde utilizamos la constante literal si queremos cambiar su valor en otro momento. NO se trata de una variable. NO confundir. Lo nico que ocurre con este recurso, es que se modifica el texto antes de compilar reemplazando la constante simblica por su valor. (equivale a buscar y reemplazar)

Vous aimerez peut-être aussi