manual de algoritmos

54
AÑO DE LA INTEGRACIÓN NACIONAL Y EL RECONOCIMIENTO DE NUESTRA DIVERSIDAD Nombres: Verónica Nathalie Apellidos: Córdova coronel Profesora: Nerita Tarrillo Dávila Curso: Computación Grado y sección: 4to “B”

description

este manual te ayudara a saber mas sobre los algoritmos

Transcript of manual de algoritmos

AÑO DE LA INTEGRACIÓN NACIONAL Y EL

RECONOCIMIENTO DE NUESTRA

DIVERSIDAD

Nombres:

Verónica Nathalie

Apellidos:

Córdova coronel

Profesora:

Nerita Tarrillo Dávila

Curso:

Computación

Grado y sección:

4to “B”

Dedicatoria: Dedico este Trabajo a mi profesora Nerita Tarrillo Dávila Ya que gracias a su dedicación, empeño, esfuerzo, por cada uno de nosotros, sus conocimientos dados lo estamos poniendo a la práctica y estamos seguros que nos servirá para el buen futuro .

También para mis queridos padres por su esfuerzo y su confianza hacia mi persona y a Dios que todo lo ve y todo lo sabe.

Presentación

El taller de computación corresponde a la dimensión desarrollada en todo el segundo bimestre que forma parte de la formación de conocimientos básicos para los jóvenes de educación secundaria .Se centra en conocimientos ,como algoritmos ,estructuras condicionales ,diagramas de flujo de dato etc. que permitirá desarrollar en cada uno de nosotros competencias para que logren desarrollar , potencialidades . Busca desarrollar en cada uno de nosotros competencias para que logren desarrollar, comprender y expresar , distintas situaciones comunicativas y con diversos interlocutores , asi mismo ayude a desarrollar algunos inquietudes de los estudiantes y satisfacer sus necesidades .

El presente manual está distribuido de la siguiente manera :

� Conociendo los algoritmos

La habilidad para manejar algoritmos tiene un valor estratégico en el uso de la computadora como herramienta para resolver

un problema.

� Variables constantes tipos de datos con expresiones con operadores

� Diagrama de flujo de datos � Solucionando problemas con flujo de datos � Estructuras condicionales simples, múltiples y dobles � etc.

Sesión 1:”conociendo los algoritmos”

Algoritmos

1.¿Qué es un algoritmo?

La habilidad para manejar algoritmos tiene un valor estratégico en el uso de la computadora como herramienta para resolver un problema, después de cómo se ha dicho para resolverlo.

Un algoritmo se transforma en una herramienta de una computadora cuando se han preparado instrucciones adecuadas para que la computadora pueda llevarlos a cabo .

Estas instrucciones deberán deberán comunicarse a la computadora en un lenguaje que puede “entenderse “ , tal lenguaje se conoce como lenguaje de programación .

Un algoritmo se define como un conjunto de instrucciones para resolver un problema. En otros términos, un algoritmo es una sola prescripción determinante de un proceso de cálculo que , partiendo de diversos datos iníciales conduce a todos los casos al

resultado que le corresponde .

2 .Propiedades de un algoritmo

Las propiedades de un algoritmos son puntos guía a seguir para su elaboración, ya que estos llevan un mejor desarrollo del problema del computador. Sus propiedades son:

2.1 Enunciado del problema:

El enunciado el problema debe ser claro y completo .Es importante que conozcamos exactamente que se desea del computador. Mientras esto no se comprenda no tiene caso de pasar a la siguiente etapa.

2.2 Análisis de la solución general:

Entendido el problema. Para resolver es preciso analizar.

Los datos o resultados que se esperan.

Los datos de entrada que nos suministran.

El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.

Aéreas de trabajo, formulas y recursos necesarios.

Una recomendación, muy practica es el que nos pongamos en el lugar del computador y analizamos que necesito que me ordenen y en que secuencia, para poder producir los resultados esperados.

2.3 diferentes alternativas de solución:

Analizando el problema, posiblemente tengamos varias formas de resolverlo.

L o importante es determinar cuál es la mejor alternativa: la que producen los resultados esperados en el menor tiempo o al menor costo.

3. Elaboración de algoritmos

Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo la elaboración de un algoritmo a través de un problema.

Se recomienda tomar en cuenta cada una de las propiedades de un algoritmo, ya que de ahí se inicia el proceso de elaboración.

A continuación se mostrara el desarrollo de un problema con su respectivo algoritmo como solución.

Supongamos que se necesita calcular e imprimir el área de un triangulo cuya base y altura se suministran de un disco.

Procedimiento:

Escribir correctamente el enunciado del problema

“Calcular e imprimir el área de un triángulo cuya base y altura se enunciaran de un disco .

1.-Análisis:

1¿Qué se quiere?¿Cómo se quiere?

¿Qué deseo obtener?

-¿Que se quiere? quiero calcular el área de un triangulo

-¿Cómo se quiere?

Lo quiero calcular a través de una formula

Área del triangulo: Base x Altura/2

- ¿Qué deseo obtener?

Imprimir el área de triangulo y subministrar los resultados en un disco.

2.-Solución:

Variables utilizadas en esta solución:

Da lectura

Para almacenar

-Base -Altura

-El valor correspondiente de la base del triangulo -El valor correspondiente a la altura de un triangulo

Sesión 2:” Variables, constantes, tipos de datos, expresiones, operadores “

Tipos de datos primitivos

Java tiene énfasis en los tipos (strongly-typed), lo cual significa que todas las variables deben primero declararse antes de que puedan usarse. Esto comprende declarar el tipo y el nombre de la variable, como ya ha visto:

Int gear = 1;

Esto le dice a su programa que un campo llamado "gear" ("engrane") existe, mantiene datos numéricos, y tiene un valor inicial de "1". El tipo de datos de una

variable determina los valores que puede contener, además de las operaciones que pueden efectuarse sobre este. Además de int, Java soporta otros tipos de datos primitivos. Un tipo primitivo está predefinido por el lenguaje y se nombra por una palabra reservada. Los valores primitivos no comparten estado con otros valores primitivos. Los ocho tipos de datos primitivos soportados por Java son:

� byte: Es un entero de complemento de dos de 8 bits con signo. Tiene un valor mínimo de -128 y un valor máximo de 127 (inclusive). El tipo de datos byte puede ser útil para guardar memoria en arreglos grandes, donde el ahorro de memoria realmente importa. Pueden usarse en lugar de int cuando sus límites ayudan a aclarar su código; el hecho de que el rango de una variable esté limitado puede servir como una forma de documentación.

� short: Es un entero de complemento de dos de 16 bits con signo. Tiene un valor mínimo de -32,768 y un valor máximo de 32,767 (inclusive). Como con el byte, las mismas guías aplican: puede usar un short para guardar memoria en arreglos grandes, en situaciones en las que el ahorro de memoria importa.

� int: El tipo de datos int es un entero de complemento de dos de 32 bits con signo. Tienen un valor mínimo de -2, 147, 483,648 y un valor máximo de 2, 147, 483,647 (inclusive). Para valores integrales, este tipo de datos es generalmente la opción por defecto a menos que

haya una razón (como la anterior) para escoger algo más. Este tipo de datos muy probablemente será suficientemente grande para los números que su programa usará, pero si necesita un valor más amplio de valores, use Long en su lugar.

� Long: El tipo de datos Long es un entero de complemento de dos de 64 bits. Tiene un valor mínimo de -9,223,372,036,854,775,808 y un valor máximo de 9,223,372,036,854,775,807 (inclusive). Use este tipo de datos cuando necesite un rango de valores más amplio que el proveído por int.

� float: Es un número de punto flotante de 32 bits estándar con IEEE 754. Su rango de valores va más allá de esta discusión, pero se especifica en la sección4.2.3 de la Especificación del Lenguaje Java. Como con las recomendaciones para byte y short, use un float (en lugar de double) si necesita guardar memoria en arreglos grandes de números de punto flotante. Este tipo de datos nunca debería usarse para valores precisos, como monedas. Para eso, necesitará usar la clase java.math.BigDecimal en su lugar. Objetos de Datos Simples cubre BigDecimal y otras clases útiles proveídas por la plataforma Java.

doublé: Es un número de punto flotante de 64 bits estándar con IEEE 754. Su rango de valores va más allá del alcance de esta discusión, pero se especifica en la sección 4.2.3 de la Especificación del Lenguaje Java. Para valores decimales, este tipo de datos es generalmente la opción por defecto. Como se mencionó anteriormente, este tipo de datos no debería

