viernes, 7 de noviembre de 2008

EJERCICIOS DE ALGORITMOS

  1. 1.Realizar un algoritmo que ingrese dos números y determine cual de los es mayor.

1algoritmo mayor_v1; 2.var
3.a, b: entero;
4.inicio
5.escriba(“por favor entre un numero”);
6.lea (a);
7.escriba(“por favor entre el segundo numero”);
8.lea(b);
9.si(a=b)
10.escriba(“los números son iguales”);
11.si_no si (a>b)
12. escriba(“el mayor es:”, a);
13.si_no
14. escriba(“el mayor es:”, b);
15.fin_si
16.fin_si
17.fin


Determinar cual es el cuadrado de un determinado número.

1.algoritmo cuadrado;
2.var
3.a, c: entero;
4.inicio
5.escriba(“por favor ingrese un numero”);
6.lea(a);
7.c=a*a;
8.escriba(“el cuadrado es:”, c);
9.fin

Elaborar un programa que permita determinar si un número es positivo o negativo.

1.algoritmo positivo;
2.var
3.x: entero;
4.inicio
5.escriba(“por favor ingrese un numero”);
6.lea(x);
7.si(x>0)
8.escriba(“el numero es positivo”);
9.si_no
10. escriba(“el numero es negativo”);
11.fin_si
12.fin

Desarrollar un programa que permita ingresar una cantidad en metros y la convierta a centímetros, kilómetros, pies y pulgadas.


1.algoritmo conversión;
2.var
3.metros, centímetros, kilómetros, pies, pulgadas: entero;
4.inicio
5.escriba(“por favor ingrese una cantidad en metros”);
6.lea(metros);
7.centímetros=metros*100;
8.escriba(“la conversión a centímetros es:”, centímetros);
9.kilómetros=metros/1000;
10.escriba(“la conversión a kilómetros es:”, kilómetros);
11.pies=metros*3.28;
12.escriba(“la conversión a pies es:”, pies);
13.pulgadas=metros*39.37;
14.escriba(“la conversión a pulgadas es:”, pulgadas);
15.fin

Realizar un programa que permita leer una determinada temperatura en grados centígrados y la convierta a Fahrenheit.


1.algoritmo temperatura;
2.var
3.centígrados, °F: entero;
4.inicio
5.escriba(“por favor ingrese una cantidad en centígrados”);
6.lea(centígrados);
7.°F = centígrados * 1.8 + 32;
8.escriba(“la conversión a Fahrenheit es:”, °F);
9.fin

una persona es apta para prestar el servicio milita obligatorio cuando es mayor de 18 y menor de 25 años, de nacionalidad colombiana y genero masculino. Realiza un programa que permita determinar si una persona es apta o no para prestar el servicio militar.


1.algoritmo servicio _ militar;
2.var
3.edad: entero;
4.sexo, nacionalidad: carácter;
5.inicio
6.escriba(“por favor ingrese la edad”);
7.lea(edad);
8.escriba(“por favor ingrese el sexo”);
9.lea(sexo);
10.escriba(“por favor ingrese la nacionalidad”);
11.lea(nacionalidad);
12.si(edad>18 y edad<25)
13. si(sexo=masculino)
14. si(nacionalidad=colombiano)
15. escriba(“es apto”);
16. si_no
17. escriba(“no es apto”);
18. fin_si
19 fin_si
20.fin_si
21.fin

Elabore un programa teniendo como dato de entrada el radio y la altura de un cilindro. Calcule el área total y volumen.


1.algoritmo cilindro;
2.var
3.r, h, V, A: entero;
4.inicio
5.escriba(“por favor ingrese el radio”);
6.lea(r);
7.escriba(“por favor ingrese la altura”);
8.lea(h);
9.A = 3.14 * r * h;
10.escriba(“el área del cilindro es:”, A);
11.V = 3.14 *r2 * h;
12.escriba(“el volumen del cilindro es:”, V);
13.fin

Una persona realiza un préstamo de un banco por una año y desea saber cuanto pagara de interés al terminar el préstamo, si se sabe que el banco le cobrara una tasa de 1.8% mensual. Realice un programa que calcule este monto.


1.algoritmo préstamo;
2.var
3.préstamo, int, monto: entero;
4.inicio
5.escriba(“ingrese el valor del préstamo”);
6.lea(préstamo);
7.int = préstamo * 0.018;
8.monto = int * 12;
9.escriba(“el monto total de intereses es:”. monto);
10.fin

una empresa desea conocer el monto de comisión correspondiente a una venta realizada por un vendedor bajo las siguientes condiciones si la venta es menor a 1000000 se le otorga el 3% de comisión, si es de 1000000 o mas el vendedor recibe el 5% de comisión.


