IntroducciÓn a La Programacion Algoritmos y Dfd

14
Introducción a la Programación Oswaldo Achury Pag 1/14 Ingeniero de Sistemas, U.E.M.C.L.L. INTRODUCCIÓN A LA PROGRAMACION CAPITULO 1. CONCEPTOS BÁSICOS. 1. Introducción. Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de maquina una colección de instrucciones muy detallada que controla los circuitos y envió de señales de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayoría de las maquinas se pide programar en diversos tipos de lenguajes que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como los es el lenguaje C que además es de propósito general. Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier maquina, casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes: sencillez, uniformidad y portabilidad. 2. DEFINICIONES: 1. Software (Programas): Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones, llamados programas o software. El software se divide en dos grandes grupos: 2. Software del sistema: Es el conjunto de programas indispensables para que la máquina funcione, ejemplo: el sistema operativo, editores de texto, compiladores e intérpretes y los programas de utilidad (utilitarios). 3. Software de aplicación: Son programas que realizan tareas concretas, tales como, nóminas, contabilidad, análisis estadísticos, etc. También se le conoce como "paquetes". 4. Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz. Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación. Lenguajes de programación: Los lenguajes de programación se clasifican en: Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

description

Documento que contiene conceptos sobre lenguaje de programcion, algoritmo, digramas de flujo y ademas incorpe ejercicios sobre algoritmos y diagrams de flujo matematicos

Transcript of IntroducciÓn a La Programacion Algoritmos y Dfd

Page 1: IntroducciÓn a La Programacion Algoritmos y Dfd

Introducción a la Programación

Oswaldo Achury Pag 1/14 Ingeniero de Sistemas, U.E.M.C.L.L.

INTRODUCCIÓN A LA PROGRAMACION

CAPITULO 1.

CONCEPTOS BÁSICOS.

1. Introducción.

Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de maquina una colección de instrucciones muy detallada que controla los circuitos y envió de señales de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayoría de las maquinas se pide programar en diversos tipos de lenguajes que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como los es el lenguaje C que además es de propósito general. Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier maquina, casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes: sencillez, uniformidad y portabilidad.

2. DEFINICIONES:

1. Software (Programas): Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones, llamados programas o software. El software se divide en dos grandes grupos:

2. Software del sistema: Es el conjunto de programas indispensables para que la máquina funcione, ejemplo: el sistema operativo, editores de texto, compiladores e intérpretes y los programas de utilidad (utilitarios).

3. Software de aplicación: Son programas que realizan tareas concretas, tales como, nóminas, contabilidad, análisis estadísticos, etc. También se le conoce como "paquetes".

4. Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz. Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.

Lenguajes de programación: Los lenguajes de programación se clasifican en: Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

Page 2: IntroducciÓn a La Programacion Algoritmos y Dfd

Introducción a la Programación

Oswaldo Achury Pag 2/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas. Lenguaje de Alto Nivel: Son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (inglés) que facilita la escritura y comprensión para el programador. Este lenguaje es independiente de la estructura del computador (Hardware), es decir son transportables. Los programas hechos en este lenguaje se les conoce como programa fuente y se requiere de un traductor (programa) llamado compilador para que el programa fuente se transforme a código máquina; a este programa transformado se le conoce como programa objeto; al proceso de traducción se le conoce como compilación; luego es requerido de un linkado o enlace para que el programa sea ejecutable. Algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden especifico. Un procedimiento para resolver un problema en términos de: a) Las acciones a ejecutarse y b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo. Un ejemplo de un algoritmo para llegar a la escuela

a) Salir de la cama b) Quitarse la pijamas c) Darse un baño d) Vestirse e) Desayunar f) Arreglarse g) Tomar los útiles h) Utilizar el transporte ( autobús, carro , bicicleta, etc)

Programa. Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de

acuerdo con los datos que se estén procesando. Es un algoritmo desarrollado para ser utilizado por la computadora. Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una

máquina de cómputo.

3. DIAGRAMAS DE FLUJO

Es una representación gráfica de un algoritmo. Los símbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI) y las mas frecuentemente empleados son:

Page 3: IntroducciÓn a La Programacion Algoritmos y Dfd

Introducción a la Programación

Oswaldo Achury Pag 3/14 Ingeniero de Sistemas, U.E.M.C.L.L.

SIMBOLO DESCRIPCION

Indica el inicio y el final de nuestro diagrama de flujo.

Indica la entrada y salida de datos.

Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética.

Símbolo de decisión indica la realización de una comparación de valores.

Repetitiva Desde o Ciclo

Conector

Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI). . Todo diagrama debe tener un inicio y un fin. . Se deben se usar solamente líneas de flujo horizontales y/o verticales. . Se debe evitar el cruce de líneas utilizando los conectores. . Se deben usar conectores solo cuando sea necesario. . No deben quedar líneas de flujo sIn conectar. . Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. . Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras. . Evitar la terminología de un lenguaje de programación o maquina. . Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que este sea entendible por cualquier persona que lo consulte. . Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde se dirige.

