Resolución de Problemas.doc

download Resolución de Problemas.doc

of 11

Transcript of Resolución de Problemas.doc

Resolucin de Problemas.doc.docx

Prof. Arnoldo TllezInformtica IEducacin. Mencin InformticaRESOLUCIN DE PROBLEMAS

La principal razn para que las personas aprendan a programas en general y los lenguajes de programacin en particular, es utilizar la computadora como una herramienta para la resolucin de problemas. Ayudado por una computadora, la resolucin de un problema se puede dividir en tres fases importantes:

1. Anlisis del problema2. Diseo o desarrollo del algoritmo3. Resolucin del algoritmo en la computadora

El primer paso, anlisis del problema, requiere que el problema sea definido y comprendido claramente para que pueda ser analizado con todo detalle. Una vez analizado el problema, se debe desarrollar el algoritmo, procedimiento paso a paso para solucionar el problema dado. Por ltimo, para resolver el algoritmo mediante una computadora se necesita codificar el algoritmo en un lenguaje de programacin Pascal, C/C++, COBOL, FORTRAN, etc., es decir, convertir el algoritmo en programa, ejecutarlo y comprobar que el programa soluciona verdaderamente el problema. Las fases del proceso de resolucin de un problema mediante computadora se indican en el siguiente esquema:

PROGRAMA

Un programa de computadora es un conjunto de instrucciones, rdenes dadas a las mquinas, que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir un fin.

El proceso de programacin es, por consiguiente, un proceso de solucin de problemas, y el desarrollo de un programa requiere las siguientes fases:

1. Definicin y anlisis del problema.2. Diseo de algoritmos.3. Codificacin del programa.4. Depuracin y verificacin del programa5. Documentacin.6. Mantenimiento.PARTES CONSTITUTIVAS DE UN PROGRAMA

Tras la decisin de desarrollar un programa, el programador debe establecer el conjunto de especificaciones que debe contener el programa: entrada, salida y algoritmos de resolucin, que incluirn las tcnicas para obtener las salidas a partir de las entradas.

Las salidas de datos se deben presentar en dispositivos perifricos de salida: pantalla, impresoras, discos, etc.

INSTRUCCIONES Y TIPOS DE INSTRUCCIONES

El proceso del diseo del algoritmo o posteriormente de codificacin del programa consiste en definir las acciones o instrucciones que resolvern el problema.

Las acciones o instrucciones se deben escribir y posteriormente almacenar en memoria en el mismo orden en que han de ejecutarse, es decir, en secuencia. Un programa puede ser lineal o no lineal.

TIPOS DE INSTRUCCIONES

Las instrucciones disponibles en un lenguaje de programacin dependen del tipo de lenguaje. La clasificacin ms usual, es:

1. Instrucciones de inicio/fin.2. Instrucciones de asignacin.3. Instrucciones de lectura.4. Instrucciones de escritura.5. Instrucciones de bifurcacin.

ELEMENTOS BSICOS DE UN PROGRAMA

En programacin se debe separar la diferencia entre el diseo del algoritmo y su implementacin en un lenguaje especfico. Por ello se debe distinguir claramente entre los conceptos de programacin y el medio en que ellos se implementan en un lenguaje especfico. Sin embargo, una vez que se comprendan los conceptos de programacin, cmo utilizarlos, la enseanza de un nuevo lenguaje es relativamente fcil.

Los lenguajes de programacin tienen elementos bsicos que se utilizan como bloques constructivos, as como reglas para las que esos elementos se combinan. Estas reglas se denominan sintaxis del lenguaje. Solamente las instrucciones sintcticamente correctas pueden ser interpretadas por la computadora y los programas que contengan errores de sintaxis son rechazadas por la mquina.

Los elementos bsicos constitutivos de un programa o algoritmo son:

Palabras reservada. Identificadores. Caracteres especiales. Constantes. Variables. Expresiones. Instrucciones

Adems de estos elementos bsicos, existen otros elementos que forman parte de los programas, cuya comprensin y funcionamiento ser vital para el correcto diseo de un algoritmo y naturalmente la codificacin del programa. Estos elementos son:

