SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Introducción del lenguaje C

En este documento se introducen los elementos principales de la programación en
lenguaje C. Se cubre gran parte de las características del lenguaje, así como algunas
funciones de las bibliotecas estándares.

Marco histórico

Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el código
del sistema operativo UNIX.
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.
A mediados de los ochenta el C se convierte en un estándar internacional ISO. Este
estándar incluye tanto la definición del lenguaje como una enorme biblioteca de
funciones para entrada/salida, tratamiento de textos, matemáticas, etc.
A mediados de los ochenta se crea el C++, extensión de C orientada a objetos. El C++
se convierte en estándar ISO en 1998. En el momento actual, el lenguaje C no va a
modificarse más. Será el C++ el que incorporará nuevos cambios.


Características

      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




Fases de desarrollo de un programa en 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 llamar cabeceras)
      Sustituir en el fuente las macros declaradas con #define (ej. #define CIEN 100)




                                          1
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).

Ejemplo de programa en C

#include <stdio.h>


main()
{
         /* Escribe un mensaje */

         printf (“Hola, mundon”);
}




Bibliotecas estándares

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 proporcionados 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)




                                              2
Componentes del lenguaje C

Sigue el paradigma de la programación estructurada:
Algoritmos+estructuras de datos = programas.

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.


Rangos de valores y tipos modificados

Rango de los enteros
Una variable entera acepta valores positivos y negativos dentro de un rango
determinado, que depende de la plataforma y del compilador (en pecés bajo MS-DOS
suele estar entre -32768 y 32767; en Linux son enteros de 32 bits).

Existen modificaciones para el tipo int, para alterar el rango de valores sobre el que
trabaja:

Modificador        Significado
short              entero corto     (rango    más
                   pequeño)
long               entero largo     (rango    más
                   amplio)
unsigned           entero sin signo (0..N)
signed             entero con signo (-N-1 .. +N)



La palabra int se puede omitir en la declaración de la variable.

Los modificadores de tamaño ( short, long) y de signo ( signed, unsigned) se pueden
combinar.



                                              3
Por omisión, un entero es signed (en la práctica, esta palabra reservada casi nunca se
emplea).

Ejemplos:

        unsigned sin_signo;                 /* entero sin signo */
        long saldo_en_cuenta;      /* entero largo con signo */
        unsigned long telefono;    /* entero largo sin signo */



Tipo char
El tipo char permite manejar caracteres (letras), aunque se trata de un tipo numérico.
Normalmente el rango de valores va de –128 a +127 (signed char), o bien de 0 a 255
(unsigned char).
Los literales de tipo carácter se pueden utilizar como números.

        char caracter;
        int entero;
        main()
        {
                 caracter = 65; // valdría como una ‘A’
                 entero = ‘A’; // valdría como un 65
        }


Nombres de variables (identificadores)

Un identificador es un nombre que define a una variable, una función o un tipo de
datos.
Un identificador válido ha de empezar por una letra o por el carácer de subrayado _,
seguido de cualquier cantidad de letras, dígitos o subrayados.
OJO: Se distinguen mayúsculas de minúsculas.
No se pueden utilizar palabras reservadas como int, char o while.
Muchos compiladores no permiten letras acentuadas o eñes.

Ejemplos válidos:

                 char letra;
                 int Letra;
                 float CHAR;
                 int __variable__;
                 int cantidad_envases;
                 double precio123;
                 int __;




                                          4
Expresiones

Los datos se manipulan mediante expresiones, que sirven para calcular valores. En C
hay varios operadores para construir expresiones.

Estos son los operadores elementales sobre números:


Operador      Significado
+             suma
-             resta
*             producto
/             división
%             módulo (resto de la división)

Una expresión combina varias operaciones y devuelve un valor.
Los operadores *, / y % tienen precedencia sobre la suma y la resta.
Se pueden utilizar paréntesis para agrupar subexpresiones.


Asignaciones

La forma de dar valor a una variable es

variable = expresión ;

Se le llama asignación.


También se puede dar valor a una variable en el mismo momento en que se declara (
inicialización).

tipo variable = expresión ;

Una variable que se declara sin inicializar contiene un valor indeterminado.




                                              5

Contenu connexe

Tendances

Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
g_torrealba
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
Karina Arguedas Ruelas
 
2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno
Meztli Valeriano Orozco
 
Entorno de desarrollo en c++
Entorno de desarrollo en c++Entorno de desarrollo en c++
Entorno de desarrollo en c++
Lymobe
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptual
Fernando Jose
 

