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

CONCEPTO DE ALGORITMO, EL

SOFTWARE, LENGUAJES DE
PROGRAMACIÓN

a) CONCEPTOS DE ALGORITMO
• Un algoritmo es un conjunto finito de instrucciones opasos con
una secuencia lógica que sirven para ejecutar una tarea o
resolver un problema.
• De un modo más formal, un algoritmo es una secuencia lógica
finita de operaciones realizables, no ambiguas,cuya ejecución
da una solución de un problema en un tiempo finito.

- COMPONENTES DE UN ALGORITMO
Entrada : Datos del problema a resolver
Salida : El resultado de la resolución.
Procesos: Paso a seguir en la resolución.

- CARACTERÍSTICAS DE UN ALGORITMO

PRECISIÓN ➔ Solución clara sin ambigüedad.


REPETITIVIDAD ➔ Idénticos resultados en las mismas
condiciones iniciales.
FINITUD ➔ Solución en un tiempo finito.
EFICIENCIA ➔ Tiempo de ejecución.
➔ Requerimiento de memoria.

CONCEPTO DE PROGRAMA

• Un programa es una secuencia de instrucciones de laCPU.


• Cada instrucción es un conjunto de bytes.
• Conjunto de instrucciones dado al ordenador para
realizar un proceso determinado.
b) CONCEPTO DE SOFTWARE
• Es la parte lógica de la computación.
• Conjunto de programas que sirven para representar un
segmento de la realidad y resolver un problema. Como por
ejemplo: el Office, un sistema operativo, C++, Pascal, Java, etc.
c) LENGUAJES DE PROGRAMACIÓN
Son aquellos lenguajes que se utilizan para realizar
algoritmos interpretables por la computadora.
Características imprescindibles ➔ Estructura de Control.
Programación Modular
(funciones).

Los principales tipos de lenguajes utilizados antes y


en laactualidad son tres:
• Lenguaje máquina.
• Lenguaje de bajo nivel (ensamblador).
• Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal,
Prolog.
FASE Nº 01: ANÁLISIS DEL PROBLEMA

FASE Nº 02: DISEÑO DEL ALGORITMO


FASE Nº 03: SOLUCIÓN DEL PROBLEMA POR COMPUTADORA
Traducción del algoritmo al lenguaje de programación. La
complejidad depende mucho del lenguaje escogido.

Imprescindible: Conocimiento de la sintaxis del lenguaje.

Buenos
diseños
del
Algoritmo
+ ➔ Traducción casi automática
Lenguaje estructurado

FASE Nº 04: VERIFICACIÓN Y DEPURACIÓN

FASE Nº 05: DOCUMENTACIÓN


Descripción de qué hace el programa y cómo lo hace.

Documentación interna:
Comentarios: líneas informativas incluidas en el código.

▪ Tarea que realiza.


▪ Datos de entrada y salida.
▪ Condiciones de error.
Codificación auto documentada.

▪ Nombres de variables y funciones con significado.


▪ Estructura fácil de leer.

Documentación externa:
Manuales, estructura y especificaciones del programa, historia de
las modificaciones, etc.

FASE Nº 06: MANTENIMIENTO

1.2 HERRAMIENTAS DE PROGRAMACIÓN


Son aquellas que permiten realizar aplicativos, programas, rutinas,
utilitarios y sistemas para que la parte física del computador u
ordenador, funcione y pueda producir resultados.
Un ejemplo claro son los Lenguajes de Programación, las librerías,
los utilitarios, los generadores de reportes, pantallas, etc.

Las herramientas más usadas para desarrollar algoritmos son:

• Lenguaje natural.
• Organigramas.
• Diagramas Nassi – Shneiderman (N - S).
• Pseudocódigo.
• Otros
LENGUAJE NATURAL:
Es un lenguaje utilizado para describir los pasos de cómo
realizamos algo, de una forma sencilla.

• Ventajas: Facilidad de comprensión.


• Inconvenientes:
o El lenguaje natural no es universal, un algoritmo de lenguaje
natural en inglés, por ejemplo, sería completamente inútil para
los hispanohablantes.
o El lenguaje natural es ambiguo y, por tanto, susceptible de
errores.
o El lenguaje natural es demasiado amplio, lo que para una
persona puede ser una instrucción sencilla puede no serlo para
otra y desde luego no lo será para una computadora.

ORGANIGRAMAS:
• Los organigramas o diagramas de flujo permiten describir los
algoritmos de forma gráfica.
ALGORITMO Y ESTRUCTURA DE DATOS I

• Utilizan una serie de bloques que indican distintas circunstancias y


flechas que muestran bajo qué condiciones sepasa de un bloque a
otro.

1.3 TIPOS DE DATOS


