Preview only show first 6 pages with water mark for full document please download

Transcript

Prácticas de Informática Sexto a1 2014-2015 Colegio del Tepeyac, Campus México. Practica 1: Programación Lógica Algoritmo: conjunto de pasos ordenados que nos permiten dar solución a un problema. EJEMPLO El ejemplo de cambiar una bombilla (foco) fundida es uno de los más utilizados por su sencillez para mostrar los pasos de un Algoritmo: 1. Ubicar una escalera debajo de la bombilla fundida 2. Tomar una bombilla nueva 3. Subir por la escalera 4. Girar la bombilla fundida hacia la izquierda hasta soltarla 5. Enroscar la bombilla nueva en el plafón hasta apretarla 6. Bajar de la escalera 7. Fin Un algoritmo cumple estos 3 requisitos: REALIZABLE: Un algoritmo debe terminar después de una cantidad finita de pasos. COMPRENSIBLE: Debe ser claro lo que hace, de forma que quien ejecute los pasos sepa qué, cómo y cuándo hacerlo. PRECISO: El orden de ejecución de las instrucciones debe estar perfectamente indicado Sección: Bachillerato-Sexto área uno. 6° GRADO 2 Colegio del Tepeyac, Campus México. Por ejemplo, ordenar los pasos para pescar: ___ El pez se traga el anzuelo. ___ Enrollar el sedal. ___ Tirar el sedal al agua. ___ Llevar el pescado a casa. ___ Quitar el Anzuelo de la boca del pescado. ___ Poner carnada al anzuelo. ___ Sacar el pescado del agua. 2. PROBLEMA: Cambiar la rueda ponchada de un automóvil teniendo un gato mecánico en buen estado, una rueda de reemplazo y una llave inglesa. 3. PROBLEMA: Realizar la suma de los números 2448 y 5746. 3 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Todo algoritmo consta de tres secciones principales: ENTRADA: Es la introducción de datos para ser transformados. PROCESO: Es el conjunto de operaciones a realizar para dar solución al problema. SALIDA: Son los resultados obtenidos a través del proceso. Ejemplo: PROBLEMA: Realiza un algoritmo para hallar el área de un rectángulo, cuya base mide 7 cm y su altura de 4cm. Análisis del problema: correctamente planteado Ya se encuentra Resultado esperado: Obtener el área rectángulo, basándose en los valores dados. del Datos disponibles: Se tiene el valor de la base y el valor de la altura, tenemos que tener la fórmula matemática que nos permita obtener el área de ese polígono. Para empezar a escribir un algoritmo, siempre tiene que numerarse cada uno de los pasos a ocupar. Paso1: Inicio Paso2: Dar el valor de 7 a la variable “b” Paso3: Dar el valor de 4 a la variable “h” Paso 4: Guardar en variable “res”, el resultado de multiplicar b * h Una variable es una palabra cualquiera que puede tener un valor y puede cambiar en cualquier momento Paso 5: Mostrar el valor de la variable “res” Paso 6: fin Sección: Bachillerato-Sexto área uno. 6° GRADO 4 Colegio del Tepeyac, Campus México. Identificadores Los identificadores son nombres que se dan a los elementos utilizados para resolver un problema y poder diferenciar unos de otros. Al asignar nombres (identificadores) a variables, constantes y procedimientos se deben tener en cuenta algunas reglas: • Los nombres pueden estar formados por una combinación de letras y números (saldoMes, salario, fecha2, baseTriángulo, etc). • El primer carácter de un nombre debe ser una letra. 1. Confeccione un algoritmo que lea un número e indique si este es positivo o negativo 2. Confeccione un algoritmo que lea un número e indique si este es par o impar 3. Obtener el IVA de una venta, si esta es superior a $ 150.000 aplicar un descuento del 25 4. Leer 4 números e imprimir el mayor de ellos. 5 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 2: Pseudocodigos y diagramas El pseudocódigo es la representación matemática de un algoritmo. El pseudocódigo se deriva del algoritmo, reduciendo su tamaño e interpretación de las acciones a seguir, esto debido a la asignación de valores o elaboración de operaciones matemáticas de forma directa. Ejemplo: Inicio Dame A Dame B Dame C Prom= (A+B+C)/3 Mostrar Prom Fin El usar pseudocódigos facilita la interpretación de las acciones a seguir, además que facilita la elaboración de la solución a un problema. Diagramas de flujo Un diagrama de flujo es la representación gráfica de un algoritmo, se usan símbolos definidos universales para poder interpretar cada paso de un pseudocódigo. Sección: Bachillerato-Sexto área uno. 6° GRADO 6 Colegio del Tepeyac, Campus México. Para poder realizar los diagramas a mano existen plantillas de plástico para poder dibujar las figuras y poder elaborar de manera sencilla el diagrama. De igual manera existen diferentes programas de computadora para poder generar los diagramas de una manera más rápida y sencilla. En la web podrás encontrar el programa smart DFD, que es un programa básico y gratuito para poder hacer los diagramas. A continuación se muestran los iconos universales para la realización de un diagrama. 7 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Dentro de los símbolos fundamentales para la creación de diagramas de flujo, se colocan operaciones aritméticas y relaciones condicionales. La siguiente es una lista de los símbolos más comúnmente utilizados:       Suma + Resta – Mayor Menor < > Comparaciones = Multiplicación * División / Ejemplo de diagramas de flujo: Sección: Bachillerato-Sexto área uno. 6° GRADO 8 Colegio del Tepeyac, Campus México. Edraw Para ayudarnos a la creación de diagramas de flujo, tenemos la aplicación que se ejecuta bajo Windows, denominada Edraw Max 5 o la versión más reciente de edraw 6 Este programa se puede descargar desde la internet. La instalación del programa es fácil e intuitiva, corriendo en plataforma Windows en XP / VISTA / Seven/ Windows 8. La otra manera de ejecutar el programa, es corriendo el archivo portable, es decir no se instala en la computadora, solo se ejecuta. 9 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Al abrir el programa mostrará una venta con las diferentes opciones a considerar. Existen diferentes plantillas para realizar múltiples esquemas y diagramas. Para hacer uso de las librerías de los mapas mentales, usaremos la plantilla flowchart Se abrirá un área de trabajo especial para los diagramas de flujo La cinta de opciones cambia a las herramientas propias de un mapa mental. Sección: Bachillerato-Sexto área uno. 6° GRADO 10 Colegio del Tepeyac, Campus México. El área de trabajo está divida en la librería de símbolos, y el área de dibujo, delimitado por una cuadricula. ¿Cómo iniciar el diagrama? 1. De la librería se escoge el símbolo que se desea usar. 2. Se arrastra hacia el área de trabajo. 11 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Para poder agregar texto, se da doble clic en el símbolo y se teclea. Si se desea agregar texto fuera de las figuras, se emplea la herramienta texto. En edraw, podemos ocupar diferentes tipos de conectores para poder darle secuencia a un mapa mental, recuerda que es uno de los elementos más importantes, ya que determinan el flujo de la información. Cuando seleccionamos un objeto, este muestra recuadros de color verde llamados tiradores. Esos tiradores van a servir para poder unir las figuras entre sí, a través de conectores. Sección: Bachillerato-Sexto área uno. 6° GRADO 12 Colegio del Tepeyac, Campus México. Basta con seleccionar de la barra de herramientas el icono de conectores. Permitirá seleccionar los diferentes tipos de diseño de conectores para poder ocupar. Una vez seleccionado, solo hay que colocar el punto inicial sobre uno de los tiradores verdes y el punto final sobre un tirador verde del otro objeto. Si deseas ver el desarrollo de tu mapa, recuerda pulsar la tecla Realiza los siguientes algoritmos de los problemas planteados y los diagramas de flujo de dichos algoritmos (los diagramas serán hechos en edraw ) impresos y pegados. Confeccionar un algoritmo que permita resolver una ecuación de segundo grado. Con discriminante mayor a cero (soluciones reales). AX2+BX+C = 0 X1 = (-B + SQRT(Bˆ2-4*A*C))/(2*A) X2 = (-B - SQRT(Bˆ2-4*A*C))/(2*A) D= Bˆ2-4*A*C Si D = 0 entonces X1 = X2 = -B/(2*a) Si D > 0 entonces calcular X1 y X2 Si D < 0 entonces no tiene solución en los Reales. 13 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Realiza un algoritmo que genere la serie de Fibonacci Construya un algoritmo que permita ingresar 90 notas entre uno y siete, indicando finalmente cuántos alumnos aprobaron y cuantos reprobaron. Sección: Bachillerato-Sexto área uno. 6° GRADO 14 Colegio del Tepeyac, Campus México. Practica 3: Lenguajes de programación Lenguaje de programación. Un lenguaje de programación es el medio a través del cual le comunicamos a la computadora las instrucciones que debe ejecutar para resolver el problema en cuestión. Todo lenguaje de programación está compuesto por un alfabeto o conjunto de caracteres, un vocabulario o léxico y una gramática o reglas de sintaxis. Lenguaje C Un compilador es un programa que convierte nuestro código fuente en un programa ejecutable. Nos permiten escribir un programa de manera que sea fácil entenderlo por una persona. En la práctica a la hora de crear un programa nosotros escribimos el código fuente, en nuestro caso en C, que normalmente será un fichero de texto normal y corriente que contiene las instrucciones de nuestro programa. Luego se lo pasamos al compilador y este se encarga de convertirlo en un programa. El lenguaje C es muy flexible, es uno de los más básicos y más importantes ya que es base de otros grandes sistemas operativos. Definiciones Básicas Un programa –en sentido informático– está constituido por un conjunto de instrucciones que se ejecutan –ordinariamente– de modo secuencial, es decir, cada una a continuación de la anterior. Existen seis clases de componentes sintácticos o tokens en el vocabulario del lenguaje C:       15 palabras clave identificadores constantes cadenas de caracteres operadores separadores. Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Los separadores –uno o varios espacios en blanco, tabuladores, carácteres de nueva línea (denominados "espacios en blanco" en conjunto), y también los comentarios escritos por el programador– se emplean para separar los demás tokens; por lo demás son ignorados por el compilador. El compilador descompone el texto fuente o programa en cada uno de sus tokens, y a partir de esta descomposición genera el código objeto correspondiente. Palabras Clave del C. En C, como en cualquier otro lenguaje, existen una serie de palabras clave (keywords) que el usuario no puede utilizar como identificadores (nombres de variables y/o de funciones). Estas palabras sirven para indicar al computador que realice una tarea muy determinada (desde evaluar una comparación, hasta definir el tipo de una variable) y tienen un especial significado para el compilador. struct switch typedef union unsigned void volatile while Auto Break Case Char Const Continue Default Do Double else Enum Extern Float For Goto If int long register return short signed sizeof static Cada lenguaje tiene sus propias reglas respecto a las posibilidades de elección de nombres para las funciones y variables. En C estas reglas son las siguientes: 1. Un identificador se forma con una secuencia de letras (minúsculas de la a a la z; mayúsculas de la A a la Z; y dígitos del 0 al 9). 2. El carácter subrayado o underscore (_) se considera como una letra más. 3. Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los citados, como por ejemplo (*,;.:-+, etc.). Sección: Bachillerato-Sexto área uno. 6° GRADO 16 Colegio del Tepeyac, Campus México. 4. El primer carácter de un identificador debe ser siempre una letra o un (_), es decir, no puede ser un dígito. 5. Se hace distinción entre letras mayúsculas y minúsculas. Así, Masa es considerado como un identificador distinto de masa y de MASA. 6. C permite definir identificadores de hasta 31 caracteres de longitud. Los tipos de datos fundamentales del C se indican en la siguiente tabla. Datos enteros Datos reales Char signed char Unsigned char signed short int signed int signed long int unsigned short int unsigned int Unsigned long int Float double long double La palabra char hace referencia a que se trata de un carácter (una letra mayúscula o minúscula, un dígito, un carácter especial). La palabra int indica que se trata de un número entero, mientras que float se refiere a un número real (también llamado de punto o coma flotante). 17 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 4: Tipos de datos Variables Una variable se define como un carácter o una palabra, que va tomar diferentes valores al estar ejecutando el programa o al transcurrir el tiempo. Constantes Una constante se define como un carácter o una palabra que se le va a signar un valor, este valor no tendrá ninguna modificación en el tiempo, siempre conservara el mismo valor. Caracteres (tipo char) Las variables carácter (tipo char) contienen un único carácter y se almacenan en un byte de memoria (8 bits). Lo que correspondería a valores que están en el rango –128 y 127. La declaración de variables tipo carácter puede tener la forma: char nombre; char nombre1, nombre2, nombre3; char letra = ’a’; Inicializar se dice que es el proceso de asignar un valor a cierta variable. Números enteros (tipo int) Un entero se usa para números sin punto decimal y tiene un rango de -32768 al 32767. una variable entera (tipo int) se declara y se inicializa en la forma: int nota = 10; En este caso la variable nota deberá estar comprendida entre -32768 al 32767. Sección: Bachillerato-Sexto área uno. 6° GRADO 18 Colegio del Tepeyac, Campus México. Números enteros (tipo long) Existe la posibilidad de utilizar enteros con un rango mayor si se especifica como tipo long en su declaración: long int número_grande; El rango de un entero long puede variar si se utilizan números con signo, podrán representarse números entre -2.147.483.648 y 2.147.483.647. Números reales (tipo float) Estas variables se llaman también de punto flotante, ya que integran el punto decimal. Las variables tipo float se declaran de la forma: float numero_real; float alfa1; Números reales (tipo double) Las variables tipo float tienen un rango y una precisión muy limitada, insuficiente para la mayor parte de los cálculos técnicos y científicos. Este problema se soluciona con el tipo double, Las variables tipo double se declaran de forma análoga a las anteriores: double real_grande; double máximo; Cualificador CONST Se puede utilizar el cualificador const en la declaración de una variable para indicar que esa variable no puede cambiar de valor. const int i=10; const double x=1000; 19 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 5: Tipos de operadores Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más Variables para realizar una determinada operación con un determinado resultado. Ejemplos típicos de operadores son la suma (+), la diferencia (-), el producto (*), etc. Operadores aritméticos Los operadores aritméticos son los más sencillos de entender y de utilizar en C se utilizan los cinco operadores siguientes:  Suma: +  Resta: -–  Multiplicación: *  División: /  Resto: % Todos estos operadores se pueden aplicar a constantes, variables y expresiones. El resultado es el que se obtiene de aplicar la operación correspondiente entre los dos operandos. El único operador que requiere una explicación adicional es el operador resto %. Este operador se aplica solamente a constantes, variables o expresiones de tipo int. Ejemplo: 23%4 es 3, puesto que el resto de dividir 23 por 4 es 3. Si a%b es cero, a es múltiplo de b. Sección: Bachillerato-Sexto área uno. 6° GRADO 20 Colegio del Tepeyac, Campus México. Expresión Una expresión es un conjunto de variables y constantes también de otras expresiones más sencillas relacionadas mediante distintos operadores. Un ejemplo de expresión en la que intervienen operadores aritméticos es el siguiente polinomio de grado 2 en la variable x: 5.0 + 3.0*x - x*x/2.0 Las expresiones pueden contener paréntesis (...) que agrupan a algunos de sus términos. Puede haber paréntesis contenidos dentro de otros paréntesis. El significado de los paréntesis coincide con el habitual en las expresiones matemáticas. Operadores de asignación Los operadores de asignación son aquellos que proponen un valor o una acción a una variable o constante. El operador de asignación más utilizado es el operador de igualdad (=). nombre_de_variable = expresión; Cuyo funcionamiento es como sigue: Se evalúa expresión y el resultado se deposita en nombre_de_variable, sustituyendo cualquier otro valor que hubiera en esa posición de memoria anteriormente. variable = variable + 1; Existen otros cuatro operadores de asignación (+=, -=, *= y /=) formados por los 4 operadores aritméticos seguidos por el carácter de igualdad. Estos operadores simplifican algunas operaciones recurrentes sobre una misma variable. distancia += 1; equivale a: distancia = distancia + 1; rango /= 2.0 x *= 3.0 * y - 1.0 21 equivale a: rango = rango /2.0 equivale a: x = x * (3.0 * y - 1.0) Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Operadores incrementales Los operadores incrementales (++) y (--) son operadores unarios que incrementan o disminuyen en una unidad el valor de la variable a la que afectan. i = 2; j = 2; m = i++; // al ejecutarse esta sentencia m=2 e i=3 n = ++j; // al ejecutarse esta sentencia n=3 y j=3 Operadores relacionales Los operadores relacionales son aquellos que hacen la comparación de una variable respecto a la otra. Los operadores relacionales de son:  Igual que: ==  Menor que: <  Mayor que: >  Menor o igual que: <=  Mayor o igual que: >=  Distinto que: != Su forma general es la siguiente: expresion1 op expresion2 Si la condición representada por el operador relacional se cumple, el resultado es 1; si la condición no se cumple, el resultado es 0. Sección: Bachillerato-Sexto área uno. 6° GRADO 22 Colegio del Tepeyac, Campus México. A continuación se incluyen algunos ejemplos: (2==1) // resultado=0 porque la condición no se cumple (3<=3) // resultado=1 porque la condición se cumple (3<3) // resultado=0 porque la condición no se cumple (1!=1) // resultado=0 porque la condición no se cumple Expresiones aritméticas Están formadas por variables y/o constantes, y distintos operadores aritméticos e incrementales (+, -, *, /, %, ++, --). Como se ha dicho, también se pueden emplear paréntesis de tantos niveles como se desee, y su interpretación sigue las normas aritméticas convencionales. Por ejemplo, la solución de la ecuación de segundo grado: Se escribe, en C en la forma: x=(-b+sqrt((b*b)-(4*a*c)))/(2*a); 23 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 6: Estructura básica de un programa Un programa fuente en C tiene una función principal denominada main( ) , donde ira el cuerpo del programa dentro de esta irán las instrucciones necesarias pero deben de ir entre llave ( { } ). A continuación se presenta un ejemplo esquemático de la composición de un programa.  Directrices de control  Definición de constantes  Definición de variables  Declaración de funciones  Declaración de función principal main( ) Sección: Bachillerato-Sexto área uno. 6° GRADO 24 Colegio del Tepeyac, Campus México. Directrices de control Aquí van declaradas las instrucciones necesarias para que el compilador de C reconozca las librerías que se van a utilizar mediante este ejecutando el programa, la sintaxis de estas directrices es como se muestra a continuación: # include < fichero > # include # include Definición de constantes Aquí se declararan las constantes que vayamos a utilizar durante el programa, la forma de declarar se vio en las prácticas anteriores. Definición de Variables Aquí se declararan las variables globales que vayamos a utilizar durante el programa, la forma de declarar se vio en las prácticas anteriores. NOTA: Cada renglón debe finalizar con un punto y coma (;), a excepción de ciertas instrucciones. 25 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. # include Directivas necesarias # include const float dolar=9.80 ; Declaración de constantes int numero =10; Declaración de variables por utilizar en el programa float resultado; main( ) Declaración de la función principal main { Abren corchetes resultado= numero*dolar; Evaluación de un expresión utilizando variables y constantes. } Cierran corchetes Sección: Bachillerato-Sexto área uno. 6° GRADO 26 Colegio del Tepeyac, Campus México. Practica 7: Ejecución de un programa Para poder ejecutar un programa en C, es necesario instalar el compilador, para ello emplearemos el compilador llamado “BORLANDC”, existen muchos mas en el mercado, pero es uno de los más robustos. Para ello necesitamos instalar un emulador de DOS para poder ejecutarlo. Sigamos los pasos para poder hacerlo. 1. Debemos de tener el emulador , este lleva el nombre de BOXDOS y se descarga de internet. 2. Instalar el emulador en Windows o en Linux según sea el caso. 3. Al abrir el programa recién instalado muestra la siguiente ventana. 27 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. 4. Vamos a copiar la carpeta llamada BORLANDC , a la raíz de nuestra computadora, es decir usualmente en la unidad “ C:” *NOTA: La carpeta de BORLANDC, se encuentra en la carpeta de materiales anexa a este material. 5. Regresamos a la ventana del emuladorDOSBOX instrucciones. KEYB SP [ENTER] y tecleamos las siguientes ( coloca el teclado en español) MOUNT C C:\BORLANDC [ENTER] (montando una unidad virtual llamada “C” , la cual contiene los datos de la carpeta BORLAND C) C: [ENTER] (cambiamos a la nueva unidad virtual ) Sección: Bachillerato-Sexto área uno. 6° GRADO 28 Colegio del Tepeyac, Campus México. CD BIN [ENTER] entramos al directorio BIN BC [ENTER] Se abrirá el compilador de C AJUSTES ANTES DE INICIAR Ir al menú Options (ALT + O ) y escoger la opción DIRECTORIES 29 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Cambiar la ruta que muestra x default, direccionándola a nuestra LETRA de la unidad Virtual que montamos en este caso Se va a cambiar la letra D, por la letra C. Estamos listos para iniciar nuestro primer programa en C Copiar el ejemplo anterior al compilador para poder saber si funciona correctamente. Sección: Bachillerato-Sexto área uno. 6° GRADO 30 Colegio del Tepeyac, Campus México. Notas Iniciales Existe una combinación de teclas para realizar tareas de forma más rápida. Teclas rápida para ayuda F5 - amplia la pantalla ALT + F3 - Cierra ventana F3- abre un nuevo programa F2 –Guardar programa Ejecutar el programa Para poder hacerlo es necesario presionar las teclas ALT + R y [ENTER] Mostrará una ventana donde indicará si existen errores o no en la compilación del programa. En caso de error marcara el número de ellos y la posible localización. Si se ejecuta correctamente se podrá observar el resultado o la ejecución limpia del programa. 31 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 8: funciones de entrada y salida Las funciones de entrada/salida (Input/Output) son un conjunto de funciones, incluidas con el compilador, que permiten a un programa recibir y enviar datos al exterior. Para su utilización es necesario incluir, al comienzo del programa, el archivo stdio.h en el que están definidos sus prototipos: #include Función printf() La función printf() imprime en el monitor el texto las constantes y variables que se indiquen. La forma general de esta función se puede estudiar viendo su prototipo: printf("cadena_de_control"); Explicación: La función printf() imprime el texto contenido en cadena_de_control. Ejemplo: int i=8; double tiempo=12.5; float masa=0.58; printf("No. %d. En el instante %lf la masa vale %f",i, tiempo, masa); Se imprimen 3 variables (i, tiempo y masa) con los formatos (%d, %lf y %f), correspondientes a los tipos (int, double y float), respectivamente. La cadena de control se imprime con el valor de cada variable intercalado en el lugar del formato correspondiente. Sección: Bachillerato-Sexto área uno. 6° GRADO 32 Colegio del Tepeyac, Campus México. Se mostrará en pantalla lo siguiente: No. 8. En el instante 12.5 la masa vale 0.58 Caracteres de conversión para la función printf. Carácter Tipo de argumento Carácter Tipo de argumento d,i u c f Int decimal Int unsigned char Float notación decimal Puntero void(*) o X,x S E,g Octal unsigned Hex. Unsigned Cadena de char Float notación científica p Entre el carácter % y el carácter de conversión puede haber, por el siguiente orden, uno o varios de los elementos que a continuación se indican: Un número entero positivo, que indica la anchura mínima del campo en caracteres. Un signo (-), que indica alineamiento por la izda (el defecto es por la dcha). Un punto (.), que separa la anchura de la precisión. Función scanf() La función scanf() es análoga en muchos aspectos a printf(), y se utiliza para leer datos de la entrada estándar (que por defecto es el teclado). La forma general de esta función es la siguiente: int scanf("%x1%x2...", &arg1, &arg2, ...); donde x1, x2, ... son los caracteres de conversión, que representan los formatos con los que se espera encontrar los datos. La función scanf() devuelve como valor de retorno el número de conversiones de formato realizadas con éxito. En la función scanf() los argumentos que siguen a la cadena_de_control deben ser pasados por referencia, ya que la función los lee y tiene que trasmitirlos al programa que la ha llamado y por tanto no debe ir precedido por el operador (&) en la llamada. 33 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. carácter c d, i Caracteres leídos cualquier carácter entero decimal con signo entero decimal sin signo entero octal entero hexadecimal número de punto flotante cadena de caracteres sin ' ' Para short, long y double u o x, X e, E, f, g s h, l argumento char * int * unsigned int unsigned int unsigned int float char Por ejemplo, para leer los valores de dos variables int y double y de una cadena de caracteres, se utilizarían la sentencia: Int num; Printf(“Dame un número”); Scanf(“%i”,&num); 1. Realizar un programa el cual pida al usuario 5 números, una vez que dio los 5 números los debe de sumar y desplegar su resultado, debe realizar la resta de los mismos 5 números y desplegar su resultado, de igual manera la multiplicación y la división. 2. Realizar un programa el cual resuelva una ecuación de segundo grado, le debe pedir al usuario los 3 valores, a, b y c y al final debe desplegar el valor para X1 y para X2. Sección: Bachillerato-Sexto área uno. 6° GRADO 34 Colegio del Tepeyac, Campus México. Practica 9: Sentencia de decisión IF Esta sentencia de control permite ejecutar o no una sentencia simple o compuesta según se cumpla o no una determinada condición. Esta sentencia tiene la siguiente forma general: if (expresión) sentencia; Explicación: Se evalúa expresión. Si el resultado es true , se ejecuta sentencia; si el resultado es false, se salta sentencia y se prosigue en la línea siguiente. Hay que recordar que sentencia puede ser una sentencia simple o compuesta. Sentencia if ... Else Esta sentencia permite realizar una bifurcación, ejecutando una parte u otra del programa según se cumpla o no una cierta condición. La forma general es la siguiente: if (expresión) sentencia_1; else sentencia_2; Explicación: Se evalúa expresión. Si el resultado es true , se ejecuta sentencia_1 y se prosigue en la línea siguiente a sentencia_2; si el resultado es false, se salta sentencia_1, se ejecuta sentencia_2 y se prosigue en la línea siguiente. 35 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. 1. Realizar un programa que realice lo siguiente, pedirá al usuario una temperatura, si esta es menor de 0 deberá desplegar “hace frió”, si es mayor a 0 y menor que 18 deberá desplegar “agradable”, si está dentro de 19 y 30 “calor”, si es mayor a 31 “extremo”. 2. Realizar un programa que realice lo siguiente, pedirá al usuario una temperatura, si esta es menor de 0 deberá desplegar “temperatura baja”, si es mayor a 0 deberá desplegar “temperatura normal”. 3. Programa especial Realiza un programa que simule ser un adivinador numérico, debe pedir un número entre 1 y 8, la maquina debe generar un numero aleatorio, solo tendrá 4 intentos para adivinarlo, debe de mostrar si está arriba o debajo del número a adivinar. Sección: Bachillerato-Sexto área uno. 6° GRADO 36 Colegio del Tepeyac, Campus México. Practica 10: Sentencia Switch La sentencia que se va a describir a continuación desarrolla una función similar a la de la sentencia if ... else con múltiples ramificaciones, aunque como se puede ver presenta también importantes diferencias. La forma general de la sentencia switch es la siguiente: switch (expresion) { case 1: sentencia_1; case 2: sentencia_2; default: sentencia; } Explicación: Se evalúa expresión y se considera el resultado de dicha evaluación. Si dicho resultado coincide con el valor constante 1, se ejecuta sentencia_1. Si el resultado coincide con el valor constante 2, se ejecuta sentencia_2. Si se desea ejecutar únicamente una sentencia (y no todo un conjunto de ellas), basta poner una sentencia break. 37 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. EJEMPLO printf("\nIntroduzca un valor en decimal: "); scanf("%d", &valor); switch(opcion) { case '1': printf("\n %d en hexadecimal es %#x", valor, valor); break; case '2': printf("\n %d en octal es %#o", valor, valor); break; case '3': itoa(valor, binario, 2); printf("\n %d en binario es %s", valor, binario); break; } 1. Realizar un programa el cual despliegue un menú, es decir deberá aparecer como ejemplo de la siguiente manera: Teléfonos Televisores Modulares Radiograbadoras Licuadoras y deberá pedir la opción a escoger, una vez que se presione deberá mostrar en pantalla cual fue la opción elegida. Sección: Bachillerato-Sexto área uno. 6° GRADO 38 Colegio del Tepeyac, Campus México. 3. Teclea el siguiente programa y comprueba su funcionamiento. # include void main(void) { int dd, mm, aa; printf("\nIntroducir mes (mm) y año (aaaa): "); scanf("%2d %4d", &mm, &aa); switch(mm) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: dd=31; break; case 4: case 6: case 9: case 11: dd=30; break; case 2: if((aa % 4 == 0) && (aa % 100 != 0) || (aa % 400 == 0)) dd=29; else dd=28; break; default : printf("\nEl mes no es valido\n"); } if (mm >= 1 && mm <= 12) printf("\nEl mes %02d del año %4d tiene %2d dias \n", mm, aa, dd); } 39 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 11: Sentencia For For es un ciclo de repetición quizás el tipo de bucle más utilizado del lenguaje C. Su sintaxis es: for (inicialización; expresion_de_control; actualización) sentencia; Explicación: Antes de iniciarse el bucle se ejecuta inicialización, que es una sentencia que asignan valores iniciales a ciertos contadores. A continuación se evalúa expresion_de_control si es true se ejecutan sentencia y actualización, y se vuelve a evaluar expresion_de_control. El proceso prosigue hasta que expresion_de_control sea false. La parte de actualización sirve para actualizar variables o incrementar contadores. Ejemplo: For (int i=0; i<=10; i++) { println(“El numero es %d”,i); } Este ejemplo lo que hará es simplemente ejecutarse 11 veces desde el número 0 hasta el numero 10, cada vez que pase imprimirá una línea con el número correspondiente. Sección: Bachillerato-Sexto área uno. 6° GRADO 40 Colegio del Tepeyac, Campus México. 1. Realizar un programa el cual pedirá un número al usuario y dado ese número desplegara todos los números anteriores a el. Por ejemplo el número sea 5 Desplegará 0 1 2 3 4 5 2. Realizar un programa el cual el usuario de un número y diga si es primo o no. 3. Realizar un programa el cual el usuario de un número y despliegue todos los números primos antes de él. 41 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Copia el siguiente código, hazlo funcionar. void main(void) { char clave[10]; int intento; clrscr(); for (intento=1; intento <= 3; intento++) { strcpy(clave , getpass("Introduzca su clave: ") ); if( !strcmp(clave, "curso") ) { printf("\n\aClave correcta. Tiene acceso al sistema\a"); break; } } if (intento == 4) printf("\n\t\aAcceso denegado"); getch(); } Sección: Bachillerato-Sexto área uno. 6° GRADO 42 Colegio del Tepeyac, Campus México. Practica12: Sentencia While Esta sentencia permite ejecutar repetidamente, mientras se cumpla una determinada condición, una sentencia o bloque de sentencias. La forma general es como sigue: while ( expresion_de_control) sentencia; Explicación: Se evalúa expresion_de_control y si el resultado es false se salta sentencia y Se prosigue la ejecución. Si el resultado es true se ejecuta sentencia y se vuelve a evaluar expresion_de_control. La ejecución de sentencia prosigue hasta que expresion_de_control se hace false, en cuyo caso la ejecución continúa en la línea siguiente a sentencia. Ejemplo: X=0; While( x<100) { println(“el numero ahora es %d”,x); x++; } 43 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Copia el siguiente código y ejecútalo # include # include # define ESC '\x1B' void main(void) { char caracter; printf("\nOprima ESC para salir \a\n"); while( 1 ) { printf("\nIntroduce un caracter: "); caracter=getche(); if (caracter == ESC) break; printf("\nEl codigo ASCII de \'%c\' es %d\n", caracter, caracter); } 2. Realizar el programa del menú, pero ahora la diferencia será, que debe de preguntar si deseas escoger otra opción ¿si o no?, en caso de que la respuesta sea si, limpiará pantalla y volverá a preguntar, de lo contrario, se saldrá del programa. Sección: Bachillerato-Sexto área uno. 6° GRADO 44 Colegio del Tepeyac, Campus México. Practica 13: Sentencia Do Sentencia Do Ésta sentencia funciona de modo análogo a while, con la diferencia de que la evaluación de expresion_de_control se realiza al final del bucle, después de haber ejecutado al menos una vez las sentencias entre llaves; éstas se vuelven a ejecutar mientras expresion_de_control sea true. La forma general de esta sentencia es: do sentencia; while( expresion_de_control ); Donde sentencia puede ser una única sentencia o un bloque, y en la que debe observarse que hay que poner (;) a continuación del paréntesis que encierra a expresion_de_control, entre otros motivos para que esa línea se distinga de una sentencia while ordinaria. Como ejemplo podemos citar el siguiente: Int x,choco=0; Do { for(x=0; x<10; x++) printf(“El numero es : %d”,x); choco ++; } while (choco <=10); 45 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. 1. .Realizar un programa el cual el usuario tecleara cualquier número del 1 a 10 y como resultado deberá desplegar ese mismo número pero en letra, el programa debe de estar corriendo siempre a menos que se oprima la tecla “q” para salir, una vez que muestra el resultado, deberá estar esperando otro número para convertirlo, aquí está el ejemplo: 1 uno 8 ocho Q -salir Sección: Bachillerato-Sexto área uno. 6° GRADO 46 Colegio del Tepeyac, Campus México. Practica 14: funciones Básico: Una función es como un mini-programa que puede ser utilizado en un programa principal, es decir la función puede ser llamada por otro programa. Declaración Antes que nada, debemos declarar al incio del programa, después de las librerias. #include #include tipo nombre(tipo); Al declarar una función es importante saber si queremos que nuestra función nos regrese algún valor y/o tome algún valor del programa que lo llama. En esta parte ponemos regrese tipo nombre(tipo); el tipo de la variable que queremos que nos Podemos poner "int" para que nos regrese un valor de tipo entero, "float" para flotante etc. y para poner que no regrese ningún valor, ponemos "void". En esta parte nombramos a la función tipo nombre(tipo); Podemos nombrar como nosotros queramos, siempre y cuando recordemos su nombre al momento de llamar dicha función En esta parte ponemos el tipo de la variable que tomará la función del programa que lo llamará tipo nombre(tipo); Debemos poner el mismo tipo de variable que el programa que lo llamará Ejemplo: void suma(int); Aquí decimos que no regrese ningún valor y tome una variable "int" del programa que lo llamará. 47 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Llamar la función Lo que sigue después de declarar, es realizar nuestro programa (el que llamará la función) Existen 4 maneras de llamar una función y es dependiendo de nuestra función. 1-Si no regresa ni toma nada. void suma(void); En este caso solo llamaremos a la función de esta manera: suma(); 2-Si no regresa valor, pero toma un valor void suma(int); En este caso llamamos a la función, PERO, introducimos la variable que se llevará suma(variable); 3-Si regresa un valor y toma un valor int suma(int); En este caso llamamos a la función ,PERO, introducimos la variable Y tenemos que igualarla a otra variable Resultado=suma(variable); 4.-Si regresa un valor y no toma nada int suma(void); En este caso llamamos a la función, PERO, solo igualamos la función a una variable Resultado=suma(); Sección: Bachillerato-Sexto área uno. 6° GRADO 48 Colegio del Tepeyac, Campus México. Crear la función Ahora que ya tenemos nuestro programa principal debemos crear nuestras funciones. Se crean de la misma manera que un programa normal, la diferencia es el modo de iniciar y terminar la función. Mostráremos los 4 casos que tuvimos arriba 1-Si no regresa ni toma nada. void suma(void); En este caso solo crearemos la función de esta manera: void suma() {//FUNCION//} 2-Si no regresa valor, pero toma un valor void suma(int); En este caso creamos a la función, PERO, introducimos la variable que se llevará void suma(int variable){//FUNCION//} 3-Si regresa un valor y toma un valor int suma(int); En este caso creamos a la función, PERO, introducimos la variable Y tenemos que regresar la operación que realizó la función int suma(int variable){//FUNCION// return operacion;} 4.-Si regresa un valor y no toma nada int suma(void); En este caso creamos a la función, PERO, solo regresamos la operación int suma(){//FUNCION// return operacion;} De esta manera podemos llamar a una función infinitamente las veces que queramos, siempre y cuando respetemos las reglas de las funciones. 49 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. # include # include int resultadofuncion; int sumilla (int); main() { numx=2; resultadofuncion = sumilla(numx); printf("El resultado es %d",resultadofuncion); } int sumilla (int x) { int resultado; resultado=x+x+x+x+x; return resultado; } Sección: Bachillerato-Sexto área uno. 6° GRADO 50 Colegio del Tepeyac, Campus México. 1. Realiza un programa el cual resuelva las operaciones básicas, debe de contener funciones. ( Debe de mostrar un menú con la opción a escoger). 2. Elabora un programa el cual eleve un número a un exponente cualquiera, debe de estar estructurado con función. 3. 4. 51 Resuelve la serie de fibonnacci Resuelve el factorial de un numero Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 15: Arreglos Un array (también conocido como arreglo, vector o matriz) es un modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo nombre o identificador. Por ejemplo, mediante la sentencia: double a[10]; Se reserva espacio para 10 variables de tipo double. Las 10 variables se llaman a y se accede a una u otra por medio de un subíndice, que es una expresión entera escrita a continuación del nombre entre corchetes [...]. La forma general de la declaración de un vector es la siguiente: . En C no se puede operar con todo un vector o toda una matriz como una única entidad, sino que tratar Ejemplos deque usohay de vectores sonsus loselementos siguientes:uno a uno por medio de bucles for o while  a[5] = 0.8;  a[9] = 30. * a[5];  a[0] = 3. * a[9] - a[5]/a[9];  a[3] = (a[0] + a[9])/a[3]; Sección: Bachillerato-Sexto área uno. 6° GRADO 52 Colegio del Tepeyac, Campus México. Una cadena de caracteres no es sino un vector de tipo char, con alguna particularidad que conviene resaltar. Las cadenas suelen contener texto (nombres, frases, etc.), y éste se almacena en la parte inicial de la cadena (a partir de la posición cero del vector). Para separar la parte que contiene texto de la parte no utilizada, se utiliza un carácter fin de texto que es el carácter nulo ('\0') char ciudad[20] = "San Sebastián"; Ejemplo funcional: // Programa el cual pide al usuario 10 números y los va guardando de uno en uno. // Después manda a imprimir los valores que están almacenados en el arreglo int numeros[10]; void main () { for (int i=0; i<10; i++) { printf(“dame el valor de la posicion %d”,i); scanf(“%d”,&numeros[i]); } for (int i=0; i<10;i++) { printf(“te muestro el valor de la posicion %d y es d”,i,numeros[i]); } getch(); } 53 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Realizar un programa el cual puedas meter 10 números y los imprimas en orden inverso en pantalla. Realizar un programa el cual puedas meter 10 números y los órdenes de menor a mayor y los imprimas en pantalla el arreglo desordenado y el ordenado Realizar un programa el cual puedas meter 10 números y al final te despliegue cual es el mayor y cuál es el menor Sección: Bachillerato-Sexto área uno. 6° GRADO 54 Colegio del Tepeyac, Campus México. Practica 16: Ejercicios de cadena de caracteres Realizar un programa el cual puedas meter un nombre cualquiera y te regrese el nombre al revés Realizar un programa el cual puedas meter un nombre cualquiera y te despliegue cada letra en una línea Realizar un programa el cual puedas meter un nombre cualquiera y te cambie las vocales por el número 3. Realizar un programa el cual puedas meter un nombre cualquiera y te regrese el cuantas vocales tiene el nombre y cuantas consonantes. 55 Sección: Bachillerato- Sexto área uno. 6° GRADO Colegio del Tepeyac, Campus México. Practica 17: Matrices Las matrices se declaran de forma análoga, con corchetes independientes para cada subíndice. La forma general de la declaración es: tipo nombre[número_filas][número_columnas]; Donde tanto las filas como las columnas se numeran también a partir de 0. La forma de acceder a los elementos de la matriz es utilizando su nombre, seguido de las expresiones enteras correspondientes a los dos subíndices, entre corchetes. Las matrices en C se almacenan por filas, en posiciones consecutivas de memoria. En cierta forma, una matriz se puede ver como un vector de vectores-fila. Si una matriz tiene N filas (numeradas de 0 a N-1) y M columnas (numeradas de 0 a la M-1), el elemento (i, j) ocupa el lugar: A ésta fórmula se le llama fórmula de direccionamiento de la matriz. Int matriz[5][5]; void main (void ) { for (int i=0; i<5: I++) { for (int K=0; K<5: K++) { printf(“dame el número que va en la posicion %d,%d”,I,k,); scanf(“%d”,&matriz[i][k]); } } printf(“\n\n”); for (i=0; i<5: I++) { for (K=0; K<5: K++) { printf(“número que va en la posicion %d,%d”, matriz[i][k]); } } getch(); } Sección: Bachillerato-Sexto área uno. 6° GRADO 56