01 introduccion lenguaje c.ppt

March 28, 2018 | Author: Pablo Nolasco | Category: Programming Language, C++, Bit, Quotation Mark, Unix


Comments



Description

CIC-IPNPropedéutico Programación en Lenguaje C Dr. Hiram Calvo [email protected] Características de C C es un lenguaje de programación de propósito general. Sus principales características son: • Programación estructurada • Economía de las expresiones • Abundancia en operadores y tipos de datos. • Codificación en alto y bajo nivel simultáneamente. • Reemplaza ventajosamente la programación en ensamblador (assembler). • Utilización natural de las funciones primitivas del sistema. • No está orientado a ningún área en especial. • Producción de código objeto altamente optimizado. • Facilidad de aprendizaje (;-)). Breve Historia El lenguajes C nació en los Laboratorios Bell de AT&T Asociado con el Sistema Operativo UNIX Su eficacia y claridad han hecho que el lenguaje ensamblador apenas haya sido utilizado en UNIX. Este lenguaje está inspirado en el lenguaje B escrito por Ken Thompson en 1970 B era un lenguaje evolucionado e independiente de la máquina, inspirado en la lenguajes BCPL concedido por Martin Richard en 1967. En 1972, Dennis Ritchie, modifica el lenguaje B, creando el lenguaje C y reescribiendo el UNIX en dicho lenguaje. La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de datos. En suma … Una de las peculiaridades de C es su riqueza de operadores, Tiene sus inconvenientes: Carece de instrucciones de entrada/salida, de instrucciones para manejo de cadenas de caracteres. La excesiva libertad en la escritura de los programas puede llevar a errores en la programación. C ha demostrado ser un lenguaje extremadamente eficaz y expresivo. Primer ejemplo Biblioteca para entrada y salida // Fig. 1.2: fig01_02. #include <iostream> // la función main comienza la ejecución del programa int main() { std::cout << "¡Bienvenido a C++!\n". return 0.cpp // Primer programa en C++. // indica que el programa terminó satisfactoriamente } // fin de la función main Espera una tecla Sentencia de salida . system(“PAUSE”). Ejecutar (correr) 1.Compilar usando Dev-C++ 2. Guardar en disco 3. Compilar 4. Escribir el código . Programa en ejecución Cambio de línea std::cout << "¡Bienvenido a C++!\n". return 0. system(“PAUSE”). . ” antes de “return” .Error de compilación Señalamiento de error Explicación del error expected “.” before “return” esperaba “. Proceso de escritura de programas Escribir programa en el editor de texto Compilar el programa o Ctrl-F9 fuente si Hay errores? no Ejecutar el programa o Ctrl-F10 . .Secuencias de escape para la salida Sirven para modificar la salida de datos Se utilizan con cout para formatear la salida \n Salto de línea. \xHHH visualiza un carácter cuyo código ASCII es HHH en hexadecimal. también endl \t tabulación horizontal \r retorno de línea \\ diagonal invertida \” imprime comillas \OOO visualiza un carácter cuyo código ASCII es OOO en octal. } . return 0. return 0. int main() { cout << "¡Bienvenido\n\"a\"\nC++!\n". int main() { cout << "!Bienvenido a ". cout << "Dev-C++!\n". } Una línea mediante dos sentencias Varias línea mediante una sentencia #include <iostream> using namespace std.Ejemplos de secuencias de escape #include <iostream> using spacename std. system(”PAUSE”). system(“PAUSE”). system("PAUSE"). return 0. int main() { cout << "nombre\tdirección\ttelefono\njuan\tolmo 204 \t8-12-12-34\nmaria\tpino 565 \t8-34-27-16\n". return 0. system("PAUSE"). int main(){ cout << "nombre\tdirección\ttelefono\n". } . cout << "juan\tolmo 204 \t8-12-12-34\n".#include <iostream> using namespace std. cout << "maria\tpino 565 \t8-34-27-16\n". } #include <iostream> using namespace std. cout << “ y a la\n \t\"programación\"".Ejercicio ¿Que salida genera el siguiente programa? int main() { cout << “Introducción a\nlas computadoras".000 Lety TIC $20.000 . return 0. cout << “ en\n \tC++\n". } Escriba un programa que genere la siguiente salida utilizando una sola línea de salida. Nombre Puesto Sueldo: Juan Gerente $10. b. double. Sus características son nombre – un identificador válido tipo – int. … . 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. c. Ejemplos: Declara a.Variables Las variables permiten almacenar valores de diferentes tipos. Declara r y s como reales . s. etc. float. b y c como enteras int a. float r. var2. char. 647 3.7*(10^-308) 3.1*(10^+4932) .535 32.147.4*(10^-4932) a a a a a a a a a a a 255 127 32.768 -32.7*(10^+308) 1.483.767 32.294.768 0 -2.767 65.648 3.483.967.768 0 -32.767 4.147.295 2.Tipos de datos numéricos La siguiente tabla resume los tipos de datos numéricos 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.4*(10^+38) 1.4*(10^-38) 1. Constantes numéricas Las constantes numéricas enteras pueden escribirse en decimal..4 x 104 = 12. a. Los números en notación científica se expresan indicando el multiplicador de 10 mediante E+nn o e+nn.4E4 . o A.4E+4 o 12.9... hexadecimal u octal. Ejemplo: 0x00ff o 0x00FF = 255 Octal – secuencias de dígitos octales (0. Decimal – secuencias de dígitos decimales con o sin signo (+..F) que inicia con 0x. -). Ejemplo: 04567 = 30210 Las constantes reales se especifican como secuencias de dígitos decimales y el punto decimal. Ejemplo: 12. Hexadecimal – secuencias de dígitos hexadecimales (0.f.7) que inicia con 0. cout << a << b.Operación de asignación La operación básica para el uso de variables es la asignación El tipo de constante a asignar debe de ser congruente con el tipo con el que fue declarada la variable. b = 8. Para la asignación se utiliza el símbolo = Ejemplos: a = 5. Imprime 58 . system(“PAUSE”). cout << a << "\t" << b << "\t" << c << "\t" << d << endl.d. } Salida Impresión de "variables" a b c d 45 23 368 345 .Ejemplo //Ejemplo de secuencias de escape #include <iostream> using namespace std. cout << "Impresión de \"variables\"\n".c. b = 23. cout << "a\tb\tc\td\n". //4 variables reales a = 45.b. d = 345. return 0. c = 368. int main() { int a. //3 variables reales a = 5.Ejercicio //Ejemplo de asignaciones #include <iostream> using namespace std. a = b. z = 8. x = z. y = x. // 3 variables enteras float x. system(“PAUSE”).z.c.5. cout << "x=" << x << "\ny=" << y << "\nz="<< z << "\n".y. cout << "a=" << a << "\nb=" << b << "\nc="<< c << "\n". c = 8. b = -2.b. } Que valores se imprimen? . return 0. x = a. int main() { int a. Algunos operadores en C Operadores aritméticos Operación Operador Ejemplo Suma + 5 + 8 Resta - 5 – 2 Multiplicación * 4 * 8 División / 2 / 7 Módulo % 5 % 3 . división. Se evalúan primero los más anidados *. / o % + o - Multiplicación. módulo Se evalúan de izquierda a derecha Suma o resta Se evalúan de izquierda a derecha .Reglas de precedencia El operador () se utiliza para modificar la precedencia de los operadores Operador Operación Precedencia ( ) Paréntesis Precedencia más alta. c)/4/b/c .c)/(4*b*c) o (a .Ejemplos de operadores Notación estándar a+b− d c a mod c + d a+b 2c + 3 a−c 4bc Notación en C a + b – d/c a % c + d (a + b)/(2*c + 3) (a . 1416*r*r.5. area y volumen de la esfera r = 4. cout << "el área de la esfera es " << area << "\n".//radio.1416*r*r*r/3.area. cout << "el volumen de la esfera es " << volumen << "\n". } area = 4π r 2 volumen = 43 π r 3 . system("PAUSE"). main(){ float r. area = 4*3.Ejemplo #include <iostream> //calcula el área y el volumen de una esfera using namespace std. cout << "el radio de la esfera es " << r << "\n". volumen = 4*3.volumen. Orden de evaluación z = p r mod q + w/x-y c + bd a= c−d z = p * r % q + w / x – y 6 1 2 4 3 5 a = (c + b * d)/(c – d) 5 2 1 4 3 a = c + b * d / c – d 5 3 1 2 4 ERROR . utilice m1 = 2. la fuerza está dada por F =G m1m2 r2 .8 kg y r = 7.7 x 10–11.2 cm. Utilice G = 6.Tarea Escriba las siguientes expresiones en C R1 R2 R= R1 + R2 y = h− 1 ⎛ M ⎞ R 2 w2 ⎜ + m ⎟ 2mg ⎝ 2 ⎠ Escriba un programa para calcular la fuerza entre dos masa m1 y m2.5 kg m2 = 4. Las variables se leen separadas por espacios o la tecla enter. cin >> var1 >> var2 >> var3. . Al ejecutarse la función cin se detiene la ejecución del programa hasta que se teclee el valor de la variable solicitada.Entrada de datos Para la lectura de datos desde el teclado puede utilizarse la función cin. El formato para cin es: cin >> var. Pueden leerse varias variables en una sola línea. // asignación del resultado a suma cout << "La suma es " << suma << endl. // lee un entero suma = entero1 + entero2. // variable en la que se almacena la suma cout << "Digite el primer entero\n". // lee un entero cout << "Digite el segundo entero\n". // indicador cin >> entero2. // indicador cin >> entero1. // indica que el programa terminó satisfactoriamente Sentencia de entrada } // fin de la función main Operación de suma Concatenación de flujo Asigna valor a variable desde el teclado . #include <iostream> using namespace std.Suma de enteros Declaración de enteros // Programa de suma. // la función main comienza la ejecución del programa int main() { int entero1. // impresión de suma return 0. // primer número que introduce el usuario int entero2. // segundo número que introduce el usuario int suma. Memoria del programa de suma integer1 38 integer2 54 suma 92 Variables (direcciones de memoria) Contenido . y2. El área se calcula utilizando la siguiente fórmula: area = 1 (x1 y2 + x2 y3 + x3 y1 − x1 y3 − x2 y1 − x3 y2 ) 2 Variables de entrada: x1. y1. x2. x3.Ejemplo Se desea un programa para calcular el área de un triángulo dadas las coordenadas de sus vértices. y3 Variables de salida: area . y1.y3.0. cin >> x1 >> y1. } .y2. // coordenadas del triángulo float area.Solución //Programa para calcular el área de un triángulo #include <iostream> using namespace std. cout << "área: " << area << endl. cin >> x2 >> y2. area = (x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2. cout << "Teclee las coordenadas del tercer punto: ". cin >> x3 >> y3. int main() { float x1. cout << "Teclee las coordenadas del segundo punto: ".x3.x2. return 0. // área del triángulo cout << "Teclee las coordenadas del primer punto: ". Esquema de programa simple Un programa simple tiene el siguiente esquema general: • Declaración de variables y constantes • Lectura de datos de entrada • Cálculo de valores de salida • Impresión de resultados . Escribir las sentencias de salida 6. Escribir las sentencias de entrada 4. Escribir las expresiones para realizar los cálculos 5. Escribir la declaración de variables 3. Determinar las constantes. variables de entrada y de salida y su tipo 2. Probar con algunos valores de entrada .Pasos a seguir Los pasos a seguir para elaborar un programa simple son: 1. Variables de entrada: radio – número real Declaración de variables de entrada: float radio. .141592. Variables de salida: area – número real perimetro – número real Declaración de variables de salida: float area.1416) Declaración de constante: float pi = 3.1415926535.Ejemplo Escriba un programa que lea el radio de un círculo e imprima su perímetro y área. Constates: pi (3. Defina el valor de pi como 3. perimetro. Cálculo de área y perímetro: area = pi*radio*radio. cout << “el perímetro del círculo es: “ << perimetro << “\n”. . Sentencias de salida: cout << “el área del círculo es: “ << area << “\n”.Sentencia de entrada: cout << “Escriba el radio del círculo: “. cin >> radio. perimetro = 2*pi*radio. cin >> radio.Programa completo #include <iostream> using namespace std. } . // radio del círculo. perimetro = 2*pi*radio. area = pi*radio*radio.1415926535. main(){ float pi = 3. perimetro. variable de entrada float area. cout << “el perímetro del círculo es: “<< perimetro << “\n”. // área y perímetro del círculo cout << “Escriba el radio del círculo: “. // valor de pi float radio. cout << “el área del círculo es: “<< area << “\n”. system(“PAUSE”). Tarea Escriba un programa para calcular la magnitud de la fuerza entre dos cargas eléctricas dadas las coordenadas de las cargas y la magnitud de cada carga. .99x109. La fuerza se calcula con la expresión q1q2 F =k (x2 − x1 )2 + ( y2 − y1 )2 k = 8. pow(x. fabs(x).tangente de x.xy.redondea al entero más pequeño no menor que x. El siguiente es un listado breve de algunas funciones. ceil(x).y). sqrt(x).raíz cuadrada de x.valor absoluto de x. floor(x). log10(x).logaritmo base 10 de x. sin(x)- seno de x. .Funciones matemáticas La biblioteca math.logaritmo natural de x. exp(x)- ex. tan(x).h contiene la definición de muchas funciones matemáticas útiles. log(x). cos(x)- coseno de x.redondea al entero más grande no mayor que x. // lados del triángulo float s.c. // área del triángulo cout << "Teclee las longitudes de los lados: ".Ejemplo Cálculo del área de un triángulo conocidas las longitudes de los lados //Programa para calcular el área de un triángulo #include <iostream> #include <math. //semiperímetro float area. } . cout << "área: " << area << endl. // lee los lados s = (a + b + c)/2. return 0. cin >> a >> b >> c.b.0. area = sqrt(s*(s-a)*(s-b)*(s-c)). int main() { float a.h> using namespace std. x1 = (-b-sqrt(d))/2/a.c.b.2)-4*a*c.h> using namespace std.b y c: ". cout << "x1: " << x1 << endl. x2 = (-b+sqrt(d))/2/a. cout << "x2: " << x2 << endl. int main(){ float a. // raices cout << "Teclee los coeficientes a. } . // lee los coeficientes d = pow(b. system("PAUSE"). return 0. // coeficientes float d. cin >> a >> b >> c.x2. //discriminante float x1.Solución de cuadrática 1 //Programa para resolver una ecuación cuadrática #include <iostream> #include <math. d= (x2 − x1 )2 + ( y2 − y1 )2 .Tarea Utilice la función raíz cuadrada de C para los siguientes programas Escriba un programa que lea el valor del área de la superficie de una esfera y calcule e imprima el valor del radio. (área = 4πr2) Escriba un programa que lea las coordenadas de dos puntos en el plano xy y calcule y despliegue la distancia entre dichos puntos. Ejemplo de tiro parabólico Haga un programa que lea la velocidad inicial de un proyectil y el ángulo respecto al eje x y calcule el alcance del proyectil. la altura máxima y el tiempo de vuelo. h = altura máxima R = alcance v02sen 2θ 0 h= 2g T = tiempo de vuelo v02sen2θ 0 R= g 2v0senθ 0 T= g . R. ang.T.14159265 g .9. // datos de entrada float h. // datos de salida .Constantes: PI – 3.81 Los datos de entrada son la velocidad inicial y el ángulo del disparo: v0 – velocidad inicial (tipo float) ang – ángulo del disparo (tipo float) Los datos de salida son: h – altura máxima (tipo float) R – alcance máximo (tipo float) T – tiempo de vuelo (tipo float) Declaraciones float vo. Lectura de datos: La velocidad inicial la supondremos en m/s. // conversión a radianes . cin >> ang. ang = ang*PI/180. cout << “Teclee velocidad inicial (en m/s): ”. cout << “Teclee ángulo del tiro (en grados): ”. El ángulo del tiro lo supondremos en grados NOTA: las funciones trigonométricas suponen el argumento en radianes. cin >> v0. cout << “alcance máximo: ” << R<< endl. T = 2*v0*sin(ang)/g. . Salida de resultados cout << “altura máxima: ” << h<< endl. R = v0*v0*sin(2*ang)/g.Cálculo de resultados h = v0*v0*sin(ang)*sin(ang)/2/g. cout << “tiempo de vuelo: ” << T<< endl. // datos de salida Biblioteca para manejo de entrada y salida Color de fondo Color de textbackground(LIGHTGRAY).#include <iostream> #include <conio2.h> #include <math.81. cout << "Teclee velocidad inicial (en m/s): ". cin >> ang. T = 2*v0*sin(ang)/g. system("PAUSE"). cout << "tiempo de vuelo: " << T << " s" << endl. clrscr().// datos de entrada h. g = 9.ang.h> using namespace std. textcolor(RED). Borra main(){ float float float float Pantalla PI = 3. R = v0*v0*sin(2*ang)/g. v0. cout << "TIRO PARABOLICO\n". // conversión a radianes h = v0*v0*sin(ang)*sin(ang)/2/g.14159265. cout << "altura maxima: " << h << " m" << endl. cout << "alcance maximo: " << R << " m" << endl. ang = ang*PI/180. cin >> v0.T.R. cout << "Teclee angulo del tiro (en grados): ". } texto . En la opción de Herramientas (tools) Opciones del compilador (compiler options) en la opción Agregar estos comandos a la línea de comandos del enlazador (Add these commands to the linker command line) -lconio .
Copyright © 2024 DOKUMEN.SITE Inc.