You are on page 1of 34

Introducción al Lenguaje

de Programación C

Andrés Arcia
Departamento de Computación
Escuela de Ingeniería de Sistemas
Facultad de Ingeniería
Universidad de Los Andes
Lenguaje de Programación
C
❃ Fue diseñado e implementado por Brian
Kernighan y Dennis Ritchie en 1972, a
partir de los lenguajes BCPL (1967) y B
(1970). Su desarrollo está estrechamente
vinculado al del sistema operativo UNIX.
❃ Combina características de los lenguajes
de alto nivel (sentencias de control y
manipulación de datos) y de los lenguajes
de bajo nivel (manejo de bits).
❃ Es independiente del hardware.
¿Cual es la diferencia entre
C y C++?

❃ C++ es una extensión de C inventado por Bjarne


Stroustrup a principio de la década de 1980 en los
laboratorios Bell.

❃ Es un lenguaje de programación híbrido. Permite


usar tanto la técnica de programación estructurada
y como la técnica de programación orientada a
objetos.
Enfoques de Programación

❃ Programación estructurada (evolucionó en los


sesenta y setenta)

❃ Programación orientada a objetos (OOP:


Object- Oriented Programming) (evolucionó en
los ochenta)
Programación Estructurada
Programación estructurada

❃ Enfoque disciplinado que permite escribir programas


estructurados, utilizando las siguientes tres estructuras de
control bien definidas:
➙ Secuencial (asignación, lectura, escritura)
➙ Decisión o selección (simple, doble, múltiple)
➙ Repetición (repita-mientras, hacer-mientras, repita-para)

❃ Programación orientada a acciones donde la unidad básica


es la función.
Programación Orientada a
Objetos
¿Qué es POO?
Encapsula datos (atributos) y métodos
(comportamiento) en objetos.
Objetos Computacionales: Componentes
de software reutilizables que modelan
objetos del mundo real.

Un objeto, en general, es un ente que


puede ser percibido con alguno de los
sentidos.
Programación Orientada a
Objetos

La unidad minima en la POO es la clase.


Una clase es a un objeto lo que una idea es a un
hecho.
Ejemplo:
Clase: Libro. Objetos: El mundo de Sofia. Hostein
Gaarder. Piense como Leonardo Da Vinci. Michael Gelb.
Clase: Planeta. Objetos: Mercurio, Venus, La Tierra.
¿ Por qué Programación
Estructurada ?

❃ Vamos a estudiar en este curso la programación


estructurada por las siguientes razones:

➙ Los objetos se componen en parte de


fragmentos de programación
estructurada.
➙ Los métodos se implementan usando
programación estructurada.
Lenguajes de Programación
C/C++
❃ Características generales
➙ Simple.
➙ Sintaxis Flexible.
➙ Flujo de control estructurado.
➙ Tipos de datos variados.
➙ Posibilidad de abstracción de datos.
➙ Amplia variedad de operadores.

❃ Elementos sintácticos
➙ Palabras clave
➙ Identificadores
➙ Delimitadores
➙ Comentarios
Palabras Reservadas en C

Las palabras listadas a continuación son reservadas del


compilador y no pueden ser utilizadas para otro propósito que
no sea el predefinido.
Palabras reservadas en C
auto break case char const
continue default do double else
goto if float enum extern
float for int long return
register short signed sizeof static
struct switch typedef union unsigned
void volatile while
Identificadores

Consideraciones Semanticas
❃ Nombres que permiten señalar, mencionar o
hacer referencia a los diferentes objetos
manipulados por un programa.
❃ Deben resultar significativos, sugiriendo lo que
representan.
Identificadores
Consideraciones Sintacticas
❃ No pueden ser palabras reservadas.
❃ El primer caracter debe ser una letra (ó un
underscore).
❃ Las letras mayusculas y minusculas son diferentes.
Ej: “A” es diferente que “a”.
❃ En la mayoria de los compiladores la máxima
longitud es de al menos 31 caracteres.
Ejemplos de Identificadores

Ejemplos:

Identificadores válidos

promedio, TempMinima, _parametro_auxiliar, __p4,


Color_Pared, _VALMAX, VAL_MINIMO5

Identificadores inválidos

4promedio, -TempMinima, parámetro_auxiliar, =_p4,


8Color_Pared, °_VALMAX, ?VAL_MINIMO5
Delimitadores

Signos especiales que permiten al compilador


separar y reconocer las diferentes unidades
sintácticas del lenguaje.
➔ ; (punto y coma). Se considera el de terminación, que
es necesario cuando finaliza cada una de las
sentencias o declaraciones.
➔ , (coma). Separa dos elementos consecutivos de una
lista.
➔ ( ) (paréntesis). Enmarca una lista de parámetros,
expresiones o condiciones.
➔ [ ] (corchetes). Enmarca la dimensión o el subíndice de
un arreglo.
➔ { } (llaves). Enmarca un bloque de sentencias o una
lista de valores iniciales.
Comentarios

• Permiten que el programador documente sus


programas.
• Los comentarios dan legilibilidad al programa.
• Deben ser actualizados con regularidad.
• No representan ningún peso para el desempeño
final del programa pues son completamente
ignorados por el compilador.
Comentarios

Características Semanticas:

➔ Deben ser coherentes con el programa.


➔ Deben ser relevantes.
➔ Deben mantenerse al día.
➔ Siempre deben enriquecer el programa: conceptos,
gráficos, relaciones entre funciones, etc..
Comentarios

En C los comentarios empiezan por los


caracteres /* y terminan con los caracteres */.

Pueden comprender varias líneas y estar


distribuidos de cualquier forma, pero todo aquello
que está entre el /* (inicio del comentario) y el */
(fin del comentario) es simplemente ignorado por el
compilador.
Sintaxis de un Comentario

