Algoritmica 24-8-09

Embed Size (px)

DESCRIPTION

Ejercicios básicos de algoritmica

Citation preview

LOGICA Y ALGORITMOS

1.-Algoritmos y Programas

Un Algoritmo: Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos, finitos que conducen a la solucin de un problema.Es importante tener en cuenta que todo algoritmo debe ser totalmente independiente del lenguaje de programacinque se utilice; es decir, que el algoritmo diseado deber permitir su traduccin a cualquier lenguaje de programacin con independencia del ordenador en el que se vaya a ejecutar dicho programa habitualmente.

Las caractersticas que debe cumplir todo algoritmo son las siguientes:

Debe ser conciso y detallado, es decir, debe reflejar con el mximo detalle el orden de ejecucin de cada accin u operacin que vaya a realizar el ordenador. Todo algoritmo se caracteriza por tener un comienzo y un final. Por ello se puede decir que es finito o limitado. Al aplicar el mismo algoritmo n veces con los mismos datos de entrada, se deben obtener siempre los mismos resultados o datos de salida. Por ello se puede decir que es exacto o preciso. Debe ser flexible, es decir, que debe adaptarse con facilidad a cualquier lenguaje de programacin y entorno o plataforma. Debe facilitar el entendimiento as como su traduccin y las futuras modificaciones o actualizaciones que sobre l sean necesarias realizar. Por tanto, se deber disear utilizando un estilo amigable y entendible.

Por lo tanto, el esquema a seguir a la hora de disear un programa es:

Traduccin a un lenguaje de programacin

Diseo del AlgoritmoPrograma de ordenadorProblema

Un Programa:Es el algoritmo expresado en un lenguaje de especifico,denominado lenguaje de programacin,para que pueda ser utilizado en una computadora.

Tcnicas de Programacin: Algortmica Programacin Estructurada

La programacin estructurada es un estilo con el cual el se busca que el programador elabore programas sencillos y fciles de entender.

Ventajas de la programacin Estructurada

Fcil de leer y comprender. Fcil de codificar en una amplia gama de lenguajes y en diferentes sistemas. Fcil de mantener. Eficiente, aprovechando al mximo los recursos de la computadora. Modularizable.

La programacin estructurada es un conjunto de tcnicas para desarrollar algoritmos fciles de escribir, verificar, leer y modificar. Utiliza: Diseo descendente. El cual consiste en disear los algoritmos en etapas, partiendo de los conceptos generales hasta llegar a los detalles. El diseo descendente se ver complementado y ampliado con la modularizacin. Recursos abstractos. En cada descomposicin de una accin compleja se supone que todas las partes resultantes estn ya resueltas, posponiendo su realizacin para el siguiente refinamiento. Estructuras bsicas. Los algoritmos debern ser escritos utilizando nicamente tres tipos de estructuras bsicas: secuenciales, decisin e iteracin, las cuales se describen ms adelante.

TEOREMA DE BHM Y JACOPINIPara que la programacin sea estructurada, los programas han de ser propios. Un programa se define como propio si cumple las siguientes caractersticas:Tiene un solo punto de entrada y uno de salidaToda accin del algoritmo es accesible, es decir, existe al menos un camino que va desde el inicio hasta el fin del algoritmo, se puede seguir y pasa a travs de dicha accin.No posee lazos o bucles infinitos.

Elementos Bsicos:

Un algoritmo puede ser escrito en lenguaje natural, pero esta descripcin puede ser ambigua, por lo que se utilizan diferentes mtodos de representacin, que permiten evitar dicha ambigedad y al mismo tiempo que sean fcilmente codificables. Los mtodos ms usuales para la representacin de algoritmos son:

Descripcin narrada Diagrama de flujo Pseudocdigo

DESCRIPCIN NARRADA

Es la forma ms sencilla de describir o expresar un algoritmo. Consiste en hacer un relato de la solucin en lenguaje natural.

Por ejemplo Algoritmo en descripcin narrada para la suma de 2 nmeros.1. obtener los nmeros a sumar2. sumar los nmeros3. anotar el resultadoEl uso del lenguaje natural provoca frecuentemente que la descripcin sea imprecisa y poco confiable, por lo que este tipo de representacin no es recomendable.

DIAGRAMA DE FLUJO

Es la representacin grfica de un algoritmo. Utiliza smbolos normalizados, con los pasos del algoritmo escritos en el smbolo adecuado y los smbolos unidos por flechas, denominadas lneas de flujo, que indican el orden en que los pasos deben ser ejecutados. Los smbolos principales son:

SmboloDescripcin

Inicio o fin del programa.

Indica la entrada y salida de datos.

Pasos, procesos o lneas de instruccin de programa de cmputo.

Toma de decisiones y ramificacin

Conector para unir el flujo a otra parte del diagrama.

Conector fuera de pgina.

Indica la salida de informacin por impresora.

Indica la salida de informacin en la pantalla o monitor.

Lneas de Flujo.

Recomendaciones para el diseo de Diagramas de Flujo

Se deben se usar solamente lneas de flujos horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.

PSEUDOCODIGO

Describen un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de lenguaje de programacin y palabras claves que definen las estructuras bsicas. Son en la prctica los que se utilizan ya que evitan los problemas que presentan las representaciones anteriores.

Como todo lenguaje el pseudocdigo est sujeto a un determinado conjunto de reglas:

1. Cada algoritmo descrito mediante pseudocdigo consta de :

Una cabecera en la que se especificar el nombre del algoritmo y la lista de parmetros que representan la comunicacin del algoritmo con su entorno (parmetros de entrada y salida). El cuerpo del algoritmo que constar de dos partes:

a) Entorno: Es este entorno se describirn todos aquellos datos que son necesarios en el algoritmo. Se describirn tambin todos aquellos otros elementos necesarios para la comprensin del algoritmo.b) Proceso: Aqu se describirn todas las acciones que se realizarn cuando se ejecute el programa correspondiente.

2. En cada algoritmo el proceso empezar con la palabra start o inicio y finalizar con la palabra end o fin.

3. Slo se describir una accin por lnea.

4. Se debe representar la jerarqua entre las diferentes acciones insertando las lneas que describen estas acciones.

DATOS Y EXPRESIONES

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carcter, tal como a, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

Figura Esquema de tipo de datos

Tipos de Datos Simples

Datos Numricos: Son datos simples. Pueden ser enteros o reales.Tipo entero

Conjunto de los nmeros enteros positivos y negativos. En la prctica estn limitados [-32 767, +32 767]

Tipo real

Conjunto de los nmeros reales positivos y negativos (parte entera y parte decimal separada por un punto).Este tipo de datos permiten realizar operaciones aritmticas comunes.

Datos Lgicos:Son aquellos que solo pueden tener dos valores (verdadero o falso) ya que representan el resultado de una comparacin entre otros datos (numricos o alfanumricos).

Datos Alfanumricos (String):

Los hay simples (caracteres o char) o estructurados (cadenas o string).Pueden ser o contener letras del abecedario, dgitos o smbolos especiales. Un dato tipo carcter contiene un solo carcter (obvio, no?), mientras que un dato tipo cadena contiene un conjunto de caracteres.Es posible representar nmeros como alfanumricos, pero estos pierden su propiedad matemtica, es decir, no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.

Datos tipo carcterDatos tipo cadena

ealgortmica2008

4477-7777

@[email protected]

Datos de tipo carcter y cadena

TipoDominioCardinalOperaciones Bsicas.Ejemplos

CadenaSecuencia finita de caracteres, escrita entre comillas-Concatenacin(+),operaciones relacionales(ver ms adelante)8 de octubre de 1908,***,etc.

EnumeradoSe define explcitamente por enumeracin-Operadores relacionales, y ORD,SUC y PREDSemana=(Lunes,Martes,Mircoles,Jueves,Viernes,Sbado,Domingo);Palo=(oros,copas,espadas y bastos)

SubrangoCualquier subconjunto de un tipo ordinal(*)-Las que se aplique al tipo en cuestinDiaLaborable=Lunes..Viernes;minscula=a..z

