You are on page 1of 26

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.
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.
Primer ejemplo
#include <iostream.h>
#include <conio.h>
int main()
{
cout << "!Hola Mundo!\n";
getch();
return 0;
}
Librera para entrada y salida
Librera para manejo de consola
Sentencia de salida
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
\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.
Sirven para modificar la salida de datos
Se utilizan con cout para formatear la salida
Ejemplos de secuencias de escape
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
cout << "!Bienvenido a ";
cout << "Dev-C++!\n";
system(pause);
return 0;
}
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
cout << "Bienvenido\na\nC++!\n";
system(pause);
return 0;
}
Una lnea mediante dos
sentencias
Varias lnea mediante
una sentencia
Pregunta rpida
int main()
{
cout << Introduccin a\nlas computadoras";
cout << y a la\n programacin";
cout << en\n C++\n";
return 0;
}
Que salida genera el siguiente programa?
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;
Declara a, b y c como enteras
Declara r y s como reales
Tipos de datos numricos
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)
La siguiente tabla resume los tipos de datos numricos en Turbo C++
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 10
4
= 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>
#include <cstdlib>
using namespace std;
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;
system(pause);
return 0;
}
Impresin de "variables"
a b c d
45 23 368 345
Salida
Ejemplo de asignaciones
//Ejemplo de asignaciones
#include <iostream>
#include <cstdlib>
using namespace std;
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";
system(pause);
return 0;
}
Que valores se imprimen?
Ejercicios propuestos
Escriba un programa en C que despliegue los siguientes letreros
Curso de Programacin
Tcnico escriba su especialidad
Facultad de escriba la facultad
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 y mustrelas en pantalla.
1.- Es posible asignar una variable entera a una real?
2.- 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?
Ejercicios propuestos
Algunos operadores en C
Operacin Operador Ejemplo
Suma
+ 5 + 8
Resta
- 5 2
Multiplicacin
* 4 * 8
Divisin
/ 2 / 7
Mdulo
% 5 % 3
Operadores aritmticos
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, mdulo Se evalan de
izquierda a derecha
+ o -
Suma o resta Se evalan de
izquierda a derecha
Ejemplos de operadores
c
d
b a
Notacin estndar
Notacin en C
a + b d/c
d c a mod
a % c + d
3 2

c
b a
(a + b)/(2*c + 3)
bc
c a
4

(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
// Programa de suma.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int entero1, entero2;
int suma;
cout << "Digite el primer entero\n";
cin >> entero1;
cout << "Digite el segundo entero\n";
cin >> entero2;
suma = entero1 + entero2;
cout << "La suma es " << suma << endl;
return 0;

}
Declaracin de enteros
Sentencia de entrada
Asigna valor a variable
desde el teclado
Operacin de suma
Concatenacin de flujo
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:

2 3 1 2 3 1 1 3 3 2 2 1
2
1
y x y x y x y x y x y x area
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)- x
y
.
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>
#include <math.h>
#include <cstdlib>
using namespace std;
int main()
{
float a,b,c, area; // lados del tringulo y rea
float s; // semipermetro

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;
system(pause);
return 0;
}

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

2
1 2
2
1 2
2 1
y y x x
q q
k F

k = 8.99x10
9
.
Ejercicios propuestos

You might also like