Pseudocódigo Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es mas fácil de utilizar ya que es similar al lenguaje natural.

Page 4: IntroducciÓn a La Programacion Algoritmos y Dfd

Introducción a la Programación

Oswaldo Achury Pag 4/14 Ingeniero de Sistemas, U.E.M.C.L.L.

El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración condicional, así como para las instrucciones adicionales y otras estructuras de control.

4 FASES PARA LA PROGRAMACION POR COMPUTADOR

Este proceso es la creación de un programa y su correspondiente ejecución aunque requieren de una serie de pasos siguientes:

1. Análisis del problema

Podríamos resumir a responderse a las tres siguientes preguntas: a. ¿Qué entradas se requieren? Tipo y cantidad. b. ¿Qué salida se desea? Tipo y cantidad. c. ¿Qué método o proceso se empleará para obtener la salida deseada?. En esta etapa prácticamente determinamos el QUE es lo que hace el programa a diseñar.

2. Diseño del Algoritmo En esta etapa se determina el COMO hace el programa la tarea solicitada. El diseño del algoritmo es independiente del lenguaje de programación en el que se va a codificar posteriormente. Para el diseño de un algoritmo tenemos que utilizar los resultados del análisis del problema y realizar con ello una estructura modular (diseño modular) que consiste en un conjunto de módulos. Es decir la solución de un problema complejo se realiza dividiendo el problema en subproblemas y estos subproblemas en otros de nivel más bajo hasta conseguir soluciones unitarias. Cada solución unitaria o subprograma o subproblema se le conoce como MODULO y tiene un punto de entrada y una salida. Cualquier programa bien diseñado consta de un programa principal (módulo de nivel más alto) que llama a subprogramas (módulos de nivel más bajo). Todo este diseño se le conoce como TOP-DOWN o diseño descendente y la programación en este diseño se le conoce como programación modular. Por otra parte, la programación modular nos conduce a la programación estructurada que significa escribir un programa de acuerdo a las siguientes reglas: - El programa tiene un diseño modular. - Los módulos son diseñados de modo descendente. - Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición. Para diseñar un algoritmo se requiere de herramientas, las cuales hay varias; para nuestro estudio solo estudiaremos 2 de ellas: Diagramas de flujo (Flowchart) y pseudocódigo. Ud. puede usar cualquiera de ellas en forma regular. Por su importancia y extensión lo veremos posteriormente.

3. Codificación de un Programa

Es la escritura en un lenguaje de programación de la representación del algoritmo desarrollado en la etapa anterior, en cierto modo la codificación es un proceso mecánico

Page 5: IntroducciÓn a La Programacion Algoritmos y Dfd

Introducción a la Programación

Oswaldo Achury Pag 5/14 Ingeniero de Sistemas, U.E.M.C.L.L.

porque el algoritmo ya está hecho y solo queda la transformación a un lenguaje requerido obteniéndose así el programa fuente.

4. Compilación y ejecución

Hecho el programa fuente debe ser traducido a lenguaje máquina con el compilador, en este proceso si hay errores del programa se procede a su corrección para luego obtener así un programa objeto, si a este programa se hace una fase de montaje o Link, se transforma en un programa ejecutable

5. Verificación y depuración de un programa.

En esta etapa el programa se ejecuta con una amplia variedad de datos de entrada llamados datos de test o prueba que determina si el programa tiene errores ("bugs"). Si se encuentra errores entonces hay que depurar y corregir. Los errores frecuentes a conseguir son: a. errores de compilación - de sintaxis, de escritura, etc. b. errores de ejecución - división por cero, de overflow, etc. c. errores lógicos - de lógica interna, de secuencia, etc.

6. Documentación y mantenimiento La documentación de un programa puede ser interno y externa. La interna es la que contiene el programa en líneas de comentario. La externa incluye el análisis, diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados. La documentación es vital cuando se desea corregir posibles errores futuros o se quiere cambiar o modificar el programa. A estos cambios se le denominan mantenimiento del programa. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores.

Page 6: IntroducciÓn a La Programacion Algoritmos y Dfd

Tipos de Datos y operadores

Oswaldo Achury Pag 6/14 Ingeniero de Sistemas, U.E.M.C.L.L.

CAPITULO 2.

LOS DATOS Y LAS OPERACIONES BASICAS.

1. IDENTIFICADOR.

Un identificador es una serie de caracteres formados por letras, dígitos y el carácter subrayado ( _ ) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc.

2.TIPOS DE DATOS.

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