nunca usarse para valores precisos, tales como monedas.

� boolean: Este tipo de datos tiene solo dos posibles valores: true (verdadero) y false (falso). Use este tipo de datos para banderas simples que controlan condiciones verdaderas/falsas. Este tipo de datos representa un bit de información, pero su "tamaño" no es algo que esté precisamente definido.

� char:Este es un carácter Unicode de 16 bits. Tiene un valor mínimo de '\u0000' (o 0) y un valor máximo de '\uffff' (o 65,535 inclusive).

Valores Predeterminados

No siempre es necesario asignar un valor cuando se declara un campo. Los campos que se declaran pero no se inicializan se establecerán a un valor predeterminado razonable por el compilador. Generalmente hablando, este valor por defecto será cero o null, dependiendo del tipo de datos. Depender de tales valores predeterminados, sin embargo, se considera un mal estilo de programación.

El siguiente cuadro resume los valores predeterminados para los tipos de datos anteriores.

Las variables locales son ligeramente diferentes, el compilador nunca asigna un valor predeterminado a una variable local sin inicializar. Si no puede inicializar su variable local donde se declara, asegúrese de asignarle un valor antes de intentar usarla. Acceder una

variable sin inicializar resultará en un error de tiempo de compilación.

Literales

Usted puede haber notado que la palabra clave new no se usa cuando se instancia una variable de tipo primitivo. Los tipos primitivos son tipos especiales de datos que existen dentro del lenguaje; no son objetos creados a partir de una clase. Un literal es la representación de código fuente de un valor fijo; los literales se representan directamente en su código sin requerir computación. Como se muestra a continuación, es posible asignar unilateral a una variable de un tipo primitivo:

Boolean resultado = true;

Char mayusculaC = 'C';

Byte b = 100;

Short s = 10000;

Int i = 100000;

Los tipos integrales (byte, short, int, y long) pueden expresarse usando sistemas numéricos decimales, octales o hexadecimales. El sistema decimal es el que usa diariamente; está basado en 10 digits, que van del 0 al 9. El sistema octal es base 8, consistiendo de los dígitos 0 al 7. El sistema hexadecimal es base 16, cuyos dígitos son los números 0 al 9 y luego las letras A hasta la F. Para programación de propósito general, el sistema decimal

es probablemente el único sistema de numeración que usará alguna vez. Sin embargo, si necesita octal o hexadecimal, el siguiente ejemplo le muestra la sintaxis correcta. El prefijo 0 indica octal, mientras que 0x indica hexadecimal.

Los tipos de punto flotante (float y double) pueden también expresarse usando E o (para la notación científica), F o f (literales flotantes de 32 bits) y D o d (literal doble de 64 bits; este es el predeterminado y por convención se omite).

Los literales de tipo char y String pueden contener cualquier carácter Unicode (UTF-16). Si su editor y sistema de archivos lo permiten, puede usar tales caracteres directamente en su código. Sino, puede usar un "escape de Unicode" tal como '\u0108' (C mayúscula con "colilla"), o "S\u00ED se\u00F1or" (Sí Señor en Español). Siempre use comillas simples' para literales char literals y "comillas dibles" para literales String. Las secuencias de escape Unicode pueden usarse en cualquier lugar en el programa (como en nombres de campo, por ejemplo), y no solo en literales char o String.

También existe un literal especial null que puede usarse como un valor para cualquier tipo de referencia. null puede asignarse a cualquier variable, excepto variables de tipos primitivos. Hay poco que pueda hacer con un valor null más allá de comprobar su presencia. Por eso, null se usa a menudo en programas

como marcadores para indicar que ese objeto no está disponible.

http://redir.no-

ip.org/tutorial/java/nutsandbolts/datatypes.html

Sesión 3:”Diagrama de flujo de datos”

Expresiones lógicas

La lógica proposicional es la parte de la lógica que estudia la formación de proposiciones complejas a partir de proposiciones simples, y la inferencia de proposiciones a partir de proposiciones, pero sin tener en cuenta la estructura interna de las proposiciones más simples.1

Una lógica proposicional es un sistema formal cuyos elementos más simples representan proposiciones, y cuyas constantes lógicas, llamadas conectivas, representan operaciones sobre proposiciones, capaces de formar otras proposiciones de mayor complejidad.2

