Introduccion a la estructura de datos y Algoritmos

Views:
 
Category: Education
     
 

Presentation Description

programacion

Comments

Presentation Transcript

Algoritmos Y Estructura de Datos:

Algoritmos Y Estructura de Datos Lic. Vladimir N. Cotaquispe Gutiérrez

PowerPoint Presentation:

“En el Gran Templo de Benares , bajo el domo que marca el centro del mundo, descansa un plato de bronce en el que están fijas tres agujas de diamante, cada una de un cúbito de largo y tan delgadas como el cuerpo de una abeja. En una de estas agujas Dios colocó sesenta y cuatro discos de oro puro, el disco más largo descansa sobre el plato y sobre éste está uno más pequeño y así sucesivamente hasta la punta. Esta es la Torre de Brahma. Día y noche, incesantemente, los sacerdotes transfieren los discos de una aguja a otra, de acuerdo a fijas e inmutables leyes que requieren que el sacerdote en turno no mueva mas que un disco a la vez y que el disco se coloque en un aguja de tal forma que no haya un disco más pequeño bajo éste. Cuando los sesenta y cuatro discos hayan sido transferidos de la aguja donde Dios los colocó a una de las otras, los brahmanes se convertirán en polvo , y con un trueno el mundo se desvanecerá.” Edouard Lucas, 1883.

PowerPoint Presentation:

Nadie sabe si la leyenda anterior es verdadera o no, pero ésta inspiró al francés Edouard Lucas a desarrollar el conocido juego “Las Torres de Hanoi ”. Esta historia será el vehículo que nos introducirá en uno de los más interesantes y apasionantes temas de la teoría de la computación: el desarrollo de algoritmos.

PowerPoint Presentation:

Si le preguntamos a un informático si conoce el problema de Las Torres de Hanoi casi con toda seguridad nos responderá afirmativamente, ya que se trata de uno de los problemas más conocidos en el mundo de la programación , y es que es usado a menudo para explicar la recursividad . Pero fuera de este ámbito es mucho menos conocido .

PowerPoint Presentation:

Imaginate que tenemos tres varas verticales , y en una de ellas apilamos un número indeterminado de discos de forma que su diámetro es más decreciente cuanto más alto esté , y las otras dos varillas están vacías . El juego consiste en pasar todos los discos de la varilla ocupada a cualquiera de las otras , pero siguiendo 3 simples reglas :

PowerPoint Presentation:

1. Sólo se puede coger un disco en cada movimiento 2. Un disco no puede descansar sobre otro más pequeño 3 . Sólo se pueden coger los discos que estén en la cima de las 3 varillas Existen diversas formas de realizar la solución final, pero nos encontramos con que aunque éstas son fáciles de calcular el número de pasos para resolver el problema, en el mejor de los casos, crece exponencialmente conforme aumenta el número de discos a mover*.

PowerPoint Presentation:

Teniendo en cuenta que el mínimo número de movimientos que se necesita para resolver este problema es de 2 64 -1 , si la leyenda fuera cierta y los monjes hicieran un movimiento por segundo (no un día como dicta la leyenda), los 64 discos estarían en la tercera varilla en algo menos de 585 mil millones de años . ¿Se atreverias a resolver el problema de las Torres de Hanoi ?

PowerPoint Presentation:

Solución: La solución es sencilla. las secuencias de movimientos son siempre las mismas. En función de si el numero de anillas es impar, el primer movimiento es a la varilla en la que queramos colocar la última. Con el video se ve más fácil. Con 4 anillas (par) la anilla más grande ira a la varilla contraria en la que coloquemos la anillas más pequeña . http://www.youtube.com/watch?feature=player_embedded&v=bw_1YrueySk

Fundamentos de Estructura de Datos:

Fundamentos de Estructura de Datos

Introducción:

Introducción Las computadoras … herramienta… operaciones de alta complejidad… La mayoría de las aplicaciones son de almacenamiento y acceso a grandes cantidades de información La información… conjunto de datos… pueden ser simples (enteros, reales, booleanos, etc.) o estructurados Los datos simples … ocupan una sólo una localidad de memoria Los estructurados… conjunto de casillas de memoria a las cuales hacemos referencia mediante un identificador único. Por lo general tenemos que tratar con conjuntos de datos y no con datos simples que por sí solos no nos dicen nada. Fundamentos de estructura de datos

Introducción:

Introducción Fundamentos de estructura de datos

Introducción:

Introducción Datos: Conjunto de hechos, de números, o de símbolos que usan y manipulan los programas de computadora Estructura de datos: Datos que denotan un conjunto de hechos, que pueden servir como operandos a un programa de computadora y cuya estructura es la manifestación de las relaciones (si las hay) entre elementos individuales de aquel conjunto Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos BIT ( binary digit : dígito binario) La información es digital en el mundo de las computadoras. Una computadora no entiende palabras, números, imágenes, notas musicales, ni siquiera las letras del alfabeto es la unidad de información más pequeña. Un bit sólo puede tener uno de dos valores: encendido o apagado. También se pueden considerar estos valores como sí o no, cero o uno, blanco o negro, o casi cualquier otra cosa que se le ocurra, que sea dicotómica por supuesto. Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos BIT ( binary digit : dígito binario) ¿Qué significa para la computadora una combinación de bits como 01100110 ? Un número, una letra del alfabeto o casi cualquier cosa. Los bits como números Los bits como Códigos ASCII (American Standard Code for Information Interchange ) 128 caracteres del código ASCII no son suficientes, nuevos esquemas de codificación. 65 000 caracteres de UniCode Los bits como instrucciones en los programas Decimal Binaria 0 00 1 01 2 10 3 11 Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos BYTE colección de ocho bits Representa 256 mensajes (256 = 2 8 ) carácter de información Kb (kilobyte): 1024 bytes: 2 10 , 1000 aproximación Mb (megabyte): aproximadamente un millón de bytes (1024*1024) Gb (gigabyte): aproximadamente 1000 megabytes Terabyte: son 1.024 GigaBytes , cerca de un billón (un millón de millones) de bytes. Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos CARÁCTER (CHAR) comprende un conjunto de caracteres imprimibles: las letras mayúsculas y minúsculas, los dígitos, el espacio en blanco, los caracteres de puntuación (+ - * / ! @ # $ % ^& _ = ...) y un conjunto de caracteres gráficos del 0 al 255 del codigo ascii (byte) Char c; int c; char c=97 == char c= ‘a’ Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos CARÁCTER (CHAR) Lamentablemente existen caracteres no imprimibles Fundamentos de estructura de datos

Presentación de datos:

Presentación de datos PALABRA es una secuencia finita de símbolos tomados del tipo primitivo carácter incluyendo la cadena nula o vacía. Por lo general el inicio y el final de una cadena lo delimitaremos con un apóstrofe (’). Cada cadena tiene un atributo llamado longitud, el cual es el número de caracteres en la misma. Fundamentos de estructura de datos

Manejo y operación con caracteres:

Sistema decimal a binario Convierte 32, 147, 43, 80, 75, 12, 145, 1, 0 , 19 a código Binario y ASCII mediante una tabla Manejo y operación con caracteres Decimal Bits (Byte) ASCII 45 0 0 1 0 1 1 0 1 -

Manejo y operación con caracteres:

Sistema binario a decimal Convierte 10011110, 00010001, 00100110, 1110, 111011101110, 10110110, 0, 10, 1 a decimal y ASCII Manejo y operación con caracteres Bits (Byte) Decimal ASCII 1 1 0 0 1 0 1 1 203 ╦

Empaque y desempaque de bits y caracteres:

Empaque y desempaque de bits y caracteres Convierte las siguientes palabras a código binario: fin, sol, escuela y LIBRO. Y de binario a texto la palabra: Ejemplo de una frase con caracteres no imprimibles Mensaje de texto Código Decimal Código binario Hola Don Pepito 72; 111; 108; 97; 32; 68; 111; 110; 32; 80; 101; 112; 105; 116; 111 1001000; 1101111; 1101100; 1100001; 100000; 1000100; 1101111; 1101110; 100000; 1010000; 1100101; 1110000; 1101001; 1110100; 1101111

Manejo y operación de bits:

Manejo y operación de bits Operadores AND (*) OR (+) EXOR C = A << B ó C = A >> B

Manejo y operación de bits:

Manejo y operación de bits Suma binaria Suma la representación en binario de: 5+10 y 64 + 32 Resta binaria Resta la representación en binario de 128 - 64

Presentación de números enteros y reales:

Presentación de números enteros y reales Números enteros Pueden almacenar únicamente valores numéricos sin decimales . El tipo entero básico es int (-32768 a 32767). Existen además las variantes shortint (-128 a 127) , que permite almacenar valores más pequeños (con el subsecuente ahorro de espacio en memoria) y el longint , que soporta números más grandes (pero con mayor gasto de memoria) (-4294967296 a 4294967295).

Presentación de números enteros y reales:

Presentación de números enteros y reales Números Reales Pueden almacenar valores numéricos con decimales. El tipo real básico es float (con 7 decimales de aproximación). Existe también la variante double (16 decimales de aproximación). Sin embargo, el uso de este tipo provoca un mayor gasto de memoria que si se empleara el tipo básico float (4 bytes) . La cantidad de decimales, así como el valor máximo que se puede almacenar en variables de estos tipos depende de la arquitectura del computador y del compilador que se estén empleando.

Estructuras:

Estructuras Definición: Tipo de dato estructurado construidos a partir de otros tipos de datos. Tipo de datos fecha. 05 / 08 / 10 Tipo de datos dirección Calle: Riberas del Atoyac Numero: 137 Colonia: Sta. Cruz CP: 68285

Estructuras:

Estructuras Clasificación de estructuras de datos Tipo de datos: Homogéneas y heterogenias Por la forma de acceso a la estructura acceso por nombre, (p. e. los registros). acceso por posición, (el primero, el último, etc.). Ejemplos pueden ser las estructuras matriciales (matrices, vectores, etc.), las Pilas y las Colas acceso por clave, es preciso conocer únicamente el contenido de uno de sus campos, (p. e. árboles)

Estructuras:

Estructuras Clasificación de estructuras de datos Por la forma de almacenamiento Estáticas . Los ejemplos más típicos son los arrays y registros. Dinámicas, a cceso se realiza de forma secuencial

Estructuras:

Estructuras Tipos de datos Entero Punto flotante

Estructuras:

Estructuras Organización física de la memoria RAM, ROM, CACHE, Externo compilador

Estructuras:

Estructuras Sintaxis par la declaración de una estructura Struct <nombre de la estructura> { <Tipo de dato> <nombre> <Tipo de dato> <nombre> … <Tipo de dato> <nombre> }

Estructuras:

Estructuras Las estructuras son una forma de agrupar datos que pueden ser de diferentes tipos. También se les llama registros. Ejemplo: Declaración struct estudiante { char nombre[50]; int edad[3]; char direccion [20]; }estudiante; Ejemplo definición struct estudiante asistencias, colegiatura; Utilizando estructuras o registros se pueden generar arreglos u otras estructuras mas complejas.

Procesos básicos:

Procesos básicos Asignación: La estructura es un tipo similar a un int o un char , se puede asignar una estructura a otra asistencia = colegiatura; Inicialización de una declaración struct estudiante { char nombre[50]; int edad; char direccion [20]; float calificacion ; }asistencia={“tomas”,29,”reforma agraria”,8.5};

Procesos básicos:

Procesos básicos Tamaño ( sizeof ) : Este operador se aplica sobre un tipo de datos o sobre una variable. # include < stdio.h > # include < conio.h > /* declara la estructura persona*/ struct persona { char nombre[30]; int edad; float altura; float peso; }; int main () { struct persona alumno; printf (" sizeof (persona): %d\ n",sizeof (alumno)); getch (); } Persona Dato Tamaño Nombre Char (1) 30 Edad Int (2) 2 Altura Float (4) 4 Peso Float (4) 4 total 40

Procesos básicos:

Procesos básicos Acceso Acceder o almacenar información en una estructura se realiza de dos formas: Utilizando el operador punto (.) Utilizando el operador puntero -> Sintaxis <nombre variable estructura>.<nombre miembro>=datos; Ejemplos Strcopy ( persona.nombre,”tomas ”); Persona.edad = 29; persona.altura = 1.65; Persona.peso = 90;

Procesos básicos:

Procesos básicos Acceso mediante operador puntero El operador -> sirve a partir de un puntero Definir una variable puntero a la estructura A partir de la estructura estudiante declarada anteriormente Crear espacio de almacenamiento en memoria con la función malloc () Struct estudiante * ptr_est ; Struct estudiante mejor; Ptr_est = &mejor; Strcpy ( ptr_est -> nombre, “Tomas Toledo Lagunas”); Ptr_est -> edad = 29; Strcpy ( ptr_est -> direccion , “reforma agraria”); Ptr_est -> calificacion = 9.8

Procesos básicos:

Procesos básicos Lectura Se realiza la lectura de una estructura mediante un operador de asignación o una sentencia de salida ( printf (), puts (),…). Se puede emplear el operador punto o flecha. Sintaxis <variable> = <variable estructura> . <miembro> años=persona . edad; <variable> = <puntero estructura> -> <miembro> años= ptr -> edad; Printf (“ ”, <variable estructura> . <miembro>) Printf (“La edad es: %d ”, persona . edad) Printf (“ ”, <puntero estructura> -> <miembro>) Printf (“La edad es: %d ”, ptr . edad)

Tarea:

Tarea Escribe un programa de información de alumnos. Los alumnos tendrán: nombre, edad, licenciatura, semestre y promedio. Declarar alumno como estructura. El programa debe generar a diversos alumnos, mínimo 5, y mostrara la información de cada uno de ellos.

¿Qué es una estructura de datos? :

¿Qué es una estructura de datos? Se trata de un conjunto de variables de un determinado tipo agrupadas y organizadas de alguna manera para representar un comportamiento. Lo que se pretende con las estructuras de datos es facilitar un esquema lógico para manipular los datos en función del problema que haya que tratar y el algoritmo para resolverlo. En algunos casos la dificultad para resolver un problema radica en escoger la estructura de datos adecuada. Y, en general, la elección del algoritmo y de las estructuras de datos que manipulará estarán muy relacionadas.

PowerPoint Presentation:

Según su comportamiento durante la ejecución del programa distinguimos estructuras de datos: - Estáticas: su tamaño en memoria es fijo. Ejemplo: arrays . - Dinámicas: su tamaño en memoria es variable. Ejemplo: listas enlazadas con punteros, ficheros, etc. Las estructuras de datos que trataremos aquí son los arrays , las pilas y las colas, los árboles, y algunas variantes de estas estructuras.

Algoritmos:

Algoritmos

¿Qué es un algoritmo?:

¿Qué es un algoritmo ? Una definición informal (no se considera aquí una definición formal, aunque existe): conjunto finito de reglas que dan una secuencia de operaciones para resolver todos los problemas de un tipo dado. De forma más sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato. Además debe cumplir estas condiciones:

PowerPoint Presentation:

· Finitud : el algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un número razonable de pasos. · Definibilidad : el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador. ·

PowerPoint Presentation:

Entrada : el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador. ·

PowerPoint Presentation:

Salida : el algoritmo tiene una o más salidas, en relación con las entradas. · Efectividad : se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito. A menudo los algoritmos requieren una organización bastante compleja de los datos, y es por tanto necesario un estudio previo de las estructuras de datos fundamentales.

PowerPoint Presentation:

Dichas estructuras pueden implementarse de diferentes maneras, y es más, existen algoritmos para implementar dichas estructuras. El uso de estructuras de datos adecuadas pueden hacer trivial el diseño de un algoritmo, o un algoritmo muy complejo puede usar estructuras de datos muy simples.

PowerPoint Presentation:

Uno de los algoritmos más antiguos conocidos es el algoritmo de Euclides. El término algoritmo proviene del matemático Muhammad ibn Musa al- Khwarizmi , que vivió aproximadamente entre los años 780 y 850 d.C. en la actual nación Iraní. El describió la realización de operaciones elementales en el sistema de numeración decimal. De al- Khwarizmi se obtuvo la derivación algoritmo .

Clasificación de algoritmos:

Clasificación de algoritmos Algoritmo determinista: en cada paso del algoritmo se determina de forma única el siguiente paso . Algoritmo no determinista: deben decidir en cada paso de la ejecución entre varias alternativas y agotarlas todas antes de encontrar la solución.

PowerPoint Presentation:

Todo algoritmo tiene una serie de características, entre otras que requiere una serie de recursos, algo que es fundamental considerar a la hora de implementarlos en una máquina. Estos recursos son principalmente: · El tiempo: período transcurrido entre el inicio y la finalización del algoritmo. · La memoria: la cantidad (la medida varía según la máquina) que necesita el algoritmo para su ejecución. Obviamente , la capacidad y el diseño de la máquina pueden afectar al diseño del algoritmo.

PowerPoint Presentation:

En general, la mayoría de los problemas tienen un parámetro de entrada que es el número de datos que hay que tratar, esto es, N . La cantidad de recursos del algoritmo es tratada como una función de N. De esta manera puede establecerse un tiempo de ejecución del algoritmo que suele ser proporcional a una de las siguientes funciones:

PowerPoint Presentation:

1 : Tiempo de ejecución constante. Significa que la mayoría de las instrucciones se ejecutan una vez o muy pocas. logN : Tiempo de ejecución logarítmico. Se puede considerar como una gran constante. La base del logaritmo (en informática la más común es la base 2) cambia la constante, pero no demasiado. El programa es más lento cuanto más crezca N, pero es inapreciable, pues logN no se duplica hasta que N llegue a N 2 .

PowerPoint Presentation:

N : Tiempo de ejecución lineal. Un caso en el que N valga 40, tardará el doble que otro en que N valga 20. Un ejemplo sería un algoritmo que lee N números enteros y devuelve la media aritmética. N·logN : El tiempo de ejecución es N·logN . Es común encontrarlo en algoritmos como Quick Sort y otros del estilo divide y vencerás. Si N se duplica, el tiempo de ejecución es ligeramente mayor del doble.

PowerPoint Presentation:

N 2 : Tiempo de ejecución cuadrático. Suele ser habitual cuando se tratan pares de elementos de datos, como por ejemplo un bucle anidado doble. Si N se duplica, el tiempo de ejecución aumenta cuatro veces. El peor caso de entrada del algoritmo Quick Sort se ejecuta en este tiempo. N 3 : Tiempo de ejecución cúbico. Como ejemplo se puede dar el de un bucle anidado triple. Si N se duplica, el tiempo de ejecución se multiplica por ocho.

PowerPoint Presentation:

2 N : Tiempo de ejecución exponencial. No suelen ser muy útiles en la práctica por el elevadísimo tiempo de ejecución. El problema de la mochila resuelto por un algoritmo de fuerza bruta -simple vuelta atrás- es un ejemplo. Si N se duplica, el tiempo de ejecución se eleva al cuadrado.

PowerPoint Presentation:

Algoritmos polinomiales : aquellos que son proporcionales a N k . Son en general factibles . Algoritmos exponenciales: aquellos que son proporcionales a k N . En general son infactibles salvo un tamaño de entrada muy reducido.

Clasificación de problemas:

Clasificación de problemas Los problemas matemáticos se pueden dividir en primera instancia en dos grupos: Problemas indecidibles: aquellos que no se pueden resolver mediante un algoritmo . Problemas decidibles : aquellos que cuentan al menos con un algoritmo para su cómputo.

PowerPoint Presentation:

Sin embargo, que un problema sea decidible no implica que se pueda encontrar su solución, pues muchos problemas que disponen de algoritmos para su resolución son inabordables para un computador por el elevado número de operaciones que hay que realizar para resolverlos. Esto permite separar los problemas decidibles en dos:

PowerPoint Presentation:

intratables : aquellos para los que no es factible obtener su solución . tratables : aquellos para los que existe al menos un algoritmo capaz de resolverlo en un tiempo razonable. Los problemas pueden clasificarse también atendiendo a su complejidad . Aquellos problemas para los que se conoce un algoritmo polinómico que los resuelve se denominan clase P . Los algoritmos que los resuelven son deterministas

PowerPoint Presentation:

.Para otros problemas, sus mejores algoritmos conocidos son no deterministas. Esta clase de problemas se denomina clase NP . Por tanto, los problemas de la clase P son un subconjunto de los de la clase NP , pues sólo cuentan con una alternativa en cada paso.

Algoritmos:

Algoritmos Un algoritmo es un grupo de instrucciones que definen la secuencia de operaciones a realizar para resolver una clase de problema. Secuencia ordenada de pasos que nos sirve para resolver un problema. 61

Medios de expresión de un algoritmo :

Medios de expresión de un algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación. 62

Pseudocodigo:

Pseudocodigo

PowerPoint Presentation:

En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal.

Ventajas de utilizar un Pseudocódigo :

Ventajas de utilizar un Pseudocódigo Ocupa menos espacio en una hoja de papel Permite representar en forma fácil operaciones repetitivas complejas Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de programación. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.

Diagramas estructurados (Nassi-Schneiderman):

Diagramas estructurados ( Nassi-Schneiderman ) El diagrama estructurado N-S también conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la siguiente forma:

Estructuras Algorítmicas :

Estructuras Algorítmicas Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Algoritmos:

Algoritmos Ejemplo 1 Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga a razón de 2% mensual. Solución: 1 Inicio 2 Leer cap_inv 3 gan = cap_inv * 0.02 4 Imprimir gan 5 Fin 70

Algoritmos:

Algoritmos Ejemplo 2 Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. Solución: Inicio Leer sb, v1, v2, v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Imprimir tpag, com Fin 71

Algoritmos:

Algoritmos Ejemplo 3 Se cuenta con las notas del EP, EF y PP de un alumno. Se sabe que el promedio final (PF) se calcula con la fórmula: PF=(EP+ PP+2EF)/4 Si el alumno cumple con la siguiente condición: PP>6.1 y PF> 6.1 tiene opción a rendir un examen sustitutorio (ES). Escriba un algoritmo reciba las notas del alumno y luego muestre un mensaje indicando si el alumno puede rendir o no puede rendir el ES. En el caso que ya no pueda rendir el ES, debe mostrar también el PF 72

Algoritmos:

Algoritmos Solución Análisis Datos de entrada:EP , EF, PP Salida: mensaje y PF (si no puede rendir ES) Algoritmo Inicio del algoritmo Ingresar las notas del alumno: EP, EF y PP Calcular PF con la siguiente fórmula: PF = (EP + 2EF + PP)/4 Si cumple la condición PP> 6.1 y PF>6.1entonces mostrar el mensaje “Puede rendir el ES” Si no cumple la condición entonces mostrar el mensaje “No puede rendir ES” y mostrar PF Fin del algoritmo. 73

authorStream Live Help