Apuntes programacion basica

87
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE MATERIAS PROPEDÉUTICAS PROGRAMACIÓN BÁSICA Notas de complementación para el curso INGENIERÍA CIVIL PLAN F2 Créditos: 8 Docentes: M. en I. MARIA DE LOS ÁNGELES CONTRERAS FLORES Mtra. LETICIA PALMA ROSALES

Transcript of Apuntes programacion basica

Page 1: Apuntes programacion basica

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍA

DIVISIÓN DE MATERIAS PROPEDÉUTICAS

PROGRAMACIÓN BÁSICA Notas de complementación para el curso

INGENIERÍA CIVIL PLAN F2

Créditos: 8

Docentes:

M. en I. MARIA DE LOS ÁNGELES CONTRERAS FLORES

Mtra. LETICIA PALMA ROSALES

Page 2: Apuntes programacion basica

2

ÍNDICE Contenido

I.- Introducción

II.- Unidad I (Definiciones) …………………………………………………………………………………………………………………………………………………………………………….. 4

III.- Unidad II (Estructuras de control) ……………………………………………………………………………………………………………………………………………………… 19

III.I.- Secuenciación …………………………………………………………………………………………………………………………………………………………………………………………. 19

III.II.- Selección (Simple, compuesta y múltiple) ……………………………………………………………………………………………………………………………………….. 26

III.III.- Iteración ……………………………………………………………………………………………………………………………………………………………………………………………… 43

IV.- Unidad III Vectores y Matrices ………………………………………………………….……………………………………………………………………………………..……….. 55

V.- Unidad IV Funciones (Modularidad) ……………………………………………………………………………………………………………………………………..………………… 76

VI.- Bibliografía …………………………………………………………………………………………………………………………………………………………………………………………….. 87

Page 3: Apuntes programacion basica

3

INTRODUCCIÓN

El presente trabajo tiene como objetivo apoyar a los alumnos de la materia de programación básica proporcionando los conocimientos

básicos en el área de programación, de la misma forma se busca que el alumno refuerce los conocimientos que han sido adquiridos en

clase.

El contenido del trabajo está dividido en cuatro unidades principales en las cuales se abordan desde los fundamentos teóricos hasta su

aplicación en la elaboración de algoritmos para su implementación en los sistemas, la primera unidad define los conceptos básicos de la

programación y su correspondiente uso, por otra parte en la segunda unidad se da una descripción general de lo que son las estructuras

de control utilizadas al momento de realizar un programa; esta sección cuenta con una serie de ejemplos que hacen que el funcionamiento

de estas estructuras sea entendido de una mejor forma, además se dan algunas recomendaciones al querer hacer uso de estas

estructuras.

En la tercera unidad se aborda el tema de las estructuras estáticas más utilizadas al momento de realizar un programa, su

funcionamiento es descrito con el desarrollo ejemplos y recomendaciones útiles.

Finalmente en la cuarta unidad se describe de forma general el uso de la programación modular, especificando y detallando el manejo e

implementación de cada uno de sus componentes, utilizando para ello un ejemplo que permite esquematizar su funcionamiento.

Page 4: Apuntes programacion basica

4

UNIDAD I

DEFINICIONES

1.- Algoritmo

Es una manera formal y sistemática de representar la descripción de un proceso se caracteriza por hacerlo mediante una serie de pasos.

Características de un algoritmo

Definido: Todas las acciones deberán estar rigurosamente especificadas por medio de un lenguaje formalmente definido.

Finito: Un algoritmo debe de terminar después de una serie de pasos

Preciso: siempre debe de tener el mismo orden en la ejecución de cada uno de los pasos

Eficiente: Todas las operaciones a ejecutar deberán ser ejecutadas por cualquier persona en cualquier tiempo finito.

Tiene entradas: Un algoritmo tiene cero o más entradas que son usadas mediante la ejecución.

Tiene salidas: Un algoritmo tiene una o más salidas que son producidas como resultado de su ejecución.

2.- Pseudocódigo

Es la descripción del algoritmo realizada en un lenguaje informal es decir un lenguaje que sea neutro (independiente del mecanismo en el

que se solucionara el problema) y completo (que cuente con la capacidad de representar cualquier idea).

Page 5: Apuntes programacion basica

5

3.- Programa

Es la descripción de un algoritmo en un lenguaje de programación, que sea capaz de optimizar cada uno de los pasos del algoritmo para

que sea entendido por la computadora.

Existen diversos tipos de programas, dependiendo del objetivo y del lenguaje que se utilice para realizar un programa:

Fuente: Es el programa escrito por el programador tomando como base el algoritmo realizado, es el primero que se introduce en

la computadora para que realice las instrucciones deseadas, además de ser independiente de la computadora donde lo ingresemos

ya que se introduce en un programa “editor”, o IDE.

Objeto: Es el producido desde el programa fuente por medio de un proceso que se denomina compilación, en este proceso cada

uno de los pasos (instrucciones) que el programador introduce en el programa fuente son traducidos a operaciones que la

computadora interpreta directamente.

Ejecutable (binario): Es el producido mediante el programa objeto que se genera en un proceso llamado “montaje”, este proceso

es realizado en un programa montador o linker, en este proceso se realiza una especie de liga que une al programa objeto con

código que se encuentra dentro de la biblioteca del sistema (System Library) y que ayuda para la realización de las operaciones

que son necesarias para que el programa funcione correctamente algunas de estas funciones son: la lectura del teclado, escritura

en la pantalla, la realización de operaciones aritméticas entre otras.

De utilidad: Son programas que son utilizados por cualquier aplicación (programa), son de uso general, algunos ejemplos de estos

programas son: compiladores, editores, montadores, etc.

Page 6: Apuntes programacion basica

6

4.- Lenguaje de programación

Es el lenguaje utilizado por el programador para ingresar las instrucciones a la computadora para la ejecución correcta del algoritmo, y

que a su vez genera el código fuente.

Existen diversos lenguajes de programación que se clasifican de acuerdo a las instrucciones y gramática que servirá para la codificación

del algoritmo. Los lenguajes se clasifican en tres grandes grupos:

Lenguaje maquina: Son los lenguajes entendibles directamente por la computadora, las instrucciones en este lenguaje son expresados

en términos de la unidad más pequeña (bit) es decir en ceros y unos, algunos ejemplos de instrucciones de este lenguaje son:

0011 0110 0001

1010 1111 0101

Este lenguaje es muy complicado para entenderse por un programador pero muy fácil para una computadora.

Lenguajes de bajo nivel (ensambladores): Son lenguajes generalmente dependientes de la maquina, este tipo de lenguajes simplifica

