Lenguajes de Programacin
ULPGC
Lenguaje Mquina: Los programas expresados en lenguaje mquina son directamente ejecutables por el procesador
111000 . 010110 101101
Lenguajes de Programacin
ULPGC
Lenguajes de Alto Nivel: Los programas expresados en lenguajes de alto nivel precisan ser traducidos a lenguaje mquina para poder ser ejecutados por el procesador
111000 . 010110 101101
Memoria Principal
Programa Ejecutable
101101
Fichero fuente
Fichero ejecutable
Lenguajes de Programacin
ULPGC
Lenguajes de Alto Nivel FORTRAN: orientado al clculo cientfico COBOL: orientado haca las aplicaciones de tipo comercial C: orientado a la programacin de sistemas operativos y aplicaciones de ingeniera C++: lenguaje derivado del C Java: lenguaje derivado del C++ de amplio uso en Internet Pascal y BASIC: orientados a la didctica de la programacin Ada: orientado a la programacin de sistemas de tiempo real
Lenguaje C
ULPGC
Algunos datos Fue creado en 1970 por Dennis Ritchie en los Laboratorios Bell (Estados Unidos) Los principales sistemas operativos (Windows y UNIX) y todos sus derivados han sido creados utilizando C como lenguaje de programacin Es un lenguaje de propsito general, aunque fue especialmente diseado para la programacin de sistemas operativos Ha influenciado en numerosos lenguajes de programacin (C++,
Java, )
Lenguaje C
ULPGC
Compilador (DevC++)
Memoria Principal
Programa Ejecutable
101101
Fichero fuente
Fichero ejecutable
ULPGC
.h
S (2) Compilacin (3) Error de Compilacin (5) Error de enlazado S Ficheros objeto
.o .o .o
error?
.exe
No
S
error? No
(4) Enlazado
error? No
.exe
Bloodshed Dev-C++ es el
compilador de
C/C++ que se va a utilizar (accesible en www.bloodshed .net y en la pgina web de
la asignatura).
ULPGC
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
cabecera de programa
ficheros cabecera
int main(int argc, char *argv[]) { printf("Hola Mundo!\n"); escritura en pantalla system("PAUSE"); return 0; } espera por una pulsacin de teclado finalizacin de programa
ULPGC
3. Compilar
4. Ejecutar (correr)
ULPGC
\n
\t \r \\ \
\OOO
\xHHH
ULPGC
Variables
nombre un identificador vlido tipo int, float, double, char, etc. valor el valor almacenado
Las variables permiten almacenar valores de diferentes tipos. Sus caractersticas son
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
ULPGC
Tipo unsigned char char enum unsigned int short int int unsigned long long float double long double
Longitud Rango 8 bits 0 a 255 8 bits -128 a 127 16 bits -32,768 a 32,767 16 bits 0 a 65,535 16 bits -32,768 a 32,767 16 bits -32,768 a 32,767 32 bits 0 a 4,294,967,295 32 bits -2,147,483,648 a 2,147,483,647 32 bits 3.4*(10^-38) a 3.4*(10^+38) 64 bits 1.7*(10^-308) a 1.7*(10^+308) 80 bits 3.4*(10^-4932) a 1.1*(10^+4932)
ULPGC
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
ULPGC
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
ULPGC
//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" a b c 45 23 368
Salida
d 345
Ejemplo de asignaciones
ULPGC
//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; }
ULPGC
Algunos operadores en C
Operadores aritmticos
Operador Ejemplo + * / % 5 + 8 5 2 4 * 8 2 / 7 5 % 3
ULPGC
Reglas de precedencia
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
ULPGC
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
ULPGC
Entrada de datos
cin >> var;
Para la lectura de datos desde el teclado puede utilizarse la funcin cin. El formato para cin es:
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.
ULPGC
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
Sentencia de entrada
Asigna valor a variable desde el teclado
ULPGC
Variables
(direcciones de memoria) integer2 54 Contenido
suma
92
ULPGC
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 salida:
area
ULPGC
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; } Mg. Patricia Janet Benites Yglesias
ULPGC
Funciones matemticas
La biblioteca math.h contiene la definicin de muchas funciones matemticas tiles. El siguiente es un listado breve de algunas funciones.
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.
ULPGC
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));
ULPGC
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.