Sei sulla pagina 1di 11

Programacin en C

I.E.S. SIETE COLINAS CEUTA 1 BACHILLERATO TECNOLOGA DE LA INFORMACIN


Manuel A. Martn Santiago

FUNDAMENTOS DE PROGRAMACIN PROGRAMACION EN C 1.- Introduccin. Para poder manipular y gestionar informacin o procesos con un ordenador se hace necesario un componente bsico denominado software. En su momento se defini el mismo como un conjunto de programas (sistema operativo y aplicaciones) que permiten sacar el mximo rendimiento a un sistema informtico. En lenguaje popular el software es lo que se conoce como programas. En este tema vamos a plantear el software desde un punto de vista particular del usuario. En ocasiones el usuario necesita mecanizar procesos o clculos para los cuales no existen herramientas especficas (software), por lo cual se ve obligado a desarrollar las mismas. En este punto el usuario deja de utilizar el software de usuario desarrollado por las empresas especializadas para disear sus propias soluciones, es decir, pasa a ser un programador. Es entonces cuando el usuario necesita adquirir una serie de conocimientos, en los cuales, determinados conceptos (lenguajes, variables, gestin de memoria, estructuras de datos, etc..) ya no pueden ser tan trasparentes como lo eran cuando simplemente manejaba software de usuario. 2.- Conceptos bsicos. Programa. Lenguaje. Compilador e intrprete. Instrucciones. Datos. Para que un usuario pueda realizar tareas con un ordenador queda claro que necesita programas. Podemos definir un programa como un conjunto de instrucciones que el ordenador puede interpretar y ejecutar para obtener un resultado determinado. Para escribir un programa (conjunto de instrucciones) se necesita un lenguaje. Evidentemente el ordenador no entiende el lenguaje humano por lo que es necesario disponer de un lenguaje intermedio entre la mquina y el ser humano, estos son los lenguajes de programacin. Los lenguajes de programacin existentes son muy variados y dependiendo del tipo de aplicacin que deseamos utilizaremos uno u otro lenguaje. Ejemplos tpicos son C, C++, Pascal, Basic, Fortran, PL/SQL etc. Al igual que los diferentes idiomas hablados por el ser humano tienen unas reglas sintcticas y semnticas para el idioma, los lenguajes de programacin tambin las tienen. Resumiendo podemos decir que las sintcticas definen como se han de escribir las instrucciones y las semnticas cual es el significado de las mismas. De todo lo anterior podemos deducir que un programa es un conjunto de instrucciones escritas en un determinado lenguaje por un programador con la misin de realizar una determinada tarea con el ordenado. Los programas escritos por un programador en un lenguaje de programacin pueden tener errores sintcticos y semnticos al igual que ocurre cuando se habla o escribe un idioma existen faltas de ortografa. Debido a esto es necesario corregir estos programas para que el ordenador pueda entenderlos. Esta correccin de posibles errores se hace posteriormente a la escritura del programa. Para realizar esta correccin se utilizan herramientas especficas encargadas de avisar al programador donde estn los posibles errores. Estas herramientas (software) se denominan compiladores / intrpretes. La diferencia entre un compilador y un intrprete es que al primero se le suministra un programa escrito en un -1-

Programacin en C

lenguaje y el compilador lo analiza suministrando un listado de errores; por otro lado el intrprete no analiza el programa en conjunto, analiza las instrucciones independientemente y da los errores para cada instruccin. Parece claro pues que cuando se escribe un programa (modo texto) este ha de pasar previamente por un programa corrector y que traduce el programa a algo que entienda el ordenado para poder ejecutarlo. Al programa original escrito por el programador en modo texto se le denomina programa fuente y al programa generado por el compilador listo para ejecucin se le denomina programa objeto.

Programa fuente
--------Instruccin 1 Instruccin 2 . . Instruccin N

Compilador
Herramienta Software

Programa objeto
-----Programa ejecutable por el ordenador -Cdigo mquina-

