Manejo del Lenguaje C

Page 1


3. Manejo de un Lenguaje de Programación 3. Introducción En este curso aprenderás a realizar programas en lenguaje C. Para poder implementar programas en dicho lenguaje, debemos contar con un editor de texto para generar el código fuente; dicho código se debe guardar en un archivo con extensión “.c”. También es indispensable contar con un compilador de lenguaje C, que en este caso, será: CodeBlocks. Este compilador cuenta con su propio editor de código, el cual es sumamente fácil de usar. Puedes bajar de la red el compilador CodeBlocks, ya que es de libre distribución. También puedes obtener algunos tutoriales para que aprendas a utilizarlo correctamente.

3.1 Tipos de Datos El lenguaje C, trabaja con diferentes tipos de datos. Sabemos que un dato, es cualquier información que tendrá un significado en el programa. Un “tipo de dato” es, la información perteneciente a un conjunto específico de valores, con los que se pueden realizar ciertas operaciones. Los tipos de datos básicos en C son los siguientes: •

Carácter (char)

Entero (int) (long)

Flotante (float) (double)

Nulo (void)

Enseguida se muestra el tamaño en bits y el rango de valores que acepta cada tipo de dato mencionado anteriormente:

Tipo de Dato char int long int float double

Tamaño en bits 8 16 32 32 64

Rango -127 a 127 -32767 a 32767 -2147483647 a 2147483647 1.2 x 10 ^-38 a 3.4 x 10^38 2.2 x 10 ^-308 a 1.8 x 10^308


3.1.1 Enteros El tipo de datos entero se utiliza normalmente para operaciones que se quieren efectuar con números enteros y donde se utilicen operaciones que den como resultado número enteros. Ejemplos de números enteros serían:  20  678  90000 Un dato de tipo entero se declara en el programa de la siguiente manera: int numero_entero; Como podemos observar en el ejemplo anterior, se especifica el tipo de dato y después el nombre de la variable; que en este caso es numero_entero; terminando la instrucción con un punto y coma (;). También se puede inicializar dicha variable con algún valor, si se requiere inicializar la variable con el número 0; se declara de la siguiente manera: Int numero_entero = 0; Con lo anterior la variable ya tendrá asignado un valor para el inicio del programa.

3.1.2 Flotantes Las variables de tipo flotante son utilizadas para almacenar números que contienen punto decimal y para las operaciones que generan resultados de tipo decimal. Ejemplos de números flotantes serían los siguientes:  1.2  .5672  100.45 La forma de declarar un dato de tipo flotante es la siguiente: float numero_flotante; float numero_flotante = 0;


La segunda sentencia es una declaración e inicialización de la variable numero_flotante; ya que al mismo tiempo que se está declarando el tipo, se le está asignando el valor 0;

3.1.3 De carácter Los datos de tipo carácter, son utilizados para almacenar caracteres, por ejemplo las letras del alfabeto, símbolos y números (con los cuales no se puede hacer operaciones). Son muy útiles para almacenar nombres, claves y números de control entre otros. Ejemplos de caracteres son los siguientes:  B  6  &  % Una variable de tipo carácter se declara de la siguiente manera: char letra; Para inicializarla con un carácter: char letra = ‘a’;

3.2 Declaración de variables En los párrafos anteriores ya hemos mencionado el término: declaración de variables; el cual se refiere a informarle al compilador que reserve un espacio de memoria RAM para dicha variable. Para hacer referencia a una variable necesitamos primero asignarle un identificador o nombre. Por lo tanto, cuando se declara una variable se reserva un espacio en memoria, al cual se tendrá acceso a través del identificador de la variable; para entender mejor el concepto se muestra lo siguiente:

int edad; edad


Si aparte de declarar la variable edad, también la inicializamos con un valor; se representará de la siguiente manera: int edad = 18; edad

18