▪ Un dato es la expresión general que describe los objetos conlos
cuales opera la computadora.
▪ Todos los datos tienen un tipo asociado con ellos.
▪ Un dato puede ser un simple carácter, tal como “b”, un valor
entero tal como “35”.
▪ El tipo de dato determina la naturaleza del conjunto de valoresque
puede tomar una variable.

DATOS VS INFORMACIÓN

DATOS VS INFORMACIÓN
- Medidas objetivas de atributos - Resultado de haber organizado
de entidades. o analizado los datos de alguna
- Cifras/hechos crudos (en manera lógica.
bruto) sin interpretar o analizar. - Reduce la incertidumbre.
- No son estímulos de acción. - Impulsa a la acción.
TIPOS DE DATOS SIMPLES

DATOS NUMÉRICOS DATOS LÓGICOS

Permiten representar
valores escalares de forma Son aquellos que sólo
numérica, esto incluye a los pueden tener dos valores
números enteros y los reales. (cierto o falso) ya que
representan el resultado de
una comparación entreotros
datos (numéricos o
Este tipo de datos
alfanuméricos).
permiten realizar
operaciones aritméticas

DATOS ALFANUMÉRICOS

Es una secuencia de caracteres alfanuméricos que permiten


representar valores identificables de forma descriptiva, esto incluye
nombres de personas, direcciones, etc.

Es posible representar números como alfanuméricos, pero estos


pierden su propiedad matemática, es decir no es posible hacer
operaciones con ellos.

Este tipo de datos se representan encerrados entre comillas.

- CONSTANTES
Constantes: Valores que durante la ejecución de un
programano cambian su valor.

- VARIABLES
Definición 1: Valores que cambiarán durante la ejecución
delprograma.

Definición 2: Es un espacio en la memoria de la computadora que


permite almacenar temporalmente un dato durante la ejecución de un
proceso, su contenido puede cambiar durante la ejecución del
programa.

• CONTADORES
Se utilizan para llevar el control del número de ocasiones en que se
realiza una operación o se cumple una condición. Con los incrementos
generalmente de uno enuno.
• ACUMULADORES
Forma que toma una variable y que sirve para llevar
lasuma acumulativa de una serie de valores que se
van leyendo o calculando progresivamente.

IDENTIFICADORES
Para poder reconocer una variable o una constante en la memoriade
la computadora, es necesario darle un nombre con el cual
podamos identificarla dentro de un algoritmo, esto se llama un
identificador.

EXPRESIONES
Se definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones
especiales.
Las expresiones se clasifican en:

o Aritméticas
o Lógicas
o Carácter

Nodos: Se le llama Nodo a cada elemento que contiene un Árbol.

Un puntero es una variable que contiene una dirección de memoria. Esta dirección es la posición
de otra variable.

Una lista es una estructura de datos en la cual los elementos almacenados en la misma pueden ser
agregados, borrados y accedidos sin restricciones, en cualquier punto de la estructura.

Una cola es una estructura de datos en la cual los elementos almacenados en la misma se agregan
al final y se sacan del principio de la cola.

Una pila es una estructura de datos en la cual los elementos almacenados en la misma se agregan
y se sacan del mismo lugar, llamado el tope de la pila.

PHP Es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser
incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas
con PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que
quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar
código PHP con código HTML, siguiendo unas reglas.
PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella
cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas
cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los
cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.

Compatibilidad con las principales bases de datos

Es importante que los sitios web también tengan un buen nivel de compatibilidad con las bases de
datos, ya que son una parte fundamental de la estructura.

Entre las principales bases de datos utilizadas, PHP es compatible con:

• Oracle;

• MySQL;

• Interbase;

• SQLite;

• Sybase.

Ventajas del PHP

• Lenguaje libre, el cual puede ser editado fácilmente por cualquier desarrollador o

programador.

• Dispone de una sintaxis muy limpia, por lo que la curva de aprendizaje es menor

• que otros lenguajes de programación.

• Permite crear entornos de trabajo fácilmente.

Desventajas

• Se necesitan conocimientos profundos para configurar las brechas de seguridad que

puede haber en el servidor.

• El código fuente no se puede ocultar con facilidad.

• Para su ejecución, es necesario un servidor.

A finales de 1995 Java se introdujo como lenguaje de programación para computadores. La


clave fue la incorporación de un intérprete Java a la versión 2.0 del programa Netscape
Navigator, produciendo una verdadera revolución en internet. Java 1.1 apareció a principios de
1997, mejorando sustancialmente la primera versión del lenguaje. Java 1.2, más tarde
rebautizado como Java 2, nació a finales de 1998

El lenguaje Java se creó con cinco objetivos principales:

1. Debería usar el paradigma de la programación orientada a objetos.


2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como
C++.

Sintaxis

La sintaxis de Java deriva en gran medida de C++. Lo que lo diferencia de este es que combina
la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido
desde el principio para ser completamente orientado a objetos.

Entorno de desarrollo de Java

Existen distintos programas comerciales que permiten desarrollar código Java. La compañía
creadora de Java distribuye gratuitamente el Java Development Kit (JDK). Es un conjunto de
programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java.

Compilador de Java

Es una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del
código escrito en los ficheros fuente de Java (extensión *.java).

Beneficios de trabajar con C++

• C ++ es un lenguaje altamente portátil y, a menudo, es la tecnología elegida para el desarrollo


de aplicaciones multiplataforma.
• C ++ es un lenguaje de programación orientado a objetos e incluye clases, herencia,
polimorfismo, abstracción de datos y encapsulación.
• C ++ tiene una rica biblioteca de funciones.
• C ++ permite el manejo de excepciones y la sobrecarga de funciones que no son posibles en
C.
• C ++ es un lenguaje potente, eficiente y rápido. Encuentra una amplia gama de aplicaciones,
desde aplicaciones de GUI hasta gráficos en 3D para juegos y simulaciones matemáticas en
tiempo real.
• Python
es un lenguaje de programación casi básico por su sencillez y facilidad para un óptimo
aprendizaje pues es un lenguaje aparte de lo mencionado un lenguaje de programación
muy vendido sobre todo en el campo laboral, Python es un lenguaje de propósito
general muy poderoso y flexible. En este proyecto se busca enseñar o mejor dicho
introducir en lo más básico del lenguaje Python en sus conceptos, características, etc.

Python – Orígenes
Python fue concebido a finales de los años 80 como un lenguaje para ser
interpretado orientado a la enseñanza. Con el paso del tiempo, Python se ha
convertido en una herramienta esencial para todo tipo de programadores,
ingenieros e investigadores, tanto en el ámbito académico como industrial.

Cómo utilizar Python


Python es un lenguaje de programación interpretado cuya principal filosofía es que sea
legible por cualquier persona con conocimientos básicos de programación. Además, posee
una serie de características que lo hacen muy particular y que, sin duda, le aportan muchas
ventajas y están en la raíz de su uso tan extendido:
Es totalmente gratuito. Se trata de un lenguaje open source o de código abierto, por lo que
no hay que pagar ninguna licencia para utilizarlo.

Desventajas de Python
Como vemos, los beneficios son muchos, pero ¿y los inconvenientes? El principal
obstáculo que le encontramos a Python es que se trata de un lenguaje interpretado, es
decir, que no se compila, sino que se interpreta en tiempo de ejecución. Como
consecuencia, es más lento que Java o C/C++.

¿Cómo funciona Python?


El lenguaje de programación Python utiliza módulos de código que son intercambiables
en lugar de una larga lista de instrucciones que era estándar para los lenguajes de
programación funcional.
La implementación estándar de Python se llama «cpython«. En definitiva, no convierte su
código en lenguaje de máquina o código máquina, algo que el hardware puede entender.
¿Qué es JavaScript?
JavaScript es un lenguaje de programación de scripts (secuencia de comandos)
orientado a objetos. Esta descripción es un poco rudimentaria, hay varios elementos que
vamos a diseccionar.

Scripts de programación
JavaScript te permite programar scripts. Como se mencionó anteriormente,
un lenguaje de programación es utilizado para escribir código fuente a ser analizada
por un ordenador. Hay tres formas de usar el código fuente:

- Lenguaje compilado como: El código fuente se da a un programa llamado


compilador que lee el código fuente y lo convierte en un lenguaje que el
equipo será capaz de interpretar: el lenguaje binario, es de 0 y 1. Lenguajes
como C o C ++ son lenguajes compilados muy conocidos.
- Lenguaje precompilado: aquí, el código fuente se compila en parte, por lo
general en un código más fácil de leer para el ordenador, pero que todavía
no es binario. Este código intermedio es para ser leído por lo que se llama
una “Máquina Virtual", que ejecutará el código. Lenguajes como C # o Java
se llaman precompilados.

- Lenguaje interpretado : en este caso, no hay compilación. El código fuente