Considérese el siguiente argumento:

1. Mañana es miércoles o mañana es jueves. 2. Mañana no es jueves. 3. Por lo tanto, mañana es miércoles.

Es un argumento válido. Quiere decir que es imposible que las premisas sean verdaderas y la conclusión falsa. Esto no quiere decir que la conclusión sea verdadera. Si las premisas son falsas, entonces la conclusión también

podría serlo. Pero si las premisas son verdaderas, entonces la conclusión también lo es. La validez de este argumento no se debe al significado de las expresiones «mañana es miércoles» y «mañana es jueves», porque éstas podrían cambiarse por otras y el argumento permanecer válido. Por ejemplo:

1. Está soleado o está nublado. 2. No está nublado. 3. Por lo tanto, está soleado.

En cambio, la validez de estos dos argumentos depende del significado de las expresiones «o» y «no». Si alguna de estas expresiones se cambiara por otra, entonces podría ser que los argumentos dejaran de ser válidos. Por ejemplo:

1. Ni está soleado ni está nublado. 2. No está nublado. 3. Por lo tanto, está soleado.

Las expresiones de las que depende la validez de los argumentos se llaman constantes lógicas. La lógica proposicional estudia el comportamiento de algunas de estas expresiones, llamadas conectivas. En cuanto a las expresiones como "está nublado" o "mañana es jueves", lo único que importa de ellas es que tengan un valor de verdad. Es por esto que se las reemplaza por simples letras, cuya intención es simbolizar una expresión con valor de verdad cualquiera. A estas letras se las llama variables proposicionales, y en general se toman del alfabeto latino, empezando por la letra p, luego q, r, s, etc. Así, los dos primeros argumentos de esta sección podrían reescribirse así:

1. p o q

2. No q 3. Por lo tanto, p

Y el tercer argumento, a pesar de no ser válido, puede reescribirse así:

1. Ni p ni q 2. No q 3. Por lo tanto, p

Conectivas lógicas: A continuación hay una tabla que despliega todas las conectivas lógicas que ocupan a la lógica proposicional, incluyendo ejemplos de su uso en el lenguaje natural y los símbolos que se utilizan para representarlas.

En la lógica proposicional, las conectivas lógicas son tratados como funciones de verdad. Es decir, como funciones que toman conjuntos de valores de verdad y devuelven valores de verdad. Por ejemplo, la conectiva lógica no es una función que si toma el valor de verdad V, devuelve F, y si toma el valor de verdad F, devuelve V. Por lo tanto, si se aplica la función no a una letra que represente una proposición falsa, el resultado será algo verdadero. Si es falso que «está lloviendo», entonces será verdadero que «no está lloviendo».

El significado de las conectivas lógicas no es nada más que su comportamiento como funciones de verdad. Cada conectiva lógica se distingue de las otras por los valores de verdad que devuelve frente a las distintas combinaciones de valores de verdad que puede recibir. Esto quiere decir que el significado de cada conectiva lógica puede ilustrarse mediante una tabla

que despliegue los valores de verdad que la función devuelve frente a todas las combinaciones posibles de valores de verdad que puede recibir.

Negación Conjunción Disyunción Condicional Bicondicional

A continuación se presentan dos sistemas formales estándar para la lógica proposicional. El primero es un sistema axiomático simple, y el segundo es un sistema sin axiomas, de deducción natural.

Sistema axiomático

Alfabeto

El alfabeto de un sistema formal es el conjunto de símbolos que pertenecen al lenguaje del sistema. Si L es el nombre de este sistema axiomático de lógica proposicional, entonces el alfabeto de L consiste en:

� Una cantidad finita pero arbitrariamente grande de variables proposicionales. En general se las toma del alfabeto latino, empezando por la letra p, luego q, r, etc., y utilizando subíndices cuando es necesario o conveniente. Las variables proposicionales representan proposiciones como "está lloviendo" o "los metales se expanden con el calor".

� Un conjunto de operadores lógicos: � Dos signos de puntuación: los paréntesis izquierdo y

derecho. Su única función es desambiguar ciertas expresiones ambiguas, en exactamente el mismo

sentido en que desambiguan la expresión 2 + 2 ÷ 2, que puede significar tanto (2 + 2) ÷ 2, como 2 + (2 ÷ 2).

Gramática