3.2.1 Inicialización de variables Como vimos anteriormente la inicialización es asignarle un valor de inicio a una variable. Es importante inicializar algunas variables; como por ejemplo las variables que fungen como contadores y acumuladores. Porque siempre operan con su último valor y si no se le asignó un valor de inicio, se operará con el último valor que haya quedado guardado en el espacio de memoria, que ahora corresponde a esa variable; provocando que nos entregue un resultado diferente al esperado. Un ejemplo de inicialización de una variable es el siguiente: letra_alfabeto = ‘A’; calificacion = 10; Donde se le está asignando la letra: ‘A’ a la variable letra_alfabeto y el valor de 10 a la variable calificacion. Claro que para el caso de una variable, ese valor inicial puede cambiar en el transcurso de la ejecución del programa.

3.3 Declaración de constantes Como su nombre lo dice, una constante permanece igual durante la ejecución del programa. Es decir, el valor que tiene la constante al inicio del programa, debe ser el mismo al final de la ejecución del mismo. Una constante se puede declarar de dos formas:


#define PI 3.1416 const float PI=3.1416;

La directiva #define le dice al compilador que sustituya en el código fuente del programa los caracteres que se encuentran a continuación del identificador de la constante. En el ejemplo anterior se le está indicando el compilador que sustituya todas las ocurrencias de PI por los caracteres 3.1416 antes de la compilación del programa. Entonces en el momento de la compilación el identificador PI ya no estará en el código fuente del programa; en su lugar estará el valor: 3.1416, para operar con él. La otra forma de declarar una constante es antecediéndole la palabra: const; con lo cual le decimos al compilador que el valor de esa constante es inalterable. Es decir que no puede ser modificado, durante la ejecución del programa. La diferencia entre las dos formas de declarar una constante es, que con const el valor de dicha constante es almacenado en la memoria RAM, igual que se hace con las variables. Cuando la declaramos con el #define, no se ocupa ningún espacio en memoria RAM, ya que sólo se sustituye el valor de la constante en el código fuente, antes de la compilación del programa.

3.4 Tipos de Expresiones Una expresión es una combinación de operadores y operandos. Un operador actúa entre dos operandos y genera un resultado. Un ejemplo de una expresión es la siguiente: 2+3=5 donde el operador es: + los operandos son: 2, 3 el resultado es: 5 A continuación otro ejemplo de expresión:

7 > 5 = verdadero donde el operador es: >


los operandos son: 7, 5 el resultado es: verdadero

Existen tres tipos de expresiones en el lenguaje C, que son las siguientes:  Expresiones Aritméticas  Expresiones Lógicas  Expresiones Relacionales Cada una de las cuales se explicará en el tema: 3.5 Operadores Lógicos, Relacionales y Aritméticos.

3.4.1 Instrucciones de Expresión En lenguaje C un programa está compuesto por varias instrucciones; las cuales se separan una de otra, mediante un punto y coma “ ; ”. Por medio de las instrucciones es como le decimos a la computadora; que acciones debe realizar. Las instrucciones de expresión también conocidas como instrucciones simples, representan las acciones más elementales que se pueden ejecutar en un programa. La acción que ejecuta dicha instrucción es la evaluación de la expresión. Un ejemplo de una instrucción de expresión es la siguiente: suma = a + b; La instrucción de expresión anterior, es de tipo asignación. Ya que, el resultado de la evaluación de las variables de la derecha (a y b) es asignado a la variable de la izquierda (suma). Otro ejemplo sería el siguiente: a ++; El ejemplo anterior, indica que se debe aumentar en 1 el valor de la variable a. Hay diferentes tipos de expresiones, las cuales se verán en el capítulo 3.5 de este documento.


3.4.2 Instrucciones Compuestas Las instrucciones compuestas son un conjunto de instrucciones que se encuentran delimitadas por llaves: { } lo cual le indica al compilador que ejecute ese bloque de varias instrucciones, como si fuera una única instrucción.

Un ejemplo de una instrucción compuesta es el siguiente: { printf( “proporciona los números a restar”); scanf( “%d %d”, &a, &b); resta = a – b; printf( “ El resultado de la resta es: %d ”, resta); } Si en el código fuente del programa se implementa la instrucción compuesta anterior; el compilador lo ejecutará como si fuera una instrucción. Lo anterior sirve para cuando ocupamos sentencias o instrucciones que necesitan ejecutar varias instrucciones; por ejemplo para delimitar todas las instrucciones que se deben ejecutar dentro de un ciclo; es decir las instrucciones que se necesita que se repitan n veces. El tema de ciclos se verá más profundamente en la unidad 4.