Tendances (20)

Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
Introducción al lenguaje c++
Introducción al lenguaje c++Introducción al lenguaje c++
Introducción al lenguaje c++
 
Clase 1 Lenguaje C++
Clase 1 Lenguaje C++Clase 1 Lenguaje C++
Clase 1 Lenguaje C++
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Lenguaje C (pdf)
Lenguaje C (pdf)Lenguaje C (pdf)
Lenguaje C (pdf)
 
Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.Estructura de-un-programa-en-lenguaje-c.
Estructura de-un-programa-en-lenguaje-c.
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 
2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno
 
Entorno de desarrollo en c++
Entorno de desarrollo en c++Entorno de desarrollo en c++
Entorno de desarrollo en c++
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programa
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptual
 
Lenguaje de-programación-c
Lenguaje de-programación-cLenguaje de-programación-c
Lenguaje de-programación-c
 
Lenguaje de-programacion-c++
Lenguaje de-programacion-c++Lenguaje de-programacion-c++
Lenguaje de-programacion-c++
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
c++ introduccion
c++ introduccionc++ introduccion
c++ introduccion
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 

En vedette

Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
1002pc1
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
starduslex
 
Tipos de Datos en C++
Tipos de Datos en C++Tipos de Datos en C++
Tipos de Datos en C++
ivanjvic
 
Presentación de C++
Presentación de C++Presentación de C++
Presentación de C++
Sylvert
 

En vedette (20)

Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Manual c++
Manual c++Manual c++
Manual c++
 
LENGUAJE DE PROGRAMACION C
LENGUAJE DE PROGRAMACION CLENGUAJE DE PROGRAMACION C
LENGUAJE DE PROGRAMACION C
 
Lenguaje C sharp
Lenguaje C sharpLenguaje C sharp
Lenguaje C sharp
 
Tipos de Datos en C++
Tipos de Datos en C++Tipos de Datos en C++
Tipos de Datos en C++
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
C# Diferencias
C# DiferenciasC# Diferencias
C# Diferencias
 
5 diapositivas para programar
5 diapositivas para programar5 diapositivas para programar
5 diapositivas para programar
 
mapa conceptual lenguaje C#
mapa conceptual lenguaje C#mapa conceptual lenguaje C#
mapa conceptual lenguaje C#
 
Que es robotica
Que es roboticaQue es robotica
Que es robotica
 
manual de c# (1)
manual de c# (1)manual de c# (1)
manual de c# (1)
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoria
 
Lenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script ILenguaje C para Administradores de Red - Script I
Lenguaje C para Administradores de Red - Script I
 
Presentación de C++
Presentación de C++Presentación de C++
Presentación de C++
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Presentacion de c++
Presentacion de c++Presentacion de c++
Presentacion de c++
 

Similaire à Introduccion del Lenguaje C

Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
Jennybeatriz1
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
Chavez Raul
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Nilson Payares
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
starduslex
 

Similaire à Introduccion del Lenguaje C (20)

Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 
Material de apoyo: Componentes y tipos de Datos PDF
 Material de apoyo: Componentes y tipos de Datos PDF Material de apoyo: Componentes y tipos de Datos PDF
Material de apoyo: Componentes y tipos de Datos PDF
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Guia en lenguaje c
Guia en lenguaje c Guia en lenguaje c
Guia en lenguaje c
 
Clase 1 Programación II
Clase 1 Programación IIClase 1 Programación II
Clase 1 Programación II
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Introducción
IntroducciónIntroducción
Introducción
 
Introducción
IntroducciónIntroducción
Introducción
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
 
Programación en c
Programación en cProgramación en c
Programación en c
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguaje
 
IntroLenguajeC.ppt
IntroLenguajeC.pptIntroLenguajeC.ppt
IntroLenguajeC.ppt
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
TUTORIAL LENGUAJE C
TUTORIAL LENGUAJE CTUTORIAL LENGUAJE C
TUTORIAL LENGUAJE C
 
TUTORIAL DE LENGUAJE C
TUTORIAL DE LENGUAJE CTUTORIAL DE LENGUAJE C
TUTORIAL DE LENGUAJE C
 
Webcd
WebcdWebcd
Webcd
 

Plus de Universidad de Guayaquil (8)

Linux Programacion en Shell
Linux Programacion en ShellLinux Programacion en Shell
Linux Programacion en Shell
 
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASHCOMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
COMANDOS SHELL Y PROGRAMACIÓN EN LA SHELL DEL BASH
 
