Вы находитесь на странице: 1из 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
FUNDAMENTOS DE PROGRAMACIÓN
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
• 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

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

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
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
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
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
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
#include <biblioteca1.h>
... otras bibliotecas ...
using namespace std;
Estructura de un ... declaraciones de funciones ...
archivo fuente ... definiciones (cuerpos de funciones) ...
... declaraciones de variables globales ...
Un archivo fuente en
lenguaje C++ tendrá int main(int argc, char *argv[]) {
esta estructura típica: ... instrucciones del main ...
cin.get();
return 0;
}
FUNDAMENTOS DE PROGRAMACIÓN
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <conio.h> Estructura de un
using namespace std; archivo fuente
int main(int argc, char *argv[])
{ Archivo fuente con
instrucciones básicas

system(" pause");
return 0;
}
FUNDAMENTOS DE PROGRAMACIÓN

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
FUNDAMENTOS DE PROGRAMACIÓN

• 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

• 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

• 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
FUNDAMENTOS DE PROGRAMACIÓN

• 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
• 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
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;
}
#include <cstdlib>
#include <iostream>
#include <stdio.h>
FUNDAMENTOS DE

#include <conio.h>
PROGRAMACIÓN

using namespace std;


int main(int argc, char *argv[])
{
float area, radio, PI;
Ejemplo: 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;
}
FUNDAMENTOS DE PROGRAMACIÓN
FUNDAMENTOS DE PROGRAMACIÓN

• 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
• Ejercicio: hacer el programa para solucionar el área, el perímetro y la
superficie de un triángulo;

Fórmulas:

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

Nota: debes declarar las variables necesarias para ser capturadas:


FUNDAMENTOS DE PROGRAMACIÓN
• 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
• 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

• Ejercicio: haga el programa que obtenga el cuadrado, el cubo y


el valor absoluto de un número.
FUNDAMENTOS DE PROGRAMACIÓN

• 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
• 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

• 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

• 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

• 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

• 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
• 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 coordenadas
x2, y2 son el punto p2 de las coordenadas
Fórmula:
FUNDAMENTOS DE PROGRAMACIÓN

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.