0% encontró este documento útil (0 votos)
21 vistas8 páginas

Control Lectu Ra 4

El documento aborda los fundamentos de la resolución de problemas y la programación informática, enfatizando la importancia de una metodología estructurada para descomponer problemas complejos. Se destacan herramientas como diagramas de flujo y pseudocódigo, así como estructuras de control y operadores relacionales que permiten una toma de decisiones eficiente en la programación. En conjunto, estos conceptos forman una base sólida para desarrollar soluciones informáticas efectivas y escalables.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas8 páginas

Control Lectu Ra 4

El documento aborda los fundamentos de la resolución de problemas y la programación informática, enfatizando la importancia de una metodología estructurada para descomponer problemas complejos. Se destacan herramientas como diagramas de flujo y pseudocódigo, así como estructuras de control y operadores relacionales que permiten una toma de decisiones eficiente en la programación. En conjunto, estos conceptos forman una base sólida para desarrollar soluciones informáticas efectivas y escalables.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Nacional Autónoma de México

Facultad de Contaduría y Administración

Nombre: Merino Mena Eduardo Daniel

Control de lectura 4

Asignatura: Diseño de algoritmos


CONTROL DE LECTURA

Título: “Fundamentos de resolución de problemas y programación


informática”.
Fecha: 7 de octubre de 2024
Referencia:http://cs.iit.edu/~cs105/admin/cs104/ProblemSolving.pdf
#:~:text=At%20its%20core,%20computer%20programming%20is%20
solving%20problems.%20We%20will
IDEAS PRINCIPALES

1 La programación informática no es solo la sintaxis de un lenguaje de


programación y el uso de un entorno de desarrollo. La programación
informática abarca la resolución de problemas, puesto que es
necesario el uso de una metodología estructurada para un problema
determinado.
2 Pasos para plantear un problema:
1. Identificar todos los sustantivos en la oración y agrupar dichos
sustantivos en 2 categorías:
- Entrada: elementos que ya se conocen u obtenemos del
usuario.
- Salida: elementos que descubro manipulando la entrada.
2. Eliminar información redundante o irrelevante: se refiere a aquella
información que no necesitamos resolver realmente o que se
parezcan entre ellos.
3. Identificar todos los verbos en la oración.
4. Vincular entradas, procesos y salidas.
5. Usar tus conocimientos externos para completar tu solución.
3 La regla general para eliminar información redundante es eliminar
siempre el elemento más general, no los más específicos.
4 En la solución, se debe usar un verbo en general, como “calcular”, en el
caso planteado.
5 El segundo paso después de haber planteado correctamente nuestro
problema es usar un diagrama de flujo, para que, de una manera visual,
podamos representar el problema en términos de sus entradas, salidas y
procesos.
Las formas más básicas de un diagrama de flujo son el rectángulo
redondeado (inicio o fin de un programa), paralelogramo (entrada y salida
del programa), y rectángulo (procesamiento).
6 El diagrama de flujo debe venir directamente del diagrama desarrollado
previamente, por lo que es necesario establecer el nodo de inicio.
Una vez establecido el comienzo, se debe comenzar a agregar los
elementos del diagrama de manera secuencial y en el orden indicado en
la descripción del problema.
7 El paso final para el análisis de un problema es traducir este diagrama de
flujo a pseudocódigo. El pseudocódigo implica escribir todos los pasos
principales que se utilizarán en el programa tal como se muestran en el
diagrama de flujo. Este será similar a escribir declaraciones finales en su
lenguaje de programación sin tener que preocuparse por la sintaxis del
programa, pero conservando la flexibilidad del diseño del programa.

8 Los elementos más “básicos” de un pseudocódigo son:


- Get > usado para obtener información del usuario.
- Display > usado para mostrar información del usuario.
- Compute > indicar que se realiza una operación aritmética.
- + - * / = () > operadores aritméticos.
- Store > significa almacenar un fragmento de información para
su uso posterior.
Es necesario tener en cuenta que cada vez que se calcula un valor
que se necesitará más adelante, es necesario almacenarlo incluso si
se usará en el momento.

