Está en la página 1de 30

Introducción al Lenguaje

C
Yo sólo C que no C C

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Tiobe: Uso de lenguajes

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Fundamentos del
Lenguaje C
Lección 1

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Introducción
p ¿Qué es un lenguaje?
p Alto nivel vs bajo nivel
p Breve historia del desarrollo del Lenguaje C
p Características y estructura de un programa en
C
p Ventajas y desventajas del Lenguaje C

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Caso de estudio: Farmacéutica Acatlán
p Laboratorio Farmacéutico
n Departamento de procesamiento de datos
p Productos a nivel nacional
p Representantes de ventas en regiones
específicas
p Responsabilidades: Programas del negocio, de
contabilidad y científicos de laboratorio
n Ejemplos basados en problemas reales

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Lenguajes de Programación: Dónde
encaja C
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
* Lenguajes
p Código
Código de comunicación
n Hombres, Máquinas

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Lenguajes de bajo nivel
p Orientados hacia las máquinas hacia las maquinas

n Cerca del lenguaje máquina


Cerca del lenguaje maquina

p Ventaja del HW hardware

p Relación uno a uno con código binario ó de codigo binario

máquina
p Ejemplo: colocar un carácter en la pantalla

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Ejemplo en código ensamblador
ADDNUM PROC
PUSH BP ; guarda contenidos de BP
PUSH BX ; y de registros AX, BX
PUSH AX
MOV AX, @A ; pone el contenido de A en AX
MOV BX, @B ; pone el contenido de B en BX
ADD BX, AX ; suma los dos valores
MOV @B, BX ; guarda los resultados en la localidad B
POP AX ; restaura AX, BX, y BP
POP BX
POP BP
RET
ADDNUM END P
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
p Requieren
n Mucho código
Mucho codigo

n Entender el HW
Entender el Hardware

p Difíciles de leer por los programadores


Dificiles de leer

p Empleados para programación de sistemas


p No útiles para aplicaciones para aplicaciones

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Lenguajes de alto nivel
p Orientados hacia la gente
hacia las personas

p Relación uno a muchos con código binario ó


uno a muchos

lenguaje máquina
p Ejemplo: colocar una cadena de caracteres en
la pantalla

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Ejemplo en lenguaje PASCAL
PROGRAM WELCOMEPROG (OUTPUT);
(* Un programa para imprimir BIENVENIDO *)
BEGIN
WRITELN(‘Bienvenido’);
END.

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


p Fáciles de leer y entender
Faciles de ller

n No tan compactos ni tan rápidos


p Empleados para aplicaciones aplicacciones

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


El Lenguaje de Programación C –un
lenguaje de nivel medio
p Características de lenguajes de alto nivel y de de alto y

bajo nivel
bajo nivel

n Programas más fáciles de escribir


n Programas más rápidos y compactos
p Empleado para programar aplicaciones y aplicacciones y

sistemas
sistemas

p Legible y fácil de usar


Legible y de facil uso

p Toma ventaja de las capacidades de la


las capacidades de la computadora

computadora
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
Una breve historia de C

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


p Evolución de varios lenguajes. Laboratorios Bell Laboratorios Bell

de AT&T a principio de los 70’s


de ATANDT 70's

p Lenguaje de uso general


p Cercano al sistema operativo UNIX (Bell)
n 90% UNIX desarrollado en C
p Dennies M Ritchie y Ken Thompson
Dennies M Ritchie y Ken Thompson

p Antecesores
n BCPL (Basic Combined Programming Language) –
Martin Richards
n B – Ken Thompson
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
Bloques de programa
Control del flujo del programa
Estilo libre de programación

Características y Estructura de los


programas en C
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
Formato modular o de bloques
p Sentencias agrupadas en pequeños bloques
Sentencias bloques

(funciones)
(funciones)

n Operaciones específicas
p Ejemplo: Emisión de un estado de cuenta
n Cálculo del total
n Obtener dirección del cliente
n Imprimir la dirección en un formato
p Similares a procedimientos en FORTRAN o
subrutinas en PASCAL

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


