You are on page 1of 13

LIA.

DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

CBTIS.NO.102
HERIC SAMUEL ROSAS AGUILAR LIA.DISELA PACHECO HERNANDEZ PRINCIPIOS DE PROGRAMACIN ESPECIALIDAD: INFORMATICA TRABAJO: RESUMEN
HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

4E
INVESTIGACION:
C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchien en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje dbilmente tipificado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos. La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.1591989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es porttil entre plataformas y/o arquitecturas. Lenguaje de mquina es el sistema de cdigos directamente interpretable por un circuito micro programable, como el microprocesador de una computadora o el micro controlador de un autmata (un PLC) . Este lenguaje est compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de mquina (ms los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de mquina es especfico de cada mquina o arquitectura de la mquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas. Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser simplemente texto. Este proceso de traduccin se conoce como compilacin.1

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora Intrprete o interpretador: es un programa informtico capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los primeros (los intrpretes) slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin. Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables especficos a cada sistema. Los programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles como entornos de programacin y depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina virtual). Los enteros son el tipo de dato ms primitivo en C. Se usan para representar nmeros enteros. Pero siempre se pueden encontrar otras aplicaciones para los nmeros enteros. En general se pueden usar para representar cualquier variable discreta. Los tipos de datos enteros son: short, int, long y long long. Para el lenguaje C existen diferentes tamaos de nmeros enteros que, segn el compilador y la plataforma de hardware, pueden tener desde 1 byte hasta 8 bytes (para ms detalles busca en la referencia). Adems, el lenguaje C hace la distincin de si el entero es con signo o sin signo (signed o un signed). La forma de declarar un entero es con uno de los tipos de datos que sean enteros segn el tamao que se quiera. En caso de que no se declare si es con signo o sin signo, se toma con signo.

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

Algunos ejemplos de declaraciones de enteros: int a; unsigned int a; signed long a; signed long long a = 10000000; Todos los nmeros son representados en memoria mediante una cadena de bits. En el caso de los nmeros con signo, el bit ms significativo es el que se usa para representar el signo. La representacin de los nmeros negativos se realiza mediante el complemento a dos, que es una tcnica que permite operar con los nmeros negativos de forma lgica. Slo a modo de ejemplo, la representacin en memoria de un -8 en una variable de 2 bytes, entera, con signo sera la siguiente: 1111111111111000. Flotantes Se denomina flotantes a los tipos de datos que representan a los nmeros reales, ya que utilizan un sistema de representacin basado en la tcnica de coma flotante, que permite operar con nmeros reales de diversas magnitudes, mediante un nmero decimal llamado mantisa y un exponente que indica el orden de magnitud. El tipo de dato flotante en lenguaje C slo tiene dos tamaos: el float y el double, que son 4 bytes y 8 bytes respectivamente. Se los puede utilizar tanto para representar nmeros decimales, como para representar nmeros enteros con un orden de magnitud muy grande. La forma de declarar una variable flotante es escribiendo en una lnea uno de los tipos de datos flotantes y a continuacin el nombre de la variable y tal vez algn valor que se les quiera dar. Algunos ejemplos: float a; double a = 1e23; double a = 3.1416; float a = 4e-9; Double a = -78;

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

