Está en la página 1de 23

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÈCNICA
DE LA FUERZA ARMADA NACIONAL
NÙCLEO_ SUCRE

LENGUAJE C

Profesora:

Karelys Arredondo

ING. NAVAL. SECCIÒN 1 Realizado por:

Yoselyn Bruzual C.I:27.690.428

Magdalennys Moya C.I:27.320.002

Luis Cariaco C.I:25.352.560

Stephany Lopez C.I:26.766.948

Cumaná, abril del 2018


Introducción

El presente trabajo tiene como objeto abarcar el tema relacionado con el


lenguaje de programación C. Éste es un lenguaje orientado a la
implementación de sistemas operativos. Se trata de un lenguaje de tipo de
datos estáticos, tipificado, de medio nivel ya que dispone de las estructuras
típicas de los lenguaje de alto nivel pero a su vez, dispone de construcciones
del lenguaje que permiten un control a muy bajo nivel. Es un lenguaje sencillo y
no está especializado en ningún tipo de aplicación, lo que lo hace un lenguaje
potente, con un campo de aplicación ilimitado y sobre todo se aprende
rápidamente, en poco tiempo se puede aprender a utilizar en su totalidad este
lenguaje. Este lenguaje no esta ligado a ningún sistema operativo ni a ninguna
máquina concreta. Se le suele llamar lenguaje de programación de sistemas
debido a su utilidad para escribir compiladores y sistemas operativos, aunque
de igual forma se puede desarrollar en cualquier tipo de aplicación.

El lenguaje C fue origalmente desarrollado por Dennis Ritchie entre 1969


y 1972 en los laboratorios Bell y en 1978 kernighan y Ritchie publican la
descripción del lenguaje C en el libro "The C programming language", un libro
de cabecera que describe todas las posibilidades de este nuevo lenguaje que
aún se utiliza como manual de referencia. C trabaja con tipos de datos que son
directamente tratables por el hardware de la mayoría de computadoras
actuales, como son los carácter, números y direcciones, estos tipo de datos
pueden ser manipulados por las operaciones aritméticas que proporcionan la
computadoras. Uno de los objetos de diseño del lenguaje C es que solo sean
necesarias unas pocas instrucciones en lenguaje máquina para traducir cada
elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de
ejecución.

C se desarrolló originalmente por programadores para programadores.


Sin embargo, ha alcanzado una popularidad enorme y se ha usado en contexto
muy alejados de la programación de sistemas, para la que se diseñó
originalmente.
LENGUAJE C

Historia del lenguaje c


El desarrollo inicial de C se llevó a cabo en los Laboratorios Bell de
AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo tuvo lugar en
1972. Se le dio el nombre "C" porque muchas de sus características fueron
tomadas de un lenguaje anterior llamado "B".

Hay muchas leyendas acerca del origen de C y el sistema operativo con


el que está íntimamente relacionado, Unix. Algunas de ellas son:

El desarrollo de C fue el resultado del deseo de los programadores de


jugar con Space Travel. Habían estado jugando en el mainframe de su
compañía, pero debido a su poca capacidad de proceso y al tener que soportar
100 usuarios, Thompson y Ritchie no tenían suficiente control sobre la nave
para evitar colisiones con los asteroides.

Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que


no se utilizaba; pero esa máquina no tenía sistema operativo, así que
decidieron escribir uno. Finalmente decidieron portar el sistema operativo del
PDP-11 que había en su oficina, pero era muy costoso, pues todo el código
estaba escrito en lenguaje ensamblador.

Entonces decidieron usar un lenguaje de alto nivel y portátil para que el


sistema operativo se pudiera portar fácilmente de un ordenador a otro.
Consideraron usar B, pero carecía de las funcionalidades necesarias para
aprovechar algunas características avanzadas del PDP-11. Entonces
empezaron a crear un nuevo lenguaje, C.

La justificación para obtener el ordenador original que se usó para


desarrollar Unix fue crear un sistema que automatizase el archivo de patentes.
La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde,
el lenguaje C se desarrolló para poder reescribir el sistema operativo.

En 1973, el lenguaje C se había vuelto tan potente que la mayor parte


del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20,
fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo
implementados en un lenguaje distinto al ensamblador. (Algunos casos
anteriores son el sistema Multics, escrito en PL/I, y Master Control Program
para el B5000 de Burroughs, escrito en ALGOL en 1961).
¿Qué es el lenguaje c?
Es un lenguaje de programación originalmente desarrollado por Dennis
M. Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolución del
anterior lenguaje B, a su vez basado en BCPL.

Al igual que B, es un lenguaje orientado a la implementación de


Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del
código que produce y es el lenguaje de programación más popular para crear
software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje de tipos de datos estáticos, débilmente 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.