Carácter identifica el contenido de la variable que se declare como carácter. Su longitud es de 1 byte. Entero se refiere a valores de tipo entero. Ocupa 2 bytes. Real indica que la variable recibe datos de tipo real con aproximadamente 6 dígitos de precisión. Su longitud en bytes es de 4. Doble define variables que aceptan datos de tipo real con 12 dígitos de precisión. Cada variable ocupa 8 bytes de memoria.

3. VARIABLES.

Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare. Una variable es un identificador que puede cambiar de valor durante la ejecución de un programa. Una variable es una posición de memoria donde se puede almacenar una valor para uso de un programa.

7. O P E R A D O R E S

Un operador es un símbolo que indica al compilador que realice manipulaciones lógicas o

Page 7: IntroducciÓn a La Programacion Algoritmos y Dfd

Tipos de Datos y operadores

Oswaldo Achury Pag 7/14 Ingeniero de Sistemas, U.E.M.C.L.L.

matemáticas específicas.

7.1 Operadores Aritméticos

Pseudocódigo Nombre del Operador + suma. - resta. * multiplicación / división Modulo Módulo o resto de División entera Cuando se aplica el símbolo / a un entero o a un carácter, cualquier residuo se trunca. Por ejemplo 5/3 será 1 en división entera. El símbolo menos hace el efecto de multiplicar su único operando por-1 es decir, cualquier número precedido por un signo menos cambia de signo.

7.2. Incremento y decremento

x=x+1 aumenta el valor de x en 1 x=x-1 decrementa el valor de x en 1

7.3 Prioridad de los operadores

1.- paréntesis 2.- elevar a potencias 3.- multiplicación y división 4.- suma y resta

7.4 Operadores Relaciónales

Pseudocódigo Nombre del Operador > Mayor que < Menor que > = Mayor o igual que <= Menor o igual que

< > o = Diferente = Igual

7.5 Operadores Lógicos:

Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional.

Page 8: IntroducciÓn a La Programacion Algoritmos y Dfd

Tipos de Datos y operadores

Oswaldo Achury Pag 8/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Operadores Lógicos And Y Or O Not Negación

Operador And Operando1 Operador Operando2 Resultado V AND V V V AND F F F AND V F F AND F F

Operando1 Operador Operando2 Resultado V OR V V V OR F V F OR V V F OR F F

Operador Not Operando Resultado V F F V

7.6 PALABRAS RESERVADAS.

Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.

Page 9: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 9/14 Ingeniero de Sistemas, U.E.M.C.L.L.

CAPITULO 3.

EJEMPLOS & EJERCICIOS.

Calcular e imprimir el resultado de la suma de 2 números cualesquiera

1) Análisis del problema: Nos piden sumar dos números (sin importar si son naturales, enteros, reales o irreales) por lo tanto no existe ninguna restricción numérica. El resultado de dicha suma se debe imprimir o mostrar en pantalla. Para el caso de nuestro DFD debemos recordar que cuando manejamos variables (valores no definidos) siempre debemos definir las condiciones iniciales del programa, en este caso a, b y c, donde a y b almacenaran los valores ingresados y c guardara el resultado de dicha suma. 2) Diseño del algoritmo INICIO Recibir numero 1 y guardarlo en a Recibir numero 2 y guardarlo en b C = a + b Mostrar c FIN 3) Diagrama de Flujo de datos

FIN

INICIO

a, b, c

Ingrese ->a

Ingrese ->b

C= a + b

c

Page 10: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 10/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Imprimir si un numero es positivo o negativo 1) Análisis del problema: En este caso se debe definir si un numero cualquiera es positivo o negativo, para ello debemos utilizar un comparador lógico (mayor que o menor que) que nos permita definir el valor del numero, para ello nuestra referencia (recordando la definición de positivo en matemáticas) es el valor 0. para el diagrama de flujo de datos necesitamos una variable que almacene el numero y sobre el símbolo de “condición” se imprimirá si es o no positivo. 2) Diseño del algoritmo INICIO Recibir numero 1 y guardarlo en num1 Si num1 es > 0 Imprimir “num1” es positivo En caso contrario Imprimir “num1” es negativo FIN 3) Diagrama de Flujo de datos

FIN

nu

m1

INICIO

num1

Ingrese #

->num1

“num1 es positivo”

num1 >0 “num1 es negativo”

Si No

Page 11: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 11/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Hacer un programa que lee dos números y calcula e imprime su suma, resta, producto y división.