en gran manera la interpretación del lenguaje maquina ya que asocia a cada grupo de bits una instrucción a ser realizada por la

computadora estas instrucciones son conocidas como nemónicos o nemotécnicos algunos ejemplos son: ADD (suma), SUB (resta), MPY

(multiplicar), etc. Un ejemplo más completo seria:

Page 7: Apuntes programacion basica

7

Después que el programa ha sido escrito en un lenguaje ensamblador se necesita de un programa llamado ensamblador que lo traduzca a

código máquina.

Lenguajes de alto nivel: Son lenguajes en donde las instrucciones son escritas en lenguaje parecido al de los humanos, en general al

lenguaje inglés, esto facilita mucho la lectura y escritura de programas. Algunos ejemplos de instrucciones son: IF, ELSE,

THEN, WHILE, REPEAT, etc. ADA, BASIC, COBOL, FORTRAN, C, PASCAL entre otros, son ejemplos de algunos de estos lenguajes.

En general se puede ver la acción de un programador en la siguiente imagen

Page 8: Apuntes programacion basica

8

5.- Sentencia

Es la unidad mínima o elemental de un lenguaje e indica una norma procesal, para la forma específica de trato de un elemento en una

operación. La precisión de las sentencias determina la precisión de la ejecución del programa y para conseguirla deben ajustarse a una

sintaxis muy concreta. En general, las sentencias se clasifican en ejecutables (especifican operaciones de cálculos aritméticos y

entrada/salida de datos) y no ejecutables (no realizan acciones concretas, ayudan a la legibilidad del programa, pero no afecta en la

ejecución del programa).

Sentencia de entrada.- Es aquella que permite el ingreso de datos, para el caso del lenguaje informal su sintaxis es:

lee nombre_variable

Sentencia de salida.- Es aquella que permite mostrar en un dispositivo de salida un mensaje y/o un valor de una variable, para el

caso de lenguaje informal su sintaxis es:

escribe [“texto”] ó [“texto” , variable] ó [variable , “texto”]

Sentencia de asignación.- Es aquella que permite guardar un valor constante o el resultado de una expresión en un identificador

de variable, para el lenguaje informal la sintaxis es:

variable ← constante ó expresión (la variable toma el valor de la constante o expresión)

Sentencia de control.- Es aquella que define el flujo de acciones a ser realizadas por el procesador

6.- Identificador

El nombre de un elemento dentro de un programa, si el nombre hace referencia a una variable se le conoce como identificador de

variable, los identificadores representan los objetos de un programa (constantes, variables, tipos de datos, procedimientos, funciones,

unidades, programas, etc.). Un identificador se caracteriza por estas reglas:

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no puede contener espacios en blanco

Letras, dígitos y caracteres subrayados ( _ ) están permitidos después del primer carácter

Page 9: Apuntes programacion basica

9

No se puede utilizar una palabra reservada

Identificadores válidos (ejemplos)

nombre

letras

CONT

A_B_C

nombre_apellido

Identificadores no válidos (ejemplos)

Fox&Horas contiene un carácter no válido (&)

F Bar contiene un espacio en blanco

7Cont contiene un número al inicio

Año contiene un carácter no válido (ñ)

único contiene un acento

7.- Constantes y Variables

Una constante es un valor que no puede cambiar durante la ejecución del programa, recibe un valor en el momento de la compilación del

programa y este valor no puede ser modificado

Las variables son objetos de un programa cuyo valor puede cambiar durante la ejecución del programa. El cambio se produce mediante

sentencias ejecutables.

Page 10: Apuntes programacion basica

10

8.- Contador y Acumulador

Contador: Un contador es un variable que se incrementa, cuando se ejecuta, en una unidad o en una unidad constante.

Ejemplo:

contador ←25

contador ←Contador + 1 (el valor final de contador será 26)

Acumulador: Es una variable que se incrementa en una cantidad variable.

Ejemplo:

suma ←suma + x (si x vale 7 y Suma 40, el nuevo valor de Suma será 47)

9.- Expresiones

Se denomina expresión a toda combinación de símbolos, números y signos operatorios. Según la naturaleza de estos signos operatorios

las expresiones se clasifican en: algebraicas, relacionales y lógicas. La mayoría de los signos operatorios son binarios esto es requieren

de 2 operandos. Las expresiones se evalúan de izquierda a derecha y de acuerdo a la precedencia de los signos operatorios. La

precedencia de un signo operatorio es la que indica el orden de realización de cada operación dentro de una expresión.

Page 11: Apuntes programacion basica

11

Signos operatorios aritméticos

Signos operatorios relacionales

Page 12: Apuntes programacion basica

12

Signos operatorios lógicos

Reglas básicas de precedencia

Las expresiones se evalúan de izquierda a derecha

1. Un operando entre dos signos operatorios de diferente precedencia es afectado por el de mayor precedencia

2. Un operando entre dos signos operatorios de igual precedencia es afectado por el que está a la izquierda

3. Las expresiones entre paréntesis son evaluadas antes que cualquier expresión

Nota: El valor de precedencia que tiene cada uno de los signos se muestra en los rectángulos que están en la parte izquierda de cada tabla

Page 13: Apuntes programacion basica

13

10.- Comentarios

La legibilidad de los programas aumenta considerablemente utilizando comentarios. Los comentarios es un texto explicativo, situado en el

programa e ignorado por el compilador. Los comentarios no se consideran (son invisibles) en la fase de compilación y ejecución, pero es de

gran importancia en la fase de análisis, y mantenimiento. Los comentarios son una parte importante de la documentación de un programa

ya que ayuda al programador a entender y comprender el programa.

El formato más común para la especificación de un comentario es: /* esto es un comentario*/

11.- Diagramas de flujo

Un diagrama de flujo (flowchart) es una representación grafica del algoritmo y muestra como fluye este de principio a fin. Los símbolos

utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI).

Símbolos más usados para los diagramas de flujo

Para indicar el inicio y fin de un algoritmo

Para indicar un proceso (cualquier operación)

Para entradas o salidas

Page 14: Apuntes programacion basica

14

Para unir un diagrama de flujo en la misma página (primero), o en otra página (segundo). Se les conoce como

conectores

Llamada a un procedimiento o función

Para la toma de decisiones

12.- Metodología de la programación

Ciclo de vida del desarrollo de un programa

Page 15: Apuntes programacion basica

15

Fase de solución.- En base a los requerimientos de un usuario se crea o se busca un método computacional de solución

Inicio.- Todo problema surge debido a las necesidades de un usuario de automatizar procesos que involucran el manejo masivo de

información.

Planteamiento del problema.- Consiste en plantear formalmente el problema a través de una especificación detallada de las entradas a

