Anda di halaman 1dari 15

Material Didctico de la Asignatura de Programacin I

I Unidad: Lenguajes de Programacin y Programas


Elaborado: Msc Lesbia Valerio Lacayo

Bibliografa:

Texto Bsico

Deitel / Deitel
Programacin En C / C++
Tercera Edicin. Mc Graw Hill, Mxico, 1997.

Textos Complementarios

1) Byron Gottriend
Programacin en C
Segunda Edicin. Schaum, Mxico, 1995.

2) Ceballos Francisco Javier


Programacin en C
Tercera Edicin. Mc Graw Hill, Mexico, 1997.

3) Herbert Schildt
Programacin en C
Tercera Edicin. Mc Graw Hill
Mxico 1990.

4) Ceballos Francisco Javier


Curso de programacin con C
Tercera Edicin. Macrobit, Espaa 1990
I-Unidad: Introduccin a la Programacin en C

Contenido:

1.1 Introduccin a la programacin


1.2 Historia de C
1.3 Biblioteca Estndar de C.
1.4 Fundamentos del entorno de C
1.5 Tipos de Datos, Constantes, Expresiones
1.6 Operadores: Aritmticos, Relacionales y lgicos
1.7 Un Programa simple en C.

Introduccin a la Programacin:

Los Lenguajes utilizados para escribir programas de computadoras que pueden ser entendidos por
ellas se denominan Lenguajes de programacin.

Los Lenguajes de programacin se clasifican en tres grandes categoras:

Lenguaje de mquina
Lenguaje de bajo nivel
Lenguaje de alto nivel

1- Lenguaje de mquina:

Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan
traduccin posterior para que la UCP pueda comprender y ejecutar el programa. Las instrucciones
en lenguaje de mquina se expresan en trminos de la unidad de memoria ms pequea.

2- Lenguaje de Bajo Nivel:

Los lenguajes de mquina son generalmente dependiente de la mquina es decir dependen de un


conjunto de instrucciones especificas de la computadora, un lenguaje tpico de bajo nivel es el
lenguaje ensamblador. En este lenguaje las instrucciones se escriben en cdigos alfabticos
conocidos como nemotcnicos (abreviatura de palabras ingles o espaol)

EJ: ADD (suma) MPY (multiplicar) STO (almacenar)

SUB (restar) DIV (dividir)

Ej: ADD X, Y STO Z


3- Lenguaje de Alto Nivel:

Los lenguajes de programacin de alto nivel (Ada, Basic, Cobol, Fortran, Modula-2, Pascal, etc) son
aquellos en que las instrucciones o sentencias en la computadora son escritas con palabras
similares a los lenguajes humano.

Ej: if (x = y) and (z= w) then write (Esto es un prueba)

Los lenguajes de programacin son en general transportables, esto significa que un programa
escrito en un lenguaje de alto nivel se puede escribir con poca o ninguna modificacin en
diferentes tipos de computadora.

Los programas escritos en lenguajes de alto nivel no son entendibles directamente por la mquina.
Necesitan ser traducidos a instrucciones en lenguaje de mquina que entiendan las computadoras.

Los programas que realizan esta traduccin se llaman compiladores y los programas escrito en un
lenguaje de alto nivel se llaman programas fuente.

El compilador traduce el programa fuente en un programa llamado programa objeto

Este programa objeto se utiliza en la fase de ejecucin del programa. El proceso de traduccin de
un programa se denomina compilacin y tras la fase de enlace se obtiene un programa ejecutable
directamente por la computadora.

Traductores de Lenguajes: Compiladores

Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en


memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacin se realiza
con un programa editor, luego el programa fuente se convierte en un archivo de programa que se
guarda en disco.

El programa fuente debe ser traducido a lenguaje de mquina este proceso se realiza con el
compilador y el sistema operativo que se encarga prcticamente de la compilacin.

Si tras la compilacin se presentan errores de compilacin en el programa fuente, es preciso volver


a editar el programa, corregir errores y compilar de nuevo.

Este proceso se repite hasta que no se producen errores, obtenindose el programa objeto que
todava no es ejecutable directamente.
Verificacin y Depuracin de un programa:

La verificacin o compilacin de un programa es el proceso de ejecucin con una amplia variedad


de datos de entrada, llamados datos de test o prueba, que determinarn si el programa tiene
errores. Para realizar la verificacin se debe desarrollar una amplia gama de datos de test: valores
normales de entrada.

La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos
errores.

Cuando se ejecuta un programa se pueden producir tres tipos de errores:

Errores de compilacin: Se producen por uso incorrecto de las reglas del


Lenguaje de programacin y suele ser errores de sintaxis.

Errores de Ejecucin: Estos errores se producen por instrucciones que la


computadora pude comprender pero no ejecutar . Ej. Divisin por cero, raz
cuadrada de nmeros negativos.

Errores lgicos: Se producen en la lgica del programa y la fuente del error


suele ser el diseo del algoritmo. Estos errores son difciles de detectar ya que el
programa puede funcionar y no producir errores de compilacin ni de
ejecucin, y solo puede advertir el error por la obtencin de resultados incorrectos.

Documentacin y Mantenimiento:

La documentacin de un problema consta de la descripcin de los pasos a dar en el proceso de


resolucin de un problema. La importancia de la documentacin debe ser destacada por su
decisiva influencias en el producto final.

Programas pobremente documentados son difciles de leer, ms difciles de depurar y casi


imposible de mantener y modificar.

La documentacin de un programa puede ser interna y externa. La documentacin interna es la


contenida en lneas de comentarios.

La documentacin externa incluye anlisis, diagramas de flujo y pseudocdigos, manuales de


usuarios con instrucciones para ejecutar el programa y para interpretar los resultados.

Programa:

Grupo de instrucciones electrnicas, detalladas ordenadas que hacen que la computadora


obedezca y realice esa orden, indica a la computadora lo que debe hacer.
Partes de un programa

Cabecera del programa


Seccin de declaracin
Cuerpo del programa

Historia de C

C evolucion a partir de dos lenguajes previos BCPL y B.BCPL fue desarrollado en 1967 por
Martin Richards como un lenguaje para escribir software y compiladores de sistemas operativos.

Ken Thompson model muchas caractersticas de su lenguaje B siguiendo sus contrapartidas en


BCPL y utiliz B en 1970 para crear versiones iniciales del sistema operativo UNIX en los
laboratorios Bell sobre una computadora PDP-7 de DEC.

Tanto BCPL como B eran lenguajes sin tipo cada elemento de datos ocupaba una palabra en
memoria y quedaba a cargo del programador el tratar un elemento de datos como si se tratar de
un nmero entero o de un nmero real.

El lenguaje C fue derivado del lenguaje B por Dennis Ritchie de los laboratorios Bell y al inicio se
implant en 1972 en una computadora PDP-11 de DEC.

C al inicio se hizo muy conocido como lenguaje de desarrollo del sistema operativo UNIX.

Hoy en da virtualmente todos los sistemas principales estn escritos en C o C++. A lo largo de las
ltimas dos dcadas C se ha hecho disponible para la mayor parte de las computadoras. C es
independiente del Hardware con un diseo cuidadoso, es posible escribir programas en C que sean
porttiles hacia la mayor parte de las computadoras.

C utiliza muchos de los conceptos importantes de BCPL y de B, adems de aadir los tipos de datos
y otras caractersticas poderosas.

Hacia finales de los 70 C ha evolucionado a lo largo de hoy se conoce como C tradicional.

Dado que C es un lenguaje independiente de hardware y ampliamente disponible las aplicaciones


que estn escritas en C pueden ejecutarse con poca o ninguna modificacin en una amplia gama
de sistemas distintos de cmputo.

La Biblioteca Estndar de C

Los programas en C consisten de mdulos o piezas que se denominan funciones. Usted puede
programar todas las funciones que necesita para formar un programa en C, pero la mayor parte de
los programadores de C aprovechan una gran recopilacin de funciones existentes que se conocen
como la biblioteca estndar de C.
Entonces para aprender el Universo de C de hecho existen dos parte:

1. Aprender el lenguaje C mismo


