Está en la página 1de 37

Colegio Secundario N°5159

Espacio Curricular: Programación Imperativa

Cursos

• 4to 2da TM

• 4to 3ra TT

Año: 2024
Programación Imperativa
Año 2024
Contenido
¿QUÉ ES PROGRAMACIÓN? .........................................................................................................4
¿QUÉ ES UN ALGORITMO? ...........................................................................................................4
ALGORITMO EN INFORMÁTICA ................................................................................................5
Identificadores .............................................................................................................................5
Constante .................................................................................................................................6
Variables...................................................................................................................................6
TIPOS DE DATOS ...........................................................................................................................7
OPERADORES MATEMÁTICOS ......................................................................................................8
OPERADORES DE RELACIONALES ...............................................................................................10
OPERADORES LÓGICOS ..............................................................................................................11
LENGUAJES DE PROGRAMACIÓN ...............................................................................................12
¿Qué es un lenguaje de programación? .................................................................................12
Lenguaje Maquina ..................................................................................................................12
Lenguaje Ensamblador ...........................................................................................................12
LENGUAJES DE ALTO NIVEL ....................................................................................................13
PSEUDOCÓDIGO .........................................................................................................................14
DIAGRAMAS ...............................................................................................................................14
Diagramas de Flujo .................................................................................................................15
Diagramas estructurados (Nassi-Schneiderman) ...................................................................16
SIMBOLOGIA ..........................................................................................................................17
ESTRUCTURAS SELECTIVAS .........................................................................................................20
ALTERNATIVA SIMPLE (SI-ENTONCES/IF-THEN).......................................................................21
ALTERNATIVA DOBLE (SI-ENTONCES-SINO/IF-THEN-ELSE) .....................................................21
ALTERNATIVA MÚLTIPLE (SEGÚN_SEA, CASO DE/CASE)..........................................................22
ESTRUCTURAS DE DECISIÓN ANIDADAS (EN ESCALERA) .........................................................23
ESTRUCTURAS REPETITIVAS ........................................................................................................25
CONTADORES .........................................................................................................................25
ACUMULADORES ....................................................................................................................25
ESTRUCTURA DESDE O PARA (FOR) ........................................................................................26
ESTRUCTURA MIENTRAS (WHILE) ...........................................................................................27
ESTRUCTURA REPETIR ("REPEAT") .........................................................................................28
GUÍA DE TRABAJOS PRÁCTICOS ..................................................................................................29
TRABAJO PRACTICO N° 1 ........................................................................................................30
TRABAJO PRACTICO N° 2 ........................................................................................................31
TRABAJO PRACTICO N° 3 ........................................................................................................32

2
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 4 ........................................................................................................33
TRABAJO PRACTICO N° 5 ........................................................................................................34
TRABAJO PRACTICO N° 6 ........................................................................................................35
TRABAJO PRACTICO N° 7 ........................................................................................................36
TRABAJO PRACTICO N° 8 ........................................................................................................37

3
Programación Imperativa
Año 2024
¿QUÉ ES PROGRAMACIÓN?
Programación es la acción de programar que implica ordenar, estructurar o
componer una serie de acciones cronológicas para cumplir un objetivo. La programación
puede ser aplicado para eventos sociales, a medios de comunicación y al mundo
informático de las computadoras.

En informática, la programación es el uso de lenguajes informáticos para imprimir


en un sistema computacional funciones y procesos deseados. La programación de una
computadora es la forma de indicar a la computadora qué es lo que tiene que hacer.

¿QUÉ ES UN ALGORITMO?
Para implementar la solución de un problema mediante el uso de una
computadora es necesario establecer una serie de pasos que permitan resolver el
problema, a este conjunto de pasos se le denomina algoritmo, el cual debe tener como
característica final la posibilidad de transcribirlo fácilmente a un lenguaje de
programación, para esto se utilizan herramientas de programación, las cuales son
métodos que permiten la elaboración de algoritmos escritos en un lenguaje entendible.

Todo algoritmo debe cumplir con estas características básicas:

• Tienen inicio y fin: todo algoritmo comienza en un estado inicial con una serie
de datos específicos, y culmina con una solución o salida.
• Funcionan en secuencia: un algoritmo está compuesto por una serie de
pasos ordenados.
• Las secuencias son concretas: cada paso es claro y no deja lugar a la
ambigüedad .
• Los algoritmos son abstractos: son modelos o guías para ordenar procesos.
• La cantidad de pasos de un algoritmo es finita.

Ejemplos de algoritmos

Aunque es un término habitual en áreas como las matemáticas, la informática, la


lógica y demás disciplinas relacionadas, lo cierto es que en la vida cotidiana también
usamos algoritmos para solucionar cuestiones, por ejemplo

Recetas de cocina

Explican el paso a paso para crear una comida con una cantidad finita de ingredientes.
El estado inicial serían los ingredientes sin procesar y el estado final la comida
preparada.

Manuales

4
Programación Imperativa
Año 2024
Sirven de guía para ejecutar procesos, desde cómo armar una biblioteca hasta cómo
activar un teléfono móvil. En estos casos, el estado final es el producto armado,
instalado, encendido, en funcionamiento, etc.

Operaciones matemáticas

En matemáticas, algunos ejemplos de algoritmos son la multiplicación, en donde


seguimos una secuencia de operaciones para obtener un producto; o la división, que
nos permite determinar el cociente de dos números. El algoritmo de Euclides, con el
cual sacamos el máximo común divisor de dos enteros positivos es otro ejemplo de
algoritmo.

ALGORITMO EN INFORMÁTICA
En informática o programación, el algoritmo es la secuencia de instrucciones
mediante la cual podemos resolver un problema o cuestión.

De hecho, todas las tareas ejecutadas por la computadora se basan en


algoritmos. Un software o programa informático está diseñado a base de algoritmos, de
modo que podemos introducir una tarea en él y resolverla.

Las herramientas o técnicas de programación que más se utilizan y que se


