Fundamentos Practica 5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Universidad Nacional Autónoma de México

Facultad de Ingeniería
Fundamentos de Programación
González Cano Diego
Practica 5
Grupo 18
Prof. M.T. Hugo Zúñiga Barragán
16/ Septiembre/ 2019
Practica 5

Pseudocódigo

Objetivo:

Elaborar pseudocódigos que representen soluciones algorítmicas empleando la sintaxis y semántica


adecuadas.

Actividades:

 Elaborar un pseudocódigo que represente la solución algorítmica de un problema en el cual


requiera el uso de la estructura de control de flujo condicional
 A través de un pseudocódigo, representar la solución algorítmica de un problema en el cual
requiera el uso de la estructura de control iterativa.

Desarrollo

La introducción de la practica retoma el concepto de cómo un problema se analiza, donde se obtiene el


conjunto de datos de entrada y el conjunto de datos de salida esperado, y se ha diseñado un algoritmo
donde se procesan los datos, se debe proceder a la etapa de codificación del algoritmo.

Para que la solución de un problema pueda ser codificada, se debe representar, una representación
algorítmica elemental es el pseudocódigo.

Un pseudocódigo es la representación escrita de un algoritmo, es decir, muestra en forma de texto los pasos
a seguir para solucionar un problema. El pseudocódigo posee una sintaxis propia para poder realizar la
representación del algoritmo (solución de un problema).

El lenguaje pseudocódigo tiene diversas reglas semánticas y sintácticas. A continuación, se describen las más
importantes:

1. Alcance del programa: Todo pseudocódigo está limitado por las etiquetas de INICIO y FIN. Dentro
de estas etiquetas se deben escribir todas las instrucciones del programa.
2. Palabras reservadas con mayúsculas: Todas las palabras propias del pseudocódigo deben de ser
escritas en mayúsculas.
3. Sangría o tabulación: El pseudocódigo debe tener diversas alineaciones para que el código sea más
fácil de entender y depurar.
4. Lectura / escritura: Para indicar lectura de datos se utiliza la etiqueta LEER. Para indicar escritura de
datos se utiliza la etiqueta ESCRIBIR. La lectura de datos se realiza, por defecto, desde el teclado,
que es la entrada estándar del sistema. La escritura de datos se realiza, por defecto, en la pantalla,
que es la salida estándar del sistema. Ejemplo:
ESCRIBIR “Ingresar la altura del polígono”
LEER altura
5. Declaración de variables: la declaración de variables la definen un identificador(nombre), seguido
de dos puntos, seguido del tipo de dato, es decir:
<nombreVariable>:<tipoDeDato>
Los tipos de datos que se pueden utilizar son:
ENTERO -> valor entero positivo y/o negativo
REAL -> valor con punto flotante y signo
BOOLEANO -> valor con dos estados: verdadero o falso
CARÁCTER -> valor tipo carácter
CADENA -> cadena de caracteres
Es posible declarar más de una variable de un mismo tipo de dato utilizando arreglos, indicando la
cantidad de variables que se requieren, su sintaxis es la siguiente:
<nombreVariable>[cantidad]:<tipoDeDato>
De igual manera existe un tipo de dato compuesto, es decir, que puede contener uno o más tipos
de datos imples diferentes. Este tipo de dato se conoce como registro o estructura y su sintaxis es
la siguiente
<nombreRegistro>:REG
<nombreVariable_1>:<tipoDeDato>

<nombreVariable_N>:<tipoDeDato>
FIN REG
Para crear una variable de tipo registro se debe indicar el nombre del registro y el nombre de la
variable. Para acceder a los datos del registro de hace uso del operador “.”.
Es posible crear variables constantes con la palabra reservada CONST, la cual indica que un
identificador no cambia su valor durante todo el pseudocódigo. Las constantes (por convención) se
escriben con mayúsculas y se deben inicializar al momento de declararse. Ejemplo:
NUM_MAX:= 1000 REAL, CONST
6. Operadores aritméticos: Se tiene la posibilidad de utilizar operadores aritméticos y lógicos:
6.1. Operadores aritméticos: suma (+), resta (-), multiplicación (*), división real (/), división entera
(div), modulo (mod), exponenciación (^), asignación (:=).
6.2. Operadores lógicos: igualdad (=), y-logica o AND (&) u OR (|), negación o NOT (!), relaciones de
orden (<, >, <=, >=) y diferente (<>).
La Tabla de verdad de los operadores lógicos AND, OR y NOT se describe a continuación
A B A&B A|B !A
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
NOTA: A y B son dos condiciones, el valor 0 indica falso y el valor 1 indica verdadero.
7. Notación de Camello. Para nombrar variables y nombres de funciones se debe hacer uso de la
notación de camello.
En la notación de camello los nombres de cada palabra empiezan con mayúscula y el resto se
escribe con minúsculas. Existen dos tipos de notaciones de camello: lower camel case que en la cual
la primera letra de la variable inicia con minúscula y upper camel case en el cual todas las palabras
inician con mayúscula. No se usan puntos ni guiones para separar las palabras. Además para saber
el tipo de variable se recomienda utilizar un prefijo. Ejemplo:
//varibles
realAreaDelTriangulo: REAL //lower camel case
EnteroRadioCirculo:REAL //upper camel case
//funciones
calcularArea()
obtenerPerimetro()
Después de las reglas del pseudocódigo se retomaron los conceptos de las estructuras de control;