Bucles. Contadores, acumuladores. Interruptores. Estructuras (secuenciales, selectivas, repetitivas).

El amplio conocimiento de todos los elementos de programacin y el modo de su integracin en los programas constituyen las tcnicas de programacin que todo buen programador debe conocer.

TCNICAS DE PROGRAMACIN

Los diagramas de flujo, son herramientas que constituyen el fundamento de programacin convencional clsica y es de utilidad para la solucin de problemas de pequea y mediana complejidad. Sin embargo, para problemas complejos el diseo de algoritmos implica un aumento de la memoria fsica de la computadora ocupada por el programa. Para evitar estos inconvenientes, las nuevas teoras de programacin se centran en las tcnicas de programacin modular y programacin estructurada, de modo que se pueda conseguir un programa eficaz. El diseo de un programa entraa la descomposicin del problema en mdulos (partes independientes), la programacin de cada mdulo mediante mtodos estructurados y su unin posterior mediante procedimientos ascendentes o descendentes.

PROGRAMACIN MODULAR

La programacin modular es uno de los mtodos de diseo ms flexibles y potentes para mejorar la productividad de un programa. En programacin modular, el programa se divide en mdulos, cada una de las cuales ejecuta una nica actividad o tarea y se codifican independientemente de otros mdulos. Cada uno de estos mdulos se analizan, codifican y ponen a punto por separado.

Cada programa contiene un mdulo denominado programa principal que controla todo lo que sucede; se transfiere el control a submdulos, de modo que ellos puedan ejecutar sus funciones; sin embargo cada submdulo devuelve el control al programa principal cuando se haya completado su tarea. Si la tarea asignada a cada submdulo es demasiado compleja, ste deber romperse en otros mdulos ms pequeos. El proceso sucesivo de subdivisin de mdulos contina hasta que cada mdulo tenga solamente una tarea especfica que ejecutar. Un mdulo puede transferir temporalmente el control a otro mdulo; sin embargo, cada mdulo debe devolver el control al mdulo del cual se recibe originalmente el control.

La descomposicin de un programa en mdulos independientes ms simples se conoce tambin como el mtodo de divide y vencers (divide and conquer). Se disea cada mdulo con independencia de los dems y siguiendo un mtodo ascendente o descendente se llegar hasta la descomposicin final del problema en mdulos en forma jerrquica.

PROGRAMACIN ESTRUCTURADA

El trmino programacin estructurada se refiere a un conjunto de tcnicas que han ido evolucionando. Estas tcnicas aumentan considerablemente la productividad del programa reduciendo el elevado tiempo requerido para escribir, verificar, depurar y mantener los programas. La programacin estructurada utiliza un nmero limitado de estructuras de control que minimizan la complejidad de los problemas y, por consiguiente, reducen los errores.

La programacin estructurada hace los programas ms fciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura.

La programacin estructurada es el conjunto de tcnicas que incorporan:

Recursos Abstractos: la programacin estructurada se auxilia de los recursos abstractos en lugar de los recursos concretos de que se dispone (un de terminado lenguaje de programacin).

Diseo Descendente (top-down): El diseo descendente es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodologa descendente consiste en efectuar una relacin entre las sucesivas etapas de estructuracin, de modo que se relacionen unas con otras mediante entradas y salidas de informacin. Es decir se descompone el problema en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: qu hacer y cmo lo hace.

Estructuras Bsicas:

En mayo de 1966 Bohm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control:

Secuenciales: es aquella en la que una accin sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso.

Selectiva: se utilizan para tomar decisiones lgicas; de ah que se suelan denominar tambin estructuras de decisin o alternativas. En las estructuras selectivas se evala una condicin y en funcin del resultado de la misma se realiza una opcin u otra.

Repetitivas: las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de acciones.

Un programa se define como propio si cumple las siguientes caractersticas:

Posee un solo punto de entrada y uno de salida o fin para control del programa. Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas partes del programa. Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).

PROBLEMARIOINFORMTICA IUNIVERSIDAD DE CARABOBO

1.- Construya un Algoritmo, que dados como datos la base y la altura de un rectngulo, calcule el permetro y la superficie del mismo.

