Contador Visitas

Buscar este blog

jueves, 24 de febrero de 2011

Estructuras de Control en Programación.


  • Secuenciales: Orden de ejecución de instrucciones de forma secuencial, o sea, una instrucción después de la otra. Esta es la más importante y engloba a las otros dos tipos. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc.
  • Condicionales: Se ejecutan las instrucciones dependiendo de una condición lógica o criterio. El algoritmo al ser ejecutado toma una decisión, ejecutar o no ciertas instrucciones si se cumplen o no ciertas condiciones. Las condiciones devuelven un valor, verdadero o falso, determinado así la secuencia a seguir.
  • Repetitivas: Ejecuta cero o más veces un grupo de instrucciones (bucle). El número de repeticiones está determinado por un número dado, o hasta que deje de cumplirse o se cumpla una condición.

Tipos de Errores en Programación.


  • Sintaxis: Ocurren cuando el código se construye incorrectamente, por ejemplo se escribe mal una sentencia o se omite o se requiere de cierta puntación, o no se escriben estructuras completas como por ejemplo un If sin End If o un For sin Next.  De forma que, dicho error impedirá, tanto al compilador como al intérprete, traducir dicha instrucción, ya que, ninguno de los dos entenderá qué le está diciendo el programador.
  • Matemático: ocurren cuando una sentencia sintácticamente válida intenta una operación que es imposible de realizar, por ejemplo tratar de leer datos de un archivo inexistente o dividir entre 0.
  • Lógica: ocurren cuando una aplicación no realiza lo esperado, este tipo de errores son especialmente difíciles de encontrar porque sintácticamente puede ser código válido y ejecutarse sin realizar ninguna operación inválida pero producir resultados incorrectos siendo la única forma de verificar su funcionamiento es probar y analizar los resultados.

Lenguajes de Programación más Populares a través de la Historia. Descripción y ejemplo.


  • C: Es un equipo de uso general lenguaje de programación desarrollado entre 1969 y 1973 por Dennis Ritchie en los Bell Telephone Laboratories para su uso con el Unix sistema operativo. 


Ejemplo:

largo some_function ( ) ;
/ int * * / other_function ( ) ;

/ * int * / calling_function ( )
{
    tiempo prueba1 ,
    registro  / * int * / test2 ;

    prueba1 = some_function ( ) ,
    si  ( prueba1 > 0 )
          test2 =  0 ;
    más
          test2 = other_function ( ) ;
    retorno test2 ; }



  • Java: Se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.

  • C++: Diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.


Ejemplo:

A continuación se cita un programa de ejemplo Hola mundo escrito en C++:

# include <iostream> // Este header permite usar los objetos que encapsulan los descriptores stdout y stdin: cout(<<) y cin(>>)

using namespace std;

int main()
{
    cout << "Hola mundo" << endl;
    return 0; }


  • PHP: Fue originalmente diseñado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año 1994para mostrar su currículum vítae y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.
Ejemplo:

En el siguiente ejemplo se muestra el típico Hola Mundo, que es una simple impresión por pantalla del mismo mensaje:

<?php
$a = 'Hola Mundo';
echo $a;
?>

  • Visual Basic: Las versiones de Visual Basic para Windows son muy conocidas, pero existe una versión de Microsoft Visual Basic 1.0 para MS-DOS (ediciones Profesional y Estándar) menos difundida y que data de 1992. Era un entorno que, aunque en modo texto, incluía un diseñador de formularios en el que se podían arrastrar y soltar distintos controles.
Ejemplo:

El siguiente fragmento de código muestra un cuadro de mensaje, en una ventana, que dice "Hola mundo!":

Private Sub Form_Load()
    ‘Ejecuta un simple box de mensaje que dice "Hola mundo!"
    MsgBox "Hola mundo!"