Figura Datos estructurados

Identificadores, Constantes y Variables.

Identificadores

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora.

Ejemplo:ApellidoNom_CursoNota1 Reglas para la formacin de identificadores

El nombre del identificador debe dar una idea del valor que contiene.El primer carcter debe ser una letra.

Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer caracter.No deben existir espacios en blanco.

Generalmente la longitud no supera los 7 caracteres.

Constantes

Son aquellos datos cuyo valor no cambia durante la ejecucin del programa, es decir, inician con un valor determinado y lo mantienen hasta el final.

Ejemplo:pi = 3.1416

Variable

Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecucin de un proceso, Su valor inicial es 0 siendo modificado durante la ejecucin del programa, pero, en un instante dado, slo contienen un valor determinado, porque la asignacin de valores a una variable es una operacin destructiva, es decir, el valor que posea se destruye, conservando solo el nuevo valor (bloque de asignacin).

Ejemplo:rea = pi * radio ^ 2

Las variables son: el radio, el rea y la constate es pi

Clasificacin de las Variables

Numricas Por su Contenido Lgicas Alfanumricas(String)

Variables De Trabajo Por su Uso Contadores Acumuladores

Por su Contenido

Variable Numricas: Son aquellas en las cuales se almacenan valores numricos, positivos o negativos, es decir almacenan nmeros del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: pi=3.1416costo=2500

Variables Lgicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparacin entre otros datos.

Variables Alfanumricas: Esta formada por caracteres alfanumricos (letras, nmeros y caracteres especiales).

Ejemplo: letra=a apellido=Lpez direccin=Av. Libertad #190

Por su Uso

Variables de Trabajo: Variables que reciben el resultado de una operacin matemtica completa y que se usan normalmente dentro de un programa. Ejemplo:Suma=a+b/c

Contadores: Se utilizan para llevar el control del nmero de ocasiones en que se realiza una operacin o se cumple una condicin. Con los incrementos generalmente de uno en uno.

Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.

Definicin de variables

Una definicin de variable informa el nombre de la variable y el tipo de datos que va a guardar. Estos ltimos conceptos sern definidos ms adelante. Variables Globales: Las variables globales son aquellas variables que se definen o declaran en la zona de encabezado de cualquier algoritmo. Variables Locales: Las variables son consideradas como locales cuando su declaracin se hace al inicio de una funcin o un procedimiento. Las variables que hayan sido declaradas como locales solo podrn ser reconocidas por el procedimiento o funcin donde se haya declarado.

Operaciones, operadores y operandos

Una operacin es una cadena sintcticamente correcta de operandos y operadores. Segn sea el tipo de datos que manipulan, se clasifican en aritmticas, relacionales y lgicas. Un operador es un smbolo que da instrucciones para que se ejecute alguna operacin, o accin, en uno o ms operandos.Un operando es algo sobre lo cual acta un operador (podra considerarse como una expresin).

Operadores aritmticos

Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes).Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operadores aritmticos

+Suma

-Resta

*Multiplicacin

/Divisin

modModulo (Residuo de la divisin entera)

^Exponenciacin

Prioridad de los operadores aritmticos

Todas las expresiones entre parntesis se evalan primero. En expresiones con parntesis anidados el parntesis ms interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden: 1.-Exponenciacin 2.-Multiplicacin, Divisin, Mdulo. 3.-Suma y Resta. Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha.

Ejemplos:

5+3*6= 23 10*4 / 8 = 5 12 mod 7 = 5 3 + 5 * (10 - (2 + 4)) =23

Operadores relacionales

Se utilizan para establecer una relacin entre dos valores. Luego comparan estos valores entre s produciendo un resultado de certeza o falsedad. Los valores que comparan deben ser del mismo tipo (numricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluacin.

Operadores relacionales

>Mayor que

=Mayor o igual que

< =Menor o igual que

< >Diferente

=Igual

Ejemplo

Si a = 15, b = 30, c = 40

a+b>c Verdaderoa- b < c Verdaderoa - b = c Falsoa * b < > c Verdadero

Ejemplos no lgicos:

a< b< c10 < 20 < 30 a > 5 < 30

Operadores lgicos

Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional.

Operadores lgicos

NOT NEGACIN

ANDY

ORO

Tabla Tipos de operadores lgicos jerarquizados

ANDORNOT

VVVVFF

VFFVFV

FVFVVF

FFFFVV

Figura Resultado de operaciones Lgicas

Operadores LgicosOperadores RelacionalesOperadores Aritmticos

NOT

AND

OR< , > , = , = , Exponenciacin()

Operadores de Signo(+,-)

Multiplicacin y Divisin(*, /)

Suma Y Resta (+, - )

Figura Clasificacin de operadores

Prioridad de los operadores en general1. ( )2. ^3. *, /, Mod, Not4. +, -, And5. >, =, < =, < >, =, Or

OperadorTipos de operandosTipo del resultado

+ , - , *Enteros o realesEnteros o reales

/Enteros o realesReal

Div,modEnteroEntero

=,,,,OrdinalLgico

V,LgicoLgico

+ ( concatenacin)CadenaCadena

Figura Operadores, operandos y resultados segn sus clases

Ejercicios Propuestos

Indicar el tipo de cada una de las siguientes constantes:a) 440 b) 440.0 c) -440d) 440 e) -45.3 * 104 f) 16 * 106g) -45.6 * 10-3 h) inicio del ejercicio

Indicar el resultado y el tipo de las siguientes expresiones:

a) 6 ^ 2 + 8 b) 6 + 18 - 0.6 c) 3.0 ^ 4 + 1d) 3 / 5 + 4 e) 29.0 / 2 + 4 f) 3 / 6.0 7

Lenguajes de programacin

Se puede definir un lenguaje de programacin como un conjunto de reglas o normas, smbolos y palabras especiales utilizadas para construir un programa y con l, darle solucin a un problema determinado.El lenguaje de programacin es el encargado de que la computadora realice paso a paso las tareas que el programador ha diseado en el algoritmo.

Niveles de Lenguaje Los lenguajes de programacin se pueden clasificar as: Lenguaje mquina: Las primeras computadoras se programaban en cdigo de mquina, es decir, los programas eran diseados en cdigo binario. Eran difciles de leer, entender y corregir. Lenguajes de bajo nivel: Para dar solucin a lo difcil que era programar en cdigo mquina, se desarroll un lenguaje conocido como ensamblador. ste era el encargado de tomar algunas palabras comunes a una persona y traducirlas al cdigo mquina. Lo anterior facilitara un poco la escritura de programas. Lenguajes de alto nivel: Como las personas resuelven problemas y se comunican en lenguajes naturales (espaol, ingles, francs, etc.), se desarrollaron lenguajes de programacin que estuvieran ms cerca de sta manera de resolver problemas. Dentro de este tipo se pueden citar el Basic, Cobol, Fortran, Pascal, Turbo Pascal, C, Modula 2, Ada, etc. Aqu aparece la figura del compilador, como el encargado de traducir el programa a lenguaje de mquina.

Tipos de Programacin Dependiendo del lenguaje de programacin que se elija, se puede hablar del tipo de programacin a realizar. Secuencial: Se considera programacin secuencial a los programas que se disean con instrucciones que van unas detrs de otras. Las lneas de cdigo se ejecutan una a una en secuencia. Estructurada: Se considera programacin estructurada a la que se realiza por mdulos. Cada mdulo realiza alguna tarea especfica y cuando se necesite esa tarea se llama a ese mdulo, independiente de la ejecucin de los dems. Ejemplo: Turbo PASCAL, C, Modula, Ada, etc. Orientada a objetos: Se considera la programacin orientada a objetos en aquellos lenguajes que permiten la utilizacin de objetos dentro del diseo del programa. Ejemplo: Visual Basic, C Builder, Java, XML, etc. Lgica o de lenguaje natural: Son aquellos programas que se disean con interfaces donde el usuario puede ordenar a la mquina tareas en un lenguaje natural. Pueden interactuar como una persona pero nunca llegan a producir conocimiento. Estos lenguajes recorren o navegan las bases de datos obedeciendo ciertas reglas. Ejemplo: Prolog (Programming Logic). Inteligencia Artificial: Los programas de inteligencia artificial son programas que se acercan a la inteligencia humana. Estos programas son capaces de desarrollar conocimiento.