p Funciones
n Biblioteca estándar
Biblioteca estandar

p Ya definidas
p Suplidas con compilador
Suplidas con compilador

§ Diferentes compiladores dan diferentes funciones


§ Documentación
n Definidas por el usuario
Definidas por el usuario

p Cualquier operación
Cualquier operacion

p Se pueden emplear en otros programas

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Control del flujo del programa
Como se ejevutan las sentencias de un programa

p Cómo se ejecutan las sentencias en un


programa
p Single-thread control flow (Control del flujo de
Single-thread control flow

un solo hilo)
n El flujo pasa de una sentencia a la siguiente en orden
de una sentancia a la siguente en orden secuencial

secuencial
p Una operación a la vez
p Programación secuencial
n Programación estructurada

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Estilo de formato libre
p Estilo de programación sin restricciones sin restricciones

n Casi como quieras


n Puede convertirse en ilegible, confuso
p Programador debe establecer su estilo
debe establecer su estilo

p Guías a través del curso


n Observar programas presentados
n Uso de mayúsculas y minúsculas
n Uso de sangrías

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Mayúsculas y minúsculas
p C distingue entre ambas
n main( ) ≠ Main ( )

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Sangría
p Como se desee respetando sintaxis correcta
respetando la sintaxis correcta

p Colocarla mostrando intención intencion

n Útil al depurar
p Indicar la estructura lógica del programa
#include <stdio.h>
main()
{
int n;
for (n = 1; n <= 10; ++n)
{ printf(“n = %d, cuadrado = %d\n”, n, n*n);
printf(“n = %d, cubo = %d\n”, n, n*n*n);
}
}
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
La meta: soluciones mejores y más
elegantes
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres
¿Quién usa C?
p Diferentes tipos de programadores en diferentes
ambientes
n Compacto, eficiente, fácil de leer
p En lugar de Ensamblador
p Programación de Sistemas
§ Ritchie – UNIX
n Provee grandes bibliotecas y permite funciones
definidas por el usuario
p Diferentes aplicaciones
§ Científicas, procesadores de texto, contabilidad

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Ventajas de C
p Versatilidad
Versatilidad

n Trabaja como bajo nivel pero es fácil de entender


como alto nivel
p Velocidad
Velocidad

p Portabilidad
Portabilidad

n No depende del tipo de computadora


p Ejecutar programas en C en diferentes sistemas con
cambios mínimos
p UNIX

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


Defectos de C
p Falta de estándares
Falta de estandares

n ANSI C
ANSI C

p American National Standars Institute en 1983


p El código fuente se puede compilar en cualquier sistema
operativo y compilador
n Muchas versiones de C con pequeñas diferencias
p Orden de precedencia
p Falta de reglas en compilador
reglas en el ccompilador

n Errores en tipos de data


n Programadores experimentados lo ven como ventaja

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


* Programación Estructurada
p Basado en el teorema del programa
estructurado
n Toda función computable se puede resolver
combinando subrutinas, usando únicamente
p Secuencias
§ Ejecutar una subrutina y luego otra subrutina
p Selección
§ Ejecutar una de dos subrutinas, dependiendo del valor de una
variable booleana (IF-THEN-ELSE)
p Iteración
§ Ejecutar una subrutina mientras una variable booleana sea
'verdadera'

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


n Tiene un diseño modular, construido de modo
descendente (top-down)

Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres


* Ejemplo de lenguajes no
estructurados
BASIC FORTRAN
10 INPUT A,B READ(5,10) A,B
10 FORMAT(2F6.2)
20 IF A>=2 THEN GOTO 50
IF (A.GT.2) GOTO 20
30 LET Y=2.*X+4 Y=2.*X+4
GOTO 50
40 GOTO 60 20 Y=4.*X-2

50 LET Y=4.*X-2 50 WRITE(6,60)


60 FORMAT(2X,F8.2)
60 PRINT “Valor de Y”;Y STOP
END
70 END Programación
Prof. y Lic. en Mat. Aplic . y Comp. René Martínez Torres

sin GOTO

También podría gustarte