fundamentos de programacion - unidad 3 introduccion a la programacion

35
Ingeniería en Sistemas Computacionales Fundamentos de Programación Unidad III: Introducción a la Programación Este material está desarrollado para la asignatura Fundamentos de Programación SCD-1008, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224

Upload: jose-antonio-sandoval-acosta

Post on 13-Apr-2017

174 views

Category:

Engineering


9 download

TRANSCRIPT

Page 1: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Ingeniería en Sistemas ComputacionalesFundamentos de Programación

Unidad III: Introducción a la Programación

Este material está desarrollado para la asignatura Fundamentos de Programación SCD-1008, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224

Page 2: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Marco Histórico de Lenguaje C• 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.

FUNDAMENTOS DE PROGRAMACIÓN

Page 3: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• A mediados de los ochenta el Lenguaje 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 Lenguaje 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.

FUNDAMENTOS DE PROGRAMACIÓN

Page 4: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

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

FUNDAMENTOS DE PROGRAMACIÓN

Page 5: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

El preprocesador • Transforma el programa fuente, convirtiéndolo en otro archivo

fuente “predigerido”.

El compilador • Convierte el archivo fuente entregado por el preprocesador en

un archivo en lenguaje máquina

FUNDAMENTOS DE PROGRAMACIÓN

Page 6: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

El enlazador

• Un archivo 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 archivos objetos y de las bibliotecas. Las bibliotecas contienen el código de funciones precompiladas, a las que el archivo fuente llama.

FUNDAMENTOS DE PROGRAMACIÓN

Page 7: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

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.

FUNDAMENTOS DE PROGRAMACIÓN

Page 8: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Las interfaces de estos servicios vienen definidas en unos Archivos Cabeceras (header files). El nombre de estos archivos 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)

FUNDAMENTOS DE PROGRAMACIÓN

Page 9: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

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

FUNDAMENTOS DE PROGRAMACIÓN

Page 10: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

#include <biblioteca1.h>... otras bibliotecas ... using namespace std;

... declaraciones de funciones ...

... definiciones (cuerpos de funciones) ...

... declaraciones de variables globales ... int main(int argc, char *argv[]) {

... instrucciones del main ... cin.get(); return 0;}

FUNDAMENTOS DE PROGRAMACIÓN

Estructura de un archivo fuente

Un archivo fuente en lenguaje C++ tendrá

esta estructura típica:

Page 11: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

#include <iostream>#include <cstdlib>#include <stdio.h>#include <conio.h>using namespace std;int main(int argc, char *argv[]) {

system(" pause");

return 0;}

FUNDAMENTOS DE PROGRAMACIÓN

Estructura de un archivo fuente

Archivo fuente con instrucciones básicas

Page 12: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Tipos de variables en C++: Tipos Numéricos

• int: -32.768 y +32.767, incluyendo el cero (0)• long: - 2.347.483.648 y +2.347.483.647• char: -128 y +127• Todos pueden ser modificados con los calificadores “signed”

“unsigned”.

FUNDAMENTOS DE PROGRAMACIÓN

Page 13: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

FUNDAMENTOS DE PROGRAMACIÓN

Page 14: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Variables de número real o punto flotante: Un número real ó de punto flotante es aquel que además de una parte entera, posee fracciones de la unidad.

FUNDAMENTOS DE PROGRAMACIÓN

Page 15: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Variables tipo Carácter: El lenguaje C++ guarda los caracteres como números de 8 bits de acuerdo a la norma ASCII extendida, que asigna a cada carácter un número comprendido entre 0 y 255. Es común entonces que las variables que vayan a alojar caracteres sean definidas como:

char x;

FUNDAMENTOS DE PROGRAMACIÓN

Page 16: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Existen una serie de caracteres que no son imprimibles. Un caso típico sería el de "nueva línea" ó ENTER.

• Con el fin de tener acceso a los mismos es que aparecen ciertas secuencias de escape convencionales. Las mismas están listadas en la tabla 3 y su uso es idéntico al de los caracteres normales, así para resolver el caso de una asignación de "nueva línea " se escribirán los caracteres de la tabla siguiente:

FUNDAMENTOS DE PROGRAMACIÓN

Page 17: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

FUNDAMENTOS DE PROGRAMACIÓN

Page 18: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Constantes: Es una mala práctica colocar en un programa valores constantes de manera literal, sobre todo, cuando se usa varias veces en un programa, es mejor asignar el valor a una variable y usar dicha variable, la forma de hacerlo es usando la directiva “#define”:

• Ejemplos:#define PI 3.1416#define GRV 9.81

FUNDAMENTOS DE PROGRAMACIÓN

Page 19: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Funciones cin y cout: cin es el flujo de entrada estándar que normalmente es el teclado y cout es el flujo de salida estándar que por lo general es la pantalla.

Sintaxis: cout << “El total es: ” << total; (el texto es entre comillas)

iostream es el archivo de encabezado del flujo de entrada/salida. Este archivo debe incluirse cuando se utilicen cin o cout.

cin >> variable;La instrucción cin obtiene un valor desde el teclado. El usuario debe introducir un valor y luego enter.

FUNDAMENTOS DE PROGRAMACIÓN

Page 20: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Ejemplo:include <stdio.h>using namespace std;int main(int argc, char *argv[]) { int i1, i2, sum;

cout << “Ingrese el 1er numero entero\n”; cin >> i1; cout << “Ingrese el 2do numero entero\n”; cin >> i2; sum = i1+i2; cout << “\n La suma es ”; cout << sum; Cin.get();return 0;

}

FUNDAMENTOS DE PROGRAMACIÓN

Page 21: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

