Está en la página 1de 30

Programacin en C/C++

MCA Efran Castillo Muiz

Compilador: DEV C++ http://sourceforge.net/projects/dev-cpp/files/Binaries/DevC%2B%2B%204.9.9.2/devcpp4.9.9.2_setup.exe/download?use_mirror=softlayer-dal Libro base para el curso:


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

http://urmate.jimdo.com/programacin

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

Disco
Disco Disco Disco

Crea el programa archivo .c o .cpp Procesa directivas Genera cdigo objeto archivo .obj Crea archivo ejecutable archivo a.out o .exe

Preprocesador
Compilador Editor de enlaces

Entorno de C++ (cont.)


Memoria principal

Cargador
Disco Pone el programa ejecutable en memoria

Memoria principal
CPU La CPU ejecuta las instrucciones en la memoria

Bloodshed Dev-C++

Es un IDE (Integrated Development Environment) para programar C/C++, Tiene licencia GNU (libre).

Primer Ejemplo C (histrico)


#include stdio.h

main() { printf(Hola Mundo); return 0; }


Qu le falt? #include stdio.h #include conio.h main() { printf(Hola Mundo); getch(); return 0; }

Primer Ejemplo C++


Librera para entrada y salida

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

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


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

\n
\t \r \\

Salto de lnea, tambin endl


tabulacin horizontal retorno de lnea diagonal invertida

imprime comillas

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


Declara r y s como reales

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

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; getch(); 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?

Ejercicios #1
Escriba un programa en C que despliegue los siguientes letreros Curso de Programacin Ingeniera Financiera ITESO 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 Suma Resta Multiplicacin Divisin Mdulo

Operador Ejemplo + * / % 5 + 8 5 2 4 * 8 2 / 7 5 % 3

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

Operador
( )

Operacin
Parntesis

Precedencia
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 Notacin en C

ab

d c

a + b d/c

a modc d
ab 2c 3 ac 4bc

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

Sentencia de entrada
Asigna valor a variable desde el teclado

Operacin de suma

Concatenacin de flujo

Memoria del programa de suma


integer1 Variables
(direcciones de memoria) integer2 54 Contenido 38

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:

area

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

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)exp(x)coseno de x. ex.

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

sqrt(x)- raz cuadrada de 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;

Ejercicios #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.

También podría gustarte