44
Introducción a la Programación con C Código de Curso: CY320 Copyright © 2005

Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Embed Size (px)

DESCRIPTION

efe

Citation preview

Page 1: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Introducción a la Programación con C

Código de Curso: CY320

Copyright © 2005

Page 2: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Volumen 1

Fundamentos de C

Copyright © 2005

Page 3: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• CY320 Introducción a la Programación con C • Instructor:

– Por favor, preséntese a los alumnos. • Nombre.• Experiencia con Lenguaje C. • Metas que espera alcanzar.

Copyright © 2005

Introducción

Page 4: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Este curso está diseñado para introducir a los estudiantes a la programación usando Lenguaje C.

• El alcance del curso es proveer un entendimiento básico de los conceptos relacionados a los algoritmos y programación usando C.

Copyright © 2005

Descripción del Curso

Page 5: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Estudiantes, profesionales y desarrolladores que deseen aprender acerca de los algoritmos básicos y la programación en C.

Copyright © 2005

Audiencia

Page 6: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Entender la necesidad y el uso de los sistemas operativos.

• Conocimientos básicos del sistema operativo Linux.

• Estas destrezas se pueden obtener completando el curso CY310 : Fundamentos Básicos de Linux.

Prerrequisitos

Page 7: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Emplear el concepto de estructuras en la solución de problemas.

• Usar las diferentes estructuras condicionales (sentencias if) con el propósito de resolver problemas que las requieran.

• Construir estructuras switch en Lenguaje C.

• Escribir programas usando las funciones printf y scanf de C.

Objetivos del Curso

Page 8: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Definir los tipos de datos enumerados y utilizarlos para la solución de problemas.

• Definir el concepto de recursión en C.

• Trabajar con macros e instrucciones del preprocesador en C.

• Trabajar con el concepto de manejo de archivos en C.

• Conocer el uso de argumentos recibidos por la función main.

Objetivos del Curso…2

Page 9: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Hemos visto los objetivos globales del curso y la agenda.

• Empecemos.

Resumen

Page 10: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Programación en C

Los Primeros Pasos

Copyright © 2005

Unidad 1

Page 11: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Objetivos del Aprendizaje

• Descibir la evolución de C.

• Discutir cómo escribir algoritmos en C para resolver problemas simples.

• Explicar los diferentes componentes de un programa simple en C.        

Page 12: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

La Evolución de C

• El lenguaje de programación C fue diseñado y desarrollado por Brian Kernighan y Dennis Ritchie en los Laboratorios Bell Research en el año 1972.

• C es un lenguaje de nivel medio con estructuras de alto nivel comparables a las que dispone Pascal y FORTRAN.

• La especificación de las características de C, su sintaxis y semántica las da el American National Standards Institute (ANSI).

Page 13: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Pasos para Escribir un Programa en C

Los pasos básicos para escribir un programa de computadora en C son los siguientes:

• Leer y entender el contexto del problema que requiere una solución mediante un programa de computadora.

• Desarrollar un algoritmo para resolver el problema.

• Verificar la validez del algoritmo.

• Convertir el algoritmo a lenguaje C.

• Probar y verificar el programa C para su validez.

Page 14: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

1 llamadas a bibliotecas2 declaración de funciones3 declaración de variables globales4 main(){5 declaración de variables locales6 sentencias7 }8 definición de funciones

Estructura de un Programa:

Estructura de un Programa en C

La declaración de funciones se conoce también como definición de prototipo de funciones.

Page 15: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• Los nombres de la variables siempre deben comenzar con una letra, esto incluye al carácter “_“.

• El nombre de la variable puede estar formado por una secuencia de letras del alfabeto y/o dígitos de 0 al 9 y/o el carácter “_” (subrayado).

• El estándar ANSI C establece que la variable puede ser de cualquier longitud, pero sólo los primeros 31 caracteres son significativos.

• No se permiten y/o espacios en un nombre de variable.

• Es una buena práctica de programación tener nombres de variables que empiecen con letras minúsculas (a - z).

Variables en un Programa en C

Page 16: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Sentencias de Declaración y Asignación: Las localidades de memoria pueden almacenar enteros,

números reales y caracteres. Las sentencias de declaración ayudan a definir lo que se puede almacenar en un nombre de variable. Para almacenar un entero es como sigue:

int num;

donde: int: Palabra reservada en C que indica una declaración. num: El nombre de la variable. ”;”: Símbolo que se usa como delimitador de sentencia.

• Mediante una sentencia de asignación se almacena un valor en la variable. Ejemplo: num = 15;

Declaración y Asignación en un Programa en C

Page 17: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Extraer los Dígitos Individuales de un Entero de Dos Dígitos

Algoritmo en Lenguaje Natural:Paso 1: Sea num el entero positivo de dos dígitos.Paso 2: El dígito más a la izquierda de num es el cociente de la división

entre 10.Paso 3: El dígito más a la derecha de num es el residuo de la división

entre 10.Paso 4: Mostrar el dígito más a la izquierda y el dígito más a la derecha.

Algoritmo Compacto:

Paso 1: num = 25Paso 2: Dígito más a la izquierda = num / 10Paso 3: Dígito más a la derecha = residuo de num / 10Paso 4: Mostrar el dígito más a la izquierda y el dígito más a la derecha.

Primeros Pasos para escribir un programa en C

Page 18: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Programa Elaborado en Lenguaje C/* Se incluye la librería predefinida (stdio.h) */#include <stdio.h>/* La función principal se inicia aquí */main(){ int num; int digito_izq; int digito_der;/* La variable se inicializa con el valor 25 */ num = 25;

/* El dígito izquierdo se extrae */ digito_izq = num / 10;

/* El dígito derecho se extrae */ digito_der = num - (num /10)*10;

/* Los dígitos son enviados a la salida estándar */ printf("El digito izquierdo es %d\n",digito_izq); printf("El digito derecho es %d\n",digito_der); }

Page 19: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Más acerca de Declaraciones• Se puede combinar en una sola sentencia la declaración

de múltiples variables enteras.

• Ejemplo:

int num, digito_izq, digito_der;

• Se declaran las variables en una sola sentencia con la lista de variables separadas por comas.

•int especifica que una variable entera se está declarando.

• Se asigna espacio de almacenamiento para guardar variables.

Page 20: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Manipulación de Sentencias Largas

• Los programas complejos usualmente tienen sentencias o expresiones largas que se pueden dividir en múltiples líneas.

• Cada línea de la sentencia multilínea se termina con el carácter de diagonal inversa (\).

• La declaración se trata como una sentencia compuesta.

• El siguiente ejemplo:printf(“La temperatura %f fahrenheit esequivalente a %f celsius\n",fahrenheit,celsius);

• Se escribe bien formateado:printf(“La temperatura %f fahrenheit \ es equivalente a %f \ celsius\n",fahrenheit, celsius);

Page 21: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Uso de las Cadenas de Formato

Cadena de Formato Propósito

%d, %i int (notación decimal con signo )

%o int (notación octal sin signo )

%x, %X int (notación hexadecimal sin signo )

%u int (notación decimal sin signo )

%c char

%f %e %E %g %G Double

%s cadena de caracteres

Page 22: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Uso de Secuencias de Escape

Retorno de carro

Tabulador horizontal

Tabulador vertical

Diagonal Inversa

Signo de interrogación

Comilla Simple

Comilla Doble

Número Octal

Número Hexadecimal

\r

\t

\v

\\

\?

\’

\”

\ooo

\xhh

Propósito

Carácter de alerta (timbre)

Retroceso (Backspace)

Formfeed

Nueva línea

Secuencia

\a

\b

\f

\n

Page 23: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Resumen

• Establecer la evolución de C. • Discutir cómo escribir algoritmos en C para solucionar

problemas simples. • Explicar las diferentes componentes de un programa C

simple.

Page 24: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Construir Fundamentos

Sólidos en C

Copyright © 2005

Unidad 2

Page 25: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Objetivos del Aprendizaje

• Explicar cómo escribir programas que tomen una entrada simple usando la función scanf.

• Discutir las reglas que rigen la creación de nombres de variables.

• Discutir las propiedades de algunos de los tipos de datos primitivos pre-definidos en C.

• Describir las propiedades y usos de varios operadores aritméticos.

• Describir la jerarquía de las operaciones o precedencia de operadores en una expresión aritmética.

Page 26: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

• En la librería estándar de E/S <stdio.h> existen muchas funciones incorporadas que están disponibles para los usuarios del lenguaje C, como por ejemplo la función printf.

• La instrucción para incluir la librería es: #include

• Para incluir especificamente <stdio.h> sería:

#include <stdio.h>

• La sentencia es una directiva del preprocesador de C para incluir el programa que constituye la librería estándar de E/S.

Aceptar Entradas del Usuario

Page 27: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Aceptar Entradas del Usuario...2• Para ingresar datos de entrada a un programa se

definen variables para almacenar esa información.

• La sentencia con la función para ingresar un entero en una variable de ese tipo es:

scanf("%d", &num);

• Cuando se ejecuta la función scanf:

- La computadora espera un dato válido por parte del usuario.

- Una vez que el valor se obtiene, éste se almacena en la variable num.

- La cadena de caracteres encerrada en comillas en scanf se llama cadena de formato.

-%d indica que un entero decimal va a ser leído.

Page 28: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Aceptar Entradas del Usuario...3

• Asuma que se desea leer la entrada del usuario en dos variables:

- edad es de tipo de dato int.

- peso es de tipo de dato float.

• Se usan las siguientes sentencias para llevar a cabo la lectura :

scanf("%d",&edad);

scanf("%f",&peso);

Page 29: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Aceptar Entradas del Usuario...Ejemplo 1

Ingresar y mostrar la altura de un individuo # include <stdio.h>

main() {

int altura;

/* Se le indica al usuario que hacer */

printf("Ingrese su altura en centimetros\n");

/* Obtener el valor de la variable como entrada del usuario */

scanf("%d", &altura);

/* Imprimir el valor de la variable a la salida estándar */

printf("La altura en centimetros es %d\n",altura);

}

Page 30: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Aceptar Entradas del Usuario...Ejemplo 2

Extraer los Dígitos Individuales de un Entero de

dos Dígitos#include <stdio.h>main(){

int num,digito_izq,digito_der;printf("Ingrese un numero positivo de 2 digitos\n");

/* Obtener el valor de la variable desde el usuario */scanf("%d",&num);

/* El dígito izquierdo y derecho se extraen */digito_izq = num / 10;digito_der = num - (num/10)*10;

/* Cada dígito obtenido es mostrado */printf("El digito izquierdo es: %d\n", digito_izq);printf("El digito derecho es: %d\n", digito_der);

}

Page 31: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Aceptar Entradas del Usuario...Ejemplo 3Calcular el Interés Simple de un Monto Dado:#include <stdio.h>main(){ int monto, tiempo; float tasa, interes_a_pagar; printf("Ingrese el Monto, como un entero\n"); scanf("%d",&monto); printf("Ingrese el numero de anios\n"); scanf("%d",&tiempo); printf("Ingrese la tasa de interes\n"); scanf("%f",&tasa);

/* Cálculo del interés a pagar */ interes_a_pagar = monto * tiempo * tasa / 100;

/* Los detalles del interés se muestran en la salida estándar */printf("Total del interes sobre el Monto %d Anios \

%d Tasa de Interes %f es %f\n", monto, \ tiempo, tasa, interes_a_pagar);

}

Page 32: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Identificadores de Variables

• Los nombres que se le dan a los elementos de programación de C como constantes, variables y funciones se llaman identificadores.

• La convención de nombres de variables recomienda que dichos identificadores deben comenzar con letras minúsculas.

• Los identificadores pueden empezar también con el carácter subrayado (_).

• Escoja nombres de variables que reflejen la naturaleza de su uso.

• Los identificadores de variables no pueden ser iguales a las palabras reservadas de C.

Page 33: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Tipos de Datos Básicos en C

Tipo de Dato

DescripciónRequerimientos

Típicos de Memoria

int Entero 2 bytes

float Número de punto flotante 4 bytes

double Número de punto flotante de doble precisión

8 bytes

char Carácter simple 1 byte

Page 34: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Calificadores de Tipos de Datos• Los tipos de datos básicos pueden aumentarse usando

calificadores de datos.

• Los calificadores de tipo de datos son: short, long, signed y unsigned.

• Las variables enteras pueden ser calificadas como short int, long int, signed int o unsigned int.

• Generalmente, short requiere menos memoria que sólo int, mientras que long requiere más memoria que sólo int.

• Todos estos detalles dependen del compilador y deben ser verificados por el programador.

• Un unsigned int utiliza el mismo espacio de memoria que int pero permite almacenar el doble de números.

Page 35: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Beneficios de los Calificadores de Datos

• Si en un programa, se requiere alta precisión para números de puntos flotantes, se puede usar el calificador long.

• Una variable de tipo double será diferente al declararla como un long double.

• En ciertas aplicaciones, el tamaño del programa y la memoria que requiere deben mantenerse al mínimo.

• Si el programa fuera a ejecutarse en relojes de pulsera u hornos microondas, la memoria definitivamente es muy pequeña. Los calificadores short se usan para optimizar la memoria disponible en estos casos.

Page 36: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Constantes en C

Existen cinco tipos de constantes en C:

• Constante enteras.

• Constante de punto flotante.

• Constante de carácter.

• Constante de cadena.

• Constante de enumeración.

Page 37: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Constantes Enteras

• Una constante entera es un número de valor entero.

• Consiste de una secuencia de dígitos precedido por un signo + o -.

• Se pueden escribir en tres sistemas numeración diferentes:

- Decimal: Permite los dígitos de 0 a 9 y opcionalmente precedido de un signo + o –.

- Octal: Permite los dígitos de 0 a 7 donde 0 es siempre el primer dígito.

- Hexadecimal: Permite los dígitos 0 a 9 y las letras A, B, C, D, E y F, empezando con 0x y 0X.

Page 38: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Constantes de Punto Flotante

• Una constante de punto flotante es un número en base 10 que contienen un punto decimal (.) o un exponente o ambos.

• Algunas constantes de punto flotante válidas son:0.0 1.00.3 1256.43 +2.5 -3.003

Page 39: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Operadores Aritméticos

• Existen 5 operadores aritméticos en C: + - * / %

• Cuando se usan con operandos enteros, todos los operadores anteriores retornan un resultado entero.

• El operador % es válido sólo cuando ambos operandos son enteros.

• Cuando uno de los operandos es un float, el resultado será también un float.

Page 40: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Prioridad de los Operadores Aritméticos

Prioridad Operadores Descripción

Primero * / % Multiplicación, división, módulo

Segundo + - Adición, resta

Tercero = Asignación

Page 41: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Operadores Compuestos de Asignación

Operador Propósito Ejemplo Salida

+= Suma/Asignación X = 10;X += 5;

15

-= Resta/Asignación X = 10;X -= 5;

5

*= Multiplicación/Asignación X = 10;X *= 5;

50

/= División/Asignación X = 10;X /= 5;

2

%= Módulo/Asignación X = 10;X %= 5;

 

0

Page 42: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Conversión Implicita de Tipos

• Lenguaje C realiza una conversión automática de un tipo de dato a otro y se denomina Conversión Implícita de Tipo.

• Mientras que la conversión de tipo es explícita, el compilador ejecuta implícitamente conversión de tipos.

int i, j;float f;char ch;i = 100;f = 1000.21;j = f;f = i;ch = i;

• Todas las sentencias anteriores son asignaciones válidas.

Page 43: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Conversión Explicita de Tipos• Considere las siguientes declaraciones:

int x;float y;

• ¿Que sucede con la expresión aritmética

(x – y) % 10 ?

- La expresión (x - y) devuelve un resultado de punto flotante dado que y es un float.

- El operador % no es válido dado que uno de los operandos no es un entero.

- Existen ocasiones donde es necesario aplicar el operador %.

- En estos casos, se debe convertir explícitamente el punto flotante a un entero.

- Esto se hace a través de lo que se denomina operación de Conversión (Casting).

Page 44: Intro to Programming Using C Master Visuals Vol 1 V3 (Espa+¦ol)

Copyright © 2005

Resumen

• Se explicó cómo escribir programas que toman una simple entrada usando la función scanf.

• Se discutieron las reglas que rigen la creación de nombres de variables.

• Se estudiaron las propiedades de los tipos de datos primitivos predefinidos de C.

• Se describieron las propiedades y el uso de los diferentes operadores aritméticos.

• Se estableció la jerarquía de las operaciones o la precedencia de los operadores en las expresiones aritméticas.