se mantiene sin cambios, y si desea ejecutar este código, debemos
proporcionar un intérprete que va a leer y realizar las acciones solicitadas.
JavaScript, el lenguaje de scripts
JavaScript actualmente es principalmente utilizado en internet, junto con
las páginas web (HTML o XHTML). JavaScript está directamente incluido en la
página web (o en un archivo externo) y mejora una página HTML, añadiendo
interacción del usuario, animación, ayudas a la navegación, tales como:
- Mostrar / ocultar el texto;
- Deslizamiento de imágenes;
- Crear presentaciones de diapositivas;
- Crear burbujas de información.
¿Qué es Kotlin?
Kotlin es un lenguaje de programación de tipado estático, moderno pero muy robusto,
conciso y seguro, el cual aparte de todo esto es interoperable con Java y otros lenguajes
aparte de ofrecer muchas opciones para reutilizar código entre diferentes plataformas.
Características Principales de Kotlin
• Expresivo y conciso: Kotlin es un lenguaje moderno con características que
permiten enfocarse en escribir un código más diciente y reducido, exprimiendo al máximo
su rendimiento.
• Permite crear código mas seguro: Mediante las características de @Nullable y
@NonNull Kotlin permite incluir los tipos de sistemas los cuales nos ayudan a evitar
errores y hacer que nuestras aplicaciones sean mas seguras y evitando los errores hasta
un 20%.
Tipos de Datos Abstractos (TDA)
Un tipo de dato abstracto (TDA) es un conjunto de datos u objetos creado de
manera personalizada por un programador para un fin específico. Un TDA es una
abstracción que permite modelar las características de un elemento en particular.
tipo de dato
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.
Tipos de Descripción Memoria
Datos

2 bytes o una palabra (varía según


int Cantidad entera
compilador).

char Carácter 1 byte.

Almacena valores reales en punto


float 1 palabra (4 bytes).
flotante.

Almacena valores reales en doble


double 2 palabras (8 bytes).
precisión.

Una lista es una estructura dinámica de datos que contiene una colección de elementos
homogéneos (del mismo tipo) de manera que se establece entre ellos un orden. Es decir,
cada elemento, menos el primero, tiene un predecesor, y cada elemento, menos el último,
tiene un sucesor.
Una pila (stack en inglés) es una lista ordenada o estructura de datos que permite
almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo LIFO (del
inglés Last In, First Out, «último en entrar, primero en salir»).
Una cola es una estructura de datos que almacena elementos en una lista y permite
acceder a los datos por uno de los dos extremos de la lista. Un elemento se inserta en
la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de
la lista.
Un grafo es un conjunto de puntos y un conjunto de líneas, cada una de las cuales une un
punto con otro. Los puntos se llaman nodos o vértices de un grafo y las líneas se llaman
aristas o arcos. Se representan el conjunto de vértices de un grafo dado G, por Vg, y el
conjunto de arcos, por Ag.
Un árbol es una estructura (posiblemente no lineal) de datos compuesta de nodos,
vértices y aristas que es acíclica. Un árbol que no tiene ningún nodo se llama árbol vacío
o nulo. Un árbol que no está vacío consta de un nodo raíz y potencialmente muchos
niveles de nodos adicionales que forman una jerarquía.
En informática, un conjunto es una colección (contenedor) de ciertos valores, sin ningún
orden concreto ni valores repetidos. Su correspondencia en las matemáticas sería el conjunto
finito. Sin tener en cuenta la secuencia, ni el hecho de que no haya valores repetidos, se
asemeja a una lista. Un conjunto puede verse como una cadena asociativa (array) (mapeado
parcial) donde no se atiende al valor de cada par clave-valor.
El algoritmo HeapSort, consiste en remover el mayor elemento que es siempre la raíz del
Heap, una vez seleccionado el máximo, lo intercambiamos con el último elemento del
vector, decrementamos la cantidad de elementos del Heap y nos encargamos de
reacomodarlo para que vuelva a ser un Heap.

Las listas ordenadas son casi idénticas a las listas no ordenadas, salvo que en este caso los
elementos relacionados se muestran siguiendo un orden determinado. Cuando se crea por
ejemplo una lista con las instrucciones de un producto, es importante el orden en el que se
realiza cada paso. Cuando se muestra un índice o tabla de contenidos en un libro, es
importante el orden de cada elemento del índice.
Tablas de hash y algoritmos de dispersión
Una tabla hash, matriz asociativa, hashing, mapa hash, tabla de dispersión o tabla
fragmentada es una estructura de datos que asocia llaves o claves con valores. La operación
principal que soporta de manera eficiente es la búsqueda: permite el acceso a los elementos
(teléfono y dirección, por ejemplo) almacenados a partir de una clave generada (usando el
nombre o número de cuenta, por ejemplo). Funciona transformando la clave con una función
hash en un hash, un número que identifica la posición (casilla o cubeta) donde la tabla hash
localiza el valor deseado.

Dispersión abierta

La dispersión abierta, también llamada encadenamiento separado, consiste en tener una


lista de los elementos que se dispersan en el mismo valor de la tabla. Suponiendo una tabla
de tamaño 10 de números enteros y con la función de dispersión: dispersión(x) = x MOD
10,

Dispersión cerrada

La dispersión cerrada o direccionamiento abierto, soluciona las colisiones buscando


celdas alternativas hasta encontrar una vacía (dentro de la misma tabla)

También podría gustarte