ESTRUCTURAS ALGORITMICAS

Las acciones de un algoritmo se organizan en bloques segn el grfico veremos:

- AsignacinSecuenciales- Entrada- Salida

Estructuras - Simples Algortmicas Selectivas -Dobles -Mltiples - Hacer paraRepetitivas- Hacer mientras- Repetir hasta

ESTRUCTURAS SECUENCIALES

Se caracterizan porque una accin se ejecuta detrs de la otra. El flujo del programa coincide con el orden fsico en el que se han ido colocando las instrucciones. Es decir, es una secuencia lineal de acciones, donde se ejecuta primero la accin uno, despus la dos, luego la tres, etc. Dichas acciones pueden consistir en acciones simples tales como:

Como leer datosRealizar operacionesEscribir resultados

Estas estructuras se representan de la siguiente forma:

Diagrama de FlujoPseudocdigo

Accin 1InicioAccin 1Accin 2

Accin 2Accin 3Fin

Accin 3

ESTRUCTURAS SELECTIVAS

Permiten controlar la ejecucin de acciones que requieran ciertas condiciones para su realizacin, es decir, se ejecutan unas acciones u otras segn se cumpla o no una determinada condicin.

Estas estructuras son utilizadas cuando:

Se tienen acciones que son excluyentes, es decir, que slo tienen que ejecutarse una o la otra, pero no ambas. Cuando es necesario elegir la accin a realizar de entre un conjunto de acciones existentes. Cuando es necesario verificar que lo datos sean vlidos para la aplicacin en cuestin, por ejemplo: no es posible dividir entre 0, la cuota por hora que se le paga a un trabajador no puede ser negativa, etc.

Las estructuras selectivas pueden ser: simples, dobles o mltiples.

SIMPLES.

Se evala la condicin y si sta da como resultado verdad se ejecuta una determinada accin o grupo de acciones; en caso contrario no se ejecuta dicho grupo de acciones y se contina con el flujo.Esta estructura se representa de la siguiente forma:

PseudocdigoDiagrama de Flujo

accinaccin 1accin 2condicinaccinsinoD-F Accinsi entoncesaccin1accin2..fin_si accin

DOBLES

Cuando el resultado de evaluar la condicin es verdad se ejecutara una determinada accin o grupo de acciones y si el resultado es falso se ejecutara otra accin o grupos de acciones alternativas.En ambos casos la sentencia podr ser simple o compuesta

Esta estructura se representa de la siguiente forma:

PseudocdigoDiagrama de Flujo

accinaccin 1accin 2condicinaccinsinoaccin 3accin 4D-F accin

si entoncesaccin 1accin 2.sinoaccin 3accin 4.fin_si accin

MULTIPLES

Las estructuras selectivas mltiples permiten controlar la ejecucin de acciones cuando se tienen ms de dos opciones alternativas de seleccin. Aqu se ejecutarn unas acciones u otras segn el resultado que se obtenga al evaluar una expresin.Cada grupo de acciones se encuentra ligado con un valor o una serie de valores expresados mediante: una constante, varias constantes separadas por comas, un rango expresado como valor_inicial...valor_final, o una mezcla de constantes y rangos.Cuando el valor obtenido al evaluar la expresin no est presente en ninguna lista de valores se ejecutarn las acciones establecidas en la clusula sino (si existiese dicha clusula).

Esta estructura se representa de la siguiente forma:

PseudocdigoDiagrama de Flujo

Expresinaccin 1accin 2accin 3accin notros. . .accinaccin accinsegn_sea hacere 1 : accin 1e 2 : accin 2e 3 : accin 3..e n : accin notros : accin xfin_segnaccin

ESTRUCTURAS REPETITIVAS

Iterar o ciclar es repetir una tarea: hacer algo y luego regresar y hacerlo una y otra vez hasta terminar la tarea, la condicin de terminacin debe estar bien definida. Las aplicaciones tpicas de la computadora que requieren iteracin son:La introduccin de muchos datos, uno tras otro, para efectuar diversos clculos (por ejemplo obtener el promedio de calificaciones de un alumno).La clasificacin peridica de una gran coleccin de datos (por ejemplo la clasificacin de cheques procesados por sucursal bancaria, y para cada sucursal por nmero de cuenta del cliente cada da de la semana).Existen tres clases de mecanismos de iteracin:1. Para todos los valores de la progresin.2. Mientras se valida una condicin.3. Repetir- hasta que se satisfaga una condicin. Veamos cada uno de ellos:

PARA:Es usado cuando se conoce de antemano el nmero de veces que debe repetirse una instruccin o conjunto de ellas. Es un ciclo incondicional, que abarca todos los valores de una progresin, empieza con el primer valor y termina con un ltimo de ellos, los valores de la progresin deben ser asignados a una variable, la cual se denomina variable de control.

PseudocdigoDiagrama de Flujo

accinD-Ffalsoverdaderovariablendice > valor finalaccionesfijar lavariable ndiceal valor inicialincrementarvariable ndiceaccinAccinpara v desde v i hasta v f haceraccin 1accin 2..accin n fin_desde accin

MIENTRASLa instruccin Mientras... hacer continuar repitindose mientras la condicin sea siendo vlida (es decir, su valor de verdad sea verdadero).

accionesnosicondicinaccinaccinD-F PseudocdigoDiagrama de Flujo

accinmientras haceraccin 1accin 2..accin n fin_mientrasaccin

REPETIR HASTALa instruccin Repitir...hasta continuar repitindose mientras no se satisfaga la condicin (su valor de vedad sea falso).

PseudocdigoDiagrama de Flujo

falsaverdaderacondicinaccinaccinD-Facciones Accinrepetiraccin 1accin 2..accin n hasta_que accin

1.-Desarrolle un algoritmo que le permita leer un valor entero, Calcular su cuadrado y escribir dicho resultado.

Anlisis:En este ejercicio podemos identificar como tareas a realizar tres acciones: Leer, Calcular y Escribir. Cada uno de los procesos mencionados se describen en smbolo respectivo quedando el diagrama de flujo de la siguiente manera.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables N, R: Entero

N, R : Entero//Entrada Leer (N)//Proceso R=N2

N//Salida Escribir (R)Fin

R=N2

FINR

2.- Desarrolle un algoritmo que le permita leer un valor para radio (R), calcular el rea (A) de un crculo A =R y escribir su valor.

Anlisis:En el ejercicio se identifican como tareas las tres acciones solicitadas. Leer, Calcular y Escribir. Cada uno de los procesos mencionados se describe en el smbolo respectivo quedando el diagrama de flujo de la siguiente manera:

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables

R, A: Entero R,A: Entero//Entrada Leer(R)//Proceso

R A =R//Salida

A=R2 Escribir(A) Fin

A

FIN

3.-Determinar la hipotenusa de un tringulo rectngulo conocidas las longitudes de sus dos catetos. Desarrolle los correspondientes algoritmos.Anlisis: En el ejercicio se puede definir como tareas las tres acciones solicitadas. Leer, Calcular y Escribir, Leer cada uno de los valores de los dos catetos y almacenarlos en cada uno de los identificadores definidos para el caso, calcular la hipotenusa aplicando la frmula correspondiente almacenando su valor en el identificador del caso y escribir el valor encontrado para la hipotenusa como respuesta. Cada una de las acciones se describe dentro del smbolo respectivo, quedando el diagrama de flujo de la siguiente manera.

Pseudocdigo Diagrama De Flujo

INICIOInicio//Declarando VariablesCatA, CatB, Hip: Entero

CatA, CatB, Hip: Entero//Entrada Leer (CatA, CatB)//Proceso

CatA, CatB Hip //Salida Escribir (Hip)Fin

Hip CatA CatB

