You are on page 1of 30

Introduccin

Programacin

Objetivos
En el curso se utilizar el lenguaje C y cubrir los siguientes objetivos:
-Utilizar funciones como bloque bsicos en la construccin de programas
estructurados.
-Utilizar estructuras de datos estticas como arreglos multidimensionales y
registros.
-Manejar archivos secuenciales y aleatorios.
-Analizar y utilizar algunos algoritmos bsicos de ordenacin y bsqueda.
-Controlar dispositivos de hardware utilizando los puertos tpicos de una
PC (serial, paralelo, USB).
-Desarrollar un proyecto de programacin de mediana dificultad.

Metodologa
Cada sesin constar de una parte terica y otra prctica.
Los ejercicios resueltos en clase contarn 20% de la calificacin.
Se desarrollar un proyecto personal a lo largo del semestre.
El proyecto contar el 40% de la calificacin.
Se llevarn a cabo 2 exmenes
Un examen a mitad del semestre y otro al final.
Cada examen cuenta el 20% de la calificacin:
trabajo en clase

20%

Proyecto

40%

Exmenes

40%

Bibliografa
C: Como Programar en C++
H.M. Deitel & P.J. Deitel
Prentice Hall, 1994 (2nd ed.)
http://www.deitel.com

Manual de Dev-C++

Breve historia de C
C es un lenguaje de programacin creado en 1969 por Ken Thompson y Dennis
M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su
vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementacin de Sistemas
Operativos, concretamente Unix.
C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de
programacin ms popular para crear software de sistemas, aunque tambin se
utiliza para crear aplicaciones.
Se trata de un lenguaje dbilmente tipado de medio nivel pero con muchas
caractersticas de bajo nivel.
Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez,
dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.
Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar
cdigo en ensamblador con cdigo C o acceder directamente a memoria o
dispositivos perifricos.

Entorno de C++
Editor

Preprocesador

Compilador

Editor de enlaces

Disco

Disco

Crea el programa
archivo .c o .cpp
Procesa directivas

Disco
Genera cdigo objeto
archivo .obj
Disco
Crea archivo ejecutable
archivo a.out o .exe

Entorno de C++ (cont.)


Memoria principal
Cargador
Pone el programa
ejecutable en memoria
Disco

Memoria principal
CPU

La CPU ejecuta las


instrucciones en la
memoria

Primer ejemplo
Librera para entrada y salida

#include <iostream.h>

Librera para manejo de consola

#include <conio.h>
int main()
{
cout << "!Hola Mundo!\n";
getch();
return 0;

Sentencia de salida

}
Espera una tecla

3. Compilar usando Dev-C++


2. Guardar en disco

3. Compilar

4. Ejecutar (correr)

1. Escribir el cdigo

Secuencias de escape para la


salida
Sirven para modificar la salida de datos
Se utilizan con cout para formatear la salida

\n

Salto de lnea, tambin endl

\t

tabulacin horizontal

\r

retorno de lnea

\\

diagonal invertida

imprime comillas

\OOO

visualiza un carcter cuyo cdigo ASCII es OOO en


octal.

\xHHH

visualiza un carcter cuyo cdigo ASCII es HHH en


hexadecimal.

Ejemplos de secuencias de escape


#include <iostream.h>
#include <conio.h>
int main()
{
cout << "!Bienvenido a ";
cout << "Dev-C++!\n";
getch();
return 0;
}

Una lnea mediante dos


sentencias

Varias lnea mediante


una sentencia

#include <iostream.h>
#include <conio.h>
int main()
{
cout << "Bienvenido\na\nC++!\n";
getch();
return 0;
}

Pregunta rpida
Que salida genera el siguiente programa?

int main()
{
cout << Introduccin a\nlas computadoras";
cout << y a la\n programacin";
cout << en\n C++\n";
return 0;
}

Variables
Las variables permiten almacenar valores de diferentes tipos.
Sus caractersticas son
nombre un identificador vlido
tipo int, float, double, char, etc.
valor el valor almacenado
En C es necesario definir todas las variables que se utilicen
Las variables se declaran con la siguiente sintaxis:
tipo var1, var2, ;
Ejemplos:

Declara a, b y c como enteras

int a, b, c;
float r, s;