1) Análisis del problema: El programa debe calcular la suma, resta, producto y división de dos números cualesquiera, por lo tanto para obtener esos números debemos guardarlos en variables las que llamaremos y, z. Hay una restricción para la división, el divisor no puede ser igual a cero, para este caso se debe evaluar a través de una condición que la variable que será el divisor sea diferente a 0. Para el diagrama de flujo de datos definiremos tres variables y, z y res, esta última guardara los resultados de las operaciones. 2) Diseño del algoritmo INICIO Recibir numero 1 y guardarlo en y Recibir numero 2 y guardarlo en z Res= y + z Imprimir “suma” res Res= y – z Imprimir “resta” res Res= y * z Imprimir “Producto” res Si z es = a 0 Imprimir “no se puede dividir, división por 0” En caso contrario Res= y / z Imprimir “división” res

FIN 3) Diagrama de Flujo de datos

FIN

nu

m1

INICIO

y, z, res

Ingrese # ->y “no se puede

dividir, división por

0”

z = 0

“División es “ res

Si No

Ingrese # ->z

res =y + z

res =y - z

“Suma es:” res

1

1

“Resta es:” res

res =y * z

“Producto es:” res

2

2

res =y / z

Page 12: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 12/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Hacer un programa que halle e imprima los 50 primeros números pares 1) Análisis del problema: Para hallar los 50 primeros números pares debemos partir de lo siguiente: 1- el concepto de par se define cualquier número que sea múltiplo de 2, 2- nuestro programa parte del numero 2, 3- debemos utilizar un “ciclo” que a nivel de algoritmo puede ser “ haga … hasta… “ o “ para … hasta … . La situación para el DFD se debe incorporar el concepto “contador” el cual llevara el control hasta que se logre los 50 primeros números pares y la figura con la que representaremos el ciclo de nuestro programa. 2) Diseño del algoritmo INICIO Variable par = 2 Variable i = 1 Para i = 1 hasta i = 50 Imprimir par Par = par + 2 i = i +1

FIN 3) Diagrama de Flujo de datos Calcular e imprimir el Área del círculo y la longitud de la circunferencia.

1) Análisis del problema: La única entrada del problema es el radio y puede tomar cualquier valor dentro del rango de números reales.

FIN

nu

m1

INICIO

par, i

par

i = 1 hasta i = 50

par= par + 2

i=i+1

Page 13: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 13/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Las salidas serán dos variables: la superficie del círculo y longitud de la circunferencia, estos serán los resultados finales y serán también de tipo real porque provienen de constantes que pertenecen a los números reales. Luego diremos que: 2) Diseño del algoritmo: Para el diseño del algoritmo lo que se debe hacer en primer lugar es la descomposición del problema en subproblemas (diseño descendente) TOP-DOWN y refinarlo (stepwise refinement). Por lo tanto:

1. Entrada de datos RADIO que es ingresado por el usuario. 2. Cálculo de superficie tenemos una fórmula que es:

ÁREA=3.141592 * RADIO2 3. Cálculo de longitud para longitud tenemos la siguiente formula:

L =2 * (3.141592)*RADIO 4. SALIDA de resultados Escribir: RADIO, AREA ,L

INICIO Variable pi = 3.141592 Ingresar el radio y guardarlo en RADIO AREA = pi * RADIO ^2 L = 2 * pi * RADIO Imprimir AREA, RADIO, L

FIN 3) Diagrama de Flujo de datos

FIN

nu

m1

INICIO

RADIO, AREA,

pi =3.141592

Ingrese el radio->RADIO

AREA = pi * RADIO * RADIO

L = 2 * pi * RADIO

RADIO, AREA, L

Page 14: IntroducciÓn a La Programacion Algoritmos y Dfd

Ejemplos y Ejercicios

Oswaldo Achury Pag 14/14 Ingeniero de Sistemas, U.E.M.C.L.L.

Ejercicios: Hacer el algoritmo de: 1. Programa que calcule e imprima la suma de los N primeros números

naturales. 2. Programa que genere la lista de los N primeros números primos. 3. Programa que obtenga e imprima la lista de los divisores de un número N

entero positivo. 4. Programa que calcule el máximo común divisor de dos números enteros

positivos por el algoritmo de Euclides. 5. Programa que obtenga e imprima la lista de caracteres del código ASCII

correspondiente a los números desde 32 al 126. 6. Programa que obtenga el producto de dos números enteros positivos

mediante sumas sucesivas. 7. Programa que obtenga el cociente y el resto de dos números enteros

positivos mediante restas. 8. Programa que evalúe un polinomio de grado N. Los datos de entrada son

el valor de la variable y de los coeficientes. 9. Programa que calcule e imprima los números perfectos menores que 1000

(un número es perfecto si la suma de sus divisores excepto el mismo es igual al propio número).

10. Programa que determine si dos números enteros positivos son amigos ( Dos números son amigos si la suma de los divisores del primero excepto el mismo es igual al segmento y viceversa).

11. Programa que imprime la tabla de multiplicar de un número entero positivo 12. Programa que ingresen 2 números enteros positivo M y N y calcula e

imprime los múltiplos de N, inferiores a M, que sean capicúas.