La primera estandarización del lenguaje C fue en ANSI, con el estándar


X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente
como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO
(ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que,
si los programas creados lo siguen, el código es portable entre plataformas y/o
arquitecturas.

También conocido como “Lenguaje de programación de sistemas”


desarrollado en el año 1972 por Dennis Ritchie para UNIX un sistema operativo
multiplataforma. El lenguaje C es del tipo lenguaje estructurado como son
Pascal, Fortran, Basic. Sus instrucciones son muy parecidas a otros lenguajes
incluyendo sentencias como if, else, for, do y while.... Aunque C es un lenguaje
de alto nivel (puesto que es estructurado y posee sentencias y funciones que
simplifican su funcionamiento) tenemos la posibilidad de programar a bajo nivel
( como en el Assembler tocando los registros, memoria etc. ). Para simplificar el
funcionamiento de el lenguaje C tiene incluidas librerías de funciones que
pueden ser incluidas haciendo referencia la librería que las incluye, es decir
que si queremos usar una función para borrar la pantalla tendremos que incluir
en nuestro programa la librería que tiene la función para borrar la pantalla.
Estructura del lenguaje C
Todo programa escrito en C consta de una o más funciones, una de las
cuales se llama main. El programa siempre comenzará por la ejecución de la
función main. Cada función debe contener:

*Una cabecera de la función, que consta del nombre de la función,


seguido de una lista opcional de argumentos encerrados con paréntesis.

*Una lista de declaraciónde argumentos, si se incluyen estos en la


cabecera.

*Una sentencia compuesta, que contiene el resto de la función.


Encabezados <ficheros.h> en el se almacenan las funciones que trae el
lenguaje propio o las funciones nuestras se les llaman Librerías. Las funciones
de C dan mucha potencia al programador en podemos realizar los programas
con mucha potencia y facilidad de código.

Constantes simbólicas en el se definen las constantes de nuestro programa es


lo único que se escribe en mayúsculas. ej.: #define ENERO 31

Nota: (las constantes son variables que conservan el mismo valor todo el
programa una vez que incluimos una constante en nuestro programa el
compilador va a sustituir el texto contenido en la constante por el texto del
mismo.)

Cabecera de funciones es la llamadas a las funciones que se encuentran


el mismo programa y al final del.

Función principal MAIN() en el se desarrollara todo el código del


programa las llamadas a funciones procedimientos etc. (es una función que sé
autoejecuta cuando se compila el programa).

Comentarios , variables y constantes

Nota: Para incluir en nuestro programa comentarios muy necesario para


que otros programadores entiendan lo que quisimos hacer y nosotros mismos
el con el tiempo. /* Esto es un comentario */

En C++ los comentarios se pueden hacer en una linea con // (//en c++ esto es
un comentario)
Tipo de Variables en C
Definición: Para la definición de variables de debe poner primero el tipo
de variable a definir y luego el nombre de la variable ( si queremos inicializarla
podemos a continuación poniendo = valor) y si queremos definir mas de una
variable del mismo tipo podemos poniendo una coma a continuación. Ejemplo:

int contador; /* define una variable con el nombre contador de tipo entero */

int cont = 0 ; /* inicializando cont con 0 */

int cont , cont2, contn = 0; /* definición de mas de una variable */

float científica = 10.1

int cont = cont +1;

int cont = cont2;

TRABAJANDO CON ESTRUCTURAS También se pueden definir tipo de


variables con varias variables dentro llamada estructuras de variables (muy
precido a los registros Grande DBASE ....) dentro de un registro nosotros
podemos agrupar un conjunto de variables bajo un mismo nombre por ejemplo
tengo una ficha de cliente donde tiene nombre , dirección ,teléfono ; en la
misma ficha yo podría preguntar por cliente.nombre o cliente.telefono etc.

Tipo de definición

Struct nombre {

Tipo variable1

Tipo variable2

Tipo variablex

};

struct nombre nombre_dela_variable;

Constantes :

#define nombre texto_deremplazo


Las constantes son variables que se mantienen todo el programa con un
mismo valor. Cada vez que nosotros llamamos a una constante lo que
hacemos es remplazar la constante por su valor. No se debe poner ; después
de la definición. Ej.:

#define MAXLINEAS 24

#define MINOMBRE “Federico”

#define ARCHIVO “C:\autoexec.bat”

y cuando en mi programa yo haga por ejemplo printf(“Autor : %s”,MINOMBRE);


se sustituirá el contenido de la constante por el contenido de la misma
printf(“Autor : %s”,”Federico”); se pueden definir constantes de tipo macro que
se tocara en el próximo capitulo.