Sql developer. manual de usuario v1.2
Sql developer. manual de usuario v1.2Sql developer. manual de usuario v1.2
Sql developer. manual de usuario v1.2
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
Manual visual basic 6.0
Manual visual basic 6.0Manual visual basic 6.0
Manual visual basic 6.0
 
Manual C++ 3ra parte
Manual C++ 3ra parteManual C++ 3ra parte
Manual C++ 3ra parte
 
Manual C++ 2da Parte
Manual C++ 2da ParteManual C++ 2da Parte
Manual C++ 2da Parte
 
Manual C++ 1era Parte
Manual C++ 1era ParteManual C++ 1era Parte
Manual C++ 1era Parte
 

Dernier

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Dernier (20)

Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 

Introduccion del Lenguaje C

  • 1. Introducción del lenguaje C En este documento se introducen los elementos principales de la programación en lenguaje C. Se cubre gran parte de las características del lenguaje, así como algunas funciones de las bibliotecas estándares. Marco histórico Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el código del sistema operativo UNIX. 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. A mediados de los ochenta el C se convierte en un estándar internacional ISO. Este estándar incluye tanto la definición del lenguaje como una enorme biblioteca de funciones para entrada/salida, tratamiento de textos, matemáticas, etc. A mediados de los ochenta se crea el C++, extensión de C orientada a objetos. El C++ se convierte en estándar ISO en 1998. En el momento actual, el lenguaje C no va a modificarse más. Será el C++ el que incorporará nuevos cambios. Características  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 Fases de desarrollo de un programa en 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 llamar cabeceras)  Sustituir en el fuente las macros declaradas con #define (ej. #define CIEN 100) 1
  • 2. 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). Ejemplo de programa en C #include <stdio.h> main() { /* Escribe un mensaje */ printf (“Hola, mundon”); } Bibliotecas estándares 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 proporcionados 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) 2
  • 3. Componentes del lenguaje C Sigue el paradigma de la programación estructurada: Algoritmos+estructuras de datos = programas. 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. Rangos de valores y tipos modificados Rango de los enteros Una variable entera acepta valores positivos y negativos dentro de un rango determinado, que depende de la plataforma y del compilador (en pecés bajo MS-DOS suele estar entre -32768 y 32767; en Linux son enteros de 32 bits). Existen modificaciones para el tipo int, para alterar el rango de valores sobre el que trabaja: Modificador Significado short entero corto (rango más pequeño) long entero largo (rango más amplio) unsigned entero sin signo (0..N) signed entero con signo (-N-1 .. +N) La palabra int se puede omitir en la declaración de la variable. Los modificadores de tamaño ( short, long) y de signo ( signed, unsigned) se pueden combinar. 3
  • 4. Por omisión, un entero es signed (en la práctica, esta palabra reservada casi nunca se emplea). Ejemplos: unsigned sin_signo; /* entero sin signo */ long saldo_en_cuenta; /* entero largo con signo */ unsigned long telefono; /* entero largo sin signo */ Tipo char El tipo char permite manejar caracteres (letras), aunque se trata de un tipo numérico. Normalmente el rango de valores va de –128 a +127 (signed char), o bien de 0 a 255 (unsigned char). Los literales de tipo carácter se pueden utilizar como números. char caracter; int entero; main() { caracter = 65; // valdría como una ‘A’ entero = ‘A’; // valdría como un 65 } Nombres de variables (identificadores) Un identificador es un nombre que define a una variable, una función o un tipo de datos. Un identificador válido ha de empezar por una letra o por el carácer de subrayado _, seguido de cualquier cantidad de letras, dígitos o subrayados. OJO: Se distinguen mayúsculas de minúsculas. No se pueden utilizar palabras reservadas como int, char o while. Muchos compiladores no permiten letras acentuadas o eñes. Ejemplos válidos: char letra; int Letra; float CHAR; int __variable__; int cantidad_envases; double precio123; int __; 4
  • 5. Expresiones Los datos se manipulan mediante expresiones, que sirven para calcular valores. En C hay varios operadores para construir expresiones. Estos son los operadores elementales sobre números: Operador Significado + suma - resta * producto / división % módulo (resto de la división) Una expresión combina varias operaciones y devuelve un valor. Los operadores *, / y % tienen precedencia sobre la suma y la resta. Se pueden utilizar paréntesis para agrupar subexpresiones. Asignaciones La forma de dar valor a una variable es variable = expresión ; Se le llama asignación. También se puede dar valor a una variable en el mismo momento en que se declara ( inicialización). tipo variable = expresión ; Una variable que se declara sin inicializar contiene un valor indeterminado. 5