Contacta con nosotros

Si tienes cualquier pregunta, escríbenos

Programación

Creado por
Alan Zepeda
Nodo Tipo Descripción Visible
Algoritmo
Un  algoritmo  es  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.  Euclides,  el  gran  matemático  griego  que  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).El  profesor  Niklaus  Wirth  —inventor  de  Pascal,  Modula-2  y  Oberon—  tituló  uno  de  sus  más  famosos  libros,  Algoritmos  +  Estructuras  de  datos  =  Programas,  significándonos  que  sólo  se  puede  llegar  a  realizar  un  buen  programa  con  el  diseño  de  un  algoritmo  y  una  correcta  estructura  de  datos.  Esta  ecuación  
será  una  de  las  hipótesis  fundamentales  consideradas  en  esta  obra.
La  resolución  de  un  problema  exige  el  diseño  de  un  algoritmo  que  resuelva  el  problema  propuesto.
Visibilidad
Introducción a la ciencia de la computación y a la programación Visibilidad
Las computadoras
Una  computadora es  un  dispositivo  electrónico  utilizado  para  procesar  información  y  obtener  resultados.
Visibilidad
Lenguaje C++ Historia y características
C++,  Java  y  C#,  los  tres  lenguajes  más  populares  junto  con  C  en  esta  primera  década  del  siglo  XXI son herederos  directos  del  propio  C  con  características  orientadas  a  objetos  y  a  Internet.  Actualmente,  y  aunque  C  sigue  siendo,  tal  vez,  el  más  utilizado  en  el  mundo  de  la  educación  como  primer  lenguaje  de  programación  y  también  copa  un  porcentaje  alto  de  utilización  en  el  campo  profesional,  los  tres  lenguajes  con  características  técnicas  de  orientación  a  objetos  forman  con  C  el  poker  de lenguajes más  empleados  en  el  mundo  educativo,  profesional  y  científico  actual  y  previsiblemente  de  los  próximos  años c++ es  heredero  directo  del  lenguaje  C  que,  a  su  vez,  se  deriva  del  lenguaje  B  [Richards,  1980].  C se  mantiene  como  un  subconjunto  de  C++.  Otra  fuente  de  inspiración,  como señala  su  autor  Bjarne  Stroustrup  [Stroustrup,  1997]
fue  Simula  67  [Dahl,  1972]  del  que  tomó  el  concepto  de  clase  (con  clases  derivadas  y  funciones  virtuales).El  lenguaje  de  programación  C  fue  desarrollado  por  Dennis  Ritchede  AT&T  Bell  Laboratories  que  se  utilizó  para  escribir  y  mantener  el  sistema  operativo  UNIX  (hasta  que apareció  C,  el  sistema  operati-vo  UNIX  fue  desarrollado  por  Ken  Thompson en  AT&T  Bell  Laboratories  mediante  en  lenguaje  en-samblador  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.
Visibilidad
Lenguaje en la programación
Como  se  ha  visto  en  el  apartado  anterior,  para  que  un  procesador  realice  un  proceso  se  le  debe  suministrar  en  primer  lugar  un  algoritmo  adecuado.  El  procesador  debe  ser  capaz  de interpretarel  algoritmo,  lo  que  significa:•  comprender  las  instrucciones  de  cada  paso,•  realizar  las  operaciones  correspondientes.Cuando  el  procesador  es  una  computadora,  el  algoritmo  se  ha  de  expresar  en  un  formato  que  se  denomina  programa,  ya  que  el  pseudocódigo  o  el  diagrama  de  flujo  no  son  comprensibles  por  la  computadora,  aunque  pueda  entenderlos  cualquier  programador.  Un  programa  se  escribe  en  un  lenguaje  de  programación  y  las  operaciones  que  conducen  a  expresar  un  algoritmo  en  forma  de  programa  se  llaman  programación.  Así  pues,  los  lenguajes  utilizados  para  escribir  programas  de  computadoras  son  los  
lenguajes  de  programación y  programadores  son  los  escritores  y  diseñadores  de  programas.  El  proceso  de  traducir  un  algoritmo  en  
pseudocódigo a  un  lenguaje  de  programación  se  denomina codificación,  
y  el  algoritmo  escrito  en  un  lenguaje  de  programación  se  denomina  
código  fuente.En  la  realidad  la  computadora  no  entiende  directamente  los lenguajes  de  programación  sino  que  se  requiere  un  programa  que  traduzca  el  código  fuente  a  otro  lenguaje  que  sí  entiende  la  máquina  directa-
mente,  pero  muy  complejo  para  las  personas;  este  lenguaje  se  conoce  como  
lenguaje  máquina  y  el  código  correspondiente  código  máquina.  Los  programas  que  traducen  el  código  fuente  escrito  en  un  
lenguaje  de  programación  —tal  como  C++—  a  código  máquina  se  denominan  
traductore.  El  proceso  de  conversión  de  un  algoritmo  escrito  en  pseudocódigo  hasta  un  programa  ejecutable  comprensible  por  la  máquina,  se  muestra  en  la  Figura  1.20.Hoy  en  día,  la  mayoría  de  los  programadores  emplean  lenguajes  de programación  como  C++,  C,  C#,  Java,  Visual  Basic,  XML,  HTML,  Perl,  PHP,  Java Script...,  aunque  todavía  se  utilizan,  sobre  todo  profesionalmente,  los  clásicos  COBOL,  FORTRAN,  Pascal  o  el  mítico  BASIC.  Estos  lenguajes  se  denominan  lenguajes  de  alto  nivel  y  permiten  a  los  profesionales  resolver  problemas  convirtiendo  sus algoritmos  en  programas  escritos  en  alguno  de  estos  lenguajes  de  programación.
Visibilidad
Lenguaje unificado
UML  es  un  lenguaje  gráfico  para  modelado  de  programas  de  computadoras.  “Modelado”  significa  como  su  nombre  indica,  crear  modelos  o  representaciones  de  “algo”,  como  un  plano  de  una  casa  o  similar. UML  proporciona  un  medio  de  visualizar  la  organización  de  alto  nivel  de  los  programas  sin  fijarse  con detenimiento  en  los  detalles  del  código  real. El  lenguaje  de  modelado  está  unificado  porque  está  basado  en  varios  modelos  previos  (métodos  de  
Booch,  Rumbaugh  y  Jacobson).  En  la  actualidad  UML  está  adoptado  por  OMG ,  un  consorcio  de  más  de  1.000  sociedades  y  universidades  activas  en  el  campo  de  tecnologías  
orientadas  a  objetos  y  está  dedicado  especialmente  a  unificación  de  estándares.  UML  tiene  una  gran  riqueza  semántica  que  lo  abstrae  de  numerosos  aspectos  técnicos  y  ésa  es  su  gran  fortaleza.  ¿Porqué  necesitamos  UML  en  programación  orientada  a  objetos?  En  primer  lugar,  porqué  UML  nació  como  herramientas  gráficas  y  metodologías  para  implementar  análisis  y  diseño  orientados  a  objetos  y,  en  segundo  lugar,  porque  en  programas  grandes  de  computadoras  es  difícil  entender  el  funcionamiento  de  un  programa  examinando  sólo  su  código  y  es  necesario  ver  cómo  se  relacionan  unas  partes  con  otras.
La  parte  más  importante  de  UML,  al  menos  a  un  nivel  de  iniciación  o  medio  en  programación,  resi-
de en un conjunto rico de  diagramas  gráficos.  Diagramas de clases  que  muestran  las  relaciones  entre  
clases, diagramas de  objetos  que  muestran  cómo  se  relaciona  objetos  específicos  entre  sí,  diagramas  de  casos  de  uso  que  muestran  cómo  los  usuarios  de  un  programa  interactúan  con  el  programa,  etc.  Cuando  se  modelan  clases,  UML  es  de  hecho  estándar  para  representaciones  gráficas.  UML  no  es  un  proceso  de  desarrollo  de  software  sino,  simplemente,  un  medio  para  examinar  el  software  que  se  está desarrollando.  Aunque,  al  ser  un  estándar,  UML  se  puede  aplicar  a  cualquier  tipo  de  lenguaje  de  programación, está  especialmente  adaptado  a  la  POO. 
Visibilidad
Los hardware
Los  dispositivos  de  Entrada/Salida (hadware)  periféricos permiten  la  comunicación  entre  la  computadora  y  el  usuario.
Los  dispositivos  de  entrada,  como  su  nombre  indica,  sirven  para  introducir  datos  (información)  en la  computadora  para  su  proceso.  Los  datos  se  
lee  de  los  dispositivos  de  entrada  y  se  almacenan  en  la  
memoria  central  o  interna.  Los  dispositivos  de  entrada  convierten  la  información  de  entrada  en  señales  
eléctricas  que  se  almacenan  en  la  memoria  central.  Dispositivos  de  entrada  típicos  son  teclados,  lectores  de  tarjetas  perforadas lápices  ópticos,  palancas  de  mando lectores  de códigos  de  barras,  escáneres,  micrófon ,  lectores  de  tarjetas  digitales,  lectores  RFID  (tarjetas  de  identificación  por  radio  frecuencia),  etc. 
Visibilidad
Origen del C++ como lenguaje universal
C s  el  lenguaje  de  programación  de  propósito  general  asociado,  de  modo  universal,  al  sistema  operativo  UNIX.  Sin  embargo,  la  popularidad,  eficacia  y  potencia  de  C,  se  ha  producido  porque  este  lenguaje  
no  está  prácticamente  asociado  a  ningún  sistema  operativo,  ni  a  ninguna  máquina,  en  especial.  Ésta  es  
la  razón  fundamental,  por  la  cual  C,  es  conocido  como  el  
lenguaje  de  programación  de  sistemas,  por  
excelencia
.
C  es  una  evolución  de  los  lenguajes  BCPL  —desarrollado  por  Martin  Richards—  y  B  —desarrolla-
do  por  Ken  Thompson  en  1970—  para  el  primitivo  INIX  de  la  computadora  DEC  PDP-7. c nació  realmente  en  1978,  con  la  publicación  de  .  Desde  su  nacimiento,  C  fue  creciendo  en  popularidad  y  los sucesivos  cambios  en  el  lenguaje  a  lo  largo  de  los  años  junto  a  la  creación  de  compiladores  por  grupos  
no  involucrados  en  su  diseño,  hicieron  necesario  pensar  en  la  estandarización  de  la  definición  del  len-
guaje  C.
Así,  en  1983,  el  American  National  Standard  Institute  (ANSI),  una  organización  internacional  de  
estandarización,  creó  un  comité  (el  denominado  X3J11)  cuya  tarea  fundamental  consistía  en  hacer  
“una  
definición  no  ambigua  del  lenguaje  C,  e  independiente  de  la  máquina”
.  Había  nacido  el  estándar  ANSI  
del  lenguaje  C.  Con  esta  definición  de  C  se  asegura  que  cualquier  fabricante  de  software  que  vende  un  
compilador  ANSI  C  incorpora  todas  las  características  del  lenguaje,  especificadas  por  el  estándar.  Esto  
significa  también  que  los  programadores  que  escriban  programas  en  C  estándar  tendrán  la  seguridad  de  
que  correrán  sus  modificaciones  en  cualquier  sistema  que  tenga  un  compilador  C.
C  es  un  
lenguaje  de  alto  nivel
,  que  permite  programar  con  instrucciones  de  lenguaje  de  propósito  
general.  También,  C  se  define  como  un  lenguaje  de  programación  estructurado  de  propósito  general;  
aunque  en  su  diseño  también  primó  el  hecho  que  fuera  especificado  como  un  lenguaje  de  programación  
de  Sistemas,  lo  que  proporciona  una  enorme  cantidad  de  potencia  y  flexibilidad.
El  estándar  ANSI  C  formaliza  construcciones  no  propuestas  en  la  primera  versión  de  C,  en  especial,  
asignación  de  estructuras  y  enumeraciones.  Entre  otras  aportaciones,  se  definió  esencialmente,  una  nue-
va  forma  de  declaración  de  funciones  (prototipos).  Pero  es,  esencialmente,  la  biblioteca  estándar  de  
funciones,  otra  de  las  grandes  aportaciones.
Hoy,  en  el  siglo  
XXI
,  C  sigue  siendo  uno  de  los  lenguajes  de  programación  más  utilizados  en  la  in-
dustria  del  software,  así  como  en  institutos  tecnológicos,  escuelas  de  ingeniería  y  universidades.  Prácti-
camente  todos  los  fabricantes  de  sistemas  operativos,  Windows,  UNIX,  Linux,  MacOS,  Solaris...,  sopor-
tan  diferentes  tipos  de  compiladores  de  lenguaje  C  y  en  muchas  ocasiones  distribuciones  gratuitas  bajo  
cualquiera  de  los  sistemas  operativos  citados.  Todos  los  compiladores  de  C++  pueden  ejecutar  programas  
escritos  en  lenguaje  C,  preferentemente  si  cumplen  el  estándar  ANSI  C.
 
Visibilidad
programación estructurada
Es  decir,  cada  sentencia  o  instrucción  señala  al  compilador  para  que  realice  alguna  
tarea:  obtener  una  entrada,  producir  una  salida,  sumar  tres  números,  dividir  por  cinco,  etc.  En  resumen,  
un  programa  en  un  lenguaje  procedimental  es  un  conjunto  de  instrucciones  o  sentencias.  En  el  caso  de  
pequeños  programas,  estos  principios  de  organización  (denominados  
paradigma)  se  demuestran  eficientes.  El  programador  sólo  tiene  que  crear  esta  lista  de  instrucciones  en  un  lenguaje  de  programación,  compilar  en  la  computadora  y  ésta,  a  su  vez,  ejecuta  estas  instrucciones.
Cuando  los  programas  se  vuelven  más  grandes,  cosa  que  lógicamente  sucede  cuando  aumenta  la  complejidad  del  problema  a  resolver,  la  lista  de  instrucciones  aumenta  considerablemente,  de  modo  tal  que  el  programador  tiene  muchas  dificultades  para  controlar  ese  gran  número  de  instrucciones.  Los  programadores  pueden  controlar,  de  modo  normal,  unos  centenares  de  líneas  de  instrucciones.  Para  resolver  
este  problema  los  programas  se  descompusieron  en  unidades  más  pequeñas  que  adoptaron  el  nombre  de  
funciones.  De  este  modo  en  un  programa  orientado  a  procedimientos  se  divide  en  funciones,  de  modo  que  cada  función tiene  un  propósito  bien  definido  y  resuelve  una  tarea  concreta,  y  se  diseña  una  interfaz  claramente  definida  (el  prototipo  o  cabecera  de  la  función)  para  su  comunicación  con  otras  funciones. Con  el  paso  de  los  años,  la  idea  de  romper  en  programa  en  funciones  fue  evolucionando  y  se  llegó  al  agrupamiento  de  las  funciones  en  otras  unidades  más  grandes  llamadas  
módulos  sin  embargo,  el  principio  seguía  siendo  el  mismo:  agrupar  
componentes  que  ejecutan  listas  de  instrucciones  (sentencias).  Esta  característica  hace  que  a  medida  que  los  programas  se  hacen  más  grandes  y  complejos,  el  paradigma  estructurado  comienza  a  dar  señales  de debilidad  y  resultando  muy  difícil  terminar  los  programas  de  un  modo  eficiente.  Existen  varias  razones  de  la  debilidad  de  los  programas  estructurados  para  resolver  problemas  complejos.  Tal  vez  las  dos  razones  más  evidentes  son  éstas.  Primero,  las  funciones  tienen  acceso  ilimitado a  los  datos  globales.  Segundo,  las  funciones  inconexas  y  datos,  fundamentos  del  paradigma procedimental  proporcionan  un  modelo  pobre  del  mundo  real.
Visibilidad
Programación orientada
La  programación  orientada  a  objetos,  tal  vez  el  paradigma  de  programación  más  utilizado  en  el  mundo  del  desarrollo  de  software  y  de  la  ingeniería  de  software  del  siglo  XXI,  trae  un  nuevo  enfoque  a  los  retos  que  se  plantean  en  la  programación  estructurada  cuando  los  problemas  a  resolver  son  complejos.  Al  contrario  que  la  programación  procedimental  que  enfatiza  en  los  algoritmos,  la  POO  enfatiza  en  los  da-
tos.  En  lugar  de  intentar  ajustar  un  problema  al  enfoque  
procedimental  de  un  lenguaje,  POO  intenta  ajustar  el  lenguaje  al  problema.  La  idea  es  diseñar  formatos  de  datos  que  se  correspondan  con  las  características  esenciales  de  un  problema. La  idea  fundamental  de  los  lenguajes  orientados  a  objetos  es  combinar  en  una  única  unidad  o  módulo,  tanto  los  datos  como  las  funciones  que  operan  sobre  esos  datos.  Tal  unidad  se  llama  un  objeto.
Las  funciones  de  un  objeto  se  llaman  funciones  miembro  en  C++  o  métodos,  y  son  el  único  medio  para  acceder  a  sus  datos.  Los  datos  de  un  objeto,  se  conocen  también  como  atributos  o  variables  de  instancia.  Si  se  desea  leer  datos  de  un  objeto,  se  llama  a  una  función  miembro  del  objeto.  Se  accede  a  los  datos  y  se  devuelve  un  valor.  No  se  puede  acceder  a  los  datos  directamente.  Los  datos  son  ocultos,  de  modo  que  están  protegidos  de  alteraciones  accidentales.  Los  datos  y  las  funciones  se  dice  que  están encapsulados  en  una  única  entidad.  El  encapsula-miento  de  datos  y  la  ocultación  de  los  datos  son  términos  clave  en  la  descripción  de  lenguajes  orientados  a  objetos. Si  se  desea  modificar  los  datos  de  un  objeto,  se  conoce  exactamente  cuáles  son  las  funciones  que  interactúan  con  las  funciones  miembro  del  objeto.  Ninguna  otra  función  puede  acceder  a  los  datos.  Esto  simplifica  la  escritura,  depuración  y  mantenimiento  del  programa.  Un programa  C++  se  compone  normalmente  de  un  número  de  objetos  que  se  comunican  unos  con  otros mediante  la  llamada  a  otras  funciones  miembro. 
Visibilidad
Representación de información en las computadoras
Una  computadora  es  un  sistema  para  procesar  información  de  modo automático.  Un  tema  vital  en  el  proceso  de  funcionamiento  de  una  computadora  es  estudiar  la  forma  de  representación  de  la  información  
en  dicha  computadora.  Es  necesario  considerar  cómo  se  puede  codificar  la  información  en  patrones  de  bits  que  sean  fácilmente  almacenables  y  procesables  por  los  elementos  internos  de  la  computadora.
Las  formas  de  información  más  significativas  son:  textos,  sonidos,  imágenes  y  valores  numéricos  y,  cada  una  de  ellas  presentan  peculiaridades  distintas.  Otros  temas  importantes  en  el  campo  de  la  programación  se  refieren  a  los  métodos  de  detección  de  errores  que  se  puedan  producir  en  la  transmisión  o  almacenamiento  de  la  información  y  a  las  técnicas  y  mecanismos  de comprensión  de  información  al  objeto  de  que  ésta  ocupe  el  menor  espacio  en  los  dispositivos  de  almacenamiento  y  sea  más  rápida  su  transmisión.
Visibilidad
Sistema operativo
Un  sistema  operativo  SO  es  tal  vez  la  parte  más  importante  del  software  del  sistema  y  es  el  software  que  controla  y  gestiona  los  recursos  del  computador.  En  la  práctica,  el  sistema  operativo  es  la  colección  de  programas  de  computador  que  controla  la  interacción  del  usuario  y  el  hardware  del  computador.  El  sistema  operativo  es  el  administrador  principal  del  computador,  y  por  ello  a  veces,  se  le  compara  con  el  director  de  una  orquesta  ya  que  este  software  es  el  responsable  de  dirigir  todas  las  operaciones  del  computador  y  gestionar  todos  sus  recursos.
Normalmente,  el  sistema  operativo  se  almacena  de  modo  permanente  en  un  chip  de  memoria  de  sólo  lectura  (ROM)  de  modo  que  esté  disponible  tan  pronto  el  computador  se  pone  en  marcha  (“se  enciende”  
o  “se  prende”).  Otra  parte  del  sistema  operativo  puede  residir  en  disco  que  se  almacena  en  memoria  RAM  en  la  inicialización  del  sistema  por  primera  vez  en  una  operación  que  se  llama  carga  del  sistema  (booting).Uno  de  los  programas  más  importante  es  el  sistema  operativo,  que  sirve,  esencialmente,  para  facilitar  la  escritura  y  uso  de  sus  propios  programas.  El  sistema  operativo  dirige  las  operaciones  globales  de  la  computadora,  instruye  a  la  computadora  para  ejecutar  otros  programas  y  controla  el  almacenamiento  y  recuperación  de  archivos  (programas  y  datos)  de  cintas  y  discos.  Gracias  al  sistema  operativo  es  posible  que  el  programador  pueda  introducir  y  grabar  nuevos  programas,  así  como  instruir  a  la  computadora  para  que  los  ejecute.  Los  sistemas  operativos  pueden  ser:  monousuarios  (un  solo  usuario)  y  multiusuarios,  o  tiempo  compartido  (diferentes  usuarios);  atendiendo  al  número  de  usuarios  y  monocarga (una  sola  tarea)  o multitarea  (múltiples  tareas)  según  las  tareas  (procesos)  que  puede  
realizar  simultáneamente.  C++  corre  prácticamente  en  todos  los  sistemas  operativos,  Windows  XP, Windows  95,  Windows  NT,  Windows  2000,  UNIX,  Linux,  Vista...,  y  en  casi  todas  las  computadoras  personales  actuales  PC,  Mac,  Sun,  etc.
Visibilidad
software
El software de  una  computadora  es  un  conjunto  de  instrucciones  de  programa  detalladas  que  controlan  y  coordinan  los  componentes  
hardware de  una  computadora  y  controlan  las  operaciones  de  un  sistema  
informático.  El  auge  de  las  computadoras  en  el  siglo  pasado  y  en  el  actual  siglo  XXI,  se  debe  esencialmente,  al  desarrollo  de  sucesivas  generaciones  de  software  potentes  y  cada  vez  más  amistosas.  Un  programa  de  software  es  un  conjunto  de  sentencias o  instrucciones  al  computador.  El  proceso  de  escritura  o  codificación  de  un  programa  se  denomina  programación  y  las personas  que  se  especializan  en  esta  actividad  se denominan  programadores.  Existen  dos  tipos  importantes  de  software:  software  del  sistema  y  software  de  aplicaciones.  Cada tipo  realiza  una  función  diferente.
Visibilidad
Origen Relación Destino Fecha
Introducción a la ciencia de la computación y a la programación Algoritmo
Introducción a la ciencia de la computación y a la programación Las computadoras
Introducción a la ciencia de la computación y a la programación Lenguaje C++ Historia y características
Introducción a la ciencia de la computación y a la programación Lenguaje en la programación
Introducción a la ciencia de la computación y a la programación Lenguaje unificado
Introducción a la ciencia de la computación y a la programación Los hardware
Introducción a la ciencia de la computación y a la programación Origen del C++ como lenguaje universal
Introducción a la ciencia de la computación y a la programación programación estructurada
Introducción a la ciencia de la computación y a la programación Programación orientada
Introducción a la ciencia de la computación y a la programación Representación de información en las computadoras
Introducción a la ciencia de la computación y a la programación Sistema operativo
Introducción a la ciencia de la computación y a la programación software