Figura -1En la figura superior se describe bsicamente el proceso de compilacin. El programador escribe el programa en un lenguaje de programacin. Una vez escrito lo compila y genera un programa objeto. La funcin real de la compilacin es detectar los errores y una vez corregidos traducir el programa fuente en algo que pueda entender el ordenador (programa objeto). Hemos mencionado anteriormente que un programa esta formado por instrucciones. Las instrucciones son rdenes escritas en un determinado lenguaje y que normalmente realizan funciones bsicas. Para entender el concepto de instruccin vamos a poner un ej. Bsico. Supongamos que deseamos realizar un programa para sumar dos nmeros introducidos por teclado del ordenador y mostrar el resultado en pantalla El programa del ej. Podra escribirse en muchos lenguajes. Vamos a escribirlo en lenguaje natural con algunos smbolos para facilitar la lectura del mismo. Si bien no es entendible para el ordenador si lo es para aquellas personas que no conocen ningn lenguaje de programacin. Luego solo bastara realizar las traducciones pertinentes a un lenguaje de programacin. Para separar una instruccin de otra utilizamos el smbolo ;. PROGRAMA SUMA_DOS_NUMEROS; Nombre del programa escrito en lenguaje natural. { Smbolo que indica el comienzo de instrucciones Dato1, dato2 y resultado son enteros; declaramos cuales son los valores que utilizaremos PEDIR dato1; PEDIR dato2; resultado = dato1+dato2 ; MOSTRAR resultado ; } pedimos el primer numero que se denomina dato1 pedimos el primer numero que se denomina dato2 Asignamos al dato resultado la suma de dato1 y dato2 Mostramos el valor del dato resultado Smbolo que indica el fin de un conjunto de instrucciones -2-

Programacin en C

El programa consta de un rea para el nombre del programa y cada lnea comprendida entre los smbolos { y } es una instruccin con lo que est claro que hay 5 instrucciones. La primera es una instruccin donde se declaran cuales son los datos (variables) que se utilizan en el programa y las dems realizan una funcin determinada en el programa. La instruccin resultado = dato1 + dato2 es una instruccin de asignacin que da valor a la variable resultado. Ese valor es la suma de los datos previamente introducidos (dato1 y dato2). Aunque este programa no es directamente entendible por ningn compilador bastara traducir cada instruccin a un lenguaje (con sus reglas sintcticas y semnticas) para que fuera entendible por un compilador para ese lenguaje. Por ello cuando uno va a realizar un programa es muy til previamente realizar una aproximacin en lenguaje natural de cuales son los pasos a realizar. Esto facilitar la elaboracin del programa ya que luego solo hay que traducir. Para realizar una primera aproximacin al programa se utilizan distintas herramientas: organigramas, ordinogramas, pseudo cdigo o lenguaje natural. Las instrucciones en un programa pueden ser de varios tipos Instrucciones de entrada / salida : Leer datos o escribir datos. Instrucciones de asignacin: Asignan valores a las variables. Instrucciones de decisin: Permiten realizar un conjunto de instrucciones u otro en funcin de una condicin determinada. Instrucciones iterativas (repetitivas): Permiten realizar una instruccin repetidamente un nmero determinado de veces o en funcin de si se cumple una condicin o no.