Hay que tener en cuenta que aunque los valores flotantes son ms convenientes para algunas aplicaciones, hay casos en los que se prefieren los enteros. Esto se debe a que los nmeros flotantes no necesariamente tienen soporte de hardware, en particular en las plataformas integradas. Una alternativa que se utiliza en estas situaciones es interpretar los enteros como decimales de forma que 150 se interprete como 1.5 y 2345 como 23.45. Para el caso de los flotantes de 4 bytes, se utiliza 1 bit para el signo, 8 bits para el exponente y 23 bits para el valor del nmero. El procedimiento para almacenar un nmero en una variable flotante es el siguiente: 1. Se convierte a binario la parte entera. 2. Se coloca el signo en el bit ms significativo de la misma manera que en los enteros (1 para el - y 0 para el +). 3. Se mueve la coma (en la representacin binaria de la parte entera) hasta que est a la derecha del primer uno y ste se descarta (el uno ms significativo). El valor del exponente ser el nmero de posiciones que se movi la coma. El exponente usa la representacin de un entero con complemento a dos. 4. Se convierte en binario la parte decimal del nmero. Esto usando el peso de los bits. el bit decimal ms significativo vale 1/2, el siguiente vale 1/4, el otro 1/8, el otro 1/16 y as hasta completar lo que falta para los 23bits del valor. 5. Se concatena todo y ese es el valor flotante representado en memoria. Caracteres de conversin Los caracteres se representan utilizando el tipo char, que tiene slo 1 byte de tamao. Este tipo se utiliza para representar los 255 caracteres de la tabla de caracteres del sistema. El tipo char es tambin un tipo entero, ya que puede tomar valores de 0 a 255. En cuanto a la forma de declarar variables de tipo char es la misma forma que con los otros tipos. char a; char a = 's'; char a = 48; Como puedes ver, se le puede asignar un nmero a una variable char, ya que se trata de un tipo entero. En algunas situaciones particulares se utiliza el tipo char para contadores, porque permite que ocupen slo un byte en memoria. Es importante notar que con la llegada de la codificacin UTF-8, los caracteres de los diversos idiomas pueden ocupar 1, 2, 3 o 4 bytes, de modo que el tipo char ya no alcanza para la representacin de todos los caracteres. Por ello, el estndar

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

C99 introduce el tipo wchar que puede ocupar ms de 1 byte, segn sea necesario para la codificacin utilizada por el sistema. Bibliotecas estndares El lenguaje C es muy simple. Carece de tipos y servicios que forman parte de otros lenguajes. No tiene tipo booleano, ni manejo de cadenas, ni manejo de memoria dinmica. No obstante, el estndar de C define un conjunto de bibliotecas de funciones, que necesariamente vienen con todo entorno de compilacin de C y que satisfacen estos servicios elementales. Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras ( header files ). El nombre de estos ficheros suele terminar en .h Algunos de los servicios proporcionados por las bibliotecas estndares son:

entrada y salida de datos (stdio.h) manejo de cadenas (string.h) memoria dinmica (stdlib.h) rutinas matemticas (math.h)

Estructuras de datos

literales tipos bsicos (todos numricos) tipos enumerados tipos estructurados (struct, union) punteros y vectores

Construcciones algortmicas

construcciones condicionales (if,switch) construcciones iterativas(while,for,do...while) subrutinas (funciones)

Adems de lo anterior, el C tiene otros elementos:


comentarios inclusin de ficheros macros compilacin condicional El pseudocdigo (o falso lenguaje) es comnmente utilizado por los programadores para omitir secciones de cdigo o para dar una explicacin

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

del paradigma que tom el mismo programador para hacer sus cdigos, esto quiere decir que el pseudocdigo no es programable sino facilita la programacin. El principal objetivo del pseudocdigo es el de representar la solucin a un algoritmo de la forma ms detallada posible, y a su vez lo ms parecida posible al lenguaje que posteriormente se utilizar para la codificacin del mismo.

STDIO.H: que significa "standard input-output header" (cabecera estandar E/S), es la biblioteca estndar del lenguaje de programacin C, el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones y la definicin de tipos usados por varias operaciones estndar de entrada y salida. Por motivos de compatibilidad, el lenguaje de programacin C++ (derivado de C) tambin tiene su propia implementacin de estas funciones, que son declaradas con el archivo de cabecera stdio. #include <stdio.h> int main(void) { Int ch; while ((ch = getchar()) != EOF) putchar(ch); putchar('\n'); return 0; }

Nombre

Descripcin

Funciones de manipulacin de ficheros

fclose

cierra un fichero a travs de su puntero

fopen, freopen, fdopen