HipFIN4.-Desarrolle un algoritmo que le permita leer un valor que represente una temperatura expresada en grados Celsius y convierta dicho valor en un valor expresado en grados Fahrenheit.

Anlisis:En el ejercicio planteado, las tareas a realizar son: Leer, convertir y Escribir.

INICIO PseudocdigoDiagrama De Flujo

Inicio//Declarando Variables

C,F : Real C,F : Real//Entrada Leer(C)

C//Proceso F=9/5 *C+32//Salida

F = 9/5C + 32 Escribir (F) Fin

FINF

5.-Desarrolle un algoritmo que le permita calcular el rea de un tringulo en funcin de las longitudes de sus lados previamente ledos desde el teclado.Anlisis:En este problema planteado primero se leen los valores de los tres lados del tringulo, luego se procede a calcular el valor de su rea en funcin de los valores ledos, aplicando la frmula correspondiente y por ltimo se da orden de escribir el valor calculado.

INICIO Pseudocdigo Diagrama De Flujo

Inicio//Declarando Variables A, B, C, p, Area: Entero

A, B, C, p, Area: Entero//Entrada Leer(A, B, C)//Proceso p= (A+B+C)/2

A, B, C Area= p (p- A) (p-B) (p-C)//Salida

p=(A+B+C)/2 Escribir (Area)Fin

Area = p(p-A)(p-B)(p-C)

A

FIN

6.- Desarrolle un algoritmo que le permita determinar el rea y volumen de un cilindro cuyo radio (R) y altura (H) se leen desde teclado.

Anlisis:En este ejercicio planteado es necesario leer el valor del radio y el valor de la altura del cilindro desde algn medio de entrada de datos a la computadora, generalmente el teclado. Una vez se tengan almacenados los dos valores en memoria del computador se procede a calcular el rea y el volumen aplicando las frmulas respectivas.

INICIOPseudocdigo Diagrama de Flujo

Inicio//Declarando Variables

R, H, Vol, Area: Real R, H, Vol, Area: Real//Entrada Leer(R, H)//Proceso

R, H Vol=R*H rea=2*RH//Salida Escribir (rea, Vol)

VOL= R*HFin

Area, VolArea=2*RH

FIN

7.- Desarrolle un algoritmo que le permita calculas el rea (A) de un segmento de crculo.

Anlisis:Para calcular el rea de un segmento de crculo lo primero que hay que hacer es leer el valor del radio y leer el valor de X que es la distancia del centro al segmento. Una vez ledo dichos valores se calcula aplicando la frmula respectiva y por ltimo se escribe el valor del rea.

PseudocdigoDiagrama De Flujo

INICIOInicio//Declarando Variables X, r, A: Entero

X, r, A: Entero//Entrada Leer(X , r)//Proceso

X, r A= (*r)/2 [X + r Sin-1 (x/r)]//Salida Escribir (A)

A= (*r)/2 [X + r Sin-1 (x/r)]Fin

FINA

8.- Construye un algoritmo que dado dos nmeros calcule e imprima su media aritmtica, media geomtrica, media armnica.

Anlisis:Para el clculo de la media aritmtica, geomtrica y armnica lo primero que haremos ser leer los dos nmeros y una vez que tengamos los valores aplicar las formulas para calcular la media.

Pseudocdigo Diagrama De Flujo

INICIOInicio// Declarando variables A, B, Mari, Mgeo, Marm: Real

A, B, Mari, Mgeo, Marm :Real//Entrada Leer(A, B)//Proceso Mari= (A+B)/2

A, B Mgeo= (A*B) ^1/2 Marm=(2*A*B)/ (A+B)

//SalidaEscribir (Mari,Mgeo,Marm)

Mari= (A+B)/2Fin

Mari, Mgeo, MarmMarm= (2*A*B)/(A+B)FINMgeo=(A*B) ^1/2

9.- Suponga que un individuo desea invertir su capital en un banco y desea saber cunto dinero ganara despus de un mes si el banco paga a razn de 4% mensual.

Anlisis:En este ejercicio lo primero ser leer el capital a invertir con esta cantidad ya podremos aplicar lo que ganar mensualmente.

Pseudocdigo Diagrama De Flujo

INICIOInicio//Declarando variables Cap_Inv, Gan : Entero

Cap_Inv, Gan: Entero//Entrada Leer (Cap_Inv)//Proceso Gan=Cap_Inv*0.04

Cap_Inv//Salida Escribir GanFin

Gan=Cap_Inv*0.04

Gan

FIN

10.-Una panadera ofrece un descuento del 20% sobre el total de la compra y un cliente desea saber cunto deber pagar finalmente por su compra.Anlisis:Para solucionar este ejercicio lo primero ser leer el total de compra para que se pueda saber cunto pagar el cliente finalmente con el descuento.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables Tc, D, Tp: Entero

Tc, D, Tp: Entero//Entrada Leer (Tc)//Proceso D= Tc*0.20

Tc Tp=Tc-D//Salida Escribir (Tp)

D=Tc*0.20Fin

Tp=Tc-D

Tp

FIN

11.- Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de los siguientes porcentajes: 65% del promedio de sus tres calificaciones parciales. 20% de la calificacin del examen final. 15% de la calificacin de un trabajo final. Anlisis:En este ejercicio podemos identificar como tareas a realizar tres acciones: Leer, Calcular y Escribir. Cada uno de los procesos mencionados se describen en smbolo respectivo quedando el diagrama de flujo de la siguiente manera.

Pseudocdigo Diagrama De Flujo

INICIOInicio //Declarando Variables C1, C2, C3, Tf, Ef, Cf,Ppar,Pef,ptf,prom: Real

C1, C2, C3, Tf, Ef,Cf,ppar,pef,ptf,prom: Real//Entrada Leer (C1, C2, C3, Tf, Ef)//Proceso

C1, C2, C3, Tf, Ef Prom = (c1 + c2 + c3)/3 Ppar = prom * 0.65 Pef = ef * 0.20 ptf = tf * 0.15

Prom = (c1 + c2 + c3)/3 cf = ppar + pef + ptf//Salida Escribir (cf)Fin

Ppar=prom*0.65

Pef=ef*0.20

Ptf=tf*0.15

cf = ppar + pef + ptf

Cf

FIN

12.- Un profesor desea saber que porcentaje de mujeres y que porcentaje de hombres hay en un grupo de estudiantes.

Anlisis:En este ejercicio podemos identificar como tareas a realizar tres acciones: Leer, Calcular y Escribir. Cada uno de los procesos mencionados se describen en smbolo respectivo quedando el diagrama de flujo de la siguiente manera. Pseudocdigo Diagrama De Flujos

INICIOInicio//Declarando Variables nh,nm,ta :Entero

nh,nm,ta :Enteroph,pm :Real ph,pm : Real//Entrada Leer (nh, nm)//Proceso ta = nh + nm

nh, nm ph = nh * 100 / ta pm = nm * 100 / ta//Salida

ta = nh + nm Escribir (ph, pm)Fin

Ph=nh*100/ta

Pm=nm*100/ta

ph, pm

FIN

13.- Realizar un algoritmo que calcule la edad de una persona.

Anlisis:Para la solucin de este ejercicio hemos identificado tres tareas: Leer, Calcular y Escribir.

Pseudocdigo Diagrama De Flujo

INICIOInicio//Declarando Variables Fnac, fact, edad: Entero

Fnac, fact, edad: Entero//Entrada Leer (fnac, fact)//Proceso

Leer fact, fnac Edad=fact-fnac//Salida Escribir Edad

Edad=fact-fnacFin

Escribir Edad

FIN

14.-Dado el valor de venta de un articulo electrodomstico, Hallar el IGV (19%) y el precio de venta de dicho artculo.

Anlisis:Para la solucin de este ejercicio, se requiere que el usuario ingrese el valor de venta del artculo y luego realizar los clculos respectivos para hallar el IGV y el precio de venta.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables vv,pv,igv Real

vv, pv, igv: Real//Entrada Leer vv//Proceso igv=vv*0.19