2. Aprender cmo utilizar las funciones de la biblioteca estndar de C.

El usar funciones de la biblioteca estndar ANSI en vez de escribir sus propias versiones
comparables, puede mejorar el rendimiento de los programas, porque estas funciones
estn escritas de forma cuidadosa para que se ejecuten con eficacia.

El usar funciones de biblioteca estndar ANSI en vez de escribir sus propias


Versiones comparables, puede mejorar la portabilidad del programa porque

estas funciones estn incluidas en casi todas las implantaciones de ANSI C.

Fundamentos del entorno de C

Todos los sistemas C consisten en general de 3 partes:

1. El entorno
2. El lenguaje
3. Biblioteca estndar de C.

En el siguiente anlisis se explica el entorno tpico de desarrollo de C.

Los programas C casi siempre pasan a travs de 6 fases para su ejecucin estas fases son:

Editar
Preprocesar
Compilar
Enlazar
Cargar
Ejecutar

La primera fase consiste en editar un archivo, esto se ejecuta con un programa de edicin. El
programador escribe un programa C utilizando el editor y si es necesario hace correcciones. El
programa a continuacin se almacena en un dispositivo de almacenamiento secundario como sera
un disco.

Los nombres de archivo de los programas C deben terminar con la extensin .C


A continuacin el programador da el comando de compilar el programa. El compilador traduce el
programa C a cdigo de Lenguaje mquina (se conoce como cdigo objeto).

En un sistema C un programa preprocesador ejecuta de forma automtica antes de la fase de


traduccin.

El preprocesador C obedece comandos especiales que se llaman directrices de preprocesador que


indican que antes de su compilacin se deben de ejecutar ciertas manipulaciones sobre el
programa.

Estas manipulaciones por lo regular consisten en la inclusin de otros archivos en el archivo a


compilar y en el reemplazo de smbolos especiales con texto de programa.

El preprocesador es invocado de manera automtica por el compilador antes que el programa sea
convertido a lenguaje de mquina.

La cuarta fase se conoce como enlace. Los programas en C por lo general contienen referencias a
funciones definidas en algn otro lugar como en biblioteca estndar o en bibliotecas de un grupo
de programadores que trabajan en un proyecto en particular.

Entonces el cdigo objeto producido por el compilador C tpicamente contendr Huecos debido
a estas partes faltantes, un enlazador vincular el cdigo objeto con el cdigo de las funciones
faltantes para producir una imagen ejecutable (sin ninguna parte faltante)

La quinta fase se llama cargar. Antes de que un programa pueda ser ejecutado, el mismo debe se
colocado en memoria. Esto se lleva a cabo mediante el cargador, que toma la imagen ejecutable
del disco y la transfiere a la memoria.

Por ltimo, la computadora bajo control de su CPU, ejecuta el programa una instruccin a la vez.

Operadores Aritmticos

Operacin Operador Expresin en C

Suma + f+7

Resta - pc

Multiplicacin * b*m

Divisin / x/y

Modulo % r%s

Div / r/s
Modulo:

En C proporciona el residuo despus de una divisin de enteros. El operador del modulo es un


operador entero, que puede ser utilizado solo con operando enteros.

X % Y resulta o entrega el residuo despus de que X haya sido dividido por Y.

7/4=1

7%4=3

17 / 5 = 3

17 % 5= 2

Operadores Relacionales

Operacin Operador Expresin en C

Asignacin = x = y no confundir con igual

Igual == x == y

Diferencia != x != y

Mayor > x>y

Menor < x<y

Mayor o igual >= x >= y

Menor o igual <= y <= y

Operadores Lgicos

Operacin Operador Expresin en C

and && x && y

Or || x || y

Not ! x!y
Las expresiones aritmticas en C deben de ser escritas en una lnea continua

Orden de Precedencia:

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

Palabras Reservadas: Son aquellas palabras que son propias del lenguaje utilizado

Ejemplo: if, case, float, while, for etc.

Tipos de Datos

long double

double

float

unsigned long int

long int

unsigned int

int

short

char

1) Enteros: char, int, short, long, signed, unsignes y enum

2) Real: float, double, long double.