9 La toma de decisiones lógica es un posible camino en la resolución y


análisis de un problema. Es fácil identificar cuándo se debe tomar una
decisión para solucionar un problema.
Por ejemplo, el planteamiento “si está lloviendo, díganle a la persona que
traiga un paraguas”; en este caso, la condición sería “si está lloviendo”, y
la acción a seguir sería “díganle al usuario que traiga un paraguas”.
10 Después de realizar bocetos de posibles decisiones de nuestro programa,
se podría pasar nuevamente a los diagramas de flujo, y a estas instancias,
podemos añadir la figura de un rombo (que se usa para plantear una
situación donde se debe tomar una decisión).
11 Una vez que implementamos la toma de decisiones en el diagrama de
flujo, este mismo paso nos acerca mucho más a la implementación real
de esto en nuestra programación en cuanto al pseudocódigo.
La mayoría de las decisiones comenzarán con la palabra clave if, ya que
todas las decisiones deben ser enunciados declarativos, y se toma
como una respuesta “sí” a la condición.
De la misma manera, existe la palabra clave else, que representa la
respuesta “no” a la condición.
12 Condiciones: la mayoría de los lenguajes de programación usan
operadores relacionales (a veces con una sintaxis ligeramente diferente)
para realizar comparaciones matemáticas entre datos dentro de sus
condiciones. Símbolos como > (mayor que), >= (mayor o igual que), ==
(igual a), < (menor que), <= (menor o igual que), ≈ (no igual a) son los
usados, así como && (AND), || (OR), ! (NOT).
Estas ultimas 2 permiten crear condiciones compuestas. AND implica que
una condición es verdadera si todos de sus componentes es verdaderos
OR implica que una condición se evalúa como verdadera si alguno de sus
componentes es verdadero. NOT invierte el valor de verdad con una
condición.
13 La iteración o bucles se usan en cualquier punto en el que se desee
repetir un proceso, una idea o una función. En la programación, los bucles
son herramientas valiosas, ya que nos permiten realizar una enorme
cantidad de trabajo con una cantidad mínima de programación, y lo mejor
es que no es necesario aprender ninguna herramienta estructural
adicional para realizarlo.

14 Una vez que se tiene entendido el concepto de decisiones lógicas, la


iteración o bucles resulta más sencillo de aprender.
15 Es buena idea (y recomendable, sobre todo) establecer todas las variables
de un programa con un valor inicial antes de usarlas; si no se les asignan
valores inicialmente, tomarán cualquier valor que el programa haya
almacenado en su lugar.
16 Los acumuladores son variables que se utilizan para acumular un valor,
como un contador o una suma.
17 De la misma manera, es recomendable colocar (tanto en el diagrama de
flujo, como en pseudocódigo) la decisión while antes del bloque de código
que se repetirá.
18 La mayoría de los bules en los lenguajes de programación se prueban en
condiciones previas. Es decir, para ejecutar el bucle la primera vez, la
condición que la declaración while está verificando debe ser verdadera.
IDEAS SECUNDARIAS

- En el problema planteado “Dadas las 3 dimensiones de una caja


(largo, ancho y alto), calcule el volumen”, los datos de entrada son:
dimensiones, longitud, ancho, altura, caja; mientras que los datos de
salida son el volumen (puesto que se debe calcular este nuevo dato).
- Respecto al paso 2, se debe eliminar “dimensiones” de la lista de datos
de entrada, puesto que ya tenemos especificados el largo, el ancho y
alto. De la misma manera, debemos borrar “caja”, puesto que tampoco
es necesario tener la caja físicamente.
- En el paso del diagrama de flujo, al iniciar el programa, se deben leer
las entradas “obtener la longitud, altura y peso del usuario”, para
posteriormente calcular el largo, ancho y la altura y que después se
pueda mostrar el resultado del cálculo deseado (volumen).
- En el pseudocóodigo, se introducirán los datos de la siguiente manera:

Get length, width, height


