Palabras que el usuario no puede utilizar como identificadores (nombres de variables y/o de funciones). Identificadores Reglas para la eleccin de nombres para las funciones y variables - Un identificador se forma con una secuencia de letras (minsculas de la a a la z; maysculas de la A a la Z; y dgitos del 0 al 9). - El carcter subrayado o underscore (_) se considera como una letra ms. - Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los citados, como por ejemplo (*,;.:-+, etc.). - El primer carcter de un identificador debe ser siempre una letra o un (_), es decir, no puede ser un dgito. - Se hace distincin entre letras maysculas y minsculas. As, Masa es considerado como un identificador distinto de masa y de MASA. - No se pueden utilizar palabras reservadas como int, char o while. - Muchos compiladores no permiten contener caracteres espaoles (acentos y ees). - ANSI C permite definir identificadores de hasta 31 caracteres de longitud. Ejemplo vlidos de identificadores:
123var; /* Empieza por dgitos */ int; /* Palabra reservada */ una sola; /* Contiene espacios */ US$; /* Contiene $ */ var.nueva; /* Contiene el punto */ ee; /* Puede no funcionar */ nombre? /*No puede ir signos de admiracin o interrogacin*/ Comentarios /* este es un comentario corto */ // este es un comentario corto
/* este otro es mucho ms largo que el anterior */ Los comentarios se pueden poner casi en cualquier parte. Excepto en medio de una instruccin. Por ejemplo lo siguiente no es vlido: pri/* Esto es un comentario */ntf( "Hola mundo" ); Esto si pero para algunos compiladores: printf( /* Esto es un comentario */ "Hola mundo" ); printf( "Hola/* Esto es un comentario */ mundo" ); Que no dara error, pero al ejecutar tendramos: Hola /* Esto es un comentario */ mundo Operadores Un operador es un carcter o grupo de caracteres que acta sobre una, dos o ms variables para realizar una determinada operacin con un determinado resultado. Operadores Aritmticos - Suma (+) - Resta () - Multiplicacin (*) - Divisin (/) Operador que proporciona el resto de la divisin (residuo) - Mdulo (%) Operadores De Asignacin Aritmtica - Igual (=) - Suma igual (+=) - Resta igual ( =) - Multiplicacin igual (*=) - Divisin igual (/=) ( x += 5 ), en este ejemplo se toma el operando de la izquierda lo suma con el operando de la derecha y lo asigna al operando de la izquierda, en este caso la variable x. Operadores de Incremento y Decremento El operador de incremento es el (++) y el de decremento es el (--) Pre-incremento y Post-incremento i = 2; j = 2; m = i++; /* despus de ejecutarse esta sentencia m=2 e i=3*/ n = ++j; /* despus de ejecutarse esta sentencia n=3 y j=3*/ Operadores Relacinales - AND ( && ): Este operador conocido como producto lgico retorna un valor de verdadero si los operandos son verdaderos. - OR ( || ): El operador de suma lgica retorna un valor de verdadero si los operandos o uno de los operandos es verdadero. - NOT ( ! ): Operador de negacin, tiene por efecto invertir el resultado de la expresin que le sigue es decir si la expresin es verdadera despus de aplicar este operador la expresin ser falsa y viceversa. Operadores Lgicos Estructura General De Un Programa #include <biblioteca1.h> #include <biblioteca2.h> ... declaraciones de funciones ... ... definiciones (cuerpos de funciones) ... ... declaraciones de variables globales ... main (void) { ... cuerpo del main ... } Primer Programa /* Programa: HOLA MUNDO */ #include <stdio.h> /* funciones estndar de entrada salida, y en ella se encuentra la funcin printf*/ int main (void) { printf ("\nHola mundo"); return 0; } printf Escribe los datos en pantalla Se puede indicar la posicin donde mostrar mediante una funcin gotoxy(columna,fila) Para utilizar la funcin printf en nuestros programas debemos incluir la directiva: #include <stdio.h> al principio de programa La sintaxis printf(mensaje *const_carcter+); printf(*const_carcter+); printf(ident(es)_formato[const_carcter+,variable(s)); Ejemplos printf printf( "mensaje" ); Esto resultar por pantalla: mensaje #include <stdio.h> int main() { printf("mensaje1" ); printf("mensaje2" ); } Obtendremos: mensaje1mensaje2 #include <stdio.h> int main() { printf( " mensaje1 \n" ); printf( " mensaje2 " ); } y tendremos: mensaje1 mensaje2 Ejemplos printf Tambin podemos poner ms de una cadena dentro del printf:
printf( "Primera cadena" "Segunda cadena" );
Lo que no podemos hacer es meter cosas entre las cadenas:
printf( "Primera cadena" texto en medio "Segunda cadena" ); Especificadores de formato printf(%f ,numero); /*salida normal.*/ printf(%10f ,numero); /*salida con 10 espacios.*/ printf(%010f ,numero); /*salida con los espacios poniendo 0.*/ Si se trata de un valor entero se determina el nmero mnimo de dgitos printf(%10.4f ,numero); /*salida con 10 espacios con 4 decimales.*/ printf(%10.15s,cadena); /*salida con 10 caracteres dejando 15 espacios.*/ printf(%4.4d,numero); /*salida de 4 dgitos mnimo. */ printf(%8d,numero); /* salida ajustada a la derecha.*/ printf(%-8d,numero); /*salida ajustada a la izquierda.*/ El especificador de ajuste fuerza la salida para que se ajuste a la izquierda Es la rutina de entrada por consola scanf scanf(identificador, &variable_numerica o char); scanf(identificador,variable_cadena); Ejemplo:
#include <stdio.h> int main() { int num; printf( "Introduce un nmero " ); scanf( "%d", &num ); printf( "Has tecleado el nmero %i\n", num ); } #include <stdio.h> int main() { int a, b, c; printf( "Introduce tres nmeros: " ); scanf( "%d %d %d", &a, &b, &c ); printf( "Has tecleado los nmeros %d %d %d\n", a, b, c ); } Ms de una variable a la vez en un slo scanf #include <stdio.h> int main() { int a; float b; printf( "Introduce dos nmeros: " ); scanf( "%d %f", &a, &b ); printf( "Has tecleado los nmeros %d %f\n", a, b ); } #include<stdio.h> main() { char a[20]; printf("Ingrese su nombre: "); scanf("%s",a); printf("Hola Sr. %s",a); } Para trabajar con cadenas de texto Gotoxy: Posicionando el cursor (DOS) #include <stdio.h> #include <conio2.h> int main() { gotoxy( 20, 10 ); printf( "Hola" ); } gotoxy( columnas, filas ); Clrscr (Clear Screen): Borrar la pantalla (DOS) #include<stdio.h> #include <conio2.h> main() { char a[20]; printf("Ingrese su nombre: "); scanf("%s",a); clrscr(); printf("Hola Sr. %s",a); getch(); } Getch y getche #include <stdio.h> #include <conio2.h> int main() { char letra, letra2; printf( "Introduce una letra: " ); letra = getche(); printf( "\nHas introducido la letra: %c", letra );
printf( "\n Introduce la segunda letra: " ); letra2 = getch(); printf("\n has introducido la letra2 :%c", letra2 ); } Estas esperan a que el usuario introduzca un carcter por el teclado para capturarlo La diferencia entre getche y getch es que la primera saca por pantalla la tecla que hemos pulsado y la segunda no Tipos de datos y operadores Variables Las variables almacenan valores de un tipo especificado y en ellas almacenamos los datos de nuestro problema, se denominan variables por que su valor puede cambiar a lo largo del programa. Declaracin De Variables En C Hay que declarar todas las variables antes de usarlas. Cada variable tiene un tipo La declaracin es: tipo nombre ; Ejemplo: int pepe; /* tipo de variable: int y nombre de la variable: a */ float b; double c,d; /* tipo de las variables: double y nombres de las variables: c y d */ char x; Asignacin De Valores En C es posible asignar a varias variables un solo valor ejemplo:
a = b = c = 7; x = y = n = 34; p = d = m = 56.8; k = i = 23; Para la asignacin de valores se utiliza el signo ( = ) igual, por ejemplo:
A = 5; B = 4; X = 43.453; Se puede declarar la variable e inicializarla al mismo tiempo, por ejemplo: int x = 5, y = 1; Hay que tener cuidado con lo siguiente: int x, y = 20; mbito De Variable Segn el mbito de las variables pueden ser utilizadas desde cualquier parte del programa o nicamente en la funcin donde han sido declaradas LOCALES: Cuando se declaran dentro de una funcin GLOBALES: Son conocidas a lo largo de todo el programa, y se pueden usar desde cualquier parte del cdigo. Mantienen sus valores durante toda la ejecucin DE REGISTRO se guardan en registros internos del microprocesador, acceso a ellas es ms directo y rpido. (solo aplica para variables locales). Sintaxis: register tipo nombre_variable ESTTICAS mantiene su valor entre una llamada y otra sin por ello perder su mbito (variables locales) Sintaxis: static tipo nombre_variable EXTERNAS para ser usada en mdulos que nos interese sin perder su valor (variables globales) Sintaxis: extern tipo nombre_variable Tipos de Datos El Tipo de dato int se almacenan nmeros enteros (sin decimales). unsigned int numero; // entero sin signo int nota = 10; // entero con signo Beneficios: sin signo me permite almacenar un numero de 0 y 65535 (2 16 ), con signo entre -32768 al 32767 Cuando el ahorro de memoria es muy importante la podemos decalrar: short numero; short int numero; El Tipo de dato char Tipo char sirven para almacenar caracteres Para declarar una variable de tipo char hacemos: char letra; char a, b, caracter; Asignarle el valor, se puede escribir: char letra = A; o letra = 65; /* Esto es as porque el cdigo ASCII de la letra 'A' es el 65. */ letra = 'A'; printf( "El nmero ASCII de la letra %c es: %i.", letra, letra ); El Tipo de dato long long int numero_grande; o, ya que la palabra clave int puede omitirse en este caso, long numero_grande; 4 bytes (32 bits) para almacenarlos unsigned long numero_positivo_muy_grande; El Tipo de dato float Contienen parte entera y una parte fraccionaria o decimal, se almacena en 4 bytes (32 bits) Declaracin de una variable de tipo float: float numero; Para imprimir valores tipo float Usamos %f. float num=4060.80; printf( "El valor de num es : %f", num ); Si queremos escribirlo en notacin exponencial usar %e: float num = 4060.80; printf( "num : %e", num ); Que da como resultado: num es: 4.06080e003 El Tipo de dato double Las variables tipo float tienen un rango y sobre todo una precisin muy limitada insuficiente para la mayor parte de los clculos tcnicos y cientficos. Se soluciona con el tipo double, que utiliza 8 bytes (64 bits) para almacenar una variable
Las variables tipo double se declaran de forma anloga a las anteriores: double numero_real_grande; Conversin de tipos k = (int) 1.7 + (int) masa; Const Se puede utilizar el cualificador const en la declaracin de una variable para indicar que esa variable no puede cambiar de valor Su sintaxis es: const tipo nombre=valor_entero; const tipo nombre=valor_entero.valor_decimal; const tipo nombre=carcter; Por ejemplo: const int i=10; const double x[] = {1, 2, 3, 4}; #define Pueden ser utilizados para definir valores numricos constantes Estas constantes se definen de la manera siguiente: #define nombre_de_la_constante valor_de_la_constante #define nombre_de_la_constante Cadena Las constantes se suelen escribir en maysculas slo se puede definir una constante por fila. No se pone ";" Podemos definir una constante usando el valor de otras. Por supuesto las otras tienen que estar definidas antes Ejercicio : Cual ser el resultado del siguiente programa? Ejercicios Escribir un programa que pida por teclado dos resistencias y calcule y presente la resistencia equivalente en paralelo (Req=(R1*R2)/(R1+R2)). Suponiendo que pi = 3.1416. Escribe un programa que pida al usuario que introduzca el radio, y presente por pantalla el clculo del permetro de la circunferencia (2*pi*r), el rea del crculo (pi*r 2 ), y el volumen de la esfera (V = 4*pi*r 3 /3). Estructuras Condicionales Condicionales Simples Sentencia if if ( condicin ) sentencia(s); Construccin if - else if ( condicin ) sentencia else sentencia Realizar un programa que simule una clave de acceso Ejercicios Realice un programa que determine el pago a realizar por la entrada a un espectculo donde se pueden comprar slo hasta cuatro entrada, donde al costo de dos entradas se les descuenta el 10%, al de tres entrada el 15% y a la compra de cuatro tickets se le descuenta el 20 %. Variables: Numero de estradas, valor entrada Construccin if else if - ... Estructura Condicional Multiple Construccin switch Supongamos un programa que entre la nota de un alumno por el teclado y nos diga su calificacin. Podramos utilizar estructuras if de la manera siguiente: La estructura Caso..que es la ms indicada cuando se han de ejecutar diferentes accione que dependen del valor que tiene una nica variable. Qu salida producir el cdigo siguiente, cuando se mete en un programa completo y primera_opcion vale 1?, Y si primera_opcion vale 2? Escribe un da de la semana Ejercicios Ingresar la categora y el sueldo de un trabajador y calcular el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprimir la categora del trabajador y el nuevo sueldo. Hacer un algoritmo usando un elemento de seleccin, donde se solicite al usuario dos nmeros y preguntar que operacin aritmtica quiere realizar:
SELECCIONE SOLO UNA OPCIN 1-4 Opcin 1 Suma Opcin 2 Resta Opcin 3 Divisin Opcin 4 Multiplicacin Opcin default Verifique su seleccin. Ejercicios while Permite repetir una serie de acciones mientras se verifica una condicin la sintaxis es: Primero se evala la expresin si sta es falsa el control pasa directamente a la instruccin siguiente, pero si es verdadera entonces se ejecuta el cuerpo del laso while devolviendo el control al principio del mismo. Ejemplo 1: Imprimir los numero desde el caro hasta el diez. Ejemplo 2: Lee nmeros enteros hasta que se introduzca el valor hasta que se introduzca el valor 0. Qu imprimir el siguiente programa? Ejercicio:
Construya las sentencias de cdigo que hagan lo siguiente: a. Incremente el valor de la variable x en 10. b. Incremente la variable x en 1. c. Asigne el doble de la suma de a y b a c. d. Asigne a mas el doble de b a c.
Considere el siguiente cdigo de programa
a. Cual es la salida del programa si n=0? b. Cual es la salida del programa si n=1? c. Cual es la salida del programa si n=3?
Qu imprimir el siguiente programa? Cul es la salida del siguiente bucle? do while El laso do es muy similar al laso while solo que while verifica la expresin y luego ejecuta el cuerpo del laso en cambio el laso do ejecuta el cuerpo del laso y luego verifica la expresin. Ejemplo: Muestra un men si no se pulsa 4 Programa que pide un numero y suma desde el hasta el cero. Bucle for Ejemplo 1: Contar hasta diez. Contar desde diez hasta 1 Visualizar dos tablas de multiplicar en pantalla Ejercicios Control de bucles break break provoca que se termine la ejecucin de una iteracin continue Se utiliza dentro de un bucle. Cuando el programa llega a una sentencia CONTINUE no ejecuta las lneas de cdigo que hay a continuacin y salta a la siguiente iteracin del bucle. Goto La sentencia goto (ir a) nos permite hacer un salto a la parte del programa que deseemos Realice un programa que escriba los nmeros del 1 al 10 menos el 5 Ejemplo goto Funciones Una funcin es una entidad formada por un grupo de sentencias destinadas a hacer un trabajo concreto. Los objetivos bsicos de la utilizacin de funciones son tres: a. Evitar repeticiones de cdigo b. Organizacin del programa c. Independencia Estructura de las funciones a. Definicin de funcin void borrar (void) b. Llamar a la funcin Para llamar a la funcin sonido se utiliza la misma sintaxis que cuando es llama cualquier funcin de C, como por ejemplo printf(), getche() o clrscr(), es decir, el nombre de la funcin seguido de parntesis El void inicial significa que la funcin no devuelve nada, y el void que va entre el parntesis, que la funcin no recibe ningn parmetro Declaracin de funciones Parmetros, Argumentos Una funcin puede ser llamada con cero o ms argumentos. return expresin: Mediante la palabra reservada return, se devuelve el valor de la funcin, en este caso representado por expresin Funcin sin argumentos que no devuelve nada Funcin con argumentos, no devuelve ningn valor Funcin con argumentos que devuelve un valor El siguiente programa calcula el cubo de los nmeros del 1 al 5 utilizando una funcin definida por el usuario Vectores Un vector es una porcin de memoria que es utilizada para almacenar un grupo de elementos del mismo tipo y se diferencian en el ndice.77 Declaracin De Vectores Un vector se declara: Tipo_ de_dato nombre_del_vector [ dimensin ]; Inicializacin De Vectores Los elementos de un vector son accedidos por ndices que van desde 0 hasta N-1 para un vector de N elementos. Los elementos de un vector pueden ser inicializados en la misma declaracin: Matrices Ejercicios Realizar una funcin llamada par, que toma un nmero entero como parmetro , y devuelve 1 si es par o devuelve 0 si es impar. NOTA: Para saber si un nmero entero es par, al dividirlo entre 2 su resto debe ser 0. Ayuda
while (numero >= 10) { suma += numero % 10; numero /= 10; } Crear una funcin que reciba un nmero cualquiera y que devuelva como resultado la suma de sus dgitos. Por ejemplo, si el nmero fuera 1231 la suma sera 7. Taller temas visto en clase de los temas Funciones, Vectores y Matrices Adjuntar en la plataforma el documento que incluya la evidencia o respuesta de cada uno de los puntos del taller Escribir un programa que haga el producto de dos matrices 3x3. El programa debe incluir un procedimiento que lea las matrices, una funcin que haga el producto y otro procedimiento que escriba el resultado Ejercicios Ayuda: