Está en la página 1de 29

Fundamentos de Programación

Cuestionario N°1

Responda de forma clara y ordenada en un editor de texto cada una de las


siguientes preguntas:

1. ¿Qué es un algoritmo?

En el contexto matemático, los algoritmos son una serie de normas o leyes


específicas que hace posible la ejecución de actividades, cumpliendo una
serie de pasos continuos que no le originen dudas a la persona que realice
dicha actividad. Los algoritmos se pueden expresar de diversas formas:
lenguaje natural, lenguaje de programación, pseudocódigo y diagramas de
flujo.

2. ¿Cuáles son los pasos que se recomiendan para plantear un algoritmo?

Según el sistema de signos: cualitativos y cuantitativos. Los algoritmos


cualitativos son aquellos que se realizan por medio de las palabras, lo que
quiere decir que las órdenes vienen dadas en forma verbal. Por ejemplo
una receta de cocina. Por su parte los algoritmos cuantitativos son aquellos
que se realizan por medio de cálculos matemáticos. Por ejemplo, si se
desea saber cuál es la raíz cuadrada de un número, se pueden aplicar
algoritmos.
Según su función: de ordenamiento, de búsqueda y de encaminamiento.
Los algoritmos de ordenamiento son aquellos que llevan en orden los
elementos que ingresan, dependiendo del orden numérico o léxico. Los
algoritmos de búsqueda tratan de encontrar dentro de la lista que ingresa,
algún elemento en especial que cumpla con las órdenes dadas. Y por
último, los algoritmos de encaminamiento, éstos deciden la manera de
cómo se tendrá que transmitir la información que llega y cómo deben seguir
los pasos establecidos.
De igual manera se encuentran los algoritmos computacionales, estos se
realizan mediante la utilización de un computador. Y los no
computacionales que son aquellos que no requieren de un ordenador. Por
ejemplo cuando se instala un equipo de video.
Es importante resaltar la importancia de los algoritmos ya que representa
un elemento básico para las matemáticas, la informática, la robótica, ya que
a través de ellos se logra un ordenamiento de ideas. Ellos conducen a la
correcta ejecución de actividades y a un orden de ideas, relacionadas con
cualquier aspecto.

3. Escriba tres técnicas para la representación de algoritmos.

 Traza de un algoritmo
Llamada también “corrida” o simplemente probar un algoritmo en papel,
significa razonar cómo lo haría un computador, ejecutando cado uno de los
pasos o instrucciones, asignándole valores a las variables, registrar el
comportamiento de los valores y comprobar que efectivamente cumple el
tratamiento o proceso al cual se someten los datos según el objetivo del
algoritmo.

 Pseudocódigo
Significa escribir las instrucciones del algoritmo en lenguaje natural, tal y
como lo expresamos de manera cotidiana, este procedimiento facilita su
escritura en los lenguajes de programación. Según Joyanes (2003): “El
pseudocódigo es un lenguaje de especificación (descripción) de
algoritmos”.

Ampliación.
Ejemplo: Algoritmo diseñado para el cálculo de la hipotenusa de un
triángulo, utilizando pseudocódigo.
La escritura del algoritmo consta de:
-Identificación o cabecera
-Declaración de variables
-Cuerpo o sección de acciones
Inicio
Declaración de variables
Lectura de los datos A, B y C
Aplicar formula
Imprimir resultado

 Diagramas de flujo o flujogramas


Son representaciones gráficas de los pasos necesarios que conllevan a la
solución algorítmica de un problema. Para diseñarlos se utilizan
determinados símbolos o figuras que representan una acción dentro del
procedimiento.
Estos símbolos se han normalizado o estandarizado para representar los
pasos del algoritmo. Cada paso se representa a través del símbolo
adecuado, que se van uniendo con flechas, denominadas líneas de flujo,
que a su vez indican el orden en que los pasos deben ser ejecutados.
4. ¿Qué es una prueba de escritorio?

Las pruebas de escritorio son simulaciones del comportamiento de un


algoritmo que permiten determinar la validez del mismo. Consisten en
generar una tabla con tantas columnas como variables tenga el algoritmo y
seguir las instrucciones poniendo los valores correspondientes.

5. ¿Qué es un diagrama de flujo?

Un diagrama de flujo es la representación gráfica del flujo o secuencia de


rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en
cuestión, las unidades involucradas y los responsables de su ejecución, es
decir, viene a ser la representación simbólica o pictórica de un
procedimiento administrativo.
Luego, un diagrama de flujo es una representación gráfica que desglosa un
proceso en cualquier tipo de actividad a desarrollarse tanto en empresas
industriales o de servicios y en sus departamentos, secciones u áreas de su
estructura organizativa.
Son de gran importancia ya que ayudan a designar cualquier
representación gráfica de un procedimiento o parte de este. En la actualidad
los diagramas de flujo son considerados en la mayoría de las empresas
como uno de los principales instrumentos en la realización de cualquier
método o sistema.

6. ¿Cuáles son las reglas para la elaboración de diagramas de flujo?

 Los diagramas de flujo deben escribirse de arriba hacia abajo o de


derecha a izquierda.
 Los símbolos se unen con líneas las cuales tienen en la punta flecha
que identifica la dirección que fluye la información, los procesos
deben reutilizar solamente líneas de flujo horizontal y vertical nunca
en diagonal.
 Se debe evitar el cruce de líneas solo se pueden utilizar conectores
para esto. Se debe tomar en cuenta que solo cuando sea
estrictamente necesario se utilicen conectores.
 No deben quedar líneas sin conectarse.
 Todo texto escrito dentro de un símbolo debe ser legible, preciso,
evitando el uso de muchas palabras.
 Todos los símbolos no pueden de tener más de una línea de salida a
excepción del símbolo final.
 Solo los símbolos de decisión pueden y deben tener más de una
línea de flujo de salida.
7. ¿Cuáles son las estructuras lógicas necesarias para construir un algoritmo, y en
que consiste cada estructura?

 Estructura secuencial: Es aquella en la que una acción (instrucción)


sigue a la otra en el orden en el que están escritas. Su
representación y el diagrama de flujo se muestra en la Figura 5.3.
Los Algoritmos 5.1 y 5.2 son ejemplos de algoritmos secuenciales.

 Estructura condicional simple: IF Este es el tipo más sencillo de


estructura condicional. Sirve para implementar acciones
condicionales del tipo siguiente: Si se verifica una determinada
condición, ejecutar una serie de instrucciones y luego seguir
adelante. Si la condición NO se cumple, NO se ejecutan dichas
instrucciones y se sigue adelante.

 Estructura condicional doble: IF - ELSE Este tipo de estructura


permite implementar condicionales en los que hay dos acciones
alternativas: Si se verifica una determinada condición, ejecutar una
serie de instrucciones (bloque 1). Si no, esto es, si la condición NO
se verifica, ejecutar otra serie de instrucciones (bloque 2). En otras
palabras, en este tipo de estructuras hay una alternativa: se hace
una cosa o se hace la otra. En ambos casos, se sigue por la
instrucción siguiente a la estructura IF - ELSE.
 Estructura condicional múltiple: IF - ELSEIF - ELSE En su forma más
general, la estructura IF - ELSEIF - ELSE permite implementar
condicionales más complicados, en los que se “encadenan”
condiciones en la forma siguiente:
Si se verifica la condición 1, ejecutar las instrucciones del bloque 1.
Si no se verifica la condición 1, pero S´I se verifica la condición 2,
ejecutar las instrucciones del bloque 2. Si no, esto es, si no se ha
verificado ninguna de las condiciones anteriores, ejecutar las
instrucciones del bloque 3. En cualquiera de los casos, el flujo del
programa continua por la instrucción siguiente a la estructura IF -
ELSEIF - ELSE. La sintaxis en lenguaje MATLAB y el diagrama de
flujo, se muestran en la Figura 5.7.

 Estructura de repetición indexada: FOR Este tipo de estructura


permite implementar la repetición de un cierto conjunto de
instrucciones un número pre-determinado de veces. Para ello se
utiliza una variable de control del bucle, llamada también ´índice, que
va recorriendo un conjunto pre-fijado de valores en un orden
determinado. Para cada valor del ´índice en dicho conjunto, se
ejecuta una vez el mismo conjunto de instrucciones. En la Figura 5.8
se han representado la forma de escribir esta estructura en MATLAB
y el organigrama correspondiente: el bloque de instrucciones se
ejecuta una vez para cada valor del índice, que va tomando
sucesivamente el valor de cada componente del vector V, de longitud
N.

 Estructura repetitiva condicional: WHILE Permite implementar la


repetición de un mismo conjunto de instrucciones mientras que se
verifique una determinada condición: el número de veces que se
repetirá el ciclo no está definido a prioridad. El diagrama de flujo
descriptivo de esta estructura se muestra en la Figura 5.9.

 Estructura de elección entre varios casos: SWITCH Este tipo de


estructura permite decidir entre varios caminos posibles, en función
del valor que tome una determinada instrucción. El diagrama de flujo
correspondiente a una de estas estructuras (con cuatro casos) se
presenta en la Figura 5.12.
8. ¿Qué es una variable (en términos informáticos)?

En programación, una variable es un espacio de memoria reservado para


almacenar un valor determinado que corresponde a un tipo de
dato soportado por el lenguaje de programación en el cual se trabaja.
Una variable es representada y usada a través de una etiqueta (un nombre
simbólico) que le asigna un programador o que ya viene predefinida en el
lenguaje.
El programador emplea ese nombre de variable para poder usar la
información que está contenida en ella. Durante el tiempo de ejecución del
programa la variable puede adquirir un valor determinado y puede cambiar
durante el curso de ejecución del mismo.
Una variable en programación no es lo mismo que una variable en
matemática. Una variable en programación no es necesariamente parte de
una fórmula o ecuación matemática.
Usualmente el nombre que se le da a una variable es largo (pero no
demasiado) y descriptivo, permitiendo al programador recordar que
contiene.

9. ¿Qué son operadores relacionales y para qué sirven?

También denominados operadores binarios lógicos y de comparación, se


utilizan para comprobar la veracidad o falsedad de determinadas
propuestas de relación. Las expresiones que los contienen se denominan
expresiones relacionales. Aceptan diversos tipos de argumentos, y el
resultado, que es la respuesta a la pregunta, es siempre del tipo cierto o
falso, es decir, producen un resultado booleano. Si la propuesta es cierta, el
resultado es true (un valor distinto de cero), si es falsa false (cero).
10.¿Qué son operadores lógicos y para qué sirven?

Los operadores lógicos sirven para combinar condiciones. En Access2000


una condición puede tomar tres valores TRUE (verdadero), FALSE (falso) o
NULL (nulo), por lo tanto el resultado de los operadores lógicos también
será true, false o null.
Para ver cómo funcionan los operadores lógicos utilizaremos las tablas de
verdad de estos operadores.
11.Consultar ejemplos de tablas de verdad.

Estas tablas pueden construirse haciendo una interpretación de los signos


lógicos, ¬, ∧, ∨, →, ↔, como: no, o, y, si…entonces, sí y sólo si,
respectivamente. La interpretación corresponde al sentido que estas
operaciones tienen dentro del razonamiento.
Puede establecerse una correspondencia entre los resultados de estas
tablas y la deducción lógico matemática. En consecuencia, las tablas de
verdad constituyen un método de decisión para chequear si una proposición
es o no un teorema.
Para la construcción de la tabla se asignará el valor 1(uno) a una
proposición cierta y 0 (cero) a una proposición falsa.

Negación: El valor de verdad de la negación es el contrario de la


proposición negada.

Disyunción: La disyunción solamente es falsa si lo son sus dos


componentes.

Conjunción: Solamente si las componentes de la conjunción son ciertas, la


conjunción es cierta.
Condicional: El condicional solamente es falso cuando el antecedente es
verdadero y el consecuente es falso. De la verdad no se puede seguir la
falsedad.

Bicondicional: El bicondicional solamente es cierto si sus componentes


tienen el mismo valor de verdad.

12.¿Qué es un lenguaje de programación y para qué sirve?

Un Lenguaje de programación es un conjunto de instrucciones y términos,


un lenguaje formal, que se construye y se emplea para que un ordenador o
un dispositivo pueda crear diferentes tipos de datos. Por lo general,
hablamos de él como el idioma que el programador habla con la máquina
para crear un programa de cualquier tipo.

Un Lenguaje de programación sirve, en primer lugar, para poder


programar. Dado que existen muchos lenguajes de programación
distintos, podríamos sacar en conclusión que cada uno sirve para algo
diferente, y es más o menos así. Por ejemplo, HTML y JavaScript son
lenguajes que se usan en el campo del desarrollo y diseño web, junto
con CSS. Sin embargo, C y C++ son algo enfocado completamente al
desarrollo de software.
Hay más casos, pero todos tienen el mismo objetivo. Así, desde una
perspectiva empresarial, el lenguaje es lo que hace que el programador
pueda hacer funcionar una web y construirla desde cero, o desarrollar una
app para iOS y Android.

13.¿Qué son lenguajes máquina, lenguajes ensambladores y lenguajes de alto nivel?

 El lenguaje maquina: este lenguaje ordena a la máquina las


operaciones fundamentales para su funcionamiento. Consiste en la
combinación de 0's y 1's para formar las ordenes entendibles por el
hardware de la máquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar,
además de tener códigos fuente enormes donde encontrar un fallo es
casi imposible.

 El lenguaje ensamblador es un derivado del lenguaje máquina y está


formado por abreviaturas de letras y números llamadas
mnemotécnicos. Con la aparición de este lenguaje se crearon los
programas traductores para poder pasar los programas escritos en
lenguaje ensamblador a lenguaje máquina. Como ventaja con
respecto al código máquina es que los códigos fuentes eran más
cortos y los programas creados ocupaban menos memoria. Las
desventajas de este lenguaje siguen siendo prácticamente las
mismas que las del lenguaje ensamblador, añadiendo la dificultad de
tener que aprender un nuevo lenguaje difícil de probar y mantener.

 Lenguajes de alto nivel son aquellos que se encuentran más


cercanos al lenguaje natural que al lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.

 Nota: EDD's son las abreviaturas de Estructuras Dinámicas


de Datos, algo muy utilizado en todos los lenguajes de
programación. Son estructuras que pueden cambiar de
tamaño durante la ejecución del programa. Nos permiten
crear estructuras de datos que se adapten a las
necesidades reales de un programa.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por
lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo
puedes migrar de una máquina a otra sin ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del
funcionamiento interno de la maquina/s para la que están diseñando el
programa. Tan solo necesitan un traductor que entiendan el código fuente
como las características de la máquina.
Suelen usar tipos de datos para la programación y hay lenguajes de
propósito general (cualquier tipo de aplicación) y de propósito específico
(como FORTRAN para trabajos científicos).

14.¿Qué es la IEEE y cuál es su función?

El Instituto de Ingeniería Eléctrica y Electrónica (conocido por sus


siglas IEEE, leído i-triple-e en Latinoamérica o i-e-cubo en España;
en inglés Institute of Electrical and Electronics Engineers) es una asociación
mundial de ingenieros dedicada a la normalización y el desarrollo en áreas
técnicas.
Fue creado en 1884 por Thomas Alva Edison, Alexander Graham
Bell, Franklin Leonard Pope y otros ingenieros. En 1963 adoptó el nombre
de IEEE al fusionarse asociaciones con el AIEE (American Institute of
Electrical Engineers) y el IRE (Institute of Radio Engineers).
Según el mismo IEEE, su trabajo es promover la creatividad, el desarrollo y
la integración, compartir y aplicar los avances en las tecnologías de la
información, electrónica y ciencias en general para beneficio de la
humanidad y de los mismos profesionales.

15.Escriba en su respectivo orden los primeros 20 lenguajes de programación de la


lista de los lenguajes más importantes, según el ranking de la IEEE (la versión
más actualizada 2018).
16.En el campo de la programación informática ¿Qué es un intérprete, y que un
compilador? Escriba las ventajas y desventajas de cada uno.

 Un intérprete es un programa que ejecuta línea a línea las


instrucciones de un programa de alto nivel. El intérprete carga el
código fuente y traduce las instrucciones a un lenguaje
intermedio que puede luego ser ejecutado.

Ventajas:

Pueden ser ejecutados en cualquier plataforma.


Ocupan menos espacio en la memoria.
El framework es el que se encarga de que el hardware ejecute las
instrucciones.
Las variables de datos son dinámicas y no se restringen a un solo tipo.
Son más utilizados en desarrollo web y en electrónica.
Desventajas:
Su ejecución es más lenta con respecto a los lenguajes compilados.
Son más difíciles de debuggear.
Requieren de una máquina virtual que sirva como interprete las
instrucciones y el procesador.
No todas las máquinas virtuales están disponibles para todas las
plataformas.

 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.
17.Consulte y presente 10 diferentes lenguajes de programación con un poco de su
historia y sus características principales.

 Java
Es un lenguaje de programación de propósito general orientado a objetos
desarrollado por Sun Microsystems. También se puede decir que Java es
una tecnología que no sólo se reduce al lenguaje sino que además provee
de una máquina virtual Java que permite ejecutar código compilado Java,
sea cual sea la plataforma que exista por debajo; plataforma tanto
hardware, como software (el sistema operativo que soporte ese hardware).
El apoyo a esta tecnología viene dado por la gran cantidad de fabricantes
que apoyan esta especificación de máquina virtual.
Aprender el lenguaje de programación Java requiere tiempo y esfuerzo,
pero en este curso trataremos de sentar las bases para el conocimiento
general del lenguaje. El lenguaje se inspira en otros lenguajes:
Sentencias comunes de C y C++ (sintaxis parecida a dichos lenguajes)
concurrencia parecida a la de Mesa (un lenguaje de investigación de Xerox)
interrupciones parecidas a las de Modula-3 tratamiento de enlace dinámico
de código nuevo parecido al de Lisp definiciones de interfaces parecidas a
las de Objective C gestión de almacenamiento automático parecida a la de
Lisp
Características.
Sun describe al lenguaje Java de la siguiente manera:
Simple
Orientado a Objetos
Tipado estáticamente
Distribuido
Interpretado
Robusto
Seguro
De Arquitectura Neutral
Multihilo
Con Recolector de basura (Garbage Collector)
Portable
De Alto Rendimiento: sobre todo con la aparición de hardware
especializado y mejor software
Dinámico

 Python
Es un lenguaje de programación interpretado cuya filosofía hace hincapié
en una sintaxis que favorezca un código legible. Y define este como un
lenguaje multiparadigma, debido a que soporta orientación a objetos,
programación imperativa y en menor medida programación funcional.
Es interpretado de Tipado dinámico y multiplataforma.