Ejemplos:
/* Esto es un comentario simple. */
/* Esto es un comentario más largo,
distribuido en varias líneas. El
texto se suele alinear por la izquierda. */

/****************************************
* Esto es un comentario de varias *
* líneas, encerrado en una caja para *
* llamar la atención. *
*****************************************/
Un programa simple en C

/* Evaluacion del polinomio x*x+x-1 en x=2 */

int main()
{
int x, r; // Declaracion de la variable x y r

r=x*x+x-1; // Calculo del resultado


}
Consideraciones del
Programa Anterior
❃ La primera linea describe el propósito del programa.
❃ Todo programa debe contener un punto de entrada
para su ejecución:
int main()

❃ La llave que abre { indica el comienzo del cuerpo de


la función, mientras que la llave que cierra } indica el
final del cuerpo de la función.

{
int x, r; // Declaracion de la variable x y r

r=x*x+x-1; // Calculo del resultado


}
Programas en C

❃ Esta línea dice al compilador que dos variables


del tipo entero x y r, se van a usar en el
programa. El compilador reservará espacio en
memoria para estas variables durante su
ejecución. Toda variable usada en un programa
debe ser declarada y se le debe asignar un tipo
de dato.
int x, r;
❃ El calculo del valor del polinomio se hace de la
forma esperada:
r = x*x+x-1
Programa en C

La función principal y obligatoria de todo programa en


C es la función main:

void main( )
{
Aqui va el código.
}
Sintaxis de un Prog. en C
Sintaxis formal 1
/* Comentarios */
Declaración de importaciones
Definición de constantes ⇐ Opcional
Definición de tipos ⇐ Opcional
Declaración de prototipos ⇐ Opcional
Declaración de variables globales ⇐ Opcional
void main ( )
{
Declaración de variables locales ⇐ Opcional
Declaración de constantes locales ⇐ Opcional
Conjunto de sentencias ⇐ Cuerpo de la función
}
Definición de funciones ⇐ Opcional
Sintaxis de Un Prog. En C
Sintaxis formal 2
/* Comentarios */
Declaración de importaciones
Definición de constantes ⇐ Opcional
Definición de tipos ⇐ Opcional
Declaración de variables globales ⇐ Opcional
Definición de funciones ⇐ Opcional

void main ( )
{
Declaración de variables locales ⇐ Opcional
Declaración de constantes locales ⇐ Opcional
Conjunto de sentencias ⇐ Cuerpo de la función
}
Recuerde
Elementos de un lenguaje de programación
Un sublenguaje para definir los datos:
Qué datos tenemos
Cómo les llamamos
Cómo son (tipo y/o estructura)
Qué se puede hacer con ellos

Un sublenguaje para definir los algoritmos:


Qué le hacemos a los datos
En qué orden (cuándo se lo hacemos)
Cuántas veces

Según Wirth: Programa = Algoritmo + Datos


Conjunto de sentencias

Estructuras de control
❃ El proceso de diseño del algoritmo y posterior
codificación del programa consiste en definir las
acciones o sentencias que resolverán el problema.

❃ En un programa las sentencias son ejecutadas de


forma secuencial y en el orden en que aparecen
escritas, a menos de que exista una indicación de
salto abrupto.
Estructuras de Control
Programa lineal: Las sentencias se Programa no lineal: Se interrumpe
ejecutan secuencialmente en el la secuencia mediante sentencias
orden en que aparecen escritas. de bifurcación.
Tipos de Estructuras de Control

La programación estructurada se caracteriza por utilizar


tres estructuras de control. Todos los programas pueden
ser escritos en términos de estas estructuras de control
(Bohm y Jacopini):

➔ Estructuras secuenciales
➔ Estructuras de decisión o selección

➔ Estructuras de repetición
Estructuras Secuenciales
Se ejecutan en secuencia sin posibilidad que la sentencia
siguiente a ejecutar pueda ser otra diferente de la que sigue en
la secuencia.

Tipo de sentencia Pseudocódigo Pseudocódigo Código


en inglés en español en C
Comienzo de proceso begin Inicio {
Fin de proceso end Fin }
Entrada (lectura) read Leer scanf
Salida (escritura) write Escribir printf
Asignación A←5óA=5 A←5óA=5 A=5
Estructuras Secuenciales

Ejecución
secuencial

. Punto de entrada
. o salida único
Estructura
secuencial
Sentencia de Entrada (Lectura)

Permite leer de la entrada estandar determinados valores y


asignarlos a determinadas variables. La entrada estandar
puede estar determinada por los dispositivos de entrada
(teclados, unidades de disco, tarjetas de red, etc.)
Notación algorítmica
Leer (lista de variables de entrada)
Leer (a, b, c)

Notación en C
scanf(“tipos”,&var1,&var 2, … ,&varn);
scanf(“tipos”,&a,&b,&c);
Sentencia de Salida (Escritura)
Permite escribir los resultados de un programa. La salida
puede aparecer en un dispositivo de salida (pantalla,
impresora, etc.)

Notación algorítmica
Escribir (mensajes y/o variables de salida)
Escribir (“El resultado es”, resultado)

Notación en C++
printf(“mensajes + tipos”, var1, var2, ..., varN);
printf(“El resultado es %tipo”, resultado).
Ejemplo: ¡Hola Mundo!

#include <stdlib.h>
int main()
{
printf(“¡Hola Mundo! \n”);
return 0;
}
Ejemplo 2: Saludo
Personalizado.

#include <stdlib.h>
int main()
{
char nombre[20];
printf(“Ingrese su nombre: ”);
scanf(“%s”, nombre);
printf(“Hola %s\n”, nombre);
return 0;
}

You might also like