Leer vv pv=vv+igv//Salida Escribir igv, pv

igv=vv*0.19pv=vv + igvFin

FINEscribir igv , pv15.-Construya un algoritmo que determine la suma de las cifras de un numero entero positivo de 6 cifras.

Anlisis:En este ejercicio podemos identificar como tareas a realizar tres acciones: Leer, Calcular y Escribir. Cada uno de los procesos mencionados se describen en smbolo respectivo quedando el diagrama de flujo de la siguiente manera:

Pseudocdigo Diagrama De Flujo

INICIOInicio//Declarando Variables X,sum,millares,centenas,decenas,unid,cociente :Entero//Entrada

X, sum, millares, centenas,Decenas, unid, cociente: Entero Leer X//Proceso unid=X MOD 10 cociente = N/10 decenas=cociente MOD 10

X cociente cociente/10 centenas=cociente MOD 10 millares =cociente/10 sum=unid+cociente+decenas+cociente+centenas+millares

Unid=X MOD 10//Salida Escribir sumFin

FINsumSum=unid+cociente+decenas+cociente+centenas+millaresCentenas=cociente MOD 10Decenas=cociente MOD 10Millares =cociente/10cociente cociente/10Cociente = N/10

PROBLEMAS PROPUESTOS

1) Escribir un programa que lea el valor en millas marinas y las convierta en metros. Expresando su valor en pantalla. Nota: Una milla marina equivale a 1852 metros.

2) Realizar un programa que calcule y escriba el porcentaje descontado en una compra sabiendo el precio original y el pagado finalmente.

3) Elabore un algoritmo que lea un nmero entero positivo y determinar el nmero de dgitos decimales necesarios para la representacin de dicho valor. Ejemplo: El valor 358 necesita 3 dgitos, el 9863 necesita 4 dgitos, etc.

4) Elaborar un algoritmo que lee 4 valores numricos y calcule su producto.

5) Diseo un algoritmo que calcule el resultado de una potencia dada su base y su exponente.

6) Disear el algoritmo correspondiente a un programa que obtiene la ltima cifra de un nmero introducido.

7) Disear el algoritmo correspondiente a un programa que calcule el rea y el permetro de un tringulo rectngulo dada la base y la altura.

8) Disear el algoritmo correspondiente a un programa que tras introducir una medida expresada en centmetros la convierta en pulgadas (1pulgada = 2,54 centmetros)

9) Disear el algoritmo correspondiente a un programa que exprese en horas, minutos y segundos un tiempo expresado en segundos.

10) Dado un nmero de 6 dgitos, Devolver el nmero en orden inverso.

11) Dado 5 nmeros enteros, obtener el porcentaje de cada uno en funcin a la suma de los 5 nmeros ingresados-

12) Elabora un algoritmo para hallar el rea y permetro de un rectngulo.

13) Hallar un algoritmo para convertir grados centesimales a sexagesimales.

14) Disear el algoritmo correspondiente a un programa que lea el valor correspondiente a una distancia en millas marinas y las escriba expresadas en metros. Sabiendo que 1 milla marina equivale a 1852 metros.

ESTRUCTURAS SELECTIVAS

Se utilizan para tomar decisiones lgicas. En stas se evala una condicin y en funcin del resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas. En pseudocdigo stas palabras son if, then, else. Las estructuras selectivas pueden ser:simples, dobles o mltiples.

Selectivas simples: Ejecuta una determinada accin cuando se cumple una determinada condicin. La seleccin if then (si entonces) evala la condicin y si es verdadera ejecuta la accin de lo contrario no realiza ninguna accin. Selectiva doble: Permite elegir entre dos opciones posibles en funcin del cumplimiento o no de una determinada condicin. Si la condicin es verdadera, se ejecuta la accin 1, si es falsa, se ejecuta la accin 2. La selectiva en pseudocdigo es if then else. Selectivas mltiples:La estructura de seleccin mltiple (case en pseudocdigo) evaluar una expresin que podr tomar n valores distintos 1, 2, 3, 4,..n. Segn sea el valor en la condicin, se realizar una de las n acciones.

1.- Dados dos nmeros enteros diferentes, devolver el nmero mayor.

Anlisis:Para la solucin de este problema, se ingresara dos nmeros enteros que se almacenaran en las variables A y B y luego tendr que devolver el mayor numero ( C )

Pseudocdigo Diagrama de flujo

INICIO Inicio//Declarando Variables A, B, C: Reales//Entrada Leer A, B//ProcesoA, B, C: Reales Si (A>B) entonces

A, B C=A Fin si Si (B>A) entonces C=B Fin Si

A>B//Salida FEscribir CFin

C=A V

B>AF

V

C=B

C

FIN

2.-Determinar si un numero es mltiplo de 5 y 7

Anlisis:Para resolver este ejercicio , hay que leer primero el valor del nmero y almacenarlo en una variable X.Luego para saber si el nmero almacenado en la variable X es mltiplo de los nmeros 5 y 7 se hace la divisin entre X y 5 y X y 7, si la divisin es exacta entonces X es mltiplo de 5 y 7, de lo contrario X no ser mltiplo de de 5 y de 7.

Pseudocdigo Diagrama de Flujos

INICIO Inicio //Declarando variables X: Entero

X: Entero //Entrada Leer (X) //Proceso si X mod 5=0 y X mod 7=0 entonces

X Escribir (X es mltiplo de 5 y 7) si no Escribir (X no es mltiplo de 5 y 7)

X mod 5=0 y X mod 7=0 Fin si Fin

X es mltiple de 5 y 7X no es mltiplo de 5 y 7

FIN

3.-Dado tres nmeros enteros hacer un algoritmo que devuelva el mayor nmero.

AnlisisPara la solucin de este ejercicio se requiere que se ingresen tres nmeros enteros y se almacenen en las variables A, B, C y que el algoritmo determine cul es el mayor nmero.

Pseudocdigo

Inicio//Declarando VariablesA, B, C: Enteros// EntradaLeer (A, B, C)

//ProcesoSi A>B entonces Si A>C entonces Escribir (El mayor numero es A) si no Escribir (El mayor numero es C)Fin siSi no Si B>C entonces Escribir (El mayor numero es B) Si noEscribir (El mayor numero es C)Fin siFin siFin

Diagrama de Flujo

INICIO

A, B, C: Enteros

A, B, C

A>BF V

A>CB>C F V F V

A es el mayor nmeroB es el mayor nmeroC es el mayor nmeroC es el mayor nmero

FIN

4.-Desarrolle un algoritmo que le permita leer un valor cualquiera X y escribir si dicho nmero es par o impar.

Anlisis:Para resolver el ejercicio planteado hay que leer primero el valor y almacenarlo en una variable (X). Para saber si el numero es par, la divisin por dos (2) debe ser exacta. Por tanto la decisin si la divisin es exacta o no, la debe tomar el computador usando el smbolo respectivo en el diagrama. (En los diagramas se utilizar el smbolo % para representar el residuo de la divisin de dos operandos, en este caso de la divisin de X y 2). Una vez resuelva la asercin el computador escribir si es par o impar el numero ledo y almacenado en la variable X.

Pseudocdigo Diagrama de flujo

INICIOInicio//Declarando variables X:Entero

X: Entero//Entrada Leer (X)//proceso Si(X residuo 2=0) entonces

X Escriba (X es par) Sino Escriba (X es impar) Fin si

X%2=0FinNo Si

Es parEs Impar

FIN

5.- Desarrolle un algoritmo que le permita leer un valor cualquiera A y escribir en la pantalla si dicho nmero es Positivo o Negativo.

Anlisis:Para resolver el ejercicio planteado hay que leer primero el valor del nmero y almacenarlo en una variable (A).Para saber si dicho nmero es positivo o no, simplemente lo compara con cero. En caso de que sea mayor o igual a cero entonces el nmero ser positivo, y para el caso contrario el nmero ser negativo.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables A: Entero//Entrada

A: Entero Leer(A)//Proceso Si (N>=0) entonces

A Escriba ("Es positivo") Sino Escriba ("Es negativo") Fin si