SUPERFICIE = BASE * ALTURAPERMETRO = 2 * (BASE + ALTURA)

2.- Disear un Algoritmo que realice la siguiente conversin. Una temperatura dada en grados Celsius a grados Fahrenheit.

F = 9/5C + 32

3.- En una casa de cambio necesitan construir un programa tal que dado como dato una cantidad expresada en dlares, convierta esa cantidad a bolvares. Construya el Algoritmo correspondiente.

4.- Disear un Algoritmo que calcule el rea de un tringulo en funcin de las longitudes de sus lados:

5.- Escribir un algoritmo que permita ingresar dos nmeros enteros y calcule las 4 operaciones bsicas sume, resta, multiplicacin y divisin; adems de calcular la potencia. Cada una de las operaciones deben im0plementarse como una funcin. El algoritmo debe mostrar los nmeros y los resultados.

6.- Dado como dato el sueldo de un trabajador, aplquele un aumento del 15% si su sueldo es inferior a 1.500.000. Imprima en este caso el nuevo sueldo del trabajador. Haga el Algoritmo correspondiente.

7.- Construya un Algoritmo que dado como dato el sueldo de un trabajador, le aplique un aumento del 15% si su sueldo es inferior a 1.500.000 y 12% en caso contrario. Imprima el nuevo sueldo del trabajador.

8.- Disenar un algoritmo que lea las longitudes de los tres lados de un tringulo (l1, L2, L3) y determine el tipo de tringulo al que correspondeSuponga que A denota el mayor de los tres lados y B y C correponden a los otros dos lados, entonces:

Si A >= B + CNo se trata de un tringuloSi A = B + CEs un tringulo rectnguloSi A > B + CEs un tringulo obtusnguloSi A < B + Ces un tringulo acutngulo.

Desarrolle funciones para cada tipo de tringulo, que tomen como parmetros de entrada los lados del tringulo y devuelvan un valor booleano si el tringulo pertenece o no a ese tipo.

9.- Desarrollar un Algoritmo para determinar el monto a pagar por una llamada telefnica teniendo en cuenta lo siguiente:

Toda llamada que dure hasta 3 minutos tiene un costo de Bs. 240. Por cada minuto adicional a los 3 minutos bsicos se cobra Bs. 180.

10.- Desarrolle un algoritmo para hallar las races de una ecuacin de segundo grado (ax2+bx+c)=0 donde:

a, b y c son datos de entrada Se deben imprimir las races.

11.- Construya un Algoritmo, que dados como datos los valores enteros P y Q, determine si los mismos satisfacen la siguiente expresin:

P3 + Q4 2 * P2 < 680

En caso afirmativo debe imprimir los valores P y Q.

12.- Construya un algoritmo que dado como datos la matrcula y 5 calificaciones de un alumno, imprima la matrcula, el promedio y la palabra aprobado si el alumno tiene un promedio mayor o igual que 6, y la palabra no aprobado en caso contrario.

13.- Desarrollar un Algoritmo para obtener el mayor valor de 3 nmeros dados.

14.- Desarrollar un algoritmo para calcular el ingreso que tiene un vendedor, teniendo en cuenta que su ingreso depende de la cantidad y clase de producto vendido. Se tiene lo siguiente:

Existen cuatro tipos de productos (A, B, C, D)

Por el producto A, recibe el 5% por ventas menores a Bs. 100.000 y 6% por ventas mayores o iguales. Por el producto B recibe el 8% por ventas mayores a Bs. 100.000 y el 7% por ventas menores o iguales. Por el producto C, recibe el 9% por cualquier cantidad vendida. Por el producto D, recibe el 10% por cualquier cantidad vendida

15.- En una tienda efectan un descuento a los clientes dependiendo del monto de la compra. El descuento se efecta con base en el siguiente criterio:

Si el monto es menor que $500 no hay descuento Si el monto est comprendido entre $500 y $1000 inclusive: 5% de descuento. Si el monto est comprendido entre $1000 y $7000 inclusive: 11% de descuento. Si el monto est comprendido entre $7000 y $15000 inclusive: 18% de descuento. Si el monto es mayor a $15000: 25% de descuento.

