0% encontró este documento útil (0 votos)
324 vistas43 páginas

Algoritmos y Lenguajes de Programación

El documento describe los algoritmos, lenguajes de programación y sus aplicaciones. Explica que un algoritmo es una secuencia lógica de pasos para resolver un problema de manera independiente del lenguaje o computadora utilizados. Los lenguajes de programación permiten dar instrucciones a las computadoras de forma comprensible para los humanos. Finalmente, menciona algunos de los lenguajes de programación más populares y sus usos comunes como Java, Python, C++ y PHP.
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
324 vistas43 páginas

Algoritmos y Lenguajes de Programación

El documento describe los algoritmos, lenguajes de programación y sus aplicaciones. Explica que un algoritmo es una secuencia lógica de pasos para resolver un problema de manera independiente del lenguaje o computadora utilizados. Los lenguajes de programación permiten dar instrucciones a las computadoras de forma comprensible para los humanos. Finalmente, menciona algunos de los lenguajes de programación más populares y sus usos comunes como Java, Python, C++ y PHP.
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 DOCX, PDF, TXT o lee en línea desde Scribd

ALGORITMOS

DEFINICIÓN DE ALGORITMOS, LENGUAJE Y APLICACIONES

Algoritmos, lenguaje y sus aplicaciones.

1
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una
tarea específica, como la solución de un problema. Los algoritmos son independientes tanto
del lenguaje de programación en que se expresan como de la computadora que los ejecuta.
En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación
y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo.

Por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se
puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos
para la elaboración del plato se realizaran sin importar el cocinero.

Los pasos a seguir en la solución de una ecuación de segundo grado.

Los pasos matemáticos para la solución de un número factorial.

Las instrucciones para la liquidación de una nómina.

Las acciones que se deben seguir para la obtención de una estadística.

Para llegar a la realización de un programa es necesario el diseño previo de un


algoritmo, de modo que sin algoritmo no puede existir un programa.

2
Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de
acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de
programación es un modo práctico para que los seres humanos puedan dar instrucciones a
un equipo.

1
[Link]
algoritmos/1-2-definicion-de-algoritmo-lenguaje-de-programacion-programa-programacion-paradigmas-de-
programacion-editores-de-texto-compiladores-e-interpretes-ejecutables-consola-de-linea-de-comandos

2
[Link]
algoritmos/1-2-definicion-de-algoritmo-lenguaje-de-programacion-programa-programacion-paradigmas-de-
programacion-editores-de-texto-compiladores-e-interpretes-ejecutables-consola-de-linea-de-comandos
Por otro lado, el término "lenguaje natural" define un medio de comunicación
compartido por un grupo de personas (por ejemplo: inglés o francés).

Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada
que ver con los lenguajes de programación; se los conoce como protocolos de comunicación.
Se trata de dos conceptos totalmente diferentes.

El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de


datos tal como llegan al procesador, que consisten en una serie de 0 y 1 (datos binarios).

El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos,


razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el
hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para
que el procesador pueda procesarlo.

El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al


lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este
lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de
procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así,
un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El
término "portabilidad" describe la capacidad de usar un programa de software en diferentes
tipos de equipos. Para poder utilizar un programa de software escrito en un código
ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el
programa!

Por lo tanto, un lenguaje de programación tiene varias ventajas:

 es mucho más fácil de comprender que un lenguaje máquina:

 permite mayor portabilidad, es decir que puede adaptarse fácilmente para


ejecutarse en diferentes tipos de equipos. Sabemos que Facebook, Google y Amazon tienen
algoritmos que nos dan actualizaciones, resultados de búsqueda y recomendaciones de
productos.