3.5 Operadores Lógicos, Relacionales y Aritméticos En el lenguaje C existen varios operadores para realizar operaciones con los datos. Los operadores son los siguientes: •

Operadores Aritméticos

Operadores Relacionales

Operadores Lógicos

Operadores de Asignación

Operadores de incremento y decremento

Los Operadores Aritméticos son los siguientes:  Suma (+)


 Resta ( - )  Multiplicación ( * )  División ( / )  Módulo ( %) Enseguida se muestra un ejemplo de una Expresión Aritmética: 3%2=1

Los Operadores Relacionales son los siguientes:  Mayor que ( > )  Menor que ( < )  Igual que ( == )  Diferente que ( !=)  Mayor o igual que ( >= )  Menor o igual que ( <= )

Enseguida se muestra un ejemplo de una Expresión Relacional: 7>3 =0

(falso)

10 < 12 = 1

(verdadero)

En el ejemplo anterior podemos ver que las expresiones relacionales dan como resultado un valor booleano (falso o verdadero). Si el resultado es un 0 quiere decir que el resultado de la evaluación fue falso y si da un 1, el resultado de la evaluación fue verdadero. Los Operadores Lógicos son:  &&

AND (Y)

 ||

OR

 !

NOT (Negación)

(O)

El operador && devuelve verdadero si ambos operandos son verdaderos. El operador & devuelve el mismo resultado; sólo que evalúa ambos operandos;


aunque en algunos casos no sea necesario; ya que se podría saber el resultado evaluando sólo el primer operando. El operador || devuelve verdadero si alguno de los operandos es verdadero. El operador | devuelve el mismo resultado pero opera distinto; porque al igual que el caso anterior, evalúa los dos operandos. El operador ! Niega el operando. Un ejemplo de los operadores anteriores es el siguiente: (10 < 20) && (20 < 30) = verdadero

V

V

V Los Operadores de Incremento y Decremento son los siguientes:  ++

incremento en uno

 --

decremento en uno

El operador ++ normalmente es usado en un contador; en el cual se requiere que se vaya incrementando en uno, el valor de la variable. Por ejemplo si se tiene la siguiente variable: contador = 0 y se requiere aumentarla en uno; se opera lo siguiente: contador ++; Entonces la variable contador tendrá ahora el valor: contador = 1 Si a esa variable ahora le queremos restar uno, lo haremos de la siguiente manera: contador -- ; Ahora la variable contador, vuelve a tener su valor inicial: contador = 0. Los Operadores de Asignación son los operadores que asignan o proporcionan un valor a una variable. Por ejemplo cuando le asignamos un valor inicial a la variable a: a = 10; El valor que se encuentre a la derecha, es el valor que será asignado a la variable que este en el lado izquierdo.


Los operadores son los siguientes:  a=b  a+=b equivale a a= a+b  a –=b equivale a a= a–b  a *=b equivale a a= a*b  a /=b equivale a a= a/b  a%=b equivale a a= a%b Si la variable a tiene un valor de 2 (a=2) y la variable b tiene un valor de 4 (b=4); la siguiente asignación ¿qué nos dará como resultado? a=b; Ahora la variable a tendrá valor de 4 (a=4) igual que la variable b. Ahora veamos el siguiente ejemplo: a/=b; Lo anterior se traduce en: a= a/b. Como a y b ahora tienen el mismo valor. La división entre ellos será de 1. Entonces la variable a tiene valor de 1. El compilador de C, atiende las operaciones con base en la prioridad de los operadores. Esa prioridad le dice al compilador que operaciones se deben ejecutar primeramente y cuales después. La prioridad de los signos para el compilador son los siguientes: Prioridad 1 2 3 4 5 6 7

Operador ( ) * / % +! <, <=, >, >= == , != &, &&, |, ||