Una vez definido el alfabeto, el siguiente paso es determinar qué combinaciones de símbolos pertenecen al lenguaje del sistema. Esto se logra mediante una gramática formal. La misma consiste en un conjunto de reglas que definen recursivamente las cadenas de caracteres que pertenecen al lenguaje. A las cadenas de caracteres construidas según estas reglas se las llama fórmulas. Las reglas del sistema L son:

1. Las variables proposicionales del alfabeto de L son fórmulas bien formadas.

2. Si es una fórmula bien formada de L, entonces también lo es.

3. Si y son fórmulas bien formadas de L, entonces , , y también lo son.

4. Sólo las expresiones que pueden ser generadas mediante las cláusulas 1 a 3 en un número finito de pasos son fórmulas bien formadas de L.

Según estas reglas, las siguientes cadenas de caracteres son ejemplos de fórmulas bien formadas:

Tablas de verdad

La tabla de verdad de una fórmula es una tabla en la que se presentan todas las posibles interpretaciones de las variables proposicionales que constituye la fórmula y el valor de verdad de la fórmula completa para cada interpretación. Por ejemplo, la tabla de verdad para la fórmula sería:

Como se ve, esta fórmula tiene 2n interpretaciones posibles —una por cada línea de la tabla—, donde n es el número de variables proposicionales (en este caso 3, es decir p, q, r) , y resulta ser una tautología, es decir que bajo todas las interpretaciones posibles de las variables proposicionales, el valor de verdad de la fórmula completa termina siendo V.

A menudo es necesario transformar una fórmula en otra, sobre todo

transformar una fórmula a su forma normal. Esto se consigue transformando la

fórmula en otra equivalente y repitiendo el proceso hasta conseguir una

fórmula que sólo use los conectivos básicos ( ). Para lograr esto se

utilizan las equivalencias lógicas:

Por ejemplo, considérese la siguiente fórmula:

La misma puede desarrollarse así:

Se dice que una fórmula está en forma normal disyuntiva (FND) si y sólo si tiene la siguiente forma:

donde cada A es una conjunción de fórmulas. Por ejemplo, la siguiente fórmula está en forma normal disyuntiva:

Se dice que una fórmula está en forma normal conjuntiva (FNC) si y sólo si tiene la siguiente forma:

donde cada A es una disjunción de fórmulas. Por ejemplo, la siguiente fórmula está en forma normal conjuntiva:

Por las leyes de De Morgan, es posible pasar de una forma normal disyuntiva a una forma normal conjuntiva y viceversa:

Las FNC y FND son mutuamente duales. La demostración hace uso de las leyes de De Morgan y

de la propiedad distributiva de la conjunción y la disyunción. Se debe cumplir que:

Y viceversa:

Sesión 4:”solucionando problemas con

diagramas de flujo de datos”

Diagrama de flujo de datos

Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación gráfica para la maceta del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre elsistema y las entidades externas. Este contexto a nivel de DFD se "explotó" para mostrar más detalles del sistema que se está modelando.

Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El antiguo sistema de diagramas de flujo de datos puede

ser elaborado y se comparó con el nuevo sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un sistema más eficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado puede determinarse a través de un diagrama de flujo de datos. Modelo de datos. Ejercicios Propuestos

1.-Calcular el número de pulsaciones que una persona debe tener por cada 10seg de ejercicios si la fórmula es:

� ‘’num_puls =(220 – edad) / 10’’

INICIO

X, N, P es real

Leer: edad: x

NP = (220 – x) / 10

Mostrar NP

FIN

2.-Calcular el nuevo salario de un obrero si obtuvo un incremento de 25% sobre su salario anterior.

INICIO

SA, T, SN es real

Leer: SA

A = (0,25 * SA)

SN = SA + T

Mostrar: SN

FIN

3.-Todos los lunes, miércoles y viernes una persona corre la misma distancia y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana.

INCIO

Lun, Mier, Vie, TP es real

Leer: Lun, Mier, Vie

TP = (lun + Mier + Vie) / 3

Mostrar: TP

FIN

4.-Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber el total que recibirá en el mes tomando en cuenta su sueldo básico y comisiones.

SB, C, T es real

X, es entero

Leer: SB, X

‘’ Mostrar T’’

FIN

T = SB + C

INICIO

C = 10 * X / 100

