Lenguaje De Programación C - UNAM

Transcription

Lenguaje de programaciónCL.I. Francisco Ruiz SalaInstituto de AstronomíaFacultad de CienciasUNAM

¿Que es un leguaje deprogramación?Es el desarrollo de un algoritmo mediante símbolos y reglassintácticas y semánticas, expresadas en forma deinstrucciones y relaciones lógicas, mediante las cuales seconstruye el código fuente de una aplicación o pieza desoftware determinado.Así, puede llamarse también lenguaje de programación alresultado final de estos procesos creativos.

Tipos de Lenguajes deprogramaciónLenguajes de bajo nivel:Se trata de lenguajes de programación que están diseñadospara un hardware específico y que por lo tanto no puedenmigrar o exportarse a otros computadores.Sacan el mayor provecho posible al sistema para el quefueron diseñados, pero no aplican para ningún otro.Lenguajes de alto nivel:Se trata de lenguajes de programación que aspiran a ser unlenguaje más universal, por lo que pueden emplearseindistintamente de la arquitectura del hardware, es decir, endiversos tipos de sistemas.Los hay de propósito general y de propósito específico.

Clasificacion de Lenguajes deProgramaciónLenguajes imperativos:Menos flexibles, dada la secuencialidad en queconstruyen sus instrucciones, estos lenguajes programanmediante órdenes condicionales y un bloque de comandosal que retornan una vez llevada a cabo la función oprocedimiento. Ejemplos: C, Pascal, Fortran, B, python,Basic, Java, Cobol etc.Lenguajes funcionales o declarativos:También llamados procedimentales, estos lenguajesprograman mediante funciones que son invocadasconforme a la entrada recibida, que a su vez son resultadode otras funciones. Ejemplos: SQL, Hskel, /

Definición:Lenguaje CEl lenguaje C que define este estándar fueconocido vulgarmente como ANSI C.Posteriormente, en 1990, fue ratificadocomoestándarISO(ISO/IEC9899:1990). La adopción de esteestándar es muy amplia por lo que, si losprogramas creados lo siguen, el códigoes portátil entre plataformas y/oarquitecturas.

Historia:C es un lenguaje deprogramación creado en1972 por Dennis M.Ritchie en losLaboratorios Bell comoevolución del anteriorlenguaje B, a su vezbasado en BCPL.Al igual que B, es unlenguaje orientado a laimplementación deSistemas Operativos,concretamente Unix.

Historia:La primera estandarización del lenguaje C fueen ANSI (American National StandardsInstitute). El lenguaje que define esteestándar fue conocido vulgarmente comoANSI C. Posteriormente, en 1990, fueratificado como estándar ISO. La adopciónde este estándar es muy amplia por lo que, silos programas creados lo siguen, el código esportátil entre plataformas y/o arquitecturas.

Caracteristicas:Se trata de un lenguaje de tipos de datos estáticos,débilmente tipificado, de medio nivel pero conmuchas características de bajo nivel. Dispone de lasestructuras típicas de los lenguajes de alto nivelpero, a su vez, dispone de construcciones dellenguaje que permiten un control a muy bajo nivel.Los compiladores suelen ofrecer extensiones allenguaje que posibilitan mezclar código enensamblador con código C o acceder directamente amemoria o dispositivos periféricos.

Caracteristicas:- Núcleo de lenguaje simple que incluye funciones matemáticasy de manejo de archivos proporcionadas por bibliotecas- Lenguaje flexible que permitía programar de maneraestructurada y no estructurada- Inclusión de un sistema de tipos que impedía la realización deoperaciones sin sentido- Acceso a memoria de bajo nivel mediante el uso de punteros- Conjunto reducido de palabras reservadas- Paso de parámetros a funciones por valor- Tipos de datos agregados (struct) que permitían combinar,bajo un mismo tipo, datos de tipos distintos y manejarlos comouno solo.

-Es muy portable (transportable entre un gran número deplataformas hardware y plataformas software, sistemasoperativos).Existen numerosos compiladores para todo tipo deplataformas sobre los que corrren los mismos programas fuenteso con ligeras modificaciones. Es versátil y de bajo nivel, por lo que es idóneo para tareasrelativas a la programación del sistema.-A pesar de ser un excelente lenguaje para programación desistemas, es también un eficiente y potente lenguaje paraaplicaciones de propósito general.-Es un lenguaje pequeño, por lo que es relativamente fácilconstruir compiladores de C y además es también fácil deaprender.

