PDF de programación - Breve introducción al lenguaje C

Imágen de pdf Breve introducción al lenguaje C

Breve introducción al lenguaje Cgráfica de visualizaciones

Actualizado el 20 de Mayo del 2018 (Publicado el 10 de Mayo del 2017)
667 visualizaciones desde el 10 de Mayo del 2017
54,5 KB
17 paginas
Creado hace 25a (03/12/1998)
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

BREVE INTRODUCCIÓN AL LENGUAJE C

UNIVERSIDAD DE MURCIA

1998

ISO. Breve introducción al lenguaje C

EL LENGUAJE DE PROGRAMACIÓN C

ALGUNAS CARACTERÍSTICAS

Es un lenguaje para la programación estructurada.
Es un lenguaje tipificado aunque no tanto como puede ser Pascal.
Un programa en C es una colección de funciones, que pueden devolver un valor o no
(= procedimiento), y que se encuentran distribuidas en varios ficheros o módulos.
Entre todas las funciones, debe existir una llamada “main” que constituye la función
principal.

Permite escribir operaciones relativamente complejas de forma sencilla y concisa
(aunque a veces esto puede ser un inconveniente pues hay programas en C que son
excesivamente crípticos).

Contiene muy pocas palabras reservadas. No contiene órdenes para trabajar con
objetos compuestos (cadenas, arrays o arreglos, registros,...). Tampoco tiene
instrucciones propias para la asignación dinámica de memoria ni instrucciones de
entrada/salida. Todas estas operaciones de alto nivel pueden ser realizadas por
funciones llamadas explícitamente.

Distingue entre mayúsculas y minúsculas.

TIPOS, OPERADORES Y EXPRESIONES

Al declarar una variable debemos especificar su tipo y, opcionalmente, su valor

inicial.

Tipos base del lenguajes: int, float, double y char. Variaciones aplicables a los tipos
base: short, long, unsigned y register. Por ejemplo, short int se puede utilizar para
declarar variables enteras de 2 bytes, int para las de 4 bytes y long int para declarar
variables enteras de 8 bytes (cuidado, esto depende del compilador de C que estemos
utilizando).

Tipos de contantes: int (-345), long (456L), float y double (-1.23E-1), entero
hexadecimal (0x4F6 o 0x4F6L si es además long), entero octal (0457 o 0457L si
además es long), carácter (‘a’), caracteres no imprimibles (\t, \n, \b, \0 (nulo), \\, \’,
\014...)

Cadenas: “hola mundo”. Técnicamente es una array de caracteres cuyo último
elemento es un carácter nulo (\0). Atención, ‘x’ <> “x” ya que “x”” {‘x’,’\0’} por ser
una cadena.

Operadores aritméticos: +, -, *, / y % (no para float o double).
Operadores relacionales y lógicos: >, >=, <, <=, ==, !=, ! (negación), && (AND) y ||

(OR).

Cuando en una expresión aparecen varios tipos mezclados, se producen las siguientes

conversiones automáticas de tipos:

1. char y short se convierten en int, y float en double.
2. Si algún operando es de tipo double, el otro se convierte en double y el

resultado es de tipo double.

3. Si no se aplica la regla anterior, y si algún operando es de tipo long, el otro se

convierte en long y el resultado es long.

1/16

ISO. Breve introducción al lenguaje C

4. Si no se aplica la regla anterior, y si algún operando es de tipo unsigned, el

otro se convierte en unsigned y el resultado es unsigned.

5. Si no se puede aplicar ninguna de las reglas anteriores, los operandos deben

ser de tipo int y el resultado será int.


Conversiones en asignaciones: el valor de la parte derecha se convierte al tipo de la

izquierda, que es el tipo del resultado.

Conversión explícita (casting): sqrt ((double) n). Si n es de tipo int, el resultado de la
expresión (double) n es de tipo double, que es el tipo del parámetro que espera la
función sqrt.

Operadores de incremento y decremento (sólo para enteros): x=n++; x=++n; x=n--;

x=--n;

Operadores para manejo de bits (no para float o double): & (y), | (o), ^(o exclusivo),
<< (rotación o desplazamiento a la derecha), >> (rotación o desplazamiento a la
izquierda) y ˜ (complemento a 1: cambiar unos por ceros y viceversa).

Operadores y expresiones de asignación:

e1 op= e2

e1 = (e1) op (e2), donde op puede ser +, -, *, /, %, <<, >>, &, | y

^.

Ejemplos: i += 2

i = i + 2; x * = y + 1

x = x * (y + 1);

Operador ternario: e1 ? e2: e3. Esta expresión devuelve el resultado de e2 si el valor

de e1 es distinto de 0; en caso contrario, devuelve el resultado de e3.

Todos estos operadores tienen una precedencia y un orden de evaluación. Por eso, en
las expresiones es recomendable utilizar cuantos paréntesis sean necesarios para
expresar sin ambigüedad lo que queremos hacer.

Ejemplos de definición de variables (las definiciones suelen aparecer al principio del

cuerpo de la función o fuera de todas las funciones):

int un_entero, otro_entero = -540;
float un_float=-5.48E-2;
double un_double=-5.48E-2;
long int un_long=456L;
short int un_short=56;
unsigned long int un_unsigned_long=0X4F6L; /*En hexadecimal*/
unsigned short int un_unsigned_short=0117; /*En octal*/
char un_caracter=‘2’, otro_caracter=‘\t’
unsigned char un_byte;