Sesión 5:”Integrando los aprendizajes I “

1.-Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber el total que recibirá en el mes tomando en cuenta su sueldo básico y comisiones.

SB, C, T es real

X, es entero

Leer: SB, X

‘’ Mostrar T’’

FIN

T = SB + C

INICIO

C = 10 * X / 100

2.- Calcular el nuevo salario de un obrero si obtuvo un incremento de 25% sobre su salario anterior.

INICIO

SA, T, SN es real

Leer: SA

A = (0,25 * SA)

SN = SA + T

Mostrar: SN

FIN

3.-Todos los lunes, miércoles y viernes una persona corre la misma distancia y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana.

INCIO

Lun, Mier, Vie, TP es real

Leer: Lun, Mier, Vie

TP = (lun + Mier + Vie) / 3

Mostrar: TP

FIN

4.-Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber el total que recibirá en el mes tomando en cuenta su sueldo básico y comisiones.

SB, C, T es real

X, es entero

Leer: SB, X

‘’ Mostrar T’’

FIN

T = SB + C

INICIO

C = 10 * X / 100

Sesión 6:” Creando diagramas con el flujo de datos software free DFD “

¿Qué es ‘’Free DFD’’?

Se podría resumir que el software Free DFD es un programa intérprete de diagramas de flujo. Sirve para editar, ejecutar y deputar algoritmos representados en Diagramas de Flujo.

Con este software diseñado especialmente para construir y analizar algoritmos. Usted puede crear diagrama de flujo de datos de manera sencilla y precisa.

� Ventajas:

Sin duda una de sus mayores ventajas sería que es un programa simple de usar, siempre y cuando sea explicado con precisión. Aparte de ser simple también es fácil de conseguir y descargar.

� Símbolos:

Cursor

Asignación

Ciclo Mientras

Ciclo Para

Decisión

Lectura o Entrada

Llamada

Salida

� El primer botón, se denomina Cursor, cuando este botón se encuentra

activado, se pueden hacer selecciones en el área de edición del

programa.

� El segundo botón, se denomina Asignación, y sirve para hacer

definición de variables en el programa de manera estática.

� El tercer botón, se denomina Ciclo Mientras, sirve para crear una

estructura repetitiva dentro del programa y ejecutar una serie de

instrucciones muchas veces seguidas, mientras se considere una

condición como verdadera.

� El cuarto botón, se denomina Ciclo Para, sirve para crear del mismo

modo que el ciclo mientras una estructura repetitiva dentro del

programa, para que se repitan una serie de instrucciones, solo que la

condición es diferente.

� El quinto botón, se denomina Decisión, sirve para tomar decisiones

simples dentro del programa, se ingresa dentro de la “decisión”, una

condición y dependiendo de si esa condición es falsa o verdadera, el

programa ejecutara una serie de instrucciones diferentes en cada

caso.

� El sexto botón, se denomina Lectura o Entrada, sirve para realizar

definiciones de variables de manera dinámica, en el momento en que

el programa está en ejecución.

� El séptimo botón, se denomina Salida, sirve para mostrar salidas por

pantalla de los diferentes procesos que se realizan con el programa, es

el único medio que tenemos para obtener resultados.

� El octavo botón, se denomina Llamada, sirve para hacer llamadas a

otros subprogramas.

Ejemplos:

• Hallar el cuadrado de un número, ingresado por

teclado

X = (núm) ^2

INICIO

Num X es entero

Leer num

X num ^ 2

Mostrar X

FIN

• Diseñar en DFD que te permita calcular la raíz cuadrada de un número y el resultado mostrado por impresión.

INICIO

Num Y es real

Leer num

Y = sqrt (num)

Y imprimir

FIN

Sesión 7:”estructuras condicionales simples, múltiples y dobles “

ESTRUCUTRAS CONDICIONALES MÚLTIPLES

Una instrucción condicional es aquella que nos permite

"preguntar" sobre el entorno que nos rodea, pudiendo

así actuar según la respuesta obtenida. Estas respuestas

siempre serán Verdadero o Falso, pudiendo así tomar,

en un principio, dos caminos diferentes.

Existen dos tipos de Estructuras Condicionales:

• Estructuras Condicionales Simples: También

conocida como ‘’Toma de Decisión’’ y su forma es

la siguiente:

• Estructuras condicionales Dobles:Nos dan la opción