abre un fichero para lectura, para escritura/reescritura o para adicin

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

remove

elimina un fichero

rename

cambia al fichero de nombre

rewind

La funcin rewind coloca el indicador de posicin de fichero para el stream apuntado por stream al comienzo del fichero.

tmpfile

crea y abre un fichero temporal que es borrado cuando cerramos con la funcin fclose()

Funciones de manipulacin de entradas y salidas

clearerr

Despeja los indicadores de final de fichero y de posicin de fichero para el stream apuntado por stream al comienzo del fichero.

feof

comprueba el indicador de final de fichero

ferror

comprueba el indicador de errores

fflush

Si stream apunta a un stream de salida o de actualizacin cuya operacin ms reciente no era de entrada, la funcin fflush enva cualquier dato an sin escribir al entorno local o a ser escrito en el fichero; si no, entonces el comportamiento no est definido. Si stream es un puntero nulo, la funcin fflush realiza el despeje para todos los streams cuyo comportamiento est descrito anteriormente.

fgetpos

devuelve la posicin actual del fichero

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

fgetc

devuelve un carcter de un fichero

fgets

consigue una cadena de caracteres de un fichero

fputc

escribe un carcter en un fichero

fputs

escribe una cadena de caracteres en un fichero

ftell

devuelve la posicin actual del fichero como nmero de bytes

fseek

sita el puntero de un fichero en una posicin aleatoria

fsetpos

cambia la posicin actual de un fichero

fread

lee diferentes tamaos de datos de un fichero

fwrite

enva, desde el array apuntado por puntero, hasta nmemb de elementos cuyo tamao es especificado por tamao. El indicador de posicin de ficheros es avanzado por el nmero de caracteres escritos correctamente. Si existe un error, el valor resultante del indicador de posicin de ficheros es indeterminado.

getc

devuelve un carcter desde un fichero

getchar

igual que getc

gets

lee caracteres de entrada hasta que encuentra un salto de lnea, y

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

los almacena en un nico argumento.

printf, fprintf, sprintf snprintf

usados para imprimir salidas de datos

vprintf

tambin utilizado para imprimir salidas

perror

escribe un mensaje de error a stderr

putc

devuelve un carcter de un fichero

putchar, fputchar

igual que putc(stdout)

scanf, fscanf, sscanf

Utilizado para introducir entradas.

vfscanf, vscanf, vsscanf

tambin utilizado para introducir entradas.

setbuf

Esta funcin es equivalente a la funcin setvbuf pasando los valores _IOFBF para modo y BUFSIZ para tamao, o (si acumulador es un puntero nulo), con el valor _IONBF para modo.

setvbuf

Slo puede ser usada despus de que el stream apuntado por stream ha sido asociado con un fichero abierto y antes de otra

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

operacin cualquiera es llevada acabo al stream. El argumento modo determina cmo stream ser almacenado segn lo siguiente: _IOFBF ocasiona la entrada/salida a ser completamente almacenado; _IOLBF ocasiona la entrada/salida a almacenar por lneas; _IONBF ocasiona la entrada/salida a no ser almacenado. Si acumulador no es un puntero nulo, el array al que es apuntado puede ser usado en vez de la acumulacin adjudicada por la funcin setvbuf. El argumento tamao especifica el tamao del array.

tmpnam

Genera una cadena de caracteres que es un nombre vlido para ficheros y que no es igual al nombre de un fichero existente. La funcin tmpnam genera una cadena diferente cada vez que es llamada, hasta un mximo de TMP_MAX veces. Si la funcin es llamada ms veces que TMP_MAX, entonces el comportamiento de la funcin est definido segn la implementacin del compilador.

ungetc

puts

imprime una de cadena de caracteres

