Lengua de Programa, Programa de Maquina
LENGUAJE DE PROGRAMACIÓN Y PROGRAMA DE MAQUINA
CONCEPTOS BÁSICOS RELACIONADOS CON LA
PROGRAMACIÓN Y LA ESTRUCTURAS DE CONTROL
La Programación esta referida a la preparación de máquinas para
que cumplan con una cierta tarea en un momento determinado.
Además esta
área se encuentra muy asociada a la
creación de aplicaciones informáticas y videojuegos traducida en el proceso por el cual una persona
desarrolla un programa valiéndose de una herramienta que le permita escribir el
código (el cual puede estar en uno o varios lenguajes, tales como C++, Java y
Python)
Programa. Consiste en una cadena de instrucciones más
un conjunto de datos sobre el cual se trabaja. Estas instrucciones son
normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados
por el propio programa o eventos externos.
Para realizar este
tipo de programas son necesarias las estructuras de control de flujo, que son
instrucciones del tipo "si se
cumple esta condición, hazlo; si no se cumple, haz esto otro". También
existen instrucciones del tipo "repite
esto mientras se cumpla esta condición".
Lenguaje
de Máquina, representa el sistema
de códigos directamente interpretable por un circuito microprogramable, como el
microprocesador de una computadora o el
microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan
acciones a ser tomadas por la máquina.
El lenguaje
máquina es el único que
entiende la computadora digital, es su "lenguaje natural". En él sólo
se pueden utilizar dos símbolos: el cero (0) y el uno (1). Por ello, al lenguaje máquina también se le denomina
lenguaje binario. La computadora sólo puede trabajar con bits, sin embargo,
para el programador no resulta fácil escribir instrucciones tales como:
10100010
11110011
00100010
00010010
|
Una dificultad añadida a los lenguajes
binarios es el hecho de que son dependientes de la máquina (o mejor dicho,
del procesador), es decir, cada
procesador utiliza un lenguaje máquina distinto (un juego de instrucciones
distinto) que está definido en su propio hardware. En consecuencia,
un programa escrito para un tipo de procesador no se podrá usar en otro
equipo que utilice un procesador distinto, ya que, el programa no será
portable o transportable. Para que dicho programa pueda funcionar en una
segunda computadora, habrá que traducir todas las instrucciones escritas en
el lenguaje máquina del primer equipo al lenguaje binario de la segunda
computadora.
|
|
|
|
Compilación. Consiste en transformar un programa escrito
en un lenguaje en otro programa creado en lenguaje máquina
Es el
proceso que lleva a la traducción de un software. Esta compilación supone que
un programa escrito en un cierto lenguaje de programación es convertido en un
programa desarrollado en un lenguaje diferente, que suele ser un lenguaje
máquina (un código que puede interpretar un microprocesador de forma directa). La
compilación se desarrolla en dos grandes fases: primero se analiza el programa
fuente y luego se sintetiza el programa objeto.
Código. es una combinación de caracteres que se
emplea para crear y entender mensajes secretos.
Se conoce como código fuente al texto
desarrollado en un lenguaje de programación y que debe ser compilado o
interpretado para poder ejecutarse en un ordenador, también llamado
computadora.
EL CÓDIGO es un sistema de signos y/o
símbolos que requieren de un entrenamiento o aprendizaje por parte del usuario
para poder ser empleados correctamente.
El código ASCII (sigla que comúnmente se pronuncia “asqui” y que
significa American Standard Code for Information Interchange, o bien Código
Estándar Norteamericano para Intercambio de Información) es una representación
de los caracteres alfanuméricos que facilita la comunicación entre distintos
dispositivos digitales. Las letras, los números, los símbolos y los acentos
tienen su correspondiente número ASCII, de manera que programas desarrollados
por diferentes personas y equipos fabricados por una u otra compañía pueden
entender el texto de la misma forma.
La Teoría de la
Comunicación conoce como CÓDIGO al conjunto de signos que deben ser
compartidos por el emisor y el receptor de un mensaje para que éste sea
comprendido. Si un hombre habla en francés a otra persona que no conoce dicho
idioma, la comunicación no será posible ya que el código empleado para la
transmisión del mensaje no es conocido por ambos.
INTERPRETACIÓN: Es un programa que analiza y ejecuta otros
con lenguajes más complejos. En el contexto de la informática, se llama
intérprete a aquel programa que analiza y ejecuta otros programas pero que se
hayan codificados con un lenguaje de mayor complejidad.
Consiste en
analizar línea a línea, hasta que se traduzca lo suficiente como para poder
realizar una tarea. Cabe mencionar que los lenguajes de programación se dividen
en dos grandes grupos, donde los que pueden ser compilados no pueden ser
interpretados, y viceversa
ESTRUCTURAS DE CONTROL son aquellas que permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede:
· De acuerdo con una condición, ejecutar un grupo u
otro de sentencias (If-Then-Else)
· De acuerdo con el valor de una variable, ejecutar
un grupo u otro de sentencias (Select-Case)
· Ejecutar un grupo de sentencias mientras se
cumpla una condición (Do-While)
· Ejecutar un grupo de sentencias hasta que
se cumpla una condición (Do-Until)
· Ejecutar un grupo de sentencias un número
determinado de veces (For-Next)
Todas las
estructuras de control tienen un único punto de entrada, y un punto de salida.
Ahora bien, Las estructuras
de control, se pueden clasificar en:
Secuenciales, donde las instrucciones se
ejecutan una después de la otra, en el orden en que están escritas, es decir,
en secuencia.
Iterativas, o de repetición, aquellas que se inician o repiten un bloque de instrucciones
si se cumple una condición o mientras se cumple una condición. Las instrucciones iterativas representan la ejecución
de instrucciones en más de una vez.
Selectivas
representan instrucciones que pueden o no ejecutarse, según el cumplimiento de
una condición
Las estructuras de
control pueden dividirse en dos: Estructuras de control Condicional y
Estructuras de control Repetitivo. Veamos:
Estructuras de
control condicionales Las estructuras de
control condicional son las que incluyen alternativas de selección en base al
resultado de una operación booleana (El resultado de una operación booleana es
siempre verdadero o falso), como por ejemplo, una comparación (A=B). Según la
expresión sea cierta o falsa, se ejecutará un trozo de código u otro. Es el
caso de la sentencia IF(Si) THEN(Entonces) ELSE(Sino)
Otra sentencia de
control son las de tipo SWITCH CASE. En este tipo de sentencias se
especifica la variable a comparar y una lista de valores con lo que comparar.
Aquel que sea el verdadero, se ejecutará:
Otras herramientas
imprescindibles del control de la ejecución de nuestro código son los BUCLES o
CICLOS. Consisten en un método que permite repetir un trozo de código varias
veces.
ESTRUCTURAS DE
CONTROL CICLICAS (CICLOS O BUCLES) Los bucles o
ciclos, tal como su nombre insinúa, son estructuras de control iterativas, que
permiten repetir una cantidad de veces cualquiera una serie de instrucciones.
Existen básicamente dos tipos de ciclos o bucles: los ciclos for y los ciclos
while, veamos:
BUCLE O CICLO FOR. consiste en una sentencia que engloba un grupo de
instrucciones y tiene una variable(normalmente llamada i, de tipo entero) cuyo
valor se va modificando en cada iteración.
BUCLE O CICLO
WHILE. consiste en un bucle en el que el código se
repite hasta que se cumpla alguna condición booleana (es decir, una expresión
que dé como resultado verdadero o falso). Con el ciclo while generalmente es
dificil controlar el número de veces que se repetirán las instrucciones.
Quizá la
estructura de control más básica y la más utilizada sea IF-ELSE: La
instrucción elseif, que como su nombre indica, es una combinación de if y else.
Añade una nueva condición en el caso de que la primera fuera falsa y sólo
ejecuta las instrucciones si esta nueva condición es verdadera.
Ej.
if ($a > $b) {
// Ejecuta esto si
a es Mayor que b
echo("a es
mayor que b");
} elseif ($a ==
$b) {
// si a no es
mayor que be, comprueba si a es igual a b echo("a es igual que b");
} else {
// si no se
cumplen las anteriores condiciones ejecuta ésta hecho ("a es menor que b");
}
if (condicion) {, //
instrucciones que hay que ejecutar si la condición es verdadera
} else { , //
Instrucciones que hay que ejecutar si la condición es falsa
}
En castellano
sería algo así:
Si (Tal cosa es
cierta) {
// Haz esto.
} En caso
contrario {
// Haz esto otro
}
La cláusula else
(la parte del if-else que indica lo que hay que hacer si la condición es falsa)
es opcional. No es necesario ponerla. Por ejemplo puedo querer un script que
sólo me salude a mi.
BUCLES: WHILE- Los bucles permiten utilizar una condición, para determinar
cuántas veces se quiere ejecutar una instrucción:
While (condicion)
{
// Instrucciones a
ejecutar una y otra
//vez mientras la
condición sea cierta
}
El funcionamiento
es muy parecido al del if-else, la diferencia radica en que si la condición es
cierta y se ejecuta la orden, la condición vuelve a comprobarse una y otra vez
mientras siga siendo cierta. En cambio en el if-else sólo se comprueba la
condición una vez, si es cierta se ejecuta la instrucción y se sigue con el
programa.
$cantidad = 1;
$cantidad es igual a uno
while ($cantidad
< 10) Mientras el valor de la variable $cantidad sea menor que 10
echo (“$cantidad
“); Escribe el valor de cantidad
$cantidad++ (suma
1 al valor que tenga $cantidad, también podríamos haber escrito $cantidad =
$cantidad +1)
Observa el
funcionamiento del script paso a paso:
$Cantidad es igual
a 1
1 es menor que 10
Escribo 1 en
pantalla
$cantidad = 2
(1+1)
2 es menor que 10
Escribo 2 en
pantalla
$cantidad = 3
(2+1)
Ejecutando este
script, en pantalla se vería así: 1 2 3 4 5 6 7 8 9.
BUCLES:
DO WHILE: Los bucles do while, son muy parecidos a los
bucles while, sólo que se comprueba si la condición es cierta, al final del
bucle en lugar de al principio. Así las instrucciones se ejecutan siempre al
menos una vez,
lo que no ocurre
en las condiciones while si la condición es falsa.
$cantidad = 1;
do {
echo ($cantidad);
} while
($cantidad<1);
Traducido sería
$cantidad = 1
do ( // ejecuta
echo ($cantidad); escribe el valor de cantidad
while
($cantidad<1); mientras cantidad sea mayor que 1 -> la condición es falsa
luego el programa sale del bucle, pero ha escrito una vez el valor de
$cantidad. El resultado en pantalla sería 1
BUCLES: FOR : Los bucles for funcionan exactamente igual que en C
. Con una sola instrucción se controla todo el bucle, así que para los vaguetes
está muy bien.
for (valor
inicial; condicion; ejecutar en cada blucle) {
// Instrucciones a
ejecutar mientras la condición sea cierta
}
Ejemplo
for ($cantidad =
1; $cantidad <10; $i++) {
echo("$cantidad");
}
Traducido es igual
a:
Cantidad es igual
a 1, mientras cantidad sea menor que 10 escribe cantidad en pantalla y después
súmale 1 al valor de cantidad. Es decir, es exactamente el mismo ejemplo que se
observa en el bucle while pero de otra manera.
- SWICH/CASE
Permite ejecutar
un bloque de código u otro dependiendo del valor de una variable.
Ej.
Primero para
asignar un valor a la variable, se a hace un formulario:
<html>
<head>
<title> Ejemplo de switch </title>
</head>
<body>
<form action="switch.php" method="get">
¿Quién eres?<br />
<input type="radio"
name="quien" value="cgus" /> cgus<br />
<input type="radio"
name="quien" value="xela" /> xela<br />
<input type="radio"
name="quien" value="adanedhel" /> adanedhel<br />
<input type="radio" name="quien"
value="jorgito" /> jorgito<br />
<input type="submit"
name="reset" value=" Enviar " />
</form>
</body>
</html>
Switch.php
<html>
<head>
<title>Ejemplo de Swich</title>
</head>
<?php
switch($quien) {
case
"cgus": // Primera posibilidad
echo ("
$quien es todo un leader ");
break;
case
"adanedhel": // segunda posibilidad
cho ("$quien
es un elfo");
break;
case
"xela": // tercera posibilidad
echo ("$quien
es normal");
break;
default: //
Posiblidad si no es ninguna de las anteriores
echo ("$quien
es un desconocido");
}
?>
</body>
</html>
IDENTIFICADORES: Un identificador es el nombre de variables,
métodos, clases e interfaces. Un identificador es una secuencia ilimitada de
caracteres alfabéticos o dígitos (unicode) que comienzan con un carácter
alfabético. Los nombres pueden incluir el carácter
subrayado (_) y el
dólar ($).
NOMBRES VÁLIDOS
NOMBRES NO VÁLIDOS representan total longitud persona distancia una
práctica frecuente, es crear un
identificador como una concatenación de dos o más palabras, reparadas por un
carácter subrayado o utilizando letras mayúsculas en la primera letra de las
palabras.
Salario_ mensual
posición Relativa elemento Tabla
Convenio Los
identificadores que comienzan con una letra mayúscula se reservan solo para nombres de clase o interfaces.
Los
identificadores que están todos en mayúsculas representan constantes.
Los nombres de las
variables y métodos comienzan con letras minúsculas.
TIPOS DE DATOS. Los tipos de datos más
simples en Java son: enteros, coma, flotante, boolean, lógicos y caracteres
LITERALES. Los literales permiten
valores de tipos primitivo, el tipo string o null se escriben directamente como
un texto de programa
VARIABLES. Las variables son unidades
básicas de almacenamiento en Java .Una variable se define por la combinación de
un identificador, un tipo y un inicializador opcional. Además las variables
tiene un ámbito que define su visibilidad y una duración.
MODIFICACIONES DE VARIABLES: Las variables se pueden modificar mediante
indicadores.
Public .La clase o variable de instancia es
accesible desde todos los ámbitos.
Protected. La clase o variable de instancia es
accesible solo en el ámbito actual de la clase, el ámbito del paquete actual y
todas las subclases de la clase actual.
Private. La clase o variable de instancia es
accesible solo en el ámbito actual de la clase.
Final. La variable es una constante , de modo que
su valor no se puede modificar.
Static. La variable es una variable de clase,
compartida entre todos los objetos instancia de una clase.
Transfert. Se declara que no es parte de un estado
persistente del objeto .
Volatile. Se necesita a veces cuando se utiliza
una variable instancia por ¿¿ para prevenir al compilador de su optimización.
ARRAYS. Un array es un grupo de variables de
tipos similares que se conocen con un nombre común. Los diferentes elementos
contenidos en un array se definen por un índice y se acceden a ellos utilizando
su índice; los índices arrancan en 0.
Los arrays pueden ser multidimensionales y al
igual que los objetos de la clase se crean utilizando la palabra reservada new.
EXPRESIONES. Las expresiones se utilizan
para buscar, calcular y asignar valores. Excepto para una llamada a un método
con un tipo de retorno void, todas las expresiones devuelvan un valor,
permitiendo a las expresiones combinarse en más expresiones complejas
Las expresiones principales traen o crean valores
y son las siguientes:
Las palabras reservadas this, super y null
Un valor literal
Una expresión con paréntesis
Una expresión de campo, utilizando ´.´
Una expresión de índices de array, utilizando
´[]´
Una expresión de llamada a métodos
Una expresión de asignación.
OPERADORES
Los operadores permiten a las expresiones
combinarse en expresiones más complejas. Java proporciona una colección grande
de operadores que se pueden utilizar para manipular datos, incluyendo operadores
aritméticos, asignación, lógicos y de moldeado.
Las reglas de asociación y de prioridad se
utilizan para determinar como evaluar expresiones utilizando operadores.
CLASES Una clase es un colección de
miembros dato y métodos que define un objeto específico. Es la construcción
fundamental del lenguaje Java. Una clase puede ser definida por el usuario o
por uno de los paquetes incorporados a Java y se declara con la palabra
reservada class. El convenio utilizado para nombrar las clases utilizar una
letra mayúscula para la primera letra del nombre de la clase.
CONSTRUCTORES Todos los objetos se deben
inicializar cuando se crean, de modo que ellos nacen con un estado bien
definido. Un constructor es un tipo especial de método que inicializa un objeto
inmediatamente para su creación. Tiene el mismo nombre que la clase y sintácticamente
es similar a un método. Los constructores no devuelven ningún tipo y se llaman
automáticamente cuando se crea un objeto de la clase.
El constructor se puede sobrecargar para dar
múltiples constructores con diferentes tipos de argumento parado. Los
constructores se definen generalmente como public. Los valores separan al
constructor situándolos dentro e los paréntesis de las sentencias de creación
de objetos de la clase.
LA PALABRA RESERVAD THIS La palabra this representa
una referencia que se pasa ,implícitamente a cada método no estática. La
referencia es al objeto innovador
SINTAXIS ALTERNATIVA
If con construcción alternativa
<?php if ($a==5): ?>
A es igual a 5
<?php endif; ?>
A es igual a 5
<?php endif; ?>
if con elseif y else en el formato alternativo:
if ($a == 5):
print "a es igual a 5";
print "...";
elseif ($a == 6):
print "a es igual a 6";
print "!!!";
else:
print “a no es ni 5 ni 6”;
endif;
if ($a == 5):
print "a es igual a 5";
print "...";
elseif ($a == 6):
print "a es igual a 6";
print "!!!";
else:
print “a no es ni 5 ni 6”;
endif;
While utilizando la construcción alternativa
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
while ($i <= 10):
print $i;
$i++;
endwhile;
For con la construcción alternativa
for (expr1; expr2; expr3): sentencia; ...; endfor;
Páginas Multiuso
Páginas multiuso son aquellas que pueden mostrar un
contenido completamente diferente dependiendo de alguna condición. De esta
forma, podemos hacer varias cosas en un solo documento.
La estructura habitual de una página multiuso es:
<html>
<head>
<title> Página Multiusos </title>
</head>
<body>
<php?
If (condición) { ?>
<!-- HTML que se mostrará si la condición es
cierta -->
<?php }else{ ?>
<!-- html que se mostrará si la condición es
falsa -->
<?php } ?>
</body>
</html>
O utilizando la
sintaxis alternativa que acabamos de ver:
<html>
<head>
<title> Página Multiusos </title>
</head>
<body>
<php?
if (condición): ?>
Es importante
resaltar que con La Programación Estructurada se puede:
.Mejorar la
productividad de los programadores.
Asimismo, se puede
mejorar la legibilidad del código resultante.
A menudo es
necesario ejecutar una instrucción o un bloque de instrucciones más de una vez.
Ejemplo
Implementar un
programa que calcule la suma de N números leídos desde teclado.
Podríamos escribir
un programa en el que apareciese repetido el código que deseamos que se ejecute
varias veces, pero…
ß Nuestro programa
podría ser demasiado largo.
ß Gran parte del
código del programa estaría duplicado, lo que dificultaría su mantenimiento en
caso de que tuviésemos que hacer cualquier cambio, por trivial que fuese éste.
ß Una vez escrito
el programa para un número determinado de repeticiones (p.ej. sumar matrices
3x3), el mismo programa no podríamos reutilizarlo si necesitásemos realizar un número
distinto de operaciones (p.ej. matrices 4x4).
Las estructuras de
control repetitivas o iterativas, también conocidas como “bucles”, nos permiten
resolver de forma elegante este tipo de problemas. Algunas podemos usarlas
cuando conocemos el número de veces que deben repetirse las operaciones.
Otras nos permiten
repetir un conjunto de operaciones mientras se cumpla una condición y de Control
Avanzadas.
Esta es una de las
cosas que permiten que la programación se rija por los principios de la programación
estructurada.
La ejecución de un
programa estructurado progresa disciplinadamente, en vez de saltar de un sitio
a otro de forma impredecible
Gracias a ello,
los programas…resultan más fáciles de probar, se pueden depurar más fácilmente
y se pueden modificar con mayor comodidad.
Por defecto, las
instrucciones de un programa se ejecutan secuencialmente: El orden secuencial
de ejecución no altera el flujo de control del programa respecto al orden de
escritura de las instrucciones. Sin embargo, al describir la resolución de un
problema, es normal que tengamos que tener en cuenta condiciones que influyen
sobre la secuencia de pasos que hay que dar para resolver el problema:
Las estructuras de
control condicionales o selectivas nos permiten decidir qué ejecutar y qué no
en un programa
Ejemplo típico:
Realizar una división sólo si el divisor es distinto de cero.
La estructura de
control condicional if, La sentencia if nos permite elegir si se ejecuta o no
un bloque de instrucciones.
Consideraciones
acerca del uso de la sentencia if
- Olvidar los
paréntesis al poner la condición del if es un error sintáctico (los paréntesis
son necesarios)
- Confundir el
operador de comparación == con el operador, de asignación = puede producir
errores inesperados
- Los operadores
de comparación ==, !=, <= y >= han de, escribirse sin espacios. - => y
=< no son operadores válidos en C.
- El fragmento de
código afectado por l r la condición del if debe sangrarse para que
visualmente se interprete correctamente el ámbito de la sentencia if:
if (condición) {
// Aquí se incluye
el código
// que ha de
ejecutarse sólo
// si se cumple la
condición del if
// (sangrado para
que se vea dónde
// empieza y dónde
acaba el if)
Error común:
if (condición); sentencia;
es interpretado como if (condición)
; // Sentencia
vacía
sentencia;
¡¡¡La sentencia
siempre se ejecutaría!!!
Ejemplo
Decir si un número
es positivo
La cláusula else
Una sentencia if,
cuando incluye la cláusula else, permite ejecutar un bloque de código si se
cumple la condición y otro bloque de código diferente si la condición no se
cumple.
En programación
estructurada sólo se emplean tres construcciones:
Secuencia, Conjunto
de sentencias que se ejecutan en orden
Ejemplos:
Sentencias de
asignación y llamadas a rutinas.
Selección: Elige
qué sentencias se ejecutan en función de una condición.
Ejemplos:
Estructuras de
control condicional if-then-else y case/switch
Iteración: Las
estructuras de control repetitivas repiten conjuntos de instrucciones.
Ejemplos:
Bucles while, do...while y for.
Teorema de Böhm y
Jacopini (
Los lenguajes de
programación modernos tienen estructuras de control similares. Básicamente lo
que varía entre las estructuras de control de los diferentes lenguajes es su
sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura
PROGRAMACIÓN ESTRUCTURADA.
Estructuras condicionales La sentencia if
La cláusula else
Encadenamiento y anidamiento
El operador condicional ?:
La sentencia switch
Estructuras repetitivas/iterativas
El bucle while
El bucle for
El bucle do…while
Bucles anidados
Cuestiones de estilo
Vectores y matrices
Algoritmos de ordenación
Algoritmos de búsqueda
Otros lenguajes
ofrecen estructuras diferentes, como por ejemplo los comandos guardados.
Comentarios
Publicar un comentario