Características
Lenguaje de propósito general. ...
Es multiparadigma. ...
Python es un lenguaje interpretado. ...
Es multiplataforma. ...
Es de Tipado dinámico. ...
Es orientado a objetos. ...
Otras propiedades de Python.

 JavaScript
Es un lenguaje de programación interpretado, dialecto del
estándar ECMAScript. Se define como orientado a objetos, basado en
prototipos, imperativo, débilmente tipado y dinámico.
Características de JavaScript
• Es simple, no hace falta tener conocimientos avanzados de programación
para poder hacer un programa en JavaScript.
• Maneja objetos dentro de nuestra página Web y sobre ese objeto
podemos definir diferentes eventos. Dichos objetos facilitan la programación
de páginas interactivas, a la vez que se evita la posibilidad de ejecutar
comandos que puedan ser peligrosos para la máquina del usuario, tales
como formateo de unidades, modificar archivos etc.
• Es dinámico, responde a eventos en tiempo real. Eventos como presionar
un botón, pasar el puntero del mouse sobre un determinado texto o el
simple hecho de cargar la página o caducar un tiempo. Con esto podemos
cambiar totalmente el aspecto de nuestra página al gusto del usuario,
evitándonos tener en el servidor un página para cada gusto, hacer cálculos
en base a variables cuyo valor es determinado por el usuario, etc.

 C++
El lenguaje de programación c++ fue el lenguaje que ayudó a potenciar
la programación orientada a objetos.
Hoy en día, la mayoría de lenguajes actuales modernos tienen este tipo de
programación, y es gracias al lenguaje C++.
El lenguaje C++ fue creado por Bjarne Stroustrup, en el año 1979. Este
programador danés empezó a trabajar en el lenguaje, que lo llamaba C con
clases.
Stroustrup comparó varios lenguajes para la creación del predecesor de C+
+. Por ejemplo, vio que Simula (un lenguaje POO del 1962), tenía buenas
características para programar, pero era muy lento, y el lenguaje BCPL era
rápido, pero de bajo nivel.
Así que mejoró el lenguaje C con características de Simula. Se decidió por
el lenguaje C porque:
Es de uso general.
Es rápido.
Es portable.
Es muy utilizado.

Características del lenguaje C++


Sintaxis heredada del lenguaje C.
Tiene un estandard ISO, conocido como ANSI-C++. La última revisión fue
en el 2011.
Lenguaje fuertemente tipado. El programador debe saber cómo hacer y
declarar el código para que funcione.
Programación orientada a objetos, lo que comúnmente se puede encontrar
por POO.
Abstracción.
Encapsulado.
Herencia.
Polimorfismo.
Sobrecarga de operadores.
Soporta expresiones Lambda, también llamadas funciones anónimas.
Control de excepciones.
Biblioteca estándar, que suele venir con el compilador. No solo estamos
hablando de las funciones de sistema, como puede ser cout, sino de:
Plantillas de clases (o colecciones de objetos) para vectores, listas, mapas,
colas, pilas.
Soporte Multihilo.
Compatibilidad de C con C++. Un compilador de c++ puede compilar código
escrito en C, o usar librerías de c con poca modificación de código.
Uso de punteros.
Es portátil, tiene un gran número de compiladores en diferentes plataformas
y sistemas operativos.
Eficiencia con el hardware, al ser un lenguaje compilado. Además, se
acerca bastante a un lenguaje de bajo nivel.

 PHP
PHP es uno de los lenguajes más usados cuando hablamos de crear
páginas web, sobre todo si nos interesa programar con una base de datos
(la base de datos más popular en este sentido es MySQL).
PHP viene de HyperText Preprocessor, un poco raro porque las siglas no
son tal cuál su significado. Cuando se publicó por primera vez se
llamó Personal Home Page Tools, pero luego cambió por el nombre que
hemos comentado.
En su momento fue creado en otro lenguaje Perl, hasta que se reescribió
por completo. Se lanzó PHP 3 con un motor totalmente nuevo, llamado
Zend.

Características de php
Es de propósito general. Aunque está especializado en a programación de
sitios web dinámicos, se puede usar PHP para acceder y manejar una base
de datos, generar cálculos aritméticos (con scripts), comunicarse entre un
servidor y un cliente, etc.
Puedes hacer blogs, foros, aplicaciones dinámicas…
Es un lenguaje con una curva de aprendizaje baja, se aprende rápidamente,
aunque eso hace que tenga mala fama, por ejemplo en la declaración de
variables porque no se define un tipo de datos.
Con PHP 5 tienes programación orientada a objetos, así que tiene la base
de la programación que se usa hoy en día.
Soporte para base de datos, específicamente con MySQL. También tiene
un buen soporte con PostgreSQL, SQLite y Oracle. El acceso se hace
mediante librerías o extensiones ya configuradas, que ayudan en la
escritura del código.
Creación de WebServices, mediante SOAP.
Es un lenguaje interpretado, es decir, no se compila. Además, el código se
almacena en el servidor, por ejemplo dentro de una página web.
Tiene una sintaxis parecida al C.
Es multiplataforma. Podemos tener un servidor de PHP en multitud de
sistemas operativos, como Linux, Mac OS X, Windows.
Es de código libre, así que hay un buen soporte, además de mucha
información por internet.
Amplia documentación oficial, y no oficial como en GitHub o StackOverflow.
Existen otros protocolos y servicios que puedes comunicarte mediante php,
correo con POP3 y SNMP, autentificación de dominio de Windows con
LDAP, IMAP, etc.

 Perl 
Perl (Practical Extraction and Report Language) es un lenguaje de
programación desarrollado a finales de los años 80 por Larry Wall a partir
otras herramientas de UNIX como son: ed, grep, awk, c-shell, para la
administración de tareas propias de sistemas UNIX.
Es un lenguaje de script de tipo BCPL (como TCL o PHP), muy semejante
al AWK (de hecho está basado en él), de tipo estructurado con trazas de
orientación a objetos (no completamente soportado de forma directa), que
permite el desarrollo rápido de aplicaciones y herramientas especialmente
orientadas al tratamiento de textos y archivos, aunque actualmente también
se utiliza incluso para entornos gráficos, en combinación con sistemas
como Perl/TK o GTK
Características
No establece ninguna filosofía de programación concreta. No se puede
decir que sea orientado a objetos, modular o estructurado aunque soporta
directamente todos estos paradigmas y su punto fuerte son las labores de
procesamiento de textos y archivos.
No es ni un compilador ni un intérprete, está en un punto intermedio,
cuando mandamos a ejecutar un programa en Perl, se compila el código
fuente a un código intermedio en memoria que se optimiza como si se fuera
a elaborar un programa ejecutable pero es ejecutado por un motor, como si
se tratase de un intérprete.
Lenguaje de programación basado en scripts a casi cualquier plataforma.
Es muy utilizado para escribir CGIs.
Lenguaje optimizado para el escaneo de texto arbitrario de ficheros. Es
también un buen lenguaje para tareas de administración de sistemas. Es un
lenguaje con intención de ser práctico en lugar de bonito. Satisface las tres
virtudes del programador: flojera, impaciencia y petulancia.
Básicamente, es un lenguaje que se ha intentado que sea lo más natural
posible, lo que conlleva que en ocasiones nos encontremos estructuras
poco habituales en un lenguaje de este tipo.

  SWIFT  
En la WWDC de 2014 se introdujo el lenguaje de programación Swift, el
nuevo lenguaje de programación de Apple. Multiparadigma y de propósito
general, concebido con un enfoque moderno en la seguridad, el rendimiento
y el diseño de estándares de software.
Su desarrollo comenzó en el año 2010 de la mano del programador de
software y ex-trabajador de Apple (abandonó la empresa en Enero de
2017) Ph.D. Chris Lattner, también conocido por ser el creador principal
de LLVM y el compilador Clang.

Características del lenguaje


Swift incluye características que hacen mucho más fluida y fácil la lectura y
escritura de código, mientras que el desarrollador mantiene el control
necesario sobre un lenguaje de programación de sistemas verdadero.
Swift admite tipos inferidos de datos para hacer el código más limpio y
menos propenso a errores, y los módulos han eliminado los encabezados
(headers) y proporcionan espacios de nombres (namespaces).
El manejo de memoria se realiza de forma automática, y no es
necesario escribir un punto y coma al final de cada línea.

 Rust
Es un lenguaje de programación desarrollado por los ingenieros de mozila.
Podríamos catalogarlo como un lenguaje muy nuevo; Estamos hablando
que la versión 1.0 estuvo disponible a principios del 2015; Actualmente
estamos en la versión 1.32.
Al igual que C, Java o C++, Rust es un lenguaje compilado.
Rust está diseñado para desarrollar software de sistemas, donde la
interacción con el usuario es prácticamente nula; Excelente para
aplicaciones con el modelo cliente-servidor o para cosas más internas en
nuestra empresa. Uno que otro demonio por allí.
Algo interesante de Rust es que actualmente se están desarrollando dos
sistemas operativos con dicho lenguaje.

Características de Rust.
Todo desarrollador que pasó por C y C++ debe de ver en Rust un primo
muy cercano, la sintaxis es muy similar, es decir que estaríamos
encontrando las clásicas llaves y bloques de código como las condicionales
y los ciclos. 
Para las variables contamos con la inferencia de tipos, así que no siempre
le tendremos que decir que tipo de dato es, pero para que esto se aplique
tendremos que utilizar la palabra let. Para permitir que una variable sea
mutable tendremos que agregar la palabra mut a la palabra let en la
definición de la variable.
Rust no nos permite, como ya lo hacen ahora muchos lenguajes, utilizar un
valor que no haya sido inicializado previamente. Algo que también se repite
en otros lenguajes de programación es que al menos necesitamos una
función de inicio (la famosa función main). Ahora viene una característica
importante, Rust es un lenguaje basado en expresiones, de hecho existen 2
tipos de sentencias y todo lo demás son solo una expresión.
Los 3 objetivos que tiene Rust son velocidad, concurrencia y seguridad. A
diferencia de lenguajes como Java y de ese tipo podemos ver que Rust no
tiene un garbage collector.
Las abstracciones a cero costo son la herramienta más importante que
permite que la seguridad y velocidad se mantenga en un estándar elevado
y fácil para implementar. En la documentación se menciona (y muchos
desarrolladores también) que uno de los problemas es la curva de
aprendizaje. Algunas reglas que implementa Rust son diferentes a las que
estamos acostumbrados por lo que en un inicio pasaras horas peleando y
entendiendo al compilador, aunque ¿quién no ha pasado horas peleando
con un compilador? En resumen cualquier programador pasa por esa
etapa.

18.¿Qué es un IDE y para que se utiliza?


Un IDE es un entorno de programación que ha sido empaquetado como
un programa de aplicación, es decir, consiste en un editor de código, un
compilador, un depurador y un constructor de interfaz gráfica (GUI). Los
IDE pueden ser aplicaciones por sí solas o pueden ser parte de
aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser
usado dentro de las aplicaciones de Microsoft Office, lo que hace posible
escribir sentencias Visual Basic en forma de macros para Microsoft Word
(VBA).

Los IDE proveen un marco de trabajo amigable para la mayoría de los


lenguajes de programación tales como C++, Python, Java, C#, Delphi,
Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como
un sistema en tiempo de ejecución, en donde se permite utilizar el
lenguaje de programación en forma interactiva, sin necesidad de trabajo
orientado a archivos de texto, como es el caso de Smalltalk u Objective-
C.

Es posible que un mismo IDE pueda funcionar con varios lenguajes de


programación. Este es el caso de Eclipse, al que mediante plugins se le
puede añadir soporte de lenguajes adicionales.

Un IDE debe tener las siguientes características:

 Multiplataforma
 Soporte para diversos lenguajes de programación
 Integración con Sistemas de Control de Versiones
 Reconocimiento de Sintaxis
 Extensiones y Componentes para el IDE
 Integration con Framework populares
 Depurador
 Importar y Exportar proyectos
 Múltiples idiomas
 Manual de Usuarios y Ayuda

19.¿Qué es Arduino?
Arduino es una plataforma de creación de electrónica de código abierto, la
cual está basada en hardware y software libre, flexible y fácil de utilizar para
los creadores y desarrolladores. Esta plataforma permite crear diferentes
tipos de microordenadores de una sola placa a los que la comunidad de
creadores puede darles diferentes tipos de uso. El hardware libre son los
dispositivos cuyas especificaciones y diagramas son de acceso público, de
manera que cualquiera puede replicarlos. Esto quiere decir que Arduino
ofrece las bases para que cualquier otra persona o empresa pueda crear sus
propias placas, pudiendo ser diferentes entre ellas, pero igualmente
funcionales al partir de la misma base. En pocas palabras el Arduino, una
placa con todos los elementos necesarios para conectar periféricos a las
entradas y salidas de un microcontrolador, y que puede ser programada
tanto en Windows como macOS y GNU/Linux. Un proyecto que promueve la
filosofía 'learning by doing', que viene a querer decir que la mejor manera de
aprender es cacharreando.
20.¿Qué lenguaje de programación se utiliza para programar en plataformas
Arduino?

Para programar un Arduino, el lenguaje estándar es C++, aunque es


posible programarlo en otros lenguajes. No es un C++ puro sino que
es una adaptación que proveniente de avr-libc que provee de una
librería de C de alta calidad para usar con GCC en los
microcontroladores AVR de Atmel y muchas funciones específicas
para los MCU AVR de Atmel.

avr-binutils, avr-gcc y avr-libc son las herramientas necesarias para


programar los microcontroladores AVR de Atmel.

21.Consulte 10 proyectos interesantes realizados con Arduino.

Cabina de fotos para tu boda o evento social


Poner un photocall y permitir a los invitados de un evento social hacerse fotos está de
moda. Y hay negocio alrededor, tanto como para costar unos 600 euros el alquiler de una
cabina para hacerse fotos.
Con Arduino, una cuenta de Dropbox y una webcam ya tienes la base para construirte tu
propia cabina de fotos. Y si la amplías para que pueda imprimir las fotos que se toman al
instante, éxito asegurado. Las instrucciones | Arduino Yun Photo Booth