Los lenguajes de programación tienen muchos usos. Los hay para aplicaciones muy
específicas. Otros son de propósito general. En el transcurso de los años se han
desarrollado un sinfín de lenguajes y evidentemente algunos han permeado más en los
programadores que otros. Hay muchas razones para ello, por ejemplo, la versatilidad de las
estructuras de datos que manejan, que el quizás están diseñados para las ahora tan
populares aplicaciones móviles, incluso las modas, etcétera. En un país como Estados
Unidos, en donde la necesidad de programadores es mucho mayor que en cualquier otro
país, hay lenguajes de programación más demandados. Estos son los que los empleadores
requieren con mayor frecuencia: 1. SQL No es demasiado sorprendente saber que esta es la
petición más común. Los manejadores de bases de datos son sin duda un punto fundamental
en el desarrollo del cómputo moderno y por ello, hay muchísimas herramientas al respecto,
tanto de código abierto como propietario: MySQL, Microsoft SQL Server, etcétera. Cabe decir
que, además, la necesidad del manejo de bases de datos no es solamente para empresas,
bancos o universidades, inclusive los dispositivos móviles muchas veces acceden a bases de
datos remotas. 2. Java Se cumplen 20 años de Java y es probablemente una de las
herramientas más usadas por los programadores. Es interesante el desarrollo de este
lenguaje porque ha llevado a generar un enorme número de bibliotecas para prácticamente
cualquier necesidad en cómputo. Java se usa por unos 9 millones de programadores y se
usa en unos 7 mil millones de dispositivos en todo el mundo. Android tiene como lenguaje
nativo a Java, además. Empresas como Amazon, Netflix y LinkedIn lo usan cotidianamente.
Nada más por esos números uno debería aprender este lenguaje. 3. JavaScript Javascript es
probablemente el “nuevo BASIC”. Así como en los años ochenta del siglo pasado, cuando
empezaban a surgir las computadoras de 8 bits que corrían casi todas algún tipo de
intérprete de BASIC, hoy Javascript es el equivalente en la tecnología moderna para crear
páginas web, escribir juegos relativamente simples y es sin duda, el lenguaje de scripts más
popular de la web. Los navegadores más populares tienen incluido un intérprete de
Javascript y probablemente una inmensa mayoría de sitios web usen algún elemento de
Javascript en sus páginas. Ahora, además, se ha incorporado [Link], una tecnología de
servidores que permite a Javascript comunicación en tiempo real. 4. C# C-Sharp empezó a
hacer ruido en el año 2000 y es relativamente un lenguaje nuevo, que fue diseñado por
Microsoft para una amplia gama de aplicaciones empresariales que corren en el entorno
.NET. C# es simple, moderno, orientado a objetos y podría considerarse como una evolución
de C y C++. 5. C++ C más más es un lenguaje de propósito general, orientado a objetos
basado en el lenguaje C, creado por Ritchie con ayuda de Ken Thompson, entre otros, en lo
que fuera Laboratorios Bell. C++ fue desarrollado por Bjarne Stroustrup también en Bell Labs
y su primera versión data de 1983. Stroustrup lleva una lista de la cantidad de aplicaciones
escritas en C++, en donde cabe decir que empresas como Adobe y Microsoft lo utilizan
comúnmente. MongoDB es un manejador de bases de datos escrito en este lenguaje y una
buena parte del Mac OS X está escrito en C++. 6. Python Python es un lenguaje de propósito
general que fue bautizado por Monty Python. Es simple, muy fácil de leer y se parece en
muchos sentidos a escribir en inglés. Es un buen lenguaje para principiantes, pero desde
luego, tiene todas las estructuras que un profesional podría requerir. Tal vez esto es que
haya desplazado a Java como el primer lenguaje para aprender a programar en las carreras
donde hay que hacer programación. En Estados Unidos 8 de cada 10 carreras que enseñan
a programar lo hacen en Python. Debido a que es un lenguaje orientado al aprendizaje en
carreras científicas, hay ya una buena cantidad de bibliotecas para física, matemática y
ciencias naturales. PBS, la NASA y Reddit usan Python en sus sitios web. El único pero que
le veo es que se maneja como un intérprete y por ello es mucho más lento que cualquier
lenguaje compilado. 7. PHP Rasmus Lerdorf creó PHP en 1994 y nunca lo concibió como un
nuevo lenguaje de programación. Lo que intentaba hacer era una serie de herramientas para
poder mantener su página personal (Personal Home Page – PHP). Hoy PHP (Hypertext Pre-
Processor) es un lenguaje de scripts que corre en el lado del servidor y que puede ser usado
para crear páginas web escritas en HTML. PHP es popular por las facilidades que otorga a
los nuevos programadores. Un pero que le vería es que es poco estricto en los tipos y eso,
en términos de una disciplina en programación, no es una buena idea. 8. Ruby on Rails Este
lenguaje es muy popular en la programación web y Rails sirve como un entorno para Ruby.
Tiene características interesantes como, por ejemplo, que es un RAD (Rapid Application
Development), lo que permite crear aplicaciones de manera muy rápida. Hay muchas
bibliotecas de terceros ya disponibles y se usa en compañías como Hulu, Twitter y GitHUb,
entre otras. 9. iOS/Swift En el 2014 Apple inventó un nuevo lenguaje de programación, al
cual llamó Swift, enfocado a iOS y OS X. Muchos desarrolladores podrán sentirse
familiarizados con este nuevo lenguaje si vienen de C++ u Objective-C, que fuera el lenguaje
usado por Apple para la mayoría de sus desarrollos. Swift ha sido adoptado rápidamente por
empresas como American Airlines, Duolingo y LinkedIn y se espera que en el futuro cobre
mayor popularidad. Esta no es una lista exhaustiva y quizás más de uno considere que hay
otros lenguajes que bien podrían ser incluidos. Esta es una mera tendencia y desde luego,
mañana podría cambiar. En los lenguajes hay en ocasiones “modas” que ocurren por
variadas o misteriosas razones. Sin embargo, puede darnos una idea hacia dónde se
orientan los mercados para saber qué ofrecer como programadores. Para el índice Tiobe,
que analiza mes con mes la popularidad de los lenguajes de programación, encuentra que
los diez lenguajes más usados (y populares), son 1. Java, 2. C, 3. C++, 4. C#, 5. Python, 6.
PHP, 7. Visual [Link], 8. Javascript, 9. Perl y 10. Ruby. Para los amantes de Pascal, en el
lugar 11 Está Delphi, pero sus porcentajes no llegan al 3% del uso.3

