Story Transcript
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA
Lenguaje C • • • • •
Estructurado Secuencial De alto Nivel Altamente portable Necesita un compilador
Historia del Lenguaje C • Surgió en los laboratorios de Bell de AT&T. • Asociado al Sistema Operativo UNIX (este S.O. está escrito en Lenguaje C). • En 1972, Dennis Ritche modifica el Lenguaje B (creado por Ken Thompson), y crea el Lenguaje C, y reescribe el S.O. UNIX.
Realización de un programa Los pasos para realizar un programa son:
1º Editar el programa. 2º Compilarlo. 3º Ejecutarlo. 4º Depurarlo.
El primer programa Vamos a hacer un pequeño programa en Lenguaje C. Este programa escribirá un saludo en la pantalla. Cada sentencia del Lenguaje C finaliza con un “;”, y cada línea del programa se finaliza con la tecla enter.
Editar un programa 1
Editar un programa 2
Editar un programa 3
El primer programa /*************Saludo*************** //saludo.c #include Main( ) { printf(“Hola, qué tal estáis.\n”); }
Guardar el programa 1
Guardar el programa 2
Compilar un programa
El segundo programa # include main ( ) { int dato1, dato2, resultado; dato1 = 10; dato2 = 20; //suma resultado = dato1 + dato2; printf (“ %d + %d = %d\n”, dato1, dato2, resultado); //resta resultado = dato1 - dato2; printf (“ %d - %d = %d\n”, dato1, dato2, resultado);
El segundo programa 2 //producto resultado = dato1 * dato2; printf (“ %d * %d = %d\n”, dato1, dato2, resultado); //cociente resultado = dato1 / dato2; printf (“ %d / %d = %d\n”, dato1, dato2, resultado); return 0; }
CARACTERES DE C
1.- Letras, dígitos y subrayado. A.- Letras Mayúsculas y Minúsculas del alfabeto inglés ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz B.- Dígitos decimales 0123456789 C.- Carácter de subrayado El compilador va a diferenciar este elemento, del resto de caracteres.
2.- Espacios en Blanco Son los caracteres en blanco, tabulador horizontal, vertical, avance de página y nueva línea. Su función es actuar como separadores entre los elementos de un programa, para que este sea más legible. Los espacios en blanco en exceso, son ignorados por el compilador.
3.- Caracteres especiales Son los signos de puntuación operaciones aritméticas:
y
las
, . ; : ? ‘ “ ( ) [ ] {} < ! | / \ ~ + # % & ^ * - = >
4.- Secuencias de escape Una secuencia de escape está formada por el carácter \ seguido de una letra. \n Ir al principio de la línea siguiente \t Tabulador horizontal \v Tabulador vertical (impresora) \a Alerta, pitido \xdd Carácter ASCII en hexadecimal
TIPOS DE DATOS
Introducción Para que el compilador pueda realizar una operación, es necesario, que conozca previamente el tipo de de datos de cada uno de los operandos, así como del resultado. Ejemplo: int dato1, dato2, resultado;
Tipos Fundamentales Los tipos fundamentales son: * Enteros: char, short, int, long. * Reales: float, double, long double. Cada tipo entero, se puede clasificar en signed (con signo) o unsigned (sin signo). Si se utilizan estos calificadores, sin un tipo específico, se asume que es int.
Tipo CHAR Representa un carácter. Ocupa un byte. Es utilizado para almacenar un valor entero en el rango –128 a 127 (un carácter en el código ASCII del 0 al 127). Es la abreviación de signed char. Unsigned char almacena valores de 0 al 255 (representa los 256 valores ASCII). char a = ‘A’ igual que char a = 65 Debe ir entre comillas simples, sino lo interpreta como una variable.
Tipo SHORT Representa a un entero en formato corto. Ocupa 2 bytes. Es la abreviación de signed short int. Va a proporcionar valores entre –32768 al 32767. Unsigned short almacena valores del 0 al 65535. short i = -500; unsigned short j = 500;
Tipo INT Representa a un entero. Ocupa 2 ó 4 bytes. Ocupa 2 bytes para procesadores de 16 bits, y 4 bytes para los de 32 bits. Es la abreviación de signed int. Va a proporcionar valores entre –32768 al 32767. Unsigned almacena valores del 0 al 65535. int i = -50; unsigned j = 2500;
Tipo LONG Representa a un entero en formato largo. Ocupa 4 ó 8 bytes. Es la abreviación de signed long int. Va a proporcionar valores entre –2147483648 al 2147483647. Unsigned long almacena valores del 0 al 4294967295. long i = -34550; unsigned long j = 250450;
Tipo FLOAT Representa a un valor real de precisión simple. Ocupa 4 bytes. Es un número que puede tener un punto decimal. Va a proporcionar valores entre -3.402823E+38 al – 1.175494E-38, para valores negativos; y del 1.175494E-38 al 3.4028223E+38, para positivos. No tiene más de 7 dígitos significativos. float a = 3.14159;
Tipo DOUBLE Representa a un valor real de precisión doble. Ocupa 8 bytes. Va a proporcionar valores entre el número –1.79769E+308 y el –2.22507-308, para valores negativos; y del 2.22507E-308 al 1.79769E+308, para positivos. Tiene hasta 16 dígitos significativos. double a = 3.1415926;
Tipo LONG DOUBLE Representa a un valor real de precisión doble con formato largo. Ocupa 10 bytes. Va a proporcionar un rango de trabajo muy grande. Tiene hasta 19 dígitos significativos. long double a = 2.45674688457652390;
PALABRAS CLAVE Son palabras que tienen sentido para el compilador, por lo que no se pueden usar como variables. Se deben escribir en minúscula, y son: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while.
COMENTARIOS Un comentario tipo C empieza por los caracteres /*, y finaliza con */. Pueden ocupar más de una línea. /* Comentario que * ocupa dos líneas*/ Un comentario tipo C++ comienza con los caracteres //, y termina al final de la línea. No pueden ocupar más de una línea. //Comentario de una sola línea El compilador trata al comentario como un espacio en blanco
DECLARACIÓN DE CONSTANTES Es decirle al compilador el nombre de la constante y su valor. Se hace antes de la función main. Su sintaxis es: # define PI 3.14159 # MENSAJE “Pulse una tecla\n” Se suele poner el nombre de la constante en mayúsculas. No lleva ;
DECLARACIÓN DE VARIABLES El valor de una variable, puede variar a lo largo de la ejecución de un programa. La forma de declarar una variable, es decir su tipo y su valor (inicializar). int dia, mes, año; float suma, resta; int mes=11; float suma = 15; Toda variable debe tener un valor al iniciarse
OPERADORES
Operadores Aritméticos 1 Se usan para las operaciones matemáticas. + Suma: enteros y reales. - Resta: enteros y reales. * Multiplicación: enteros y reales. / División: enteros y reales. Si ambos son enteros, el resultado es entero, sino real. % Resto de una división: enteros.
Operadores Aritméticos 2 Cuando en una operación los operandos son de diferentes tipos, ambos son convertidos al tipo del operando de precisión más alta. El resultado obtenido es convertido al tipo de la variable que almacena el resultado. Vamos a hacer un ejercicio de ejemplo:
Operadores Aritméticos 3 ¿Qué resultado se obtiene? main () { int a = 10, b= 3, c; float x = 2.0, y; y = x + a; c = a / b; c = a % b; y = a / b; c = x / y; }
Operadores de Relación 1 El resultado de una operación de relación es un cero o un uno. < Primero menor que el segundo. > Primero mayor que el segundo. = Primero mayor o igual que el segundo. != Primero distinto que el segundo. = = Primero igual que el segundo.
Operadores de Relación 2 ¿Qué resultado se obtiene? main () { int x = 10, y = 0, r = 0; r = x = = y; r = x > y; r = x != y; }
Operadores de Asignación 1 El resultado de una operación de asignación ,es el valor almacenado en el operando izquierdo, después de que la asignación se ha realizado. ++ Incremento. -- Decremento. = Asignación simple.
Operadores de Asignación 2 *= Multiplicación más asignación. /= División más asignación. %= Resto más asignación. += Suma más asignación. -= Resta más asignación.
Operadores de Asignación 3 ¿Qué resultado se obtiene? main () { int x = 0, y = 10, r = 1; x ++; ++x; x = --y; x = y--; r += 2; }
EJERCICIOS 1.- Escribe un programa que visualice: Bienvenido a esta clase. Podrás aprender muchas cosas. 2.- Escribe un programa que visualice tu nombre, dirección y teléfono en líneas diferentes y centrados en la pantalla. 3.- Haz un programa que calcule: b2- 4ac/2a , para a = 1, b = 5 y c = 2.
Solución del Ejercicio 3 #include main() { int a, b, c, resultado; a=1; b=5; c=2; resultado=((b*b)-(4*a*c))/(2*a); printf("%d^2 - 4 * %d * %d/ 2 * %d = %d\n",b,a,c,a,resultado); return 0; }
ENTRADA Y SALIDA ESTÁNDAR
Entrada y Salida estándar Para poder trabajar con las entradas y salidas estándar hay que poner la línea de cabecera: # include Nos va a permitir trabajar con las dos funciones principales: printf scanf
Salida con formato La función printf escribe en el monitor los datos especificados, con el formato que nosotros le digamos. unsigned int edad = 12; float peso = 37.2; printf(“Tiene %u años y pesa %g kilos \n”, edad, peso); Los distintos argumentos que se pueden usar son:
Argumentos de printf %d enteros con signo, en base 10. %u enteros sin signo, en base 10. %o enteros sin signo, en base 8. %x enteros sin signo, en base 16. %f double con signo de forma –dddd.dddd %e/E double con signo. Forma –d.dddde/E±ddd %g/G double con signo, forma f o e/E(mejor). %c un carácter, del byte menos significativo. %s una cadena de caracteres.
Entrada con formato La función scanf lee datos de la entrada, los interpreta según el formato indicado y los almacena en los argumentos especificados. scanf (“%d %f %c”, &a, &b, &c); scanf (“%d , %f , %c”, &a, &b, &c); scanf (“%d : %f : %c”, &a, &b, &c); Observar que los tres formatos son diferentes, y se debe meter los datos de forma distinta.
Entrada con formato 2 No se puede escribir texto dentro de la sentencia, ya que luego me lo pediría a la hora de introducir datos. scanf (“Dame el dato: %d”, &a); Si se quiere escribir texto, se haría de la forma siguiente: printf (“Dame el dato: ”); scanf (“%d”, &a);
Entrada con formato 3 La especificación de formato está compuesta por: % * tipo * : este modificador suprime la asignación del siguiente dato en la entrada. scanf (“%d %*s”, &h); Si escribo 12 horas, se asignará sólo el número 12 (h=12), y no la cadena de texto.
Entrada con formato 4 Los tipos de datos posibles son: d: enteros con signo en base 10. o: enteros con signo en base 8. x, X: enteros con signo en base 16. u: enteros sin signo en base 10. f: reales con signo. c: un solo carácter. s: cadena de caracteres.
Limpiar la pantalla Las siguientes sentencias permiten limpiar la pantalla: system (“cls”); limpia en MS-DOS. system (“clear”); limpia en UNIX.
EJERCICIOS 2 1.- Modifica el programa de las operaciones aritméticas, para que pida por teclado los distintos valores. 2.- Realiza un programa que dé como resultado las soluciones reales x1 y x2 de una ecuación de segundo grado.: ax2 + bx + c = 0
EJERCICIOS 3 3.- Realiza un programa para que dado el radio, calcule el área del círculo utilizando la fórmula: a = π r2
EJERCICIOS 4 4.- Realiza un programa que calcule el volumen de una esfera: v = 4 * π * r3 / 3 5.- Realiza un programa que pregunte tu nombre y tu año de nacimiento y saqué por pantalla: Hola nombre, este año cumples n años.
EJERCICIOS 5 6.- Realizar un programa que evalúe el polinomio: p = 3x5 – 5x3 + 2x – 7 y visualizar el resultado: Para x = valor, 3x^5 – 5x^3 + 2x – 7 = result 7.- Mejorar el ejercicio anterior, haciendo que los coeficientes sean variables.
EJERCICIOS 6 8.- Realizar un programa para que dado un número de segundos, inferior a un millón, calcule su equivalente en días, horas, minutos y segundos. Datos: 1 dia = 86400 sg, 1 hora = 3600 sg, 1 minuto = 60 sg