de elegir entre dos opciones o alternativas y

función del cumplimiento o no de una determinada

condición.

• Estructura Condicional Múltiple: Este tipo de

estructura con se decisiones especializadas las

cuales permiten comparar una variable contra una

posible ejecutando una serie de instrucciones

específica.

Aquí tienes algunos modelos

PROBLEMAS:

• Realizar un programa que solicite ingresar dos

números distintos y muestre por pantalla el mayor

de ellos.

• Ingresar el sueldo de una persona, si supera los

3000 soles mostrar un mensaje en pantalla

indicando que debe abonar impuestos.

LINKOGRAFÍA

SEGUNDA SESIÓN

� Algoritmos http://es.wikipedia.org/wiki/Algoritmo

� Variable http://es.answers.yahoo.com/question/index?qid=20081121192854AA70VC6

� Tipos de Datos http://boards4.melodysoft.com/2004BFDP0302/re-datos-numericos-26.html http://boards4.melodysoft.com/2004BFDP0302/datos-logicos-6.html http://www.carlospes.com/curso_de_algoritmos/02_01_05_datos_de_tipo_cadena.php

� Operadores aritméticos

http://webdelprofesor.ula.ve/ingenieria/amoret/pd1/clase5.pdf

� Operadores Lógicos

http://www.slideshare.net/marichelogomez/operadores-lgicos-o-booleanos-presentation

� Operadores Relacionales

http://www.zator.com/Cpp/E4_9_12.htm

� Jerarquía de operadores:

http://www.ditutor.com/numeros_naturales/jerarquia_operaciones.html

SEXTA SESIÓN

� Creando DFD con el software Free DFD

http://dfdgurzaf.wordpress.com/2010/05/04/objetos/#more-20

SÉPTIMA SESIÓN

http://moisesrbb.tripod.com/si.htm

http://mouse-puntonet.blogspot.com/2010/07/condicional-multiple-select-case.html

http://www.slideshare.net/ninamille/estructura-condicional-2763177

Sesión 8:”Integrando los aprendizajes II “

I.- Relaciona las siguientes columnas según crea conveniente.

1.- DFD ( 2 ) Se le conoce como tema de decisiones.

2.- Estructuras condicionales ( 3 ) son tomas de decisiones simples especializadas que permiten

Comparar una variable.

3.-Estructuras condicionales ( 1 ) Representaciones graficas de múltiples un algoritmo que sirve para verificar

y comprobar algoritmos.

4.-Caracteristicas de los niveles ( 5 ) Es la manera en que cualquier sistema desarrollado puede determinarse a través de un DFD. 5.-Modelos de datos ( 4 ) Diagrama de contexto,

diagrama de nivel superior, diagrama de detalle o expansión.

2.-Reconocer las formas de estructuras condicionales 2.1

O

CONDICION

PROCESO 1

PROCESO 2

NO SI

A

NO

A

NO

PROCESO V1

PROCESO V2

PROCESO F1

PROCESO F2

CONDICION 1 PROCESO V1

PROCESO V2 CONDICION 2

A

NO

A

3.-Desarrollar los siguientes ejercicios:

1.-Diseñe un algoritmo que determine quienes son contemporáneos entre Juan, Mario y Pedro.

INICIO // Declaración de variables ENTERO EdadJuan, EdadMario, EdadPedro CADENA contemporaneos // Entrada de datos LEER EdadJuan, EdadMario, EdadPedro // Determina quienes son contemporáneos SI(EdadJuan == EdadMario&&EdadMario == EdadPedro)

PROCESO V2 CONDICION 3

contemporaneos = "Los tres son contemporáneos" SINO

SINO contemporaneos = "No hay contemporáneos" // Salida de resultados IMPRIMIR contemporaneos FIN http://artemisa.unicauca.edu.co/~nediaz/LabII/practica06.htm

2:- El promedio de prácticas de un curso se calcula en base a cuatro prácticas calificadas de las cuales se elimina la nota menor y se promedian las tres notas más altas. Diseñe un algoritmo que determine la nota eliminada y el promedio de prácticas de un estudiante.

INICIO // Declaración de variables REAL pc1, pc2, pc3, pc4, pcmenor, promedio // Entrada de datos LEER pc1, pc2, pc3, pc4