End Sub

  • Python: Fue creado a finales de los ochenta por Guido van Rossum en el National Research Institute for Mathematics and Computer Science (CWI), en losPaíses Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. El nombre del lenguaje proviene de la afición de su creador original, Guido van Rossum, por los humoristas británicos Monty Python.

  • Perl: Larry Wall comenzó a trabajar en Perl en 1987 mientras trabajaba como programador en Unisys y anunció la versión 1.0 en el grupo de noticias comp.sources.misc el 18 de diciembre de 1987. El lenguaje se expandió rápidamente en los siguientes años. Perl 2, publicado en 1988, aportó un mejor motor de expresiones regulares. Perl 3, publicado en 1989, añadió soporte para datos binarios.
Ejemplo: 

En Perl, el programa canónico "Hola mundo" es:

#!/usr/bin/perl
print "¡Hola mundo!\n";

  • Delphi: Es un entorno de desarrollo de software diseñado para la programación de propósito general con énfasis en la programación visual. En Delphi se utiliza como lenguaje de programación una versión moderna de Pascal llamada Object Pascal. Es producido comercialmente por la empresa estadounidense CodeGear(antes lo producía Borland), adquirida en mayo de 2008 por Embarcadero Technologies, una empresa del grupo Thoma Cressey Bravo, en una suma que ronda los 30 millones de dólares. En sus diferentes variantes, permite producir archivos ejecutables para Windows, GNU/Linux y la plataforma .NET.

  • Objective-C: A principios de los 80, el software se desarrollaba usando programación estructurada. La programación estructurada se estableció para ayudar a dividir los programas en pequeñas partes, haciendo más fácil el desarrollo cuando la aplicación se volvía muy grande. Sin embargo, como los problemas seguían creciendo al pasar el tiempo, la programación estructurada se volvió menos útil ya que más sentencias tenían que ser escritas una y otra vez, llevando a código spaghetti y dificultando la reutilización de código.

  • Ruby: El lenguaje fue creado por Yukihiro "Matz" Matsumoto, quien empezó a trabajar en Ruby el 24 de febrero de 1993, y lo presentó al público en el año 1995. En el círculo de amigos de Matsumoto se le puso el nombre de "Ruby" (en español rubí) como broma aludiendo al lenguaje de programación "Perl" (perla).
Ejemplo: 

$ irb
irb(main):001:0> puts "Hola mundo"
Hola mundo
=> nil
irb(main):002:0> 1+2
=> 3

  • Javascript: Fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cuál fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. El cambio de nombre coincidió aproximadamente con el momento en que Netscape agregó soporte para la tecnología Java en su navegador web Netscape Navigator en la versión 2.0B3 en diciembre de 1995.
Ejemplo:

Para escribir un Hola mundo en un documento HTML, basta con usar el método write () del objeto documento.

document.write ( '¡Hola mundo!' );
O, usando variables:
var mensaje = "¡Hola mundo!";
document.write (mensaje);
Para mostrar un mensaje de alerta:
alert ( 'Hola mundo!'

  • PL/SQL: (Procedural Language/Structured Query Language) es un lenguaje de programación incrustado en Oracle. PL/SQL soporta todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL.

  • Pascal: Es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.
Ejemplo: 

Suma
 
 program suma; uses crt;                                                         
 var x,s:integer;                                                              
 begin                                                                         
     clrscr;                                                                  
     x:=1;                                                                    
     s:=0;                                                                    
     repeat                                                                   
           s:=s+x;                                                            
           x:=x+1;                                                            
     until x=50;                                                              
     writeln('la suma es  ',s);                                               
end.

  • Lisp: Fue inventado por John McCarthy en 1958 mientras estaba en el Instituto Tecnológico de Massachusetts (MIT). McCarthy publicó su diseño en 1960 en un artículo de Communications of the ACM titulado "funciones recursivas de expresiones simbólicas y su cómputo por la máquina, parte I"1 (la "parte II" nunca fue publicada). Allí mostró que con algunos operadores simples y una notación para las funciones, uno puede construir un lenguaje turing completo para los algoritmos.
Ejemplo: 

Trabajando con listas
*******************************************************************
Definición de la función:
 
  (defun vacia (l)
    (cond ((null l) 1)    ; si la lista esta vacia devuelve 1
          (t 0)))         ; en otro caso (lista llena) devuelve 0
 
Llamada a la función:
 
  (vacia '(1 3 4))        ; La lista no esta vacia, devolvería 0
  (vacia '())             ; La lista esta vacia, devolvería 1
*******************************************************************
(defun último (lista)
  (cond ((null (cdr lista)) (car lista))
        (t (último (cdr lista)))))
 
(último '(1 2 3 4 5 6 7))  ; devuelve el último de la lista: 7
 
 
*******************************************************************
;        ---FACTORIAL----
;Definición matemática
; Factorial(x) =  1                    si x=0   caso base
;                 x*factorial(x-1)     si x>0   caso recursivo
 
;Función factorial hecha con recursividad no final
(defun factorial (n)
   (if (= 0 n)
     1                            ; caso base
     (* n (factorial (- n 1)))))  ; caso recursivo
 
(factorial 4)              ;esto nos devolvería 24=4*3*2*1
 
*******************************************************************

  • ABAP: Fue desarrollado por SAP como lenguaje de informes para SAP R/2 en los años 80, una plataforma que permitía a las grandes corporaciones construir aplicaciones de negocios para gestión de materiales y finanzas. ABAP, muy parecido al COBOL en sus orígenes, originalmente significaba Allgemeiner Berichtsaufbereitungsprozessor, palabras alemanas paraprocesador genérico para la preparación de informes. En sus inicios ABAP incluía el concepto de Bases de datos lógicas, que suministraba un alto nivel de abstracción para el acceso a bases de datos.

  • MATLAB: Fue creado por Cleve Moler en 1984, surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir programas en dicho lenguaje. El lenguaje de programación M fue creado en 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran.
Ejemplo: 

En este ejemplo se diseña un filtro digital paso bajo de Butterworth y se muestra el módulo de su espectro:

close all                                        % Cierra todas las ventanas.
clear all                                        % Borra todas las variables del espacio de trabajo.
clc                                              % Limpia la pantalla.
 
Fc=200;                                          % Frecuencia de corte.
Fm=1000;                                         % Frecuencia de muestreo.
BT=100;                                          % Banda de transición.
Rs=40;                                           % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
 
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs);   % Orden del filtro (función buttord).
[B1,A1]=butter(n1b,wn1);                         % Coeficientes del filtro (función butter).
h1=freqz(B1,A1);                                 % Respuesta en frecuencia (función freqz).
plot(abs(h1))                                    % Representación de la respuesta.

  • Lua:  Fue creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, miembros del Grupo de Tecnología en Computación Gráfica (Tecgraf) en la Pontificia Universidad Católica de Río de Janeiro. Las versiones de Lua anteriores a la 5.0 fueron distribuidas bajo una licencia similar a la BSD, de la versión 5.0 en adelante se utiliza la licencia MIT, compatible con la GPL.

Clasificación de los Lenguajes de Programación, Según:


  • Bajo: Utilizan códigos muy cercanos a los de la máquina, lo que hace la elaboración de programas muy potentes y rápidos, pero son de difícil aprendizaje, además son muy dependientes del Hardware. 

El Lenguaje Máquina es el único lenguaje que la máquina entiende directamente. Utiliza el alfabeto binario que consta de los símbolos "1" y "0" denominados "bits" abreviatura inglesa de números binarios.
  • Intermedio: También llamados Lenguajes Evolucionados, surge con los siguientes objetivos: 
- Facilitar la escritura de Programas.
- Lograr independencia con la máquina (Programas que no dependan del Hardware). 
- Aproximarse al lenguaje natural. 
- Incluye rutinas de uso frecuente.
  • Imperativos: es un paradigma de programación que la describe en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
  • Declarativos: un programa es “declarativo” si describe qué algo está como, más bien que cómo para crearlo. Por ejemplo, HTML los Web pages son declarativos porque describen qué la página debe contener, pero no cómo exhibir realmente la página en una pantalla de computadora.
  • Orientados a Objetos: Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento.
  • Naturales: Este tipo de lenguaje es el que nos permite el designar las cosas actuales y razonar a cerca de ellas, fue desarrollado y organizado a partir de la experiencia humana y puede ser utilizado para analizar situaciones altamente complejas y razonar muy sutilmente. La riqueza de sus componentes semánticos da a los lenguajes naturales su gran poder expresivo y su valor como una herramienta para razonamiento sutil.
  • Primera generación: Los primeros ordenadores se programaban directamente en código binario que puede representarse mediante secuencias de ceros y unos sistemas binarios. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina. 
  • Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más
  • Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas. 
  • Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
  • Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.

Ciclo de Vida del Software


El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados. 


El ciclo de vida básico de un software consta de los siguientes procedimientos:


  • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global. 
  • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar. 
  • Diseño general: requisitos generales de la arquitectura de la aplicación. 
  • Diseño en detalle: definición precisa de cada subconjunto de la aplicación. 
  • Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño. 
  • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones. 
  • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada. 
  • Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales. 
  • Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros. 
  • Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

¿Qué es un Lenguaje de Programación?


Es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

  • El desarrollo lógico del programa para resolver un problema en particular.
  • Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
  • Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
  • Prueba y depuración del programa.
  • Desarrollo de la documentación.


¿Pasos Para Resolver un Problema Usando Algoritmos?


  • Definición del Problema: Está dada por el enunciado del problema, el cuál debe ser claro y completo. Es importante que conozcamos exactamente que se desea del computador; mientras qué esto no se comprenda, no tiene caso pasar a la siguiente etapa.


  • Análisis del Problema: Entendido el problema (que se desea obtener del computador), para resolverlo es preciso analizar: 


Los Datos o resultados que se esperan.
Los Datos de entrada que no suministran.
Proceso al que se requiere someter esos datos a fin de obtener resultados.
Áreas de trabajo, fórmulas y otros recursos necesarios.

  • Selección de La Mejor Alternativa: Analizado el problema, posiblemente tengamos varias formas de resolverlo; lo importante es determinar cuál es la mejor alternativa: la que produce los resultados esperados en el menor tiempo y al menor costo.


  • Diagramación: Una vez que sabemos cómo resolver el problema, pasamos a dibujar gráficamente la lógica de la alternativa seleccionada. Eso es precisamente un Diagrama de Flujo: la representación gráfica de una secuencia lógica de pasos a cumplir por el computador para producir un resultado esperado.


  • Prueba de Escritorio: Para cerciorarnos de que el diagrama (y/o el pseudocódigo) esta bien, y, para garantizar que el programa que codifiquemos luego también funcione correctamente, es conveniente someterlo a una Prueba de Escritorio. El análisis de estos nos indicará si el diagrama esta correcto o si hay necesidad de hacer ajustes.


  • Codificación: Una vez que hayamos verificado el diagrama mediante las pruebas de escritorio, codificamos el programa en el lenguaje de computador seleccionado. Todos los lenguajes de programación proveen facilidades para incluir líneas de comentarios en los programas.


  • Transcripción: El programa codificado es necesario que lo llevemos a un medio que sea aceptado como entrada por el computador: lo perforamos en tarjetas, lo grabamos en un disco flexible o lo grabamos en un disco duro.


  • Compilación: Analiza todo el programa fuente y detecta errores de sintaxis ocasionados por fallas en la codificación o en la transcripción. Las fallas de lógica que pueda tener nuestro programa fuente no son detectadas por el compilador. Cuando no hay errores graves en la compilación, el compilador traduce cada instrucción del programa fuente a instrucciones propias de la máquina (Lenguaje de Maquina), creando el Programa Objeto.


  • Pruebas de Computador: Cuando tenemos el programa ejecutable (en lenguaje de maquina), ordenamos al computador que lo ejecute, para lo cuál suministramos datos de prueba, como lo hicimos en la prueba de escritorio. Los resultados obtenidos los analizamos.


  • Documentación Externa: Cuando el programa ya se tiene listo para ejecutar, es conveniente que hagamos su documentación externa siguiendo las normas de la instalación o las recomendaciones indicadas. Una documentación incluye siempre:


Enunciado del problema.
Diagrama de pasada.
Narrativo con la descripción de la solución.
Relación de las variables o campos utilizados en el programa, cada uno con su respectiva función.
Diagrama del programa.
Listado de la última compilación.
Resultados de la ejecución del programa.

¿Qué es Pseudocódigo?


Es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos esto quiere decir que el pseudocódigo no es programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.

¿Qué es la Prueba de Escritorio?


Es una herramienta útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo. 

Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.

¿Qué es un Diagrama de Flujo? Simbología de DFD


Es una representación gráfica del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos”.

¿Qué es un Algoritmo?



Un algoritmo es la especificación detallada de los pasos necesarios para llevar a cabo una tarea específica. La algoritmia es una ciencia: está sustentada en un conjunto de modelos matemáticos. Existen una cantidad de técnicas que han sido ampliamente estudiadas por los científicos de la computación para resolver problemas que aparecen en diversas áreas de la ciencia. La algoritmia también es un arte, pues la creación de un algoritmo requiere de grandes dosis de heurística y creatividad.

Tipos de Operadores


  • Matemáticos: Se usan para realizar las operaciones matemáticas como suma, resta o   multiplicación.


+ Suma
- Resta
* Multiplicación
/ División
^ Potenciación
DIV Cociente 
MOD Residuo

  • Relacionales: se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas).

Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa false (cero). C++ dispone de los siguientes:

= Igual que
<> Diferente de
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que

  • Lógicos (AND, OR, NOT): 


AND: También denominado por su nombre en inglés (generalmente en mayúsculas) AND lógico. Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es false.

int m[3] = {0,1,2};
int x = 0;
if (m && x) cout << "Cierto.";
else cout << "Falso.";

OR: Este operador binario devuelve true si alguno de los operandos es cierto.  En caso contrario devuelve false.

#include <iostream.h>
bool alto = true, bajo = false, blanco = true, negro = false;

int main (void) {
  if (alto || bajo) { cout << "Uno cierto" << endl; }
  else cout << "Uno falso" << endl;
  if (alto || blanco) { cout << "Dos cierto" << endl; }
  else cout << "Dos falso" << endl;
  if (bajo || negro) { cout << "Tres cierto" << endl; }
  else cout << "Tres falso" << endl;}

NOT: Este operador es denominado también negación lógica y se representa en el texto escrito por la palabra inglesa NOT (otros lenguajes utilizan directamente esta palabra para representar el operador en el código).

#include <iostream.h>
bool alto = true, bajo = false;

int main (void) {
  if (alto) { cout << "Uno cierto" << endl; }
  else cout << "Uno falso" << endl;
  if (!alto) { cout << "Dos cierto" << endl; }
  else cout << "Dos falso" << endl;
  if (!bajo) { cout << "Tres cierto" << endl; }
  else cout << "Tres falso" << endl;}

¿Qué es Constante y Variable? Ejemplos.



  • Constante: En programación, una constante es un valor que no puede ser alterado durante la ejecución de un programa.Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.

Ejemplo:

El valor de pi = 3.1416


  • Variable: En programación, las variables no son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud.


Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.

Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos.

Ejemplo:

Nombre, color, teléfono, edad, estatura, etc.

Tabla de Caracteres ASCII


Es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.

Fundamentos de Programación.


¿Que es un Dato?

El dato es una representación simbólica (numérica, alfabética, algorítmica etc.) En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error.

¿Tipos de Datos?

R/: Entero (Integer), Real, Carácter (Chard), Cadena (string), Lógico (Booleano).

  • Entero (Integer): Un tipo de dato entero en computación es un tipo de dato que puede representar un subconjunto finito de los números enteros. Los tipos de dato entero disponibles y su tamaño dependen del lenguaje de programación usado así como la arquitectura en cuestión. Por ejemplo, si para almacenar un número entero disponemos de 4 bytes de memoria tememos que:
Ejemplo:

Bytes = 4x8 = 32 bits 

Con 32 bits se pueden representar 232=4294967296 valores: 

Sólo positivos: del 0 al 4294967295 

Positivos y negativos: del -2147483648 al 2147483647 

  • Real: El tipo de dato real define un conjunto de números que pueden ser representados con la notación de coma flotante. Al igual que los números enteros, el tipo real está limitado superior e inferiormente según la cantidad de memoria que haya disponible para almacenarlo. Otro elemento importante a tener en cuenta en este tipo de datos es la precisión con que pueden representar número con decimales, esta característica también está directamente relacionada con la cantidad de memoria disponible para almacenar un valor real.
Ejemplo:

Tipos reales fundamentales en Pascal:

 Tipo      Rango        Dígitos Significativos   Tamaño en bytes
                                                                                  
 ------------------------------------------------------------------
 Real48    2.9 x 10^-39           ... 1.7 x 10^38        11 – 12 6
  
 Single    1.5 x 10^–45           ... 3.4 x 10^38        7 – 8   4
      
 Double    5.0 x 10^–324          ... 1.7 x 10^308       15 – 16 8
      
 Extended 3.6 x 10^–4951         ... 1.1 x 10^4932       19 – 20 10
    
 Comp      –2^63+1               ... 2^63 –1             19 – 20  8

 Currency  –922337203685477.5808... 922337203685477.5807 19 – 20 8
  • Carácter (Chard): Un valor de tipo carácter es cualquier carácter que se encuentre dentro del conjunto ASCII ampliado, el cual está formado por los 128 caracteres del ASCII más los 128 caracteres especiales que presenta, en este caso, IBM. un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar.
    Ejemplo:
      En Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación.

      • Cadena (String): Una cadena es una secuencia de caracteres tales como letras, números y signos de puntuación. Las cadenas se introducen una sentencia de ActionScript entre comillas simples (‘) o dobles (“).
      Ejemplos: 

      Si tenemos un alfabeto Σ = a, b, c, una cadena podría ser x = aacbbcba

      • Lógico (Booleano): El tipo de dato lógico o booleano es en computación aquel que puede representar valores de lógica binaria, esto es, valores que representen falso o verdadero. Se utiliza normalmente en la programación, estadística, electrónica, matemáticas (Álgebra booleana), etc.

      Ejemplo:
      Para generar un dato o valor lógico a partir de otros tipos de datos, típicamente, se emplean los operadores relacionales (u operadores de relación), por ejemplo: 0 es igual a falso y 1 es igual a verdadero
      (3>2)= 1 = verdadero 
      (7>9)= 0 = falso

      miércoles, 16 de febrero de 2011

      Algoritmo



      Un algoritmo es la especificación detallada de los pasos necesarios para llevar a cabo una tarea específica. En la escuela, por ejemplo, aprendimos una serie de pasos para realizar sumas, restas, multiplicaciones y divisiones, estos son algoritmos (de hecho debemos la palabra 'algoritmo' al matemático musulmán Muhammad ibn Musa al-Jwarizmi). Una receta de cocina es uno de los ejemplos más claros de algoritmo. El conjunto de trámites que debe realizar en cualquier institución pública para la expedición de un documento, como por ejemplo, la licencia de conducir, también es un algoritmo. Un programa es un algoritmo hecho para ser ejecutado por un ordenador.

      La algoritmia es una ciencia: está sustentada en un conjunto de modelos matemáticos. Existen una cantidad de técnicas que han sido ampliamente estudiadas por los científicos de la computación para resolver problemas que aparecen en diversas áreas de la ciencia. Por ejemplo, la traducción de lenguajes, la clasificación y ordenación de datos, los algoritmos para cifrado y el cálculo numérico, son algunas de las áreas donde aún en la actualidad, se mantiene muy activa la investigación de nuevas técnicas y el desarrollo de algoritmos y programas más eficientes.

      La algoritmia también es un arte, pues la creación de un algoritmo requiere de grandes dosis de heurística y creatividad. La creación de un programa va a estar muy influida por factores externos al modelo matemático, como por ejemplo, el lenguaje de programación que se va a usar, las limitaciones físicas que imponen los ordenadores o incluso los plazos para la finalización de un proyecto. Por otro lado, muchos programadores buscan un aspecto estético en la realización de sus programas; para esas personas, escribir programas es un ejercicio semejante a hacer literatura.

      Trabajo Algoritmos



          Algoritmo para cambiar una llanta pinchada.

      ·         Inicio
      ·         Nos bajamos del automóvil.
      ·         Buscamos las herramientas adecuadas (gato y cruceta).
      ·         Con ayuda del gato levantamos el auto de manera que la llanta quede en el aire.
      ·         Con ayuda de la cruceta soltamos y retiramos las tuercas para poder sacar la llanta que se va a                 
                cambiar.
      ·         Después de haber quitado la llanta pinchada montamos la nueva.
      ·         Las tuercas las volvemos a poner y con la cruceta las apretamos de manera que no se vayan a aflojar.
      ·         Bajamos el auto del gato con una palanca que este tiene, ya cuando el auto se encuentre en el piso 
                retiramos el gato.
      ·         Recogemos las herramientas y la llanta y las guardamos.
      ·         Y el carro esta listo para usarse.
      ·         Fin.
       



          Algoritmo para ver una película en el DVD.

      ·         Inicio
      ·         Antes que todo, elegimos la película que vamos a ver.
      ·         Vamos y la compramos o si ya la tenemos.
      ·         Conectamos el DVD al tv y a la electricidad.
      ·         Lo prendemos, abrimos la bandeja de CD y colocamos el CD de la película a verse.
      ·         Cuando inicie le damos play, o ella sola comienza su reproducción.
      ·         Buscamos un buen sitio para sentarnos a verla y todo es mucho mejor si lo acompañamos con unas 
                crispetas.
      ·         Fin.


          Algoritmo para obtener la cédula.

      ·         Inicio.
      ·         Averiguar que días son los disponibles para ir a la registraduria.
      ·         Alistar los papeles necesarios o los que me pidieron llevar.
      ·         Madrugar para que cuando lleguemos no haya mucha fila.
      ·         Hacer la fila y cuando llegue nuestro turno, ingresar a la oficina.
      ·         Entregar los papeles, dar unos datos personales, las fotos, colocar la huella, y firmar.
      ·         Me dan la contraseña para indicar que la cédula esta en tramite.
      ·         Y esperar un tiempo designado para la entrega de la nueva cédula.
      ·         Fin.

          Algoritmo para ir de viaje.

      ·         Inicio.
      ·         Mirar con el presupuesto que cuento.
      ·         Planear el lugar al que queremos viajar o conocer.
      ·         Cuantas personas van a ir al viaje.
      ·         Alistar las maletas y lo necesario para el viaje.
      ·         Cuanto tiempo estaremos de viaje.
      ·         Donde nos hospedaremos a la llegada de nuestro destino.
      ·         El medio por el cual vamos a viajar (aire, tierra o por mar).
      ·         Pasarla bien, visitar lugares y tener recuerdos.
      ·         Fin.


          Algoritmo para comprar un computador.

      ·         Inicio.
      ·         Buscar el computador de nuestro gusto.
      ·         Averiguar el precio, la calidad y garantía.
      ·         Tramitar los papeles de la compra en el almacén.
      ·         Pagar, llevarlo y darle siempre un buen uso.
      ·         Fin.


          Algoritmo para ingresar a estudiar en el SENA.

      ·         Inicio.
      ·         Averiguar el día de las convocatorias y las inscripciones.
      ·         Diligenciar en la página indicada los datos personales y el curso de nuestro interés.
      ·         Estar muy atento a el día de la prueba virtual, y si la aprobó.
      ·         Mirar el día de la citación en el centro para la entrevista, y si aprobó.
      ·         Si se aprobó correctamente todo, ir el día de la fecha indicada por el sistema para iniciar la inducción.
      ·         Mantener los datos actualizados.
      ·         Ponerle esfuerzo, ganas y empeño al estudio.
      ·         Fin.


         Algoritmo para preparar un caldo de papa con huevo.

      ·         Inicio.
      ·         Colocamos la olla con agua al fogón.
      ·         Se aliña con cebolla, aceite y sal.
      ·         Lavamos y pelamos la papa en rebanadas y se echan a la olla cuando el agua ya hierva.
      ·         Cuando la papa ya este blanda echamos los huevos.
      ·         Apagamos el fogón y añadimos un cubito de ricostilla o caldo maggi y cilantro picadito.
      ·         Servimos en el plato acompañado de galletas de soda o con tostado rallado.
      ·         Y se disfruta.
      ·         Fin.