Ir al contenido principal

Entradas

Mostrando las entradas de septiembre, 2022

15. INTRODUCCIÓN AL LENGUAJE C++

 Joyanes Aguilar hace referencia que C++ es heredero directo del lenguaje C que a su vez se deriva del lenguaje B.  El lenguaje de programación C fue desarrollado por Denis Ritchie de AT&T Bell Laboratories que se utilizó para escribir y mantener el sistema operativo UNIX (hasta que apareció C, el sistema operativo UNIX fue desarrollado por Ken Thompson en AT&T Bell Laboratories mediante un lenguaje ensamblador o en B). C es un lenguaje de propósito general que se puede utilizar para escribir cualquier tipo de programa, pero su éxito y popularidad está especialmente relacionado con el sistema operativo UNIX (fue desarrollado como lenguaje de programación de sistemas, es decir, un lenguaje de programación para escribir sistemas operativos y utilidades, programas, del sistema). Los sistemas operativos son los programas que gestionan (administran) los recursos de la computadora. Ejemplos bien conocidos de sistemas operativos además de UNIX son MS/DOS, OS/2, MVS, Linux, Wi...

14.2 Componentes de los lenguajes de programación

 . Intérpretes   Joyanes Aguilar, define a un Intérprete, como un traductor que toma un programa fuente, lo traduce, y a continuación lo ejecuta. Los programas intérpretes clásicos, como BASC, prácticamente ya no se utilizan, aunque se puede encontrar alguna computadora que opere con la versión QBasic bajo el Sistema Operativo DOS que corre en las computaras personales. Sin embargo, está muy extendida la versión interpretada del Lenguaje Smalltalk, un lenguaje orientado a objetos puro. Los intérpretes han vuelto a renacer con la aparición de Java, ya que para entender el código en bytes (bytecode) al que traduce un compilador se necesita un intérprete. Compiladores Después que se ha diseñado el algoritmo y escrito el programa en un papel, se debe comenzar el proceso de introducir el programa en un archivo (fichero) en el disco duro de la computadora. La introducción y modificación del programa en un archivo se hace utilizando un editor de texto o simplemente un editor, un prog...

14.1 Profundización en lenguajes de alto nivel

 Los lenguajes de programación son tratados a veces en términos de generaciones. Se considera que cada generación sucesiva contiene lenguajes que son más fáciles de usar y más poderosos que los de la generación previa. Los lenguajes máquina son considerados de la primera generación, y los ensambladores de segunda generación. Los lenguajes de alto nivel comenzaron en la tercera generación. Lenguajes de tercera generación Los lenguajes de tercera generación, señala Norton, tienen la capacidad de soportar programación estructurada, lo cual significa que proporcionan estructuras explícitas para ramas y ciclos. Además, debido a que son los primeros lenguajes que usan fraseo similar al inglés, compartir el desarrollo entre los programadores también es más fácil. Los integrantes del equipo pueden leer el código de cada uno de los demás y comprender la lógica y el flujo de control del programa. Estos programas también son portátiles. En oposición a los lenguajes ensambladores, los programa...

14. Lenguajes de programación

 Joyanes Aguilar señala que los lenguajes de programación sirven para escribir programas que permitan la comunicación usuario/máquina. Unos programas especiales llamados traductores (compiladores o intérpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguajes máquina (0 y 1, bits) que ésta pueda entender.  Agrega que los programas de utilidad facilitan el uso de la computadora. Un buen ejemplo es un editor de textos que permite la escritura y edición de documentos. Los programas que realizan tareas concretas; nóminas, contabilidad, análisis estadístico, etc., se denominan programas de aplicación.   Peter Norton, en su libro titulado “Introducción a la Computación”, menciona que programar es una manera de enviar instrucciones a la computadora. Para estar seguros de que la computadora (y otros programadores) pueden entender esas instrucciones, los programadores usan lenguajes definidos para comunicarse.  Est...

13. Algoritmos cotidianos

 Se refiere a los algoritmos que ayudan a resolver problemas diarios, y que las personas llevan a cabo sin darse cuenta de que están siguiendo una metodología para resolverlos.  Algunos ejemplos son:      -  Diseñar un algoritmo para cambiar una llanta a un auto:           1. Inicio.            2. Conseguir un gato hidráulico.            3. Levantar el auto con el gato.            4. Aflojar los tornillos de las llantas.            5. Retirar los tornillos de las llantas.            6. Quitar la llanta.            7. Colocar la llanta de repuesto.            8. Colocar los tornillos.            9. Apretar los tornillos.       ...

12. Definición y solución de problemas

 Joyanes Aguilar, señala que el proceso de resolución de problemas con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Reconoce que el proceso de diseño de un programa es un “proceso creativo”, en el cual se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir los programadores. Las fases de resolución de un problema con computadora son:        Análisis del problema.        Diseño del algoritmo.        Codificación.        Compilación y ejecución.        Verificación.        Depuración.        Mantenimiento.        Documentación. Constituyen el ciclo de vida del software y las fases o etapas usuales son: 1. Análisis . El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que se ...

11.2 Representación grafica de los algoritmos

 Para la representación gráfica del algoritmo debe emplearse un método que sea independiente del lenguaje de programación elegido.  Joyanes Aguilar señala que para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación, sino que la descripción se emplee para su transportación en un programa. Los métodos usuales para representar un algoritmo son:  1.- Diagrama de flujo.  2.- Diagrama N-S (Nassi-Schneiderman).  3.- Lenguaje de especificación de algoritmos: pseudocódigo.  4.- Lenguaje español, inglés.  5.- Fórmulas. El método 4 y 5 no son fáciles de programar. Un algoritmo no puede ser representado por una simple fórmula. 1.- Diagrama de flujo: También conocido como flowchart es una técnica de programación de representación de algoritmos antigüa y muy utilizada. Un diagrama de flujo, Jayanes Aguilar, lo define como: “un d...

11.1 Definición de Algoritmos y lenguaje

 El participante definirá el concepto de algoritmos y lenguaje e identificar sus aplicaciones. En su libro Fundamentos de programación, Luis Joyanes Aguilar, define al algoritmo como un método para resolver un problema. Aunque la popularización del término ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al-KhoWârizmi, matemático persa que vivió durante el siglo IX y alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algorismus derivó posteriormente en algoritmo. Señala, Joyanes Aguilar, que Euclides, matemático griego (del siglo IV a.C.) quien inventó un método para encontrar el máximo común divisor de dos números, se considera con Al-KhoWârizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos). Joyanes Aguilar, hace un señalamiento histórico con respecto a Niklaus Wirth, inventor de Pascal, Modul...

11. Análisis y diseño de algoritmos

En la actualidad el ser humano se enfrenta a distintas situaciones: de aprendizaje, de retroalimentación y en muchas ocasiones dificultades que con la experiencia o por la elección de la alternativa apropiada, va dando solución. Es por ello que a menudo se emplea cierta metodología para la solución de los problemas en lugar de actuar de forma imprevista, siendo una característica relevante el análisis de los mismos. La humanidad de forma natural emplea en la vida cotidiana ciertas conductas que son rutinarias, siguen un orden, una secuencia y pretenden alcanzar un objetivo.  Este conjunto de acciones rutinarias que se llevan a cabo y forman parte ya de la vida cotidiana del ser humano, se conocen como algoritmos, los cuales son aplicables en los ámbitos que así se necesiten.  El ámbito de mayor de aplicación y de primordial importancia es en la solución de problemas mediante computadora. Donde el elemento base para lograr dicha solución es el algoritmo propio. Desarrollar un a...

10. Instrucciones y comandos SMART DFD 1.0