emplearán para la representación de algoritmos son dos:

1. Pseudocódigo.
2. Diagramas de flujo.

Y alternativamente se presentarán soluciones de problemas donde se utilicen:

3. Diagramas Nassi-Schneiderman (N/S).

Podras realizar los:

TRABAJO PRACTICO N° 1

TRABAJO PRACTICO N° 2

Identificadores
Antes de analizar cada una las herramientas que se utilizan en representación
de algoritmos para la solución de problemas, se establecerán qué son los identificadores
que se utilizan dentro de un algoritmo.

Los identificadores son los nombres que se les asignan a los objetos, los cuales
se pueden considerar como variables o constantes, éstos intervienen en los procesos

5
Programación Imperativa
Año 2024
que se realizan para la solución de un problema, por consiguiente, es necesario
establecer qué características tienen.

Para establecer los nombres de los identificadores se deben respetar ciertas


reglas que establecen cada uno de los lenguajes de programación, para el caso que nos
ocupa se establecen de forma indistinta según el problema que se esté abordando, sin
seguir regla alguna, generalmente se utilizará la letra, o las letras, con la que inicia el
nombre de la variable que representa el objeto que se va a identificar.

Constante
Un identificador se clasifica como constante cuando el valor que se le asigna a
este identificador no cambia durante la ejecución o proceso de solución del problema.
Por ejemplo, en problemas donde se utiliza el valor de PI, si el lenguaje que se utiliza
para codificar el programa y ejecutarlo en la computadora no lo tiene definido, entonces
se puede establecer de forma constante estableciendo un identificador llamado PI y
asignarle el valor correspondiente de la siguiente manera:

PI = 3.1416.

De igual forma, se puede asignar valores constantes para otros identificadores


según las necesidades del algoritmo que se esté diseñando.

“Una constante es un espacio en memoria que no puede ser


modificado durante la ejecución de un programa”

Variables
Los identificadores de tipo variable son todos aquellos objetos cuyo valor cambia
durante la ejecución o proceso de solución del problema. Por ejemplo, el sueldo, el pago,
el descuento, etcétera, que se deben calcular con un algoritmo determinado, o en su
caso, contar con el largo (L) y ancho (A) de un rectángulo que servirán para calcular y
obtener su área. Como se puede ver, tanto L como A son variables que se proporcionan
para que el algoritmo pueda funcionar, y no necesariamente se calculen dentro del
proceso de solución.

“Una Variable es un espacio en memoria que puede ser modificado


durante la ejecución de un programa”

6
Programación Imperativa
Año 2024
TIPOS DE DATOS
Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las
variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y
cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica
para obtener los resultados deseados. Cada lenguaje de programación dispone de un
conjunto de tipos de datos que puede manipular; sin embargo, los que aquí se presentan
corresponden a aquellos que todos los lenguajes de programación disponen, y que se
conocen como tipos de datos estándares. La siguiente tabla presenta una descripción
de éstos.

TIPO DE SUBTIPO DESCRIPCIÓN VARIABLES VALORES


DATO
Este tipo dato corresponde a aquellas
variables que exclusivamente pueden recibir
nroEstudiantes 40
VALORES SIN PARTE DECIMAL.
Generalmente se utilizan en las variables que anio 2015
ENTEROS
contienen cantidades de elementos que no nroLados 3
pueden fraccionarse, como el número de
NUMÉRICO

personas, el número de edificios, entre otros


Este tipo de dato, en cambio corresponde a
aquellas variables cuyos VALORES TIENEN
sueldo 354,25
PARTE DECIMAL, aunque al mismo tiempo
puede contener valores enteros. Así el lado area 12,56
REALES
de un triángulo puede ser 3,5 (0,5 es la parte valorRadio 3,0
decimal), pero también podría haber tomado
un valor de 3,0 (0,0 es la parte decimal).
En este tipo de dato se encuentran todos los
caracteres conocidos, una letra, un número,
un símbolo especial. Por lo tanto, está
conformado por los DÍGITOS:'0', '1', '2', ...,
'A'
TEXTO

paralelo
CARACTERES '9'; LETRAS: 'a', 'b', 'c', ... , 'z'; MAYÚSCULAS: '1'
opcion
'A', 'B', 'C', ... , 'Z'; y CARACTERES ESPECIALES:
'%', '*', '?', ... , '/'. En algunos lenguajes de
programación como Java y C#, se utiliza la
comilla simple ('') para identificar un carácter,

7
Programación Imperativa
Año 2024
sin embargo esto puede cambiar
dependiendo del lenguaje de programación.
Constituyen conjuntos de caracteres, es decir direccion "Calle
Juan León
la UNIÓN DE VARIOS CARACTERES, que
pueden ser palabras o frases. El valor de este Mera"
CADENAS
nombre "Sandra
tipo de datos se encierra generalmente entre
Vásquez"
comillas (" ").
estadoCivil "soltero"
LÓGICOS Los booleanos o tipos de datos lógicos,
únicamente reciben dos valores: true ó false.
Se utilizan generalmente como banderas,
para identificar si se realizó o no un proceso.

BOOLEAN Más adelante se podrán aplicar en ejemplos y bandera true


comprender su funcionamiento. Lo
importante por ahora es conocer que
únicamente pueden tomar DOS VALORES:
VERDADERO (true) o FALSO (false)

OPERADORES MATEMÁTICOS
Llamados también Operadores Aritméticos, y sirven para resolver expresiones
matemáticas, ya sean con utilizando variables, constantes y/o expresiones, y son:

+ Suma
- Resta
* Multiplicación (Producto)
/ División
% Residuo o sobrante de la división

Una aclaración, el operador “%”, indica el resto de la división entera. Ejemplo:

• Si dividimos 30/3, su cociente es 10, y su residuo o sobrante es 0.


• Si dividimos 25/3, su cociente es 8, y tiene un residuo de 1.
Entonces de lo que se encarga, este operador, es de devolvernos el valor del residuo
de una división. Cabe aclarar que los datos deben de ser tipo entero, y su sintaxis es
la siguiente:

25 % 3
8
Programación Imperativa
Año 2024
Los operadores matemáticos disponibles son los habituales para una calculadora.
Para empezar, los básicos suma ( + ), resta ( -), multiplicación ( * ) y división ( / ).

La escritura en el ordenador habrá de guiarse por los órdenes de prelación habituales


en matemáticas, a saber:

RAICES Y POTENCIAS(EXPONENCIACIÓN
MULTIPLICACIÓN Y DIVISIÓN
SUMA Y RESTA

Las raíces serán consideradas como exponenciación:

Los operadores con igual prioridad se ejecutan de izquierda a derecha en caso de


aparecer encadenados.
Los paréntesis dan prioridad a las operaciones que encierran. Es recomendable usar
paréntesis aun no siendo necesarios si con ello se logra mejorar de forma notable en
claridad para interpretación de lo escrito.
Ejemplos:

NOTACIÓN MATEMÁTICA -> ESCRITURA EN ORDENADOR

a ^ (1 / 2) + (3 * a) / (b + 5 / (a * d))

-> o también es válida esta otra expresión

a ^ 0.5 + 3 * a / (b + 5 / (a * d))

-> ((a + b ^ (1 / 3)) / ((a + b) / c)) ^ (1 / 2)

-> (a + b / c) / (3 + 5 / c)

-> 3 * a + b – d * b ^ (-1)

Por último indicar que la mayoría de los lenguajes nos permiten conocer el cociente
o resto de una división “tradicional”:
9
Programación Imperativa
Año 2024

Para ello la notación que se sigue es:


26 mod 6 ó 26 % 6 devuelve el resto de la división, es decir, 2
26 \ 6 devuelve el cociente de la división, es decir, 4
A veces se utiliza, en vez de la barra invertida el término div, por ejemplo 26 div 6.

REALIZAR TRABAJO PRACTICO N° 3

OPERADORES DE RELACIONALES
Los operadores relacionales se usan para evaluar expresiones condicionales y se
basan en el concepto de verdadero o falso.

SÍMBOLO SIGNIFICADO EJEMPLO

= Igual que A=B

> Mayor que A>B

< Menor que A<B

>= Mayor o igual que A >= B

<= Menor o igual que A <= B

<> Distinto que A <> B

Nótese que las expresiones matemáticas de mayor o igual que y menor o igual que se
escriben utilizando los símbolos de mayor o menor seguidos de un igual (>=, <=).
La evaluación de una comparación da lugar a un resultado de verdadero o falso. Este
resultado puede servir de base para tomar una decisión, pero también puede
almacenarse en una variable booleana. Por ejemplo:
Cam = H < 3 da lugar a que la variable Cam adquiera valor verdadero si H es menor
que tres, o falso si H no es menor que tres.
Supongamos distintas expresiones de comparación entre dos variables A y B con
valores A = 2 y B =7.

EXPRESIÓN EVALUACIÓN

A>B Falso

A<B Verdadero

A >= B Falso

10
Programación Imperativa
Año 2024
A <= B Verdadero

B>A Verdadero

A–B>0 Falso

A+B>0 Verdadero

Res = A > B Falso es almacenado en la variable Res

A <> B Verdadero

A=B Falso

OPERADORES LÓGICOS
Los operadores lógicos son usados para concatenar dos o más expresiones con
operadores relacionales.
Operador Símbolo Ejemplo
AND && AND lógico
OR || OR lógico
NOT ! NEGACIÓN

SÍMBOLO SIGNIFICADO EJEMPLO


No (Not) No se cumple que No A = B
y (And) Y se cumple que A=ByH>M
o (Or) O se cumple que A=BóH>M

Nota: usaremos una o acentuada con el fin de evitar que se confunda con el número
cero.
Respecto a estos operadores, sólo podrán ser usados para evaluar expresiones
pero nunca para escribir instrucciones una detrás de otra, relacionadas con estos
operadores. Por ejemplo, A = 3 y B = 8 no se pueden usar como instrucciones para
que el ordenador asigne valores. Únicamente se pueden usar con el fin de evaluar el
hecho de que se cumpla A = 3 y B = 8 dando lugar a un resultado de verdadero, o que
no se cumpla, dando lugar a un resultado de falso.
Respecto al operador No (Not), además de saber de su existencia y significado,
prescindiremos de su uso ya que en general existirá una expresión equivalente en la
que no es necesario y que proporciona mayor claridad y facilidad de lectura.
Expresiones equivalentes para el operador No:
EXPRESIONES CON NOT EQUIVALENTE
Not A <> 0 A=0
Not A > B A <= B
Not A>= B A<B
Not A = B A <> B

11
Programación Imperativa
Año 2024

REALIZAR TRABAJO PRACTICO N° 4

LENGUAJES DE PROGRAMACIÓN
¿Qué es un lenguaje de programación?
Es el medio por el cual se comunica a cualquier dispositivo que lo requiera,
una serie de acciones o instrucciones con el fin de lograr un objetivo.

Esto se produce con la escritura de un código, que el dispositivo interpreta


y que da como resultado una acción o un resultado deseado.

Lenguaje Maquina
Lenguaje de maquina: El lenguaje de maquina es aquel cuyas instrucciones son
directamente entendibles por la computadora y no necesitan traducción posterior para
que la UCP 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 (bit) = digito binario 0 o 1, en esencia una secuencia de bits que
especifican la operación y las celdas de memoria implicadas en una operación

Ejemplo: Instrucciones en lenguaje de maquina:

0010, 0000, 1001, 1001, 10001, 1110.

Como se observa estas instrucciones son fáciles de leer por una computadora y difíciles
para un programador y viceversa. Por esta razón se hace difícil escribir programas en
código o lenguaje de máquina. Y se requiere otro lenguaje para comunicarse con la
computadora pero que se hace más fácil de escribir y de leer por el programador. Para
evitar la tediosa tarea de escribir programas en este lenguaje se han diseñado otros
programas de programación que facilitan la escritura y posterior ejecución de los
programas.

Lenguaje Ensamblador
Son una representación más entendible para el humano de los códigos del lenguaje
máquina. Cada instrucción en lenguaje ensamblador representa una instrucción en el
lenguaje máquina. El lenguaje ensamblador aparece casi a la par con el lenguaje
máquina, esto debido a que los fabricantes de hardware diseñan sus Chips pensando
ya en las instrucciones de un lenguaje de ensamblado.

Un ejemplo de una instrucción en lenguaje máquina y en lenguaje ensamblador:

Ejemplo de Lenguaje Máquina vs. Lenguaje Ensamblador


Lenguaje Máquina Lenguaje Ensamblador

12
Programación Imperativa
Año 2024
0010111000000001
0000000000001010 mov ax, 10

A pesar de que el lenguaje ensamblador es más fácil de entender por las personas sigue
teniendo las desventajas del lenguaje de máquina. Realmente lo que hace es ayudar un
poco a que el código sea más legible. El lenguaje ensamblador adicionalmente necesita
un traductor (ensamblador) capaz de convertir dichos códigos en lenguaje máquina.

Ejemplos de ensambladores: TASM (Turbo Assembler de Borland), MASM (Microsoft


Macro Assembler), NASM (Netwide Assembler - Libre).

LENGUAJES DE ALTO NIVEL


Son lenguajes más afines con el programador en los que una instrucción puede
representar varias instrucciones en lenguaje máquina. Incluyen los lenguajes
estructurados y no estructurados. Como ejemplos tenemos: Basic, Pascal, C, APL,
FORTRAN (Aplicaciones Científicas), COBOL (para aplicaciones de procesamiento de
datos), LISP Y PROLOG (para Inteligencia Artificial), etc.

Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador o
compilador. Los interpretadores o intérpretes, necesitan de un programa auxiliar que
traduce en tiempo real las instrucciones al lenguaje máquina, por lo tanto, cada vez que
un programa interpretado se ejecuta debe ejecutarse también su interprete. Ejemplos de
lenguajes interpretados: Basic, PROLOG, LISP, entre otros.

Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción
al lenguaje máquina. La traducción o compilación se hace solo una vez, y el resultado es
un código objeto entendible por la máquina. Para ejecutar un programa compilado no se
necesita de su compilador. Ejemplos de lenguajes compilados: Pascal, C, Fortran, Cobol,
Modula-2 (evolución del Pascal), etc.

Algunas de las características de los lenguajes de alto nivel:


• Depuración más sencilla: Debido a que el código es más legible, la
depuración también se hace más fácil. Con la ayuda editores (IDEs –
Entornos de Desarrollo Integrados) la compilación, depuración y ejecución
se hacen más fácilmente.
• Productividad aceptable: son más productivos que los lenguajes de alto nivel.
• Algunos permiten la Portabilidad: generalmente los interpretados.

Los lenguajes estructurados, existen controles que le dan secuencia ordenada a la


ejecución del código. Dichos controles se implementan con estructuras definidas que

13
Programación Imperativa
Año 2024
permiten bifurcaciones condicionadas o ciclos repetitivos. Los lenguajes estructurados
hacen que el programador desarrolle sus algoritmos disciplinadamente.

Una rama de los lenguajes de alto nivel son los lenguajes procedurales, donde la unidad
funcional es el procedimiento. Los procedimientos implementan la lógica de caja negra
donde existen unas entradas y unas salidas y al programador que usa el procedimiento
no le interesa su funcionamiento interno sino su funcionalidad

PSEUDOCÓDIGO
Sin duda, en el mundo de la programación el pseudocódigo es una de las herramientas
más conocidas para el diseño de solución de problemas por computadora. Esta
herramienta permite pasar casi de manera directa la solución del problema a un lenguaje
de programación específico.

El pseudocódigo es una serie de pasos bien detallados y claros que conducen a la


resolución de un problema.

La facilidad de pasar casi de forma directa el pseudocódigo a la computadora ha dado


como resultado que muchos programadores implementen de forma directa los
programas en la computadora, cosa que no es muy recomendable, sobre todo cuando
no se tiene la suficiente experiencia para tal aventura, pues se podrían tener errores
propios de la poca experiencia acumulada con la solución de diferentes problemas.

Por ejemplo, el pseudocódigo para determinar el volumen de una caja de dimensiones


A, B y C se puede establecer de la siguiente forma:

1. Inicio.

2. Leer las medidas A, B y C.

A 3. Realizar el producto de A * B * C y guardarlo en V (V = A * B * C).


C
B 4. Escribir el resultado V.

5. Fin.
Como se puede ver, se establece de forma precisa la secuencia de los pasos por
realizar; además, si se les proporciona siempre los mismos valores a las variables A, B
y C, el resultado del volumen será el mismo y, por consiguiente, se cuenta con un final.

DIAGRAMAS
Un diagrama es un dibujo o esquema que sirve para representar gráficamente
las relaciones entre las distintas partes o componentes de un sistema o conjunto.
También se pueden utilizar para representar la resolución de un problema, para definir
14
Programación Imperativa
Año 2024
el conjunto de estados por los que pasa un sistema o para mostrar las operaciones que
realiza un sistema. Son muy útiles ya que el ser humano reconoce rápidamente la
información visual. Además, a veces son necesarias varias páginas de texto para
proporcionar la misma información que con un buen diagrama.

Los diagramas se usan frecuentemente en prácticamente todas las disciplinas


de la ciencia y la tecnología. Es por ello que existen multitud de tipos de diagramas, por
lo que es imposible ni tan siquiera listarlos todos, y mucho menos describirlos con
detalle. De entre todos los tipos de diagramas existentes, veremos someramente
algunos de ellos a continuación.

Diagramas de Flujo
Los diagramas de flujo permiten representar gráficamente un algoritmo o un
proceso. Se utilizan en numerosas disciplinas como programación, economía,
psicología, procesos industriales, etc.

Los diagramas de flujo contienen dos tipos de elementos: nodos y flechas. Los
nodos hacen referencia a actividades, procesos o decisiones y las flechas se utilizan
para visualizar el flujo de la información entre los nodos.

Los diagramas de flujo tienen un único punto inicial y un único punto final. Así
mismo, todos los caminos posibles que se pueden recorrer siguiendo las flechas deben
partir del nodo de inicio y llegar al nodo final. Si existe algún camino que no empieza en
el punto inicial o no termina en el punto final, el diagrama de flujo es incorrecto.

Existen distintos tipos de formato de diagramas flujo. Los más comunes son los
siguientes:

• Formato vertical. El nodo inicial está situado en la parte superior del


diagrama y el flujo va de arriba hacia abajo hasta que acaba en el nodo final. Se utilizan
cuando se quieren representar una lista ordenada de operaciones.

15
Programación Imperativa
Año 2024

Los símbolos más importantes para representar un diagrama de flujo son los siguientes:
• Óvalo o Elipse. Se utiliza para representar el inicio o el final del diagrama.
• Rectángulo. Se usa para representar actividades, pasos o procedimientos.
• Rombo. Formula una pregunta o decisión.
• Círculo. Es un conector para enlazar actividades dentro de un procedimiento.
Une el flujo a otro punto lejano del diagrama...

Diagramas estructurados (Nassi-Schneiderman)


El diagrama estructurado N-S también conocido como diagrama de Chapin es como un
diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas.
Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas
de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente
en la sig. forma:
Inicio

Accion1

Accion2

...

Fin

16
Programación Imperativa
Año 2024
SIMBOLOGIA

Diagrama de Flujo Diagrama de Bloque Significado y Funcion


INICIO Y FIN DEL DIAGRAMA

I F

INGRESO O ENTRADA DE DATOS

OPERACIÓN PROCESO O ASIGNACION


DE DATOS

MUESTREO DE DATOS POR PANTALLA

BIFURCACION O DECISION
Condición
No Si
condición

FLECHAS DE DIRECCION

CONECTORES DE PAGINA

CONECTOR INICIO DE PAGINA

CONECTOR FIN DE PAGINA

En este nuevo tema vamos a resolver los problemas con símbolos, y no con
palabras como lo hacíamos con los algoritmos.
I
Por ejemplo, para iniciar o finalizar el diagrama colocaremos los símbolos F
Si queremos ingresar un dato, en el diagrama de Flujo debemos utilizar
Y en el diagrama de Bloque debemos utilizar

Si queremos hacer una operación, como suma, multiplicación, división, superficie, etc.
Utilizaremos en ambos diagramas que es el mismo símbolo

Si queremos mostrar los datos por pantalla, ya sea la suma de números, la


superficie, el promedio, etc. Debemos utilizar:
En el diagrama de Flujo y en el diagrama de Bloque

17
Programación Imperativa
Año 2024
En el caso de las Decisiones Simples, donde se debe cumplir una condición
debemos utilizar
condición
condición

no si
no si

El primero para Diagrama de Flujo y el segundo para el Diagrama de Bloque. En el


caso de Diagrama de Flujo los símbolos van unidos por flechas
En el caso de Diagrama de Bloques los símbolos van apilados uno encima del
otro.
También utilizamos los conectores en los diagramas de Flujos: Los de páginas,
los de Fin de Página: cuando se termina la página y debo continuar en otra
página y los de Inicio de página cuando debo comenzar en otra página.

Ahora comenzaremos a realizar algunos ejemplos:


1. Realizar un diagrama que permita ingresar dos números, se deberán
sumarlos y mostrar el resultado

Lo primero que debes hacer es leer el enunciado, analizar y tratar de comprender


para resolverlo.

Haremos el algoritmo para que recuerdes como se hacía y luego los pasamos a
la diagramación con símbolos, tanto de flujo como de bloque y al final haremos
la prueba de escritorio.

ALGORITMO
1- Iniciar

2- Ingresar el primer número y guardarlo en la variable A

3- Ingresar el segundo número y guardarlo en la variable B

4- Sumar el contenido de la variable A con el contenido de la variable B y


guardar el resultado en la variable C
5- Mostrar el resultado de la suma guardado en la variable C

6- Finalizar
DIAGRAMA DE FLUJO DIAGRAMA DE BLOQUE

18
Programación Imperativa
Año 2024

PRUEBA DE ESCRITORIO
A B C
5 10 15
4 50 54
Como verás hicimos este sencillo problemita, con algoritmo, diagrama de flujo, de
bloque y su correspondiente prueba de escritorio.

REALIZAR TRABAJO PRACTICO N° 5

Hasta este momento, todas las sentencias se ejecutaban secuencialmente en el


orden en que estaban escritas en el código fuente. Esta ejecución, como ya se ha
comentado, se denomina ejecución secuencial. Un programa basado en ejecución
secuencial, siempre ejecutará exactamente las mismas acciones; es incapaz de
reaccionar en respuesta a condiciones actuales. Sin embargo, la vida real no es tan
simple. Normalmente, los programas necesitan alterar o modificar el flujo de control
en un programa. Así, en la solución de muchos problemas se deben tomar acciones
diferentes dependiendo del valor de los datos.
Ejemplos de situaciones simples son: cálculo de una superficie sólo si las medidas
de los lados son positivas; la ejecución de una división se realiza, sólo si el divisor
no es cero; la visualización de mensajes diferentes depende del valor de una nota
recibida, etc.
Una bifurcación (“branch”, en inglés) es un segmento de programa construida con
una sentencia o un grupo de sentencias. Una sentencia de bifurcación se utiliza para

19
Programación Imperativa
Año 2024
ejecutar una sentencia de entre varias o bien bloques de sentencias.
La elección se realiza dependiendo de una condición dada. Las sentencias de
bifurcación se llaman también sentencias de selección o sentencias de alternación o
alternativas.

ESTRUCTURA SECUENCIAL

Una estructura secuencial es aquella en la que una acción (instrucción) sigue a


otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la
entrada de la siguiente y así sucesivamente hasta el final del proceso.
La estructura secuencial tiene una entrada y una salida.

Diagrama de Flujo Diagrama N-S Estructura Pseudocodigo Estructura


Estructura secuencial Secuencial secuencial

ESTRUCTURAS SELECTIVAS
La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo
requiere una descripción más complicada que una lista sencilla de instrucciones.
Este es el caso cuando existen un número de posibles alternativas resultantes de la
evaluación de una determinada condición. Las estructuras selectivas se utilizan para
tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de
decisión o alternativas.
En las estructuras selectivas se evalúa una condición y en función del resultado de
la misma se realiza una opción u otra. Las condiciones se especifican usando
expresiones lógicas. La representación de una estructura selectiva se hace con
palabras en pseudocódigo (if, then, else o bien en español si, entonces, si_no),
con una figura geométrica en forma de rombo o bien con un triángulo en el interior
de una caja rectangular. Las estructuras selectivas o alternativas pueden ser:
• simples,
• dobles,
• múltiples.

20
Programación Imperativa
Año 2024
ALTERNATIVA SIMPLE (SI-ENTONCES/IF-THEN)
La estructura alternativa simple si-entonces (en inglés if-then) ejecuta una
determinada acción cuando se cumple una determinada condición. La selección si-
entonces evalúa la condición y

• si la condición es verdadera, entonces ejecuta la acción S1 (o acciones


caso de ser S1 una acción compuesta y constar de varias acciones),
• si la condición es falsa, entonces no hacer nada.

Las representaciones gráficas de la estructura condicional simple se muestran a


continuación.

Condicion

Verdadero

Falso
Acciones

Pseudocódigo en español Pseudocódigo en inglés


si <condición> entonces if <condición> then
<acción S1> <acción S1>
fin _ si Endif

Obsérvese que las palabras del pseudocódigo si y fin_si se alinean verticalmente


indentando (sangrando) la <acción> o bloque de acciones.

ALTERNATIVA DOBLE (SI-ENTONCES-SINO/IF-THEN-ELSE)


La estructura anterior es muy limitada y normalmente se necesitará una estructura
que permita elegir entre dos opciones o alternativas posibles, en función del
cumplimiento o no de una determinada condición. Si la condición es verdadera, se
ejecuta la acción S1 y, si es falsa, se ejecuta la acción S2.

21
Programación Imperativa
Año 2024

Pseudocódigo en español Pseudocódigo en inglés


si <condicion> entonces if <condicion> then
<accion S1> <accion S1>
si _ no else
<accion S2> <accion S2>
fin _ si Endif

Obsérvese que en el pseudocódigo las acciones que dependen de entonces y si_no


están indentadas en relación con las palabras si y fin_si; este procedimiento
aumenta la legibilidad de la estructura y es el medio más idóneo para representar
algoritmos.

ALTERNATIVA MÚLTIPLE (SEGÚN_SEA, CASO DE/CASE)


Con frecuencia —en la práctica— es necesario que existan más de dos elecciones
posibles. Este problema, como se verá más adelante, se podría resolver por
estructuras alternativas simples o dobles, anidadas o en cascada; sin embargo, este
método si el número de alternativas es grande puede plantear serios problemas de
escritura del algoritmo y naturalmente de legibilidad.
La estructura de decisión múltiple evaluará una expresión que podrá tomar n valores
distintos, 1, 2, 3, 4, ..., n.
Según que elija uno de estos valores en la condición, se realizará una de las n
acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado camino
entre los n posibles.
Los diferentes modelos de pseudocódigo de la estructura de decisión múltiple se
representan a continuación.

22
Programación Imperativa
Año 2024

según_sea E hacer
e1: acción S1

e2: acción S2

en: acción Sn

otros: acción Sx

fin_según

ESTRUCTURAS DE DECISIÓN ANIDADAS (EN ESCALERA)


Las estructuras de selección si-entonces y si-entonces-si_no implican la selección
de una de dos alternativas.

Es posible también utilizar la instrucción si para diseñar estructuras de selección que


contengan más de dos alternativas.

Por ejemplo, una estructura si-entonces puede contener otra estructura si-
entonces, y esta estructura sientonces puede contener otra, y así sucesivamente
cualquier número de veces; a su vez, dentro de cada estructura pueden existir
diferentes acciones.

23
Programación Imperativa
Año 2024

Las estructuras si interiores a otras estructuras si se denominan anidadas o encajadas:


si <condicion1> entonces

si <condicion2> entonces

<acciones>

fin_si

fin_si

Una estructura de selección de n alternativas o de decisión múltiple puede ser


construida utilizando una estructura si con este formato:

si <condicion1> entonces
<acciones>
si_no
si <condicion2> entonces
<acciones>
si_no
si <condicion3> entonces
<acciones>
si_no
fin_si
fin_si.
fin_si
Una estructura selectiva múltiple constará de una serie de estructuras si, unas
interiores a otras. Como las estructuras si pueden volverse bastante complejas para
que el algoritmo sea claro, será preciso utilizar indentación (sangría), de modo que
exista una correspondencia entre las palabras reservadas si y fin_si, por un lado, y
entonces y si_no, por otro.

Podras realizar los Trabajos Practicos N° 6 – 7 -8

24
Programación Imperativa
Año 2024
ESTRUCTURAS REPETITIVAS

Las estructuras de control repetitivas son aquellas que permiten ejecutar un conjunto de
instrucciones varias veces, de acuerdo al valor que genere la expresión relacional y/o
lógica. Esta estructura repetitiva se utiliza principalmente cuando no se conoce el
número de veces que las acciones o el ciclo deben repetirse, aunque también puede
utilizarse en otros casos.

Las estructuras repetitivas, permiten repetir una acción (o grupo de acciones) varias veces.

Existen tres tipos de estructuras repetitivas: mientras, desde-hasta y repetir-hasta.

CONTADORES
Un contador es una variable de tipo entero que incrementa o decrementa su valor de
forma CONSTANTE y requiere ser inicializada como su nombre lo indica, generalmente
se utilizan para contar el número de veces que se ejecuta una acción o para contar el
número de veces que se cumple una condición (expresión relacional/lógica).

Por ejemplo, si se desea sumar los números del 1 al 5, se necesitará una variable que
genere esos números, es decir que empiece en 1 y llegue hasta el 5.

La variable que cumple el rol de contador aparece tanto a la izquierda como a la


derecha, por la propiedad destructiva de la asignación; así tomará el valor anterior, le
adicionará o reducirá el valor constante y asignará el nuevo valor.

ACUMULADORES
Un acumulador es una variable numérica, que incrementa o decrementa su valor de
forma NO CONSTANTE y requiere ser inicializada como su nombre lo indica se utilizan
para acumular valores en una sola variable, ya sea de suma o producto. Por lo tanto,
existen dos modos de inicialización:

• Para Suma: Inicializar en 0

• Para Producto: Inicializar en 1


Esto con el objetivo de no alterar los valores de las respectivas operaciones.
Ejemplo: Si se desea conocer el acumulado de los pagos realizados a un grupo de
empleados, se necesitará una variable que vaya sumando los sueldos de cada
empleado, se requiere una variable que permita calcular el acumulado.

25
Programación Imperativa
Año 2024
Para identificar qué procedimientos van dentro de una instrucción repetitiva debe
preguntarse lo siguiente:

• De las acciones requeridas para la solución de este problema, ¿cuáles se


realizan VARIAS VECES?

• Todas las respuestas a esta pregunta corresponden a las instrucciones que


van dentro de la sentencia repetitiva.

ESTRUCTURA DESDE O PARA (FOR)


En muchas ocasiones se conoce de antemano el número de veces que se desean
ejecutar las acciones de un bucle.

En estos casos, en el que el número de iteraciones es fijo, se debe usar la estructura


desde o para (for, en inglés).

La estructura desde ejecuta las acciones del cuerpo del bucle un número especificado
de veces y de modo automático controla el número de iteraciones o pasos a través del
cuerpo del bucle. Las herramientas de programación de la estructura desde o para se
muestran.

26
Programación Imperativa
Año 2024

ESTRUCTURA MIENTRAS (WHILE)


Repite el cuerpo del bucle mientras se cumpla una determinada condición.
La estructura repetitiva mientras (en inglés while o dowhile: hacer mientras) es aquella
en que el cuerpo del bucle se repite mientras se cumple una determinada condición.
Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se
evalúa la condición (una expresión booleana). Si se evalúa falsa, no se toma ninguna
acción y el programa prosigue en la siguiente instrucción del bucle. Si la expresión
booleana es verdadera, entonces se ejecuta el cuerpo del bucle, después de lo cual
se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra vez
mientras la expresión booleana (condición) sea verdadera.

27
Programación Imperativa
Año 2024
ESTRUCTURA REPETIR ("REPEAT")
Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una
vez antes de comprobar la condición de repetición. En la estructura mientras si el valor
de la expresión booleana es inicialmente falso, el cuerpo del bucle no se ejecutará; por
ello, se necesitan otros tipos de estructuras repetitivas.

La estructura repetir (repeat) se ejecuta hasta que se cumpla una condición


determinada que se comprueba al final del bucle.

El bucle repetir-hasta_que se repite mientras el valor de la expresión booleana de la


condición sea falsa, justo la opuesta de la sentencia mientras.

28
Programación Imperativa
Año 2024
GUÍA DE TRABAJOS PRÁCTICOS

29
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 1
Estas actividades tienen en cuenta los conocimientos previos adquiridos por los
alumnos, que le van a ser de utilidad en el dictado de la materia. Deben ser resueltas
utilizando procedimientos matemáticos válidos.
Se deben resolver y explicarlas, No interesa solo el resultado.
1. Divide 30 por 1/2 y suma 10. ¿Cuál es el resultado?
2. El 64% de 875 alumnos y alumnas de un colegio están inscriptos en el nivel
secundario. ¿Cuántos de ellos no son del nivel secundario?
3. De los 240 pasajeros que ocupa un avión, el 30% son chilenos, el 15% son
colombianos, el 25% son peruanos y el resto son argentinos. ¿Cuántos
argentinos viajan en el avión?
4. Si el doble de un número más 28 es igual 82, ¿qué número es?
5. Si la suma de un número con su consecutivo es 27, ¿qué número es?
6. Se tiene un rectángulo cuya base mide 5 unidades más que la altura. Calcular
la altura y la base del rectángulo sabiendo que su perímetro es 54m
7. Calcular tres números consecutivos que sumen 24.
8. La suma de un número con su mitad y con su tercera parte es igual a 22. ¿Qué
número es?
9. Si Manuel es 3 años mayor que Andrea y la suma de sus edades es 35, ¿qué
edades tienen cada uno?
10. María tiene un hermano llamado Juan. Juan tiene tantos hermanos como
hermanas. María tiene el doble de hermanos que de hermanas. ¿Cuántos
chicos y chicas hay en la familia?
11. ¿Es correcto que un hombre se case con la hermana de su viuda?
12. Si el doble de un número más su mitad resulta 55. ¿Cuál es el número?
13. En un frasco, había ½ kg de azúcar y Marta usó 1/6 kg para hacer un postre.
¿Cuánta azúcar quedó en el frasco?

30
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 2
Tema: Algoritmos

1. Elaborar un algoritmo que permita calcular y mostrar la superficie del triángulo


2. Elaborar un algoritmo que permita que permita calcular la área o superficie
(L2) del cuadrado.
3. Elaborar un algoritmo que permita calcular y mostrar la superficie del
círculo (𝑺𝑪 = 𝝅𝒓𝟐 )
4. Elaborar un algoritmo que permita obtener el valor de la Hipotenusa de un
triángulo rectángulo (H= √ 𝑪𝑨𝟐 + 𝑪𝑶𝟐 )
5. Elaborar un algoritmo que permita que permita calcular el importe a pagar de
un producto determinado. Se deberá ingresar un valor correspondiente al
precio unitario del producto y la cantidad comprada de dicho producto
6. Elaborar un algoritmo que permita que permita calcular la edad de una persona
expresada en días. Se deberá ingresar el año de nacimiento y el año actual
7. Elaborar un algoritmo que permita ingresar tres notas de un alumno
determinado. Se deberá mostrar el promedio de notas.
8. Elaborar un algoritmo que permita calcular la distancia recorrida de un
automóvil, con velocidad constante durante un tiempo determinado
(Considerar que es un movimiento rectilíneo uniforme) (D=V*T)

31
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 3
Tema: Conversiones

32
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 4
Tema: Operadores Relacionales - Logicos
A partir de los siguientes datos indicar si son Verdaderos o Falsos.
A=3
B=4
C = 10
D=9
E=5
Verdadero Falso
A=4
C <> 8
B>D
C >= (B+E)
10 < = C
(5+2) <> D
E => 4
___________________________________________________________________
Operadores Lógicos
Sabiendo que :
A=3
B=4
C = 10
D=9
E=5

Verdadero Falso
(A>B) OR (D=E)
(A=4) OR (D>E)
(C<>1) AND (A=3)
(B<5) AND (E=4)
NOT (A=3)
NOT (C<=9)
(A>C) AND (E <= 5)

33
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 5
Tema: Diagramas de Flujo - Datos

Ahora resolverás los siguientes diagramas (debes hacer diagrama de flujo, de


bloque y la prueba de escritorio)

1. Realizar un diagrama que permita ingresar tres números, se deberá


mostrar el producto entre los tres
2. Realizar un diagrama que permita ingresar la base y la altura de un
rectángulo, se deberá mostrar la superficie del mismo
3. Realizar un diagrama que permita obtener el valor de la hipotenusa del
triángulo rectángulo. Se deberá ingresar el cateto adyacente y el
cateto opuesto
4. Realizar un diagrama que permita ingresar cuatro notas de un
alumno determinado. Se deberá mostrar el promedio de notas.
5. Realizar un diagrama para calcular y mostrar la fuerza de la
segunda ley de Newton que dice: F=M*A, se deberá ingresar en
variable la Maza y la Aceleración

34
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 6
Tema: Estructuras Selectivas
Realizar los siguientes ejercicios

1. Realizar la codificación y sus respectivos diagramas para un programa que


permita identificar si un número ingresado es positivo o negativo.
2. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar dos números y me muestre cual es el mayor.
3. Realizar la codificación y sus respectivos diagramas para un programa que
permita detectar si un número ingresado es mayor a 100.
4. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar tres números y me muestre cual es el mayor.
5. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar una letra e indique si es vocal.
6. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar un número del 1 – 10 y determine si es número primo o no.
7. Realizar la codificación y sus respectivos diagramas para un programa que dado
un número del 1 al 7, muestre el correspondiente nombre del día de la semana.
8. Realizar la codificación y sus respectivos diagramas para un programa que
permita detectar si se ha introducido tres números en orden creciente o
decreciente.
9. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar cuatro notas de un alumno y calcular el promedio del mismo.
Si el promedio es igual mayor que 6 mostrar aprobado, caso contrario
desaprobado.
10. Realizar la codificación y sus respectivos diagramas para un programa que
permita ingresar tres números. Si el primero es mayor que 5, sumar el segundo
con el tercero, caso contrario multiplicar el segundo con el primero.

35
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 7
Tema: Estructuras Selectivas - Refuerzo
Resolver las siguientes situaciones. Pseudocodigo, diagrama de flujo, diagrama de
bloque.
1. Identificar si un numero ingresado es par o impar.
2. Dada una calificación en valor alfabético (A,B,C,D ó E) indique su equivalente
en valor numérico (4,5,6,7 u 8).
3. Calcule el salario semanal de un trabajador en base a las horas trabajadas y
el pago por hora trabajada.
4. Averiguar si un número tiene uno o más dígitos.
5. Dada la edad de una persona en la variable Edad y se debe informar si esta
persona es mayor de edad (18 años).

36
Programación Imperativa
Año 2024
TRABAJO PRACTICO N° 8
Tema: Estructuras Selectivas - R
Resolver las siguientes situaciones. Pseudocodigo, diagrama de flujo, diagrama de
bloque.
1. Dado como ato la calificación de un alumno en un examen, escriba “aprobado”
si su calificación es mayor o igual que 7 y “Reprobado” en caso contrario.
2. Dado el sueldo de un empleado, encontrar el nuevo sueldo si obtiene un
aumento del 10% si su sueldo es inferior a $600, en caso contrario no tendrá
aumento.
3. Determinar la cantidad de dinero que recibirá un trabajador por concepto de
las horas extras trabajadas en una empresa, sabiendo que cuando las horas
de trabajo exceden de 40 el resto se consideran horas extras y que estas se
pagan al doble de una hora normal cuando no exceden de 8; si las horas extras
exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora
normal y el resto al triple.
4. Dado dos números, calcular la suma de ambos si el primero es mayor que el
segundo y la resta de ambos en caso contrario.
5. Dado las tres medidas de los lados de un triángulo, determinar si el triángulo
es isósceles, escaleno o equilátero. (Equilátero: 3 lados iguales; isósceles: 2
lados iguales; Escaleno: 3 lados distintos)

37

También podría gustarte