16.- Desarrollar un algoritmo para publicar los datos de los empleados de una compaa y conjuntamente la suma total de los sueldos, teniendo en cuenta lo siguiente:

Los datos de los empleados son: nombre, cdula de identidad y sueldo.

17.- Desarrollar un algoritmo para publicar el capital que tiene cada ao una cuenta de ahorros, teniendo en cuenta lo siguiente:

Cada ao se depositan Bs. 500.000 La cuenta de ahorros produce el 12% de interese anuales. La informacin se requiere por 20 aos.

18.- Elaborar un algoritmo para encontrar el promedio de edad de los estudiantes de una Universidad mayores de 21 aos y el promedio de edad del resto. Por cada estudiante se tiene un registro con el cdigo y la edad.

19.- Escribir un algoritmo que dado como datos N nmero enteros, obtenga el nmero de ceros que hay entre estos nmeros.

20.- Escriba un algoritmo que dados como datos 270 nmeros enteros, obtenga la suma de los nmeros impares y el promedio de los nmeros pares.

21.- Suponga que una computadora no sabe multiplicar. Dados 2 nmeros naturales A y B hallar el producto AxB utilizando sumas sucesivas.

22.- Un determinado peaje desea saber cuntos carros y cuntos buses pasaron en un da, lo mismo que el promedio de personas que viajan en un carro y el promedio de las que viajan en bus. Elaborar un algoritmo para encontrar lo anterior teniendo en cuanta que por cada vehculo que pase se elabore un registro donde se especifica el tipo de vehculo y el nmero de personas que lo ocupan.

23.- Calcule e imprima el aumento de sueldo de un grupo de empleados de una empresa, teniendo en cuenta el siguiente criterio:

Si el sueldo es inferior a $1000: aumento 15% Si el sueldo es mayor o igual a $1000:: aumento 12%

24.- Dado el siguiente conjunto relativo a 20 empleados de una empresa:

Edad de la persona Estado Civil: 1 = soltero 2= casado 3 = viudo Sexo: 1 = femenino 2 = masculino Sueldo 1 = menor de 300000 2 = entre 300000 y 5000003 = mas de 500000

Se pide desarrollar un algoritmo y su diagrama para determinar: El total de empleados de sexo femenino El total de hombres casados que ganan mas de 500000 El total de mujeres viudas que ganan menos de 300000 La edad promedio de los hombres.

25.- En una tienda por departamentos cada vez que se vende un artculo se perfora una tarjeta con el precio del artculo y el nmero de identificacin, donde estos son:

1 = Juguete 2 = Artefactos Elctricos3 = Vestimenta 4 = Artculos de lencera

Al final del da N tarjetas son recopiladas. Elabore un algoritmo que:

Calcule las ventas totales. Determine el promedio de los precios de los juguetes. Encuentre cul es el precio mnimo entre los artefactos elctricos

26.- Escriba un Algoritmo y su Diagrama, que dado como entrada un arreglo unidimensional que contiene nmeros enteros, determine cuntos de ellos son positivos, negativos o nulos.

27.- Escribir un Algoritmo y su Diagrama que permita calcular el cuadrado de los cien primeros nmeros enteros y a continuacin escribir una tabla que contenga dichos cien nmeros cuadrados.

28.- Desarrollar un Algoritmo y su Diagrama para calcular la suma de todos los elementos de un vector, as como la media aritmtica.

29.- Una empresa tiene diez almacenes y necesita crear un Algoritmo y su Diagrama que lea las ventas mensuales de los 10 almacenes, calcule la media de ventas y obtenga un listado de los almacenes cuyas ventas mensuales son superiores a la media.

30.- Se dispone de una tabla T de cincuenta nmeros reales distintos de cero. Crear una nueva tabla en la que todos sus elementos resulten de dividir los elementos de la tabla T por el elemento T(K), siendo K un valor dado.

31.- Desarrolle un Algoritmo y su Diagrama que cargue un vector A de N posiciones y permita encontrar todos los elementos iguales a 7 y qu posicin ocupan dentro del vector.

