SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
PROGRAMACIÓN EN C
TIPOS DE DATOS EN C
Nombre Aplicación Bits Rango
unsigned char
Nº pequeños positivos, caracteres y bucles
cortos
8 0 a 255
char Nº pequeños, caracteres y bucles cortos 8 −128 a 127
signed char Nº pequeños, caracteres y bucles cortos 8 −128 a 127
short int Amplía el rango de los anteriores 8 −128 a 127
unsigned int Nº positivos grandes y bucles largos 16 0 a 65535
int Nº grandes y bucles largos 32 −32768 a 32767
signed int Nº grandes y bucles largos 32 −32768 a 32767
unsigned long Nº positivos grandes y bucles largos 32 0 a 4294967295
long Nº grandes y bucles largos 32 −21474836 a 2147483647
float Notación científica (7 dígitos precisión) 32 3.4e−38 a 3.4e+38
double Notación científica (15 dígitos precisión) 64 1.7e−308 a 1.7e+308
long double Notación científica (18 dígitos precisión) 80 3.4e−4932 a 1.1e+4932
SECUENCIAS DE ESCAPE
Secuencia Función
a Aviso sonoro
b Backspace
f Paso de página
n Nueva línea
r Retorno de carro
t Tabulación horizontal
v Tabulación vertical
 
' Comillas simples
 Comillas dobles
