Documente Academic
Documente Profesional
Documente Cultură
OBJETIVO GENERAL
El estudiante aplicar los conocimientos bsicos de programacin en la solucin de problemas que involucren procesamiento de datos mediante un programa de cmputo, desarrollado en algn lenguaje de programacin en particular.
NDICE DE UNIDADES
1. 2. 3. 4. Introduccin a la programacin. Estructuras de control. Funciones. Estructuras de datos estticas y dinmicas.
1. INTRODUCCIN A LA PROGRAMACIN
1.1 Definicin de algoritmos 1.2 Tcnicas para elaboracin de algoritmos 1.3 Representacin de algoritmos 1.3.1 Diagramas de flujo 1.3.2 Pseudocdigo
INTRODUCCIN A LA PROGRAMACIN
1.4 Variables, Constantes y Operadores
Estructuras de control
2.1 Estructuras de Decisin 2.1.1 La construccin IF THEN ELSE 2.1.2 IFS Anidados 2.1.3 SWITCH / Case 2.2 Estructuras de Repeticin 2.2.1 For 2.2.2 While 2.2.3 DO - WHILE
Funciones
3.1 Funciones 3.2 Procedimientos 3.3 Correspondencia entre argumento y parmetro
Definicin de algoritmos
Un algoritmo es un mtodo con un conjunto de instrucciones utilizadas para resolver un problema especifico. Aunque la popularizacin del trmino ha Ilegado con el advenimiento de la era informatica, algoritmo proviene de Mohammed al-KhoWarizmi, matemtico persa que vivi durante el siglo IX y alcanz gran reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido en la palabra algorismus deriv posteriormente en algoritmo. Euclides, el gran matemtico griego (del siglo IV a.c.) que invent un mtodo para encontrar el mximo comn divisor de dos nmeros, se considera con Al-Khowarizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).
Definicin de algoritmo
El profesor Niklaus Wirth inventor de Pascal, Modula-2 y Oberon. Algoritmos + Estructuras de datos = Programas
Mencionando que slo se puede llegar a realizar un buen programa con el diseo de un algoritmo y una correcta estructura de datos.
Definicin de algoritmo
La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto.
Definicin de algoritmo
Un problema puede ser resuelto mediante varios algoritmos. Un algoritmo es un conjunto ordenado de pasos o instrucciones ejecutables y no ambiguas.
Las etapas o pasos que sigue el algoritmo deben tener una estructura bien establecida en trminos de orden en qu se ejecutan las etapas.
Ejemplo 1.
Un cliente ejecuta un pedido u una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido. Redactar el algoritmo correspondiente.
Ejemplo 2
Se desea disear un algoritmo para saber si un nmero es primo o no. Un nmero es primo si slo puede dividirse por s mismo y por la unidad (es decir, no tiene ms divisores que l mismo y la unidad). Por ejemplo, 9,8,6,4, 12, 16,20, etc., no son primos, ya que son divisibles por nmeros distintos a ellos mismos y a la unidad. As, 9 es divisible por 3, 8 lo es por 2, etc. El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2, 3,4 ..., etc.
PROGRAMAS
Se considera que un programa de computadora es una representacin concreta de un algoritmo en un lenguaje de programacin. Un algoritmo debe proporcionar suficiente detalle para que pueda convertir en un programa cuando se necesite.
Para recordar
Un problema es una funcin o asociacin de entradas con salidas. Un algoritmo es una receta para resolver un problema cuyas etapas son concretas y no ambiguas Un algoritmo debe ser correcto, finito y debe terminar para todas las entradas. Un programa es una ejecucin de un algoritmo en un lenguaje de programacin de computadora.
5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo final. 7. Solo los smbolos de decisin pueden y deben tener mas de una lnea de flujo de salida.
PSEUDOCDIGO
El pseudocdigo es una herramienta de programacin en la que las instrucciones se escriben en palabras similares al ingls o espaol Facilitan tanto la escritura como la lectura de programas.
PSEUDOCDIGO
Es fcil de modificar si se corrigen errores o anomalas en la lgica del programa.
Ejercicio
1. Calcular el salario de un trabajador conociendo el nmero de horas trabajadas, la tarifa horaria y la tasa de impuestos. Hacer el algoritmo El diagrama de flujo El pseudocdigo.
2. Calcular el valor de la suma 1+2+3+ ...+ 100. Se utiliza una variable Contador como un contador que genere los sucesivos nmeros enteros, y Suma para almacenar las sumas parciales 1, I +2,1+2+3.. . 1. Establecer Contador 1
d
4. Visualizar Sumd
Teoremas bsicos.
La Programacin modular: La programacin modular consiste en dividir el programa en mdulos, es decir, en bloques de cdigo separados, para dividir el problema grande en varios problemas ms pequeos y ms fciles de resolver. La programacin modular se basa en el diseo descendente (top-down), que es una tcnica mediante la cual el problema general se va descomponiendo en partes diferenciadas ms fciles de resolver en cada nivel, poco a poco, concretando ms en cada nivel, hasta llegar a un nivel en el que todas las partes son fcilmente desarrollables y depurables.
TIPOS DE DATOS
Un tipo de dato es un conjunto de valores y operaciones asociadas a esos valores. Consta de dos partes Un conjunto de datos Las operaciones que pueden realizar sobre esos datos.
Tipos de Datos
En los lenguajes de programacin existen un gran nmero de tipos de datos entre ellos se pueden destacar: Tipos primitivos Tipos compuestos Tipos agregados
Tipos de Datos
Los tipos de datos primitivos son tipos cuyos valores son elementos de datos indivisibles. Tambin denominados atmicos Incluyen tipos numricos, carcter y lgicos (booleanos). Ejemplo El nmero 0810 es un tipo de dato ya que si bien se puede descomponer en cuatro cifras o dgitos, stas ya no tienen el mismo significado.
Tipos de Datos
Enteros Valores operaciones Coma flotantes Valores operaciones Carcter Valores Operaciones Lgicos Valores Operaciones Verdadero, falso And, or, not, (y, o, no) /0, , A, B, ,a, b, <, -, , 0.0, , *, +, -, %, /, -, , -3,-2,-1,o,1,2,3,, *, +, -, %, /, ++, - -,
Tipos de Datos
Los datos compuestos son el opuesto a los tipos de datos atmicos, se pueden romper en subcampos que tengan significado. Ejemplo. Un numero de telfono celular.
Los tipos agregados son tipos de datos cuyos valores son colecciones de elementos de datos previamente definido Tipos de datos agregados bsicos: Array (lista, tabla o matriz) Secuencia Registros.
Tipos de Datos
Un array o arreglo es, normalmente una coleccin de datos de tamao o longitud fija, cada uno de cuyos datos es accesible en tiempo de ejecucin mediante la evaluacin de las expresiones que representan a los subndices o ndices correspondientes. Todos los elementos deben ser del mismo tipo. Array de enteros: [4, 6, 8, 35, 46, 810]
Tipos de datos
Una secuencia o cadena es, en esencia un array cuyo tamao puede variar en tiempo de ejecucin. Por consiguiente son similares a array dinmicos o flexibles. Cadena = Aceite de oliva
Tipos de Datos
Un registro puede contener datos agregados y primitivos. Cada elemento agregado, eventualmente, se descompone en campos formados por elementos primitivos Se puede considerar como un tipo o coleccin de datos de tamao fijo Registro { Dato 1 Dato2 Dato 3 }
UNIDAD II
ESTRUCTURAS DE CONTROL DE FLUJO.
Men
Microsoft Visual C++ 6.0 tiene un men dinmico que puede adaptarse a los diferentes estados del entorno de desarrollo. El men File dispone de algunas opciones para los ltimos archivos o proyectos abiertos.
El men Tools se puede adaptar a las necesidades de cada usuario mediante la opcin Customize.
El men Help est dedicado al sistema de ayuda de Visual C++.
Barras de herramientas
Las barras de herramientas se pueden considerar como un atajo de las opciones de men. Pulsando con el botn derecho del ratn en un espacio libre de las barras de herramientas existentes, puede mostrar nuevas barras seleccionando la opcin deseada. As, puede mostrar otra barra que nos facilite el acceso inmediato a opciones de compilacin (Build), depuracin de errores (Debug), etc.
Workspace
Workspace es una herramienta bsica. Puede contener varias fichas. Para seleccionarlas, se utilizan los botones de la parte inferior de Workspace. Cuando no hay abierto ningn proyecto, Workspace consta de una sola ficha: InfoView. Infoview sirve para representar la estructura del manual en pantalla. Las otras fichas slo se muestran cuando hay un proyecto abierto. Al crear un nuevo proyecto, se activa una ficha nueva en Workspace: ClassView. ClassView permite manejar de forma sencilla los elementos ms importantes del entorno de desarrollo: las subrutinas y funciones.
Estructura repetitiva
Es una estructura con una entrada y una salida en la cual se repite una accin un numero determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una condicin. Las estructuras repetitivas pueden ser:
Estructura para (FOR) Estructura mientras (WHILE) Estructura hasta (UNTIL) Estructura iterar (LOOP)
Teoremas bsicos.
Si N = O se obtiene un valor negativo, se dice que el bucle es inactivo y no se repite ninguna vez.
Teoremas bsicos.
En este tipo de estructuras existen una serie de normas de obligado cumplimiento, como son:
El In no puede ser 0 (bucle infinito). Vc no puede modificarse en el rango del bucle (accin A)
El numero de repeticiones oscila entre 0 e infinito, dependiendo de la evaluacin de la condicin, cuyos argumentos en los casos de repeticin, al menos una vez, deberan modificarse dentro del bucle, pues de no ser as el numero de repeticiones seria infinito y nos encontraremos en un bucle sin salida.
En esta estructura se repite una accin hasta que se cumpla la condicin que controla el bucle, la cual se evala despus de cada ejecucin del mismo. El numero de repeticiones oscila entre 1 e infinito, dependiendo de la evaluacin de la condicin, cuyos argumentos en los casos de repeticin, al menos dos veces, debern modificarse dentro del bucle, pues de no ser as el numero de repeticiones ser infinito y nos encontraremos en un bucle sin salida.
En esta estructura se repiten alternativamente dos acciones, evaluando la condicin de salida entre ambas. El numero de repeticiones oscila, por la accin A, entre 1 e infinito, y para la accin B, entre 0 e infinito, cumplindose que siempre se repite A una vez ms que B. Los bucles anteriores son casos particulares de ste.
El entorno de C incluye:
Editor: Permite introducir y modificar el cdigo Fuente de C. Compilador: Un programa que convierte el programa escrito en C en un cdigo que entiende la computadora. Archivos para incluir: Archivos formados por muchas definiciones separadas e instrucciones que pueden ser tiles al programador en ciertas situaciones
Requerimientos
Archivos de biblioteca: programas previamente compilados que realizan funciones especificas. Enlazador: combina todas las partes necesarias (tales como archivos de biblioteca) de un programa C para producir el cdigo ejecutable final.
#incluide <studio.h>
Main
() /* */ ; {}
Int main ()
{ }
Nombre de funcin
Sentencias
Elementos de C
Componentes lxicos: En cualquier cdigo fuente C, el elemento ms bsico reconocido por el compilador es un carcter simple o grupo de caracteres. Ejemplo: main, ({) () Palabras reservadas en ANSI C. son componentes lxicos predefinidos que tiene un significado especial para el compilador, sus definiciones no pueden ser cambiadas.
Elementos de C
Palabras reservadas:
Elementos de C
Tipos de datos: nmeros, caracteres y cadenas de caracteres. Un carcter es cualquier elemento del conjunto de caracteres usados por C. Una cadena de caracteres es una combinacin de estos caracteres. Nmeros usados por C: tiene 2 grandes categoras: Enteros y Reales (nmero con punto decimal).
Sentencia if else
La sintaxis de esta sentencia es la siguiente: If (expresin) sentencia1 else sentencia2 Lo cual significa que si la expresin es VERDADERA se ejecutara la sentencia 1, mientras que si es FALSA se ejecutara la sentencia 2.
LA FUNCIN PRINTF ( )
Se usa para escribir informacin por la salida estndar (normalmente en la pantalla) Estructura Printf (cadena de caracteres con especificadores de formato, variables o valores); Los caracteres son delimitados por comillas simples (a), y las cadenas de caracteres por comillas dobles(esto es una cadena de caracteres),
Un especificador de formato empieza con el carcter del porcentaje (%) Ejemplo: printf ( el numero 92 en decimal es %d.,92);
Los distintos tipos de campos usados por la funcin printf ( )en los especificadores de formato.
EJEMPLO
Una Sentencia (instruccin) controla el flujo de ejecucin de un programa. Est formada por palabras reservadas, expresiones y otras instrucciones. Una expresin es una combinacin de operandos y operadores que expresa un valor nico ( respuesta = 3 + 5). Dos tipos de sentencias
Simples: termina con punto y coma(;) Compuestas: estn delimitada por llaves ( )
TERCER PARCIAL
Qu es una funcin?
Es una coleccin independiente de declaraciones y sentencias(instrucciones). Una declaracin establece la relacin entre el nombre y el tipo de una variable u otra funcin. Cuando se crea una funcin, es mejor darle un nombre descriptivo.
Operadores Booleanos
OPERADOR OR
(expresin 1) (expresin 2) La operacin se evaluar como FALSA solo si expresin 1 es FALSA y expresin 2 es FALSA: en cualquier otro caso se evaluar como VERDADERA
Operador OR
IMPORTANCIA
Operadores ! */ +<<=>=< Nombre Negacin (NOT) lgica Multiplicacin y divisin Suma y Resta Menor, menor o igual, mayor o igual, mayor Igual, distinto Conjuncin (AND) lgica
== !=
LA SENTENCIA SWITCH
La sentencia switch es una forma ms fcil de codificar mltiples sentencias ifelse.
switch (expresin) { case expresin constante: (expresin) default: (expresin) }
Donde: switch= Palabra reservada que indica el comienzo de esta sentencia. expresin= Cualquier expresin legal en C { Define el comienzo del cuerpo de la sentencia switch case= Palabra reservada que precede a la expresin constante que corresponde a una alternativa. expresin-constante= Especifica qu debe cumplirse para que se active la alternativa. default= palabra reservada que indica la opcin que se llevar a cabo cuando no se cumpla ninguna alternativa. } Define el final del cuerpo
Nos permite repetir la ejecucin de un cdigo un nmero determinado de veces. Cuatro partes principales for( inicializacin; condicin; incremento ) instrucciones
CICLO FOR
Ciclo for
Inicializacin: le damos a la variable de control su valor inicial. Condicin: en forma de una expresin relacional, nos sirve para controlar cundo termina el ciclo y generalmente aqu indicamos la cantidad de vueltas que da el ciclo. Instrucciones: se coloca la parte del cdigo que deseamos se repita. Incremento: indicamos como se modificar el valor de la variable de control para cada vuelta del ciclo.
Ejemplo
Incrementa en una el valor de la variable tiempo cada vez que se ejecuta el ciclo. El valor inicial de la variable es 1 y el ciclo se repite mientras el valor de la variable tiempo sea menor o igual que 5.
int tiempo; //variable del controlador // el programa comienza aqu for (tiempo=1;tiempo<=5;tiempo=tiempo+1) printf ("el valor del tiempo es igual a %d\n, tiempo); //fin del ciclo printf ("El ciclo termina aqu");
Ciclo for
Para tener ms de una sentencia dentro de un ciclo for, es necesario encerrar todas ellas entre llaves { y} dando lugar a lo que se denomina una sentencia compuesta.
Ejemplo
El programa calcula la distancia cubierta por un cuerpo que cae (en metros por segundo) para los primeros 5 segundos de cada libre. Esta distancia esta dada por la siguiente ecuacin 1 2 = 2
Donde S= la distancia en metros a= Aceleracin debida a la gravedad (9.78 m/s 2) t= Tiempo en segundos
#define a 9.78
main() { //Variables necesarias
}
//fin del ciclo printf("Fin del ciclo");
Operador X++
Significado Incrementa X despus de cualquier operacin con ella (se llama post-incremento) Incrementa X antes de cualquier operacin con ella (se llama preincremento)
++X
X--
--X
Ejercicio
Se desea un programa para una escuela el cual debe sacar el promedio de calificaciones para 3 alumnos Realizarlo usando for
//Variables necesarias int n=0; // control del ciclo int cantidad; // Cantidad de alumnos float calif = 0.0f; // calificacin del alumno float suma = 0.0f; // sumatoria de calificaciones float promedio =0.0f; // promedio final
calificacion del alumno:"); scanf ("%f",&calif); //llevamos a cabo la suma de calificaciones suma += calif; } // calculamos el promedio promedio = suma /cantidad;
//pedimos los datos printf ("\n\ndame la cantidad de alumnos:\n"); scanf ("%d",&cantidad); promedio); //ciclo for for(n=1; n<= cantidad; n++) { printf ("\n\ndame la
Ciclo While
Es ms indicado en aquellas situaciones en las que no se conoce por adelantado el nmero de veces que se va a repetir el ciclo . Estructura while (condicin) sentencia;
Ciclo While
La sentencia puede incluir una nica sentencia o una sentencia compuesta (en este caso se encierra entre llaves { }) Primero se evala la expresin
Si el resultado de esta evaluacin es FALSO (0), entonces no se ejecuta la sentencia y el control contina despus del ciclo. Si la evaluacin es VERDADERO, se ejecuta la sentencia y se repite el proceso de nuevo.
Ejemplo 2: el programa comprueba la entrada del usuario para ver si el cuerpo del programa debe repetirlo. Observe que para finalizar el ciclo, el usuario del programa debe introducir la letra mayscula N char respuesta='S'; //Respuesta del usuario // el programa comienza aqu while(respuesta != 'N') { printf ("Este es el cuerpo del programa.\n"); printf ("Quiere repetir este programa (S/N)=>"); respuesta = getchar(); printf("\n"); } //fin del ciclo printf("Gracias por usar este programa");
Ciclo Do While
Es muy similar al ciclo while con la diferencia de que la condicin se evala despus de ejecutar el cuerpo del ciclo. Sentencia do while: do
Ciclo do while
Primero se ejecuta la sentencia; a continuacin se evala expresin. Si expresin es FALSA, se termina la ejecucin del ciclo y el control contina en la siguiente sentencia del programa. Si la expresin es VERDADERA (valor distinto de 0), entonces se repite sentencia y el proceso se repite de nuevo.
Main () { do printf (esto siempre sucede al menos una vez); while (0); printf (fin del ciclo); }
Ciclo centinela
Float entrada; // numero leido do { printf(Introduzca un numero menor que 5 =>); scanf(%f,entrada); if (entrada >=5) printf(El valor es demasiado grande, pruebe de nuevo\n); } while(entrada >=5); printf(Gracias);
Recomendacin
A la hora de elegir entre el while y el do while, se recomienda emplear el while, por que este evala primero la condicin antes de ejecutar el ciclo.
Ejercicios finales
Cree un programa en donde el usuario seleccione el nombre de una figura (rectngulo, tringulo, crculo o paralelogramo) y el programa presente la frmula del rea de dicha figura.
Para que la mquina funcione apropiadamente, la maquina debe advertir al usuario de que para recibir un producto debe insertarse al menos 12 pesos. De esta forma, es necesario conocer la cantidad de dinero introducida por el usuario. Cuando se adquiere un producto el cambio mnimo puede ser diferente cada vez. Debido a que el usuario puede introducir ms dinero que el requerido pro la mquina. Por ejemplo, si el usuario introduce cuatro monedas de 2 y dos de 5, el cambio mnimo ser de tres monedas de 2.
El cambio se realiza teniendo en cuenta que la mquina nunca se quedar sin dinero. la introduccin de las monedas por medio de un men, el usuario introduce 1, 2,3, tantas veces como desee. Una variable se incrementa en 25, 10 o 5 cada ves, dependiendo de la entrada del usuario. Cuando el usuario quiere comprar un producto introduce P, si la cantidad introducida es menor de 5, se necesita ms dinero, si la cantidad es suficiente de resta 50 a la cantidad introducida.