#include <cstdlib>#include <iostream>#include <stdio.h>#include <conio.h>using namespace std;int main(int argc, char *argv[]){ float area, radio, PI; PI=3.1416; cout << "Teclea el Radio del Circulo: \n"<<endl; cin >> radio; area = PI*radio*radio; cout << "El area del circulo es: "; cout << area << endl; system("pause"); return 0;}FU

NDA

MEN

TOS

DE P

ROGR

AMAC

IÓN

Ejemplo:

Page 22: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

FUNDAMENTOS DE PROGRAMACIÓN

Page 23: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: realiza el programa para solucionar el área de un círculo:

a=pi*(r*r)

utilizar también la directiva #define

FUNDAMENTOS DE PROGRAMACIÓN

Page 24: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: hacer el programa para solucionar el área, el perímetro y la superficie de un triángulo;

Fórmulas:

área=(b*h)/2superficie=b*hperímetro=2(b+h)

Nota: debes declarar las variables necesarias para ser capturadas:

FUNDAMENTOS DE PROGRAMACIÓN

Page 25: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• abs; sintaxis: int abs (int x); Macro que devuelve el valor absoluto de un entero.• sqrt; sintaxis: double sqrt (double x); Calcula la raíz cuadrada. Devuelve la raíz cuadrada de

x. Si se llama con un número negativo se produce un error de dominio.• atof; sintaxis: double atof (const char *s); Convierte cadena a punto flotante.• Devuelve el valor contenido en s convertido a tipo double, o 0 si s no puede ser convertido.• cabs; sintaxis: double cabs (struct complex z); Valor absoluto de un número complejo.

Devuelve el valor absoluto de z como un double.• ceil; sintaxis: double ceil (double x); Redondea por arriba. Devuelve el menor entero mayor

o igual que x.• exp; sintaxis: double exp (double x); Calcula e elevando a la x-éxima potencia.• fabs; sintaxis: double fabs (double x); Valor absoluto de valor en punto flotante.• floor; sintaxis: double floor (double x); Redondea por abajo. Devuelve el mayor entero que

no es mayor que x.

FUNDAMENTOS DE PROGRAMACIÓN

Page 26: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• fmod; sintaxis: double fmod (double x, double y); Calcula x módulo y.• labs; sintaxis: long int labs (long int x); Calcula el valor absoluto de un long.• ldexp; sintaxis: double ldexp (double x, int exp); Calcula el producto entre x y 2 elevado

a exp.•modf; sintaxis: double modf (double x, double *parte_entera); Descompone en parte

entera y parte fraccionaria. La función modf() descompone x en sus partes entera y fraccionaria. Devuelve la parte fraccionaria y sitúa la parte entera en la variable apuntada por parte_entera.•pow; sintaxis: double pow (double base, double exponente); Función potencia, x

elevado a y); Devuelve base elevado a exponente. Se produce un error de dominio si base es 0 y exponente es menor o igual que 0. También puede ocurrir si base es negativo y exponente no es entero. Un desbordamiento produce un error de rango.•pow10; sintaxis: double pow10 (int p); Función potencia, 10 a la p. Devuelve 10

elevado a p.

FUNDAMENTOS DE PROGRAMACIÓN

Page 27: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: haga el programa que obtenga el cuadrado, el cubo y el valor absoluto de un número.

FUNDAMENTOS DE PROGRAMACIÓN

Page 28: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: hacer un programa que convierta una cantidad de grados Centígrados a grados Fahrenheit la fórmula es:

GF=GC*(9/5)+32

FUNDAMENTOS DE PROGRAMACIÓN

Page 29: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: Escriba un programa que calcule el valor absoluto de un número entero. Debe utilizar la función correspondiente y además hacer el cálculo por medio de raíz cuadrada y desplegar ambos resultados que deben ser iguales.

Nota: no debes utilizar comparaciones.

FUNDAMENTOS DE PROGRAMACIÓN

Page 30: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: hacer programa que pida el nombre de una persona, su peso en libras y su estatura en pies (medidas americanas) y convierta su peso a kilos y su estatura a metros, desplegar al final los resultados con el nombre

• 1 libra equivale a 0.4536 kilos• 1 pie equivale a 0.3047 metros

FUNDAMENTOS DE PROGRAMACIÓN

Page 31: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: hacer un programa que solucione el problema de una gasolinera, sus bombas surten la gasolina en galones pero la cobran en litros, mostrar en pantalla cuanto se debe cobrar dependiendo de la cantidad de galones vendidos y el precio de la gasolina (precio variable), un galón equivale a 3.785 litros.

FUNDAMENTOS DE PROGRAMACIÓN

Page 32: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga a razón de 2% mensual

FUNDAMENTOS DE PROGRAMACIÓN

Page 33: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra.

FUNDAMENTOS DE PROGRAMACIÓN

Page 34: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

• Ejercicio: construya un programa que determine la distancia entre dos puntos, leyendo para esto las coordenadas de los puntos p1 y p2.

Coordenadas x1, y1, x2, y2

x1, y1 son el punto p1 de las coordenadasx2, y2 son el punto p2 de las coordenadasFórmula:

FUNDAMENTOS DE PROGRAMACIÓN

Page 35: Fundamentos de Programacion - Unidad 3 Introduccion a la programacion

Funciones puts() y gets(); • La función puts( ) escribe una cadena de caracteres y un carácter de

nueva línea al final de la cadena en la salida estándar. Acepta como argumento una cadena (sin formato).

• La función gets( ) lee una cadena de caracteres de la entrada estándar hasta que se encuentra el carácter ‘\n’, aunque este carácter no es añadido a la cadena.

FUNDAMENTOS DE PROGRAMACIÓN