Declara r y s como reales

Tipos de datos numricos


La siguiente tabla resume los tipos de datos numricos en Turbo C++

Tipo
Longitud
unsigned char 8 bits
char
8 bits
enum
16 bits
unsigned int 16 bits
short int
16 bits
int
16 bits
unsigned long 32 bits
long
32 bits
float
32 bits
double
64 bits
long double 80 bits

Rango
0
-128
-32,768
0
-32,768
-32,768
0
-2,147,483,648
3.4*(10^-38)
1.7*(10^-308)
3.4*(10^-4932)

a
a
a
a
a
a
a
a
a
a
a

255
127
32,767
65,535
32,767
32,767
4,294,967,295
2,147,483,647
3.4*(10^+38)
1.7*(10^+308)
1.1*(10^+4932)

Constantes numricas
Las constantes numricas enteras pueden escribirse en decimal,
hexadecimal u octal.
Decimal secuencias de dgitos decimales con o sin signo (+, -).
Hexadecimal secuencias de dgitos hexadecimales (0..9, a..f, o A..F) que
inicia con 0x.
Ejemplo: 0x00ff o 0x00FF = 255
Octal secuencias de dgitos octales (0..7) que inicia con 0.
Ejemplo: 0456 = 302
Las constantes reales se especifican como secuencias de dgitos decimales
y el punto decimal.
Los nmeros en notacin cientfica se expresan indicando el multiplicador
de 10 mediante E+nn o e+nn.
Ejemplo: 12.4 x 104 = 12.4E+4 o 12.4E4

Operacin de asignacin
La operacin bsica para el uso de variables es la asignacin
El tipo de constante a asignar debe de ser congruente con el tipo con el que
fue declarada la variable.
Para la asignacin se utiliza el smbolo =
Ejemplos:
a = 5;
b = 8;
cout << a << b;
Imprime
58

Ejemplo
//Ejemplo de secuencias de escape
#include <iostream.h>
#include <conio.h>
int main()
{
int a,b,c,d; //4 variables reales
a = 45;
b = 23;
c = 368;
d = 345;
cout << "Impresin de \"variables\"\n";
cout << "a\tb\tc\td\n";
cout << a << "\t" << b << "\t" << c << "\t" << d << endl;
gerch();
return 0;
}

Salida

Impresin de "variables"
a
b
c
d
45
23
368
345

Ejemplo de asignaciones
//Ejemplo de asignaciones
#include <iostream.h>
int main()
{
int a,b,c; // 3 variables enteras
float x,y,z; //3 variables reales
a = 5;
b = -2;
c = 8;
x = a;
a = b;
y = x;
z = 8.5;
x = z;
cout << "a=" << a << "\nb=" << b << "\nc="<< c << "\n";
cout << "x=" << x << "\ny=" << y << "\nz="<< z << "\n";
return 0;
}
Que valores se imprimen?

Tarea #1
Escriba un programa en C que despliegue los siguientes letreros
Curso de Programacin
Ingeniera Electrnica
Facultad de Ciencias
Escriba un programa que genere la siguiente salida utilizando una sola lnea con cout.
*
**
***
****
*****
Escriba un programa que imprima la siguiente tabla. Utilice tabuladores.
Color
Rojo
Verde
Blanco
Gris

R
255
0
255
128

G
0
255
255
128

B
0
0
255
128

Escriba un programa que declare las variables a y b como enteras y las variables c y d
como reales. Asigne valores aceptables a cada variable. Es posible asignar una
variable entera a una real? Es posible asignar una variable real a una entera? Escriba
cdigo para probar lo anterior y asigne diferentes valores. Por que se dice que C es
dbilmente tipado?

Algunos operadores en C
Operadores aritmticos

Operacin

Operador Ejemplo

Suma

5 + 8

Resta

5 2

Multiplicacin

4 * 8

Divisin

2 / 7

Mdulo

5 % 3

Reglas de precedencia
El operador () se utiliza para modificar la precedencia de los operadores

Operador

Operacin

Precedencia

( )

Parntesis

Precedencia ms
alta. Se evalan
primero los ms
anidados

*, / o %
+ o -

Multiplicacin, divisin,
mdulo

Se evalan de
izquierda a derecha

Suma o resta