Un ejemplo que para los amantes de turbo pascal les puede gustar

// Ejemplo realizado para clase de definicion de varialbes.

#include <stdio.h> // inclusión de librerías.

#include <stdlib.h>

#include <conio.h>

// definición de constantes.

#define BEGIN {

#define END }

#define WRITELN( texto ) printf("%s\n",texto)

#define READLN(variable) gets(variable)

#define PAUSA getch()

void main()
BEGIN

char var[255];

clrscr();

WRITELN("hola");

READLN( var );

WRITELN( var);

PAUSA;

END
Funciones
Una función es una parte del código independiente del programa que se
llama dentro de él, como dijimos anteriormente C no tiene procedimientos
solamente funciones los procedimientos los simula con funciones que no
devuelven nada (Void) la estructura de la funciones en C y es los elementos
mas fuertes del lenguaje. El desarrollo de una función es:

Tipo_de_valor_retorno nombreFunción( lista de argumentos ){

declaracion de variables locales a la función

codigo ejecutable

return ( exprecion ) // optativo

las variables de nuestras funciones son locales es decir que solamente


viven cuando se esta ejecutando la llamada a la función; el código ejecutable
son las sentencias que el programa utiliza para funcionar y el valor de retorno
es el resultado que va a devolver la misma función ( si se dice que una función
retorna un entero en el return se debe poner un entero como valor de
devolución Ej: esta función de ejemplo cuenta cuantos caracteres existen
dentro de una variable que se le pase como parámetro.
Sentencias de comparación y repeticiones
Instrucción IF La sentencia if permite comparar 2 valores entre si. Por
medio de la condición cuando se cumple (TRUE) entra a realizar la accion1 si
no pasa a cumplir la accion2

if ( condición_logica )

{ ....

acción 1

....

else

{ .....

acción 2

.....

Sentencia SWITCH La sentencia switch puede comparar una variable


con mas de un posible resultado Si ustedes tubieron el gusto de programar en
clipper la sentencia es muy parecida a Case.

Switch (variable)

case comparacion1 : .....

accion...

break

.....

case comparacion n : .....

accion...

break
default : ..... /* en caso de que no se cumpla ninguna...*/

accion...

break

Repeticiones

Es el mas usado en su sintaxis puesto que es muy parecido al de otros


lenguajes como clipper pascal visual basic....

While primero evalúa la condición y no se cumple entra en el ciclo While


hasta que la condición se cumpla.

While (condición)

....

sentencias

....

Sentencia for

La sentencia for o para permite ejecutar un conjunto de sentencias


evaluando la condición central del for.

For ( variable = valor inicial ; condición ; incremento)

{...

....

sentencias....

...

....
}

Punteros:

C permite el manejo de punteros a memoria de una forma fácil y ágil por


medio de punteros podremos desarrollar funciones que no devuelvan un solo
valor sino que devuelvan mas valores a su misma vez. solamente tenemos que
tener en cuenta un par de cosas y podemos acceder a posiciones de memoria
de las variables apuntado hacia ella, & dirección hacia donde apunta el objeto o
variable

Manejo de archivos en C

Para el manejo de archivos en C tenemos que tomar en cuenta varias


partes primero la parte de apertura , el modo de trabajo y luego cerrar el
archivo (necesario para no perder datos o que el archivo quede en memoria
corrupto).

Al abrir una archivo tenemos que tener en cuenta el modo de apertura


del mismo si es de lectura, escritura, creación, binario etc.

Primero tenemos que definir la variable que va a contener en el la


información de el comportamiento del archivo ( si existe, si se produjo un error
al grabar al recuperar etc.) Las variables de tipo archivo se definen como
punteros ej.

FILE *archivo

Esto solamente define una variable de tipo de archivo la información de


el archivo se encuentra almacenada en un puntero hacia el mismo.

Archivo = fopen ( "Nombre_fisico", "modo");


En el modo de apertura del archivo podemos tener en cuenta si el
archivo se quiere crear (w) si el archivo es de solo lectura (r) modo binario (b)
etc.
Características

Propiedades
*Un núcleo del lenguaje simple, con funcionalidades añadidas
importantes, como funciones matemáticas y de manejo de archivos,
proporcionadas por bibliotecas.

*Es un lenguaje muy flexible que permite programar con múltiples


estilos. Uno de los más empleados es el estructurado "no llevado al extremo"
(permitiendo ciertas licencias de ruptura).

*Un sistema de tipos que impide operaciones sin sentido.

*Usa un lenguaje de preprocesado, el preprocesador de C, para tareas


como definir macros e incluir múltiples archivos de código fuente.

*Acceso a memoria de bajo nivel mediante el uso de punteros.

*Interrupciones al procesador con uniones.

*Un conjunto reducido de palabras clave.

*Por defecto, el paso de parámetros a una función se realiza por valor. El


paso por referencia se consigue pasando explícitamente a las funciones las
direcciones de memoria de dichos parámetros.

*Punteros a funciones y variables estáticas, que permiten una forma


rudimentaria de encapsulado y polimorfismo.

*Tipos de datos agregados (struct) que permiten que datos relacionados


(como un empleado, que tiene un id, un nombre y un salario) se combinen y se
manipulen como un todo (en una única variable "empleado").
Carencias
*Recolección de basura nativa, sin embargo se encuentran a tal efecto
bibliotecas como la "libgc" desarrollada por Sun Microsystems, o el Recolector
de basura de Boehm.

*Soporte para programación orientada a objetos, aunque la


implementación original de C++ fue un preprocesador que traducía código
fuente de C++ a C.

*Funciones anidadas, aunque GCC tiene esta característica como


extensión.

*Soporte nativo para programación multihilo.

Aunque la lista de las características útiles de las que carece C es larga,


este factor ha sido importante para su aceptación, porque escribir rápidamente
nuevos compiladores para nuevas plataformas, mantiene lo que realmente
hace el programa bajo el control directo del programador, y permite
implementar la solución más natural para cada plataforma. Ésta es la causa de
que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la
programación cuidadosa en lenguaje ensamblador produce un código más
rápido, pues da control total sobre la máquina, aunque los avances en los
compiladores de C y la complejidad creciente de los microprocesadores
modernos han reducido gradualmente esta diferencia.

En algunos casos, una característica inexistente puede aproximarse. Por


ejemplo, la implementación original de C++ consistía en un preprocesador que
traducía código fuente C++ a C. La mayoría de las funciones orientadas a
objetos incluyen un puntero especial, que normalmente recibe el nombre "this",
que se refiere al objeto al que pertenece la función. Mediante el paso de este
puntero como un argumento de función, esta funcionalidad puede
desempeñarse en C.
CONCLUCION
A pesar de que C fue creado cerca de 1970, su estudio perdura alrededor de
todo el mundo; lo que no debe sorprender, ya que este lenguaje presenta
bastantes características en relación con sus defectos. Entre sus principales
beneficios se encuentran: programación estructurada, economía de las
expresiones, abundancia en operadores y tipos de datos, codificación en alto y
bajo nivel simultáneamente, reemplaza ventajosamente la programación en
ensamblador o con lenguajes de bajo nivel en general, utilización natural de las
funciones primitivas del sistema, no está orientado a ninguna área en especial,
producción de código objeto altamente optimizado, facilidad de aprendizaje, etc.

Aparte de esto, C es el lenguaje de elección en la implementación de sistemas


en la industria y comercio además de muchos otros entornos. Se piensa que será
el lenguaje dominante en el comienzo del nuevo siglo así como también se piensa
que lo fue a finales del siglo pasado.
ANEXO

EJERCICIO 1

Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla


un menú con las opciones posibles.

#include <stdio.h>

#include <stdlib.h>

int main(void)

int peso;

printf("Introduzca peso en kilogramos:");

scanf("%d",&peso);

printf("Seleccione opción:\n");

printf("1 - Hectogramos\n");

printf("2 - Decagramos\n");

printf("3 - Gramos\n");

printf("4 - Decigramos\n");

printf("5 - Centigramos\n");

printf("6 - Miligramos\n");

scanf("%d",&opcion);

switch (opcion)
{

case 1:

printf("El peso es:%d\n",peso/10);

break;

case 2:

printf("El peso es:%d\n",peso/100);

break;

case 3:

printf("El peso es:%d\n",peso/1000);

break;

case 4:

printf("El peso es:%d\n",peso/10000);

break;

case 5:

printf("El peso es:%d\n",peso/100000);

break;

case 6:

printf("El peso es:%d\n",peso/1000000);

break;

default:

printf("Opción no válida.");

break;

system("PAUSE");

return 0;

}
EJERCICIO 2

Que muestre un menú que contemple las opciones “Archivo”, “Buscar” y


“Salir”, en caso de que no se introduzca una opción correcta se notificará por
pantalla.

#include <stdio.h>

#include <stdlib.h>

int main(void)

int opcion;

printf("Seleccione opción:\n");

printf("1 - Archivo\n");

printf("2 - Buscar\n");

printf("3 - Salir\n");

scanf("%d",&opcion);

if (opcion!=1 && opcion!=2 && opcion!=3)

printf("La opción NO es correcta.\n");

else

printf("La opción es correcta.\n");

system("PAUSE");
return 0;

También podría gustarte