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

Disco Crea el programa


Editor
archivo .c o .cpp

Disco
Preprocesador Procesa directivas

Disco
Compilador Genera cdigo objeto
archivo .obj
Disco
Editor de enlaces Crea archivo ejecutable
archivo a.out o .exe
Entorno de C++ (cont.)
Memoria principal
Cargador
Pone el programa
ejecutable en memoria
Disco

Memoria principal

La CPU ejecuta las


CPU
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();
Sentencia de salida
return 0;
}
Espera una tecla
3. Compilar usando Dev-C++
1. Escribir el cdigo
2. Guardar en disco

3. Compilar

4. Ejecutar (correr)
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> Una lnea mediante dos
int main() sentencias
{
cout << "!Bienvenido a ";
cout << "Dev-C++!\n";
getch(); Varias lnea mediante
return 0; 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 Rango


unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
enum 16 bits -32,768 a 32,767
unsigned int 16 bits 0 a 65,535
short int 16 bits -32,768 a 32,767
int 16 bits -32,768 a 32,767
unsigned long 32 bits 0 a 4,294,967,295
long 32 bits -2,147,483,648 a 2,147,483,647
float 32 bits 3.4*(10^-38) a 3.4*(10^+38)
double 64 bits 1.7*(10^-308) a 1.7*(10^+308)
long double 80 bits 3.4*(10^-4932) a 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;
}

Impresin de "variables"
Salida 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 R G B
Rojo 255 0 0
Verde 0 255 0
Blanco 255 255 255
Gris 128 128 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 % Multiplicacin, divisin, Se evalan de
mdulo izquierda a derecha
+ o - Suma o resta Se evalan de
izquierda a derecha
Ejemplos de operadores
Notacin estndar Notacin en C

d
ab a + b d/c
c

a mod c d a % c + d

ab
(a + b)/(2*c + 3)
2c 3

ac (a - c)/(4*b*c) o
4bc
(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 Sentencia de entrada


Asigna valor a variable
Operacin de suma Concatenacin de flujo desde el teclado
Memoria del programa de suma

integer1 38
Variables
integer2 54 Contenido
(direcciones
de memoria)

suma 92
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:

1
area 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 pow(x,y)- xy.


pequeo no menor que x.
sin(x)- seno de x.
cos(x)- coseno de x.
sqrt(x)- raz cuadrada de x.
exp(x)- e.x

tan(x)- tangente de 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.
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

q1q2
F k
x2 x1 2 y2 y1 2
k = 8.99x109.

You might also like