19
Lenguaje C Luisa Hernández Guaicaipuro Núñez Alfredo Ali Avila Barrios Carlos Augusto Lopes Alvarez Jim Alexander Pulgar Torres Integrantes:

Lenguaje C

Embed Size (px)

DESCRIPTION

Articulos sobre Lenguaje C

Citation preview

Page 1: Lenguaje C

Lenguaje C

Luisa Hernández

Guaicaipuro Núñez

Alfredo Ali Avila Barrios

Carlos Augusto Lopes Alvarez

Jim Alexander Pulgar Torres

Integrantes:

Page 2: Lenguaje C

Se trata de un lenguaje fuertemente tipificado de medio nivel pero con

muchas características de bajo nivel. Dispone de las estructuras típicas

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 código en ensamblador con código C o acceder directamente

a memoria o dispositivos periféricos.

Desde su nacimiento se fue implantando como el lenguaje de

programación de sistemas favorito para muchos programadores,

sobre todo por ser un lenguaje que conjugaba la abstracción de

los lenguajes de alto nivel con la eficiencia del lenguaje máquina.

Los programadores de sistemas que trabajaban sobre MS-DOS y

Macintosh también utilizaban C, con lo cual la práctica totalidad

de aplicaciones de sistema para microordenadores y para sistemas

UNIX está escrita en este lenguaje.

Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir

el código del sistema operativo UNIX.

Autor: Luisa Hernández

Page 3: Lenguaje C

•Orientado a la programación de sistemas

•Es altamente transportable

•Es muy flexible

•Genera código muy eficiente

•Es muy expresivo (se pueden realizar muchas funciones

escribiendo pocas líneas de código)

•Es muy poco modular

•Hace pocas comprobaciones

•Da poca disciplina al programador

•Es difícil leer código escrito por otras personas

Características

Page 4: Lenguaje C

El preprocesador

Transforma el programa fuente, convirtiéndolo en otro

archivo fuente “predigerido”. Las transformaciones incluyen:

Eliminar los comentarios.

Incluir en el fuente el contenido de los ficheros declarados

con#include <fichero> (a estos ficheros se les suele

llamarcabeceras)

Sustituir en el fuente las macros declaradas con #define (ej.

#define CIEN 100)

Fases de desarrollo de un programa en C

El compilador

Convierte el fuente entregado por el

preprocesador en un archivo en

lenguaje máquina: fichero objeto.

Algunos compiladores pasan por una

fase intermedia en lenguaje

ensamblador.

El enlazador

Un fichero objeto es código máquina, pero no se puede ejecutar, porque le falta

código que se encuentra en otros archivos binarios.

El enlazador genera el ejecutable binario, a partir del contenido de los ficheros

objetos y de las bibliotecas. Las bibliotecas contienen el código de funciones

precompiladas, a las que el archivo fuente llama (por ejemplo printf)

Page 5: Lenguaje C

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 dinámica.

No obstante, el estándar de C define un conjunto de bibliotecas de funciones, que

necesariamente vienen con todo entorno de compilación 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 proporciona los por las bibliotecas estándares son:

Entrada y salida de datos (stdio.h)

Manejo de cadenas (string.h)

Memoria dinámica (stdlib.h)

Rutinas matemáticas (math.h)

Bibliotecas estándares

Page 6: Lenguaje C

Componentes del lenguaje C

Estructuras de datos

•Literales

•Tipos básicos (todos numéricos)

•Tipos enumerados

•Tipos estructurados (struct, union)

•Punteros y vectores.

Construcciones algorítmicas

•Construcciones condicionales (if,switch)

•Construcciones Iterativas(while,for,do...while)

•Subrutinas (funciones)

Además de lo anterior, el C tiene otros elementos:

•Comentarios

•Inclusión de ficheros

•Macros

•Compilación condicional

El preprocesador es quien normalmente se encarga de

interpretar estas construcciones.

Sigue el paradigma de la programación estructurada:

Algoritmos+estructuras de datos = programas

Page 7: Lenguaje C

Ejemplo de código

El siguiente programa imprime en pantalla

la frase "Hola Mundo" (C99).

#include <stdio.h>

main()

{ /* Aqui se escribe el mensaje*/

printf (“Mensaje que escribimos anteriormente”);}

