Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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).
#include <iostream.h> #include <conio.h> int main() { cout << "!Hola Mundo!\n"; getch(); return 0; }
Sentencia de salida
3. Compilar
4. Ejecutar (correr)
\n
\t \r \\
imprime comillas
#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
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; getch(); return 0; }
Salida
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
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:
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
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.
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.