Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Memoria principal
CPU
Primer ejemplo
Librera para entrada y salida
#include <iostream.h>
#include <conio.h>
int main()
{
cout << "!Hola Mundo!\n";
getch();
return 0;
Sentencia de salida
}
Espera una tecla
3. Compilar
4. Ejecutar (correr)
1. Escribir el cdigo
\n
\t
tabulacin horizontal
\r
retorno de lnea
\\
diagonal invertida
imprime comillas
\OOO
\xHHH
#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:
int a, b, c;
float r, s;
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
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:
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
pow(x,y)- xy.
sin(x)-
seno 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.
F k
k = 8.99x109.
q1q2
x2 x1 2 y2 y1 2