Estructuras de control de flujo.

Las estructuras de control de flujo permiten la ejecución condicional y la repetición de un conjunto de


instrucciones. Existen 3 estructuras de control: secuencial, condicional y repetitivas o iterativas.

i. Estructuras de control secuencial: Son las sentencias o declaraciones que se realizan una a
continuación de otra en el orden en que están escritas.

ii. Estructuras de control condicionales (o selectivas): Estas permiten evaluar una expresión lógica
(condición que puede ser verdadera y falsa) y, dependiendo del resultado, se realiza uno u otro
flujo de instrucciones. Estas estructuras son mutuamente excluyentes(o se ejecuta una acción o se
ejecuta la otra).
La Estructura de control de flujo más simple es la estructura condicional SI, su sintaxis es la
siguiente:
SI condición ENTONCES
[Acción]
FIN SI
Se evalúa la expresión lógica y si se cumple (si la condición es verdadera) se ejecutan las
instrucciones de bloque [Acción]. Si no se cumple la condición, se continúa con el flujo normal del
programa.
La estructura condicional completa es SI-DE LO CONTRARIO.
Se evalúa la expresión lógica y si se cumple (si la condición es verdadera) se ejecutan las
instrucciones de bloque SI [Acciones SI]. Si no se cumple la condición se ejecutan las instrucciones
del bloque DE LO CONTRARIO [Acciones DE LO CONTRARIO]. Al final el pseudocódigo sigue su flujo
normal.
La estructura condicional SELECCIONAR-CASO valida el valor de la variable que está entre paréntesis
y comprueba si es igual al valor que está definido en cada casi. Si la variable no tiene el valor de
ningún caso se va a la instrucción por defecto (DEFECTO).

iii. Estructuras de control iterativas o repetitivas (cíclicas): Estas permiten ejecutar una serie de
instrucciones mientras se cumpla la expresión lógica. Existen dos tipos de expresiones cíclicas
MIENTAR y HACER MIENTRAS
La estructura MIENTRAS (WHILE) primero valida la condición y si esta es verdadera procede a
ejecutar el bloque de instrucciones de le estructura, de lo contrario rompe el ciclo y continua el
flujo normal del pseudocódigo.
El final de la estructura lo determina la etiqueta FIN MIENTRAS. Ejemplo:
INICIO
valorInicial, valorFinal: ENTERO
valorInicial=0
valorFinal=3
MIENTRAS valorInicial < valorFinal
ESCRIBIR valorInicial
valorInicial := valorInicial + 1
FIN MIENTRAS
FIN
//>>> 0
//>>> 1
//>>> 2

La estructura HACER-MIENTRAS primero ejecuta las instrucciones descritas en la estructura y al


final valida la expresión lógica. Si la condición se cumple vuelve a ejecutar las instrucciones de la
estructura, de lo contrario rompe el ciclo y sigue el flujo del pseudocódigo. Esta estructura asegura
que, por lo menos, se ejecuta una vez el bloque de la estructura, ya que primero ejecuta y después
pregunta por la condición. Ejemplo:
INICIO
valorInicial, valorFinal: ENTERO
valorInicial =0
valorFinal =3
HACER
ESCRIBIR valorInicial
valorInicial := valorInicial + 1
MIENTRAS valorInicial < valorFinal
FIN

//>>> 0
//>>> 1
//>>> 2

Funciones

Cuando la solución de un problema es muy compleja se suele ocupar el diseño descendente (divide y
vencerás). Este diseño implica la división de un problema en varios subprocesos mas sencillos que juntos
forman la solución completa. A estos subprocesos se les llaman métodos o funciones. Una función está
compuesta por un identificador de función (nombre), de cero a n parámetros de entrada y un valor de
retorno. Todas las estructuras de control de flujo (secuencial, condicional, y repetitivas o iterativas) deben ir
dentro de alguna función. Ejemplo:

INICIO
** Funcion que suma dos números enteros
FUNC sumar (uno: ENTERO, dos: ENTERO) RET: ENTERO
enteroTres: ENTERO
enteroTres: = uno + dos
RET enteroTres
FIN FUNC
FIN

//>>> 29

NOTA: Los dos asteriscos (**) dentro de un pseudocódigo se utilizan para hacer un comentario y, por tanto,
lo que esté en la misma línea y después de los ** no es parte del algoritmo y no se toma en cuenta. Es una
buena práctica realizar comentarios sobre una función o sobre un bloque del algoritmo para guiar sobre el
funcionamiento del mismo.
Conclusión

De esta práctica lo que me llevo es que retomamos los conceptos de las estructuras de control y se
comprendieron un poco más, también creo que fue muy importante destacar las características que deben
llevar los pseudocódigos para su fácil lectura por el usuario, y lo importante que es que tenga una buena
redacción para asi poder encontrar más fácil un error si es que lo tiene, y de igual manera poder reconocer
más fácil los procesos que se están llevando a cabo y reconocer que tipo de estructuras de control se están
usando si es el caso.

También podría gustarte