Ejemplos de expresiones aritméticas:

un_entero = un_caracter - ‘0’;
otro_entero = 7/2 + (5%3 - 5)*2;
un_entero = 7/2;
un_float = 7.0/2.0;
un_double=cuadrado((double) un_entero);

2/16

ISO. Breve introducción al lenguaje C

Ejemplos de operadores de incremento y decremento:

un_entero = 5;
otro_entero = ++un_entero; /*otro_entero = 6 y un_entero = 6 */
otro_entero = un_entero++; /*otro_entero = 6 y un_entero = 7 */

Ejemplos de operaciones a nivel de bits:

un_byte = 5;
un_byte = un_byte << 1;
un_byte = un_byte >> 2;
un_byte = un_byte | 1;
un_byte = un_byte & (˜2);
un_byte = un_byte ^ 2;

/*un_byte=10*/
/*un_byte=2*/
/*un_byte=3*/
/*un_byte=1*/
/*un_byte=3*/

Ejemplos de asignaciones y operadores:

un_byte^= 2;
un_entero*=3;
un_entero*=otro_entero+2; /*equivale a

/*equivale a un_byte = un_byte ^ 2;*/
/*equivale a un_entero = un_entero * 3;*/

un_entero = un_entero * (otro_entero + 2);*/

Ejemplo de operador ternario:

otro_entero = (un_entero > 10)?10:un_entero;

CONTROL DE FLUJO

Proposiciones y bloques: las proposiciones (sentencias) en C terminan en “;”. Con las
llaves { y } se agrupan declaraciones y sentencias en una proposición compuesta o
bloque. Una expresión se evalúa como “cierta” si su resultado es distinto de 0 y como
“falsa” si su valor es 0.


If-else:

if (expresión) ‹

¡ Observar paréntesis !

else

proposición_1

proposición_2

Else-if

if (expresión)

proposición_1

else if (expresión)

proposición_2

else if (expresión)

3/16

ISO. Breve introducción al lenguaje C

.........

else

proposición_3

proposición_n

switch (expresión) {
case “etiqueta”:

[proposición]

case “etiqueta”:

[proposición]

default:

[proposición]

}

Cada etiqueta debe ser un entero, constante de carácter o una expresión
constante. default es opcional. Cuidado, cuando expresión coincide con una
etiqueta, se ejecutan todas las instrucciones que hay a partir de ese caso y no
salimos del switch hasta que encontramos una orden break, un return o llegamos
al final del switch.

while (expresión)
proposición

for (expr1; expr2; expr3)

proposición

Esta expresión equivale conceptualmente a

expr1;
while (expr2) {

proposición
expr3;
}

Tanto expr1, expr2 como expr3 pueden contener varias sentencias separadas por
“,”.

do

proposición

while (expresión);

break y continue en bucles: break hace abandonar el bucle mientras que continue
fuerza la siguiente iteración del bucle (saltando a la parte de condición en while y
do_while y a la etapa de actualización (expr3) en el for).

4/16

Ejemplo de if-else:

int factorial (int n) {

if (n < 2)

return 1;

else

return n * factorial(n-1);

}

Ejemplo de while:

int factorial (int n) {

int resultado = 1;
while (n > 1)

resultado = (n--)*resultado;

return resultado;

}

Ejemplo de for:

int factorial (int n) {
int resultado;
for(resultado=1; n > 1; n--)

resultado = n*resultado;

return resultado;

}

Ejemplo de switch:

int es_vocal(char c) {
int resultado;
switch(c) {

case ‘a’:
case ‘e’:
case ‘i’:
case ‘o’:
case ‘u’:

resultado = 1;
break;

default:

resultado = 0;

}
resturn resultado;

}

ISO. Breve introducción al lenguaje C

5/16

ISO. Breve introducción al lenguaje C

FUNCIONES Y MÓDULOS

Todas las funciones devuelve por defecto un valor entero. Si devuelven otro tipo de
valor o no devuelven nada, debemos especificarlo en su definición. Por ejemplo, una
función que devuelve un double se declararía como


double funcion(declaración de argumentos)



{
cuerpo de la función que debe incluir, al menos, un return
}

Para poder utilizar una función dentro de otra, debemos conocer su prototipo. Por
ello, los prototipos de las funciones se suelen escribir al comienzo de un módulo,
para que sean conocidos por todas las funciones de ese módulo. Un prototipo
especifica el número y tipo de los argumentos de una función y el valor devuelto por
dicha función. Ejemplos:
int factorial(int);
void imprime(char *);



Entre todas las funciones que componen un programa (repartidas en varios módulos),
debe existir una (y sólo una) llamada main. Esta es la función principal en la que
comienza la ejecución del programa.

Argumentos de funciones: siempre se realiza paso por valor, nunca por referencia.

Para hacer algo similar al paso por referencia

punteros.

Módulo: es un fichero de texto que contiene la implementación de funciones.
Ámbito de validez de una variable:


* Variables definidas dentro de una función
* Variables definidas fuera de las funciones (variables globales)

Se conocen
en to
  • Links de descarga
http://lwp-l.com/pdf3473

Comentarios de: Breve introducción al lenguaje C (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad