Curso de Programación de Apps. Android y iPhone
Por Ángel Arias
4.5/5
()
Información de este libro electrónico
El curso de Programación de Apps. Android y iPhone, es un curso en el que aprenderá a desarrollar aplicaciones para dispositivos móviles, ya sean con el sistema operativo Android como dispositivos MAC.
El curso está estructurado en:
- Fundamentos de Programación
- Fundamentos de Bases de Datos
- Programación para dispostivos Android
- Programación para dispositivos MAC.
Para enseñarle a programar en Android, en este curso se ha empleado el IDE Eclipse.
Para enseñarle a programar para iPhone, en este curso se ha empleado el IDE XCode.
Este curso tiene el objetivo de acercarle al mundo de la programación y, dentro de este, al mundo del desarrollo de aplicaciones para dispositivos móviles, ya que, aparentemente, son el principal mercado de software a medio y largo plazo.
Ángel Arias
Ángel Arias es un consultor informático con más de 12 años de experiencia en sector informático. Con experiencia en trabajos de consultoría, seguridad en sistemas informáticos y en implementación de software empresarial, en grandes empresas nacionales y multinacionales, Ángel se decantó por el ámbito de la formación online, y ahora combina su trabajo como consultor informático, con el papel de profesor online y autor de numerosos cursos online de informática y otras materias. Ahora Ángel Arias, también comienza su andadura en el mundo de la literatura sobre la temática de la informática, donde ,con mucho empeño, tratará de difundir sus conocimientos para que otros profesionales puedan crecer y mejorar profesional y laboralmente.
Lee más de ángel Arias
Aprende a programar en C# Calificación: 5 de 5 estrellas5/5Bases de Datos con MySQL Calificación: 4 de 5 estrellas4/5Aprende a Programar con Java Calificación: 4 de 5 estrellas4/5Programación y Lógica Proposicional Calificación: 4 de 5 estrellas4/5Computación en la Nube Calificación: 4 de 5 estrellas4/5Aprende a Programar para Android Calificación: 5 de 5 estrellas5/5Curso de Programación y Análisis de Software Calificación: 4 de 5 estrellas4/5Aprende sobre la Ingeniería de Software Calificación: 0 de 5 estrellas0 calificacionesLas Estafas Digitales Calificación: 5 de 5 estrellas5/5Aprende a Programar a Python Calificación: 0 de 5 estrellas0 calificacionesIngeniería y Arquitectura del Software Calificación: 3 de 5 estrellas3/5Las Nuevas Tecnologías y el Marketing Digital Calificación: 3 de 5 estrellas3/5Curso de Introducción a la Administración de Bases de Datos Calificación: 3 de 5 estrellas3/5Aprende a Programar en Python Calificación: 5 de 5 estrellas5/5Aprende a Desarrollar Videojuegos Calificación: 3 de 5 estrellas3/5Curso de Programación con Java - 2ª Edición Calificación: 5 de 5 estrellas5/5Aprende a Programar en ASP .NET y C# Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesCurso de Marketing Online Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con Java Calificación: 4 de 5 estrellas4/5Curso de Programación de Apps. Android y iPhone Calificación: 5 de 5 estrellas5/5Aprende a Programar ASP .NET y C# - Segunda Edición Calificación: 0 de 5 estrellas0 calificacionesAprende Programación Web con PHP y MySQL Calificación: 4 de 5 estrellas4/5Curso de Programación y Análisis de Software - 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar con Android Calificación: 3 de 5 estrellas3/5Aprende sobre la Ingeniería del Software Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar con Ajax Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con iOS Calificación: 4 de 5 estrellas4/5Curso de Programación y Análisis de Software - Tercera Edición Calificación: 0 de 5 estrellas0 calificaciones
Relacionado con Curso de Programación de Apps. Android y iPhone
Libros electrónicos relacionados
Curso de Programación de Apps. Android y iPhone Calificación: 5 de 5 estrellas5/5Curso de Programación y Análisis de Software Calificación: 4 de 5 estrellas4/5Aprende a Programar en ASP .NET y C# Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación y Análisis de Software - 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesDesarrollo Web en Java Calificación: 3 de 5 estrellas3/5PHP: Programación web avanzada para profesionales Calificación: 0 de 5 estrellas0 calificacionesCurso de Ingeniería de Software Calificación: 4 de 5 estrellas4/5Firebase: trabajar en la nube Calificación: 0 de 5 estrellas0 calificacionesEl gran libro de Android: 7ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprender Javascript Avanzado con 100 ejercicios prácticos Calificación: 5 de 5 estrellas5/5El gran libro de Android Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con iOS Calificación: 4 de 5 estrellas4/5Aprende a Desarrollar con Spring Framework Calificación: 3 de 5 estrellas3/5Curso de Programación con Java - 2ª Edición Calificación: 5 de 5 estrellas5/5AngularJS: Conviértete en el profesional que las compañías de software necesitan. Calificación: 4 de 5 estrellas4/5Diseño de Software Calificación: 0 de 5 estrellas0 calificacionesProgramación Orientada a Objetos en JAVA Calificación: 0 de 5 estrellas0 calificacionesUF2405 - Modelo de programación web y bases de datos Calificación: 0 de 5 estrellas0 calificacionesBackbone JS Calificación: 0 de 5 estrellas0 calificacionesComputadores para bases de datos. IFCT0310 Calificación: 0 de 5 estrellas0 calificacionesOCA Java 8 Programmer I Teoría y Práctica Para Certificación Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar Swift - Tercera Edición Calificación: 0 de 5 estrellas0 calificacionesEl gran libro de programación avanzada con Android Calificación: 0 de 5 estrellas0 calificacionesProcessing: Desarrollo de interfaces de usuario, aplicaciones de visión artificial e IoT para Arduino y ESP8266 Calificación: 5 de 5 estrellas5/5Lenguajes de definición y modificación de datos sql. IFCT0310 Calificación: 0 de 5 estrellas0 calificacionesAdministración básica de bases de datos con ORACLE 12c SQL: Prácticas y ejercicios Calificación: 0 de 5 estrellas0 calificacionesComputación en la Nube Calificación: 5 de 5 estrellas5/5Seguridad en Bases de Datos y Aplicaciones Web Calificación: 5 de 5 estrellas5/5
Programación para usted
Excel de la A a la Z: El Manual Práctico Paso a Paso de Microsoft Excel para Aprender Funciones Básicas y Avanzadas, Fórmulas y Gráficos con Ejemplos Fáciles y Claros Calificación: 0 de 5 estrellas0 calificacionesPython Paso a paso: PROGRAMACIÓN INFORMÁTICA/DESARROLLO DE SOFTWARE Calificación: 4 de 5 estrellas4/5GuíaBurros Microsoft Excel: Todo lo que necesitas saber sobre esta potente hoja de cálculo Calificación: 4 de 5 estrellas4/5Python a fondo Calificación: 5 de 5 estrellas5/5VBA Excel Guía Esencial Calificación: 5 de 5 estrellas5/5Aprender a programar con Excel VBA con 100 ejercicios práctico Calificación: 5 de 5 estrellas5/5Tablas dinámicas y Gráficas para Excel: Una guía visual paso a paso Calificación: 0 de 5 estrellas0 calificacionesPython para principiantes Calificación: 5 de 5 estrellas5/5JavaScript: Guía completa Calificación: 4 de 5 estrellas4/5Aprende programación Python: python, #1 Calificación: 0 de 5 estrellas0 calificacionesHTML para novatos Calificación: 5 de 5 estrellas5/5El gran libro de Python Calificación: 5 de 5 estrellas5/5Curso básico de Python: La guía para principiantes para una introducción en la programación con Python Calificación: 0 de 5 estrellas0 calificacionesFundamentos De Programación Calificación: 5 de 5 estrellas5/5Programación (GRADO SUPERIOR): PROGRAMACIÓN INFORMÁTICA/DESARROLLO DE SOFTWARE Calificación: 4 de 5 estrellas4/5Aprendizaje automático y profundo en python: Una mirada hacia la inteligencia artificial Calificación: 0 de 5 estrellas0 calificacionesProgramación orientada a objetos con C++, 5ª edición. Calificación: 5 de 5 estrellas5/5Linux Essentials: una guía para principiantes del sistema operativo Linux Calificación: 5 de 5 estrellas5/5Arduino. Trucos y secretos.: 120 ideas para resolver cualquier problema Calificación: 5 de 5 estrellas5/5Aprender PHP, MySQL y JavaScript Calificación: 5 de 5 estrellas5/5Todo el mundo miente: Lo que internet y el big data pueden decirnos sobre nosotros mismos Calificación: 4 de 5 estrellas4/5Tablas dinámicas para todos. Desde simples tablas hasta Power-Pivot: Guía útil para crear tablas dinámicas en Excel Calificación: 0 de 5 estrellas0 calificacionesPython Aplicaciones prácticas Calificación: 4 de 5 estrellas4/5Ortografía para todos: La tabla periódica de la ortografía Calificación: 5 de 5 estrellas5/5Controles PLC con Texto Estructurado (ST): IEC 61131-3 y la mejor práctica de programación ST Calificación: 3 de 5 estrellas3/5AngularJS: Conviértete en el profesional que las compañías de software necesitan. Calificación: 4 de 5 estrellas4/5115 Ejercicios resueltos de programación C++ Calificación: 3 de 5 estrellas3/5Aprende a Programar en C++ Calificación: 5 de 5 estrellas5/5Arduino para Principiantes Calificación: 4 de 5 estrellas4/5
Comentarios para Curso de Programación de Apps. Android y iPhone
5 clasificaciones0 comentarios
Vista previa del libro
Curso de Programación de Apps. Android y iPhone - Ángel Arias
TABLA DE CONTENIDOS
TABLA DE CONTENIDOS2
NOTAS DEL AUTOR13
LA PROGRAMACIÓN16
MOTIVACIÓN16
PROGRAMACIÓN18
ESTRUCTURA INTERNA DE UN ORDENADOR21
PROCESAMIENTO DE DATOS24
LÓGICA DE PROGRAMACIÓN26
FORMALISMO27
DEFINICIÓN DE ALGORITMO28
IMPLEMENTACIÓN29
ANÁLISIS DE ALGORITMOS29
CLASIFICACIÓN30
CLASIFICACIÓN POR METODOLOGÍA32
LA PROGRAMACIÓN LINEAL33
CLASIFICACIÓN POR CAMPO DE ESTUDIO33
CLASIFICACIÓN POR COMPLEJIDAD34
UN APUNTE HISTÓRICO34
LÓGICA BINARIA35
OPERACIONES35
APRENDIZAJE39
ALGORITMOS42
FUNDAMENTOS43
LÓGICA DE PROGRAMACIÓN53
ALGORITMO54
ESTRUCTURAS DE MANIPULACIÓN DE DATOS57
ESTRUCTURAS BÁSICAS58
VARIABLES Y CONSTANTES58
INSTRUCCIONES60
ESTRUCTURAS DE CONTROL61
FUNCIONES64
ARRAYS65
OPERACIONES ARITMÉTICAS66
ARITMÉTICA67
OPERACIONES COMPLEJAS68
CONCLUSIÓN69
PSEUDO CÓDIGO70
CONSTANTES Y VARIABLES70
TIPOS DE VARIABLES71
MODELO DE PSEUDO-CÓDIGO71
EJEMPLO DE PROGRAMA EN PSEUDO-CÓDIGO72
ASIGNACIÓN DE VALORES A LAS VARIABLES74
EXPRESIONES EN PSEUDO-CÓDIGO75
COMANDO ALGORITMO75
COMANDO VAR76
COMANDO INICIO76
ORIENTACIÓN A OBJETOS77
CONCEPTOS78
HISTORIA Y EVOLUCIÓN DE LA PROGRAMACIÓN 87
ENSAMBLADOR87
FORTRAN88
PASCAL88
COBOL89
LENGUAJE C.89
C++90
JAVA, C #90
PHP91
PERL, PYTHON, RUBY91
SIMILITUDES Y DIFERENCIAS92
INTRODUCCIÓN A LAS BASES DE DATOS94
CONCEPTOS INICIALES DE BASES DE DATOS95
MODELO CONCEPTUAL DE BASES DE DATOS100
INGENIERÍA DE BASES DE DATOS106
USANDO MYSQL117
DATA DEFINITION LANGUAGE EN MYSQL119
MANIPULACIÓN DE DATOS EN MYSQL126
SENTENCIA SELECT EN MYSQL132
UNIONES EN MYSQL140
TÓPICOS EN MYSQL147
VISTAS EN BASES DE DATOS153
PROCEDIMIENTOS Y FUNCIONES EN MYSQL155
COMANDOS DE PROGRAMACIÓN EN MYSQL159
TRIGGERS162
LAS TRANSACCIONES EN LAS BASES DE DATOS 166
LOS ÍNDICES EN MYSQL170
COMANDOS DCL EN MYSQL173
BACKUP Y SEGURIDAD CON MYSQL176
DISPOSITIVOS DE ALMACENAMIENTO DE BASES DE DATOS179
179
MATRIZ REDUNDANTE DE DISCOS INDEPENDIENTES (RAID)
185
REGISTROS, ARCHIVOS Y ORGANIZACIONES DE ARCHIVOS PRIMARIOS EN BASES DE DATOS 196
ESTRUCTURAS DE INDEXACIÓN PARA ARCHIVOS DE BASES DE DATOS 201
ALGORITMOS PARA EL PROCESAMIENTO Y OPTIMIZACIÓN DE CONSULTAS 205
TEORÍA DEL PROCESAMIENTO DE TRANSACCIONES EN LAS BASES DE DATOS 210
CONCURRENCIA DE TRANSACCIONES EN BASES DE DATOS 214
RECUPERACIÓN DE BASES DE DATOS216
SEGURIDAD EN BASES DE DATOS219
PROYECTO FÍSICO Y AJUSTES223
OPEN DATABASE CONNECTIVITY (ODBC)228
CONCEPTOS INICIALES Y ACCESO A TRAVÉS DE LA LÍNEA DE COMANDOS EN SQLITE 231
BASES DE DATOS DISTRIBUIDAS234
CONCLUSIONES FINALES DE ESTE BLOQUE236
INTRODUCCIÓN238
ESTRUCTURA GENERAL DE LA PLATAFORMA ANDROID
242
ARQUITECTURA DE ANDROID243
APLICACIONES244
BIBLIOTECAS244
ANDROID RUNTIME245
LINUX KERNEL246
INSTALANDO EL ECLIPSE Y ANDROID247
NUESTRA PRIMERA APLICACIÓN EN ANDROID 269
USANDO WIDGETS292
DESARROLLANDO UNA APLICACIÓN SIMPLE DE COMPRAS 308
DESARROLLANDO UNA APLICACIÓN PARA CALCULAR EL SALARIO
(CON RADIOBUTTON)315
DESARROLLANDO UNA APLICACIÓN PARA CALCULAR EL SALARIO
(CON SPINNER)326
DESARROLLANDO UNA APLICACIÓN DE LISTA TELEFÓNICA 332
DESARROLLANDO UNA APLICACIÓN QUE VISUALIZA IMÁGENES 338 EL WIDGET GALLERY 350
EL WIDGET PROGRESSBAR363
EL WIDGET DATEPICKER371
EL WIDGET TIMEPICKER375
CAMBIANDO LOS LAYOUTS379
DESARROLLANDO UNA APLICACIÓN DE DAR DE ALTA388
TRABAJANDO CON MENÚS EN UNA APLICACIÓN 417
ENTENDIENDO MEJOR LA CLASE ALERTDIALOG 428
PROPIEDADES Y EVENTOS DE LOS COMPONENTES QUE HEMOS TRATADO 433
CONCLUSIÓN DE ESTE BLOQUE460
UNA JERARQUÍA DE OBJETOS DEL IPHONE463
CLASES DE NS464
CLASES DE IU465
VENTANAS Y VISTAS465
CREACIÓN DE OBJETOS468
ARGUMENTOS469
CREAR MÉTODOS DE MANERA ALTERNATIVA470
GESTIÓN DE LA MEMORIA471
LA ALTERNATIVA AUTORELEASE472
RETENER Y CONSERVAR473
EL EVENTO RESPUESTA474
EL ENTORNO DE DESARROLLO475
LA ESTRUCTURA DEL SDK476
INSTALAR EL XCODE478
INSTALAR EL SDK481
INTRODUCCIÓN A XCODE483
LA ESTRUCTURA DE XCODE484
COMPILACIÓN Y EJECUCIÓN EN XCODE486
LA CREACIÓN DE UN PRIMER PROYECTO EN XCODE: HOLA MUNDO
487
ENTENDIENDO EL MAIN.M487
COMPRENDER EL APPLICATION DELEGATE490
EL ENCABEZADO DEL ARCHIVO491
EL ARCHIVO DE CÓDIGO FUENTE492
ESCRIBIR EL CÓDIGO493
EN LA VENTANA494
ACERCA DE LOS FRAMES494
ACERCA DE LAS ETIQUETAS495
EJECUCIÓN DEL HELLO WORLD!495
LIMITACIONES DE LA PLATAFORMA496
LÍMITES DE ALMACENAMIENTO496
LÍMITES DE ACCESO A DATOS497
LÍMITES DE MEMORIA497
LÍMITES DE LA INTERACCIÓN498
LÍMITES DE POTENCIA498
LÍMITES DE LA APLICACIÓN499
MANEJO DE INTERACCIONES499
EL PARADIGMA MVC501
LA CREACIÓN DE NUESTRO PROYECTO MVC505
CREAR EL CONTROLADOR DE VISTA505
OUTLETS509
ACCIONES510
AÑADIR ACTIONS Y OUTLETS A SU CONTROLADOR DE VISTA 511
PROPIEDADES EN OBJECTIVE-C513
EJEMPLO BÁSICO DE UNA APLICACIÓN CON GCC 518
MI PRIMER PROGRAMA: CLASES, OBJETOS Y MÉTODOS 518
UN PERRO CON MÁS OPCIONES524
HERENCIA541
POLIMORFISMO, TYPING DINÁMICO Y BINDING DINÁMICO 558
INTRODUCCIÓN A OBJETIVE-C561
ELEMENTOS DE LA SINTAXIS DE OBJECTIVE-C565
RUNTIME SYSTEM565
OBJETOS565
DYNAMIC TYPING (TIPEO DINÁMICO)566
OBJECT MESSAGING (MENSAJES CON OBJETOS)566
MESSAGES TO NIL567
DYNAMIC BINDING568
MESSAGE (MENSAJE)568
MENSAJE CON ARGUMENTOS569
MENSAJES ANIDADOS570
MENSAJES DIRIGIDOS571
DEFINICIÓN DE CLASE573
MÉTODOS DE CLASE575
LA INTERFAZ576
EJECUCIÓN DE LA APLICACIÓN579
LO QUE NOS ESTAMOS PERDIENDO581
PROPIEDADES581
CONFIGURACIÓN DE UNA PROPIEDAD582
OTRA FORMA DE NOTACIÓN585
PROTOCOLO Y CATEGORÍAS585
CATEGORÍAS586
PROTOCOLOS588
PROTOCOLOS FORMALES589
PROTOCOLOS INFORMALES590
IMPLEMENTACIÓN DE UN PROTOCOLO591
CONFORMIDAD CON UN PROTOCOLO591
MANEJO DE EXCEPCIONES (EXCEPTION HANDLING)591
ESTRUCTURAS DE CONTROL593
BUCLES595
PERSISTENCIA DE DATOS597
CREACIÓN DE UN PROYECTO603
INTRODUCCIÓN A XCODE611
ÁREA DE NAVEGACIÓN DE ARCHIVOS614
ÁREA DE EDICIÓN DE ARCHIVOS617
UTILIDADES DE LA ZONA618
ÁREA DE DEPURACIÓN619
BARRA DE HERRAMIENTAS620
CONSTRUCCIÓN DE PANTALLAS623
ARQUITECTURA DE INTERFACES623
LA CONSTRUCCIÓN DE LA PANTALLA623
LA CONSTRUCCIÓN DE LA PANTALLA DE CONTROL625
NAVEGACIÓN ENTRE PANTALLAS635
INCLUYENDO NAVIGATIONCONTROLLER637
APILAMIENTO DE PANTALLAS639
DESCRIPCIÓN DEL CONTROL641
INTEROPERABILIDAD CON CÓDIGO NATIVO E INTEGRACIÓN CON IOS 645
INICIO647
OBJECTIVE-C -> JAVASCRIPT651
JAVASCRIPT -> OBJECTIVE-C654
REFERENCIA BIBLIOGRÁFICA661
ACERCA DEL AUTOR663
NOTAS DEL AUTOR
Esta publicación está destinada a proporcionar el material útil e informativo. Esta publicación no tiene la intención de conseguir que usted sea un maestro de las bases de datos, sino que consiga obtener un amplio conocimiento general de las bases de datos para que cuando tenga que tratar con estas, usted ya pueda conocer los conceptos y el funcionamiento de las mismas. No me hago responsable de los daños que puedan ocasionar el mal uso del código fuente y de la información que se muestra en este libro, siendo el único objetivo de este, la información y el estudio de las bases de datos en el ámbito informático. Antes de realizar ninguna prueba en un entorno real o de producción, realice las pertinentes pruebas en un entorno Beta o de prueba.
El autor y editor niegan específicamente toda responsabilidad por cualquier responsabilidad, pérdida, o riesgo, personal o de otra manera, en que se incurre como consecuencia, directa o indirectamente, del uso o aplicación de cualesquiera contenidos de este libro.
Todas y todos los nombres de productos mencionados en este libro son marcas comerciales de sus respectivos propietarios. Ninguno de estos propietarios han patrocinado el presente libro.
Procure leer siempre toda la documentación proporcionada por los fabricantes de software usar sus propios códigos fuente. El autor y el editor no se hacen responsables de las reclamaciones realizadas por los fabricantes.
LÓGICA DE PROGRAMACIÓN Y
BASES DE DATOS
INTRODUCCIÓN
Con la evolución de la tecnología cada vez más personas tienen acceso a un ordenador, ya sea en su casa, en la escuela, en el trabajo o en cualquier otro lugar. Los usuarios más curiosos pueden plantearse preguntas como: ¿cómo consiguen hacer esto?
, ¿como podría hacerlo o aprenderlo yo?
, ¿cómo es un ordenador internamente?
Muchos se han aventurado a buscar respuestas de sus auto- preguntas pero no siempre es fácil encontrar lo que se busca. En este libro, el lector tiene la oportunidad de entender cómo funciona esto.
El objetivo de este libro es servir como base a cualquiera que desee introducirse, o simplemente unirse, al maravilloso mundo de la programación, incluso si usted tiene pocos o ningún conocimiento sobre la materia.
Este libro también puede servir como una forma de enriquecimiento cultural sobre temas ya olvidados, ya que aborda aspectos de la arquitectura de los procesadores y ordenadores, los cálculos, la lógica y las matemáticas, hasta una breve historia de los lenguajes de programación y programación básica de algoritmos.
Este libro también está dirigido a aquellos que quieran participar en la actividad de la comunidad de producción de software libre pero que no han recibido capacitación técnica del género.
LA PROGRAMACIÓN
––––––––
MOTIVACIÓN
En estos días, no saber cómo trabajar con un ordenador es considerado como un tipo de analfabetismo y el coste por no saber cómo usar un ordenador puede ser muy elevado.
Cuando usamos los equipos informáticos podemos hacer muchas cosas. Un adolescente puede utilizar Internet para enviar un mensaje, un estudiante puede usar una hoja de cálculo para realizar el cálculo de un promedio o la cantidad de puntos que necesita para aprobar cada materia, un cocinero puede guardar sus recetas en un editor de texto como Word, etc. De hecho, la cantidad de productos especializados es tan grande que si nos fijamos bien seguramente encontrará algún programa que haga algo muy parecido a lo que quiera realizar.
El problema es que a veces queremos hacer algo específico: queremos un programa para hacer algo que nos va a servir únicamente a nosotros o a nuestra empresa. En este caso, en lugar de comprar uno de los muchos programas que se ofertan en el mercado, desarrollaremos nuestro propio programa. Esto requiere el dominio de una nueva forma de trabajar con el equipo: la programación. Nuestro motivo puede ser un negocio, un proyecto de la escuela, un pasatiempo o simple curiosidad. Hoy en día, un programa se puede hacer de varias maneras. Puede, por ejemplo, modificar ligeramente el comportamiento de la aplicación a través de macros, como se realiza en programas como Microsoft Word. Usted puede hacer incluso modificaciones
mayores a través de lenguajes integrados, como también se puede hacer en los programas de Microsoft Office, o incluso juegos de ordenador como Neverwinter Nights. También puede coger un programa de código abierto existente o software libre y modificarlo. O puede empezar de cero y realizar la programación de prácticamente todo, desde luego con la ayuda de las bibliotecas disponibles que son parte del trabajo.
Para programar usted tiene muchas opciones: paquetes que se pueden extender con macros o lenguajes integrados, entornos de programación point-and-click, lenguajes más fáciles de aprender y lenguajes más difíciles, pero con gran poder o características apropiadas para sistemas grandes. En cualquier caso, el objetivo detrás de todo esto es el mismo: programar es dar órdenes a un ordenador, mostrar cómo este debe reaccionar ante el usuario y cómo debe procesar los datos disponibles.
Prácticamente no hay límites a lo que se puede hacer con un ordenador. Los ordenadores ayudan a la gente a hablar, existen aparatos de control, envío de información, entre otros aspectos. Aún algo más difícil, cómo simular una emoción o inteligencia, se estudia con diligencia en todo el mundo. Algunos de los problemas son muy grandes y requieren la construcción de un gran equipo. Otros son tan simples que podemos resolverlos en equipos normales. La noción del tamaño de un problema también cambia con el tiempo: así el chip que se utilizaba en los ordenadores personales en el año 1988, el w:Z80 , ahora se utiliza en dispositivos como faxes.
Hoy en día es difícil imaginar un área de actividad humana en la que el uso de los ordenadores no sea deseable. Así, el dominio de la programación es dictada sustancialmente por la imaginación y la creatividad. Podemos decir que la gran ventaja de saber programar es la capacidad de crear lo que se quiera cuando se quiera. No sólo para los PC sino también para los teléfonos
móviles, PDAs y otros. Por supuesto, requiere un poco de esfuerzo pero para muchos este esfuerzo es en realidad un reto cuya recompensa es ver su idea convertida en realidad.
––––––––
PROGRAMACIÓN
Probablemente ya ha escuchado la palabra programación, conoce su significado, pero probablemente no sea consciente de lo que hace, cómo se hace y quién lo hace. La programación es fácil y divertida, la dificultad para la mayoría de los principiantes es comenzar a entender cómo funciona un ordenador.
Bueno, un ordenador puede entenderse de varias maneras. Dentro de ellos están las señales electrónicas. Los humanos que los diseñan generalmente piensan en estas señales como 1
y 0
. En un momento, empezamos a pensar en algo que se conoce como lenguaje de máquina, es decir, secuencias de 1
y 0
, normalmente escritos como números enteros, que indican un cierto comportamiento, tales como la suma de dos números. Para hacerlo más fácil aún, este lenguaje máquina está normalmente transcrito por el lenguaje ensamblador o de montaje que describe las acciones que una computadora puede hacer a través de w: mnemotécnicos como ADD y MOV. Sin embargo, desde hace algún tiempo nosotros hacemos funcionar un ordenador a través de programas escritos en lenguajes de programación que tratan de hacer la tarea de explicar lo que el equipo tiene que hacer más fácil a los seres humanos, si bien, debido a la alta especialización del lenguaje, sólo unos pocos de ellos lo entienden. Todos los lenguajes de programación tienen esencialmente el mismo propósito que es permitir al programador dar instrucciones a la máquina.
En nuestro mundo cotidiano la comunicación se hace de una manera natural y rara vez somos conscientes de las reglas que aplicamos en nuestro idioma. El objetivo de aprender un lenguaje de programación es exactamente el mismo: la aplicación de normas llegando a estar tan arraigadas en nuestra mente que se realice de forma inconsciente (abstraer). Un buen programador entiende los entresijos
de la lengua que utiliza e incluso puede ver la belleza o la fealdad de un código, de la misma forma que a veces un texto nos gusta no por su contenido sino por la forma en que fue escrito.
Los lenguajes se crean con dos objetivos: lenguajes de propósito general, que sirven para hacer cualquier cosa, y lenguajes de uso específico. Si quiere hacer un programa que se ocupe de problemas estadísticos, probablemente lenguajes como R
, que es un lenguaje creado específicamente para este uso, sean el más adecuado. Si usted desea hacer un programa para calcular la nómina de una empresa, probablemente lenguajes como COBOL, C, C + + o Java, que son lenguajes de uso general, serán los adecuados.
Un programa informático
Un programa de un ordenador es como una receta de cocina: es una secuencia de pasos que se deben realizar. Si los equipos cocinaran en lugar de procesar los datos, un programa típico podría ser:
PROGRAMA FREIR_HUEVO
RESERVAR HUEVO, PAN, SAL, MANTEQUILLA; USAR COCINA;
COLOCAR SARTEN EN COCINA;
PONER LA MANTEQUILLA EN LA SARTÉN; ENCENDER COCINA;
ESPERAR A QUE LA MANTEQUILLA SE CALIENTE; ROMPER EL HUEVO;
DERRAMAR EL HUEVO EN LA SARTEN; PONER SAL EN EL HUEVO;
ESPERAR A QUE EL HUEVO SE FRÍA; APAGAR COCINA;
SERVIR EL HUEVO; FIN PROGRAMA
Sin embargo, los programas de ordenador trabajan con datos y un programa real típico sería (usando Python)
def sumar (num1, num2): return num1 + num2
Este programa (o, más bien, esta función) devuelve la suma de dos números.
CÓMO PROGRAMAR
ESTRUCTURA INTERNA DE UN ORDENADOR
Un equipo mínimo consta de tres unidades básicas:
Procesador , como el nombre implica, es el componente principal del procesamiento;
Memoria , que mantiene datos y programas;
Los dispositivos de entrada y salida ( Input / Output ), tales como el teclado, el monitor o la impresora .
En un ordenador personal, estos componentes se colocan normalmente en una placa base .
Es importante tener en cuenta que los dispositivos llamados de memoria secundaria se comunican con la parte principal del ordenador a través de dispositivos de entrada y salida. Por lo tanto, una unidad de disco duro sólo se puede utilizar si está conectado a la placa base a través de una interfaz (SCSI o SATA, por ejemplo).
Por lo general, representamos un ordenador de manera abstracta mediante un diagrama muy simple que muestra una unidad de procesamiento capaz de utilizar los datos que proceden o deben ser almacenados tanto en la memoria como en dispositivos de entrada y salida:
Figura 1: Esquema de un ordenador genérico
Figura 2: Esquema de una placa genérica
Antes de intentar averiguar que sistema es el representado en las imágenes, vamos a explicarlo para que el lector comprenda mejor como funciona un ordenador.
El esquema tiene dos dispositivos de entrada (PCI Express - aquellos en los que ponemos nuestra tarjeta gráfica, tarjeta de red o tarjeta de sonido ...), cuatro pistas de transferencia de datos (son muchas más en un ordenador actual), donde circulan los datos, probablemente codificados, de las entradas dirigidas a la central de procesamiento (CPU o procesador). Entonces los millones de transistores existentes dentro de esa caja, procesarán y crearán nuevos datos que serán distribuidos por la red interna del PC, de acuerdo con la clasificación presentada en los datos de entrada. El procesador puede almacenar datos en la memoria RAM y la memoria caché. Los datos menos usados serán almacenados en la memoria RAM y para los datos de acceso frecuente se usará la caché. Los Jumpers controlan, además de la velocidad de
procesamiento, qué tipo de entradas pueden generar datos, entre otras cosas. El mismo proceso ocurre con los datos que se devuelven al dispositivo de E / S . Et voilà, he aquí una explicación muy, muy resumida de toda la teoría de procesamiento de un ordenador.
Ampliando un poco más, los dispositivos periféricos, como impresoras y escáneres, acceden también al procesador. Actualmente los dispositivos no están controlados por la CPU sino por una memoria EEPROM llamada BIOS .
––––––––
PROCESAMIENTO DE DATOS
El procesador es una unidad central del sistema informático, llamada CPU (Unidad Central de Procesamiento). Su función es interpretar y ejecutar instrucciones.
La unidad de medida de la velocidad de un procesador es Hz (hercios). El Hertz es la unidad de medición de frecuencia, que en física se define como el número de ciclos que se producen por unidad de tiempo - la frecuencia de un reloj es 1/3600 Hz, es decir, se tarda 1 hora en dar una vuelta completa. En la mayoría de los ordenadores modernos, la velocidad media es de 1 GHz, o mil millones de ciclos de reloj por segundo, o 1000000000 hertz o, análogamente, mil millones de vueltas en un reloj en 1 segundo. En nuestro ejemplo, 01 hertz puede llevar por lo menos 01 bits (1 información), para entenderlo 1 bit (1 Hz) puede ser comparado con 1 letra de este texto, con lo que los ordenadores que funcionan con 2 mil millones de letras
por segundo ( 02 GHz) pueden leer un libro más rápido que otro que sólo puede leer mil millones de letras
(01 GHz).
Figura 2 - Esquema de un procesador genérico
El procesador está compuesto por millones de transistores, cada uno de los cuales procesa un bit a la vez, es decir, muestra el estado 1 o el estado 0. Esta diversidad de posibles secuencias crea una gama infinita de instrucciones. De hecho las limitaciones encontradas en la creación de software no son vistas por la CPU, sino por la estructura de la máquina. El procesador, teóricamente, en términos de procesamiento de datos es ilimitado, es decir, no hay límites de procesamiento.
A veces se necesitan varias operaciones matemáticas complejas. Existe, dentro de la CPU, una pequeña sección llamada coprocesador matemático FPU encargada de eso. Pero el procesador no puede existir aisladamente necesita ser conectado por algo
: los BUS del procesador son los caminos
a través de los cuales la información se transmite a los dispositivos y viceversa. Cuanto mayor es el número de buses la transferencia se produce más rápidamente. Hay varias tecnologías y protocolos utilizados en el BUS.
LÓGICA DE PROGRAMACIÓN
Lógica de Programación es la técnica para desarrollar algoritmos (secuencias lógicas) para alcanzar ciertos objetivos dentro de ciertas reglas basadas en la lógica matemática y otras teorías básicas de la ciencia de la computación y que luego se adaptan al lenguaje de programación utilizado por el programador para construir su software.
Un algoritmo es una secuencia no ambigua de instrucciones que se ejecuta hasta que se cumpla cierta condición. Más específicamente, en matemáticas, es el conjunto de procesos (y los símbolos que los representan) para realizar un cálculo.
El concepto de algoritmo se ilustra a menudo con el ejemplo de una receta, aunque muchos algoritmos son más complejos. Pueden repetir los pasos (iterar) o requerir decisiones (tales como comparación ó lógica) hasta que se complete la tarea. Un algoritmo correctamente ejecutado no va a resolver un problema si no se implemente correctamente o si no es apropiado para el problema.
Un algoritmo no representa necesariamente un programa de ordenador sino los pasos necesarios para realizar una tarea. Su aplicación puede llevarse a cabo por un ordenador u otro tipo de robot, incluso por un ser humano. Diferentes algoritmos pueden realizar la misma tarea utilizando un conjunto diferente de instrucciones en menos o más tiempo, espacio o esfuerzo que otros. Esta diferencia puede reflejar la complejidad computacional aplicada, que depende de la estructura de datos adecuada al algoritmo. Por ejemplo, un algoritmo para vestirse puede especificar que se vista en primer lugar por los calcetines y los zapatos después de ponerse los pantalones mientras otro
algoritmo puede especificar que usted debe ponerse primero los zapatos y luego los calcetines y los pantalones. Claramente, el primer algoritmo es más fácil de realizar que el segundo a pesar de que tanto uno como otro conduce al mismo resultado.
El concepto de algoritmo se formalizó en 1936 por la Machine Turing de Alan Turing y por el cálculo lambda de Alonzo Church, que formaron las primeras bases de la informática.
––––––––
FORMALISMO
Un programa de ordenador es esencialmente un algoritmo que le dice al ordenador los pasos específicos y en qué orden deben ser ejecutados, por ejemplo, los pasos a ser seguidos para calcular las notas que se imprimirán en los boletines de los estudiantes de una escuela. Por lo tanto, el algoritmo se puede considerar una secuencia de operaciones que pueden ser simuladas por una máquina de Turing completa.
Cuando uno de los procedimientos de un algoritmo implican el procesamiento de datos, la información se lee desde una fuente de entrada, es procesada y se devuelve un nuevo valor después del procesamiento, que se realiza generalmente con la ayuda de una o más estructuras de datos.
Para cualquier proceso computacional teórico, el algoritmo debe ser rigurosamente definido, especificando la forma en que se comportará en todas las circunstancias. La corrección del algoritmo se puede demostrar matemáticamente, como la cantidad asintótica del tiempo y el espacio (complejidad) que se requieren para su ejecución. Estos aspectos del algoritmo están dirigidos por el análisis de algoritmos. Las implementaciones, sin embargo, pueden estar limitadas a casos concretos.
La forma más sencilla de pensar en un algoritmo es una lista de procedimientos bien definidos, en los que se ejecutan las instrucciones paso a paso desde el principio de la lista, es una idea que se puede ver fácilmente a través de un diagrama de flujo. Tal formalización adopta las premisas de la de programación imperativa, que es una forma mecánica para visualizar y desarrollar un algoritmo. Concepciones alternativas para algoritmos varían en la programación funcional y programación lógica.
––––––––
DEFINICIÓN DE ALGORITMO
Algunos autores restringen la definición de algoritmo para procedimientos que eventualmente terminan. Minsky constató que si el tamaño de un procedimiento no se conoce de antemano, tratar de descubrirlo es un problema indecible ya que el procedimiento puede ser ejecutado hasta el infinito porque nunca se tendrá la respuesta. Alan Turing demostró en 1936 que no hay ninguna máquina de Turing para llevar a cabo este análisis para todos los casos, por lo que no hay algoritmo para realizar tal tarea para todos los casos. Esta condición se conoce ahora como el problema de la parada. Básicamente, esto significa que no existe un programa informático que puede predecir si otro programa del ordenador se detendrá