Se evalan de
izquierda a derecha

Ejemplos de operadores
Notacin estndar

ab

d
c

a mod c d
ab
2c 3
ac
4bc

Notacin en C
a + b d/c

a % c + d
(a + b)/(2*c + 3)

(a - c)/(4*b*c) o
(a - c)/4/b/c

Entrada de datos
Para la lectura de datos desde el teclado puede utilizarse la funcin cin.
El formato para cin es:
cin >> var;
Al ejecutarse la funcin cin se detiene la ejecucin del programa hasta que
se teclee el valor de la variable solicitada.
Pueden leerse varias variables en una sola lnea.
cin >> var1 >> var2 >> var3;
Las variables se leen separadas por espacios o la tecla enter.

Suma de enteros
Declaracin de enteros
// Programa de suma.
#include <iostream.h>
// la funcin main comienza la ejecucin del programa
int main()
{
int entero1; // primer nmero que introduce el usuario
int entero2; // segundo nmero que introduce el usuario
int suma;
// variable en la que se almacena la suma
cout << "Digite el primer entero\n"; // indicador
cin >> entero1;
// lee un entero
cout << "Digite el segundo entero\n"; // indicador
cin >> entero2;
// lee un entero
suma = entero1 + entero2; // asignacin del resultado a suma
cout << "La suma es " << suma << endl; // impresin de suma
return 0;
// indica que el programa termin satisfactoriamente
} // fin de la funcin main

Operacin de suma

Concatenacin de flujo

Sentencia de entrada
Asigna valor a variable
desde el teclado

Memoria del programa de suma


integer1

38

integer2

54

suma

92

Variables
(direcciones
de memoria)

Contenido

Ejemplo
Se desea un programa para calcular el rea de un tringulo dadas las
coordenadas de sus vrtices.
El rea se calcula utilizando la siguiente frmula:

area

1
x1 y2 x2 y3 x3 y1 x1 y3 x2 y1 x3 y2
2

Variables de entrada:

x1, x2, x3, y1, y2, y3

Variables de salida:

area

Solucin
//Programa para calcular el rea de un tringulo
#include <iostream.h>
#include <math.h>
int main()
{
float x1,x2,x3,y1,y2,y3; // coordenadas del tringulo
float area;
// rea del tringulo
cout << "Teclee las coordenadas del primer punto: ";
cin >> x1 >> y1;
cout << "Teclee las coordenadas del segundo punto: ";
cin >> x2 >> y2;
cout << "Teclee las coordenadas del tercer punto: ";
cin >> x3 >> y3;
area = (x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2.0;
cout << "rea: " << area << endl;
return 0;
}

Funciones matemticas
La biblioteca math.h contiene la definicin de muchas funciones
matemticas tiles. El siguiente es un listado breve de algunas funciones.
ceil(x)- redondea al entero ms
pequeo no menor que x.
cos(x)-

coseno de x.

exp(x)-

e.
x

fabs(x)- valor absoluto de x.


floor(x)- redondea al entero ms
grande no mayor que x.
log(x)- logaritmo natural de x.
log10(x)- logaritmo base 10 de x.

pow(x,y)- xy.
sin(x)-

seno de x.

sqrt(x)- raz cuadrada de x.


tan(x)- tangente de x.

Ejemplo
Clculo del rea de un tringulo conocidas las longitudes de los lados
//Programa para calcular el rea de un tringulo
#include <iostream.h>
#include <math.h>
int main()
{
float a,b,c; // lados del tringulo
float s;
//semipermetro
float area;
// rea del tringulo
cout << "Teclee la longitud de los lados: ";
cin >> a >> b >> c;
// lee los lados
s = (a + b + c)/2.0;
area = sqrt(s*(s-a)*(s-b)*(s-c));
cout << "rea: " << area << endl;
return 0;
}

Tarea #2
Escriba un programa que lea el radio de un crculo e imprima su
permetro y rea. Defina el valor de pi como 3.141592.

Escriba un programa para calcular la magnitud de la fuerza entre dos


cargas elctricas dadas las coordenadas de las cargas y la magnitud
de cada carga. La fuerza se calcula con la expresin

F k
k = 8.99x109.

q1q2
x2 x1 2 y2 y1 2

You might also like