// Determina la nota menor pcmenor = pc1 SI( pc2 <pcmenor ) pcmenor = pc2 SI( pc3 <pcmenor ) pcmenor = pc3 SI( pc4 <pcmenor ) pcmenor = pc4 // Determina el promedio promedio = (pc1 + pc2 + pc3 + pc4 - pcmenor )/3 // Salida de resultados IMPRIMIR promedio, pcmenor FIN

3:- En un estacionamiento cobran $/. 1.500 por hora o fracción. Diseñe un algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehículo, conociendo el tiempo de estacionamiento en horas y minutos.

Algoritmo 1

INICIO // Declaración de variables ENTERO horas, minutos REAL pago // Entrada de datos LEER horas, minutos // Si hay alguna fracción de hora, incrementa las horas a pagar en una unidad SI( minutos > 0 ) horas = horas + 1 // Determina el importe a pagar pago = horas * 1.500 // Salida de resultados IMPRIMIR pago FIN

4.- Diseñe un algoritmo que determine si ún número es o no es, par positivo.

INICIO // Declaración de variables REAL numero

CADENA tipoNumero // Entrada de datos LEER numero // Determina si el número es o no es, par positivo SI( (numero%2==0) && (numero>0) ) tipoNumero = "El número es par positivo" SINO tipoNumero = "El número no es par positivo" // Salida de resultados IMPRIMIR tipoNumero FIN

5.- Un supermercado ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un

descuento del 15% por la compra de más de 3 docenas y 10% en caso contrario. Además por la compra de más de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. Diseñe un algoritmo que determine el monto de la compra, el monto del descuento, el monto a pagar y el número de unidades de obsequio por la compra de cierta cantidad de docenas del producto.

Algoritmo

INICIO // Declaración de variables REAL montopag, montocom, montodes, precio ENTERO docenas, obsequio // Entrada de datos LEER docenas, precio // Determina el monto de la compra montocom = docenas*precio // Determina el monto del descuento y el obsequio SI( docenas > 3 ){ montodes = 0.15*montocom obsequio = docenas-3 } SINO{ montodes = 0.10*montocom obsequio = 0 } // Determina el monto a pagar montopag = montocom - montodes // Salida de resultados IMPRIMIR montocom, montodes, montopag, obsequio FIN

6.- Diseñe un algoritmo que lea un número de tres cifras y determine si es igual al Revés del número. Observación

Como el número tiene tres cifras, para que sea igual al revés, basta con que la cifra de las unidades sea igual a la cifra de las centenas. Por ejemplo: 353, 878, etc.

Algoritmo

INICIO // Salida de resultados ENTERO numero, unidades, centenas CADENA tipoNumero // Entrada de datos LEER numero // Si el número tiene tres cifras... SI(numero >99 && numero < 1000 ){ // Determina la cifra de las unidades y la cifra de las centenas unidades = numero%10 centenas = int(numero/100) // Determina si el número es igual al inverso SI( unidades == centenas ) tipoNumero = "El número es igual al inverso"

SINO tipoNumero = "El número no es igual al inverso" // Muestra el tipo de número IMPRIMIR tipoNumero } SINO IMPRIMIR "Debe ingresar un número de tres cifras" FIN

7.- Una compañía dedicada al alquiler de automoviles cobra un monto fijo de $300000 para los primeros 300 km de recorrido. Para más de 300 km y hasta 1000 km, cobra un monto adicional de $ 15.000 por cada kilómetro en exceso sobre 300. Para más de 1000 km cobra un monto adicional de $ 10.000 por cada kilómetro en exceso sobre 1000. Los precios ya incluyen el 20% del impuesto general a las ventas, IVA. Diseñe un algoritmo que determine el monto a pagar por el alquiler de un vehículo y el monto incluído del impuesto.

Algoritmo

INICIO // Declaración de variables REAL kilomrec, montopag, montoiva, montofijo = 300000, iva = 0.20 // Entrada de datos LEER kilomrec // Determina el monto a pagar SI( kilomrec<= 300 ) montopag = montofijo SINO SI( kilomrec<= 1000 ) montopag = montofijo + 15000*(kilomrec-300) SINO montopag = montofijo + 15000*700 + 10000*(kilomrec-1000) // Determina el monto del impuesto

montoiva = iva*montopag // Salida de resultados IMPRIMIR montopag, montoiva