N > = 0Fin No Si

Es positivoEs negativo

FIN

6.- Desarrolle un algoritmo que le permita leer un valor cualquiera X y escribir si dicho nmero es mltiplo de Z.

Anlisis:Para resolver este ejercicio , hay que leer primero el valor del nmero y almacenarlo en una variable (X).Luego leer otro valor y almacenarlo en la variable Z. Para saber si el nmero almacenado en la variable X es mltiplo del nmero almacenado en Z, se hace la divisin entre Z y X, si la divisin es exacta entonces X es mltiplo de Z, de lo contrario X no ser mltiplo de Z.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables X, Z: Entero//Entrada

X, Z: Entero Leer(X, Z)//Proceso Si (X residuo Z=0) entonces

X, Z Escriba ("X es mltiplo de Z") Sino Escriba ("X no es mltiplo de Z") Fin si

X%Z= 0Fin No Si

Es mltiploNo es mltiplo

FIN

7.- Desarrolle un algoritmo que le permita leer un valor cualquiera X y escribir si dicho nmero es comn divisor de otros dos valores ledos M y N.

Anlisis:Para resolver el ejercicio planteado, hay que leer primero el valor del nmero y almacenarlo en una variable (X). Leer dos valores ms y almacenarlos en las variables M y N respectivamente. Para saber si el valor almacenado en la variable X es comn divisor de M y N, se chequea para ver si la divisin entre M/X y N/X son exactas. En caso de ser exactas entonces el valor numrico almacenado en la variable X es comn divisor de los dos. En caso contrario no lo ser.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables X, M, N: Entero//Entrada

X, M, N: Entero Leer(X, M, N)//Proceso Si (M residuo X=0 y N residuo X =0) entonces

X, M, N Escriba ("X es comn divisor de M y N") Sino Escriba ("X no es comn divisor de M y N") Fin si

M%X= 0yN%X=0 Fin

No Si

Es comn divisorNo es comn divisor

FIN

8.- Desarrolle un algoritmo que le permita leer un valor cualquiera N y escribir si dicho nmero es comn mltiplo de M y P. M y P tambin se deben leer desde el teclado.

Anlisis:Para dar solucin a este problema, primero se deben leer los valores. En N se almacena un valor y en las variables M y P se almacenarn los otros dos valores de los cuales se desea saber si N es comn mltiplo o no. Para poder saber si N es mltiplo habr que realizar una divisin y preguntar si dicha divisin es exacta o no, con cada uno de los dos valores (N/M y N/P). Si cada divisin es exacta entonces escribir que N es comn mltiplo de M y P o en caso contrario decir que N no es comn mltiplo.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables N, M, P: Entero//Entrada

N, M, P: Entero Leer(N, M, P)//Proceso Si (N residuo M=0 y N residuo P=0) entonces

N, M, P Escriba ("N es comn mltiplo de M y P") Sino Escriba ("N no es comn mltiplo de M y P") Fin si

N%M= 0y N%P=0Fin

No Si

N es comn mltiploN no es comn mltiplo

FIN

9.- Desarrolle un algoritmo que le permita leer dos valores P y Q y que escriba cual de los dos valores ledos es el mayor.

Anlisis:Para dar solucin al ejercicio, primero se deben leer los dos valores y almacenar cada uno de ellos en una variable. Para el caso del desarrollo se almacenar un valor en la variable P y el otro en la variable Q. Para poder saber cual de los dos valores es mayor simplemente se comparan las dos variables y se escribir cual de las dos es la mayor. Se supone que los dos valores ledos son diferentes.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables P, Q: Entero//Entrada

P, Q: Entero Leer (P, Q)//Proceso Si (P>Q) entonces

P, Q Escriba ("P es el mayor") Sino Escriba ("Q es el mayor") Fin si

P>QFin

No Si

P es el mayorQ es el mayor

FIN

10.- Desarrolle un algoritmo que le permita leer dos valores A y B y escriba cual de los dos valores ledos es el menor.

Anlisis:Este ejercicio es similar al anterior, primero se deben leer los dos valores y almacenar cada uno de ellos en una variable. Para el caso del desarrollo se almacenar un valor en la variable A y el otro en la variable B. Para poder saber cul de los dos valores es menor se comparan las dos variables y se escribir cual de las dos es la menor. Se supone que los dos valores ledos son diferentes.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando variables A, B: Entero//Entrada

A,B : Entero Leer(A, B)//Proceso Si (A=0 y p=6 y p=11 y p=0 y p=15 y p=18 y p=6 y p=11 y p=15 y p=18 y p=90 y p=100 y p=110 y p=90 y p=120 Entonces F = Educacin VSino F= Ninguno

F=IndustrialFin si //SalidaF

p>=100 y p=110 y p=120 V

F = Educacin

F

F=Ninguno

FINF

28.-Disee un algoritmo que determine quienes son contemporneos entre Juan, Mario y Pedro.

Anlisis:Para la solucin de este ejercicio, se requiere que el usuario ingrese el nombre, luego el sistema verifica y devuelve quienes son contemporneos.

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declaracin de Variables Juan, Mario, Pedro: Entero Cont: Cadena

Juan, Mario, Pedro: Entero Cont: Cadena//Entrada Leer (Juan, Mario, Pedro)//Proceso Si (Juan=Mario and Mario=Pedro) Entonces Cont =los tres son contemporneos

Juan, Mario, Pedro Sino Si (Juan=Mario) Entonces Cont =Juan y Mario son contemporneos Sino si (Juan=Pedro) Entonces Cont =Juan y Pedro son contemporneos Sino si (Mario=Pedro) Entonces

Juan=Marioand Mario=Pedro Cont = Mario y Pedro son contemporneos Sino Cont =No hay contemporneos V Fin si//SalidaEscribir cont

FINContCont =No hay contemporneosMario=PedroJuan=PedroJuan=MarioCont =Mario y Pedro son contemporneosCont =Juan y Pedro son contemporneosCont =Juan y Mario son contemporneosCont =los tres son contemporneosFin

F

V

F

V

F

V

F

29.-Determine el importe a pagar para el examen de admisin de una universidad, cuyo valor depende del nivel socioeconmico y el colegio de procedencia

NIVEL SOCIAL

COLEGIOABC

Particular500400300

Nacional300200100

Anlisis:Para la solucin de este ejercicio, se requiere que el usuario ingrese el colegio y el nivel socioeconmico y el sistema verifique y determine el monto a pagar.

PseudocdigoDiagrama de Flujo

INICIOInicio//Declarando Variables C, n: Carcter mp: Entero

C, n: Carcter mp: Entero//Entrada Leer C, n//Proceso En caso que C sea:

C, n Caso `P En caso que P seaCaso ` mp=500

CCaso `B mp=400Caso `C

`P` mp=300V

nFin caso Caso `N F En caso que N seaCaso `

mp=500`A`mp=400`B`mp=300`C` mp=300Caso `B V mp=200 FCaso `C mp=100 VFin caso FFin caso//SalidaEscribir mp VFin F

`N` V

n F

`A`mp=300 V F

mp=200mp=100`B` VF

FINmp`C` V

F

30.-Desarrolle un algoritmo que le permita leer tres valores A, B, C e indicar si la suma de dos nmeros cualquiera es igual al tercero.

Anlisis:Primero se deben leer los tres valores y almacenar cada valor en una variable. En el caso del ejemplo se guardaran los valores en los identificadores A,B, y C. luego se proceder a realizar las diferentes comparaciones.

Pseudocdigo

Inicio//Declarando VariablesA, B, C :Enteros//EntradaLeer (A, B, C)//Proceso Si A+B=C entonces Escribir (La suma de A + B = C) Sino Si A+C=B entonces Escribir (La suma de A + C = B) Sino Si C+B=A entonces Escribir (La suma de C + B = A) Sino Escribir (En ningn caso la suma es igual) Fin si Fin siFin siFin

Diagrama de Flujo

INICIO