Por otro lado hemos introducido un concepto que todava no hemos definido: Variable. Las variables de un programa no son ms que una forma de hacer referencia a los datos que se manejan en el mismo por ej. Supongamos el siguiente conjunto de datos: 32C - Antonio - 170 cm. Estos datos se pueden manejar en cualquier programa pero si el primero hace referencia a una temperatura est claro que es un valor que mide una magnitud. En un programa para hacer la media de temperaturas (por ej.) tendramos que almacenar varias temperaturas solicitadas por teclado lo que implica que como no sabemos cuales sern las introducidas debemos de darle un nombre genrico a cada una para referenciarlas. Si suponemos que el programa pide 7 temperaturas tendramos 7 variables una para cada temperatura, que podramos llamar temperatura1, temperatura2temperatura7. Para los otros datos podramos usar una variable denominada nombre u otra denominada estatura. En definitiva las variables son las encargadas de almacenar los valores de los datos para que el usuario pueda manejarlos con un nombre determinado independientemente del valor que tomen. Las variables son de un tipo determinado en funcin del dato que almacenan. Los tipos ms elementales son entero, carcter, cadena, real, array, registro. En su momento explicaremos estos tipos para el lenguaje C. Existe otro tipo de objetos denominados Constantes cuyo cometido es asignar un valor fijo a un nombre determinado para utilizarlo en un programa. Variable estructurada Array Un array es un tipo de variable estructurada caracterizada por contener varios datos de un mismo tipo. Es similar al concepto de vector con componentes. Para entender su funcionamiento podemos poner el siguiente ejemplo. Supongamos que deseamos manejar un conjunto de temperaturas tomadas por un observatorio para poder calcular la media, mxima, mnima, etc -3-

Programacin en C

Si suponemos que son 100 temperaturas las tomadas, podramos definir 100 variables una para cada temperatura: temp1,temp2,..temp100 y ella almacenar cada valor. Ms cmodo resultara utilizar una ARRAY o VECTOR que llamaramos temperatura, el cual tendra 100 posiciones para almacenar 100 temperaturas. Las ventajas seran que para manejar las temperaturas se realiza con una estructura iterativa (bucle) para recorrer el vector o array. Grficamente Array T 23 12 5 23 . 31 . . . . . . .. . . . . . 21 T[99]

T[0] T[1] T[2]

Segn el esquema la temperatura T[0] que es la primera almacenada, sera 23C, la segunda T[1] sera 12 y as sucesivamente. Bsicamente es una estructura que almacena un conjunto de datos del mismo tipo. Ms adelante al explicar como se definen las variables en lenguaje C explicaremos como se define la variable tipo array. 3.- Introduccin al lenguaje C El lenguaje C es un lenguaje de programacin de gran implantacin en el mundo informtico. Se puede considerar de propsito general por lo que se pueden realizar mltiples aplicaciones con l. Un programa en C tiene una estructura bien definida con unas partes elementales. Volviendo al ejercicio de ej. realizado para sumar dos nmeros vamos a realizar una traduccin a lenguaje C que permitir conocer las partes bsicas de un programa en este lenguaje. PROGRAMA ESCRITO EN LENGUAJE NATURAL PROGRAMA SUMA_DOS_NUMEROS; Nombre del programa escrito en lenguaje natural. { Smbolo que indica el comienzo de instrucciones Dato1, dato2 y resultado son enteros ; PEDIR dato1 ; PEDIR dato2 ; resultado = dato1+dato2 ; MOSTRAR resultado ; } declaramos cuales son los valores que utilizaremos pedimos el primer numero que se denomina dato1 pedimos el primer numero que se denomina dato2 Asignamos al dato resultado la suma de dato1 y dato2 Mostramos el valor del dato resultado Smbolo que indica el fin de un conjunto de instrucciones

-4-

Programacin en C

En este programa realiza la suma de dos nmeros y muestra su resultado. Las instrucciones utilizadas en lenguaje natural vamos ahora a traducirlas a lenguaje C para obtener un programa que pueda ser compilado y ejecutado en un ordenador. A la derecha de los dos programas (lenguaje natural y C) se realizan comentarios sobre la funcin de cada instruccin. //PROGRAMA PARA SUMAR DOS NUMEROS (esto simplemente es un comentario).
#include <stdio.h> // Indica al compilador que se utilizan funciones de esta // librera. Estas funciones son printf, scanf (entrada y salida // de datos) // con esta orden se indica el comienzo del programa principal // Smbolo que indica el comienzo de instrucciones // Declaramos las variables que utilizaremos y su tipo (entero) // Muestra un mensaje en pantalla solicitando un nmero. //Captura el dato introducido por teclado y lo introduce en la variable dato1

