Lenguaje c completo 6 g x revisar x los estudiantes
1. LENGUAJE C
CONTENIDO
1. INTRODUCCIÓN
1.1. CARACTERÍSTICAS DEL LENGUAJE C
1.2. VENTAJAS
2. ESTRUCTURA BASICA DE UN PROGRAMA EN C
3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C
4. LAS VARIABLES
5. OPERADORES
5.1. OPERADORES MÁS FRECUENTES
5.2. OPERADORES DE ASIGNACION
5.3. OPERADORES DE RELACION
5.4. OPERADORES LÓGICOS
5.5. EXPRESIONES
6. FUNCION DE ENTRADA Scanf ( )
7. FUNCIÓN DE ENTRADA Printf( )
8. ESTRUCTURAS DE CONTROL DE FLUJO
8.1. SENTENCIAS ALTERNATIVAS
8.1.1. SENTENCIA If – Else
8.1.2. SENTENCIA Switch
8.2. SENTENCIA REPETITIVAS
8.2.1. SENTENCIA While
8.2.2. SENTENCIA Do .. While
8.2.3. SENTENCIA For
8.2.4. SENTENCIA Break
8.2.5. SENTENCIA Continue
9. LA DIRECTIVA #include
10. EL PREPROCESADOR #define
11. ARREGLOS EN LENGUAJE C
11.1. CONCEPTO
11.2. INICIALIZACION DE UN ARREGLO
11.3. VECTORES
11.4. MATRICES
12. FUNCIONES EN C
2. LENGUAJE C
1. INTRODUCCIÓN
Este lenguaje está inspirado en el Lenguaje B escrito por Ken Thompson en 1970, pero en 1972
Dennis Ritchie toma el relevo y modifica el Lenguaje B, creando el Lenguaje C. La novedad que
proporcionó el Lenguaje C sobre el B fue el diseño de tipos y estructura de datos. El C
proporciona varios tipos de datos, los tipos que ofrece son caracteres, números enteros y en coma
flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de
punteros, vectores, registros y uniones.
C es un lenguaje de programación de propósito general, control de flujo y estructuras sencillas y
un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje
pequeño sencillo y no esta especializado en ningún tipo de aplicación. Esto lo hace un lenguaje
potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco
tiempo, un programador puede utilizar la totalidad del lenguaje.
Se diseño con el objetivo de ser un lenguaje orientado al diseño de Sistemas Operativos, por eso
se ha convertido en un lenguaje de propósito general. Se le dio el nombre “C” porque muchas de
sus características fueron tomadas de un lenguaje anterior llamado “B” fue esencialmente una
simplificación del lenguaje BCPL, BCPL es un acrónimo ingles de Basic Combined Programming
Lenguaje (Lenguaje de Programación Básico Combinado).
Hay muchas leyendas acerca del origen de C y el sistema operativo con el que esta íntimamente
relacionado, Unix( Unix es un sistema operativo creado en lenguaje C). Algunas de ellas son:
El desarrollo de C fue el resultado del deseo de los programadores de jugar con Space Travel.
Habían estado jugando en el mainframe de su compañía, pero debido a su poca capacidad de
proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenía suficiente control sobre
la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un
PDP-7 (El PDP-7 de DEC fue clasificado como microcomputador en su lanzamiento) de la oficina
que no se utilizaba; pero esa maquina no tenia sistema operativo así que decidieron escribir uno.
Finalmente decidieron portar el sistema operativo del PDP-11 (Fue la primera minicomputadora en
interconectar todos los elementos del sistema –procesador, memoria y periférico- a un único bus
de comunicación, bidireccional, asíncrono) que había en su oficina pero era muy costoso, pues
todo el código estaba escrito en lenguaje ensamblador(un lenguaje ensamblador es un lenguaje
donde se trabaja con códigos y binarios). Entonces decidieron usar un lenguaje de alto nivel y
portátil para que el sistema operativo se pudiera portar fácilmente de un ordenador a otro.
Consideraron usar B, pero carecía de las funcionalidades necesarias para aprovechar algunas
características avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.
1.1. CARACTERÍSTICAS DEL LENGUAJE C
El lenguaje C se conoce como un lenguaje compilado(compilado quiere decir que viene con
algunas características de otros programas). Existen dos tipos de lenguaje: interpretados y
compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (P. Ej.:
Basic). Los compilados convierten el código fuente en un fichero objeto y este en un fichero
ejecutable. Este es el caso del lenguaje C. Podemos decir que el lenguaje C es un lenguaje de
nivel medio, ya que combina elementos del lenguaje de alto nivel con la funcionalidad del lenguaje
ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques
dentro de otros procedimientos. Hay que destacar que el C es un lenguaje portable, ya que
permite utilizar el mismo código en diferentes equipos y sistemas informáticos. Por último solo
queda decir que el C es un lenguaje relativamente pequeño; se puede describir en poco espacio y
aprender rápidamente.
1.2. VENTAJAS
3. Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar
implementaciones óptimas. A pesar de su bajo nivel es el lenguaje más portado en existencia,
habiendo compiladores para casi todos los sistemas conocidos. Proporciona facilidades para
realizar programas modulares y/o utilizar código o bibliotecas existentes.
2. ESTRUCTURA BASICA DE UN PROGRAMA EN C
La estructura de un programa sencillo en C es la siguiente:
Declaración de importaciones.- La declaración de importaciones se utiliza para
comunicar al compilador qué acciones y funciones de las mencionadas en el programa no
se encuentran implementadas en este. Estos procedimientos externos al programa se
hallan disponibles en ciertas estructuras llamadas módulos que tienen asociado un fichero
con extensión. h que contiene la lista de procedimientos importables. Para incluirlos es
suficiente escribir una instrucción del tipo
#include <nombre_módulo.h> .- Ejemplos de módulos empleados con frecuencia son
stdio (que contiene los procedimientos de entrada salida) y math (que contiene funciones
matemáticas).
Definición de constantes.- Las definiciones de constantes asignan a un identificador una
cadena de caracteres. Un proceso previo a la compilación substituirá el identificador por la
cadena de caracteres cada vez que lo encuentre. Su formato es
#define identificador cadena.- Y al igual que con la instrucción #include, no hace falta
poner el terminador; al final de la instrucción.
Definición de tipos.- La declaración de tipos permite definir tipos de datos que serán
utilizados en todo el programa.
Void main (void)
{
Declaración de variables
Instrucciones ejecutables
}
La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo
que se puede escribir en C es el siguiente:
Main ( )
{
}
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más
importante de cualquier programa C y además, es el más pequeño que se puede escribir
y que se compile correctamente. En el se define la función main, que es la que ejecuta el
sistema operativo al llamar a un programa C. El nombre de una función C siempre va
seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función
está formada por un bloque de sentencias, que esta encerrado entre llaves {}.
Main (). Indica el comienzo de la función principal del programa la cual se delimita con
llaves.
EJEMPLO: Escriba un programa que imprima el mensaje "Primer programa".
/* Primer programa */
#include <stdio.h>
4. main()
{
printf("Primer programan");
}
EJEMPLO: Escriba un programa que calcule el factorial de un número.
/* Factorial de un numero */
#include <stdio.h>
main()
{
int i, numero, factorial=1;
printf("nEscriba un numero entero para calcular su factorial: ");
scanf("%d",&numero);
for (i=numero; i>1; --i) factorial *= i;
printf("n%d! = %dn",numero,factorial);
}
3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C
Los tipos básicos de datos definidos por C son caracteres. Números enteros y números en coma
flotante. Los caracteres son representados por char, los enteros por short, int, long y los números
en coma flotante por flota y double. Los tipos básicos disponibles y su tamaño son:
Char Carácter (normalmente 8 bits)
Short Entero cortó con signo (normalmente 16 bits)
Int Entero con signo (depende de la implementación)
Unsigned Entero sin signo (depende de la implementación)
Long Entero Largo con signo (normalmente 32 bits)
Float Flotante simple (normalmente 32 bits)
Double Flotante doble (normalmente 64 bits)
La palabra unsigned en realidad es un modificador aplicable a tipos enteros, aunque si no se
especifica un tipo se supone int. Un modificador es una palabra clave de C que indica que una
variable, o función, no se comporta de forma normal. Hay también un modificador signed, pero
como los tipos son por defecto con signo, casi no se utiliza.
Las variables son definidas utilizando un identificador de tipo seguido del nombre de la variable.
Veamos el siguiente programa
#include<stdio>
main
{
float cels,farth; /*Identificador o tipo de dato*/
farh=35.0; /*Variables*/
cels=5.0*(farh-32.0)/9.0; /*Asignamos valor a la variable*/
printf(“->%f F son %fCn”,farh,cels);
}
En el programa anterior se define dos variables float, se asigna un valor a la primera y se calcula
la segunda mediante una expresión aritmética.
DECLARACIÓN DE VARIABLES
#include <stdio.h>
int a; /*Identificador Variable;*/
main() /* Muestra dos valores*/
int b=4; /*Asignamos valor a la variable*/
printf(“b es local y vale %d”,b);
a=5;
}
PROGRAMA: Calcular la suma de los números 5 y 6
5. #include <stdio>
main
{ /*Identificador o tipo de dato*/
int a,b,c; /*Variables*/
a=5; /*Asignamos valores a las variables*/
b=6;
c=a+b;
}
4. LAS VARIABLES
Una variable es un tipo de dato, que tiene un identificador ( es el nombre de la variable), se
utilizan para guardar datos dentro de un programa y se puede modificar a lo largo del programa.
Una variable sólo puede tener un tipo de dato, para poder utilizar una variable primero tiene que
ser declarada. El identificador (nombre de la variable) puede ser caracteres como letras :a-z y A-Z
, los números del 0-9 y en símbolos subrayados_.
La ( ñ o Ñ) no esta permitida, y además hay que tener en cuenta que el primer carácter no puede
ser un número .
DÓNDE SE DECLARAN.- Las variables pueden ser de dos tipos según el lugar donde
declaremos: globales o locales:
• Las variables globales deben ser declaradas antes de la main ( ) y pueden ser utilizadas en
cualquier parte del programa.
• Las variables locales deben ser declaradas después de la main ( ), solo existe dentro de la
función en que se declare y se destruye al finalizar dicha función.
EJEMPLO:
/*Declaración de variables*/
# include<stdio.h>
int a;
main( ) /*Muestra los valores */
int b=4;
a=5;
Los siguientes son ejemplos de nombres de variables válidos:
Char a; /* Es una letra del a-z */
int pepe; /* No es una palabra reservada */
int toto12; /* El número va después de la palabra */
int un_nombre_largo; /* La palabra lleva subrayado */
Los siguientes son ejemplos no válidos de nombres de variables:
Int 123var; /* Empieza por dígitos */
Char int; /* Palabra reservada */
int una sola; /* Contiene espacios */
int eñe; /* No funciona */
5. OPERADORES
5.1. OPERADORES MÁS FRECUENTES
OPERADORES ARITMETICOS
Tal como era de esperarse los operadores aritméticos comprenden las cuatro operaciones
básicas, suma, resta, multiplicación y división, con un agregado, el operador módulo.
6. SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
+ SUMA a + b 3
- RESTA a - b 3
* MULTIPLICACION a * b 2
/ DIVISION a / b 2
% MODULO a % b 2
- SIGNO -a 2
El operador módulo (%) se utiliza para calcular el resto del cociente entre dos ENTEROS,
y NO puede ser aplicado a variables del tipo float ó double.
Si en una operación existen varios operadores, primero se evaluarán los de multiplicación,
división y módulo y luego los de suma y resta.
Para evitar errores en los cálculos se pueden usar paréntesis, sin limitación de
anidamiento, los que fuerzan a realizar primero las operaciones incluidas en ellos. Los
paréntesis no disminuyen la velocidad a la que se ejecuta el programa sino que tan sólo
obligan al compilador a realizar las operaciones en un orden dado, por lo que es una
buena costumbre utilizarlos ampliamente.
Los paréntesis tienen un orden de precedencia 0, es decir que antes que nada se evalúa
lo que ellos encierran.
Se puede observar que no existen operadores de potenciación, radicación, logaritmación,
etc., ya que en el lenguaje C todas estas operaciones (y muchas otras) se realizan por
medio de llamadas a Funciones.
El último de los operadores aritméticos es el de SIGNO. No debe confundírselo con el de
resta, ya que este es un operador unitario que opera sobre una única variable cambiando
el signo de su contenido numérico. Obviamente no existe el operador + unitario, ya que su
operación sería DEJAR el signo de la variable, lo que se consigue simplemente por
omisión del signo.
OPERADORES DE INCREMENTO Y DECREMENTO
Los operadores de incremento y decremento son sólo dos:
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
++ incremento ++i ó i++ 1
-- decremento --i ó i-- 1
Para visualizar rápidamente la función de los operadores antedichos, digamos que las
sentencias:
a=a+1; a++ ;
Tienen una acción idéntica, de la misma forma que:
a=a-1; a-- ;
Es decir incrementa y decrementa a la variable en una unidad
Si bien estos operadores se suelen emplear con variables int, pueden ser usados sin
problemas con cualquier otro tipo de variable. Así si a es un float de valor 1.05 , luego de
hacer a++ adoptará el valor de 2.05 y de la misma manera si b es una variable del tipo
char que contiene el carácter 'C' , luego de hacer b-- su valor será 'B' .
7. Si bien las sentencias
i++ ; ++i ;
Son absolutamente equivalentes, en la mayoría de los casos la ubicación de los
operadores incremento ó decremento indica cuando se realiza éste.
EJERCICIO
/* Uso de los operadores aritméticos */
#include <stdio.h>
main()/*Realiza varias operaciones*/
{
int a=1,b=2,c=3,r;
r=a+b;
printf(“%d + %d = %d/n”,a,b,r);
r=c-a;
printf(“%d - %d = %d/n”,c,a,r);
b++;
printf(“b + 1 = %d”,b);
}
5.2. OPERADORES DE ASIGNACION
Los Operadores de Asignación, como su nombre lo indica, se encargan de asignarle a una
variable, el resultado de una expresión o el valor de otra variable.
Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una
expresión a un identificador. El operador de asignación más utilizado es "=" y su formato es:
identificador = expresión;
Donde el identificador representa por lo general una variable y una constante, una variable o una
expresión más compleja.
Si los dos operandos de la expresión de asignación son de tipo de datos diferentes el valor de la
expresión de la derecha se convertirá automáticamente al tipo de identificador de la izquierda de
ésta forma la expresión de asignación será del mismo tipo de datos.
En Lenguaje C, están permitidas las asignaciones múltiples, Ej.:
Identificador1 = identificador2 = identificador3.....= identificador n=expresión.
En lenguaje C, también existen los siguientes operadores de asignación:
Operador Explicación
+= Expresión1+=expresión2. Equivale a: expresión1=expresión1 + expresión2
-= i-=1. equivale a: i=i-1
*= J*=2. Equivale a: j=j*2
/= K/=m, equivale a: k=k/m
%= P%n. Equivale a: p=p%n
Los Operadores de asignación tiene menos procedencia que el resto de los operadores y
tienen asociatividad de izquierda a derecha.
5.3. OPERADORES DE RELACION