FINEn ningn caso la suma de dos cualquiera es igual al terceroB + C es igual al terceroB + C = AA + C = BA+B=CA + C es igual al terceroA + B es igual al terceroA, B, CA, B, C: Enteros

PROBLEMAS PROPUESTOS

1) Un hombre desea saber cunto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversin en el banco. l decidir reinvertir los intereses siempre y cuando stos excedan a $7000, y en ese caso desea saber cunto dinero tendr finalmente en su cuenta. 2) Determinar si un alumno aprueba o reprueba un curso, sabiendo que aprobar si su promedio de tres calificaciones es mayor o igual a 70 y reprobar en caso contrario. 3) En un almacn se hace un 20% de descuento a los clientes cuya compra supere los $1000 Cul ser la cantidad que pagar una persona por su compra? 4) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sgte. manera: Si trabaja 40 horas o menos se le paga $16 por hora. Si trabaja ms de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra.5) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuntas caloras consume su cuerpo mientras realiza una actividad. Las actividades son nicamente dormir o estar sentado. Dormido consume 1.08 caloras/minuto y sentado 1.66 caloras/min.6) Lea dos nmeros e imprmalos en orden ascendente7) Imprima el nombre de un artculo, clave, precio original y precio con descuento.El descuento lo hace sobre la base de la clave, si la clave es 01 el descuento es 10% y si la clave es 02 el descuento es 20%8) Calcule el total a pagar por una compra de camisas. Si se compran tres camisas o ms se aplica un descuento del 20% sobre el total de la compra y si son menos de tres, un descuento del 10%9) Una empresa quiere comprar varias piezas de la misma clase a una fbrica de refacciones. La empresa, dependiendo del monto total de la compra, decidir qu hacer para pagar al fabricante: Si el monto total de la compra excede de $500.000 la empresa tendr la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagar solicitando un crdito al fabricante. Si el monto total de la compra no excede de $500 000 la empresa tendr capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagar solicitando crdito al fabricante. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crdito.

10) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si ste se le asigna como un porcentaje de su salario mensual, que depende de su antigedad en la empresa, de acuerdo con lo siguiente: Tiempo UtilidadMenos de 1 ao 5% del salario1 ao o ms y menos de 2 aos 7% del salario2 aos o ms y menos de 5 aos10% del salario5 aos o ms y menos de 10 aos15% del salario10 aos o ms 20% del salario

11) Leer 2 nmeros; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.12) Determinar el dinero que recibir un trabajador por concepto de horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y stas se pagan al doble de una hora normal, cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8, al doble de lo que se pagan las normales y el resto al triple.13) Lea tres nmeros diferentes y escriba el nmero mayor de los tres.14) El IMSS requiere clasificar a las personas que se jubilaran en el ao de 1997. Existen tres tipos de jubilaciones: por edad, por antigedad joven y por antigedad adulta. Las personas adscritas a la jubilacin por edad deben tener 60 aos o ms y una antigedad en su empleo de menos de 25 aos. Las personas adscritas a la jubilacin por antigedad joven deben tener menos de 60 aos y una antigedad en su empleo de 25 aos o ms. Las personas adscritas a la jubilacin por antigedad adulta deben tener 60 aos o ms y una antigedad en su empleo de 25 aos o ms. Determinar en que tipo de jubilacin, quedara adscrita una persona.15) En una tienda de descuento se efecta una promocin en la cual se hace un descuento sobre el valor de la compra total segn el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le har descuento alguno, si es verde se le har un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deber pagar por su compra. Se sabe que solo hay bolitas de los colores mencionados.16) Calcular el total que una persona debe pagar en una llantera, sabiendo que el precio de cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o ms.17) En un supermercado se hace una promocin, mediante la cual el cliente obtiene un descuento dependiendo de un nmero que se escoge al azar.Si el nmero escogido es menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el descuento es del 20%.Obtener cunto dinero se le descuenta.

18) Calcular el nmero de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aerbico; la formula que se aplica cuando el sexo es femenino es: nm. pulsaciones = (220 - edad) / 10 y si el sexo es masculino la frmula es: nm. pulsaciones = (210 - edad) / 10.19) Una compaa de seguros est abriendo un dpto. de finanzas y estableci un programa para captar clientes, que consiste en lo siguiente: si el monto por el que se efecta la fianza es menor que $50.000 la cuota a pagar ser por el 3% del monto, y si el monto es mayor que $50.000 la cuota a pagar ser el 2% del monto. La afianzadora desea determinar cul ser la cuota que debe pagar un cliente.20) En una escuela, la matrcula de los alumnos se determina segn el nmero de materias que cursan. El costo de todas las materias es igual. Se estableci un programa de estmulo, as: si el promedio obtenido por un alumno en el ltimo periodo es mayor o igual que 9, se le har un descuento del 30% sobre la colegiatura y no se le cobrara IVA; si el promedio es menor que 9 deber pagar la colegiatura completa, la cual incluye el 10% de IVA. Obtener cuanto debe pagar un alumno.21) Una empresa de bienes races ofrece casas de inters social, bajo las siguientes condiciones: Si los ingresos del comprador son menores de $8000 el enganche ser del 15% del costo de la casa y el resto se distribuir en pagos mensuales, a pagar en diez aos. Si los ingresos del comprador son $8000 o ms el enganche ser del 30% del costo de la casa y el resto se distribuir en pagos mensuales a pagar en 7 aos. La empresa quiere obtener cunto debe pagar un comprador por concepto de enganche y cunto por cada pago mensual.22) El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que consiste en que los dueos de la empresa deben depositar en una cuenta bancaria un porcentaje del salario de los trabajadores; adicionalmente los trabajadores pueden solicitar a la empresa que deposite una cuota fija o un porcentaje de su salario en la cuenta del SAR, la cual le ser descontada de su pago. Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidad total de dinero que estar depositado a esa cuenta cada mes, y el pago mensual que recibir.23) Una persona desea iniciar un negocio, para lo cual quiere saber cunto dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no quiere disponer de ella a menos que el monto por hipotecar su casa sea muy pequeo. Si el monto de la hipoteca es menor que $1.000.000 entonces invertir el 50% de la inversin total y un socio invertir el otro 50%. Si el monto de la hipoteca es de $ 1.000.000 o ms, entonces invertir el monto total de la hipoteca y el resto del dinero que necesite para cubrir la inversin total se repartir a partes iguales entre el socio y l.24) El gobierno desea reforestar un bosque que mide determinado nmero de hectreas. Si la superficie del terreno excede a 1 milln de metros cuadrados, entonces decidir sembrar as:

% de la superficie del bosque Tipo de rbol70% pino20% oyamel10% cedro

Si la superficie es menor o igual a un milln de metros cuadrados, entonces sembrar as:50% pino30% oyamel20% cedro

El gobierno desea saber el nmero de pinos, oyameles y cedros que tendr que sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10 cedros. Se sabe que una hectrea equivale a 10 mil metros cuadrados.