Compute volume
volume = length * width * height
Store volume
Display volumen
- En el diagrama de flujo de la lluvia, se debe añadir un rectángulo
redondeado para especificar el inicio del programa, un paralelogramo
para señalar que se debe preguntar a una persona si está lloviendo,
para posteriormente, añadir el rombo (decisión) con la pregunta “¿está
lloviendo?”, y de aquí surgen 2 caminos: sí, donde se le debe decir a
la persona que traiga con ella un paraguas, para posteriormente
indicar el fin, o que la respuesta a la pregunta sea “no” y conducir
directamente al fin.
- De este planteamiento, el pseudocódigo quedaría de la siguiente
manera:
Ask user if it is raining
Get answer
If answer is yes
Display “Get an umbrella”
Else
Display “It is sunny”

- En cuanto a los bucles, cabe mencionar que se puede usar bucles


dentro de otros bucles para resolver problemas más complejos, como
recorrer matrices bidimensionales.
- Existen los bucles infinitos, y son aquellos que nunca terminan de
ejecutarse porque su condición de salida nunca llega a cumplirse.
Puede causar que un programa se quede “colgado” o consuma todos
los recursos del sistema, lo que suele ser un error no deseado en la
gran mayoría de casos.
- Existen buenas prácticas para escribir bucles eficientes, como, por
ejemplo, reducir las operaciones costosas dentro del cuerpo del bucle
o minimizar las actualizaciones de la condición de salida.
- La recursividad es una técnica en la que una función se llama a sí
misma directa o indirectamente para resolver un problema en etapas,
generalmente dividiéndolo en subproblemas más pequeños.
- Prácticas un poco más avanzadas recomiendan comparar el uso de
bucles y recursividad en la programación y cuándo es más adecuado
usar uno y otro. Se recomienda usar los bucles cuando el problema es
simple y requiere un número fijo de iteraciones o depende de una
condición claramente definida y cuando se desea maximizar la
eficiencia en términos de memoria y velocidad. La recursividad se
recomienda usar cuando el problema tiene una estructura jerárquica o
puede dividirse naturalmente en subproblemas más pequeños o
cuando se requiere escribir un código más conciso y claro para
problemas de naturaleza recursiva.
ESQUEMA RESUMEN
CONCLUSIÓN

En conclusión, el texto "Fundamentos de resolución de problemas y


programación informática" resalta cómo la programación no solo es una
habilidad técnica, sino una metodología efectiva para descomponer problemas
complejos en pasos manejables y estructurados. A través del uso de diagramas
de flujo, se facilita la representación gráfica de los procesos, lo que permite
planificar y optimizar las soluciones antes de su implementación. El
pseudocódigo, por su parte, ofrece un lenguaje claro y accesible que ayuda a
conceptualizar los algoritmos, haciendo uso de estructuras básicas como "get",
"display", "compute" y "store", lo que fomenta la claridad en el diseño del
programa.

Asímismo, el dominio de las estructuras de control como if, else y while es


fundamental para la toma de decisiones dentro de los programas, permitiendo
que se adapten a diferentes condiciones de manera dinámica y eficiente. Los
operadores relacionales, como > >= == < ≈ <= son cruciales en estas
estructuras, ya que permiten comparar valores y definir las condiciones bajo las
cuáles se ejecutan diferentes acciones dentro del código. La combinación de
operadores relacionales con estructuras de control proporciona flexibilidad y
dinamismo en la ejecución de los programas. Al permitir al programa ajustar su
flujo según las condiciones evaluadas en tiempo de ejecución, se pueden
resolver problemas de mayor complejidad, adaptándose a distintos escenarios
con precisión. Junto con los bucles e iteraciones, aquellas herramientas que
automatizan tareas repetitivas; con todo este conjunto de instrucciones se logra
optimizar los recursos computacionales.

En conjunto, todos estos conceptos proporcionan una base sólida para abordar
problemas de programación de manera lógica y eficaz, haciendo cada vez más
fácil la creación de soluciones eficientes y escalables. Esta perspectiva integral
subraya la importancia de comprender profundamente estos fundamentos,
incluidos los operadores relacionales, para aplicarlos con éxito en la resolución
de problemas en el ámbito de la informática.

También podría gustarte