19

C 2 algoritmos representación pseudocódigo

Embed Size (px)

DESCRIPTION

C.2.- Algoritmos - Representación - PseudoCódigo

Citation preview

Page 1: C 2 algoritmos representación pseudocódigo
Page 2: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad2

Contenido 1. Pseudocódigo...................................................................................................................... 3

1.1. Estructura de los Pseudocódigos ................................................................................. 3

2.1. Instrucciones De Entrada ................................................................................................ 3

2.2. Instrucciones De Salida .................................................................................................... 4

2.3. Sentencias Bucle o Ciclo ................................................................................................. 4

3. Contador ............................................................................................................................. 6

3.1. Sumadores o Acumuladores ........................................................................................ 6

4. Toma De Decisión ............................................................................................................... 6

4.1. Sentencia if (si) ............................................................................................................ 7

4.2. Sentencia if – else (si – de lo contrario)....................................................................... 7

4.3. Sentencia if-else anidados ........................................................................................... 9

4.4. Sentencia interruptor - switch (if anidados) .............................................................. 10

5. Sentencia while (mientras - hace) .................................................................................... 12

5.1. Reglas De Funcionamiento ........................................................................................ 12

5.1.1. Precauciones ....................................................................................................... 12

5.2. Terminación de los Bucles ó Ciclos ................................................................................ 12

5.2.1. Bucles controlados por un contador ...................................................................... 13

5.2.2. Bucles controlados por una condición .................................................................. 13

1er Método “Solicitar al usuario la continuación del bucle”......................................... 13

2º Método “Valor centinela” ........................................................................................ 14

6. Sentencia do - hace (Similar a la instrucción Repeat de Pascal) ..................................... 14

6.1. Reglas de funcionamiento ......................................................................................... 15

7. Sentencia for ..................................................................................................................... 15

8. Bucles Anidados ................................................................................................................ 16

8.1. Bucles while y do Anidados ....................................................................................... 16

8.2. Bucles for Anidados ................................................................................................... 18

8.3. Elección De La Estructura Repetitiva Adecuada ........................................................ 19

Page 3: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad3

1. Pseudocódigo

No existe una versión universal de pseudocódigo, lo único que se necesita es que su versión sea capaz de representar las tres estructuras de control lógicas fundamentales, que son:

Secuencial Selección Iterativa

La entrada y salida (E/S) de procesamiento de datos se escribe en frases condensadas, escritas en castellano.

Pseudo significa imitación y código se refiere a las sentencias escritas en un lenguaje de programación. Pseudocódigo no es realmente sino una imitación de una versión abreviada de instrucciones reales para las computadoras. 1.1. Estructura de los Pseudocódigos

Para su realización los vamos a considerar divididos en tres partes:

1º Parte Inicial Donde inicializaremos las variables que posteriormente vamos a utilizar, abriremos los archivos o ficheros, introduciremos por teclado el valor de aquellas variables que deben ir fuera del ciclo, en general todo aquello que el computador debe realizar sólo una vez. 2º Parte Repetitiva o Ciclo Es el cuerpo del programa. Aquí se debe estar repitiendo un número determinado de veces o hasta que se cumpla o deje de cumplirse una determinada condición. 3º Parte Final En ella incluiremos la impresión de los resultados finales del ciclo, cerraremos archivos, etc... Nota: No todos los pseudocódigos deben poseer las tres partes perfectamente diferenciadas,

habrá casos en que la parte final o inicial no estén diferenciadas del ciclo, incluso alguna parte puede contener las tres. Todo depende del problema a resolver.

2. Instrucciones 2.1. Instrucciones De Entrada Se utilizan para tomar datos del exterior guardándolos en variables. Sintaxis:

introduce nombrevariable

lee nombrevariable

Page 4: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad4

Ejemplo: Supongamos que deseamos introducir desde el teclado, un número. Para ello es necesario, en primer lugar, definir una variable que recoja o reciba dicho valor, numero.

La forma de realizarlo es la siguiente: numero = 0 introducir numero 2.2. Instrucciones De Salida Sirven para presentar en pantalla o impresora comentarios, constantes, contenido de variables y resultado de expresiones. Sintaxis:

Visualización de comentarios.

imprime “Comentarios”

escribe “Comentarios”

Visualización de variables, constantes y expresiones.

imprime nombrevariable

escribe nombrevariable 2.3. Sentencias Bucle o Ciclo Llamamos bucle o ciclo, a todo proceso que se repite un número determinado de veces dentro de un programa. Sintaxis: mientras - hace

mientras condición

instrucción 1

fin_del_mientras

instrucción2 Primero se examina la condición. Esta da como resultado dos posibilidades: Se cumple: va a realizar todas las instrucciones que están dentro del ciclo, instrucción1, la que repetirá mientras se cumpla la condición No se cumple: para directamente o ejecuta la instrucción2

Page 5: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad5

Sintaxis: Hace Mientras

Hace

instrucción1

Mientras condición

Fin del Hace Mientras

instrucción2

Primero realiza todas las instrucciones que están dentro del ciclo, instrucción1, la que repetirá mientras se cumpla la condición. Esta da como resultado dos posibilidades: Se cumple: vuelve a realizar todas las instrucciones que están dentro del ciclo, instrucción1, la que repetirá mientras se cumpla la condición No se cumple: Ejecuta todas las instrucciones que están dentro del ciclo, instrucción1 y para directamente y ejecuta la instrucción2 La condición del condición del ciclo no tiene por qué ser una única expresión, puede haber más de una pero debe relacionarse mediante un operador lógico ( Or, And, Not).

Ejemplo: Mientras condición1 operador-lógico condición2 instrución1

Fin del Mientras instrucción2

Hace instrucción1

Mientras condición1 operador-lógico condición2

Fin del Hace Mientras

instrucción2

Page 6: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad6

3. Contador Es una variable destinada a contener o registrar diferentes valores que se va incrementando o decrementando cada vez que el computador ejecuta la instrucción que lo contiene. Lleva una

cuenta. Sintaxis:

variable = variable +/- constante 3.1. Sumadores o Acumuladores Es una variable que nos va a permitir guardar un valor que se incrementa o decrementa de forma no constante durante el proceso. En un instante tendrá un valor determinado y al siguiente tendrá otro valor igual o distinto. Lleva una cuenta. sumador: Es la variable que almacena el resultado de la suma. variable: Almacena el número que estamos sumando o restando según sea el caso.

Ejemplo: sumador = sumador + variable

4. Toma De Decisión Los programas para un mejor funcionamiento, y poder realizar un número mayor de tareas debe permitir: a) Ejecutar una serie de sentencias e instrucciones. b) Poder repetir una serie de sentencias hasta que se cumpla o deje de cumplirse una serie de

condiciones. c) Emplear acciones alternativas para poder elegir una de ellas cuando la situación lo requiera. Las sentencias o instrucciones condicionales o tomas de decisión permiten realizar acciones alternativas, por tanto la ejecución de una línea o grupo de líneas del programa depende de si cumple o no una o varias condiciones. Para preguntar se utiliza la sentencia if (Si). La contestación o respuesta sólo puede ser Verdadera o Falsa (algebra de Boole) y la realización de la acción está sujeta a que se cumpla o no la condición.

Page 7: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad7

4.1. Sentencia if (si) Sintaxis: if condición

instrucción

fin_ del_if instrucción2 si condición instrucción1 fin_del_Si instrucción2 Si la condición se cumple realiza la o las instrucciones que hay dentro del if y luego continúa

ejecutando las que están fuera. Si la condición no se cumple no entra en el if y sólo ejecuta las instrucciones que siguen a ésta. Es decir, las instrucciones del if sólo las realiza cuando cumple la condición y las instrucciones que están fuera las realiza siempre que se cumple o no la condición. Se debe poner más de una condición si es necesario, siempre y cuando estén unidas con operadores lógicos. Ejemplo: si condición1 operador-lógico condición2 instrucción1 fin_del_si instrucción2

4.2. Sentencia if – else (si – de lo contrario) A menudo necesitamos realizar dos procesos completamente distintos, dependiendo de si se cumple o no la(s) instrucciones de entrada del if.

Page 8: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad8

Sintaxis: if condición1 operador-lógico condición2 instrucción1

else instrucción2 fin_del_if instrucción3 si condición1 operador-lógico condición2 instrucción1 de lo contrario

instrucción2 fin_del_si instrucción3 Es decir:

Si cumple las condiciones: realiza las instrucciones que hay entre el if y else (instrucción1).

Si no las cumple: realiza la instrucción2.

Y a continuación realiza la instrucción3.

Page 9: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad9

4.3. Sentencia if-else anidados En el formato general para la sentencia if-else, las instrucciones 1 y 2, no están limitadas a ser instrucciones imperativas, pueden ser instrucciones condicionales y surge la posibilidad de usar

instrucciones if anidadas. Ejemplo: si condición1 instrucción1

si condición2 instrucción2 entonces

instrucción3 fin_del_si entonces

instrucción4 si condición3

instrucción5 entonces instrucción7 fin_del_si

fin_del_si instrucción8

Page 10: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad10

Ejemplo: si condición1 operador-lógico condición2

instrucción1

si condición3 operador-lógico condición4 instrucción2 entonces instrucción3 fin_del_si entonces

instrucción4

si condición5 operador-lógico condición6

instrucción5 entonces instrucción7 fin_del_si instrucción8 fin_de_si instrucción9

4.4. Sentencia interruptor - switch (if anidados) Es una estructura lógica que permite controlar la ejecución de instrucciones cuando se tiene más de dos opciones alternativas de acción; y que los posibles valores que tomará la variable de control (Selector), estén comprendidos en un conjunto ordenado y finito de valores como lo es el tipo entero y carácter.

Page 11: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad11

Sintáxis: Switch (Selector) {

case 1: instrucción; instrucción; break; case 2: instrucción; instrucción; break; case 3: instrucción; instrucción; break; case 4: instrucción; instrucción; break; default:

instrucción; instrucción;

} Ejemplo: interruptor selector hacer

si selector es 1: ejecuta la(s) instrucciones del caso 1 si selector es 2: ejecuta la(s) instrucciones del caso 1 si selector es 3:

ejecuta la(s) instrucciones del caso 1 si selector es 4: ejecuta la(s) instrucciones del caso 1 si no se cumple (default) ninguno de los casos anteriores: ejecuta la(s) instrucciones del caso 1 fin_del_interruptor

Page 12: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad12

5. Sentencia while (mientras - hace) mientras condición

sentencia(s) fin_del_mientras mientras condición1 operador-lógico condición2 sentencia(s) fin_del_mientras

5.1. Reglas De Funcionamiento La condición se evalúa antes y después de cada ejecución. Si la condición es verdadera, se ejecuta el ciclo y si es falsa el control pasa a la sentencia siguiente al bucle.

5.1.1. Precauciones 1º La condición lógica en un ciclo while debe tener un valor la primera vez que se evalúa, de caso contrario el programa se detendrá al ejecutarse el while. 2º La condición lógica en un ciclo while debe ser modificada por una sentencia en el cuerpo del ciclo en caso contrario el bucle es infinito 3º Es posible que el cuerpo del ciclo no se ejecute nunca. Esto sucederá si la condición lógica es falsa la primera vez que se evalúa. 5.2. Terminación de los Bucles ó Ciclos

En general existen dos métodos para controlarlos o terminar un ciclo, por: 1º Contador 2º Condición

Page 13: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad13

5.2.1. Bucles controlados por un contador Formato

Establecer variable_contador a un valor inicial while variable_contador < valor_final instrucción(es) variabl_contador = variable_contador + / - constante 5.2.2. Bucles controlados por una condición Se utilizan cuando no se sabe a priori, el número exacto de iteraciones a realizar.

1er Método “Solicitar al usuario la continuación del bucle” Ejemplo: suma = 0; printf (“Existen más números s / n \n”); scanf (“%c”, &resp); while (resp==’S’) or (`resp == `’s’)

{ . . . printf (“Existen más números s / n \n”); scanf (“%c”,&resp); }

Page 14: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad14

2º Método “Valor centinela” Un centinela es un valor especial, utilizado para señalar al final de una lista de datos. El valor elegido debe ser distinto de los de los datos de la lista.

Ejemplo: suma = 0; printf (“Ingrese el número: \n”); scanf (“%c”, &numero); while (numero > = 0)

{ . . . suma = suma + numero; printf (“Ingrese el número: \n”); scanf (“%c”, &numero); }

6. Sentencia do - hace (Similar a la instrucción Repeat de Pascal) Especifica un bucle condicional que se repite hasta que la condición se cumpla. Formato

hace sentencia(s) mientras condición fin_del_hace_mientras

hace sentencia(s) mientras condición1 operador-lógico condición2 fin_del_hace_mientras

Page 15: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad15

6.1. Reglas de funcionamiento 1º La condición se evalúa al final del ciclo después de ejecutar todas las instrucciones (sentencias).

2º Si la expresión lógica se cumple, se vuelve a repetir el ciclo y se ejecutan todas las sentencias nuevamente. Si la expresión no se cumple se ejecuta el cuerpo del bucle al menos una vez, luego sale del bucle y se ejecuta la sentencia siguiente. Ejemplo: printf (“Indique cuantos números desea sumar: ”); scanf (“%d”, &cantidad); contador = 0; sumador = 0; do { printf (“ingrese el número: \n”); scanf (“%d”, &numero);

suma = suma +numero; contador = contador +1; } while (contador == cantidad) 7. Sentencia for En numerosas ocasiones se puede desear un bucle que se ejecute un número determinado de veces. Formato para variable-inicial a valor-final instrucción(es) incremento o decremento

fin_del_para Ejemplo: for ( i = 0 ; i < 7 ; i = i +2 ) print( “ El valor de i es %d \n”, i) ;

Page 16: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad16

8. Bucles Anidados El cuerpo de un bucle puede contener cualquier tipo de sentencias (simples o compuestas), selectivas ( if, if – else, switch) o repetitivas ( for, while, do). Cuando un bucle está contenido en

otro se dice que esta anidado. 8.1. Bucles while y do Anidados Los bucles, los ciclos mientras y hacer pueden estar anidados entre sí o bien bucles while con do o viceversa. mientras condición 1 sentencia(s)

mientras condición2 sentencia(s)

fin_del_mientras

fin _del_mientras sentencia(s) mientras condición1 operador-lógico condición2 sentencia(s)

mientras condición1 operador-lógico condición2 sentencia(s) fin_del_mientras

fin_del_mientras sentencia(s)

Page 17: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad17

hacer

sentencia(s)

hacer sentencia(s)

mientras condición 2 fin_del_hacer_mientras sentencia(s) mientras condición 1 fin_del_hacer_mientras

hacer

sentencia(s)

hacer sentencia(s) mientras condición3 operador-lógico condición4 fin_del_hacer_mientras

mientras condición1 operador-lógico condición2 fin_del_hacer_mientras hacer

sentencia(s)

mientras condición2 sentencia(s) fin_del_mientras

sentencia(s) mientras condición 1 fin_del_hacer_mientras

Page 18: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad18

8.2. Bucles for Anidados

Al igual que sucede con los bucles while y do, es posible poner un bucle for dentro de otro; anidar ciclos. Cuando se anidan bucles, se debe tener cuidado que el lazo interior este completamente dentro del bucle exterior. Formato para variable-inicial a valor-final instrucción(es) para variable-inicial a valor-final instrucción(es) incremento o decremento

fin_del_para instrucción(es) incremento o decremento fin_del_para Ejemplo: 1) for (m = 0; m < 7; m = m + 1) { for (z = 0; z < 7; z = z + 1) { . . . }

} 2) for (m = 0; m < 7; m = m + 1) { for (z = 0; z < 7; z = z + 1)

{ for (y = 0; y < 7; y = y + 1) { . . . } }

}

Page 19: C 2 algoritmos representación pseudocódigo

Algoritmos y Programación

Computación I

T.N.S. en Gestión de Sistemas Informáticos y Conectividad19

8.3. Elección De La Estructura Repetitiva Adecuada La elección adecuada de estructuras repetitivas es una de las partes más importantes en el diseño de algoritmos.

La repetición de sentencias en el interior del bucle, requiere definir las condiciones de término del ciclo con sumo cuidado para evitar un bucle incorrecto o infinito. En un bucle do, la secuencia de sentencias se ejecutará al menos una vez, mientras que en un bucle while, no siempre se ejecutará el proceso del ciclo y en ocasiones (cuando no se cumple la condición) no se ejecutará. En la práctica, el bucle while se utiliza con más frecuencia que el ciclo do y por ello en caso de duda, seleccione un bucle while. El bucle for se reservará para situaciones en que el número de iteraciones se puede predecir y enumerar fácilmente antes que comience el bucle. Cuando no se conozca con anticipación cuantas veces se tiene que ejecutar el proceso, el uso de la estructuras while, es el más indicado.