Page 8: Lenguaje C

Se trata de una maquina de alimentos que tiene productos de tres tipos, A, B, C, valen respectivamente $270, $340, $390. La maquina

acepta y da vuelto monedas de $10, $50 y $100. El usuario debe elegir el producto y luego debe ingresar las monedas hasta alcanzar el monto apagar. Si el monto ingresado es mayor que el precio del

producto, el programa debe entregar las monedas de vuelto, una por una.

EJEMPLO DE PROGRAMACIÓN EN LENGUAJE C

Autor: Guaicaipuro Núñez

Page 9: Lenguaje C
Page 10: Lenguaje C
Page 11: Lenguaje C
Page 12: Lenguaje C

El programa se elaboró considerando las especificaciones el cual establecía

la venta de tres artículos de diferentes precios aceptando solo tres

denominaciones de monedas y con la posibilidad de dar vuelto al pagar

mas. Lo primero que se escribe es la cabecera , colocándose la directiva y

las librerías que se necesitan (funciones que el programa ya tiene

preestablecidos). Posteriormente se designaron las variables (que son un

espacio de memoria al que se le asignan un nombre y en el que se

almacenan datos que pueden cambiar o variar) a través de la palabra int

(son variables de tipo numéricos). Se coloco el main , que es la función

principal del programa, todo el código de programación va dentro de las

llaves, el while para seleccionar alguno de los tres productos y presionando

el numero cero terminamos el programa. Una vez seleccionado el articulo a

comprar en el programa principal se llama al procedimiento pagar, acá va

solicitando que se introduzca el dinero una moneda a la vez, cada moneda

se valida para que sea de uno de los 3 valores permitidos y el monto

restante va disminuyendo hasta que se ha pagado completamente o incluso

mas, luego se llama al procedimiento vuelto, el cual devuelve el dinero

adicional con las monedas cantidad presentando las monedas en pantalla.

Page 13: Lenguaje C

•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.

Ventajas

•Es más lento programar en C, sobre todo para el

principiante. La razón estriba en que el compilador de C se

limita a traducir código sin apenas añadir nada.

•La gestión de la memoria es un ejemplo clásico: en C el

programador ha de reservar y liberar la memoria

explícitamente.

•El mantenimiento en algunos casos puede ser más difícil y

costoso que con ciertos lenguajes de más alto nivel. El código

en C se presta a sentencias cortas y enrevesadas de difícil

interpretación.

•Aunque el lenguaje admite código escrito de forma

fácilmente legible, si no se siguen normas en el equipo de

programación algunos programadores pueden acabar

escribiendo código difícil de leer. Esto complica la revisión y

el mantenimiento.

Desventajas

Page 14: Lenguaje C

•Hecho principalmente para la fluidez de programación en sistemas UNIX. Se usa

también para el desarrollo de otros sistemas operativos como Windows o GNU/Linux.

Igualmente para aplicaciones de escritorio como GIMP, cuyo principal lenguaje de

programación es C.

•De la misma forma, es muy usado en aplicaciones científicas (para experimentos

informáticos, físicos, químicos, matemáticos, entre otros), industriales

(industria robótica, cibernética, sistemas de información y base de datos para

la industria petrolera y petroquímica), simulaciones de vuelo.

•Se puede seguir encontrando código C en grandes desarrollos de animaciones,

modelados y escenas en 3D en películas y otras aplicaciones multimedia.

Aplicaciones

Autor: Carlos Augusto Lopes Alvarez

Page 15: Lenguaje C

C es un lenguaje de programación de nivel medio ya que combina los

elementos del lenguaje de alto nivel con la funcionalidad del ensamblador

Autor: Alfredo Ávila

Lenguaje C

Palabras Reservadas en C Las palabras reservadas son aquellas en las cuales solo se usan para especificar

una orden, condición o sentencia.

Page 16: Lenguaje C