El lenguaje C ofrecía diversos tipos de datos: "CHAR"(carácter), "INT" (enteros), "FLOAT" (números realesen precisión simple), y "DOUBLE" (números reales enprecisión doble) a los que posteriormente seañadieron los tipos "SHORT" (números enteros detamaño menor a un INT), "LONG" (números enterosde tamaño mayor a un INT), "UNSIGNED" (Enterossin signo), y "ENUMERACIONES" que junto a lasestructuras, las uniones y las tablas y matricescomponían un variado juego de tipos de datos con losque abordar múltiples problemas.

-Todos los compiladores suelen incluir potentes y excelentesbibliotecas de funciones compatibles con el estándar ANSI. Losdiferentes fabricantes suelen añadir a sus compiladoresfuncionalidades diversas que aumentan la eficiencia y potenciade los mismos y constituye una notable ventaja respecto a otroslenguajes.-Es un lenguaje muy utilizado para la construcción de: sistemasoperativos, ensambladores, programas de comunicaciones,intérpretes de lenguajes, compiladores de lenguajes, editores detextos, bases de datos, utilidades, controladores de red, etc.

¿Que es un lenguajeensamblador?El lenguaje ensamblador o assembler (en inglés: assemblylanguage y la abreviación asm) es un lenguaje deprogramación de bajo nivel. Consiste en un conjunto demnemónicos que representan instrucciones básicas paralos computadores, microprocesadores, microcontroladoresy otros circuitos integrados programables. Wikipedia; --------------------------------------------; Programa que imprime un string en la pantalla; --------------------------------------------.model small; modelo de memoria.stack; segmento del stack.data; segmento de datosCadena1 DB 'Hola Mundo. ' ; string a imprimir (finalizado en ).code; segmento del código; --------------------------------------------; Inicio del programa; ma:; -------------------------------------------------; inicia el segmento de datos; OV AX, @data; carga en AX la dirección del segmento de datosMOV DS, AX; mueve la dirección al registro de segmento por medio de AX; -------------------------------------------------; Imprime un string en pantalla; OV DX, offset Cadena1 ; mueve a DX la dirección del string a imprimirMOV AH, 9; AH código para indicar al MS DOS que imprima en la pantalla, el string en DS:DXINT 21h; llamada al MS DOS para ejecutar la función (en este caso especificada en AH); -------------------------------------------------; Finaliza el programa; NT 20h; llamada al MS DOS para finalizar el programaend programa

¿Que es un Interprete?Un intérprete es un programa que ejecuta línea a línea lasinstrucciones de un lenguaje de alto nivel.El intérprete carga el código fuente y traduce lasinstrucciones a un lenguaje intermedio que puede luego serejecutado.Los intérpretes se diferencian de los compiladores o de losensambladores en que mientras estos traducen unprograma desde su descripción en un lenguaje deprogramación al código de máquina del sistema, losintérpretes sólo realizan la traducción a medida que seanecesaria, típicamente, instrucción por instrucción, ynormalmente no guardan el resultado de dicha traducción.

Que es un Compilador: En informática, un compilador es un programa informáticoque transforma código fuente escrito en un lenguaje deprogramación o lenguaje informático (el lenguaje fuente), enotro lenguaje informático (el lenguaje objetivo, estando amenudo en formato binario conocido como código objeto).La razón más común para querer transformar código fuentees crear un programa ejecutable. Cualquier programa escrito en un lenguaje de programaciónde alto nivel debe ser traducido a código objeto antes de quepueda ser ejecutado, para que todos los programadores queusen tal lenguaje usen un compilador o un intérprete. Poresto, los compiladores son muy importantes para losprogramadores. Cualquier mejora hecha a un compiladorlleva a un gran número de programas mejoradoswikipwdia

InterpreteCompilador

Modo de traducción

Formato de compilador

ESTRUCTURA GENERALDE UN PROGRAMA ENCUn programa en C secompone de una o másfunciones. Una de lasfunciones debe serobligatoriamente main.Una función en C es ungrupo de instruccionesque realizan una o másacciones. Asimismo, unprograma contendrá unaserie de directivas#include que permitiránincluir en el mismoarchivo de cabecera quea su vez constarán defunciones y datospredefinidos en ellos.