? Signo de interrogación
0 Numero octal O
xH Número hexadecimal H
XH Número hexadecimal H
OPERADORES ARITMÉTICOS
Operador Descripción
+ Suma
− Resta
* Multiplicación
1
/ División. Si los operadores son enteros, trunca el resultado
% Resto. Devuelve el resto de la división entera
++A Preincremento. Incrementa el valor de A
A++ Postincremento. Decrementa el valor de A.
−−A Predecimiento. Decrementa el valor de A
A−− Postdecremento. Evalúa el valor de A y a continuación lo decrementa
OPERADORES DE BITS
Destinados a trabajar directamente sobre los bits:
Operador Descripción
& AND binario. Devuelve 1 si los bits valen 1
| OR binario. Devuelve 1 si alguno de los bits vale 1
^ EXOR binario. Devuelve 1 si hay un número impar de 1
" NOT binario. Cambia 1 por 0 y viceversa
>>
Desplazamiento binario a la dcha. Desplaza los bits un lugar
a la derecha
<<
Desplazamiento binario a la izda. Desplaza los bits un lugar
a la izquierda
OPERADORES DE ASIGNACIÓN
Se utilizan para pasar resultados a variables
Operador Descripción
= Asignación (simple o múltiple)
*= Multiplicación seguida de asignación
/= División seguida de asignación
%= Resto seguido de asignación
+= Suma seguida de asignación
−= Resta seguida de asignación
<<= Desplazamiento binario a la dcha. seguido de asignación
>>= Desplazamiento binario a la izda. seguido de asignación
$= AND binario seguido de asignación
^= EXOR binario seguido de asignación
|= OR binario seguido de asignación
OPERADORES RELACIONADOS
Operador Descripción
== Igual
¡= Distinto
> Mayor
< Menor
>= Mayor o igual
2
<= Menor o igual
OPERADORES LÓGICOS
Se encargan de realizar operaciones del tipo verdadero o falso. NO CONFUNDIR con los operadores de bits.
Operador Descripción
&& AND lógico
|| OR lógico
¡ NOT lógico
EL OPERADOR COMA
Se utiliza para separar elementos en una lista de argumentos a una función, o concatenar varias expresiones en
una misma sentencia. No se usa mucho por que puede llegar a confundir.
OPERADORES DE PARÉNTESIS
Operador Descripción
( )
Se utiliza para agrupar expresiones, indicar llamadas a función, o agrupar una lista de
parámetros.
{ } Se utiliza para indicar principio y final de una sentencia compuesta
[ ] Se utiliza para encerrar los límites de una matriz
OPERADORES DE ESTRUCTURAS
Operador Descripción
. Se utiliza para acceder a miembros de estructuras y uniones
_> Se utiliza para acceder a miembros de estructuras y uniones referenciadas como punteros
OPERADORES PUNTEROS
Operador Descripción
* Se utiliza para acceder a los elementos referenciados por los punteros
& Se utiliza para obtener la dirección de la memoria del elemento al que se hace referencia
Signo Descripción
, Elemento separador
; Fin de sentencia
: Indicador de etiqueta
... Nº de parámetros desconocido
* Indicador de puntero
# Directiva del procesador
EL OPERADOR SIZEOF
Se utiliza para conocer el tamaño en bytes de cierta variable o tipo de dato. La sintaxis es:
3
sizeof operando
sizeof(operando)
ENTRADA SALIDA POR CONSOLA
Funciones de salida sin formato:•
putchar: Envía un carácter a la consola. Si tiene éxito devuelve ese mismo carácter, si no
devuelve EOF.
♦
puts: Envía una cadena a la salida estándar. Si tiene éxito devuelve un valor positivo, en caso
contrario devuelve EOF.
♦
Funciones de salida con formato:•
printf: Envía ciertos elementos a la salida estándar, con formato. Puede aparecer
simplemente la cadena o especificadores de formato:
♦
int printf(const char *formato[,argumento,...];◊
printf(%d,Numero);◊
flags: Controlan el tipo de especificación a emplear en la escritura en pantalla, y para los nº
indican si aparecerán los signos y de qué manera. Estos son:
♦
Flag Función
− Justifica a la izquierda
+ Siempre aparece el signo
Espacio en
blanco
Aparece sólo el signo −
Especificador de anchura: Controla la cantidad de espacios que debe ocupar el elemento en
pantalla, de forma que si no tiene suficientes, rellena por espacios en blanco, y si sobran hace
caso omiso de este especificador. Existen dos variantes:
♦
Flag Función
N Cantidad de espacios (n) que debe ocupar
0n Cantidad de espacios a ocupar, si no tiene suficiente rellena con 0's a la izquierda.
Especificador de precisión: Controla varios aspectos según el tipo de datos al que se
aplique. Normalmente está relacionado con la cantidad de cifras decimales de un dato float.
Estos son:
♦
Flag Función
Ninguno Se utiliza la precisión por defecto
.0 En float no aparecen cifras decimales
.n
En float aparecen n cifras decimales redondeando si sobran. En el resto
aparecen n caracteres eliminando los que sobran
Conversión de tipo:♦
Carácter Entrada Dirección
D Entero decimal (int*)
4
D Entero decimal (long*)
E, e Número en coma flotante (float*)
F Número en coma flotante (float*)
G, g Número en coma flotante (float*)
O Entero octal (int*)
O Entero octal (long*)
I
Entero decimal, octal o
hexadecimal
(int*)
I
Entero decimal, octal o
hexadecimal
(long*)
U Entero decimal sin signo (unsigned int*)
U Entero decimal sin signo (unsigned long*)
X Entero hexadecimal (int*)
X Entero hexadecimal (int*)
S Cadena (char*)
C Carácter (char*)
% Carácter %
N Puntero
(int*) Almacena el nº de
caracteres leídos
P Puntero hexadecimal (far*) ó (near*)
Funciones de entrada sin formato:•
getch: Lee un carácter directamente del teclado, sin mostrarlo en la pantalla. Devuelve dicho
carácter. Sirve para almacenara por ejemplo una tecla pulsada.
♦
#include <conio.h>◊
int getch(void);◊
getchar: Lee un carácter de teclado. Si tiene éxito devuelve dicho carácter, si no devuelve
EOF. La diferencia con el anterior es que éste si que lo muestra en la pantalla.
♦
#include <stdio.h>◊
int getchar(void);◊
getche: Lee un carácter de teclado y lo muestra en pantalla. Devuelve dicho carácter. Su
funcionamiento es como el anterior.
♦
#include <conio.h>◊
int getche(void);◊
gets: Lee una cadena de teclado, siendo el indicador de fin el retorno de carro. Coloca la
cadena leída en *s.
♦
#include <stdio.h>◊
char gets(chars);◊
kbhit: Comprueba si se ha pulsado alguna tecla. La cual será leída con alguna de las
funciones anteriores. Si se puede leer alguna tecla devuelve un valor distinto de 0.
♦
Funciones de entrada con formato: Controlan la entrada de datos en sentido opuesto al de las
funciones de salida con formato.
•
5
scanf: Es la inversa de printf, pero donde va el argumento, ahora irá la dirección de la
variable donde se va a almacenar lo leído del teclado.
♦
#include <stdio.h>◊
int scanf(const char*formato[,dirección];◊
Si tiene éxito devuelve el nº de elementos leídos y almacenado, los cuales son
guardados en la dirección especificada.
◊
La cadena formato tiene una estructura similar a la utilizada en printf: comienza por
% seguido de:
◊
%[*][Anchura]tipo⋅
Donde lo únicos elementos son % y el tipo.◊
Donde está * irá el elemento que será leído pero no asignado a ninguna dirección.◊
La anchura indica la cantidad de caracteres a ser leídos.◊
Los tipos de datos se encuentran en la tabla anterior Conversiones de tipo.◊
Modificaciones de la cadena formato: En las funciones de entrada con formato se pueden
añadir ciertas modificaciones adicionales para controlar mejor la entrada.
♦
También se puede utilizar la conversión de matriz de caracteres (%[W]c)◊
El juego de inspección se utiliza para especificar los únicos caracteres válidos de
entrada. Sustituye al tipo %s. La sintaxis es:
◊
Tipo Función
%[Caracteres] Sólo son válidas las entradas Caracteres
%[^Caracteres] Sólo son inválidas las entradas Caracteres
%[Principio−Final] Sólo son válidas las entradas de Principio a Final
Función gotoxy: Es una instrucción para controlar la posición de la escritura, ye que el lenguaje C
permite como si dijéramos dividir la pantalla en celdas (quedando dividida en filas y columnas). La
instrucción sería
•
gotoxy(x,y);♦
Siendo x e y las coordenadas.◊
FUNCIONES MATEMÁTICAS
Para usarlas es necesario incluir el fichero <math.h>.
No pueden ir sola, es decir, deben de haberse asignado antes o en una función printf
Función Descripción
double acos(double arg); Devuelve el arcocoseno del argumento
double asin(double arg); Devuelve el arcoseno del argumento
double atan(double arg); Devuelve el arcotangente del argumento
double atan2(double y, double x); Devuelve el arcotangente del argumento
double cos(double arg); Devuelve el coseno del argumento
double cosh(double arg); Devuelve el coseno hiperbólico del argumento
double exp(double arg); Devuelve el nº e elevado al argumento
double fabs(double num); Devuelve el valor absoluto del argumento
double log(double num); Devuelve el logaritmo neperiano del argumento
double log10(double num); Devuelve el logaritmo en base 10 del argumento
double pow(double base, double exp); Devuelve la base elevada el exponente
6
double sin(double arg); Devuelve el seno del argumento
double sinh(double arg); Devuelve el seno hiperbólico del argumento
double sqrt(double num); Devuelve la raíz cuadrada del argumento
double tan(double arg); Devuelve la tangente del argumento
double tanh(double arg); Devuelve la tangente hiperbólica del argumento
FUNCIONES DE CARACTERES
Para trabajar con ellas se debe introducir la unidad necesaria ctype.h
#include <ctype.h>
Función Descripción
int isalnum(int ch); Devuelve 0 si el carácter no es alfanumérico
int isalpha(int ch); Devuelve 0 si el carácter no es una letra
int isdigit(int ch); Devuelve 0 si el carácter no es un nº
int isgraph(int ch) Devuelve 0 si el carácter no es imprimible
int islower(int ch); Devuelve 0 si el carácter no está en mayúsculas
int ispunct(int ch); Devuelve 0 si el carácter no es de puntuación
int isspace(int ch); Devuelve 0 si el carácter no es de espaciado
int issupper(int ch); Devuelve 0 si el carácter esté en minúsculas
int isxdigit(int ch); Devuelve 0 si el carácter no es un dígito hexadecimal
int tolower(int ch); Convierte el carácter en minúsculas
int toupper(int ch); Convierte el carácter en mayúsculas
ESTRUCTURA IF
Esta estructura se utiliza de la siguiente forma:•
Si condición sentencia1; en caso contrario sentencia2.♦
if(condición) sentencia1; else sentencia 2.♦
También se pueden anidar (colocar una condición dentro de otra):•
if(condición1) sentencia1; else if(condición2); sentencia2; else if(condición3) sentencia3...♦
También lo podemos hacer para que se tengan que cumplir dos condiciones a la vez para que realice
la sentencia, lo que seria la función AND:
•
Si condición1 y condición2 sentencia1 en caso contrario sentencia2.♦
if((condición1)&&(condición2))sentencia1; else sentencia2.♦
Otra forma puede ser que se tenga que cumplir como mínimo una de las condiciones:•
Si condición1 o condición2 sentencia1; en caso contrario sentencia2.♦
if((condición1)||(condición2))sentencia1; else sentencia2.♦
Por último veamos una negación de la anterior:•
Si no condición entonces sentencia1; en caso contrario sentencia2.♦
if!(condición)sentencia1; else sentencia2.♦
ESTRUCTURA SWITCH
Se utiliza cuando se tiene muchas condiciones anidadas.•
Su estructura normal es:•
switch(variable)♦
7
{
case Valor1: sentencia1;
break;
case valor2: sentencia(s)2;
break;
...
case ValorN: sentencia(s)N;
break;
default: sentencia(s) finales(es);
}
Si no se cumpliera ninguno de los valores, entonces se realizaría la sentencia correspondiente al
default.
•
El break es necesario para que realice la sentencia, si no pasaría a la siguiente.•
EL OPERADOR TERNARIO?:
Se utiliza para sustituir expresiones como:•
if(condición) sentencia1; else sentencia 2.♦
De la forma siguiente, con el único fin de conseguir un código más conciso.•
(condición)? Sentencia1; sentencia2;♦
EL BUCLE FOR:
Se utiliza cuando necesitamos realizar una tarea un det. nº de veces:•
Su estructura es de la siguiente forma:•
Desde principio hasta condición de finalización repetir...♦
for(indice=ValorInicial;condición;incremento)sentencia;♦
Donde índice es la variable que va a ir tomando valores a partir del ValorInicial con
un increnmento mientras la condición sea verdadera.
◊
La parte a repetir puede estar formada por varias sentencias, lo que se pondría {...}.•
También podemos realizar repeticiones desde el final hasta el principio, como una cuenta atrás:•
for (indice=ValorFinal;índice>=ValorInicial;Indice−−)♦
EL BUCLE DO ... WHILE
Ahora el nº de repeticiones no es fijo.•
Su estructura:•
Repetir acción mientras condición.♦
do sentencia while condición;♦
La última parte, es decir donde va el while se debe introducir una expresión booleana como en la
estructura if.
•
8
EL BUCLE WHILE
La diferencia con el anterior es que ahora se realiza primero la comprobación y luego la acción que se
ha de repetir.
•
Su estructura es:•
Mientras condición repetir acción♦
while (condición) sentencia;♦
Se ve que se compruébala condición antes de la repetición y en caso de que no se cumpla la primera
vez, no se ejecuta la sentencia.
•
BUCLES ANIDADOS:
Se utiliza para introducir un bucle dentro de otro.•
for (indice=ValorInicial1;indice1<ValorFinal1;indice++)...♦
FUNCIONES
Se utilizan para simplificar los programas, agrupando tareas que se han de repetir varias veces en una
sola función, ahorrando memoria.
•
Las funciones no devuelven ningún resultado y tienen la misma estructura que el programa principal
(se pueden definir variable, constantes, etc..) y su forma sería:
•
TipoDevuelto NombreFunción(ListaParámetros)♦
{
//...sentencias en C
return Resultado;
}
Donde TipoDevuelto corresponde al tipo de datos que debe devolver la función si
fuera necesario. NombreFunción es el identificador válido en C que hace referencia
a la función y ListaParámetros corresponde ala información que se envía desde la
llamada. Por último return devuelve el resultado.
◊
El ejemplo más simple es:•
void NombreFunción(void)♦
{
...
//sentencias en C que forman el cuerpo de la función
...
}
Donde void significa que no tiene que devolver ningún tipo de dato y que no necesita
ningún parámetro.
◊
En C se deben de citar las funciones antes de su utilización antes de su utilización (en este paso se
debe de poner al final ; (punto y coma), esto es lo que se llama Prototipo.
•
9
Para que un programa que utilice funciones funcione correctamente se debe definir la función y por
norma general se realizará al final del programa principal (declaración del cuerpo) esta parte se realiza
sin ;(punto y coma).
•
PASO DE PARÁMETROS
El paso de parámetros se utiliza cuando en un mismo programa se quiere utilizar una misma función
en dos situaciones diferentes, es decir que el proyecto final sea el mismo, pero con l salvedad de
cambiar solo un matiz
•
Un ejemplo de esto sería una función que llamamos InicializarPantalla y lo que pretendemos
hacer es que en cada parte de le programa tenga un color de fondo y de letras distinto.
♦
El cambio que debemos introducir es, por ejemplo:•
Void NombreFunción(TipoParámetro1 Nombreparámetro1, TipoParámetro2
NombreParámetro2,...)
♦
Lo que se aprecia es que en la declaración del procedimiento se han colocado los
parámetros que en cualquier caso podemos cambiar.
◊
10

Más contenido relacionado

La actualidad más candente (20)

comandos
comandoscomandos
comandos
 
Variables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en CVariables, Constantes y Tipos de datos en C
Variables, Constantes y Tipos de datos en C
 
Instrucciones para c_
Instrucciones para c_Instrucciones para c_
Instrucciones para c_
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Comandos de raptor c# y java
Comandos de raptor c# y javaComandos de raptor c# y java
Comandos de raptor c# y java
 
TUTORIAL DE LENGUAJE C
TUTORIAL DE LENGUAJE CTUTORIAL DE LENGUAJE C
TUTORIAL DE LENGUAJE C
 
TUTORIAL LENGUAJE C
TUTORIAL LENGUAJE CTUTORIAL LENGUAJE C
TUTORIAL LENGUAJE C
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
 
Tipos de datos en C
Tipos de datos en CTipos de datos en C
Tipos de datos en C
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Clase1 c
Clase1 cClase1 c
Clase1 c
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Funcion printf
Funcion printfFuncion printf
Funcion printf
 
Tutorial descilab
Tutorial descilabTutorial descilab
Tutorial descilab
 
Apuntes scilab
Apuntes scilabApuntes scilab
Apuntes scilab
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 

Similar a Lenguaje c

Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaAna Ruth G H
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionandreinagracielarojasadam
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacionrotflol
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveGabriel Romero
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivastacubomx
 
Resumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónResumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónOriol Borras Gene
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CRonny Parra
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1joeshego
 
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAMODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAgbermeo
 

Similar a Lenguaje c (20)

Introducción al lenguaje c
Introducción al lenguaje cIntroducción al lenguaje c
Introducción al lenguaje c
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
Introducción
IntroducciónIntroducción
Introducción
 
Introducción
IntroducciónIntroducción
Introducción
 
Fundamentos de Lenguaje C
Fundamentos de Lenguaje CFundamentos de Lenguaje C
Fundamentos de Lenguaje C
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Lista de Comandos
Lista de ComandosLista de Comandos
Lista de Comandos
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Resumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la ProgramaciónResumen asignatura de Introducción a la Programación
Resumen asignatura de Introducción a la Programación
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Comandos
ComandosComandos
Comandos
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Comandos
ComandosComandos
Comandos
 
Introduccion c
Introduccion cIntroduccion c
Introduccion c
 
INSTRUCCIONES
INSTRUCCIONESINSTRUCCIONES
INSTRUCCIONES
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAMODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
 

Lenguaje c

  • 1. PROGRAMACIÓN EN C TIPOS DE DATOS EN C Nombre Aplicación Bits Rango unsigned char Nº pequeños positivos, caracteres y bucles cortos 8 0 a 255 char Nº pequeños, caracteres y bucles cortos 8 −128 a 127 signed char Nº pequeños, caracteres y bucles cortos 8 −128 a 127 short int Amplía el rango de los anteriores 8 −128 a 127 unsigned int Nº positivos grandes y bucles largos 16 0 a 65535 int Nº grandes y bucles largos 32 −32768 a 32767 signed int Nº grandes y bucles largos 32 −32768 a 32767 unsigned long Nº positivos grandes y bucles largos 32 0 a 4294967295 long Nº grandes y bucles largos 32 −21474836 a 2147483647 float Notación científica (7 dígitos precisión) 32 3.4e−38 a 3.4e+38 double Notación científica (15 dígitos precisión) 64 1.7e−308 a 1.7e+308 long double Notación científica (18 dígitos precisión) 80 3.4e−4932 a 1.1e+4932 SECUENCIAS DE ESCAPE Secuencia Función a Aviso sonoro b Backspace f Paso de página n Nueva línea r Retorno de carro t Tabulación horizontal v Tabulación vertical ' Comillas simples Comillas dobles ? Signo de interrogación 0 Numero octal O xH Número hexadecimal H XH Número hexadecimal H OPERADORES ARITMÉTICOS Operador Descripción + Suma − Resta * Multiplicación 1
  • 2. / División. Si los operadores son enteros, trunca el resultado % Resto. Devuelve el resto de la división entera ++A Preincremento. Incrementa el valor de A A++ Postincremento. Decrementa el valor de A. −−A Predecimiento. Decrementa el valor de A A−− Postdecremento. Evalúa el valor de A y a continuación lo decrementa OPERADORES DE BITS Destinados a trabajar directamente sobre los bits: Operador Descripción & AND binario. Devuelve 1 si los bits valen 1 | OR binario. Devuelve 1 si alguno de los bits vale 1 ^ EXOR binario. Devuelve 1 si hay un número impar de 1 " NOT binario. Cambia 1 por 0 y viceversa >> Desplazamiento binario a la dcha. Desplaza los bits un lugar a la derecha << Desplazamiento binario a la izda. Desplaza los bits un lugar a la izquierda OPERADORES DE ASIGNACIÓN Se utilizan para pasar resultados a variables Operador Descripción = Asignación (simple o múltiple) *= Multiplicación seguida de asignación /= División seguida de asignación %= Resto seguido de asignación += Suma seguida de asignación −= Resta seguida de asignación <<= Desplazamiento binario a la dcha. seguido de asignación >>= Desplazamiento binario a la izda. seguido de asignación $= AND binario seguido de asignación ^= EXOR binario seguido de asignación |= OR binario seguido de asignación OPERADORES RELACIONADOS Operador Descripción == Igual ¡= Distinto > Mayor < Menor >= Mayor o igual 2
  • 3. <= Menor o igual OPERADORES LÓGICOS Se encargan de realizar operaciones del tipo verdadero o falso. NO CONFUNDIR con los operadores de bits. Operador Descripción && AND lógico || OR lógico ¡ NOT lógico EL OPERADOR COMA Se utiliza para separar elementos en una lista de argumentos a una función, o concatenar varias expresiones en una misma sentencia. No se usa mucho por que puede llegar a confundir. OPERADORES DE PARÉNTESIS Operador Descripción ( ) Se utiliza para agrupar expresiones, indicar llamadas a función, o agrupar una lista de parámetros. { } Se utiliza para indicar principio y final de una sentencia compuesta [ ] Se utiliza para encerrar los límites de una matriz OPERADORES DE ESTRUCTURAS Operador Descripción . Se utiliza para acceder a miembros de estructuras y uniones _> Se utiliza para acceder a miembros de estructuras y uniones referenciadas como punteros OPERADORES PUNTEROS Operador Descripción * Se utiliza para acceder a los elementos referenciados por los punteros & Se utiliza para obtener la dirección de la memoria del elemento al que se hace referencia Signo Descripción , Elemento separador ; Fin de sentencia : Indicador de etiqueta ... Nº de parámetros desconocido * Indicador de puntero # Directiva del procesador EL OPERADOR SIZEOF Se utiliza para conocer el tamaño en bytes de cierta variable o tipo de dato. La sintaxis es: 3
  • 4. sizeof operando sizeof(operando) ENTRADA SALIDA POR CONSOLA Funciones de salida sin formato:• putchar: Envía un carácter a la consola. Si tiene éxito devuelve ese mismo carácter, si no devuelve EOF. ♦ puts: Envía una cadena a la salida estándar. Si tiene éxito devuelve un valor positivo, en caso contrario devuelve EOF. ♦ Funciones de salida con formato:• printf: Envía ciertos elementos a la salida estándar, con formato. Puede aparecer simplemente la cadena o especificadores de formato: ♦ int printf(const char *formato[,argumento,...];◊ printf(%d,Numero);◊ flags: Controlan el tipo de especificación a emplear en la escritura en pantalla, y para los nº indican si aparecerán los signos y de qué manera. Estos son: ♦ Flag Función − Justifica a la izquierda + Siempre aparece el signo Espacio en blanco Aparece sólo el signo − Especificador de anchura: Controla la cantidad de espacios que debe ocupar el elemento en pantalla, de forma que si no tiene suficientes, rellena por espacios en blanco, y si sobran hace caso omiso de este especificador. Existen dos variantes: ♦ Flag Función N Cantidad de espacios (n) que debe ocupar 0n Cantidad de espacios a ocupar, si no tiene suficiente rellena con 0's a la izquierda. Especificador de precisión: Controla varios aspectos según el tipo de datos al que se aplique. Normalmente está relacionado con la cantidad de cifras decimales de un dato float. Estos son: ♦ Flag Función Ninguno Se utiliza la precisión por defecto .0 En float no aparecen cifras decimales .n En float aparecen n cifras decimales redondeando si sobran. En el resto aparecen n caracteres eliminando los que sobran Conversión de tipo:♦ Carácter Entrada Dirección D Entero decimal (int*) 4
  • 5. D Entero decimal (long*) E, e Número en coma flotante (float*) F Número en coma flotante (float*) G, g Número en coma flotante (float*) O Entero octal (int*) O Entero octal (long*) I Entero decimal, octal o hexadecimal (int*) I Entero decimal, octal o hexadecimal (long*) U Entero decimal sin signo (unsigned int*) U Entero decimal sin signo (unsigned long*) X Entero hexadecimal (int*) X Entero hexadecimal (int*) S Cadena (char*) C Carácter (char*) % Carácter % N Puntero (int*) Almacena el nº de caracteres leídos P Puntero hexadecimal (far*) ó (near*) Funciones de entrada sin formato:• getch: Lee un carácter directamente del teclado, sin mostrarlo en la pantalla. Devuelve dicho carácter. Sirve para almacenara por ejemplo una tecla pulsada. ♦ #include <conio.h>◊ int getch(void);◊ getchar: Lee un carácter de teclado. Si tiene éxito devuelve dicho carácter, si no devuelve EOF. La diferencia con el anterior es que éste si que lo muestra en la pantalla. ♦ #include <stdio.h>◊ int getchar(void);◊ getche: Lee un carácter de teclado y lo muestra en pantalla. Devuelve dicho carácter. Su funcionamiento es como el anterior. ♦ #include <conio.h>◊ int getche(void);◊ gets: Lee una cadena de teclado, siendo el indicador de fin el retorno de carro. Coloca la cadena leída en *s. ♦ #include <stdio.h>◊ char gets(chars);◊ kbhit: Comprueba si se ha pulsado alguna tecla. La cual será leída con alguna de las funciones anteriores. Si se puede leer alguna tecla devuelve un valor distinto de 0. ♦ Funciones de entrada con formato: Controlan la entrada de datos en sentido opuesto al de las funciones de salida con formato. • 5
  • 6. scanf: Es la inversa de printf, pero donde va el argumento, ahora irá la dirección de la variable donde se va a almacenar lo leído del teclado. ♦ #include <stdio.h>◊ int scanf(const char*formato[,dirección];◊ Si tiene éxito devuelve el nº de elementos leídos y almacenado, los cuales son guardados en la dirección especificada. ◊ La cadena formato tiene una estructura similar a la utilizada en printf: comienza por % seguido de: ◊ %[*][Anchura]tipo⋅ Donde lo únicos elementos son % y el tipo.◊ Donde está * irá el elemento que será leído pero no asignado a ninguna dirección.◊ La anchura indica la cantidad de caracteres a ser leídos.◊ Los tipos de datos se encuentran en la tabla anterior Conversiones de tipo.◊ Modificaciones de la cadena formato: En las funciones de entrada con formato se pueden añadir ciertas modificaciones adicionales para controlar mejor la entrada. ♦ También se puede utilizar la conversión de matriz de caracteres (%[W]c)◊ El juego de inspección se utiliza para especificar los únicos caracteres válidos de entrada. Sustituye al tipo %s. La sintaxis es: ◊ Tipo Función %[Caracteres] Sólo son válidas las entradas Caracteres %[^Caracteres] Sólo son inválidas las entradas Caracteres %[Principio−Final] Sólo son válidas las entradas de Principio a Final Función gotoxy: Es una instrucción para controlar la posición de la escritura, ye que el lenguaje C permite como si dijéramos dividir la pantalla en celdas (quedando dividida en filas y columnas). La instrucción sería • gotoxy(x,y);♦ Siendo x e y las coordenadas.◊ FUNCIONES MATEMÁTICAS Para usarlas es necesario incluir el fichero <math.h>. No pueden ir sola, es decir, deben de haberse asignado antes o en una función printf Función Descripción double acos(double arg); Devuelve el arcocoseno del argumento double asin(double arg); Devuelve el arcoseno del argumento double atan(double arg); Devuelve el arcotangente del argumento double atan2(double y, double x); Devuelve el arcotangente del argumento double cos(double arg); Devuelve el coseno del argumento double cosh(double arg); Devuelve el coseno hiperbólico del argumento double exp(double arg); Devuelve el nº e elevado al argumento double fabs(double num); Devuelve el valor absoluto del argumento double log(double num); Devuelve el logaritmo neperiano del argumento double log10(double num); Devuelve el logaritmo en base 10 del argumento double pow(double base, double exp); Devuelve la base elevada el exponente 6
  • 7. double sin(double arg); Devuelve el seno del argumento double sinh(double arg); Devuelve el seno hiperbólico del argumento double sqrt(double num); Devuelve la raíz cuadrada del argumento double tan(double arg); Devuelve la tangente del argumento double tanh(double arg); Devuelve la tangente hiperbólica del argumento FUNCIONES DE CARACTERES Para trabajar con ellas se debe introducir la unidad necesaria ctype.h #include <ctype.h> Función Descripción int isalnum(int ch); Devuelve 0 si el carácter no es alfanumérico int isalpha(int ch); Devuelve 0 si el carácter no es una letra int isdigit(int ch); Devuelve 0 si el carácter no es un nº int isgraph(int ch) Devuelve 0 si el carácter no es imprimible int islower(int ch); Devuelve 0 si el carácter no está en mayúsculas int ispunct(int ch); Devuelve 0 si el carácter no es de puntuación int isspace(int ch); Devuelve 0 si el carácter no es de espaciado int issupper(int ch); Devuelve 0 si el carácter esté en minúsculas int isxdigit(int ch); Devuelve 0 si el carácter no es un dígito hexadecimal int tolower(int ch); Convierte el carácter en minúsculas int toupper(int ch); Convierte el carácter en mayúsculas ESTRUCTURA IF Esta estructura se utiliza de la siguiente forma:• Si condición sentencia1; en caso contrario sentencia2.♦ if(condición) sentencia1; else sentencia 2.♦ También se pueden anidar (colocar una condición dentro de otra):• if(condición1) sentencia1; else if(condición2); sentencia2; else if(condición3) sentencia3...♦ También lo podemos hacer para que se tengan que cumplir dos condiciones a la vez para que realice la sentencia, lo que seria la función AND: • Si condición1 y condición2 sentencia1 en caso contrario sentencia2.♦ if((condición1)&&(condición2))sentencia1; else sentencia2.♦ Otra forma puede ser que se tenga que cumplir como mínimo una de las condiciones:• Si condición1 o condición2 sentencia1; en caso contrario sentencia2.♦ if((condición1)||(condición2))sentencia1; else sentencia2.♦ Por último veamos una negación de la anterior:• Si no condición entonces sentencia1; en caso contrario sentencia2.♦ if!(condición)sentencia1; else sentencia2.♦ ESTRUCTURA SWITCH Se utiliza cuando se tiene muchas condiciones anidadas.• Su estructura normal es:• switch(variable)♦ 7
  • 8. { case Valor1: sentencia1; break; case valor2: sentencia(s)2; break; ... case ValorN: sentencia(s)N; break; default: sentencia(s) finales(es); } Si no se cumpliera ninguno de los valores, entonces se realizaría la sentencia correspondiente al default. • El break es necesario para que realice la sentencia, si no pasaría a la siguiente.• EL OPERADOR TERNARIO?: Se utiliza para sustituir expresiones como:• if(condición) sentencia1; else sentencia 2.♦ De la forma siguiente, con el único fin de conseguir un código más conciso.• (condición)? Sentencia1; sentencia2;♦ EL BUCLE FOR: Se utiliza cuando necesitamos realizar una tarea un det. nº de veces:• Su estructura es de la siguiente forma:• Desde principio hasta condición de finalización repetir...♦ for(indice=ValorInicial;condición;incremento)sentencia;♦ Donde índice es la variable que va a ir tomando valores a partir del ValorInicial con un increnmento mientras la condición sea verdadera. ◊ La parte a repetir puede estar formada por varias sentencias, lo que se pondría {...}.• También podemos realizar repeticiones desde el final hasta el principio, como una cuenta atrás:• for (indice=ValorFinal;índice>=ValorInicial;Indice−−)♦ EL BUCLE DO ... WHILE Ahora el nº de repeticiones no es fijo.• Su estructura:• Repetir acción mientras condición.♦ do sentencia while condición;♦ La última parte, es decir donde va el while se debe introducir una expresión booleana como en la estructura if. • 8
  • 9. EL BUCLE WHILE La diferencia con el anterior es que ahora se realiza primero la comprobación y luego la acción que se ha de repetir. • Su estructura es:• Mientras condición repetir acción♦ while (condición) sentencia;♦ Se ve que se compruébala condición antes de la repetición y en caso de que no se cumpla la primera vez, no se ejecuta la sentencia. • BUCLES ANIDADOS: Se utiliza para introducir un bucle dentro de otro.• for (indice=ValorInicial1;indice1<ValorFinal1;indice++)...♦ FUNCIONES Se utilizan para simplificar los programas, agrupando tareas que se han de repetir varias veces en una sola función, ahorrando memoria. • Las funciones no devuelven ningún resultado y tienen la misma estructura que el programa principal (se pueden definir variable, constantes, etc..) y su forma sería: • TipoDevuelto NombreFunción(ListaParámetros)♦ { //...sentencias en C return Resultado; } Donde TipoDevuelto corresponde al tipo de datos que debe devolver la función si fuera necesario. NombreFunción es el identificador válido en C que hace referencia a la función y ListaParámetros corresponde ala información que se envía desde la llamada. Por último return devuelve el resultado. ◊ El ejemplo más simple es:• void NombreFunción(void)♦ { ... //sentencias en C que forman el cuerpo de la función ... } Donde void significa que no tiene que devolver ningún tipo de dato y que no necesita ningún parámetro. ◊ En C se deben de citar las funciones antes de su utilización antes de su utilización (en este paso se debe de poner al final ; (punto y coma), esto es lo que se llama Prototipo. • 9
  • 10. Para que un programa que utilice funciones funcione correctamente se debe definir la función y por norma general se realizará al final del programa principal (declaración del cuerpo) esta parte se realiza sin ;(punto y coma). • PASO DE PARÁMETROS El paso de parámetros se utiliza cuando en un mismo programa se quiere utilizar una misma función en dos situaciones diferentes, es decir que el proyecto final sea el mismo, pero con l salvedad de cambiar solo un matiz • Un ejemplo de esto sería una función que llamamos InicializarPantalla y lo que pretendemos hacer es que en cada parte de le programa tenga un color de fondo y de letras distinto. ♦ El cambio que debemos introducir es, por ejemplo:• Void NombreFunción(TipoParámetro1 Nombreparámetro1, TipoParámetro2 NombreParámetro2,...) ♦ Lo que se aprecia es que en la declaración del procedimiento se han colocado los parámetros que en cualquier caso podemos cambiar. ◊ 10