Las funciones de conio: (CONsole Input Output) permiten, como las de Ncurses, cambiar el color del texto y del fondo, mostrar caracteres en cualquier posicin de la consola, leer datos de entrada sin necesidad de pulsar intro, y un montn de cosas ms. Eso s, es bastante ms restrictiva que Ncurses en otros aspectos, como la definicin y manipulacin de ventanas. Conio es una librera no estndar. Estaba disponible en la mayor parte de los compiladores de C para entornos MS-DOS y Windows 3.x, pero haba diferencias sustanciales entre unas implementaciones y otras, precisamente debido a que la librera no es estndar.

string.h: es un archivo de la Biblioteca estndar del lenguaje de programacin C que contiene la definicin de macros, constantes, funciones y tipos de utilidad para
HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

trabajar con cadenas de caracteres y algunas operaciones de manipulacin de memoria (el nombre string puede ser algo inapropiado). Las funciones declaradas en string.h se han hecho muy populares, por lo que estn garantizadas para cualquier plataforma que soporte C. Sin embargo, existen algunos problemas de seguridad con estas funciones, como el desbordamiento de buffer (buffer overflow), que hacen que algunos programadores prefieran opciones ms seguras frente a la portabilidad que estas funciones ofrecen. Adems, las funciones para cadenas de caracteres slo trabajan con conjuntos de caracteres ASCII o extensiones ASCII compatibles. LA DIRECTIVA #DEFINE: define una macro. Las macros proporcionan un mecanismo de reemplazo de tokens con o sin una serie de parmetros formales (parecidos a las funciones). Esta similitud con las funciones hace que en ocasiones sirvan para una especie de sustitucin inline, aunque esta prctica presenta sus riesgos.

FUNCIONES: Clrscr: limpia la pantalla actual (usando los colores actuales), y poniendo el cursor en la esquina de arriba izquierda de la actual pantalla. Clreol limpia la lnea actual, empezando donde esta la posicin del cursor, al el final de la ventana. El cursor no se mueve Prinf: esta puesto para imprimir el resultado en STDOUT, si quieres especificar otro objeto lo debes de hacer de la siguiente manera: printf([OBJETO] FORMATO, VALORES); Gotoxy: significa go to (x, y), es decir ir a (x, y), donde (x, y) es una coordenada de nuestra pantalla. Se suele usar antes de un printf, para poner el texto en una cierta parte de la pantalla. Esta funcin selecciona el color de texto especificado por el argumento color. Esta funcin solamente funciona con aquellas funciones que envan datos de salida en modo texto directamente a la pantalla. El argumento color es un nmero entero entre 0 y 15 y el nmero 128, para activar el parpadeo; tambin se pueden usar constantes simblicas definidas en conio.h en lugar de enteros. La funcin textcolor no afecta cualquiera de los caracteres actualmente en pantalla, pero s afecta aqullas mostradas por funciones que usan el vdeo directamente para la salida en modo texto despus de llamar a la funcin textcolor.

HERIC ROSAS AGUILAR 4E

LIA. DISELA PACHECO HDEZ PRINCIPIOS DE PROGRAMACION

Getch: La funcin getch retorna el carcter ledo desde el teclado. Lee un solo carcter directamente desde el teclado, sin mostrar tal carcter en pantalla Grtche: La funcin getch retorna el carcter ledo desde el teclado. Lee un solo carcter directamente desde el teclado, mostrando tal carcter en pantalla, a travs de la BIOS o por directamente a vdeo. Esta funcin selecciona el color de fondo especificado por el argumento color. Esta funcin solamente funciona con aquellas funciones que envan datos de salida en modo texto directamente a la pantalla. El argumento color es un nmero entero entre 0 y 7; tambin se pueden usar constantes simblicas definidas en conio.h en lugar de enteros. La funcin textattr no afecta cualquiera de los caracteres actualmente en pantalla, pero s afecta aqullas mostradas por funciones que usan el vdeo directamente para la salida en modo texto despus de llamar a la funcin textattr. Textblackground: La funcin textbackground no retorna ningn valor. Existen varias constantes simblicas de colores para usar.

HERIC ROSAS AGUILAR 4E