Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguaje de Programación
Lenguaje de Programación
Asignatura:
Programación de Computadoras I
Código de Asignatura:
3015
Tema:
Lenguaje de Programación C
Docente:
Ing. Doris E. Gutiérrez Rosales Msc.
Año:
2015
Índice
Contenido
Contenido ............................................................................................................................... 3
Introducción al lenguaje C..................................................................................................... 3
Características de C ............................................................................................................ 3
Reglas generales del C ............................................................................................................ 3
Estructura de un Programa en C ......................................................................................... 4
Elementos básicos del C ......................................................................................................... 7
Identificadores palabras reservadas .................................................................................... 7
Palabras reservadas ............................................................................................................. 8
Tipos de datos básicos ........................................................................................................ 8
Constantes........................................................................................................................... 9
Variables ........................................................................................................................... 10
Clases de almacenamiento ................................................................................................ 11
Entrada y salida de datos ...................................................................................................... 12
scanf() ............................................................................................................................... 13
Gets() ................................................................................................................................ 13
Printf() .............................................................................................................................. 14
Entradas y salidas sin formato .......................................................................................... 15
Operaciones y expresiones ................................................................................................... 16
Operadores aritméticos. .................................................................................................... 17
Operadores monarios ........................................................................................................ 18
Operadores relacionales y lógicos. ................................................................................... 19
Operadores de asignación ................................................................................................. 20
Sentencias de Control ........................................................................................................... 21
Sentencia If ....................................................................................................................... 21
Sentencia de Selección Múltiple (switch) ........................................................................ 23
Sentencia While ................................................................................................................ 23
Sentencia Do While .......................................................................................................... 24
Sentencia For .................................................................................................................... 24
Contenido
Introducción al lenguaje C
El lenguaje de programación C, fue desarrollado por Dennis Ritchie en los Laboratorios
BELL AT&T, basándose en el lenguaje B, creado por Ken Thompson. El mismo se utilizó
para escribir y mantener es sistema operativo UNIX.
Características de C
C es un lenguaje de programación que maneja un conjunto de elementos que lo hacen ser
muy flexible al momento de desarrollar programas, algunas de sus características son:
Lenguaje Compilado: Convierte el código fuente en un fichero objeto y éste en un
fichero ejecutable.
Lenguaje de Nivel Medio: Combina elementos de lenguaje de alto nivel con la
funcionalidad del lenguaje Ensamblador.
Lenguaje Estructurado: Permite crear procedimientos en bloques dentro de otros
procedimientos.
Lenguaje Portable: Permite utilizar el mismo código en diferentes equipos y
sistemas informáticos; es independiente de la arquitectura de cualquier máquina en
particular.
Estructura de un Programa en C
La estructura típica completa de un programa en C, debe contemplar el siguiente esquema:
Directiva del procesador: Son instrucciones que se le dan al compilador antes de que el
programa se compile. Estas instrucciones pueden ser funciones predefinidas, datos,
macros, archivos fuentes adicionales, pero su uso más frecuente en C es la inclusión de
archivos cabeceras estándares tales como: stdio.h, math.h, string.h. que en un momento
dado pueden requerir los programas elaborados por el ususario.
El orden de los archivos de inclusión no importa, lo que si se requiere es que se declare
antes de utilizar funciones propias de una directiva.
Formato:
#tipo de directiva <nombre del archivo.extensión>
#include “nombre del archivo.extensión”
Ejemplo:
#include <stdio.h>
#include “graficos.h”
Los símbolos (< >) no son parte del nombre de la directiva, se utilizan para indicar que
el archivo es un archivo de la biblioteca estándar de C.
El primer formato indica que los archivos se encuentran en el directorio por defecto
include, y en el segundo se indica que el archivo está en el directorio actual. En un
programa pueden estar presetnes ambos, si el archivo que desea incluir no se encuentra
en el directorio actual ubique la ruta completa.
Ejemplo:
#include “d:\materia\programa\grafo.h\”
Directiva define: indica al procesador que defina un elemento de dato u operación
para el programa C.
Formato:
#define nombre del identificador valor
Ejemplo:
#define linea 25
Declaraciones globales: Indican al compilador que las funciones y/o variables definidas
por el programador son comunes a todas las funciones del programa. Deben ser
declaradas antes de la función main.
Formato:
tipo de dato nombre del identificador;
declararión de funciones.
Ejemplo:
int grados;
float raiz()
{
x = sqrt(4);
}
Si “grado” y “raiz” son declaradas globales cualquier función del programa incluyendo
el main pueden tener acceso a ellas.
Definición de otras funciones: Módulos de programas que realizan tareras específicas.
Son ejeutadas desde el main o desde otra función.
Formato:
tipo de dato de la función nombre de la función ()
{
sentencia 1;
sentencia2;
return expresión;
}
Ejemplo:
int suma(int a, int b)
{
return a + b;
}
Función principal main: Todo programa en C debe incluirla e indica el punto de entrada
al programa.
El cuerpo principal es un conjunto de sentencias delimitado por dos llaves, una al inicio
después de los paréntesis del main “{“ y otra al final de la función “}”.
Una función en C es un grupo de instrucciones que realizan una o más acciones.
Recomendaciones
Escribir identificadores de variables con letras minúsculas.
Escribir identificadores de constantes con letras mayúsculas.
Escribir identificadores de funciones tanto con mayúsculas como con minúsculas.
Ejemplo:
Constantes
Son aquellas cuyos contenidos no cambian durante la ejecución de un programa; en C existen
cuatro tipos de constantes:
Constantes enteras: const int monto = 2345;
Constantes reales: const float real = 5.8;
Constantes de un solo caracter: const char sw = ‘F’;
Constantes de caracteres: const char aux[18] = “Programación en C”;
Variables
A diferencia de las constantes, el valor de las variables puede cambiar a lo largo de la
ejecución del programa.
Generalidades de la declaración de variables
La declaración debe situarse siempre al principio de la función creada o al inicio
de la función main antes de cualquier sentencia ejecutable.
Su ámbito de trabajo es el bloque donde está declarada.
Toda variable utilizada en el programa debe ser previamente declarada.
La declaración reserva un espacio de almacenamiento en memoria por cada
elemento que su programa manipule.
Declaraciones
Formato de declaración
tipo de dato nombre del identificador;
Ejemplo:
char enter; /*indica que se reserva un espacio en memoria para enter, en
este caso, un carácter ocupa un byte*/
int conta = 0; /*se declara e inicializa a cero la variable entera conta*/.
Ejemplo:
float monto = 0.00;
int limite = 100
char código = ‘s’;
Una variable declarada fuera del bloque main, es por defecto global, y es accesible en el resto
del programa en el que está declarado. Por el contrario una variable declarada dentro del
bloque main es local y accesible solamente dentro de éste.
Clases de almacenamiento
Por defecto todas las variables llevan asociada una clase de almacenamiento que determina
su existencia y accesibilidad.
Una variable declarada static es inicializada solamente una vez, cuando comienza la
ejecución del programa. No es reinicializada cada vez que se ejecuta el bloque que la
contiene. Si no es inicializada explícitamente, se inicializa automáticamente en 0.
Ejemplo:
int n = 15;
int suma ()
{
int n1 = 15;
static n2 = 5;
n2+=5;
return n1 + n2;
}
main()
{
static int num; //su valor inicial es cero (0)
register int n1=0; /*almacenada en un registro si es posible*/
int n2 = 50, n3 = 34; /*declarada como auto por defecto*/
printf("%d %d \n", suma (n1,n2),num);
}
Entrada y salida de datos
Las operaciones de entrada y salida no forman parte del conjunto de sentencias de C, sino
que pertenecen al conjunto de funciones de la librería estándar de C. Por ello, todo programa
que utilice funciones de entrada/salida requiere de las funciones prototipos definidas en la
cabecera del programa a través de la directiva inlcude.
Para manejar la entrada y salida de datos se necesita la librería stdio.h
Formato:
#include <stdio.h>
Las entradas o salidas para se utilizadas en C requieren de un conjunto de caracteres
denominados caracteres de especificación, los cuales son usados para indicar el tipo de dato
que va a ser tratado en la lectura y/o impresión.
Caracter de Tipo de dato Explicación
especificación
%d int Entero con signo (6 dígitos)
%i int Entero con signo
%u int Entero con signo
%f double Flotante con signo de la forma (+ ,-) ddd.dd
%e double Flotante con signo de la forma (+ ,-) d.ddde(+ ,-) ddd
%c char Un solo caracter
%s char Cadena de caracteres sin espacios en blanco
%[^\n] char Cadena de caracteres con espacios en blanco
%o int Octal con signo (0-7)
%x int Hexadecimal con signo(0-9, A-F)
%ld long Entero grande
%lf double Reales
scanf()
La entrada de datos puede ser realizada desde diferentes dispositivos de entrada, pero con la
que vamos a trabajar a continuación es el teclado, para ello se utiliza la función scanf()
Formato:
scanf(“caracter de especificación”,&var1, &var2,…,&varn);
Ejemplo:
int a;
float b;
char c;
scanf(“%d %f %c”,&a, &b,&c);
Gets()
La bibilioteca de C tiene una función específica para trabajar las cadenas, la cual lee una
cadena hasta teclear “ENTER”, colocándose automáticamente al final de cadena \n o
caracter nulo \0.
Formato:
gets(var-cadena);
Ejemplo:
char nom[20];
printf(“Introduzca su nombre”);
gets(nom);
Siempre que se defina una cadena, se hará con un espacio más al espacio previsto como
máxima longitud para el caracter del fin de cadena.
Cuando se lee un carácter o una cadena de caracteres varias veces hay que utilizar la
función fflush(stdin) para limpiar el flujo de entrada porque al presionar enter queda
ese carácter en el flujo.
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
{
char m[20];
clrscr();
printf("Ingrese la cadena");
scanf("[^\n]", m);
fflush(stdin.h);
getch();
}
Printf()
Permite mostrar en pantalla todos los resultados del programa al igual que los mensajes que
se deseen.
Formato:
printf(“cadena de control”, objeto); donde
Cadena de control puede ser caracteres de especificación, o constante de cadena o secuencia escape
o una combinación de lo anterior.
Objeto puede ser una variable, constante, expresión, o una combinación de ellas.
Ejemplo:
printf(“Introduzca su nombre”);
Secuencia de escape
Caracter Descripción
\n Salto de línea
\a Campana
\b Retroceso del carro (1 espacio)
\t Avance del carro (6 espacios)
\” Aparece la doble comilla
\\ Aparece la barra \
\? Aparece el signo ?
También es posible especificar el máximo números de cifras decimales para un valor en como
flotante, o el máximo número de caracteres. Esta especificación se denomina precisión. La
precisión es un entero sin signo que siempre es precedido por un punto decimal. Si se
especifica la longitud de campo además de la precisión, entonces la especificación de campo
debe preceder a la precisión y ambas preceden al carácter de conversión.
Formato:
%6.2f
Precisión
Longitud del campo
Ejemplo:
float i = 2.0, j = 3.0;
float x =890.476;
printf(“%f %f %f %f”, I,j,i+j,sqrt(i+j)); /*salida: 2.000000 3.000000 5.000000
2.0236068*/
printf(“%f %7.3f %7.1f”, x,x,x); /*salida: 890.476 890.476 890.5*/
getch():
No se ve el caracter tecleado en la pantalla.
No se da enter, pero lo acepta.
Ejemplo:
char c;
getch(); o c = getch();
getche():
Se ve el caracter tecleado en la pantalla.
No se da enter, pero lo acepta.
Ejemplo:
char c;
getche(); o c = getche();
Operaciones y expresiones
Expresiones: puede ser una variable, constante, funciones predefinidas combinados e
interrelacionados a través de operadores. En c tenemos expresiones:
Aritméticas
3+4 = 7
Lógicas
A>B
Los datos sobre los cuales actúan los operadores se les denomina operandos. Algunos
operadores requieren dos operando, mientras que otros actúan sobre uno.
Operadores: Son símbolos que indican como son manipulados los datos. Veremos:
Operadores aritméticos.
Trabajan sobre valores numéricos, enteros, reales y char; en C existen 5 operadores
aritméticos.
Operador Descripción Ejemplo
+ Suma 3+4=7
* Multiplicación 5 *6 = 30
/ División 15 / 3 = 5
++ Incremento de 1
-- Decremento de 1
Formato:
Operador monario valor numérico
Jerarquía de operación
1 ()
2 ++, --
3 *,/,%
4 +, -
Operadores relacionales y lógicos.
Operadores relacionales: Siempre devuelve 1 0 dependiendo del resultado de la prueba:
0 es falso
1 es cierto
Operadors lógicos
Operador Descripción
relacional
&& AND Da como resultado 1, si ambas comparaciones son ciertas.
Jerarquía
1 !
2 <,<=,>,>=
3 ==, !=
4 &&
5 ||
Operadores de asignación
En una operación de asignación el valor de derecha es convertido al tipo del valor de la
izquierda.
Operador Descripción
relacional
= Asignación
Ejemplos:
x*=3; //equivale a x =x*3;
x*=n-3 //x = x*(n-3)
Sentencias de Control
Cuando hay un conjunto de sentencias a realizar por la parte cierta o por la parte falsa, hay
que utilizar llaves para indicar el inicio y fin de bloque en C.
Sentencia If
En la programación es escencial el manejo de bifurcaciones (si-entonces), en el Lenguaje C
se usa la sentencia if().
Sentencia if (simple)
Formato
if(condicion)
{
Sentencia;
}
Ejemplo
#include <stdio.h>
int main()
{
int i;
printf("Introduzca un número: ");
scanf("%d",&i);
if(i<0)
printf("El número es negativo\n");
else
printf("El número es positivo o cero\n");
return 0;
}
Las acciones dentro de las llaves {} se ejecutarán siempre y cuando se cumpla la condición
especificada entre los peréntesis (). También es posible omitir las llaves si se fuera a ejecutar
una sola acción.
La condición puede ser cualquier expresión lógica como por ejemplo a<=b ó x!= 0 ó z+10 <
a && b>0, entre otras.
Sentencia if (compuestos)
Formato
if (expresión)
sentencia(s);
else
if(expresión)
sentencia(s);
else
sentencia(s);
Ejemplo:
if(c ==1)
printf(“soltero”);
Sentencia if (anidados)
Formato
if (expresión)
if (expresión)
if (expresión)
sentencia(s);
else
sentencia(s);
else
sentencia(s);
else
Ejemplo:
if (a==1)
if (b==2)
if (b==3)
printf(“Todas son ciertas”);
else
printf(“\nC no es 3”);
else
printf(“\nb no es 2”);;
else
printf(“\na no es 1”);;
Sentencia de Selección Múltiple (switch)
Un programa puede contener una serie de decisiones en las cuales una variable o expresión
se probará por separado contra cada uno de los valores constantes enteros que pueda asumir
y se tomarán diferentes acciones. Para esta forma de toma de decisiones se proporciona la
estructura de decisión múltiple switch.
Formato
switch (expresión)
{
case const1:
sentencia(s);
break;
case const2:
sentencia(s);
break;
default: //opcional
sentencia(s);
}
Ejemplo:
Sentencia While
Evalúa una condición y, si ésta da como resultado verdadero (true), ejecuta una sentencia o
serie de sentencias antes de volver a ejecutar el bucle para evaluar la condición nuevamente.
Después de que la condición dé como resultado falso (false), se omite la sentencia o serie de
sentencias y finaliza el bucle.
Formato
while(expresión)
sentencia(s);
/*si tiene más de una instrucción dentro del ciclo se colocan llaves*/
Ejemplo:
#include <stdio.h>
void main()
{
int num=0;
while(num<=20);
{
printf(“%d\n”, num);
++num;
}
}
Sentencia Do While
Es similar a la estructura while. La diferencia es que la condición de continuación del ciclo
se testea después de ejecutar el cuerpo del ciclo y por lo tanto el cuerpo del ciclo se ejecutará
al menos una vez.
Formato
do
{ sentencia(s); }
while(expresión);
Ejemplo:
#include <stdio.h>
void main()
{
int num=0;
do
{
printf(“%d\n”, num);
++num;
}while(num<=20);
}
Sentencia For
Evalúa la expresión inicialización una vez y, a continuación, inicia una secuencia de
reproducción indefinida. La secuencia de reproducción indefinida se inicia evaluando la
expresión condición. Si la expresión condición da como resultado true, se ejecutan la o las
sentencias y se evalúa la expresión incremento/decremento. La secuencia de reproducción
indefinida se inicia nuevamente con la evaluación de la expresión condición.
Formato
for(inicialización;condición; incremento/decremento)
sentencia(s);
Ejemplo
#include <stdio.h>
void main() {
int n;
for (n = 1; n <= 10; n++)
{
printf(“Número %d:”, n);
}
}