Smart DFD es un software desarrollado por el grupo Smart, de la Universidad del Magdalena (Santa Marta, Colombia) para apoyar la enseñanza de la lógica de programación a través de la utilización de los diagramas de flujo. Este manual esta elaborado como apoyo a los laboratorios de los estudiantes de la Asignatura Introducción y programación de los computadores. Es sólo una pequeña recopilación y explicación de algunos comandos utilizados en Clase. - Ventana principal de SAMRT DFD 1.0 La ventana principal de trabajo del Smart DFD 1.0 esta compuesta de los siguientes elementos:  Barra de menús   Botones de Archivo   Botones de Edición   Botones de Ejecución   Botones de Depuración   Botones de Zoom   Botones de Objetos   Botones de Subprogramas BARRA DE MENU Aquí encontramos las siguientes opciones:  A. Archivo:  Este menú se encarga del manejo del archivo que estemos trabajando.  Presenta los siguientes comandos:   Nuevo: Pa...

9. Diagramas de flujo en programación

El diagrama de flujo o flujograma o diagrama de actividades es la representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva. En Lenguaje Unificado de Modelado (UML), es un diagrama de actividades que representa los flujos de trabajo paso a paso. Un diagrama de actividades muestra el flujo de control general. En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p. ej., gasolina) o energía (p. ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin del proceso.(de Wikipedia) Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en nume...

8. Arreglos en PSeInt

 Los arreglos son estructura de datos homogéneas (todos los datos son del mismo tipo) que permiten almacenar un determinado número de datos bajo un mismo identificador, para luego referirse a los mismos utilizando uno o más subíndices. Los arreglos pueden pensarse como vectores, matrices, etc. Para crear un arreglo en PSeInt se utiliza la palabra clave Dimensión, seguido del nombre del arreglo (identificador) y su tamaño (numero de subíndices) entre corchetes []. Dimensión identificador [tamaño]; En PSeInt los subíndices (posiciones) de los arreglos empiezan desde 1. En Java desde 0. Nota: Si esta activada la opción controlar el uso de punto y coma en el menú Configurar siempre ubique un punto y coma al final del arreglo. Ejemplo 1:  Crear un arreglo llamado números que almacene los siguientes datos: 20, 14, 8, 0, 5, 19 y 4 Salida: Representación grafica del anterior ejemplo: NUMEROS Fíjese que para mostrar el contenido del arreglo utilizamos un ciclo Para que nos permita ver ...

7.4 Estructura Iterativa (Bucle)

Consiste en repetir una sentencia. También se denominan bucles. Siempre ha de existir una condición de parada, es decir, hay que garantizar que para cualquier caso, el bucle parará. 1. Mientras : La sentencia puede no ejecutarse nunca si la condición no se cumple. Si la condición está mal hecha, el bucle puede no acabar nunca. Es lo que se denomina un bucle infinito. En C++ la sintaxis sería: while (expresión lógica)  sentencia ----------------------------------------------------------------------------- Ejemplo:  cin >> n; num = 1; while (num <= n) {  cout << num << endl;  num++; } ----------------------------------------------------------------------------- Con el bucle mientras se puede construir cualquier estructura iterativa. De todas maneras, por comodidad existen otras estructuras iterativas. 2. Repetir (o hacer): La sintaxis en C++ : do  sentencia while (expresión lógica); ------------------------------------...

7.3 Estructura condicional

1. Alternativa simple  En C++ la sintaxis de la alternativa simple sería: if (expresión lógica) sentencia ----------------------------------------------------------------------------------------------------- Ejemplo: if (a != 0) { x = b / a; cout << x; } 2. Alternativa Doble En C++ la sintaxis sería: if (expresión lógica) sentencia1 else sentencia2 --------------------------------------------------------------------------------------- Ejemplo: if (a != 0) { x = b/a; cout << x; } else cout << "Error: División por cero"; 3. Sentencias if anidadas Cuando la sentencia dentro del if es otra sentencia if . La parte else siempre se asocia al if más cercano posible. Ejemplo: if (a == 1) if(b == 1) cout << "1 1"; else // Con que if esta asociado este else ?? cout << " ? "; 4. Alternativa múltiple Pseudocódigo : según <Expresión> hacer <valor1>: <sentencia1> <valo...

7.2 Estructura secuencial

Ejecución de sentencias una detrás de la otra. En C++, toda una estructura secuencial se agrupa mediante los símbolos { y }. Todo el bloque se considera una sola sentencia. Después de las llaves no se pone punto y coma. (Fernado Barber y Ricardo Ferrís)

7.1 teorema de la programación estructurada.

El principio fundamental de la programación estructurada es que en todo momento el programador pueda mantener el programa “dentro” de la cabeza. Esto se consigue con: a) un diseño descendente del programa, b) unas estructuras de control limitadas y c) un ámbito limitado de las estructuras de datos del programa. Hace más fácil la escritura y verificación de programas. Se adapta perfectamente al diseño descendente. Para realizar un programa estructurado existen tres tipos básicos de estructuras de control: • Secuencial: Ejecuta una sentencia detrás de otra. • Condicional: Se evalúa una expresión y, dependiendo del resultado, se decide la siguiente sentencia a ejecutar. • Iterativa: Repetimos un bloque de sentencias hasta que sea verdadera una determinada condición. Existe un teorema debido a [C.Böhm, G.Jacopini, Comm. ACM vol.9, nº5, 366-371, 1966] (Teorema Fundamental de la programación estructurada) que establece lo siguiente: “Todo programa propio se puede escribir utiliza...