3
[Link]
ACTIVIDADES DE APRENDIZAJE

1.- Realizar un cuadro sinóptico sobre el concepto de algoritmos, considerar cinco


autores. Identificar las similitudes y diferencias entre las definiciones. Mínimo 1 cuartilla.
Especificar bibliografía consultada. Considerar la limpieza y ortografía.
2.- Realizar un cuadro sinóptico en donde se defina el concepto de lenguaje y sus aplicaciones.
Mínimo una cuartilla. Especificar bibliografía consultada. Considerar la limpieza y ortografía.

DEFINICIÓN Y SOLUCIÓN DE PROBLEMAS.


Metodología para la definición y solución de problemas. Las fases de resolución de
un problema con computadora son:

• Análisis del problema. Es un método para resolver cualquier caso del problema de
tal manera que dada una entrada particular, el algoritmo produzca el resultado deseado.4

• Diseño del algoritmo. Diseño del algoritmo que describe la secuencia ordenada de
pasos sin ambigüedades- que conducen a la solución de un problema dado. (Análisis del
problema y desarrollo del algoritmo).5

• Codificación. Es la conversión de un algoritmo en programa, utilizando un lenguaje


de programación.6

• Compilación y ejecución. La compilación es el proceso de traducción de programas


fuente a programas objeto. El programa objeto obtenido de la compilación ha sido traducido
normalmente al código común del lenguaje de máquina.

El proceso de ejecución de un programa escrito en un lenguaje de programación y


mediante un compilador7

• Verificación. Las técnicas de verificación de programas no persiguen aumentar la


fiabilidad del código, sino demostrar que no contiene errores

La verificación...

 Mejora nuestra comprensión del código

 Facilita la comunicación del código

4
[Link]
[Link]#:~:text=%C2%BFQu%C3%A9%20es%20an%C3%A1lisis%20de%20algoritmos%3F,-%C2%B6&text=Es
%20un%20m%C3%A9todo%20para%20resolver,en%20alg%C3%BAn%20lenguaje%20de%20programaci
%C3%B3n.

5
[Link]

6
[Link]
q=que+es+codificacion+de+algoritmos&oq=que+es+codificacion+en+algori&aqs=chrome.1.69i57j0l2.10988j1j4
&sourceid=chrome&ie=UTF-8

7
[Link]
%20compilaci%C3%B3n%20es%20el%20proceso,programas%20fuente%20a%20programas%20objeto.&text=El
%20proceso%20de%20montaje%20conduce,1.
 Puede aumentar la fiabilidad, aunque es difícil hacer

 demostraciones completas

 Con las herramientas adecuadas puede integrarse en

 el código

• Depuración. La depuración de programas es el proceso de identificar y corregir


errores de programación. En inglés se conoce como debugging, porque se asemeja a la
eliminación de bichos (bugs), manera en que se conoce informalmente a los errores de
programación8

• Mantenimiento. Esta fase consiste en hacer las modificaciones y correcciones


necesarias para adecuar un programa a las circunstancias actuales a fin de que siga siendo
útil. Esto incluye adaptaciones y mejorías para hacer más eficiente la forma en la cual un
programa utiliza los recursos de memoria, almacenamiento y mejorar su rapidez

• Documentación. Consiste en escribir documentos detallados que contengan toda la


información generada en las fases anteriores y que podrán ser consultados, posteriormente por
los propios programadores originales o por otros que contengan la necesidad de dar
mantenimiento o modificar los programas. En su forma más elemental, la documentación
consiste en que los programadores escriban comentarios dentro de los mismos programas que
expliquen el cómo, porqué o para que se realizaron ciertas operaciones o se escribieron ciertas
instrucciones. También se deben agregar comentarios sobre fechas de adaptación o
modificación de los procesos, y en fin, toda aquella información que pueda ser de utilidad en el
futuro para hacer mas fácil y rápido el proceso de mantenimiento de un programa.

1.- Realizar un cuadro sinóptico sobre la definición y solución de problemas. Mínimo


una cuartilla. Especificar bibliografía consultada. Considerar la limpieza y ortografía.

8
[Link]
%20de%20programas%20es,a%20los%20errores%20de%20programaci%C3%B3n.
2.- Resolver el siguiente ejercicio: se desea calcular el promedio de un estudiante
quien tiene 5 materias. Emplear la metodología para la definición y solución de problemas.
Señalar los datos de entrada, el proceso y los datos de salida.

Datos de entrada: Identificar cantidad de materias (5)

Identificar calificación de las materias

Proceso: Sumar las calificaciones

Dividir la suma entre el número de materias

Final: Mostrar el resultado

3.- Resolver el siguiente ejercicio: se desea calcular el promedio general de un


grupo que tiene un total de diez estudiantes los cuales tiene 4 materias. Emplear la
metodología para la definición y solución de problemas. Señalar los datos de entrada, el
proceso y los datos de salida. Considerar la limpieza y ortografía.

Datos de entrada: Identificar el número de estudiantes (10)

Identificar el número de materias: (4)

Identificar las calificaciones de las materias de los estudiantes

Proceso: Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 1)

Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 2)

Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 3)