1.algoritmo comisión;
2.var
3.venta, comisión: entero;
4.inicio
5.escriba(“ingreses el valor de la venta”);
6.lea(venta);
7.si (venta < 1000000)
8. comisión = venta * 0.03;
9. escriba(“la comisión es:”, comisión);
10.si_no
11. comisión = venta * 0.05;
12 escriba(“la comisión es:”, comisión);
13.fin_si
14.fin

Desarrollar un diagrama que permita con dos números simular una calculadora (suma, resta, multiplicación y división). Se debe leer los números y la operación a realizar.


1.algoritmo calculadora;
2.var
3.X, Y, S, R, M, D: entero;
4.operación: carácter;
5.inicio
6.escriba(“por favor ingrese el primer numero”);
7.lea(X);
8.escriba(“por favor ingrese el segundo numero”);
9.lea(Y);
10.escriba(“por favor ingrese la operación”);
11.lea(operación);
12.si (operación = suma)
13. S = X+ Y;
14. escriba(“la suma es:” S);
15. si_no si (operación = resta)
16. R = X - Y;
17. escriba(“la resta es:” R);
18. si_no si (operación = multiplicación)
19. M = X * Y;
20. escriba(“la multiplicación es:” M);
21. si_no si (operación = división)
22. D = X / Y;
23. escriba(“la división es:”, D);
24. fin_si
25. fin_si
26. fin_si
27.fin_si
28.fin

Dado un valor de X calcular el valor de Y según la siguiente función: Y=f(X)

· 3X + 36, si X<=11.
· X2 – 10, si 11< X <= 33.
· X + 6, si 33< X <= 64.
· 0, para los demás valores de X.

1.algoritmo función;
2.var
3.X, Y: entero;
4.inicio
5.escriba(“ingrese el valor de X”);
6.lea(X);
7.si (X<=11)
8. Y = 3X +36;
9. si_no si (1110. Y = X2 + 10;
11. si_no si (33 < X < 64)
12. Y = X + 6;
13. si_no
14. Y = 0;
15. fin_si
16. fin_si
17. fin_si
18. escriba(“el valor de Y es:” Y);
19. fin

Realizar un algoritmo que permita leer 20 temperatura (°C) diferentes durante un día, se debe indicar cual fue la temperatura promedio.

1.algoritmo temperatura_promedio;
2.var
3.temp, tempt, k, prom: entero;
4.inicio
5.tempt = 0;
6.para (k = 1 hasta 20) hacer
7. escriba(“ingrese la temperatura”);
8. lea(temp);
9. tempt = tempt + temp;
10.fin_para
11.prom = tempt / k;
12.escriba (“la temperatura promedio es:”, prom);
13.fin

Realizar un algoritmo que ingrese un numero y muestra la de determinado numero.

1.algoritmo tabla;
2.var
3.num, k, tabla: entero;
4.inicio
5.escriba(“ingrese el numero que desea conocer la tabla”);
6.lea(num);
7.para (k=1 hasta 9) hacer
8. tabla= num * k;
9. escriba(k, “*”, num, “=”, tabla);
10.fin_para
11.fin

Realizar un algoritmo que permita calcular de las tablas de multiplicar (1 al 9).

1.algoritmo tabla1;
2.var
3.k, j, tabla: entero;
4.inicio
5.para (k=1 hasta 9) hacer
6. para (j =1 hasta 9) hacer
7. tabla= k * j;
8. escriba(k, “*”, j, “=”, tabla);
9. fin_para
10.fin_para
11.fin

Realizar un algoritmo que calcule el factorial (factorial = n!) de determinado numero.

1.algoritmo factorial;
2.var
3.num, k, fact: entero;
4.inicio
5.fact = 1;
6.escriba(“ingrese el numero que desea conocer el factorial”);
7.lea(num);
8.para (k=1 hasta num) hacer
9. fact = fact * k;
10.fin_para
11.escriba (“el factorial es:”, fact);
12.fin

Dado un tiempo en segundos calcular los segundos restantes que le correspondan para convertirse en minutos.

1.algoritmo segundos;
2.var
3.seg, min, f, s1: entero;
4.inicio
5.escriba (“ingrese el valor en segundos”);
6.lea (seg);
7.si (seg < 60)
8. f = seg – 60;
9. escriba(“lo que le falta es :”, f);
10.si_no
11.min = seg / 60;
12.s1 = seg mod 60;
13.f = 60 – s1;
14.escriba (“los minutos son :”, min);
15.escriba (“lo que le falta es:”, f);
16.fin_si
17.fin

Calcular mediante un algoritmo repetitivo la suma de los n primeros números naturales.

1.algoritmo suma;
2.var
3.num, k, suma: entero;
4.inicio
5.suma = 0;
6.escriba(“ingrese el numero hasta que desea sumar”);
7.lea(num);
8.para (K = 1 hasta num) hacer
9. suma = suma + k;
10.fin_para
11.escriba(“el resultado es:”, suma);
12. Fin


Realizar un algoritmo que permita pedir 50 números naturales y determine e imprima cuantos son pares, impares, positivos y negativos.

1.algoritmo naturales;
2.var
3.k, num: entero;
4.inicio
5.para (k =1 hasta 50) hacer
6. escriba(“ingrese numero”);
7. lea(num);
8. si (num mod 2 = 0)
9. escriba (“el numero es par”);
10. si_no
11. escriba (“el numero es impar”);
12. fin_si
13. si (num > 0 )
14. escriba (“el numero es positivo”);
15. si_no
16. escriba (“el numero es negativo”);
17. fin_si
18.fin_para
19.fin

Determine cual es la diferencia entre:

CONTADOR Y ACUMULADOR

La diferencia es que el contador incrementa o decrementa un valor constante y el acumulador incrementa o decrementa un valor variable.

CICLO PARA Y CICLO MIENTRAS

En el para se conoce la cantidad de veces que se ejecuta la acción y en el mientras se ejecuta mientras se cumpla una determinada condición.

CICLO MIENTRAS Y CICLO REPITA

En el ciclo mientras se ejecuta mientras se cumpla una determinada condición, esta condición se evalúa al inicio del ciclo y el repita se evalúa la condición al final del ciclo permitiendo que el bucle se ejecute por lo menos una vez.
CONDICIONAL Y CICLO

En el condicional se realiza las instrucciones una vez y en el ciclo se ejecuta las acciones varias veces.

Realice los siguientes ejercicios:

Los cubos de Nicomaco. Considere la siguiente propiedad descubierta por Nicomaco de Gerasa: sumando el primer impar, se obtiene el primer cubo. Sumando los dos siguiente se obtiene el segundo cubo. Sumando los tres siguientes, se obtiene el tercer cubo y asi sucesivamente, es decir:


1 = 13
3 + 5 = 23 = 8
7 + 9 + 11 = 33 = 27
13 + 15 + 17 + 19 = 43 = 64

Elabore un algoritmo que dado un numero n entero positivo, imprima n primeros cubos utilizando esta propiedad.

1. algoritmo nicomaco;
2. var
3. impar, suma, n, num, var, crece: entero;
4. inicio
5. sumas = 0;
6. num=1;
7. var = n – 1;
8. para(variable var, hasta var > 0; disminuya 1 )
9. num= num + var;
10. impar= (2 (num -1))+1;
11. fin_para
12. para (crece = 1 hasta n) hacer
13. sumas = sumas + impar;
14. escriba(impar, “+”);
15. impar = impar +2;
16. fin_para
17. escriba (“=”, sumas);
18. fin



La serie fibonacci es un ejercicio interesante, el cual se construye a partir de los dos primeros números que son 0 y 1, a partir de ahí se construye la serie ejemplo: 0,1; 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55….
Desarrolle un algoritmo que permita, calcular n números de esta serie.

1. algoritmo fibonacci;
2. var
3. a, b, c, k, num: entero;
4. inicio
5. a = 0, b = 1, c = 0;
6. escriba(“ingrese numero a calcular”);
7. lea (num);
8. para ( k = 0 hasta num ) hacer
9. c = a + b;
10. a = b;
11. b = c;
12. fin_para
13. escriba (“el valor de la serie es:”, c);
14. fin



DIAGRAMA CALCULADORA


10. desarrollar un diagrama que permita con dos numeros simular una calculadora ( suma, resta, multiplicación , y division ) se debe leer los numeros y la operación a realizar.

DIAGRAMA DE LA COMISION


9.una empresa desea conocer el monto de comisión correspondiente al de una venta realizada por un vendedor bajo las siguientes condiciones , si la venta es menor a 1000000 se le otorga el 3% de comisión , si es de 1000000 o mas el vendedor recibe el 5% de comisión .

DIAGRAMA CUADRADO


8. elabore un diagrama de flujo que permita ingresar tres valores y los imprima en forma desendente.

DIAGRAMA DE PRESTAMO



7. una persona recibe un préstamo de un banco por un año y desea saber ¿ cuanto pagara de interés al terminar el préstamo ,
Si se sabe que el préstamo , si se sabe que el banco le cobrara una taza de 1.8 % mensual. Realice un diagrama

DIAGRAMA DE VOLUMEN



6. realise un diagrama de flujo teniendo como dato de entrada el radio y la altura de un silindro calcule el area total y volumen

DIAGRAMA DEL MILITAR



5. una persona es apta para prestar el servicio militar obligatorio cuando es mayor de 18 y menor de 25 de nacionalidad colombiana y genero masculino. Realizar un diagrama que permita determinar si una persona es apta o no prestar el servicio militar

DIAGRAMA DE CENTIGRADOS



4. leer una determinada temperatura en grados centigrados y convertirla fiaren veit.

DIAGRAMA DE CONVERSION



3. Desarrollar un diagrama de flujo que permita ingrasar una cantidad en metros y la convierta a cm, km, pies , y pulgadas

DIAGRAMA DE POSITIVO



2. elabore un diagrama de flujo que permita determinar si un numero es positivo o negativo.

diagrama del cine



1 realice un diagrama de flujo que permita determinar los pasos para ir al cine con el novio

HISTORIA DE MUHAMMAD BIN MUSA

MUHAMMAD BIN MUSA AL- KHWARIZMI (ALGORZM) (770 - 840 C.E)

-Rober abu mahammad abn musa al - khwarizm (kheva) una ciudda la sur del rio oxus en la actualidad uzbekistan. (uzbekistan, un pais musulban desde hace mas de un millar de años fue tomado por los rusos EN 1873)sus padres emigraron a un lugar al sur de bogdad cuando era un nino la fecha exacta de su nacimiento no se conose , se a establesido a partir de sus contribusiones que florecio bajo khallfan ( calif) al- mdmun en bagdad durante 813 a 833 ce . el es el mejor conosido por introducir el concepto de algoritmo matematico de su apellido.


Al- khwarizmi fue uno de los mas grandes matematicos nunca vivio. el fue el fundador de varias ramas y los conceptos vasicos de matematicos. tambien es famoso como astronomo y geografo . al-khwerizmi influido en el pensamiento matematico en mayor medida que cualquier otro escritor mediabal. el es reconosidpo como fundador del algebra ya que no solo inicio el tema en una forma sistematica , si no tambien desarrolo , en la medida de sr soluciones, analiticas de ecuaciones lineal y cuadraticas el nombre de algebra se obtiene apaartir de su famoso libro al-jabr wa- al - muqabi ah.
trigonometricas que contiene el sine funciones , que mas tarde fueron extrapolados alas funciones tangente. al-khwarizmi tambien desarrollo el calculos de dos errores , que le llevo al concepto de diferensiacion , tambien la refinada representacion geometrica de secciones conicas.

La influensia de al-kwarizmi en el cresimiento de los matematicos la astronomia y la geografia asi establesida en la historia su enfoque fue sistematico y logico, no solo se reunen a los vijentes en este momento de diversas ramas de la consiencia si no tambien enriquesido atravez de sus contribuciones originales. que sintetiza griego e hindu del conosimiento y tambiem figura su propia v contribucion de importancia fundamental para la matematica y la ciencia, que a provo el uso del cero , un numero de fundamento importante , para dar lugar allamado aritmetica de las posiciones del sistema decimal . su labor pionera, en el sistema de numeracion n es bien conosido como ´álgoritmo' o `algorizm` ademas de introducir la numeracion arabe , a desarrollado barios procedimientos aritmeticos incluidas las operaciones en fracciones.

Ademas de un importante tratado de astronomia . khwarizmi escribio un libro sobre todas las astronomicas al tatil al principio de los años 12 del siglo de adelardo de bath y gererdo de cremona. los tratados de aritmetica kitcid al -ja´ma wal-tafreeg mil hisad al hindi y el de algebra al-mogala fi hisab al-ja brwa al maqala fi hisab al-jabr wa-al-muqabilan, solo se conosen las traducciones de latin esto mas tarde la traduccion que introdujo la nueva ciencia para el oeste " conosido hasta entonces este libro se utilizo hasta el siglo 16 como el principal libro de texto de matematicas de las universidades europeas. sus tablas astronomicas se tradujo tambien en las lenguas europeas , y mas tarde , en chino.

La contribucion de al-khwarizmi ala geografia es tambien exelente. que no solo redujo las opiniones de ptolomeo sobre la geografia sino tambien corrije en detaye . 80 geografos trabajan bajo el liderazgo de al-khwarizmi y que elaboro el primer mapa del mundo( conosido mundo) 830 ce se le informo tambien que a colaborado en el grado de mediciones ordenados por khalifah ( califa) mamun al rashid were destinados a la medision de la sincunferencia y volumen de la tierra. la geografia de su libro titulado " kitbsurat - al -art." incluido los mapas, tambien fue traducidos sus otras contribuciones originales incluten trabajos realacionados con los relojes, relojes de sol y astrolabios tambien escribio kitalo al-rukhmat ( en relojes del sol

jueves, 6 de noviembre de 2008

TIPOS DE DATOS Y ALGUNOS EJERCICIOS

TIPOS DE DATOS


como se a podido ver a lo largo de las lecturas, para que una computadora tenga una razón de ser se hace necesario la programación


de las mismas, es decir, realizar software que permita el ingreso de datos para ser transformados en información, los datos que ingresan a una computadora pueden ser .





1.DATOS NUMÉRICOS:


están representados por dos tipos principales:





*ENTEROS: representan los números que no poseen componentes fraccionarios que pueden ser tantos positivos como negativos.





*REALES:representan todos los números que poseen componentes fraccionarios y también pueden ser positivos y negativos.





2.DATOS LÓGICOS :


Este tipos de datos solo puede tomar uno de dos valores verdadero o fals0.





3.DATOS TIPOS CARÁCTER:


Representan datos alfanuméricos que pueden ser cadena de caracteres que es una sucesión de caracteres numéricos , letras , símbolos etc. esta cadena inicia y termina con apostrofes o comillas dependiendo del lenguaje que se este utilizando.





*CARÁCTER:


contiene solo un carácter y también se incluye las comillas para su asignación





*VARIABLES Y CONSONANTES:





Una variable es un espasio reservado en el computador para contener valores que pueden cambiar durante el desarrollo del algoritmo, los tipos de valores (numéricos, carácter, lógicos) detérmina como se manipularan la información contenida en esas .


`"una variable que se a defino de un sierto tipo solo puede tomar valores de este tipo".


una consonante es un espacio reservado para contener valores que no cambian a lo largo de un algoritmo.


las variables locales son aquellas que afectan únicamente el subprograma y las variables nomas les afecta a un programa en todos su contextos.


existe una seria de reglas para definir variables y constante, entre ellas están : normalmente deben iniciar por una letra, no debe contener símbolos ni signos de puntuación , no deben contener espacios en blanco ejemplo:







  • k si


  • contador si


  • 4444 no


  • mi contador no


  • # Juan no








*OPERADORES



Los operadores nos permiten trabajar con las variables y las constantes dentro de los cuales tenemos:



- OPERADORES ARITMÉTICOS:



^ ----potencia



* ---producto



/---- división-------mod : residuo de /



+---- suma



- --------resta





*OPERADORES ALFANUMÉRICOS:





+ ------- concatenación 'po'+'u' POLI





*OPERADORES RELACIONALES:





:----- igual a


<----- menor que


< : ----- menor o igual que


> ------ mayor


> : ---- mayor o igual que


< > ----- distinto que




OPERADORES LÓGICOS:


NOT--------NEGACIÓN


AND--------CONJUNCIÓN


OR---------DISYUNCIÓN




OPERADORES PARÉNTESIS:


El paréntesis permite alterar el orden en que se realiza las diferentes operaciones.


ORDEN DE EVALUACIÓN DE LOS OPERADORES:



  1. paréntesis

  2. cambio de signos

  3. potencias

  4. productos y divisiones
  5. sumas y restas
  6. concatenación
  7. relacionales
  8. negación
  9. conjunción
  10. disyúncion

EJERCICIOS:


1 X : 5+3*2


X : 5+6


X . 11


2. X . 5 + 5


X : 25 + 25


X : 50


3. X : 4+ (3*2) +7 + 4/2


X : (3*) : 6


X : 4/2 : 2


X : 6+2+4+7


X : 19


4. a +5 ; b :10 ; c : 8


x : a + b * c + ( b - c)


x : 5 + 10 * 8 + ( 10-8)


x : 5 + 10 * 8 + 2


x : 5 + 8 +2


x : 87


x : x - 4


x : 87 - 5 : 82


5. x : 35 divi 4 : 8


x : mod 2 : 8 mod 2 : 0


x : x + x : 0 + 0 : 0

EJERCICIOS

EJERCICIOS





1. EN EL ASCENSOR:


cuatro jugadores de rugby entran en un ascensor que puede transportar un maximo de 380 k.


para que no suene la alarma que detendria el ascensor por exeso de carga, tiene usted que calcular su peso total con gran rapidez, pero cuanto pesa cada jugador, e aqui los datos:


-pablo es quien pesa mas si cada uno de los otros pesara tanto como el, la alarma detendria el ascensor.

- carlos es el mas ligero el ascensor podria subir a cinco como el .


-enato pesa 14k menos que pablo y solo seis menos que jesus.


-jesuspesa 17 k mas que carlos. los pesos de pablo y de carlos son multiplos de cinco

RTA:

PABLO----------- 100K

CARLOS----------75K

RENATO---------86K

JESUS------------92K+


2.DEPORTISTAS:

Ana beatris y carmen.
una es tenista otra gimnasta la mas baja de las tres es soltera . ana que es suegra de beatris es mas alta que la tenista.

¿ que deporte practica cada una ?


RTA:

Nadadora : -----------ANA

tenista : --------------BEATRIS

gimnasta : ----------- CARMEN


CARMEN ES SOLTERA



3. EL NUMERO:


Busca un numero de seis sifras con las siguientes condisiones ninguna sifra es impar.

a primera es 1/3 de la quinta y la 1/2 de de la tercera

la segunda es la menor de todas , la ultima es la diferencia entre la cuarta y la quinta


RTA:


2 0 4 8 6 2


COMIENDO EL RESTAURANTE

Armando, Basilio, Carlos y Dionisio fueron con sus mujeres a comer. En el restaurante se sentaron en una mesa redonda de forma que:

· Ninguna mujer se sentaba al lado de su marido.
· En frente de basilio se sentaba Dionisio.
· A la derecha de la mujer de basilio se sentaba Carlos.
· No había dos mujeres juntas.
· ¿Quién se sentaba entre Basilio y armando?
4.

LENGUAJES DE PROGRAMACIÓN


LENGUAJES DE PROGRAMACIÓN


FORTRAN:

El lenguaje fortran es uno de los lenguajes que forman el grupo de lenguajes de computador orientados a procedimientos, los cuales están fundamentados en la estructura del lenguaje usado originalmente para describir el problema, como también en el procedimiento empleado para resolverlo. Tiene por objeto descargar al programador de la tarea de reducir todos los cálculos y toma de decisiones a las pasos elementales requeridos por el repertorio limitado de operaciones ofrecido a nivel de lenguaje de maquina. FORTRAN es un acrónimo de FORmula TRANslation (traducción de formulas), diseñado especialmente para la manipulación de formulas científicas y la aplicación de métodos numéricos a la solución de problemas.

COBOL:

En mayo de 1959 mediante una reunión realizada en Estados Unidos por una comisión denominada CODASYL (Conference On Data Systems Languages ) integrada por fabricantes de ordenadores, empresas privadas y representantes del Gobierno; un lenguaje de programación fue diseñado expresamente para el procesamiento de datos administrativos. Es un lenguaje de alto nivel y como tal generalmente es independiente de la maquina. Una versión preliminar de COBOL (Common Business Oriented Lenguaje) apareció en diciembre de 1959. Esta versión fue seguida en 1961 por la versión COBOL-61, que constituyó la base para el desarrollo de versiones posteriores. En 1968 se aprobó una versión estándar del lenguaje por lo que ahora se denomina ANSI y una versión revisada se aprobó por ANSI en 1974. El COBOL en cualquiera de sus versiones es el lenguaje apropiado para las aplicaciones administrativas del computador.


LISP:

Es el lenguaje para aplicaciones como la inteligencia artificial. Es un lenguaje funcional que ha desempeñado un papel especial en la definición de lenguajes. La definición de un lenguaje debe estar escrita en alguna notación, llamada metalenguaje o lenguaje de definición, y los lenguajes de definición tienden a ser funcionales. De hecho la primera implantación de LISP se produjo, casi por accidente, cuando se uso LISP para definirse a sí mismo. De esta manera los conceptos básicos de programación funcional se organizaron con LISP, diseñado por Jhon McCarthy en 1968, el cuál es lenguaje con mayor edad después de Fortran. LISP significa (Lots of Silly Parenthese “montones de tontos parentesis”). A comienzos de 1960 Lisp fue “ultralento” para aplicaciones numéricas. Ahora hay buenas implantaciones disponibles.

PASCAL:

PACAL es un lenguaje de programación de alto nivel de propósito general; esto es, se puede utilizar para escribir programas para fines científicos y comerciales. Fue diseñado por el profesor Niklaus (Nicolás) Wirth en Zurich, Zuiza, al final de los años 1960 y principios de los 70’s. Wirth diseñó este lenguaje para que fuese un buen lenguaje de programación para personas comenzando a aprender a programar. Pascal tiene un número relativamente pequeño de conceptos para aprender a denominar. Su diseño facilita escribir programas usando un estilo que esta generalmente aceptado como práctica estándar de programación buena. Otra de las metas del diseño de Wirth era la implementación fácil.

PROLOG:

Es un lenguaje de programación de computadoras que fue inventado alrededor de 1970 por Alain Colmerauer y sus colegas de la Universidad de Marcella. A finales de 1970 comenzaron a aparecer versiones de Prolog para microcomputadoras fue el micro-prolog y se dedicaron muchos libros de prolog a él.Pero el micro-prolog no ofrece la riqueza de predicados que ofrece un lenguaje como él turbo prolog. No existió mucho interés en el prolog, hasta que los científicos, japoneses lanzaron su famoso proyecto de la quinta generación con el objetivo de diseñar nuevas computadoras y software, los cuales no tendrían rivales en los años 1990 y posteriores. Ala principales implementaciones de prolog le falta la habilidad para mejorar problemas sobre “números” o “procesamiento de texto”, en su lugar, prolog está diseñado para manejar “problemas lógicos” (es decir problemas donde se necesita tomar decisiones de un a forma ordenada). Prolog intenta hacer que la computadora razone la forma de encontrar una solución.

SMALLTALK:


Alan Kay creó SMALLTALK es principalmente un lenguaje interpretado, es decir smalltalk es un lenguaje compilado en forma incremental: tanto el compilador como el lenguaje son parte del ambiente de programación smalltalk, cuando se utiliza smalltalk nunca se sale del ambiente de programación (incluyendo el apoyo de biblioteca, las clases y los métodos), usted puede probar incluso el fragmento más pequeño del programa con él interprete, o compilar solo una sección de código. Usted podría utilizar el intérprete smalltalk como una calculadora muy compleja, para evaluar expresiones matemáticas.


OBJECT PASCAL:

Es un lenguaje de programación muy poderoso que está si dudas a la altura de C++ y que incluso lo supera en algunos aspectos. Este lenguaje surge a partir del desarrollo de Borland Pascal 7.0, un lenguaje que ocupa un lugar muy importante en la programación de ordenadores personales . El Object Pascal es totalmente compatible con el Borland Pascal 7.0, lo que permite que programas desarrollados con este último puedan ser convertidos a Delphi. Nuevos aspectos en el Object Pascal en relación a sus predecesores son el Exceptión –Handling ( tratamiento y canalización de errores de run-time), un manejo más sencillo de los punteros con reconocimiento automático y referenciación, las llamados propiedades de objetos que pueden ser asignados como las variables, etc.

DELPHI

Es una potente herramienta de desarrollo de programas que permite la creación de aplicaciones para Windows 3.x, Windows 95 y Windows NT. De hecho , aunque el programa ANÁLOGA.EXE corre perfectamente en cualquier tipio de Windows, fue desarrollado sobre una plataforma Windows NT Wokstation. Dispone de un compilador muy rápido (más que la mayorìa de los compìladores de C++, como ya era tradicional en Turbo Pascal), y potentes herramientas para la creación visual de aplicaciones de completas herramientas para la creación y manejo de bases de datos, aplicaciones multimedia, enlace DDE, creación de DLLs, VBX,etc. Cubre muchos temas de programación bajo Windows: se incluye entre los mismos un completo centro de control para la creación de aplicaciones multimedia, así como una gran variedad de componentes que actúan “debajo” del entorno , como tipos de listado muy variados y contenedores generales de datos. Las aplicaciones terminadas están disponibles en archivos ejecutables(EXE)que peden utilizarse sólo con bibliotecas adicionales.

JAVA

Java es un lenguaje de progreamación orientado a objetos desarrollado por Sun Microsystems, una compañía reconocida por sus estaciones de trabajo UNÍS de alta calidad en 1991 como parte de un proyecto de investigación para desarrollar software para dispositivos electrónicos (televisiones, videocaseteras, tostadores y otros de aparatos que se pueden comprar en cualquier tienda departamental) . Fundamentado en C++, el lenguaje Java se diseño para ser pequeño , sencillo y portátil a través de plataformas y sistemas operativos, tanto a nivel de código fuente como binario, lo que significa que los programas en Java (apples y aplicaciones) pueden ejecutarse en cualquier computadora que tenga instalada una maquina virtual de Java . Es un lenguaje ideal para distribuir programas ejecutables vía World Wide Web, además de un lenguaje de programación de propósito general para desarrollar programas quesean fáciles de usar y portables en una gran variedad de plataformas.



Visual Basic:

Visual BASIC es un producto hecho por Microsoft que permite al una persona crear fácilmente porgramas para Windows muy poderosos y completos, como por ejemplo programas para bases de datos, controles "Active X", y programas cliente/servidor para redes. Microsoft, compañía fundada por Bill Gates, lanza su primera versión de Visual BASIC 1.0 en 1991 (llamada en codigo, "Thunder"). Fue la primera herramienta visual de Microsoft, y estaba supuesta a competir con C, C++, Pasacal y cualquier otro lenguaje de programación bien conocido. No fue existosa, hasta no salir la versión de Visual BASIC 2.0 en 1993 cuando la gente realmente comenzó a descubrir el poder de este lenguaje, y cuando Microsoft lanza la versión VB 3.0 se convirtió en el lenguaje de programación de mayor crecimiento en el mercado. Inmediatamente después de esto, Microsoft recibe pedidos de cientos de vendedores de progamas independientes (ISVs) para licenciarlo para uso de sus propias aplicaciones. En 1997, sale al mercado la versión 5.0 de Visual Basic para Aplicaciones. Ya para abril de 1999, más de 80 aplicaciones "host" de Visual Basic estaban disponibles para que los desarrolladores las adquirieran, permitien do así la creación e integración de soluciones personalizadas con una variedad de componentes horizontales y verticales. "Microsoft Visual Basic for Applications" (VBA) es una tecnología de desarrollo muy poderosa para personalizar aplicaciones enlatadas e integrarlas a sistemas y data existente.

VISUAL FOXPRO:

Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
Capacidades poderosas y muy Veloces para el manejo de datos nativos y remotos.
Flexibilidad para crear todo tipo de soluciones de bases de datos.
Lenguaje de Programación Orientado a objetos.
Utilización de Sentencias SQL en forma nativa.
Poderoso manejo de vistas y cursores y control completo de estructuras relacionales.
Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como
Oracle, Microsoft SQL Server o MySQL.
Cuenta con un motor de generación de informes renovado y muy flexible para soluciones más robustas.
Desde la versión 9.0, amplio soporte de
XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reports en formato XLM.
Desde la versión 7.0, soporte de la tecnología IntelliSense de Microsoft
La última versión liberada es la 9.0.
Se planeo inicialmente la salida de una nueva versión llamada 'Sedna', la cual pretendía ser un poderoso y completo lenguaje interactuando aun más con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12 teniendo a su vez soporte para Windows Vista. Posteriormente se supo que no habrá una próxima versión (
Mensaje a la comunidad VFP). Microsoft ha cancelado su desarrollo y lanzó lo que han hecho hasta ahora como add-ons en conjunto con el service pack 2 ambos por el momento en versión Beta (SP2 y "Sedna" - Beta). Igualmente, según las políticas de soporte de Microsoft, éste continuara dando soporte al producto hasta el año 2015.
Hay un movimiento que está haciendo presión para que Microsoft continúe, o deje el Visual FoxPro como código abierto para que otra gente pueda seguir evolucionándolo.
La versión 9.0 de Visual FoxPro cuenta con el
SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.

Visual Basic:

Visual Basic es un
lenguaje de programación desarrollado por Alan Cooper para Microsoft. El lenguaje de programación es un dialecto de BASIC, con importantes añadidos. Su primera versión fue presentada en 1991 con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y en cierta medida también la programación misma. En 2001 Microsoft propone abandonar el desarrollo basado en la API Win32 y pasar a trabajar sobre un framework o marco común de librerías independiente de la version del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C Sharp (C#) de fácil transición de código entre ellos) que presenta serias incompatibilidades con el código Visual Basic existente.
Visual Basic constituye un IDE (entorno de desarrollo integrado o en inglés Integrated Development Enviroment) que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código (programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado), un compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para la parte gráfica del programa, sino que se puede hacer de forma visual).

(SQL):

es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos.
Breve Historia
La historia de SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales.
En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.
El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.
Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales. El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos.
Breve Historia
La historia de SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales.
En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.
El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.
Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales.


C++:

C++ es un lenguaje de programación 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.
Posteriormente se añadieron facilidades
programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT (enlace externo).
Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales.
C++ está considerado por muchos como el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel, sin embargo es a su vez uno de los que menos automatismos trae, con lo que obliga a usar librerías de terceros, como por ejemplo Boost (enlace externo)
El nombre C++ fue propuesto por
Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.

mapa conceptual : clasificación de los ordenadores


mapa conceptual: estructura de un ordenador


mapa conceptual : representacion de la informatica


mapa conceptual : introducción de la informatica


SIGNIFICADO DE ALGORITMOS

Algoritmo:

En
matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la
división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo se está tratando de resolver el problema. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.
Introducción:
[La importancia de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, no toda caja negra que convierta una entrada en una salida se puede considerar un algoritmo: para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida (formalización de su comportamiento) de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible (salvo algoritmos probabilistas, que tiene usualmente una salida distinta), a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigüedades y puede seguirse su traza.
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de
programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
La mayoría de los algoritmos involucran métodos de organizar los datos que intervienen en el cómputo. Estos objetos creados son llamados, de esta manera la estructura de los datos, y también son objetos centrales del estudio en la informática. De esta forma, los algoritmos y estructuras de los datos van siempre de la mano. Los algoritmos simples pueden dar lugar a una estructura de datos complicada y, recíprocamente, los algoritmos complicados pueden usar estructuras de los datos simples.
Características de los algoritmos:
El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
  1. Carácter finito: "Un algoritmo siempre debe terminar después de un número finito de pasos".
  2. Precisión:"Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
  3. Entrada: "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
  4. Salida: "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
  5. Eficacia: "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..
A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los
algoritmos probabilistas

Algoritmos y funciones :

Artículo principal: Teoría de la computabilidad
Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los numeros naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la
función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.

Medios de expresión de un algoritmo:

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

La descripción de un algoritmo usualmente se hace en tres niveles:

  1. Descripción de alto nivel: Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
  2. Descripción formal: Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
  3. Implementación: Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un
    teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

Diagrama de flujo :

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
Artículo principal:
Diagrama de flujo
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.Diagrama de flujo

Pseudocódigo :
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina.

Máquina de Turing :
Artículo principal:
Máquina de Turing
La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.

Implementación : Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.

Análisis de algoritmos : Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de
lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.

Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.