Ejemplos:// -- Comentario.// necesario para utilizar printf()# include stdio.h // Forzosamente se basa en librerias pre-definidasint main(void){printf("Hola Mundo\n");return 0;}

Explicacion del programa-La segunda línea es un comentario, identificado por los caracteres /* y */. Los comentariosse incluyen en programas que proporcionan explicaciones a los lectores de los mismos.Son ignorados por el compilador.-La tercera línea contiene la cabecera de la función main ( , obligatoria en cada programa C.Indica el comienzo del programa y requieren los paréntesis ( ) a continuación de main ( ) .-La cuarta y séptima línea contienen sólo las llaves { y 1 que encierran el cuerpo de lafunción main ( ) y son necesarias en todos los programas C.-La quinta línea contiene la sentenciaprintf("Bienvenid0 a la programación en C\n");que indica al sistema que escriba el mensaje "Bienvenido a la programación en C\n". tosporeldispositivoestándar,lapantalla.-La salida seráBienvenido a la programación en C El símbolo ' \n' es el símbolo de nueva línea. Poniendo este símbolo al final de la cadenaentre comillas, indica al sistema que comience una nueva línea después de imprimir loscaracteres precedentes, terminando, por consiguiente, la línea actual.-La sexta línea contiene la sentencia return o. Esta sentencia termina la ejecución delprograma y devuelve el control al sistema operativo de la computadora. El número O seutiliza para señalar que el programa ha terminado correctamente (con éxito).-Obsérvese el punto y coma (;) al final de la quinta y sexta línea. C requiere que cadasentencia termine con un punto y coma. No es necesario que esté al final de una línea. Sepueden poner varias sentencias en la misma línea y se puede hacer que una sentencia seextienda sobre varias líneas.

main e includeUn programa en C secompone de una o másfunciones. Una de lasfunciones debe serobligatoriamente main.Una función en C es ungrupo de instruccionesque realizan una o másacciones. Asimismo, unprograma contendrá unaserie de directivas#include que permitiránincluir en el mismoarchivo de cabecera quea su vez constarán defunciones y datospredefinidos en ellos.

Función main()Cada programa C tiene una función main() que es el punto de entrada al programa.Su estructura es:Main(){.Bloque de sentencias}Las sentencias incluidas entre las llaves { . . . } se denominan bloque. Un programadebe tener sólo una función main ( . Si se intenta hacer dos funciones main ( )se produce un error. Además de la función main ( ) , un programa C consta deuna colección de funciones.Una función C es un subprograma que devuelve un único valor, unconjunto de valores.En un programa corto, el programa completo puede incluirse totalmente en lafunción main ( ) . Un programa largo, sin embargo, tiene demasiados códigospara incluirlo en esta función. La función main() en un programa largo constaprácticamente de llamadas a las funciones definidas por el usuario.

Mas EjemplosLa directiva #include de la primera línea es necesariapara que el programa tenga salida. Se refiere a unarchivo externo denominado stdio.h en el que seproporciona la información relativa a la función printf( ) . Obsérvese que los ángulos y no son partedel nombre del archivo; se utilizan para indicar que elarchivo es un archivo de la biblioteca estándar C.

Formato del printfprintf("Color %s, numero1 %d, numero2 %05d, hex %x, real%5.2f.\n", "rojo", 12345, 89, 255, 3.14);

Formato del scanfscanf (cadena de control, lista de argumentos);Carácter SignificadocLee un carácter simpledLee un entero decimaliLee un entero decimal, octal o hexadecimaleLee un número en punto flotantefLee un número en punto flotantegUsa %e o %f, el más corto en long.oLee un entero octal cortosLee una cadena de caracteresuLee un entero decimal sin signoxLee un entero hexadecimal[.]Lee una cadena de caracteres con caracteresde espaciadopLee un puntero

Ejemplos scanf y printf//Ejemplo scanf#include stdio.h int n;printf("Introduce un numero: ");scanf("%d",&n);//Ejemplo prinf#include stdio.h int main(void){printf("¡Hola, mundo!\n");return 0;}/*Entrada y Salida: scanf*/#include stdio.h int main(){float a;char b;printf("Introduce un numero: ");scanf("%f",&a);printf("Intrduciste el numero: %f\n",a);getchar();printf("Introduce una letra: ");scanf("%c",&b);printf("Introduciste la letra %c\n\n",b);printf("Presiona Enter pasa Salir");getchar();getchar();return 0;}

Palabras reservadasUna palabra reservada (keyword o reservedword), tal como void es una característica dellenguaje C asociada con algún significadoespecial. Una palabra reservada no se puedeutilizar como nombre de identificador o función.Los siguientes identificadores están reservadospara utilizarlos como palabras reservadas, yno se deben emplear para otros propósitos.asm enum auto extern break float case forchar goto const if signed sizeof staticstruct switch typedef continue int uniondefault long un8igned do register voiddouble return volati1e else short while

COMENTARIOSYa se ha expuesto antes que loscomentarios en C tienen el formato:/*.*/Los comentarios se encierran entre / * y * /pueden extenderse a lo largo de variaslíneas. / * Titulo: Demo-uno porMr. Martinez * /

ARCHIVOS DE CABECERAUn archivo de cabecera es un archivo especial que contienedeclaraciones de elementos y funciones de la biblioteca. Parautilizar macros, constantes, tipos y funciones almacenadas enuna biblioteca, un programa debe utilizar la directiva#includepara insertar el archivo de cabecera correspondiente.Por ejemplo, si un programa utiliza la función pow que sealmacena en la biblioteca matemática math.h, debe contenerla directiva#include math.h para hacer que el contenido de la biblioteca matemática estédisponible a un programa. La mayoría de los programascontienen líneas como ésta al principio, que se incluyen en elmomento de compilación.#include stdio.h

TIPOS DE DATOS EN CLos tres tipos de datos básicos en C son:EnterosNúmeros de coma flotante (reales)carácteres

Declaración de variablesLa forma más simple de una declaración de variableen C es poner primero el tipo de dato y acontinuación el nombre de la variable. Si se deseadar un valor inicial a la variable, éste se pone acontinuación. El formato de la declaración es: tipo de dato nombre de variable valorinicial Se pueden también declarar múltiplesvariables en la misma línea: tipo-de-dato nomvariz,cnom-var2 . nom-varn Así, por ejemplo,int longitud; int valor 99;int valor1, valor2;int num-parte 1141, num-items 45;

Caracteres secuencia de escapeUn carácter que se lee utilizando una barra oblicua (\)se llama secuencia o código de escape.

Constantes definidasLas constantes pueden recibir nombres simbólicos mediante ladirectiva #define.#define NUEVALINEA \n#define PI 3.141592#define VALOR 54C sustituye los valores \n, 3.141592 y 54 cuando se encuentralas constantes simbólicas NUEVALINEA, P I y VALOR.Laslíneas anteriores no son sentencias y, por ello, no terminan enpunto y coma.printf("Elvalor es %dNUEVALINEA",VALOR);Escribe en pantalla la constante VALOR. Realmente, elcompilador lo que hace es sustituir en elprogama todas las ocurrencias de VALOR por 54, antes deanalizar sintácticamente el programa fuente.3.9.3. Constantesenumeradas

VariablesEn C una variable es una posición con nombre en memoriadonde se almacena un valor de un cierto tipo de dato. Lasvariables pueden almacenar todo tipo de datos: cadenas,números y estructuras. Una constante, por el contrario, esuna variable cuyo valor no puede ser modificado.Una variable típicamente tiene un nombre (un identificador) quedescribe su propósito. Toda variable utilizada en un programadebe ser declarada previamente. La definición en C debesituarse al principio del bloque, antes de toda sentenciaejecutable. Una definición reserva un espacio dealmacenamiento en memoria. El procedimiento para definir(crear)una variable es escribir el tipo de dato, el identificadoro nombre de la variable y, en ocasiones, el valor inicial quetomará. Por ejemplo,char Respuesta;significa que se reserva espacio en memoria para Respuesta,eneste caso, un carácter ocupa un solo byte.

Declaración de variablesUna declaración de una variable es una sentenciaque proporciona información de la variable alcornpilador C. Su sintaxis es:tipo variabletipo es el nombre de un tipo de dato conocido porel Cvariable es un identificador (nombre) válido en C.

Entradas y salidasC proporciona facilidades para entrada y salida, para lo que todoprograma deberá tener el archivo de cabecera stdio.h . En C laentrada y salida se lee y escribe de los dispositivos estándar deentrada y salida, se denominan stdin y stdout respectivamente.La salida, normalmente, es a pantalla del ordenador, la entradase capta del teclado. En el archivo stdio.h están definidasmacros, constantes, variables y funciones que permitenintercambiar datos con el exterior. A continuación se muestranlas más habituales y fáciles de utilizar.

Entrada

Salida

La sentencia ifLa sentencia if funciona de la siguiente manera.Cuando se alcanza la sentencia if dentro de unprograma, se evalúa la expresión entreparéntesis que viene a continuación de if. SiExpresión es verdadera, se ejecuta Acción; encaso contrario no se ejecuta Acción (en suformato más simple, A c c i ó n es unasentencia simple y en los restantes formatos esuna sentencia compuesta). En cualquier caso laejecución del programa continúa con lasiguiente sentencia del programa

La sentencia ifif (condición) sentencia;condiciónes una expresión entera(lógica).sentenciaes cualquier sentenciaejecutable, que se ejecutarásólo si la condición toma unvalor distinto de cero.

La sentencia if-elseif (Expresión)Acciónelse AcciónEn este formato Acción y Acción sonindividualmente, o bien una Únicasentencia que termina en un punto ycoma (;) o un grupo de sentenciasencerrado entre llaves. Cuando se ejecutala sentencia if-else, se evalúa Expresión.Si Expresión es verdadera, se ejecutaAcción y en caso contrario se ejecuta

La sentencia if-else

La sentencia if-else

La sentencia whileUn bucle (ciclo)es cualquier construcciónde programa que repite una sentencia osecuencia de sentencias un número deveces. La sentencia (o grupo desentencias) que se repiten en un bloquese denomina cuerpo del bucle y cadarepetición del cuerpo del bucle se llamaiteración del bucle.

La sentencia whileEl comportamiento o funcionamiento de una sentencia(bucle) while es:1. Se evalúa la condición- bucle2.Si condición-bucle es verdadera (distinto decero):a . La sentencia especificada, denominada el cuerpo del bucle,se ejecuta.b. Vuelve el control al paso I.3. En caso contrario:El control se transfiere a la sentencia siguiente al bucle osentencia while.Las sentencias del cuerpo del bucle se repiten mientras que laexpresión lógica (condición del bucle) sea verdadera. Cuandose evalúa la expresión lógica y resulta falsa, se termina y sesale del bucle y se ejecuta la siguiente sentencia deprograma después de la sentencia while.

La sentencia while

La sentencia while

El bucle forLa sentencia for (bucle for)es un métodopara ejecutar un bloque de sentencias unnúmero fijo de veces. El bucle for sediferencia del bucle while en que lasoperaciones de control del bucle sesitúan en un solo sitio: la cabecera de lasentencia.for (Inicialización; Condición; Incremento)sentencias

El bucle for

#include stdio.h int numero;int main(void){printf ("Introduzca un número entero: ");scanf ("%d", &numero);while (numero%2 0) {printf ("%d/2 %d\n", numero, numero/2);numero/ 2;}printf ("%d no es entero, saliendo.\n", numero);return 0;}

Bibliografia lenguaje C.pdf“El Lenguaje de Porogramacion C”Clasificación QA76.73C15 K46 1991ISBN 968-880-205-0Autor Kernighan, Brian W. autor.Título El lenguaje de programacion c /Brain w. kernighan, dennis m. ritchie ; tr.Néstor Gómez MuñozEdición 2Datos de publicac.México : Prentice Hall, c1991Descr. Física 294 páginas Notas Traduccion de:the c programming languageMateria C (Lenguaje de programación para computadora)Sec. Personal Ritchie, Dennis M. Autor Gomez Muñoz,Nestor, traductor

-A pesar de ser un excelente lenguaje para programaciónde sistemas, es tambiénun eficiente y potente lenguaje para aplicaciones de propósitogeneral. -Es un lenguaje pequeño, por lo que es relativamente fácil construir compiladores de C y ademáses tambiénfácilde aprender.