Sumar las notas de los estudiantes


Dividir el resultado entre el número de estudiantes (materia 4)

Final: Sumar el promedio de cada materia

Dividirlo entre el número de materias

Mostrar el promedio general.

4.- Resolver el siguiente ejercicio: se desea calcular el promedio de dos estudiantes


cada uno tiene 10 materias. Emplear la metodología para la definición y solución de
problemas. Señalar los datos de entrada, el proceso y los datos de salida.

Datos de entrada: Identificar el número de materias que tiene el estudiante 1(10)

Identificar el número de materias que tiene el estudiante 2(10)

Proceso: Sumar las calificaciones del primer estudiante

Dividirlas entre el número de materias

Sumar las calificaciones del segundo estudiante

Dividirlas entre el número de materias

Final: Mostrar el promedio del estudiante 1

Mostrar el promedio del estudiante 2

5.- Resolver el siguiente ejercicio: se desea calcular el promedio general de un


grupo que tiene un total de quince estudiantes los cuales tienen 7 materias. Emplear la
metodología para la definición y solución de problemas. Señalar los datos de entrada, el
proceso y los datos de salida. Considerar la limpieza y ortografía.

Datos de entrada: Identificar el número de estudiantes (15)

Identificar el número de materias: (7)

Identificar las calificaciones de las materias de los estudiantes


Proceso: Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 1)

Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 2)

Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 3)

Sumar las notas de los estudiantes

Dividir el resultado entre el número de estudiantes (materia 4)

Promedio de materia 5

Promedio de materia 6

Promedio de materia 7

Final: Sumar el promedio de cada materia

Dividirlo entre el número de materias

Mostrar el promedio general.

ALGORITMOS COTIDIANOS

Usamos algoritmos al llamar por teléfono, cuando nos vestimos para salir, para
servirnos de comer, para bañarlos, ir a la escuela, cepillarnos los dientes, cocinar, hacer
tareas, etc.9

EJEMPLO

 Cuando te bañas.

9
[Link]
1. Entras al baño.

2. Cierras la puerta.

3. Te desvistes.

4. Abres la llave.

5. Te mojas el cuerpo.

6. Te enjabonas el cuerpo.

7. Luego el cabello

8. Te tallas

9. Te enjuagas.

[Link] vuelves a dar una segunda tallada en el cuerpo.

[Link] pones enjuague en el cabello

[Link] enjuagas.

[Link] la llave.

[Link] secas.

[Link] vistes.

[Link]

LENGUAJES DE PROGRAMACIÓN.

Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de


acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de
programación es un modo práctico para que los seres humanos puedan dar instrucciones a
un equipo.

Por otro lado, el término "lenguaje natural" define un medio de comunicación


compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada
que ver con los lenguajes de programación; se los conoce como protocolos de comunicación.
Se trata de dos conceptos totalmente diferentes.

El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de


datos tal como llegan al procesador, que consisten en una serie de 0 y 1 (datos binarios).

El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos,


razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el
hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para
que el procesador pueda procesarlo.

El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al


lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este
lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de
procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así,
un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El
término "portabilidad" describe la capacidad de usar un programa de software en diferentes
tipos de equipos. Para poder utilizar un programa de software escrito en un código
ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el
programa!

Por lo tanto, un lenguaje de programación tiene varias ventajas:

 es mucho más fácil de comprender que un lenguaje máquina:

 permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en
diferentes tipos de equipos. Sabemos que Facebook, Google y Amazon tienen
algoritmos que nos dan actualizaciones, resultados de búsqueda y recomendaciones de
productos.

 Interpretes. Intérprete (informática). En ciencias de la computación, intérprete o


interpretador es un programa informático capaz de analizar y ejecutar otros programas,
escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores
en que mientras estos traducen un programa desde su descripción en un lenguaje de
programación al código de máquina del sistema, los primeros (los intérpretes) sólo
realizan la traducción a medida que sea necesaria, típicamente, instrucción por
instrucción, y normalmente no guardan el resultado de dicha traducción. Usando un
intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas
sumamente diferentes (ej. una PC y un PlayStation 3).10

 Compiladores Un compilador es un programa informático que traduce un programa


escrito en un lenguaje de programación a otro lenguaje de programación. Usualmente el
segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio
(bytecode), o simplemente texto. Este proceso de traducción se conoce como
compilación.11

 La compilación y sus fases. La construcción de un compilador involucra la división del


proceso en una serie de fases que variará con su complejidad. Generalmente estas
fases se agrupan en dos tareas: el análisis del programa fuente y la síntesis del
programa objeto.

 Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las


fases correspondientes al Análisis léxico (que consiste en la descomposición del
programa fuente en componentes léxicos), Análisis sintáctico (agrupación de los
componentes léxicos en frases gramaticales) y Análisis semántico (comprobación de la
validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico).

 Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y


suele estar formado por una o varias combinaciones de fases de Generación de Código
(normalmente se trata de código intermedio o de código objeto) y de Optimización de
Código (en las que se busca obtener un código lo más eficiente posible).

 Alternativamente, las fases descritas para las tareas de análisis y síntesis se pueden