procesar, las principales funciones de procesamiento a efectuar y las salidas a producir. Definir además las condiciones de excepción que

deberán satisfacer las entradas y como serán tratadas dichas excepciones.

Desarrollo del algoritmo de solución.- Se deben tener tres aspectos en cuenta:

Obtener un método computacional que permita resolver el problema

Obtener la especificación jerárquica funcional del problema mediante la definición de módulos y refinamientos sucesivos

Obtener las estructuras de datos a utilizar para resolver el problema

Pruebas del algoritmo.- Permiten determinar el grado de corrección del algoritmo y verificar la satisfacción de las necesidades del

usuario.

Fase de Implantación.- Una vez definido el método computacional de solución, se determina el lenguaje de programación a utilizar de

acuerdo al mecanismo en el que será resuelto el problema

Codificación del algoritmo.- Es la traducción del algoritmo escrito en lenguaje informal a su equivalente en lenguaje de programación.

Consiste en capturar la codificación y guardarla en algún medio de almacenamiento de la computadora generándose el programa fuente

Pruebas del programa.- Es una actividad computarizada iterativa de revisión sintáctica del programa fuente, que involucra su entrada al

compilador y la corrección de errores hasta que el programa sea sintácticamente valido generándose el programa objeto o ejecutable

equivalente.

Page 16: Apuntes programacion basica

16

Programa en operación.- Consiste en instalar el programa y sus archivos en la institución representada por el usuario que solicitó la

aplicación.

Retroalimentación.- Una vez evaluado el funcionamiento del programa mediante el cumplimento de objetivos, utilidad, consumo de

recursos y oportunidad de servicio el usuario manifiesta nuevas necesidades.

13.- Tipos de datos

Cuando se declara una variable se especifica tanto su nombre como el tipo al que pertenece. El nombre sirve para distinguirla de

cualquier otra variable y el tipo indica la forma en que debe almacenarse el valor de la variable en la computadora, de la cual dependerá el

rango de valores que ésta podrá tomar así como su precisión.

Ejemplo de la declaración de una variable:

Lenguaje in formal

nombre_variable : <tipo de dato> variable1 : entero , variable2 : float , variable3 : char

Page 17: Apuntes programacion basica

17

14.- Estructuras de control

Las estructuras de control de un lenguaje de programación son métodos de especificar el orden en que las instrucciones de un algoritmo

se ejecutarán. El orden de ejecución de las sentencias (lenguaje) o instrucciones determinan el flujo de control. Las estructuras de

control básicas son:

Secuenciación

Selección (simple y doble)

Iteración

15.- Programación modular

Es uno de los métodos más flexibles y potentes para mejorar la productividad de un programa. En esta programación el programa se

divide en módulos, en donde cada uno de ellos se ejecuta una tarea en específico y se programan de forma independiente de otros

módulos.

Cada programa contiene un módulo llamado programa principal que es el que controla todo lo que sucede, este transfiere el control a los

diferentes submódulos para que estos puedan ejecutar sus tareas correspondientes, y habiendo terminado regresar el control al

programa principal, puede darse el caso de que un módulo contenga a otro modulo sin embargo cada módulo debe eventualmente devolver

al módulo del cual se recibe originalmente el control.

Ejemplo de la programación modular (estructura):

Page 18: Apuntes programacion basica

18

16.- Programación estructurada

La programación estructurada significa escribir un programa de a cuerdo a las siguientes reglas:

El programa tiene un sentido modular

Los módulos son diseñados de modo descendente

Cada modulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección e iteración.

Page 19: Apuntes programacion basica

19

UNIDAD II

ESTRUCTURAS DE CONTROL 1.- Secuenciación

Se refiere a la capacidad de agrupar una secuencia de sentencias básicas formando una estructura compuesta. Esta estructura justifica

y garantiza que el flujo de control dentro de los módulos sea de arriba hacia abajo. Sus representaciones son:

Diagrama de flujo Pseudocódigo

comienza

sentencia 1

sentencia 2

sentencia n

termina

Page 20: Apuntes programacion basica

20

Ejemplo 1: Calcular el área de un polígono en forma de L c

Entradas: Tamaño de cada uno de los lados del polígono

Salidas: El área total del polígono

Diagrama de flujo

Page 21: Apuntes programacion basica

21

Pseudocódigo

a,b,c,area1,area2,area3 : entero (int) /* indica que son variables de tipo entero*/

comienza /*se recomienda dejar sangría para tener una mayor legibilidad del programa */

escribe “Dame el valor de a, b y c”

lee a,b,c

area1← b * c /*en este caso la base es diferente a la altura*/

area2 ←a * a /* en este caso la base es igual a la altura*/

area3 ←area1 + area2 /*El resultado es la suma de las áreas obtenidas y se guarda en la variable area3 */

escribe “El área total es : ”, area3

termina

Prueba de escritorio

Page 22: Apuntes programacion basica

22

Ejemplo 2.- Elaborara un algoritmo que sume dos números

Entradas: Los dos números enteros a y b

Salidas: El resultado de la suma de los números introducidos

Diagrama de flujo

Page 23: Apuntes programacion basica

23

Pseudocódigo

a,b,sum: entero (int)

comienza

escribe “Dame 2 numeros”

lee a,b

sum ← a+b

escribe a , “+” , b , ”=”, sum

termina

Prueba de escritorio

Page 24: Apuntes programacion basica

24

Ejemplo 3.- Escribir el algoritmo que calcule el volumen de una esfera dando un valor para el radio

Entradas: El radio de la esfera

Salidas: El volumen de la esfera

Diagrama de flujo

Pseudocódigo

r,v : Real (float)

comienza

escribe “Introduce el valor del radio”

lee r

v ← 4 / 3 * 3.1416 * r ^ 3

escribe “El volumen de la esfera es : ”, v termina

Page 25: Apuntes programacion basica

25

2.- Selección

Es la especificación de la transferencia de control hacia una de las 2 localizaciones de una o mas sentencias dependiendo de la veracidad

o falsedad de una expresión booleana

a). Selección simple: Solo se definen sentencias para cuando la expresión booleana es verdadera, es decir, su falsedad no importa

Diagrama de flujo Pseudocódigo

comienza

si (expresión= Verdad) entonces

sentencia 1

sentencia 2

sentencia n

fin si termina

Page 26: Apuntes programacion basica

26

Ejemplo 1.- Elaborar un algoritmo que obtenga el promedio de 3 calificaciones y muestre “APROBADO” si el promedio es

mayor o igual a 7

Entradas: Calificaciones (3)

Salidas: Promedio y la frase APROBADO si el promedio es mayor o igual a 7

Diagrama de flujo

Page 27: Apuntes programacion basica

27

Pseudocódigo

c1,c2,c3,prom : Real (float)

comienza

escribe “Introduce las tres calificaciones”

lee c1,c2,c3

prom ← (c1+c2+c3) / 3

escribe “Promedio = ”, prom

si ( prom >= 7.0 ) entonces

escribe “APROBADO”

fin si termina

Prueba de escritorio

Page 28: Apuntes programacion basica

28

Ejemplo 2.- Elaborar un algoritmo que muestre el máximo de dos números dados, es decir, si los números introducidos son:

125 , 158 se muestre en la pantalla el número 158

Entradas: Los dos números introducidos por el usuario

Salidas: El mayor de los dos números

Diagrama de flujo

Page 29: Apuntes programacion basica

29

Pseudocódigo

num1, num2, max : Entero (int)

comienza

escribe “Introduce los dos números”

lee num1,num2

max ← num1

si (num2 > max) entonces

max ← num2

fin si

escribe “El máximo es:”, max

termina

Prueba de escritorio

Page 30: Apuntes programacion basica

30

Ejemplo 3.- Elaborar un algoritmo convierta de °C a °F solo si los °C están entre 0 y 100

Entradas: Los °C introducidos por el usuario

Salidas: Su respectivo valor en °F

Diagrama de flujo

Page 31: Apuntes programacion basica

31

Pseudocódigo

grados, gf : Real (float)

comienza

escribe “Introduce los grados centígrados”

lee grados

si (grados >= 0 Y grados <=100) entonces

gf ← 9/5 * grados +32

escribe “ °F = ”, gf

fin si

termina

Prueba de escritorio

Page 32: Apuntes programacion basica

32

b). Selección doble: En este caso se definen sentencias para cuando la expresión booleana es verdadera y también para cuando es falsa

Diagrama de flujo Pseudocódigo

comienza

si (expresión= v) entonces

sentencia 1a

sentencia 1a

sentencia na

otro

sentencia 1b

sentencia 1b

sentencia nb

finsi

termina

Page 33: Apuntes programacion basica

33

Ejemplo 1.- Elaborar un algoritmo que obtenga el pago por hora de un trabajador que si es mayor o igual a 40 recibe

doble pago por hora.

Entradas: Pago por hora, horas trabajadas

Salidas: Pago total

Diagrama de flujo

Page 34: Apuntes programacion basica

34

Pseudocódigo

horas, ph, total : Entero(int)

comienza

escribe “Introduce el total de horas trabajadas y el pago por hora”

lee horas, ph

si (horas >= 40)entonces

total ← (horas * ph)*2

otro

total ← horas * ph

finsi

escribe “El total a pagar es : ” , total

termina

Prueba de escritorio

Page 35: Apuntes programacion basica

35

Ejemplo 2.- Diseñar un algoritmo que valide si la situación de un alumno es: EXCELENTE, REGULAR, MALO, tomando en

cuenta la siguiente escala: Excelente > = 8.5 , 7.0 <= Regular < 8.5, Malo <7.0

Entrada: Promedio

Salida: Situación del alumno

Diagrama de flujo

Page 36: Apuntes programacion basica

36

Pseudocódigo

promedio : Real (float)

comienza

escribe “Introduce el promedio”

lee promedio

si (promedio >= 8.5) entonces

escribe “EXCELENTE”

otro

si (promedio<=7.0)

escribe “REGULAR”

otro

escribe “MALO”

finsi

finsi

termina

Prueba de escritorio

Page 37: Apuntes programacion basica

37

Ejemplo 3.- Diseñar un algoritmo que determine si un número es mayor menor o igual a 0, si es menor que mande el

mensaje de NEGATIVO, si es mayor a cero que escriba POSITIVO, y si es igual a cero que escriba CERO

Entradas: Número

Salidas: Mensaje POSITIVO NEGATIVO o CERO

Diagrama de flujo

Page 38: Apuntes programacion basica

38

Pseudocódigo

num : Entero(int)

comienza

escribe “Ingresa un numero”

lee num

si (num > 0) entonces

escribe “POSITIVO”

otro

si (num < 0) entonces

escribe “NEGATIVO”

otro

escribe “CERO”

finsi

finsi termina

Prueba de escritorio

Page 39: Apuntes programacion basica

39

c). Selección múltiple: En este tipo de selección se pueden realizar diferentes tareas dependiendo de la selección que se realiza

Diagrama de flujo Pseudocódigo

comienza

caso (expresion)

valor 1: sentencia 1A

sentencia 2A

sentencia nA

valor 2: sentencia 2B

sentencia 2B

sentencia nB

valor n: sentencia 1N

sentencia 2N

sentencia nN

fincaso

termina

Page 40: Apuntes programacion basica

40

Ejemplo 1.- Diseñe un algoritmo que muestre en pantalla el día de la semana según un número introducido por el usuario

(1-7)

Entradas: Número introducido por el usuario

Salidas: Día de la semana

Diagrama de flujo

Page 41: Apuntes programacion basica

41

Pseudocódigo

numero: Entero(int)

comienza

escribe “Introduce un numero”

lee numero

caso (numero)

1: escribe “DOMINGO”

2: escribe “LUNES”

3: escribe “MARTES”

4: escribe “MIERCOLES”

5: escribe “JUEVES”

6: escribe “VIERNES”

7: escribe “SABADO”

fincaso

termina

Prueba de escritorio

Page 42: Apuntes programacion basica

42

3.- Iteración

Es la especificación de la ejecución de una(s) sentencia(s) en forma repetida dependiendo de la veracidad o falsedad de una expresión

booleana

I. Mientras (No se ejecuta ninguna sentencia si la expresión no es verdadera)

Diagrama de flujo Pseudocódigo

comienza

mientras (expresión = V)

Sentencia 1

Sentencia 2

Sentencia n

finmientras termina

Page 43: Apuntes programacion basica

43

II. Repite (Por lo menos se ejecuta una vez la sentencia no importando la expresión)

Diagrama de flujo Pseudocódigo

comienza

repite

sentencia 1

sentencia 2

sentencia n

hasta (expresión = V) termina

Page 44: Apuntes programacion basica

44

III. Para

Diagrama de flujo Pseudocódigo

comienza

para ( i ← Vi , Vf , Inc/Dec)

sentencia 1

sentencia 2

sentencia n

finpara

termina

Incremento o decremento

Page 45: Apuntes programacion basica

45

Ejemplo 1.- Diseñar un algoritmo que valide un número introducido por el usuario, es decir, si es menor a cero o mayor a

7 se le vuelva a pedir el número al usuario, en otro caso despliegue el mensaje de bienvenida

Entradas: Número introducido por el usuario

Salidas: Mensaje de bienvenida

Diagrama de flujo

Page 46: Apuntes programacion basica

46

Pseudocódigo

num: Entero(int)

comienza

escribe “Introduce un numero”

lee num

mientras (num < 0 O num >7)

escribe “Solo entre 1 y 7”

lee num

finmientras

escribe “BIENVENIDO”

termina

Prueba de escritorio

Ejemplo 2.- Realizar un algoritmo que sume una serie de números enteros introducidos por el usuario

Page 47: Apuntes programacion basica

47

Entradas: Números introducidos por el usuario

Salidas: Suma total

Diagrama de flujo

Page 48: Apuntes programacion basica

48

Pseudocódigo

Contador , Suma , Numero , Total : Entero (int)

comienza

escribe “¿Cuantos números deseas sumar?”

lee Total

Contador ← 0

Suma ← 0

mientras (Contador < Total)

escribe “Introduce el numero ”, Contador+1

lee Numero

Suma ← Suma + Numero

Contador ← Contador+1

finmientras

escribe “La suma es ”, Suma

termina

Prueba de escritorio

Page 49: Apuntes programacion basica

49

Ejemplo 3.- Realice el ejemplo anterior con la estructura de control REPITE

Diagrama de flujo

Page 50: Apuntes programacion basica

50

Pseudocódigo

contador , suma , numero , total : entero (int)

comienza

escribe “¿cuántos números deseas sumar?”

lee total

contador ← 0

suma ← 0

repite

escribe “introduce el numero”, contador+1

suma ← suma+1

contador ← contador+1

hasta (contador = total)

escribe “la suma es:”, suma

termina

Page 51: Apuntes programacion basica

51

Ejemplo 4.- Realice el ejemplo 2 con la estructura de control PARA

Diagrama de flujo

Page 52: Apuntes programacion basica

52

Pseudocódigo

contador, suma , numero , total : entero (int)

comienza

escribe “¿cuántos números deseas sumar?”

lee total

para (contador ← 0, contador < total, 1) /* el numero 1 significa que se incrementa i de uno en uno */

lee numero

suma ← suma + numero

finpara

termina

Page 53: Apuntes programacion basica

53

Precauciones al hacer uso de la

estructura de control MIENTRAS

La condición lógica en un bucle

mientras debe tener un valor la

primera vez que se evalúa, en caso

contrario el programa abortara (se

detendrá) al ejecutarse mientras.

La condición lógica en un bucle

mientras debe ser modificada por

una sentencia en el cuerpo del

bucle, en caso contrario el bucle es

infinito.

Es posible que el cuerpo del

bucle no se ejecute nunca. Esto

sucederá si la condición lógica es

falsa la primera vez que se evalúa.

Reglas de funcionamiento al hacer

uso de la estructura de control

REPITE

La condición se evalúa al final

del bucle después de ejecutarse

todas las sentencias.

Si la expresión lógica es falsa

se vuelve a repetir el bucle y se

ejecutan todas las sentencias.

Si la expresión lógica es falsa

se sale del bucle y se ejecuta la

siguiente sentencia después de la

instrucción hasta.

Page 54: Apuntes programacion basica

54

REGLAS DE SELECCIÓN DE LAS ESTRUCTURAS DE CONTROL

1. Si el número de iteraciones se conoce por adelantado se debe utilizar la estructura de control

PARA

2. Si el número de iteraciones es indeterminado y el bucle no se debe ejecutar cuando la condición

es falsa la primera vez se debe utilizar MIENTRAS

3. Si el número de iteraciones es indeterminado y el bucle se debe ejecutar siempre al menos una

vez se debe utilizar REPITE

Page 55: Apuntes programacion basica

55

UNIDAD III

VECTORES Y MATRICES

En la resolución informática de algoritmos, a veces surge la necesidad de expresar las relaciones que existen entre distintas variables y

bien almacenarlas o hacer referencia a ellas.

Una estructura de datos es un conjunto de componentes cuya organización se caracteriza por las funciones de acceso que se usan para

almacenar y suprimir elementos individuales del grupo. Por ejemplo suponga que se disponen de un ente llamado ladrillo que permite

formar una estructura con ellos llamada pared, por lo tanto pared es un conjunto de ladrillos colocados en filas en posición vertical, esta

estructura tiene sus propias funciones de acceso:

Almacenar: Poner un elemento

Eliminar: Quitar un elemento

Abstracción de datos

Los datos se representan físicamente en memoria de distintas formas, dependiendo en primer lugar del tipo de datos, pero aun

tratándose del mismo tipo pueden representarse también con distintos métodos.

Page 56: Apuntes programacion basica

56

La abstracción entonces puede definirse como la separación que existe entre la representación interna de los datos y sus funciones de

acceso además de las aplicaciones que utilizan estos datos a nivel lógico.

Clasificación de las estructuras de datos

La estructuras de datos se dividen en dos tipos en función de cómo utilizan la memoria.

Estructuras de datos Estáticas

Ocupan una cantidad fija de memoria en tiempo de compilación, a este grupo pertenecen todas las estructuras de datos

suministradas en C.

Estructuras de datos Dinámicas

Son aquellas que utilizan una cantidad variable de memoria en función de los requerimientos en tiempo de ejecución, en C no se

facilitan estas estructuras sin embargo el lenguaje proporciona las herramientas necesarias para que sean incorporadas por el

programador (tipo y funciones para su manipulación).

ARRAYS UNIDIMENSIONALES (VECTORES)

Un array es una estructura de datos incorporada en C y en la mayoría de los lenguajes de propósito general. Considerando las distintas

formas de observar una estructura de datos se analizaran en tres perspectivas.

Nivel Lógico

Desde el punto de vista abstracto se defina un array unidimensional como una estructura de datos formada por una colección finita de

de elementos homogéneos (elementos del mismo tipo), ordenados (indica que hay un primer elemento, segundo elemento, etc), finito

(significa que hay un último elemento) que se referencian con un nombre común, esta colección de elementos forma una estructura

estática, lo que supone que el tamaño del array deberá ser conocido.

Page 57: Apuntes programacion basica

57

Función de acceso: El acceso es directo es decir puede accederse a cualquier elemento sin necesidad de acceder primero a los

elementos que lo preceden, el acceso a un elemento en especifico se realiza mediante el nombre del array y un índice que permite

especificar cuál es el elemento deseado.

SINTAXIS DE LA FUNCIÓN DE ACCESO Nombre_Vector[indice]

Nombre_Vector: Es un identificador que representa la colección de objetos.

índice: Es un valor comprendido entre 0 y n-1

Para referenciar a cada uno de los elementos del vector se usa el operador [ ] escribiendo el nombre del vector seguidos del índice entre

los corchetes

Page 58: Apuntes programacion basica

58

DECLARACIÓN

Tipo Nombre_Vector [tamaño];

Tipo. Tipo de datos de los elementos

Ejemplo de declaración

int vector_enteros[20];

Se tiene un vector de 20 enteros referidos como vector_enteros[0], vector_enteros[1],.., vector_enteros[20] sabremos la dirección de

memoria donde se encuentra cada elemento.

Ejemplo

# include <stdio.h>

main()

{

int vector[10];

int i ;

int suma;

for (i=0; i<10; i++)

vector[i]=i;

for (i=0; i<10; i++)

suma=suma+vector[i];

}

Page 59: Apuntes programacion basica

59

En este programa se declara un vector de enteros, el primer for rellena cada uno de los 10 elementos con números del 0 al 9 y

posteriormente calcula su suma.

Se puede definir el tamaño del vector como una constante de substitución simbólica.

# include <stdio.h>

# define TAM 10;

main()

{

int vector[TAM];

int i

int suma;

for (i=0; i<TAM; i++)

vector[i]=i;

for (i=0; i<TAM; i++)

suma=suma+vector[i]; }

Cuando en una declaración se especifican los valores de los elementos de un vector no es necesario indicar el tamaño del vector entre

corchetes

float datos [] = {1.0, 2.0, 6.0, 4.0, 3.0}; // datos será un vector de 5 elementos.

Page 60: Apuntes programacion basica

60

Sentencias en las que se puede usar un vector:

Entrada: lee datos [i]

Salida: escribe datos [i]

Asignación: datos [i]←116

datos [i]← datos [i+1]

numero← datos [i+1]

Control: si(datos datos [i]>=0) entonces

EJEMPLOS

Elabore un algoritmo que pida un número al usuario y después llene un vector con datos dados por el usuario.

Entradas: Tamaño del vector, elementos del vector.

Salidas: Ninguna

Page 61: Apuntes programacion basica

61

Diagrama de flujo

Page 62: Apuntes programacion basica

62

Pseudocódigo

comienza

entero : tam, i

escribe “introduce tamaño del vector”

lee tam

i ← 1

mientras (i<=tam)

escribe “Dame elemento ”, i

lee vector[i]

i←i+1

finmientras termina

Prueba de escritorio

Page 63: Apuntes programacion basica

63

Ejemplo 2 .Elabore un algoritmo que sume dos vectores y coloque en el resultado en un 3 vector, se asume que los

vectores ya existen y son de tamaño N. se debe mostrar en pantalla la siguiente salida:

Vector 1 __ __ __ __ __

Vector 2 __ __ __ __ __

Suma __ __ __ __ __

Entradas: Ninguna

Salidas:

Vector 1 __ __ __ __ __

Vector 2 __ __ __ __ __

Suma __ __ __ __ __

Diagrama de flujo

Page 64: Apuntes programacion basica

64

Page 65: Apuntes programacion basica

65

Pseudocódigo

comienza

i←1

repite

SUMA[i]←V1[]+V1[]

i←i+1

hasta (i>n)

escribe “Vector 1 ”

para (i=1,i<=n,1++)

escribe V1[i] /*sin cambio de linea*/

finpara

/* cambio de linea*/

escribe “Vector 2”

para (i=1,i<=n,1++)

escribe V2[i] /*sin cambio de linea*/

finpara

/*sin cambio de linea*/

escribe “Suma ”

para (i=1,i<=n,1++)

escribe SUMA[i] /*sin cambio de linea*/

finpara

termina

Page 66: Apuntes programacion basica

66

Prueba de escritorio

Page 67: Apuntes programacion basica

67

Ejemplo 3.- Elabore un algoritmo que ordene los elemento de menor a mayor y muestre el vector ordenado, el vector

debe estar inicializado con valores cualesquiera.

Entradas: Ninguna

Salidas: Vector ordenado

Diagrama de flujo

Page 68: Apuntes programacion basica

68

Pseudocódigo

i, j, N, aux : entero (int)

comienza

/*iniciaizacion del vector*/

vec [] = {6,4,2,1,8}

para (i←1, i<N, i++)

para (j←i+1, j<=N, j++)

si (vec[i]>=vec[j]) entonces

aux ← vec[i]

vec[i]← vec[j]

vec[j]←aux

finsi

finpara

finpara

escribe “Vector ordenado ”

para (k←1, k<N, k++)

escribe vec[k]

finpara

termina

Prueba de escritorio

Page 69: Apuntes programacion basica

69

ARRAYS BIDIMENSIONALES (MATRICES)

Un arreglo bidimensional es una estructura natural para almacenar la información que se puede representar de manera lógica como una

matriz, visualizándose de forma abstracta como una rejilla con filas y columnas, de manera que cada elemento se referencía por el

numero de fila y columna donde se encuentra.

Un arreglo bidimensional tiene dos dimensiones y es un caso particular de los arreglos multidimensionales. En C#, las dimensiones se

manejan por medio de un par de corchetes, dentro de los que se escriben, separados por comas, los valores de las dos dimensiones.

Page 70: Apuntes programacion basica

70

Operaciones.

Para manejar un arreglo, las operaciones a efectuarse son:

Declaración del arreglo,

Creación del arreglo,

Inicialización de de los elementos del arreglo, y

Acceso a los elementos del arreglo.

Función de Acceso

El mecanismo para acceder a un determinado componente es directo es decir, no hay necesidad de visitar a los elementos que lo

preceden. Cada elemento esta ordenado en dos dimensiones por lo tanto el acceso se realiza mediante el nombre del array y usando un

par de índices que indican que el elemento de la colección se desea acceder, el primer índice referencia la posición del elemento en la

primera dimensión llamada fila y el segundo indica la posición del elemento en la segunda dimensión llamada columna.

Representación grafica

Page 71: Apuntes programacion basica

71

Sintaxis de la función de acceso

Nombre _Matriz [indice1][indice2]

Nombre _Matriz: Es un indicador que representa el nombre asociado a la colección de elementos de la estructura.

indice1: Es un valor comprendido entre 0 y n-1 siendo n el numero de filas de la estructura

indice2: Es un valor comprendido entre 0 y n-1 siendo n el numero de columnas de la estructura

Así bien el número de elementos vendrá dado por el producto de filas por columnas. Ejemplo

MaxMin [15][1]=10 /*MaxMin es el nombre de la colección, 15 y 1 es la referencia al

elemento 16 de la 2º columna del array para almacenar el

entero 10*/

lee MaxMin [15][1] /*Se almacena en el elemento 16 el valor leído por el

teclado*/

var = MaxMin [15][1] /*Asignar el valor del elemento 15,1 de la estructura a la

variable var*/

Declaración

En pseudocódigo se agrega a la lista de variables el tipo, nombre y tamaño del array según el siguiente formato.

tipo Nombre_Matriz [filas][columnas]

tipo Nombre_Matriz [filas][columnas]={lista de elementos}

Page 72: Apuntes programacion basica

72

tipo: Puede ser cualquier tipo de datos básico o definidos por el usuario

nombre_Matriz: Identificador que hace referencia a la estructura matriz

filas: Cantidad de filas de la colección

columnas: Cantidad de columnas de la colección

lista de elementos: Elementos que contendrá la matriz , cara valor deberá estar separado por una coma.

Recorrido un arreglo bidimensional

El recorrido se hace principalmente para leer, escribir, inicializar o procesar todos los elementos del array, el recorrido se puede hacer

por filas o columnas, el hecho de hacer el recorrido de una u otra forma no influye en el proceso que en ese momento se realiza con los

elementos.

Pseudocódigo

para (i←0 mientras i<filas, i++) /*i es el índice de filas*/

para (j←0 mientras j<columnas, i++) /*i es el índice de columnas*/

lee matriz[i][j]

finpara

finpara

Page 73: Apuntes programacion basica

73

para (i←0 mientras i<columnas, i++) /*i es el índice de filas*/

para (j←0 mientras j<filas, i++) /*i es el índice de columnas*/

lee matriz[i][j]

finpara

finpara

*Usando ambas formas de recorrido se ha accedido para su proceso al mismo elemento*

Ejemplo 1.- Dadas las matrices A y B elabore un programa que calcule la suma de ambas matrices y al final muestre en

pantalla las matrices A y B y la suma de ambas, el programa deberá seguir el siguiente formato:

Matriz A

8 9 5

6 3 2

Matriz B

7 1 4

5 0 3

Matriz Resultante

15 10 9

11 3 2

Entradas: Elementos de la matriz A y B

Salida: Elementos de la matriz A, B y Matriz resultante

Page 74: Apuntes programacion basica

74

Pseudocódigo

comienza

i,j, col, ren: enteros (int)

/*en esta parte se ingresan lso datos de la matriz a*/

/*limpia pantalla*/

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

escribe “dame elemento”, i ,”,”,j

lee matrizA[i][j] /*se lee dato del teclado y se almacena en la posición i,j*/

finpara

finpara

/* en esta parte se ingresan los datos de la matriz b*/

/*limpia pantalla*/

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

escribe “dame elemento”, i ,”,”,j

lee matrizB[i][j]

finpara

finpara

/* calcular la suma entre a y b y guardarlo en la matriz r*/

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

matrizR[i][j] ← matrizA[i][j] + matrizB[i][j]

finpara

finpara

Page 75: Apuntes programacion basica

75

/*mostrar en pantalla el contenido de las 3 matrices*/

escribe “matriz a”

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

escribe matriza[i][j]

finpara

/*Cambio de linea*/

finpara

escribe “Matriz B”

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

escribe matrizb[i][j]

finpara

/*Cambio de linea*/

finpara

escribe “Matriz Resultante”

para (i←0,i<ren, i++)

para (j←0,j<col, j++)

escribe matrizari][j]

finpara

/*Cambio de linea*/

finpara

termina

Page 76: Apuntes programacion basica

76

UNIDAD IV

MODULARIDAD

Diseño modular

El diseño modular es una metodología del desarrollo de programas que surge de la necesidad de abordar un problema complejo

dividiéndolo en otros más sencillos, que se pueden llamar subproblemas, consiguiendo así comprender y abordar mejor el problema

completo , de esta forma después de resolver todos los problemas se obtiene la solución del problema global.

Módulos. Diagramas Jerárquicos

Consiste en comenzar dividiendo el problema en un conjunto de subproblemas, a continuación se dividen estos en otros más sencillos y así

sucesivamente, de esta forma se crea una estructura jerárquica de problemas y subproblemas llamados módulos funcionales, la

representación grafica se muestra a continuación.

Diagrama de estructura de módulos

Page 77: Apuntes programacion basica

77

Ventajas de la programación modular.

Facilita que la resolución del problema la lleven a cabo diferentes programadores, gracias a la división del problema en distintos

módulos.

Eleva el grado de legibilidad de los algoritmos

Favorece el mantenimiento y modificación de los módulos ya diseñados, en consecuencia de los programas.

¿Cómo dividir un programa en módulos?

Se afronta la división de la misma forma en que se afronta la resolución de grandes problemas en la vida cotidiana.

Pasar un tiempo pensando en el problema globalmente

Escribir los pasos principales, especificando tanto la estructura principal del programa como los módulos que requiera.

Examinar cada uno de los pasos anteriores completando los detalles.

Si no se sabe realizar una determinada tarea, se da un nombre y se pasa a la realización de la tarea siguiente, teniendo en cuenta

que habrá que ocuparse de ella más adelante para resolverla

El proceso continua tantas veces como sea necesario, hasta completar el diseño.

Conceptos básicos de la programación modular

Variable global: Es aquella variable cuyo valor puede ser usado o modificado en el programa principal y en cualquier módulo.

Variable local: Su valor solo puede usado o modificado sólo dentro del módulo en que se declara.

Argumento formal

Representan la forma en que se comunican el subprograma y el módulo que los llama, los parámetros formales son variables.

Page 78: Apuntes programacion basica

78

Aparecen declarados en la cabecera del subprograma entre los paréntesis que siguen al nombre y son fijos para cada programa.

Ejemplo:

/* num es la variable de enlace del subprograma suma y se comporta como variable local del subprograma*/

suma (num) comienza

fin

Argumento actual

Son variables enviadas en cada llamada a un subprograma desde el programa o subprograma que los llama

Estos parámetros aparecen listados (escritos) en la llamada a un subprograma.

Ejemplo

/*El programa principal llama a un subprograma*/

PROGRAMA PRINCIPAL

inicio

sum (num)

fin

/*subprograma que llama a otro subprograma*/

/* llamada al subprograma potencia donde base y 3 son los parámetros actuales*/

modulo_m (…)

inicio

potencia(base,3)

… Fin

Page 79: Apuntes programacion basica

79

Paso de parámetros por valor y por referencia

Paso por valor

Se utiliza para suministrar datos de entrada a un subprograma desde el programa principal o subprograma que lo llama de modo que el

valor del parámetro actual se copie en el parámetro formal correspondiente.

El programa al que se le pasa un parámetro por valor trabaja con una copia de este por lo tanto el parámetro real no podrá ser

modificado por el subprograma, si el parámetro modifica el parámetro pasado se cambiara tan solo la copia pero no el parámetro real de

la llamada.

Paso por referencia

Se usa indistintamente para suministrar datos de entrada y recibir datos de salida. El programa principal manda al subprograma la

referencia en memoria del parámetro actual al correspondiente parámetro formal.

El subprograma que utiliza la variable pasada por referencia lo hace como si fuese propiamente suya por lo tanto puede modificarla a

conveniencia.

Cuando un parámetro es pasado por referencia se debe especificar en el programa o subprograma que este parámetro será pasado de

esta forma (ref).

Page 80: Apuntes programacion basica

80

FUNCIONES Y PROCEDIMIENTOS

Según el valor de retorno los subprogramas se pueden dividir en PROCEDIMIENTOS Y FUNCIONES

Un Procedimiento no tiene valor asociado al nombre o lo que es lo mismo no devuelve ningún valor al programa o subprograma que lo llama.

Una función tiene un valor asociado a su nombre es decir devuelven un valor al programa que lo llama.

Para hacer uso de una función es se requieren de dos cosas

Definir a la función Llamar a la función

DECLARACION

tipo Nombre_Funcion(tipos _datos_parametros)

Nombre_Funcion: Identificador que referencia a la función.

tipo: Es el tipo de valor que devuelve la función y que puede ser cualquier tipo de datos básico definidos por el usuario.

tipos_datos_parametros: Son los tipos de datos de los parámetros formales, si hay más de uno se separan con comas indicando el tipo de

dato de cada uno.

Page 81: Apuntes programacion basica

81

Modalidades de una función.

1.- Función que No regresa un valor y No tiene argumentos, la forma para llamar a este tipo de función es:

Nombre_Funcion( )

2.-Función que No regresa un valor y Si tiene argumentos, la forma general de llamar a la función de este modo es:

Nombre_Funcion (var1 var2,…, varN)

3.- Función que Si regresa un valor y No tiene argumentos, la forma de llamada es:

Variable1← Nombre_Funcion()

4.- Función que Si regresa un valor y Si tiene argumentos

Variable1← Nombre_Funcion(var2 , var3,.., var4)

Page 82: Apuntes programacion basica

82

DISEÑO DEL ALGORITMO

Programa principal generalizado: Dará una visión clara de la estructura general del programa, si es iterativo, si contiene distintas

opciones, si estas también son iterativas, etc. El pseudocódigo generalizado incluye básicamente las llamadas a los módulos de primer

nivel.

Forma general de un programa modular

ENTORNO

constantes variables

/*declaración de las funciones*/

funciones

tipoa nombre_funcion(lista tipos)

/*programa principal*/

comienza

....……..…

/*declaracion de variables locales del programa principal*/

tipoA var

var ← nombre _funcion(lista_parametros_actuales)

……………

Termina

Page 83: Apuntes programacion basica

83

DECLARACIONES DE SUBPROGRAMAS

/*cabecera del subprograma función*/

nombre_funcion(lista_declaracion_parametros_formales)

comienza

/*declaración de variables u objetos locales*/

tipoA nombre_variable

regresa (nombre_variable) /*valor devuelto al programa principal*/

termina

Ejemplo

*Función que no regresa un valor y no tiene parámetros

Elabore un algoritmo que sume dos números y tenga una función que muestre en pantalla el resultado.

Entradas: primer número (num1), segundo número (num2).

Salida: num1, num2, suma.

Pseudocódigo

comienza

num2,num2 , suma : enteros (int)

presenta() /*llamada al subprograma*/

escribe ”introduce dos numeros”

lee num 1, num2

suma← num1+num2

escribe num1, ”+”, num2, ”=”, suma

termina

Page 84: Apuntes programacion basica

84

funcion presenta() /* encabezado de la función o subprograma*/

comienza

escribe”**programa que suma dos números**”

termina

*Función que no regresa un valor y no tiene parámetros

Elaborar un algoritmo que tenga una función que muestre el resultado y que utilice la función de presentación anterior.

comienza

num1,num2 , suma : enteros (int)

presenta()

escribe ”introduce dos numeros”

lee num 1, num2

suma← num1+num2

muestra (num1,num2,suma) /*llamada al subprograma*/

termina

funcion muestra(a,b,c: enteros) /* encabezado de la función o subprograma*/

comienza

escribe a, ”+”, b, ”=”, c

termina

Page 85: Apuntes programacion basica

85

*Función que si regresa un valor y no tiene parámetros

Elaborar una función para leer el numero y regresar el numero leído, utilizar las funciones hechas anteriormente

comienza

num1,num2 , suma : enteros (int)

presenta()

num1← lee_dato( ) /*llamada al subprograma*/

num2← lee_dato ( )

suma← num1+num2

muestra (num1,num2,suma)

termina

entero lee_dato( ) /* encabezado de la función o subprograma*/

comienza

escribe “Introduce numero”

lee num

regresa(num) /*regresa el valor leído*/

termina

Page 86: Apuntes programacion basica

86

*Función que si regresa un valor y si tiene parámetros

Elabore una función que reciba los números leídos y regrese la suma de estos

comienza

num1,num2 , suma : enteros (int)

presenta()

num1← lee_dato( )

num2← lee_dato ( )

suma← sumar_numeros(num1,num2) /*llamada al subprograma*/

muestra (num1,num2,suma)

termina

entero sumar_numeros ( a,b: enteros) /*encabezado de la función o subprograma*/

comienza

c: entero (int)

c←a+b

regresa(c) /*regresa el resultado de la suma entre a y b*/

termina

Page 87: Apuntes programacion basica

87

BIBLIOGRAFÍA

1. Cairó Battistuti O. (2006), Fundamentos de Programación, Piensa en C. 1ª. Edición. Pearson.

2. Corona Nakamura A. y Ancona Valdez María de los Ángeles. (2011), Diseño de Algoritmos y su Codificación en Lenguaje C. 1ª.

Edición. México. McGrawHill.

3. Criado, Ma.A . (2006). Programación en lenguajes estructurados. RaMa: Madrid España

4. Gallego, I. y Medina, M. (2000). Algorítmica y programación para ingenieros. Edición UPC.

5. Joyánes Aguilar L. y Zahonero Martínez I. (2003), Programación Orientada a Objetos. 2ª. Edición. Madrid. McGrawHill.

6. Joyánes Aguilar L. y Zahonero Martínez I. (2010), Programación en C, C++, Java y UML. 1ª. Edición. México. McGrawHill.

7. Joyánes, Aguilar L. (1993). Programación en turbo Pascal. 2ª. Edición. MacGraw-Hill.