Otros tipos: punteros, array y struct.


int(entero): Un entero es para C un nmero sin punto decimal. El rango de valores depende de la
mquina. Igualmente ocurre con el tipo unsigned.

El uso de enteros producen un cdigo compacto y rpido.

Ejemplo: int n, x; declara las variables n y x de tipo entero.

int es la abreviacin de signed int.

-short (entero formato corto)2 bytes: Este tipo short proporciona un entero en el rango

de valores de -32768 a 32767

De forma similar el tipo unsigned short puede almacenar valores en el rango de 0 65535.

short es abreviacin de signed short int.

- long(entero formato largo) 4 bytes: Este tipo de nmero es idoneo para aplicaciones de

gestin. Al igual que los enteros, son nmeros sin punto decimal comprendido en

-2147483648.

- float: (reales em simple precisin 4 bytes)

Estos nmeros son los ms recurridos en un lenguaje de programacin. Un real en simple precisin
es un nmero que puede tener un punto decimal y puede estar comprendido em um rango. 7
digitos significativos.

Ej: float x; declara las variables x de tipo real.

-double(reales en doble precisin 8 bytes)

Cn respecto a un real de simple precisin um nmero em doble precisin no tiene ms de 15


dgitos significativos. Esto da lugar a clculos ms precisos.

- long double(reales doble precisin formato largo 8 bytes)

double: es un tipo de punto flotante parecido a float, pero una variable de tipo double puede
almacenar un valor de una magnitud mucho mayor y con mayor precisin que float.

int: tipo entero

long int: Enteros largos

short: enteros pequeos


unsigned int: Almacena un entero en por lo menos 2 bytes de memoria y puede tener
valor positivos y negativos o hasta 65535
float: Los valores con parte fraccionaria como 7.2 o son nmeros de punto flotante

Otros tipos:

- pointers(puntero)
- struct (registros)
- union (uniones
- Array (Arreglos)
- void (tipo de dato no numrico)

Especificador de conversin
Un especificador de conversin debe ser usado en una instruccin de lectura y escritura se
representa por un % y se hace acompaar de una letra que represente al tipo de dato usado.

Tipos de Datos Especificacin de conversin Especificacin de conversin


(Escritura) (Lectura)

long double %Lf %Lf


double %f %lf
float %f %f
unsigned long int %lu %lu
long int %ld %ld
unsigned int %u %u
int %d %d
short %hd %hd
char %c %c
char (cadena) %s %s

Secuencia de Escape Descripcin

\n Nueva lnea. Coloca el cursor al principio de la siguiente lnea


\t Tabulador horizontal. Mueve el cursor al siguiente tabulador
\r Retorno de carro. Coloca el cursor al comienzo de la lnea actual.
\a Alerta. Hace sonar la campana del sistema.
\\ Diagonal invertida. Imprime un carcter de diagonal en un enunciado de salida.
\ Doble comilla. Imprime un carcter de doble comilla en un enunciado de salida.
PREPROCESADOR

El preprocesador C obedece comandos especiales que se llaman directrices de preprocesador que


indican que antes de su compilacin se deben de ejecutar ciertas manipulaciones sobre el
programa.

Estas manipulaciones por lo regular consisten en la inclusin de otros archivos en el archivo a


compilar y en el reemplazo de smbolos especiales con texto de programa.

El preprocesador es invocado de manera automtica por el compilador antes que el programa sea
convertido a lenguaje de mquina.

La directiva #include permite incluir los archivos de cabeceras predefinidos o personalizados

La diferencia entre estas formas estriba en la localizacin donde el preprocesador buscar el


archivo a incluirse.

1- Si el nombre del archivo est encerrado entre corchetes angulares < > y que se
utilizan para los archivos de cabecera estndar de biblioteca la bsqueda se llevar a
cabo de forma independiente a la puesta en prctica, por lo regular a travs de
directorios predesignados.

2- Si el nombre del archivo est encerrado entre comillas , el preprocesador buscar


el archivo a incluirse en el mismo directorio que el del archivo normalmente para
incluir archivos de cabecera definidos por el programador.

Archivos de cabeceras

Cada biblioteca estndar tiene su archivo de cabecera correspondiente, que contiene los
prototipos de funcin de todas las funciones de dicha biblioteca y las definiciones de varios tipos
de datos y de constantes requeridas por dichas funciones.

Estos archivos de cabeceras se pueden incluir en programas. El programador puede crear archivos
de cabecera personalizados. Los archivos de cabeceras personalizados definidos por el usuario,
tambin deben terminare en .h

Un archivo de cabecera definido por el programador puede ser incluido utilizando la directriz de
preprocesador #include.
Ejemplo: El archivo de cabecera square.h puede ser incluido en nuestro programa mediante la
directriz.

#include square.h

#include <stdio.h>

Es una directriz del preprocesador de C. Las lneas que se inician con el signo de # son procesadas
por el preprocesador antes de la compilacin del programa.

Esta lnea de forma especfica le indica al preprocesador que incluya dentro del programa el
contenido del archivo de cabecera de entrada y salida.

Este archivo de cabecera contiene informacin y declaraciones utilizadas por el compilador al


compilar funciones estndar de biblioteca de entrada y salida como son printf. Este archivo
tambin contiene informacin que ayuda al compilador a determinar si las llamadas a las
funciones de biblioteca han sido escritas de manera correcta.

Aunque la inclusin de stdio.h es opcional deber ser incluida en cualquier programa C que utilice
funciones de E/S estndar de biblioteca.

main( )

Forma parte de todo programa de C. Los parntesis de main indican que main es un bloque
constructivo del programa conocido como una funcin. Los programas en C contienen una o ms
funciones, una de las cuales deber ser main.

Todos los programas en C empiezan a ejecutarse en la funcin main. Todas las funciones debern
ser precedidas por un comentario que describa el objeto de la funcin.

Comentario

/ * comentario * /

Indica que esta lnea es un comentario que se inserta para documentar los programas y mejorar la
legibilidad de los mismos. Los comentarios son ignorados por el compilador de C.

{ La llave izquierda debe de iniciar el cuerpo de cada funcin.

} La llave derecha correspondiente debe dar por terminada cada funcin.


Este par de llaves y la porcin de programa existente entre ambas, tambin se conoce como un
bloque. El bloque es una importante unidad de programa en C.

Funciones de Entrada y Salida

El print y el scanf son funciones que introducen flujos de datos estndar de entrada y extraen
flujos de datos estndar de salida respectivamente.

Las otras cuatro funciones que utilizan entradas y salidas estndar gets, puts, getchar y putchar y el
archivo de cabecera <stdio.h> se incluye en aquellos programas que llaman a estas funciones.

Formato de Entrada: scanf

Se consigue entrada con formato preciso utilizando scanf. Cada enunciado scanf contiene una
cadena de control de formato que describe el formato de los datos que se introducen. La cadena
de control de formato est formada de especificaciones de conversin y de caracteres literales.

Al introducir datos, solicite al usuario un elemento o pocos elementos de datos a la vez. Evite
solicitar al usuario la introduccin de muchos elementos de datos en respuesta a una solicitud.

El scanf es una lectura destructiva: El proceso de leer informacin a la memoria se le agrega el


operador de direccin & a cada variable de la instruccin de lectura.

Ejemplo

scanf (%d , &num);

& este operador de direccin en C le indica al scanf la posicin en memoria en la cual est
almacenada la variable. La computadora almacena el valor correspondiente a num en dicha
posicin.

Recuerde anteceder cada variable en todos los enunciados scanf con un &

Formato de Salida: print

Utilizando printf se consigue un formato de salida preciso. Cada llamada printf contiene una
cadena de control de formato, que describe el formato de la salida. La cadena de control de
formato consiste de especificador de conversin, banderas, ancho de campo, precisiones y
caracteres literales.

El printf es una lectura no destructiva: Cuando un valor se lee de la posicin de memoria. No


necesita el operador de direccin &
Un simple programa en C

1) #include <stdio.h>

main()
{
printf ( Bienvenido);
printf ( a lenguaje C);
}

Salida: Bienvenido a C

Anda mungkin juga menyukai