agrupar en Front-end y Back-end:

 Front-end: es la parte que analiza el código fuente, comprueba su validez, genera el


árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser
independiente de la plataforma o sistema para el cual se vaya a compilar, y está
compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de
Código Intermedio.

10
[Link]

11
[Link]
[Link]#:~:text=Un%20compilador%20es%20un%20programa,bytecode)%2C%20o%20simplemente
%20texto.
 Back-end: es la parte que genera el código máquina, específico de una plataforma, a
partir de los resultados de la fase de análisis, realizada por el Front End.

 Esta división permite que el mismo Back End se utilice para generar el código máquina
de varios lenguajes de programación distintos y que el mismo Front End que sirve para
analizar el código fuente de un lenguaje de programación concreto sirva para generar
código máquina en varias plataformas distintas. Suele incluir la generación y
optimización del código dependiente de la máquina.12

2.- Realizar un cuadro sinóptico de la clasificación de los lenguajes de programación.


mínimo 1 cuartilla. Especificar bibliografía consultada. Considerar la limpieza y
ortografía.

12
[Link]
[Link]#:~:text=Un%20compilador%20es%20un%20programa,bytecode)%2C%20o%20simplemente
%20texto.
ANÁLISIS PARA LA SOLUCIÓN DE UN PROBLEMA

13
[Link]
El análisis consiste en una clara definición del problema, donde se contemple
exactamente lo que debe hacer el programa y el resultado o solución deseada.

Dado que se busca una solución por computadora, se precisan especificaciones


detalladas de entradas y salidas.

Para resolver un problema con un ordenador hay que disponer de los datos de entrada,
estudiar el tratamiento que se ha de realizar a dichos datos, la información que se desea
obtener como resultado y de qué manera debe presentarse.

Es decir, después de analizar el problema, se han de conocer claramente tres cosas.

 Datos de Entrada de que se dispone


 Proceso o Tratamiento que ha de realizarse con estos datos.
 Información de salida deseada.

Teniendo en cuenta que un algoritmo es un método para resolver problemas,


una vez analizado el mismo se precisa diseñar un algoritmo que indique claramente los
pasos a seguir para resolverlo.

Para realizar un determinado proceso, se le debe suministrar al ordenador una


fórmula para la resolución de un problema (algoritmo), cuyo diseño debe ser
independiente de la computadora que resuelve el problema.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto


muy importante será el diseño del algoritmo.

En esta etapa se realizará una representación de la secuencia. Estas


representaciones son las herramientas de: diagramas de flujo, pseudocódigos y/o tablas
de decisión.14

Es indispensable realizar el análisis para poder llevar a cabo la solución del


problema y para poder concluirla ya que en esta parte nos dedicamos a profundizar de
manera lógica cada una de las cosas que necesitaremos para obtener el resultado
esperado. Definimos en esta parte por ejemplo las variables.

14
[Link]
%20an%C3%A1lisis%20consiste%20en%20una,detalladas%20de%20entradas%20y%20salidas.
2.- Realizar un ejercicio donde se plantee las alternativas de solución para la
problemática de cambio de llanta de un automóvil, señalando las acciones
correspondientes de cada alternativa. Considerar la limpieza y ortografía.

1. Orillar el carro

2. Prender intermitentes

3. Apagar el carro

4. Abrir la cajuela

5. Sacar la llanta

[Link] los birlos de la llanta que se va a cambiar

7. Levantar el carro con el gato hidráulico

8. Quitar por completo los birlos

9. Quitar la llanta sin aire

9. Poner la nueva llanta

10. Poner los birlos en la nueva llanta

11. Bajar el carro con el gato hidráulico

11. Guardar la llanta sin aire en la cajuela

12. Cerrar la cajuela

13. Subirse al carro

14. Encender el carro

15. Arrancar

TIPOS DE DATOS
En ciencias de la computación, un tipo de dato informático o simplemente tipo,
es un atributo de los datos que indica al ordenador (y/o al programador/programadora)
sobre la clase de datos que se va a manejar. Esto incluye imponer restricciones en los
datos, como qué valores pueden tomar y qué operaciones se pueden realizar.

Los tipos de datos más comunes son: números enteros, números con signo
(negativos), números de coma flotante (decimales), cadenas alfanuméricas (y unicodes),
estados, etc.

La importancia de datos en los algoritmos y programas se debe a que al realizar


cualquiera de los dos, utilizamos datos, en sus distintas modalidades.

Este es un concepto propio de la informática, y más específicamente de los


lenguajes de programación, aunque también se encuentra relacionado con nociones
similares de la matemática y la lógica.

En un sentido amplio, un tipo de datos define un conjunto de valores y las


operaciones sobre esos valores. Casi todos los lenguajes de programación
explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes
pueden usar terminologías diferentes. La mayor parte de los lenguajes de programación
permiten al programador definir tipos de datos adicionales, normalmente combinando
múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato.
Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona",
contemplando que el dato interpretado como "Persona" incluya un nombre y una fecha
de nacimiento.