Comentario Se calculan primero y de izquierda a derecha Si existen varios, de izquierda a derecha Si existen varios, de izquierda a derecha Se evalúa de derecha a izquierda Si existen varios, de izquierda a derecha Si existen varios, de izquierda a derecha Si existen varios, de izquierda a derecha

Enseguida se muestra un ejemplo de cómo realizaría el compilador de C la operación de la siguiente expresión: ! (10==13) && (13 >12) F

V F


V Como podemos apreciar en el ejemplo anterior, primero se evalúa lo que está dentro de los paréntesis ( ); después se evalúan esos resultados obtenidos con el operador && y lo que da de resultado se evalúa con el operador ! negación.

3.6 Funciones de Entrada y Salida Las funciones de más utilizadas en el lenguaje C para la entrada y salida de datos son las siguientes: scanf( ) Lee los datos de la entrada estándar (teclado) y los interpreta de acuerdo con el formato indicado; después los almacena en las variables indicadas. Necesita de la librería stdio.h. Dicha librería se debe invocar al comienzo del programa. La sintaxis de la función es la siguiente:

scanf( “%d” , &variable); Especificación del Puntero a la variable Formato oo

Ejemplo: scanf( “%d” , &edad); La función scanf del ejemplo indica, que debe leer un dato del teclado, interpretarlo como un dato de tipo entero (%d) y almacenarlo en la variable edad. Como vemos la especificación del formato %d quiere decir que es un dato de tipo entero en el sistema decimal. Los formatos más utilizados en lenguaje C son: •

d

enteros en base 10 (int)

f

flotantes (float)

c

carácter (char)

ld

entero largo (long)

lf

flotante largo (double)


Si queremos leer del teclado, un dato de tipo carácter se implementa de la siguiente manera: scanf( “%c” , &letra);

printf( ) Escribe con el formato especificado, una serie de caracteres y/o un valor en la salida estándar (monitor). La sintaxis de dicha función es la siguiente: printf(“ texto a desplegar en la pantalla”); Con la instrucción anterior se desplegará en pantalla el texto que esté dentro de las comillas. printf(“El valor de la variable a es: %f ”, a); En el ejemplo anterior se muestra como desplegar el valor de una variable en la pantalla, acompañada de un texto. El texto entre comillas se mostrará tal cual a excepción del %f; ya que ahí debe ir el valor de la variable a desplegar. Lo que se encuentra después de la coma, le dice al compilador que es la variable de la cual se debe desplegar su valor en la pantalla.

3.7 Funciones predeterminadas del lenguaje Estas funciones son las que el lenguaje C ya tiene por default para facilitar el trabajo del programador. Son funciones que ya se encuentran implementadas dentro de los archivos del lenguaje y que sólo bastará con incluir al principio del programa las librerías que las contienen y se podrán invocar en nuestro programa dichas funciones. La forma de incluir las librerías es la siguiente: # include <stdio.h> Con lo anterior el compilador sabe que debe incluir esa librería para poder ejecutar las funciones de scanf( ) y printf( ) entre otras. Si no se especifica esa librería en el programa que estemos implementando, aparecerá un error en la compilación. Otras funciones muy ocupadas en el lenguaje C son: •

cos(x);

devuelve el coseno de x

sin(x);

devuelve el seno de x


tan(x);

devuelve la tangente de x

exp(x);

devuelve el exponencial de x

log(x);

devuelve el logaritmo de x

pow(x,y); devuelve la x elevada a la y potencia

sqrt(x);

devuelve la raíz cuadrada de x

Para implementar en nuestro programa las funciones anteriores, se debe incluir la librería: math.h, de la siguiente manera: # inlcude < math.h > Un ejemplo de una función que eleva un número n a la potencia p: r = pow(n,p); El resultado que devuelve la función pow será asignado a la variable r. Si se tienen los siguientes valores para las variables: n:2 p:3 El valor que devuelva la función será: 8 y será guardado en la variable r.

BIBLIOGRAFIA Curso de Programación con C, Francisco Javier Ceballos, Macrobit. Como programar en C/C++, H.M Deitel, Prentice Hall


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.