25) Una fbrica ha sido sometida a un programa de control de contaminacin para lo cual se efecta una revisin de los puntos IMECA generados por la fbrica. El programa de control de contaminacin consiste en medir los puntos IMECA que emite la fabrica en cinco das de una semana y si el promedio es superior a los 170 puntos entonces tendr la sancin de parar su produccin por una semana y una multa del 50% de las ganancias diarias cuando no se detiene la produccin. Si el promedio obtenido de puntos IMECA es de 170 o menor entonces no tendr ni sancin ni multa. El dueo de la fbrica desea saber cunto dinero perder despus de ser sometido a la revisin.26) Una persona se encuentra con un problema de comprar un automvil o un terreno, los cuales cuestan exactamente lo mismo. Mientras el automvil se devala, con el terreno sucede lo contrario. La persona comprar el automvil si al cabo de tres aos la devaluacin de ste no es mayor que la mitad del incremento del valor del terreno. Aydale a la persona a determinar si debe o no comprar el automvil.27) En una fbrica de computadoras se planea ofrecer a los clientes un descuento que depender del nmero de computadoras que compre. Si las computadoras son menos de cinco se les dar un 10% de descuento sobre el total de la compra; si el nmero de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento y si son 10 o ms se les da un 40% de descuento. El precio de cada computadora es de $11,00028) En una llantera se ha establecido una promocin de las llantas que consiste en lo siguiente: Si se compran menos de cinco llantas el precio es de $300 cada una; el precio es de $250 si se compran de cinco a 10 y de $200 si se compran ms de 10.Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y la que tiene que pagar por el total de la compra.29) En un juego de preguntas a las que se responde Si o No gana quien responda correctamente las tres preguntas.Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son:1. Colon descubri Amrica?2. La independencia de Mxico fue en el ao 1810?3. The Doors fue un grupo de rock Americano?30) Un proveedor de estreos ofrece descuento del 10% sobre el precio sin IVA de algn aparato si este cuesta $2000 ms. Adems, independientemente de sto, ofrece un 5% de descuento si la marca es Nosy. Determinar cunto pagar, con IVA incluido, un cliente cualquiera por la compra de su aparato.31) Una frutera ofrece las manzanas con descuento segn la siguiente tabla: NUM. DE KILOS COMPRADOS% DESCUENTO 0 - 2 0% 2.01 - 5 10% 5.01 - 1015% 10.01 en adelante 20% Determinar cunto pagar una persona que compre manzanas en esa frutera.

32) El dueo de una empresa desea planificar las decisiones financieras del siguiente ao. La planificacin depende de lo siguiente: Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo bancario para que su nuevo saldo sea de $10.000. Si su capital tiene actualmente un saldo positivo pedir un prstamo bancario para tener un nuevo saldo de $20.000, pero si su capital tiene actualmente un saldo superior a los $20.000 no pedir ningn prstamo. Posteriormente repartir su presupuesto as: $5.000 para equipo de cmputo, $2.000 para mobiliario y del resto, la mitad ser para la compra de insumos y la otra para otorgar incentivos al personal. Desplegar qu cantidades se destinarn para la compra de insumos e incentivos al personal y, en caso de que fuera necesario, a cunto ascendera la cantidad que se pedira al banco.33) Segn los resultados de anlisis clnicos, un mdico determina si una persona tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, su edad y su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el mdico se basa es la siguiente:

EDADNIVEL HEMOGLOBINA0 - 1 mes 13 - 26 g%> 1 y < = 6 meses10 - 18 g%> 6 y < = 12 meses11 - 15 g%> 1 y < = 5 aos11.5 - 15 g%> 5 y < = 10 aos12.6 - 15.5 g%> 10 y < = 15 aos13 - 15.5 g%Mujeres > 15 aos12 - 16 g%Hombres > 15 aos14 - 18 g%

34) Una institucin estableci ste programa de estmulo a alumnos con buen rendimiento acadmico:Si el promedio es de 9.5 o ms y el alumno es de preparatoria, entonces este podr cursar 55 unidades y se le har un 25% de descuento.Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria, entonces este podr cursar 50 unidades y se le har un 10% de descuento.Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podr cursar 50 unidades y no tendr ningn descuento.Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 0 a 3 y el alumno es de preparatoria, entonces podr cursar 45 unidades y no tendr descuento.Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 4 o ms y el alumno es de preparatoria, entonces podr cursar 40 unidades y no tendr ningn descuento.Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y se le har un 20% de descuento.Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y no tendr descuento.Obtener el total que tendr que pagar un alumno si la colegiatura para alumnos de profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es de $180 por cada cinco unidades.35) Lea tres nmeros diferentes y determine el nmero medio del conjunto de los tres nmeros (el nmero medio es aquel nmero que no es ni mayor, ni menor).

1.-Dado un nmero, determinar la cantidad de dgitos pares que contiene.

Anlisis:Para la solucin de este problema, se requiere que el usuario ingrese un nmero entero y el sistema verifique y devuelva la cantidad de dgitos enteros que contiene el nmero.

EntradaNmeros(n)SalidaCantidad de dgitos pares (C)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables i,d,c,n: enteros//Entrada

i,d,c,n: enteros Leer (n)//Proceso Mientras n>0

n d=n mod 10 Si d mod 2= 0 entoncesc=c+1 Fin si

n>0 n=n/10Fin mientrasF//SalidaEscribir C

d=n mod 10Fin V

FINCn=n/10c=c+1d mod 2=0 V F V

2.-Dado un numero devolver el digito mayor.

Anlisis:Para la solucin de este ejercicio, se requiere que el usuario ingrese un nmero entero, luego el sistema verifica y devuelve el digito mayor.

EntradaNumero entero (n)SalidaDgito mayor (m)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables d,m,n: Entero//Entrada

d,m,n: Entero Leer (n)//Proceso Mientras n>0

n d=n mod 10 Si d > m entoncesm=d Fin si

n>0 n=n/10Fin mientrasF//SalidaEscribir m

d=n mod 10Fin V

FINmn=n/10m=dd > m V F V

3.-Dado un numero determinar cuntos dgitos tiene.

Anlisis:Para la solucin de este ejercicio, se requiere que el usuario ingrese un nmero entero, luego el sistema verifica y determina la cantidad de dgitos que contiene.

EntradaNumero (n)SalidaCantidad de dgitos (C)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables i, n,c:Entero//Entrada

i, n, c:Entero Leer(n)//Proceso Mientras n>0 n=n/10

n c=c + 1 Fin mientras//Salida Escribir cFin

FINCn=n/10c=c+1n>0F

V

4.-Obtener la cantidad de los primeros N nmeros mltiplos de 7.

Anlisis:Para la solucin de este problema, se requiere que el usuario ingrese un nmero, luego el sistema devuelva la cantidad de nmeros mltiplos de 7.

EntradaNumero (n)SalidaCantidad(c)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables i,c,n: Entero//Entrada

i,c,n: Entero Leer (n)//Proceso i=1

n Mientras i 0 d= t mod 10 t=t\10 i=i*10 + d

t = n Fin mientrasSi n = i entonces r= es capicaSino

t>0 r=no es capicaFin SiF//SalidaEscribir r

d =t mod 10t=t\10i=i*10+dFin V

n=iFV

r=Es capicar=no es capica

r

FIN

11.-Dado un numero entero en base 10, convertir el numero a otra base menor que 10.

Anlisis:Para la solucin de este problema, se requiere que el usuario ingrese el nmero entero y la base a convertir, luego el sistema devuelve el nmero convertido a su nueva base.

EntradaNmero (n)Base (b)SalidaNmero convertido (nc)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Declarando Variables n,d,i,r :Entero//Entrada

n,d,i,r :Entero Leer (n,b)//Proceso Mientras n>0 d= n mod b

n, b n= n \ 10 i=i* 10 + d Fin Mientras Mientras i>0 d= i mod 10

n>0 i=i\10 F r=r*10 + d Fin Mientras//Salida V

d=n mod bn=n\ bi=i*10 + dEscribir rFin

rd=i mod bi=i \ br=r*10 + dFINi>0 FV

12.-Crear un algoritmo que indique si un numero es cubo perfecto o no,se dice que un numero es cubo perfecto si al sumar los cubos de sus dgitos dan el mismo nmero, por ejemplo 153, cubos de sus dgitos 13+53+33=153 es cubo perfecto.

Anlisis:Para la solucin de este problema, se requiere que el usuario ingrese el numero y el sistema procesa y determina si es o no un cubo perfecto.

EntradaNmero (n)SalidaRespuesta (r)

Pseudocdigo Diagrama de Flujo

INICIOInicio//Variable t,d,s,n :Entero r : cadena

t,d,s,n : Enteror:Cadena//Entrada Leer (n)//Proceso t=n

n Mientras t >0 d= t mod 10 t=t \ 10 s= s + d ^3

t = n Fin mientrasSi n = s entonces r= cubo perfectoSino

t>0 r=no es cubo perfecto FFin Si//SalidaEscribir r V

d =t mod 10t=t\10s= s + d^3Fin

n=s F V

r=Es cubo perfector=no es cubo perfecto

r

FIN

Mg. Ing. Carlos Franco del Carpio 2