Un tipo de dato puede ser también visto como una limitación impuesta en la
interpretación de los datos en un sistema de tipificación, describiendo la representación,
la interpretación y la estructura de los valores u objetos almacenados en la memoria del
ordenador. El sistema de tipificación usa información de los tipos de datos para
comprobar la verificación de los programas que acceden o manipulan los datos.15

Considero importantes los tipos de datos en algoritmos y programas ya que


ambos se realizan necesariamente con estos. Son una parte fundamental para la
elaboración de ambos.

15
[Link]
1.- Realizar un cuadro sinóptico de los tipos de datos más comunes. Mínimo
una cuartilla. Especificar bibliografía consultada. Considerar la limpieza y ortografía.
DISEÑO DE UN ALGORITMO

Diseño de algoritmo, diagramas de flujo y pseudocódigo.

En ciencias de la computación, el diseño de algoritmos es un método específico


para poder crear un modelo matemático ajustado a un problema específico para
resolverlo. El diseño de algoritmos o algorítmica es un área central de las ciencias de la
computación, también muy importante para la investigación de operaciones (también
conocida como investigación operativa), en ingeniería del software y en otras disciplinas
afines.16

Un diagrama de flujo es un diagrama que describe un proceso, sistema o


algoritmo informático. Se usan ampliamente en numerosos campos para documentar,
estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en
diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos,
óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con
flechas conectoras que establecen el flujo y la secuencia.17

El pseudocódigo es una forma de expresar los distintos pasos que va a realizar un


programa, de la forma más parecida a un lenguaje de programación. Su principal función es
la de representar por pasos la solución a un problema o algoritmo, de la forma más detallada
posible, utilizando un lenguaje cercano al de programación. El pseudocódigo no puede
ejecutarse en un ordenador ya que entonces dejaría de ser pseudocódigo, como su propio
nombre indica, se trata de un código falso (pseudo = falso), es un código escrito para que lo
entienda el ser humano y no la máquina.

1.- Realizar un algoritmo que permita calcular el área de un rectángulo

16
[Link]

17
[Link]
2.- Realizar un algoritmo que permita calcular el área de un triángulo.
3.- Realizar un algoritmo que permita calcular la edad actual de una persona,
solicitando su año de nacimiento.

4.- Realizar un algoritmo que permita calcular el año de nacimiento de una persona,
solicitando su edad.
5.- Realizar un algoritmo que permita calcular el promedio de un alumno, el cual
tiene 10 materias y cuya calificación se solicita previamente.

TIPOS DE PROGRAMACIÓN

• Tipos de programación.

La Programación Modular.

Es la técnica usada para dividir los diferentes módulos en varios (uno primario y los
secundarios), de esta manera es más fácil encontrar el problema y poder resolverlo.

La Programación Concurrente.

Es aquella usada para realizar carias tareas a la vez, sus resultados son más lentos,
es decir, controla los programas y los usuarios que lo utilizan.

La Programación Lógica.

Este tipo de programación busca soluciones inteligentes y sin errores para su


ejecución de manera eficiente y rápida.
La Programación Funcional.

Este tipo de programación es donde se realizan diferentes tareas una dentro de la


otra.

• Programación Estructurada.

Se refiere al tipo de programación más antigua en el mercado, esta consiste en


ahorrar tiempo en la ejecución de los programas en un computador.

Se puede definir como una técnica para la ejecución de una tarea determinada, es
decir, se dividen las tareas en módulos, obteniendo así una mejor productividad y
rendimiento en la computadora. Se puede clasificar en:

-La Programación Selectiva: Es la utilizada para realizar pruebas de las condiciones


de la computadora y de esta manera verificar los resultados mediantes expresiones lógicas.

-La Programación Funcional: Es aquella que es usada de manera múltiple, es decir,


dentro de ellas se realizan diferentes funciones.

• La estructura de la secuencia La 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 fin del proceso.

• Las estructuras de selección. En programación, la estructura de selección es un


tipo de estructura de control. También llamada estructura de decisión o estructura selectiva.

En una estructura de selección/decisión, el algoritmo al ser ejecutado toma una


decisión, ejecutar o no ciertas instrucciones si se cumplen o no ciertas condiciones. Las
condiciones devuelven un valor, verdadero o falso, determinado así la secuencia a seguir.

Básicamente hay tres tipos de estructuras de selección:

- Estructura de selección simple: if

- Estructura de selección doble: if-else18

• La estructuras de repetición

18
[Link]
La estructura de repetición o bucle hace posible la ejecución repetida de una o más
instrucciones.

Las estructuras de repetición nos permiten ejecutar varias veces unas mismas
líneas de código

Estas estructuras describen procesos que se repiten varias veces en la solución del
problema.

El conjunto de acciones que se repiten conforma el cuerpo del bucle y cada


ejecución del cuerpo del bucle se denomina iteración

Se utiliza para repetir una sentencia o grupo de sentencias un número fijo de veces.
Estructuras de repetición (o de ciclo)

1.- Realizar un cuadro sinóptico de los tipos de programación. Especificar las


características de cada uno de ellos (año de surgimiento, precursores, lenguajes de
programación de ejemplo, características generales). Mínimo 2 cuartillas. Especificar
bibliografía consultada. Considerar la limpieza y ortografía.
19

ESTRUCTURAS SECUENCIALES

La 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 fin del proceso.

En este bloque o estructura las acciones se ejecutan de manera sucesiva, una


después de otra, siguiendo el orden físico en que aparecen las instrucciones. Aquí podemos
encontrar instrucciones tales como inicio, declaración o inicialización de variables,
operaciones de asignación, de cálculo y fin.

Una estructura de programa es secuencial si se ejecutan una tras otra a modo de


secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.

1. Realizar un algoritmo que permita calcular la velocidad que emplea un móvil,


considerando que velocidad=distancia/tiempo.

2. Realizar un algoritmo que permita calcular la distancia que emplea un móvil,


considerando que tiempo=distancia/velocidad.

19
[Link]
[Link] un algoritmo que permita calcular el área de un círculo.

4. Realizar un algoritmo que permita calcular el número de días transcurridos de


una persona desde su año de nacimiento.

5. Realizar un algoritmo que permita calcular el promedio de estaturas, de 10


alumnos cuyos datos se solicitan previamente

ESTRUCTURAS CONDICIONALES

Las estructuras condicionales comparan una variable contra otro(s)valor (es),


para que, en base al resultado de esta comparación, se siga un curso de acción
dentro del programa. Cabe mencionar que la comparación se puede hacer contra
otra variable o contra una constante, según se necesite. Existen tres tipos
básicos, las simples, las dobles y las múltiples.

Simples:

Las estructuras condicionales simples se les conoce como “Tomas de decisión”.


Estas tomas de decisión tienen la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Dobles:

Las estructuras condicionales dobles permiten elegir entre dos opciones o


alternativas posibles en función del cumplimiento o no de una determinada
condición. Se representa de la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Donde:
Si: Indica el comando de comparación
Condición : Indica la condición a evaluar
Entonces : Precede a las acciones a realizar cuando se cumple la condición
Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición
si no :Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más
acciones.

Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión especializadas
que permiten comparar una variable contra distintos posibles resultados,
ejecutando para cada caso una serie de instrucciones específicas. La forma
común es la siguiente:
Pseudocódigo: Diagrama de flujo:

Múltiples (En caso de):

Las estructuras de comparación múltiples, es una toma de decisión


especializada que permiten evaluar una variable con distintos posibles
resultados, ejecutando para cada caso una serie de instrucciones específicas. La
forma es la siguiente:

Pseudocódigo: Diagrama de flujo:

1. Diseñar un algoritmo que solicite la edad de una persona, en base a este dato
imprimir si la persona es "mayor de edad"; considerando que la mayoría de edad es a partir de
los 18 años. Entrega impresa. Considerar ortografía y limpieza.
2. Diseñar un algoritmo que solicite un número, en base a este dato imprimir si el
número "es positivo". Entrega impresa. Considerar ortografía limpieza.

3. Algoritmo para identificar el mayor de dos números.

4. Algoritmo para calcular el total a pagar a los empleados por día, considerando que la
jornada normal comprende 8 horas con un costo de 100 por hora, si se laboran horas extras el
costo por hora es de 150.

5. Algoritmo para decidir si un alumno está aprobado considerando que cursa cinco
asignaturas y el promedio de aprobación es de 7.0
CONTADORES

La construcción de un contador es una de las técnicas más comunes en la


realización de diagramas de flujo.

Es una variable en la memoria que se incrementará en una unidad cada vez que se
ejecute el proceso.

El contador se utiliza para llevar la cuenta de determinadas acciones que se pueden


solicitar durante la resolución de un problema.

En las instrucciones de preparación se realiza la inicialización del contador o


contadores. La inicialización consiste en poner el valor inicial de la variable que representa al
contador. Generalmente se inicializa con el valor 0. Necesario haber inicializado en un
momento previo a esta variable, ya que va a ser leído su contenido.

Un contador es una variable cuyo valor se incrementa o decrementa en una


cantidad constante, cada vez que se produce un determinado suceso, acción o iteración. Los
contadores se utilizan con la finalidad de contar sucesos, acciones o iteraciones internas en
un bucle, proceso, subrutina o donde se requiera cuantificar; deben ser inicializados antes
del ciclo o proceso, e incrementados o decrementados dentro del ciclo.

La inicialización consiste en asignarle al contador un valor inicial, es decir el número


desde el cual necesitamos se inicie el conteo. El contador contara (valga la redundancia) las
iteraciones dentro del algoritmo o contara el número de registro que desees. Ejemplo

c <-- 0;

REPITA

Escribir (' hola amigos')

c <-- c + 1

Hasta que c=100

Este ejemplo escribirá 100 veces "hola amigos" por pantalla.


1. Diseñar un algoritmo que solicite cinco números. Posteriormente debe imprimir
cuántos números de los introducidos fueron positivos y cuántos números fueron negativos.

2. Diseñar un algoritmo que solicite diez números. Posteriormente debe imprimir


cuantos números ubicados en el rango de 1-10 fueron introducidos, cuantos números del 11-
100 fueron introducidos y cuántos números mayores a 100 fueron introducidos

3. Diseñar un algoritmo que solicite 10 números. Posteriormente debe imprimir


cuántos números de los introducidos fueron pares y cuántos números fueron impares.

ACUMULADORES

Un acumulador es una variable en la memoria cuya misión es almacenar cantidades


variables.

Se utiliza para efectuar sumas sucesivas. La principal diferencia con el contador es


que el incremento o decremento de cada suma es variable en lugar de constante como en el
caso del contador.

Las variables acumuladoras tienen la misión de almacenar resultados sucesivos, es


decir, de acumular resultados, de ahí su nombre.

Las variables acumuladoras deben ser inicializadas. Si llamamos “acum” a un


acumulador, escribiremos antes de iniciar el bucle algo como esto: acum = 0
Por supuesto, el valor inicial puede cambiar, dependiendo de la naturaleza del
problema. Más tarde, en el cuerpo del bucle, la forma en la que nos la solemos encontrar es:
acum = acum + N

…siendo N otra variable. Si esta instrucción va seguida de otras: acum = acum + M


acum = acum + P

… estaremos acumulando en la variable “acum” los valores de las variables M, N, P,


etc, lo cual resulta a veces muy útil para resolver ciertos problemas repetitivos.

Ejemplo: Escribir un algoritmo que pida 10 números por el teclado y los sume,
escribiendo el resultado algoritmo sumar10variables cont es entero suma es entero N es
entero inicio suma = 0 para cont desde 1 hasta 10 hacer inicio leer (N) suma = suma + N fin
escribir (suma) fin

En este algoritmo, cont es una variable contador típica de bucle. Se ha usado un


bucle “para”, que es lo más sencillo cuando conocemos previamente el número de
repeticiones (10 en este caso). La variable N suma es el acumulador, donde se van sumando
los diferentes valores que toma N en cada repetición. se usa para cada uno de los números
introducidos por el teclado, y la variable.20

CICLOS

El ciclo es una de las estructuras básicas más importantes de programación, pues


está presente en disímiles problemas. En la programación estructurada existen tres tipos de
ciclos básicos: determinado, indeterminado evitable e indeterminado inevitable; en cambio la
programación visual trae consigo un cambio revolucionario en esta estructura, pues el que
controla cuando se termina el ciclo es el propio usuario, activando un evento que signifique la
ruptura del ciclo.

Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces


por una instrucción/un trozo de código, hasta que la condición asignada a dicho bucle deja
de cumplirse. Los tres bucles más utilizados en programación son el bucle while, el bucle for
y el bucle do-while.

Las estructuras de control iterativas o de repetición, inician o repiten un bloque de


instrucciones si se cumple una condición o mientras se cumple una condición.

20
[Link]
Do-While

Bucle do

Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.

Do While (Condición)

(Bloque de sentencias)

Loop que también puede expresarse:

While (Condición)

(Bloque de sentencias)

wend

Do se se ejecuta el bloque de sentencias, hasta que la condición sea verdadera

Do

(Bloque de sentencias)

Loop Until (Condición)

For-Next

Bucle for

La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de


sentencias cierto número de veces.

Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.

La variable del bucle recorrerá los valores desde el número dado por la expresión 1
hasta el número dado por la expresión 2.

El bloque de sentencias se ejecutará en cada uno de los valores que tome la


variable del bucle.

For (Variable) = (Expresión1) To (Expresión2) STEP (Salto)


(Bloque de sentencias)

ESTRUCTURA PARA (FOR)


Esta estructura permite ejecutar una serie de instrucciones un número determinado de veces.

Forma Lógica

Estructura para (for)

1. Iniciativa de una variable declarada que permite controlar el ciclo (inicialización).


2. Se evalúa la condición y si es verdadera va al #3, si la condición es falsa va al #5.
3. Ejecuta las instrucciones que hay dentro del ciclo.
4. Incrementa la variable que controla el ciclo y retorna al #2.
5. Termina el Ciclo for y continua la secuencia del programa.

ESTRUCTURA MIENTRAS QUE (WHILE)


Algunas veces cuando se está diseñando un algoritmo computacional es necesario
repetir de forma controlada un conjunto de instrucciones. Las estructuras repetitivas también
llamadas ciclos permiten repetir una secuencia de instrucciones un número determinado de
veces, al hecho de repetir la ejecución de una secuencia de acciones se le llama iteración.

En programación existen tres tipos de estructuras repetitivas, el ciclo mientras, el


ciclo hacer – mientras y la estructura para

Forma Lógica
Estructura mientras que (while)

1. Se evalúa la condicional que existe dentro del ciclo while, en caso de que la condición
sea verdadera va al #2; en caso de que la Condicional sea falsa va al #3.
2. Ejecuta las instrucciones de la Parte Verdadera y vuelve al #1.
3. Termina el ciclo while y continua la secuencia del programa.

• Realizar un cuadro sinóptico donde se describa los ciclos más importantes, así
como las características de cada uno, señalar ventajas y desventajas. La entrega de la
actividad es impresa. Especificar bibliografía consultada
21

21
[Link]

También podría gustarte