Comentario (// ó /* */)

Identificadores : Se utilizan para nombrar variables, funciones,

etiquetas y elementos que definen los usuarios

Constantes

Variables

Operadores: son palabras o símbolos que implican una acción

sobre alguna variable

Instrucciones

Macros del pre- procesador

Elementos de un Programa

Autor: Alfredo Ávila

Page 17: Lenguaje C

•ERROR DE SINTAXIS: Estos errores son producidos, cuando se hace mal uso de las reglas del

lenguaje de programación, y se violan las normas de sintaxis, de ese lenguaje (en nuestro caso C);

estos errores son fáciles de detectar por que generalmente es el compilador, que los identifica (Y hasta

muestra la línea donde se encuentra dicho error, pero eso depende de la versión del compilador que

estemos usando).

•ERRORES DE EJECUCIÓN: Estos errores se producen , cuando le indicamos a la computadora,

realizar una determinada acción, y esta la comprende, pero no puede ejecutarla. Por ejemplo,

indicarle a la computadora una división entre cero, sumar dos variables a las cuales no se les ha

signado valor alguno, etc.

•ERRORES DE LÓGICA: Muchas veces, cuando estamos programando, el compilador no nos indica

errores de sintaxis, ni de lógica; pero el resultado de nuestro programa, esta fuera del rango esperado,

esto es producto de un error de lógica en el código de nuestro programa. Este tipo de errores son

muy difíciles de identificar y por supuesto de corregir, ya que generalmente hay que revisar línea por

línea de nuestro programa. Ejemplo: El sueldo negativo de un empleado, etc.

Errores Típicos en C

Autor: Alfredo Ávila

Page 18: Lenguaje C

A mediados de los años 60s, Martin Richards diseñó el lenguaje BCPL con la finalidad de usarlo para escribir software de

sistemas operativos y compiladores.

En 1969, Ken Thompson escribió el Lenguaje B, en Bell Laboratories, con el objetivo de recodificar UNIX (escrito

hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel más portable y flexible.

Durante los siguientes años, Dennis Ritchie modificó el lenguaje B, llegando a crear el lenguaje C y reescribiendo

el sistema UNIX en dicho lenguaje; añadió características nuevas, como son el diseño de tipos y las estructuras de datos.

En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edición del libro El lenguaje de programación C.

Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en la primera edición de este libro, fue

conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas características al

lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=.

A mediados de los años 80, Bjarne Stroustrup (también de los laboratorios Bell), crea el lenguaje C++, un lenguaje

basado en C, con numerosas características adicionales, siendo la principal que está orientado a objetos. Si bien se han creado

muchos lenguajes basados en C, C++ es el que ha permanecido más asociado a C.

En los años siguientes a la publicación del C de Kernighan y Ritchie, se añadieron al lenguaje muchas características

no oficiales, que estaban presentes en algunos compiladores y no en otros. Fue por ello que en 1989 ANSI (American National

Standards Institute) publicó el primer estándar oficial de C, que es conocido como ANSI C.

Autor: Jim Pulgar

EVOLUCIÓN DEL LENGUAJE C

Page 19: Lenguaje C

En este estándar se tomaron muchas de las funcionalidades no oficiales y se agregaron funcionalidades nuevas como

los prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de

parámetros de funciones, para que incluyeran el tipo junto con el nombre.

Al año siguiente, en 1990 se publicó la estandarización ISO del lenguaje. Este estándar es básicamente el

estándar ANSI, con unas pocas modificaciones de formato. A este estándar se lo conoce, entonces, como C89, o

C90, y se trata del mismo lenguaje.

Basándose en el estándar ANSI que estaba en preparación, en 1988 Kernighan y Ritchie publicaron la segunda

edición de su libro, que es aún hoy utilizada como una de las referencias principales del lenguaje.

Durante los siguientes años, el lenguaje C permaneció sin demasiados cambios. Sin embargo, como había

sucedido antes, los distintos compiladores fueron incorporando características adicionales, que otros compiladores

no tenían, siendo C++ la principal influencia.

Fue por ello que a finales de los noventa se decidió revisar el estándar de C, lo que llevó a la publicación

del estándar C99. Este estándar incluye varias nuevas características como son: las funciones inline; la posibilidad de

declarar variables en cualquier parte del código; los comentarios de una sola línea utilizando //; los tipos de datos

long long int, bool y complex, entre otras.

Aún hoy el proceso de evolución del lenguaje sigue avanzando, y desde 2007 se está trabajando en el

armado de un nuevo estándar.