7. Programación estructurada

La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y a tres estructuras de control básicas: secuencia, selección (if y switch) e iteración (bucles for y while); asimismo, se considera innecesario y contraproducente el uso de la transferencia incondicional (GOTO); esta instrucción suele acabar generando el llamado código espagueti, mucho más difícil de seguir y de mantener, además de originar numerosos errores de programación. Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini, y un famoso escrito de 1968: «La sentencia goto, considerada perjudicial», de Edsger Dijkstra. Sus postulados se verían reforzados, a nivel teórico, por el teorema del programa estructurado y, a nivel práctico, por la aparición de lenguajes como ALGOL, dotado de estructuras de control consistentes y bien formadas. (Wikipedia 2022) - En la sección 7.1 ...

6. Que es Programar

La programación es el proceso de crear un conjunto de instrucciones que le dicen a una computadora como realizar algún tipo de tarea. Pero no solo la acción de escribir un código para que la computadora o el software lo ejecute. Incluye, además, todas las tareas necesarias para que el código funcione correctamente y cumpla el objetivo para el cual se escribió. En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones de informática y videojuegos. En este sentido, es el proceso por el cual una persona desarrolla un programa, valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, como C++, Java y Python, entre muchos otros) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, que puede "comprender" el microprocesador. (Wikipedia 2022) Decirle a un tonto muy rápido exactamente lo que tiene que hacer Especificar la estructura y el comportamiento de un...

5. Un poco de Historia

A través de los años surgen evoluciones en los computadores y es muy importante para ti que conozcas la línea de tiempo con los avances hasta la actualidad. La prehistoria El ábaco Siglo XIX Máquina analítica de Charles Babbage Siglo XX 1936 Máquina de Turing 1946 ENIAC: Primera computadora digital de propósito general 1947 El transistor 1953 IBM 650: Primera computadora a gran escala 1966 ARPANET: Origen de Internet 1967 El disquete 1970 Sistema operativo UNIX 1972 Primer virus informático (Creeper) Lenguaje de programación C 1974 Protocolo TCP. Primera red local 1975 Se funda Microsoft 1976 Se funda Apple 1979 Juego Pacman 1981 IBM PC Sistema operativo MS‐DOS 1983 Lenguaje de programación C++ 1984 CD‐ROM 1985 Windows 1.0 1990 Lenguaje HTML World Wide Web 1991 Sistema operativo Linux 1992 Windows 3.1 1995 Lenguaje de programación Java DVD 1998 Se funda Google 1999 MSN Messenger Siglo XXI 2001 Windows XP Mac OS X 2002 Mozilla Firefox 2007 iPhone 2008 Android ... La industria de las tec...

