Este documento proporciona una introducción a los fundamentos de la programación. Explica conceptos básicos como qué es una computadora, los tipos de computadoras, la arquitectura de hardware y software, la memoria y el almacenamiento, los sistemas de numeración, los lenguajes de programación, los algoritmos y los diagramas de flujo. También describe elementos como el software del sistema, las aplicaciones, los sistemas operativos y los traductores de lenguaje como compiladores e intérpretes.
2. ¿QUÉ ES UNA COMPUTADORA?
Computadora
Ordenador
PC
INPUT
Datos de
entrada
OUTPU
T
Datos de
Salida
PROCESOS
TIPOS DE COMPUTADORAS:
Servidores
Computadoras
Personal
Computadoras
Portátil
Dispositivos
Móviles
3. ARQUITECTURA DE LA COMPUTADORA
Hardware
Hard (Duro),
Ware
(Componente)
Representa la
parte física de la
computadora
Software
Soft (Blando),
Ware
(Componente)
Representa la
parte lógica de la
computadora
CPU
UAL UC
Dispositivos
de entrada
Dispositivos
de salida
MEMORIA
6. SISTEMA DE NUMERACIÓN
• ¿A que se refiere el termino ”Base”?
• Base: numero total de símbolos que utiliza un sistema.
• Ejemplo: Sistema decimal es base 10, en el binario la base es 2
• Teorema fundamental de la numeración
• Permite saber el valor decimal que tiene cualquier numero en
cualquier base,
• Responde a la formula:
• … + X3 * B3+ X2 * B2 + X1 * B1 + X0 * B0 + X-1 * B-1 + X-2 * B-2 + X-3 * B3 …
7. … + X3 * B3+ X2 * B2 + X1 * B1 + X0 * B0 + X-1 * B-1 + X-2 * B-2 + X-3 * B-3 …
Donde
X : Es el símbolo que se encuentra en la posición i del numero que se esta convirtiendo
Tenemos que tener en cuenta que la posición “Cero” representa la unidad, la “uno” los
decimales etc. Y la posición “-1”, en adelante lo decimales, las centenas etc
B: Es la base del sistema que se utiliza para representar el numero.}
Por Ejemplo: si tenemos el numero 153.6 en sistema octal, y lo queremos pasar a decimal:
1*82 + 5*81 + 3*80 +6*8-1 = 107.75
8. CONVERSIÓN BINARIA A DECIMAL
La misma regla del teorema fundamental de la numeración aplicaría para
convertir un numero de binario a decimal:
Teniendo el numero 10011011011
1*210 + 1*27 + 1*26 + 1*24 + 1*23 + 1*21 + 1*20 = 1243
9. DE DECIMAL A BINARIO
El método mas utilizado es ir haciendo divisiones sucesivas
entre 2
Para pasar el numero 39 a binario el procedimiento es el siguiente:
39/2 = 19 residuo 1
19/2= 9 residuo 1
9/2 = 4 residuo 1
4/2 = 2 residuo 0
2/2 = 1 residuo 0
1/2 = 0 residuo 1
100111
12. EL SOFTWARE (LOS PROGRAMAS)
El software de una computadora es un conjunto de instrucciones de
programa detalladas que controlan y coordinan los componentes
hardware de una computadora y controlan las operaciones de un
sistema informático.
Las operaciones que debe realizar el hardware son especificadas por una
lista de instrucciones, llamadas programas, o software. Un programa de
software es un conjunto de sentencias o instrucciones al computador. El
proceso de escritura o codificación de un programa se denomina
programación y las personas que se especializan en esta actividad se
denominan programadores. Existen dos tipos importantes de software:
software del sistema y software de aplicaciones. Cada tipo realiza una
función diferente.
13. SOFTWARE DEL SISTEMA
Es un conjunto generalizado de programas que gestiona los
recursos del computador, tal como el procesador central, enlaces
de comunicaciones y dispositivos periféricos. Los programadores
que escriben software del sistema se llaman programadores de
sistemas
14. SOFTWARE DE APLICACIONES
son el conjunto de programas escritos por empresas o usuarios
individuales o en equipo y que instruyen a la computadora para
que ejecute una tarea específica. Los programadores que escriben
software de aplicaciones se llaman programadores de aplicaciones.
15.
16. SOFTWARE DEL SISTEMA
El software del sistema coordina las diferentes partes de un sistema de
computadora y conecta e interactúa entre el software de aplicación y el
hardware de la computadora. Otro tipo de software del sistema que gestiona
controla las actividades de la computadora y realiza tareas de proceso
comunes, se denomina utility o utililerias. El software del sistema que gestiona
y controla las actividades del computador se denomina sistema operativo.
17. SOFTWARE DE APLICACIÓN
El software de aplicación tiene como función principal asistir y ayudar a un usuario de un
computador para ejecutar tareas específicas. Los programas de aplicación se pueden
desarrollar con diferentes lenguajes y herramientas de software. Por ejemplo, una aplicación
de procesamiento de textos tal como Word que ayuda a crear documentos, una hoja de
cálculo tal como Excel que ayudan a automatizar tareas tediosas o repetitivas de cálculos
matemáticos o estadísticos, a generar diagramas o gráficos, presentaciones visuales como
PowerPoint, o a crear bases de datos como Access u Oracle que ayudan a crear archivos y
registros de datos
Los lenguajes de programación sirven para escribir programas que permitan la
comunicación usuario/máquina. Unos programas especiales llamados traductores
(compiladores o intérpretes) convierten las instrucciones escritas en lenguajes de
programación en instrucciones escritas en lenguajes máquina (0 y 1, bits) que ésta pueda
entender
18. SISTEMA OPERATIVO
Un sistema operativo SO (Operating System, OS) es la parte más
importante del software del sistema y es el software que controla y
gestiona los recursos del computador. En la práctica, el sistema
operativo es la colección de programas de computador que
controla la interacción del usuario y el hardware del computador. El
sistema operativo es el administrador principal del computador,
este software es el responsable de dirigir todas las operaciones del
computador y gestionar todos sus recursos.
19. LENGUAJES DE PROGRAMACIÓN
Para que un procesador realice un proceso se le debe suministrar en primer lugar un
algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo
que significa:
comprender las instrucciones de cada paso,
realizar las operaciones correspondientes.
Cuando el procesador es una computadora, el algoritmo se ha de expresar en un
formato que se denomina programa, ya que el pseudocódigo o el diagrama de flujo no
son comprensibles por la computadora, aunque pueda entenderlos cualquier
programador. Un programa se escribe en un lenguaje de programación y las
operaciones que conducen a expresar un algoritmo en forma de programa se llaman
programación
20.
21. TRADUCTORES DE LENGUAJE: EL PROCESO
DE TRADUCCIÓN DE UN PROGRAMA
El proceso de traducción de un programa fuente escrito en un
lenguaje de alto nivel a un lenguaje máquina comprensible por la
computadora, se realiza mediante programas llamados “traductores”.
Los
traductores de lenguaje son programas que traducen a su vez los
programas fuente escritos en lenguajes de alto nivel a código
máquina. Los traductores se dividen en compiladores e interpretes.
22. INTÉRPRETES
Un intérprete es un traductor
que toma un programa fuente,
lo traduce y, a continuación, lo
ejecuta.
23. COMPILADORES
Un compilador es un programa
que traduce los programas
fuente escritos en lenguaje de
alto nivel a lenguaje máquina.
24. LA COMPILACIÓN Y SUS FASES
La compilación es el proceso de traducción de programas fuente a
programas objeto. El programa objeto obtenido de la compilación
ha sido traducido normalmente a código máquina.
El proceso de ejecución de un programa escrito en un lenguaje de
programación y mediante un compilador suele tener los siguientes
pasos:
25. LA COMPILACIÓN Y SUS FASES
1. Escritura del programa fuente con un editor.
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador C.
4. Verificar y corregir errores de compilación (listado de errores).
5. Obtención del programa objeto.
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del
programa.
26. CONCEPTO DE ALGORITMO
Un algoritmo es un método para resolver un problema.
La resolución de un problema exige el diseño de un algoritmo que
resuelva el problema propuesto
27. CARACTERÍSTICAS DE LOS ALGORITMOS
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada
paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar
en algún momento; o sea, debe tener un número finito de pasos.
28. PRACTICA/ REDACTAR EL ALGORITMO CORRESPONDIENTE.
Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su
banco de datos la ficha del cliente; si el cliente es solvente entonces la
empresa acepta el pedido; en caso contrario, rechazará el pedido.
29. PRACTICA/ REDACTAR EL ALGORITMO CORRESPONDIENTE.
Se desea diseñar un algoritmo para saber si un número es primo o no
Un número es primo si sólo puede dividirse por sí mismo y por la
unidad (es decir, no tiene más divisores que él mismo y la unidad). Por
ejemplo, 9, 8, 6, 4, 12, 16, 20, etc., no son primos, ya que son divisibles
por números distintos a ellos mismos y a la unidad. Así, 9 es divisible
por 3, 8 lo es por 2, etc.
El algoritmo de resolución del problema pasa por dividir
sucesivamente el número por 2, 3, 4, etc.
30. PRACTICA/ REDACTAR EL ALGORITMO CORRESPONDIENTE.
Realizar un algoritmo que permita leer dos valores, determinar cual de
los dos valores es el menor y escríbalo
Realizar un algoritmo que sume dos números.
Desarrolle un algoritmo que permita leer tres valores y almacenarlos
en las variables A, B, y C respectivamente. El algoritmo debe indicar
cual es el menor. Asumiendo que los tres valores introducidos por el
teclado son valores distintos.
31. PRACTICA/ REDACTAR EL ALGORITMO CORRESPONDIENTE.
Desarrolle un algoritmo que realice la sumatoria de los números enteros múltiplos
de 5, comprendidos entre el 1 y el 100, es decir, 5 + 10 + 15 +…. + 100. El
programa deberá imprimir los números en cuestión y finalmente su sumatoria
Desarrolle el algoritmo correspondiente para Determinar la hipotenusa de un
triángulo rectángulo conocidas las longitudes de sus dos catetos.
Desarrollar un algoritmo que calcule el área de un cuadrado.
Desarrolle un algoritmo que permita determinar el área y volumen de un cilindro
dado su radio (R) y altura (H).
32. DIAGRAMA DE FLUJO
Un Diagrama de Flujo representa la
esquematización gráfica de un algoritmo, el cual
muestra gráficamente los pasos o procesos a
seguir para alcanzar la solución de un problema.
33. DIAGRAMA DE FLUJO
Es un esquema para representar gráficamente un
algoritmo. Se basan en la utilización de diversos
símbolos para representar operaciones específicas, es
decir, es la representación grafica de las distintas
operaciones que se tienen que realizar para resolver un
problema, con indicación expresa el orden lógico en
que deben realizarse.
34.
35.
36.
37.
38.
39. Para la realización de un diagrama de flujo debemos tener el
análisis lógico de lo que se quiere expresar o representar, es
decir, hacer un breve razonamiento al problema o a dicha
situación para luego ser representada en diagrama de flujo
Notas del editor
Cuando hablamos de una computadora dentro de la programación, tenemos que hacer referencia a 3 componentes o elementos importantes, que es, la computadora como unidad de procesamiento, capas de manipular, procesar, recuperar y admiistrar información. Y los elementos que permiten la entradad (Inputs de datos) y el (OutPut de datos), también tenemos que conocer los tipos de computadoras los cuales estén determinados generalmente por la capacidad de la misma, el uso que se le esta dando y alguna otras especificiaciones en las cuales no estraremos ahorita en mayor detalles, por ejemplo los servidores que se tratan de computadoras sumamente potentes que permiten proporcionar información a una gran cantidad de usuarios(base de datos, archivos, admisnitracion de usuarios, maquinas, etc), la computadora personal, la computadora portátil, que usamos regularmente en el ámbito domestico o laboral y que permite el uso de información para un usuario final de una manera rápida y especifica a través de los programas de aplicación y lo dispositivos móviles, que en la actualidad han tenido un gran auge, como saben en la actualidad todos los teléfonos celulares tabletas y cualquier otro dispositivo de bolsillo posee la capacidad de procesamiento de un ordenador lo que se asemeja al uso de los otros tipos de computadoras por lo cual toman un lugar en los tipos de computadoras que hay en la actualidad.
Ahora dentro de la arquitectura de una computadora debemos distinguir 2 elementos el hardware que es la parte dura, o la parte física de una computadora y el software que por su analogía es la parte blanda pero hace referencia a los programas es decir la parte lógica de la computadora aquello que permite el procesamiento de la información, después tenemos aquí también la arquitectura de la computadora pero haciendo referencia a los dispositivos, como dispositivos de entrada tendríamos lo que vendría siendo el ratón, el teclado, los joystick, todo aquello que envia información hacia la unidad central de procesamiento o CPU, y los dispositivos de salida que son aquellos dispositivos que nos permiten mostrar la información previamente procesada por el CPU, aquí tendríamos los monitores, las impresoras, etc, todo aquello que le va a dar la información al usuario final, bien dentro del CPU tenemos que tener en cuanta un elemento muy importante que es la memoria
Nosotros vamos a distigir 2 tipos de memorias principales, existe una tercera que es la ROM pero por su utilida dno la vamos a incluir dentro de este aspecto, la memoria ram interna o también llamada memoria real, es la que permite llevar a cabo los procesos en un tiempo determinado, en esta memoria se va a almacenar toda aquella información que esta corriendo de manera real o en tiempo real dentro de la computadora, por ejemplo ahorita que estamos proyectado este presentación estamos haciendo uso de la memoria ram para tener dispuestos todos los recursos necesarios para esta presentación a diferencia de la memoria externa que se encarga de almacenar toda la información de ordenador también denominada memoria de almacenamiento o almacenamiento masivo, aquí se va a grabar la información no necsariamente tiene que estar disponible en todo momento, sino únicamente cuando se envia una indicación para recuperar algún archivo, es cuando entra en acción, la memoria ram en volátil lo que quiere decir que una vez que se ha terminado de ejecutar el proceso esa información es borrada y únicamente se va a recuperar aquello que se halla grabado dentro de la memoria externa o de almacenamiento masivo,
Aquí tenemos las unidades de almacenamiento, que es la manera en la que una computadora almacena la información, donde la unidad mínima es el bit que corresponde a un 1 o un 0, entones para un programa pues esta compuesto piues por una cantidad impresionantes de bit, y después dependiendo de numero de bit que componene un elemento va cambiando de nombre por ejemplo, Byte esta compueto por 8 bits, a partir de esta unidad sige el kilobite que va a tener una relacuion de 1024 con relación a su antecesor inmediato, por ejemplo el kilobyte esta compuesto por 1024 bites, el megabyte por 1024 kilobyte, y así sucesivamente, de manera comercial el terabyte es la unidad de información mas grande que se encuentra, aunque existen unidades mayores como exabyte petabyte, etc. Y pues esto hace referencia a la unidad de almacenamiento que tiene la memoria de la computadora.
El siguiente tema que vamos a tratar es el sistema de numeración, debido a que la computadora, en especifico el lenguaje maquna esta compuesto en base binaria, nosotros tenemos que conocer a que se refiere los sistemas de numeración y en especifico las bases, la base de refiere al numero total de sismbolos que utiliza un sistemas, es decir por ejemplo, el sistema decimal la base es 10 ya que esta compuesto del 0 al 9 por 10 símbolos, en el caso del sistema binario la base es 2 ya que únicamente emplea el 0 y 1, así de manera con la octal va a ser 8 simboloas la hexadecimal y así sucesivamente, luego el teorema fundamental de la numeración va a ser el teorema que no permite saber el valor decimal de cualquier otra base es decir nosotros generalmente estamos acostumbrados a tener como referente la base decimal para todas las operaciones que realizamos, sin embargo en la computación no va a ser igual en ocasiones va a ser necesario que nosotros combiratmos una base en otra base diferente que podría ser la binaria la octal o exadecimal a una base decimal, y aquí es donde tenemos que implementar esta formula, que a continuación vamos a conocer como se utiliza
En la clase anterior vimos la forma de pasar cualquier base a decimal, hoy vamos a ver como se utiliza
y como ven tenemos nuevamente la formula escrita, sin las sustituciones correspondientes a un ejercicio real y vamos a conocer a que hacer referencia cada uno
Leer lo que dice x: es decir al numero que nosotros deseamos convertir el numero deacuerdo a la posición, leer el siguiente item, por lo que si vemos el ejemplo la unidad tendría el subíndice 0 y como dice el índice 1 los decimales, y así sucesivametne luego la posición -1 va a representar de igual manera los decimales las decenas las centenas etc pero después del punto decimal
Y la B es la base del sistema que se utiliza para representar el numero
Eentonces X es el numero como tal el 1 el 5 el 3 el 6, el subíndice de la x representa la posición de los números la b pues la base a la que se encuentra dicho numero en este ejemplo la base es octal por lo tanto vamos a colocar en todas las b un 8 y el exponente de la b va a ser la potencia que devemos elevar dicha base. Entonces en ell caso de 153.6 el proces es, entonce el resultado de convertir de octal a decimal el numero seria 107.75
Seguimmos el mismo teorema a ver resolvamolos,
De esta manera cualquier base lo podemos convertir siguiendo este teorema
Seguimmos el mismo teorema a ver resolvamolos,
De esta manera cualquier base lo podemos convertir siguiendo este teorema
Ahora de decimal abinario, cuando queremos convertir una base a sistema bianrio entonces lo que se tiene que hacer es dividirlo por la base a la que lo queremos convertir, en este caso se trara de la base bianria en muero decinmal que tenemos es 39 entonces 39 entre 2 es 19 y seguir el ejemplo de diapositiva…. Y así sucesibamenteo en todas las operaciones.
La importancia de el código binario es que es el leguaje maquina, es decir es el unic lenguaje que la computadora reconoce de manera precisa y inequívoca, entonces los programadores y desarroladores a lo largo de la historia han tenido que hacer la relación de un determinado código binario a su analogía correspondiente al lenguaje humano,
El código ascci es un lenguaje que se ha empleado a lo largo de muchos años para representar los diferentes caracteres de el alfabeto humano en ell leguaje maquina en un inicio solamente estaba compuesto por 8 bits pero esto no era suficiente para cubrir todos los lenguajes o todos los alfabetos diferentes al ingles, es por ello que se agrego un 8vo bit lo que dio la capacidad de representar otros caracteres sdistintos al idioma inlges sobre todo para Europa occidental sin embargo esto todavía no fue suficiente como para que se pudiera cubrir todo los símbolos de allí surge el códifo Unicode que puede tratar hasta 4 byte o en otras palabras cuatro bloque de 4 bits, los que nos da un total de 16 bits lo que es capaz de codificar cualquier carácter en cualquier lengua del planeta utilizando el mismo conjunto de códigos, y esto facilta muchiso y estandariza muchísimo los signos que nosotros implementemos y en la diapositiva podemos verl algunas letras que no corresponden a ningún alfabeto sono que son símbolos japoneses, chinos, etc, y que gracias al Unicode lo podemos representar,,
Sin embargo a pesar de que este estándar cubre todas las necesidades, el código assci debido a su derecho de anterioridad, pues se posiciono como rival por lo tanto ambos siguen vigentes y es de suma importancia tenerlos encuenta al momento de estar codificando,
Y todavía la situación no termina allí nosotros para representar símbolos ya vimos el ascci y el Unicode, pero la computadora no únicamente procesamos esta información también tenemos que procesar audio imágenes videos, o la combianacion de todos,, y esto no seria posible únicamente al trabajar con símbolos, aquí se vio la necesidad de condificar en binario, cada pixel es decir cada punto distingible de una imagen lo codificamos a un sistema binario uy tenemos 3 bytes el perimero representa al color rojo el siguiente representa al verde y el otro al color azul dependiendo de las concentraciones de cada uno de estos bytes es color resultanto y aquí podemos ver la ejemplificación en esta imagen.
Aquí donde se muestras estos 3 pixeles con las concentraciones de porcentajes de cada uno de estos, pero cada uno de estos es un byte que tiene una determinada codificación binaria, pero allí no termina todo porque en las imágenes no solamente tenemos que grabar los pixeles, sino también la imagen el modelo de color y por eso es muy coimpletjo para una computadora procesar estos datos,,
El sistema operativo asigna recursos, planifica el uso de recursos y tareas del computador, y monitoriza a las actividades del sistema informático. Estos recursos incluyen memoria, dispositivos de E/S (Entrada/Salida), y la UCP (Unidad Central de Proceso). El sistema operativo proporciona servicios tales como asignar memoria a un programa y manipulación del control de los dispositivos de E/S tales como el monitor el teclado o las unidades de disco.
Cuando un usuario interactúa con un computador, la interacción está controlada por el sistema operativo. Un usuario se comunica con un sistema operativo a través de una interfaz de usuario de ese sistema operativo. Los sistemas operativos modernos utilizan una interfaz gráfica de usuario, IGU (Graphical User Interface, GUI) que hace uso masivo de iconos, botones, barras y cuadros de diálogo para realizar tareas que se controlan por el teclado o el ratón (mouse) entre otros dispositivos.
Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevos programas, así como instruir a la computadora para que los ejecute.
Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas. El proceso de traducir un algoritmo en pseudocódigo a un lenguaje de programación se denomina codificación, y el algoritmo escrito en un lenguaje de programación se denomina código fuente.
En la realidad la computadora no entiende directamente los lenguajes de programación sino que se requiere un programa que traduzca el código fuente a otro lenguaje que sí entiende la máquina directamente, pero muy complejo para las personas; este lenguaje se conoce como lenguaje máquina y el código correspondiente código máquina. Los programas que traducen el código fuente escrito en un lenguaje de programación —tal como C++— a código máquina se denominan traductores. El proceso de conversión de un algoritmo escrito en pseudocódigo hasta un programa ejecutable comprensible por la máquina, se muestra en la Figura 1.20. Hoy en día, la mayoría de los programadores emplean lenguajes de programación como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, JavaScript..., aunque todavía se utilizan, sobre todo profesionalmente, los clásicos COBOL, FORTRAN, Pascal o el mítico BASIC. Estos lenguajes se denominan lenguajes de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus algoritmos en programas escritos en alguno de estos lenguajes de programación.
Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas. El proceso de traducir un algoritmo en pseudocódigo a un lenguaje de programación se denomina codificación, y el algoritmo escrito en un lenguaje de programación se denomina código fuente.
En la realidad la computadora no entiende directamente los lenguajes de programación sino que se requiere un programa que traduzca el código fuente a otro lenguaje que sí entiende la máquina directamente, pero muy complejo para las personas; este lenguaje se conoce como lenguaje máquina y el código correspondiente código máquina. Los programas que traducen el código fuente escrito en un lenguaje de programación —tal como C++— a código máquina se denominan traductores. El proceso de conversión de un algoritmo escrito en pseudocódigo hasta un programa ejecutable comprensible por la máquina, se muestra en la Figura 1.20. Hoy en día, la mayoría de los programadores emplean lenguajes de programación como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, JavaScript..., aunque todavía se utilizan, sobre todo profesionalmente, los clásicos COBOL, FORTRAN, Pascal o el mítico BASIC. Estos lenguajes se denominan lenguajes de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus algoritmos en programas escritos en alguno de estos lenguajes de programación.
Los programas intérpretes clásicos como BASIC, prácticamente ya no se utilizan, más que en circunstancias especiales. Sin embargo, está muy extendida la versión interpretada del lenguaje Smalltalk, un lenguaje orientado a objetos puro. El sistema de traducción consiste en: traducir la primera sentencia del programa a lenguaje máquina, se detiene la traducción, se ejecuta la sentencia; a continuación, se traduce la siguiente sentencia, se detiene la traducción, se ejecuta la sentencia y así sucesivamente hasta terminar el programa.
La traducción del programa completo se realiza en una sola operación denominada compilación del programa; es decir, se traducen todas las instrucciones del programa en un solo bloque. El programa compilado y depurado (eliminados los errores del código fuente) se denomina programa ejecutable porque ya se puede ejecutar directamente y cuantas veces se desee; sólo deberá volver a compilarse de nuevo en el caso de que se modifique alguna instrucción del programa. De este modo el programa ejecutable no necesita del compilador para su ejecución. Los lenguajes compiladores típicos más utilizados son: C, C++, Java, C#, Pascal, FORTRAN y COBOL.
Los pasos para la resolución de un problema son: 1. Diseño del algoritmo, que describe la secuencia ordenada de pasos —sin ambigüedades— que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo.) 2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación.) 3. Ejecución y validación del programa por la computadora.
Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se realizarán sin importar el idioma del cocinero. En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan sólo un medio para expresar un algoritmo y una computadora es sólo un procesador para ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente
La definición de un algoritmo debe describir tres partes:
Entrada,
Proceso y
Salida.
En el algoritmo de receta de cocina citado anteriormente se tendrá:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato (por ejemplo, cordero).
Los pasos del algoritmo son:
Inicio.
Leer el pedido.
Examinar la ficha del cliente.
Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido.
Fin.
Inicio.
Poner X igual a 2 (x = 2, x variable que representa a los divisores del número que se busca N).
Dividir N por X (N/X).
Si el resultado de N/X es entero, entonces N es un número primo y bifurcar al punto 7; en caso contrario, continuar el proceso.
Suma 1 a X (X ← X + 1).
Si X es igual a N, entonces N es un número primo; en caso contrario, bifurcar al punto 3.
Fin.
Por ejemplo, si N es 131, los pasos anteriores serían:
Inicio.
X = 2.
3 y 4. 131/X. Como el resultado no es entero, se continúa el proceso.
X ← 2 + 1, luego X = 3.
Como X no es 131, se bifurca al punto 3.
3 y 4. 131/X resultado no es entero.
X ← 3 + 1, X = 4. 6. Como X no es 131 bifurca al punto 3.
3 y 4.131/X..., etc.
7. Fin.
Inicio.
establecer SUMA a 0.
establecer NUMERO a 2.
Sumar NUMERO a SUMA. El resultado será el nuevo valor de la suma (SUMA).
Incrementar NUMERO en 2 unidades.
Si NUMERO =< 1.000 bifurcar al paso 4;
En caso contrario, escribir el último valor de SUMA y terminar el proceso.
Fin.
Inicio.
establecer SUMA a 0.
establecer NUMERO a 2.
Sumar NUMERO a SUMA. El resultado será el nuevo valor de la suma (SUMA).
Incrementar NUMERO en 2 unidades.
Si NUMERO =< 1.000 bifurcar al paso 4;
En caso contrario, escribir el último valor de SUMA y terminar el proceso.
Fin.