Máquina de hacer pompas

Un ejemplo perfecto de que, ante todo, con Arduino es la imaginación al poder.


¿Quién querría una máquina para hacer pompas de forma automática?
Seguramente quien tenga un gato al que cabrear con esta creación.

Esto no quita que como proyecto con Arduino sea una pequeña maravilla y algo de
lo que presumir sin duda. Y una vez con la base, ya no hay límites para aprovechar
al máximo un sistema donde el protagonista es un brazo robótico .
Las zapatillas de Regreso al Futuro

No es el proyecto más práctico que vas a ver en esta selección pero sí el que más te
puede gustar realizar. Si alguna vez has soñado con las zapatillas de Regreso al
Futuro, Arduino te permite crearlas por ti mismo si añades motores. No son
muy llevables pero ¡qué demonios!, se atan solas y eso ya es más que suficiente.
Una chaqueta indicadora para ciclistas

Leah Buechley creo una versión de una placa Arduino especial para poder
implementar su idea: una chaqueta con luces para indicar la dirección que vamos a
tomar a los coches u otros ciclistas gracias al movimiento de nuestros brazos. Su
placa, llamada LilyPad está preparada especialmente para poder ser cosida e
integrada en prendas sin que las mismas resulten incómodas.

Disparador para fotografía de alta velocidad

A realizar la foto perfecta a alta velocidad también puede ayudarte Arduino. En este


proyecto podrás montar tu propio disparador automático para conseguir congelar la acción
en el momento preciso, que determinará un sistema que activará la cámara cuando el
objeto llegue al agua.

Alarma para casa

Uno de los proyectos más abordables y de resultado llamativo es la construcción


de una alarma para casa. Con ayuda de detectores de movimiento y muchas
luces y sonido si queremos, podremos construir la nuestra propia, no muy válida
para proteger la casa pero sí para estar alerta por si nuestra mascota decide invadir
zona protegida de casa.
Tu propio Ambilight asequible

Tras conseguir implementar un sistema Ambilight básico hace unos


años, el creador de este proyecto ha actualizado el sistema para conseguir de
la mano de Arduino una respuesta más fiel del sistema de iluminación
casero. Analizando y detectando cambios de colores en la fuente,
principalmente de software hace las veces de centro multimedia en un
ordenador, podemos conseguir un sistema que es bastante fiel al original de
Philips. Y todo por unos 60 dólares.

Una cámara espía

No es muy discreta pero puede colar. Y le des uso como espía o no, solo con ponerte manos
a la obra para crear este vaso de café con cámara ya es toda una aventura que seguro que
disfrutarás. Y todo un reto poder meter los componentes en un espacio tan reducido.
La cámara espía se vale de un módulo acelerómetro que detecta cuando giramos una parte
del vaso de café para activar el disparo y listo, una foto sin que nadie se hay (casi) dado
cuenta.

Un reloj despertador avanzado

Que ni Samsung ni Apple ni ninguna otra marca te diga cómo debe ser tu reloj
avanzado. ¿Lo quieres en formato despertador? Pues dicho y hecho. Bueno, hecho
todavía no. Te toca seguir el tutorial de Make para que en un fin de semana puedas
acabar un proyecto donde los eventos de tu Google Calendar harán saltar
los avisos y alarmas de un reloj que puedes personalizar como quieras.

Notificación de un nuevo correo


Aunque ya hay soluciones comerciales que lo hacen (la combinación de IF y las
Philips HUE, por ejemplo), en esta selección se trata de hacérnos nosotros mismos
un sistema que nos indique visual o sonoramente la llegada de un nuevo correo a
nuestra cuenta en el ordenador.

Con la omnipresente placa Arduino, en este caso nos sirve la más básica, una
conexión USB con el ordenador y dos pequeños programas (uno para comprobar el
email entrante y otro para activar la notificación), conseguimos crear un sistema de
aviso de nuevo email que puede componerse de un simple LED, un altavoz o lo que
queramos.

22.Escriba un proyecto personal que a usted le gustaría realizar con la plataforma


Arduino.

23.Relacionar la bibliografía y webgrafía utilizada para realizar esta consulta.

¿10 proyectos interesantes realizados con Arduino.?


https://www.xataka.com/makers/13-proyectos-asombrosos-con-arduino-para-
ponerte-a-prueba-y-pasar-un-gran-rato

¿Qué lenguaje de programación se utiliza para programar en plataformas


Arduino?
https://aprendiendoarduino.wordpress.com/2015/03/26/lenguaje-de-programacion-
c/

¿Qué es un arduino?
https://arduino.cl/que-es-arduino/

¿Qué es un algoritmo?
http://ing.unne.edu.ar/pub/informatica/Alg_diag.pdf

También podría gustarte