32.- Dados dos vectores de tipo entero A y B, construya un Algoritmo y su Diagrama que calcule el producto de dichos vectores.

33.- Se tienen tres arreglos A, B, C de M elementos. Se debe crear otro arreglo NUEV de tres elementos, donde cada elemento tenga la suma de los elementos de cada arreglo.

34.- Se tienen dos arreglos A y B de 20 elementos cada uno. Lea estos dos arreglos y calcule e imprima:

-Un arreglo S cuyos elementos tienen la siguiente forma general:

S(I) = A(I) + B(I) para todo valor de I

-Un arreglo D cuyos elementos tienen la forma general:

D(I) =A(I) B(I) para I par

-Un arreglo C cuyos elementos tienen la forma general:

C(I) = A(I) * B(I) para I impar

35.- Se tienen dos arreglos unidimensionales. Uno de ellos con N elementos y el otro con M elementos. Dichos elementos se encuentran ordenados de menor a mayor en ambos arreglos. Se pide formar otro arreglo de N + M elementos el cual contendr los elementos de los otros dos arreglos ordenados de menor a mayor.

36.- Escriba un Algoritmo y su Diagrama, que dados como dato una matriz A(NxN), escriba la diagonal principal de esta matriz.

37.- Construya un Algoritmo y su Diagrama que llene de ceros una matriz cuadrada A(NxN), excepto en la diagonal principal donde debe asignar 1.

38.- En el arreglo bidimensional TEMP de 12 filas y 31 columnas, se almacenaron las temperaturas promedio diarias del ao anterior, en la ciudad de Mxico. Escriba un Algoritmo y su Diagrama que permita calcular lo siguiente:

La temperatura ms alta registrada en el ao anterior y cul fue el da y mes en que se registr El mes que tuvo el promedio de temperaturas ms alto. El promedio mensual de temperaturas.

39.- Un tablero de damas es un arreglo de 8 filas por 8 columnas. Un uno (1) representa la presencia de una ficha roja en el tablero. Un dos (2) representa la presencia de una ficha negra en el tablero. Un tres (3) representa ausencia de ficha.

Se requiere calcular e imprimir:

El nmero de fichas rojas El nmero de fichas negras El nmero total de fichas.

40.- Lea una matriz de M filas y N columnas. Formar un arreglo unidimensional con los nmeros pares que se encuentran en la matriz. Imprima el arreglo resultante ordenado ascendentemente.

41.- Elabore un Algoritmo y su Diagrama para hacer lo siguiente:

Leer una matriz MAT de 20 filas por 30 columnas. Calcular e imprimir la suma de los elementos de la matriz. Calcular e imprimir el nmero de valores mltiplos de tres que hay en la matriz. Calcular e imprimir un arreglo L de 20 elementos, donde cada elemento de4l arreglo L se igual a la suma de los elementos de cada una de las filas de la matriz.

42.- Se tiene un almacn que vende tres artculos diferentes al siguiente precio:

Zapatos (Bs. 50000)Pantalones (Bs. 48000)Camisas (Bs. 18000)

Teniendo en cuenta el supuesto de que las cantidades vendidas de cada uno de ellos se suministrarn mediante una tabla, desarrollar un Algoritmo y su Diagrama para determinar:

El ingreso diario El ingreso total durante una semana.

43.- El Consejo Nacional Electoral, organismo encargado de realizar los procesos electorales a nivel nacional, requiere conocer cierta informacin estadstica del mes de mayo, respecto al nmero de inscritos.Dicho organismo desea cuantificar

El nmero de personas inscritas en el mes. El nmero de personas inscritas en cada una de las semanas del mes Y por ltimo desea determinar cul de los das de inscripcin resulta ms efectivo, es decir, reporta mayor cantidad de inscritos.

DATOS SUMINISTRADOS

Dia de la SemanaLUNESMARTESMIRCOLESJUEVESVIERNES

120004000300025005000

220003000200025004500

312005000320040003000

430002500700020002550

Universidad de CaraboboFacultad de Ciencias de la EducacinPg.6