main() { int Dato1, dato2 y resultado ; printf (introduce numero 1); scanf (%d,&dato1); printf (\nintroduce numero 2); scanf (%d,&dato2); resultado=dato1+dato2;

//Almacena en la variable resultado la suma de dato1 y dato2

printf(El valor de la suma es: %d, resultado); //muestra el resultado en pantalla } // smbolo para indicar el fin de programa o bloque o funcin

Vamos ahora a proceder a un anlisis particular del programa para comentar las funciones de cada instruccin dentro de un programa. Los programas en su cabecera incluyen un comentario explicativo . Posteriormente viene el rea de include, donde se le indica al compilador que en este programa ha de incluir las instrucciones contenidas en las libreras que se indican (en este caso solo se ha indicado la librera stdio.h que contiene funciones bsicas como printf y scanf para mostrar y leer informacin). Despus de estos apartados comienza propiamente el programa o cdigo diseado por el usuario. La instruccin main() seguida del smbolo { indica el comienzo de cualquier programa. El smbolo { en particular indica el comienzo de cualquier programa, funcin o bloque de instrucciones. El smbolo }en C se utiliza para la finalizacin de programas, funciones o bloques. Una vez comenzado el programa lo primero es declarar las variables y los tipos de datos que vamos a utilizar. La variable la decide el programador ha de declarar de que tipo de dato se trata. Primero se declara el tipo (entero en nuestro ej. por eso utilizamos la palabra int) seguida de las variables de ese tipo separadas por comas. La declaracin se finaliza con el smbolo ;. En general todas las instrucciones de C finalizan con ; para indicar el final de una y el principio de otra. La instruccin para mostrar un texto en pantalla es printf(texto a mostrar). A estas instrucciones se les aaden lo que se denominan secuencias de escape para realizar saltos de lnea, tabulaciones, sonidos, etc. Existe muchas secuencias de escape pero las ms utilizadas son: \n (salto de lnea), \a (emite un sonido por el altavoz del ordenador), \t (introduce un tabulador), \b (retroceso). Por ej la instruccin printf(\nintroduce nmero 2) introducira un enter y luego escribira el texto introduce numero 2. Si la funcin printf tiene que mostrar en pantalla el valor de una variable ha de -5-

Programacin en C

incluir el formato de salida de la misma lo que supone utilizar los cdigos de formato. Los cdigos ms utilizados para salida son: %d (enteros), %f(reales), %c (carcter ASCII). Existen otros muchos pero por ser esto una introduccin a la programacin solo mencionamos estos aunque sobre la marcha se irn introduciendo los que se necesiten. En el caso de la instruccin printf( el valor de la suma es: %d, resultado) lo que hace el programa es mostrar el texto y donde pone %d lo sustituye por el valor de la variable resultado. Para leer datos de teclado se utiliza la funcin scanf. Esta instruccin funciona pasndole el formato de la variable que queremos leer as como el nombre de la variable precedido del smbolo & que es lo que se denomina operador direccional. Existen dos operadores & y * pero en esta introduccin no se va a detallar su funcionalidad. Solo diremos que el primero, dado el nombre de variable permite trabajar con la direccin del dato y el segundo dada la direccin permite trabajar con el valor almacenado en la misma. En cualquier caso para no complicar el tema solo debemos saber que cuando se lea una variable por teclado con scanf, est deber estar precedida de &. De este modo en nuestro ej. la instruccin scanf(%d,&dato2) captura el valor tecleado y lo introduce en la variable dato2 como un entero que es el formato indicado con %d. Una vez ledas las variables, la instruccin resultado = dato1+dato2 es una expresin matemtica que asigna a la variable resultado el valor de la suma de las dos variables situadas a la derecha. Las expresiones no son ms que variables relacionadas con operadores aritmticos o lgicos. Los operadores ms conocidos son: + (suma), - (resta), * (producto), / (divisin), % (resto divisin entera), > (mayor que), < (menor que), == (igual que). A continuacin se muestra un recordatorio de los tipos de variables, formatos, y operadores descritos anteriormente. ALGUNOS TIPOS DE DATOS ELEMENTALES Enteros . Se declaran con la palabra int. Ejemplo: int resultado; Formato: %d Reales. Se declaran con la palabra float. Ejemplo: float superficie; Formato: %f Carcter. Se declaran con la palabra Char. Ejemplo: char letra; Formato: %c Booleanos. Se declaran con la palabra Bolean. Ejemplo: boolean encontrado; (las variables booleanas toman valores verdadero y falso). Array. Se declaran con el tipo que contienen y nombre con n de posiciones. Por ejemplo un array con 100 temperaturas enteras podra ser : int temperaturas [100].

ALGUNAS SECUENCIAS DE ESCAPE \n: salto de lnea (enter). \t: tabulador. \b: retroceso. \a: emite un sonido el altavoz

ALGUNAS SECUENCIAS DE ESCAPE +, , *, /, %: Suma, resta producto divisin, resto divisin entera . ++ , --: incremento, decremento de una variable en una unidad. >, <, ==, >=, <=, !=: mayor, menor, igual, mayor o igual, menor o igual, distinto.

-6-

Programacin en C

Una vez comentado el programa vamos a recordar conceptos generales sobre elementos que se utilizan en el mismo. Instruccin: Orden dada en un determinado lenguaje. Por ej.: scanf(hola) Bloque de instrucciones: Un conjunto consecutivo de instrucciones con dos o ms pudiendo ser de cualquier tipo. Los bloques se suelen colocar enter los smbolos { y }Por ej: { printf(introduce dato): scanf(%d, dato); } // bloque con dos instrucciones

Variable: Es una posicin de memoria que contiene un dato. El programador le asigna un nombre para poder referenciarla de una forma cmoda. Por ej. int edad; //declaracin de la variable edad de tipo entero. Programa: Conjunto o bloque de instrucciones escritas en un lenguaje de programacin para realizar una funcin determinada. Por ej.

//PROGRAMA PARA SUMAR DOS NUMEROS


#include <stdio.h> // Indica al compilador que se utilizan funciones de esta // librera. Estas funciones son printf, scanf (entrada y salida // de datos) // con esta orden se indica el comienzo del programa principal // Smbolo que indica el comienzo de instrucciones // Declaramos las variables que utilizaremos y su tipo (entero) // Muestra un mensaje en pantalla solicitando un nmero. //Captura el dato introducido por teclado y lo introduce en la variable dato1

main() { int Dato1, dato2 y resultado ; printf (introduce numero 1); scanf (%d,&dato1); printf (\nintroduce numero 2); scanf (%d,&dato2); resultado=dato1+dato2;

//Almacena en la variable resultado la suma de dato1 y dato2 //muestra el resultado en pantalla

printf(El valor de la suma es: %d, resultado); }

// smbolo para indicar el fin de programa, bloque o funcin

Los programas contienen bloques de bloques de instrucciones que son las que interpreta el compilador as como partes que son descriptivas para que la persona que lea el cdigo fuente sepa que hace cada instruccin. Aunque no son obligatorias si son aconsejables. Los comentarios en una lnea se pueden realizar precediendo el texto del comentario por los smbolos //. Si el comentario ocupa dos lneas hay que colocar los smbolos en cada lnea como en el ejemplo superior. Tambin se pueden utilizar los smbolos /* y */ para varias lneas de comentario.

-7-

Programacin en C

3.- Instrucciones en lenguaje C. Tipos. Como hemos visto para realizar un programa necesitamos dar al ordenador instrucciones precisas en un lenguaje de programacin para que el mismo las pueda ejecutar de forma automtica. Hasta ahora hemos visto instrucciones sencillas para mostrar texto en pantalla (printf), leer un dato desde el teclado (scanf) o realizar operaciones de asignacin (resultado=dato1+dato2). Es el momento de hacerse la pregunta : Qu debo hacer cuando deseo realizar algo un nmero determinado de veces?, Qu debo hacer cuando si ocurre algo, tengo que hacer una tarea y si no ocurre, debo hacer otra?. Esto nos hace pensar que tienen que haber mtodos o instrucciones que permitan al programador realizar un bloque de instrucciones 50 veces por ej., sin la necesidad de escribir ese bloque 50 veces, una detrs de otra. Vamos a describir los tipos de instrucciones bsicas en C as como las que nosotros utilizaremos en nuestra introduccin al lenguaje C. Los tipos de instrucciones bsicas son: SECUENCIALES Son las que hemos visto hasta el momento y realizan una funcin determinada dentro del lenguaje. Dentro de ests podemos englobar tambin a las instrucciones que son expresiones para dar valor a las variables como por ej : resultado=dato1+dato2. Nosotros utilizaremos las siguientes en nuestros programas: printf(texto): Su funcin es mostrar texto en pantalla. printf(secuencia de formato, variable): Su funcin ser mostrar el valor de una variable. scanf(secuencia de formato,&variable): Su funcin es leer de teclado un valor y asignarlo a la variable. variable=expresin: Asigna el valor de la expresin a la variable. Por ej: resultado=dato1+dato2. clrscr(): Limpia el contenido de la pantalla. random(n): Genera un nmero aleatorio entre 0 y n-1. ej: random(3) genera un n aleatorio entre 0 y2 randomize(): Cambia la semilla de nmeros aleatorios. Si no se utiliza las secuencias generadas son aleatorias pero producen siempre los mismos nmeros ya que la base de generacin sera la misma. getch(): Captura una tecla pulsada en el teclado y se la asigna a una variable. Se puede utilizar para los mens. Ej. opcion=getch(). fopen: Abrir ficheros de texto para escritura fprintf : permite escribir en un archivo de texto fscanf: Permite leer de un archivo de texto

Existen muchas otras funciones para trabajar con cadenas, utilizar ficheros pero con estas comenzaremos a trabajar en programas sencillos e iremos introduciendo nuevas a medida que vayan siendo necesarias para nuestros programas.

-8-

Programacin en C

CONDICIONALES CON CAMBIO EN LINEA DE EJECUCIN Estas instrucciones permiten ejecutar un bloque de instrucciones u otro en funcin de una condicin. En los ejemplos que siguen se muestra un ejemplo de cmo funcionan. Sentencia if if (expresin) sentencia1 else sentencia2 La sentencia1 se ejecuta si expresin tiene un valor verdadero (1) y si tiene un valor falso (0) se ejecuta la sentencia2. if (estado == 'S') tasa = 0.20 * pago; else tasa = 0.14 * pago; Sentencia1 o Sentencia2 pueden ser una nica sentencia o un bloque de ellas encerrado entre dos llaves { y } La sentencia if puede ser anidada es decir dentro del apartado if o el apartado else puede colocarse otra sentencia if para evaluar otra condicin.

Sentencia switch switch (expresin) { case expresin1: sentencia; sentencia; ... case expresin2: sentencia; sentencia; ... case expresin3: sentencia; sentencia; ... default: sentencia; sentencia; ... } . Se evala la expresin y si su valor coincide con el valor de alguna expresin indicada en los case se ejecutan todas las acciones asociadas que le siguen. Las expresiones deben ser de tipo entero o carcter. Si el valor de expresin no se encuentra en la lista case se ejecuta/n la/s sentencia/s correspondiente/s a la opcin default, si sta no existe se contina con la sentencia situada a continuacin de switch. Una vez se elija una opcin se ejecutan las sentencias asociadas y se continan ejecutando todas las sentencia a partir de sta (incluso las correspondientes a otras opciones) hasta que aparezca una sentencia break. switch (edad) { case 10: printf(eres un nio); break; case 30: printf(eres un adulto);break; case 80: printf(eres un anciano);break; } -9-

Programacin en C

Permite en muchos casos sustituir los if anidados. La clusula default: permite dentro de la instruccin definir que instrucciones hay que realizar en caso de que el valor de edad no sea los indicados en el case. ITERATIVAS O REPETITIVAS (bucles) - Instruccin for Esta instruccin permite repetir un n de veces determinado una operacin o instruccin. Se utiliza solo cuando se sabe con certeza el n de veces a realizar una instruccin o bloque de ellas. for (expresin1; expresin2; expresin3) Es la sentencia de control ms potente y la ms usada. Consta de tres expresiones: la primera es la inicializacin del bucle, la segunda indica la condicin en la que se debe continuar el bucle y la tercera es la que se encarga de incrementar los ndices del bucle. Expresin1 se ejecuta una sola vez al principio del bucle. La sentencia se ejecuta mientras la expresin2 sea verdadera. Esta expresin es evaluada antes que la sentencia por lo que es posible que el bucle no se ejecute ni siquiera una vez. La expresin3 se ejecuta despus de la sentencia. Las expresiones 1 y 3 pueden ser compuestas, expresiones simples separadas por comas. La instruccin for equivale directamente a lo siguiente. int i,suma = 0; for (i = 0; i < 100; i++) { suma= suma+i; printf(%d\n, suma) } Estas lneas de cdigo permiten calcular la suma de los 100 primeros nmeros e ir mostrando el resultado de cada una de las 100 primeras sumas. Al final muestra el resultado total. Hay que observar que las instrucciones que realiza repetitivamente el for son las comprendidas entre llaves. Si estas no se colocan solo realizara la suma y luego mostrara el total. Una de las aplicaciones tpicas de estas estructuras es el recorrido de un vector o array para mostrar todos los valores almacenados en un array o para introducirlos. Por ej si queremos introducir datos en un vector de temperaturas con 100 posiciones podemos introducir el siguiente cdigo: For (i=0; i<=99;i++) scanf (%d,temperatura[i]); - Sentencia while while (expresin) sentencia; Se repite la sentencia mientras el valor de expresin sea cierto (no 0). La condicin se evala antes de ejecutar la sentencia.

- 10 -

Programacin en C

while (i < 100) { suma=suma+i; printf(%d\n, suma); }

while (i < 100) suma=suma+i; printf(%d, suma);

-a-

-b-

Este cdigo realiza las mismas operaciones que el anterior pero con la instruccin while . El modelo a- realiza la suma y muestra en cada paso el resultado acumulado; el modelo b- realiza la suma pero solo muestra el total al final, al no estar la instruccin printf dentro del mbito del bucle while. La diferencia radica en el hecho de evaluar una condicin. Mientras que el for no comprueba ninguna condicin y lo hace para el n de veces que se indica, en el caso del while se puede establecer una condicin que determine el n de veces que se repite una instruccin o bloque, pudiendo ser para cada ejecucin un nmero de veces diferente. -Aclaracin sobre escritura de programas y condiciones lgicas Los programas que se escriben en C son sensibles a la escritura en maysculas y minsculas es decir no es lo mismo la variable Temperatura que temperatura. Las instrucciones tambin sufren esta sensibilidad por lo que las mismas se escribirn en minscula. Las variables las puede definir el programador pero siempre deber utilizarlas tal y como las haya declarado. Por otro lado hemos utilizado durante este documento un concepto denominado condicin. Una condicin no es ms que una expresin o afirmacin de la que se puede decir si es verdadera o falsa. Por ej: (edad > 20) edad mayor que 20 edad mayor que 20 y menor que 30 (entre 20 y 30)

(edad >20 && <30) (edad !=20) (edad >= 20)

edad distinta de 20 edad mayor o igual que 20 i igual a 20 o veces mayor que 30

(i=20 || veces>30)

Todas ellas son expresiones lgicas (condiciones) que suelen utilizarse en estructuras del tipo if o while. Los smbolos que se muestran a continuacin permiten unir ms de una expresin lgica. &&: conjuncin lgica (y). ||: disyuncin lgica (o) !: Negacin lgica

- 11 -

Potrebbero piacerti anche