4. Lenguajes de programación de alto nivel.

Características :  Más cercanos a los lenguajes natural y matemático resultado = dato1 + dato2;  Mayor legibilidad, mayor facilidad de codificación  Estructuración de datos / abstracción procedimental Compiladores : Compilan y enlazan programas completos. Intérpretes : Compilan, enlazan y ejecutan instrucción a instrucción. Los lenguajes más usados: - Java: Desde su creación a mediados de la década de 1990, Java siempre ha estado entre los lenguajes de programación más populares y 30 años después sigue siendo un lenguaje de programación líder. Java es, de hecho, el lenguaje nativo de Android, la plataforma móvil más utilizada en el mundo. - Python: Python se lanzó en 1991 y le llevó bastante tiempo ganar seguidores. Sin embargo, en los últimos años ha crecido gracias, en gran parte, a sus capacidades en machine learning, ciencia de datos e inteligencia artificial. Es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo.  Encuentra u...

3. Lenguaje máquina y ensamblador.

Los procesadores trabajan con ceros y unos (bits) Unidad de memoria básica: Byte (8 bits) (2 dígitos hexadecimales: 01011011  0101 1011  5B) Lenguaje máquina Códigos hexadecimales que representan instrucciones, registros de la CPU, direcciones de memoria o datos. Instrucción Significado A0 2F Acceder a la celda de memoria 2F 3E 01 Copiarlo el registro 1 de la ALU A0 30 Acceder a la celda de memoria 30 3E 02 Copiarlo en el registro 2 de la ALU 1D Sumar B3 31 Guardar el resultado en la celda de memoria 31 Nemotécnicos para los códigos hexadecimales: A0  READ   3E  REG   1D  ADD   … Mayor legibilidad: READ 2F REG 01 READ 30 REG 02 ADD    WRITE 31 - Lenguaje de nivel medio Por: IG Luis Hernández Yáñez

2. Computadoras y Programación

Según la RAE. (Real academia del Español) - INFORMÁTICA: (Ciencia de la computación) Conjunto de conocimientos científicos y técnicas   que hacen posible el tratamiento automático   de la información por medio de ordenadores. - COMPUTADORA: Máquina electrónica, analógica o digital,   dotada de una memoria de gran capacidad   y de métodos de tratamiento de la información,   capaz de resolver problemas matemáticos y lógicos   mediante la ejecución de programas informáticos en todas partes y con muchas formas. - HARDWARE: Componentes que integran   la parte material   de una computadora. - SOFTWARE: Programas, instrucciones   y reglas informáticas   para ejecutar tareas   en una computadora. - PROGRAMAR: Indicar a la computadora qué es lo que tiene que hacer, dar instrucciones precisas y concisas mediante un algoritmo. - PROGRAMA:  Secuencia de instrucciones  Instrucciones que entiende la computadora  Y que persiguen un objetivo: ¡r...

1. Introducción

. Print ("Hola mundo"); Quiero darte la bienvenida a este curso no sin antes agradeciéndote por entrar aquí y atreverte a conocer más de la informática y la programación de software conmigo en este curso. A lo largo de este recorrido encontrarás mucha información que te será muy útil a la hora de escoger el código de programación con el cual te sentirás a gusto programando, aprenderás desde cero y de una manera muy didáctica. Utilizaremos el pseudocódigo como herramienta para aprender a programar en este curso, en el módulo de herramientas TOOLS encontrarás los enlaces de descarga de los aplicativos para computador con sistema operativo Windows y sistema operativo Linux. Igual veremos algo de Python, C++, C#, JavaScript, Java, HTML y entre otros, pero estos solo nivel inicial, como para conocer las bases de estos lenguajes de programación.  No te detengas, es hora de aprender.!!!