Lenguajes de Programación: Tipos y Uso
Lenguajes de Programación: Tipos y Uso
Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas, expresadas en
forma de instrucciones y relaciones lógicas, mediante las cuales se construye el código fuente
de una aplicación o pieza de software determinado. Así, puede llamarse también lenguaje de
programación al resultado final de estos procesos creativos.
No deben confundirse, sin embargo, con los distintos tipos de lenguaje informático. Estos
últimos representan una categoría mucho más amplia, en donde están contenidos
los lenguajes de programación y muchos otros protocolos informáticos, como el HTML de
las páginas web.
El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para
su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes
entendibles por el hardware de la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos
fuente enormes donde encontrar un fallo es casi imposible.
El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por
abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje
se crearon los programas traductores para poder pasar los programas escritos en lenguaje
ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los
códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las
desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje
ensamblador, ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de
probar y mantener.
Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno
de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor
que entiendan el código fuente como las características de la maquina.
Suelen usar tipos de datos para la programación y hay lenguajes de propósito general
(cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos
científicos).
Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos
lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos
lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con
direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez
realizar operaciones de alto nivel.
Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una
manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad con que los
ejecutan las máquinas. Estos lenguajes permiten una máxima flexibilidad al programador a la
hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje
máquina y una expresión casi oral entre la escritura del programa y su posterior compilación.
Por lo general suelen estar orientados a objetos, a eventos o a funciones, pudiendo estos
combinarse. Asimismo, pueden ser compilados o interpretados. Algunos ejemplos
son: Java, PHP, Python, Javascript, C++.
En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus
instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes
procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de
ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas.
Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un
problema de procesamiento de datos de una manera más fácil y rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación
que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes
se llaman de tercera generación o de nivel alto, en contraposición a los de bajo nivel o de
nivel próximo a la máquina.
4.- COMPILADORES
La construcción de un compilador involucra la división del proceso en una serie de fases que
variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis
del programa fuente y la síntesis del programa objeto.
COMPILADOR
Para crear un proyecto, un archivo fuente asociado, compilar y ejecutar, se deben seguir
Aparece la ventana nuevo proyecto, en la que hay que elegir empty project, marcar la
Guardar este archivo en la carpeta donde hayamos guardado el proyecto. (Con este
compilador al crear un proyecto, no se crea por defecto un directorio para ese proyecto,
en nuestro disco).
IMPORTANTE
1- La función main no es de tipo void, sino que es int; por tanto, en lugar de incluir
2- Para que la ventana MS-DOS de salida, se mantenga en pantalla, hay que incluir
Nos muestra una pantalla del proceso de compilación, indicando el número de errores y
avisos
Pascal es un lenguaje de programación creado por el profesor suizo Niklaus Wirth entre los años 1968 y
1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación
a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el
tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación
de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipado. Esto implica
que:
CRT es la primera unidad que trataremos y es la encargada de gestionar (entre otras cosas) la
pantalla en modo texto. Para acceder a cualquier unidad, se emplea la sentencia Uses justo
después de Program y antes de las declaraciones de variables:
Write es la orden que permite escribir un texto en pantalla. El conjunto de todo lo que se
desee escribir se indica entre paréntesis. Cuando se trata de un texto que queremos que
aparezca tal cual, éste se encierra entre comillas (una comilla simple para el principio y otra
para el final).
Writeln, que es exactamente igual que Write con la única diferencia de que después de
visualizar el mensaje, el cursor (la posición en la que se seguiría escribiendo, marcada
normalmente por una rayita o un cuadrado que parpadea) pasa a la línea siguiente, en vez de
quedarse justo después del mensaje escrito.
Read (Identificador);
El identificador puede ser cualquier variable definida previamente, NO puede ser una
constante. Puede ser también un conjunto de variables, separadas entre comas, en este caso
se guardara el primer valor dado antes del [Enter] en el primer identificador proporcionado,
luego el segundo y así sucesivamente hasta el último identificador.
En caso de que se le indique a Read o ReadLn que lea un tipo específico de valor, y se le
proporcione otro diferente se generará un error y se detendrá la ejecución del programa.
Operaciones básicas
Las operaciones básicas en Turbo Pascal están formadas por dos partes: el operador y los
operandos.
Un operador es el símbolo que le indica al programa que operación realizará y los operandos
son los datos sobre los cuales se efectuará la operación.
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
El tipo de datos que pascal regresa como resultado de una operación dependerá del tipo de
datos usados como operandos. Por ejemplo, la suma de dos enteros da como resultado otro
entero, y la suma de dos números reales da como resultado otro número real.
La división de dos números, sin importar su tipo, dará como resultado un número real, así
que para dividir dos enteros, y obtener el resultado como entero, Turbo Pascal ofrece el
operador DIV, el cual da el resultado entero de una división entre enteros, y el operador
MOD que regresa el residuo de una división de enteros.
Su sintaxis es:
PROGRAM Operaciones_Básicas;
MOD 8;WriteLn ('La suma de 12 + 8 es igual a: ',Suma); WriteLn ('La resta de 12 - 8 es igual
a: ',Resta);WriteLn ('La multiplicación de 12 * 8 es igual a: ',Multiplicacion);WriteLn ('La
división de 12 / 8 es igual a: ',Division);WriteLn ('La división entera de 12 / 8 es igual a:
',Cociente_Entero);WriteLn ('El residuo de la división entera de 12 / 8 es:
',Residuo_Entero);
END.
Operadores de Relación
Los operadores relacionales nos sirven para determinar la relación que tiene una expresión
con otra. Los operadores relacionales que manejaremos enPascal son los siguientes:
Operadores Descripción
= Es igual a
<> No es igual a
> Es mayor que
<</b> Es menor que
>= Es mayor o igual que
<= Es menor o igual que
And y
Or o
Not no
Sentencia IF...THEN...ELSE
Esta expresión es utilizada para ejecutar una sentencia en el caso que una condición
establecida sea verdadera, de lo contrario se podra ejecutar una sentencia distinta. Su
sintaxis es:
La sección ELSE con su correspondiente sentencia son opcionales y pueden omitirse en caso
de no necesitarse.
Sentencias IF anidadas
Es posible utilizar en una expresión del tipo IF..THEN..ELSE una sentencia compuesta como la
sentencia a ejecutarse en caso de que la condición sea verdadera, así como en la sentencia
posterior a un ELSE, de esta forma podemos utilizar otra sentencia IF..THEN..ELSE dentro de
la anterior, para de esta forma evaluar varias condiciones una dentro de otra. Ejemplo:
IF Numero > 5 THENBEGINIF Numero <10 THEN Opcion :="Numero; IF Numero <30 THEN
Opcion2 :="Numero; END;
Ciclos FOR
El ciclo FOR repite una sentencia un determinado número de veces que se indica al momento
de llamar al ciclo.
Lo que hace FOR es que incrementa una variable en uno desde un valor inicial hasta un valor
final ejecutando en cada incremento la sentencia que se quiere repetir. Su sintaxis es:
Donde el identificador es la variable que se incrementará, inicio es el primer valor que tendrá
dicha variable y fin es el valor hasta el cual se incrementará la misma; instrucción es la
sentencia (sencilla o compuesta) que se ejecutará en cada incremento de la variable.
Una de las limitaciones de los ciclos FOR es que una vez iniciado el ciclo se ejecutará el
número de veces predefinido sin posibilidad de agregar o eliminar ciclos.
Es posible hacer que un ciclo cuente hacia atrás, es decir que la variable en lugar de
incrementarse se decremente. Para ésto cambiamos la palabra TOpor DOWNTO, y
colocamos el valor mayor a la izquierda y el menor a la derecha.
Ejemplo:
Ciclos WHILE
Los ciclos WHILE ofrecen la ventaja de que la ejecución se realiza mientras se cumpla una
condición, por lo tanto es posible controlar el número de repeticiones una vez iniciado el
ciclo. Su sintaxis es:
Donde condición es la condición que se evaluará, mientras ésta sea verdadera se ejecutará la
instrucción, que es una sentencia simple o compuesta.
Un programa que escriba los números del 1 al 50, utilizando el ciclo WHILE se vería como
sigue:
Al final del programa la variable Numero guardará el valor 51, que fué el valor que no
cumplió con la condición establecida en el ciclo WHILE.
Ciclos REPEAT-UNTIL
Este tipo de ciclos es muy parecido a los ciclos WHILE, la diferencia entre ambos es que en
WHILE la condición se evalúa al principio del ciclo, en cambio en REPEAT-UNTIL se evalúa al
final, lo que significa que en un ciclo REPEAT-UNTIL la sentencia se ejecutará por lo menos
una vez, cosa que puede no ocurrir en el ciclo WHILE. Ejemplo:
PROGRAM Ciclo_RepeatUntil;VARNumero : Integer;BEGINNumero := 1;REPEATWriteLn
(Numero);Numero := Numero + 1;UNTIL Numero = 50;END.
Para crear un buen programa es necesario dotarlo con capacidad de desición con base en las
variables o eventos definidos por el programador, para que el programa sea aplicable en un
entorno más generalizado y no solo para un problema específico.
Selecciones CASE
Esta forma de control se utiliza cuando se va a evaluar una expresión que puede contener
varios datos diferentes y en cada dato deberá realizar una acción especial. Por ejemplo, si se
crea un menú con diferentes opciones se realizará un determinado proceso para cada acción,
aunque la selección por parte del usuario se haga desde el mismo lugar.
CASE Numero OF1 : WriteLn('El número fué 1');2 : WriteLn('El número fué 2');3 :
WriteLn('El número fué 3');4 : WriteLn('El número fué 4');5 : WriteLn('El número fué
5');ELSE WriteLn('El número no estaba en el rango indicado');
END.
GOTO
La sentencia GOTO es una sentencia utilizada para alterar el flujo del programa, es decir, para
ir a ejecutar una sentencia en un lugar diferente del programa y no la linea siguiente.
Para utilizar este tipo de salto es necesario declarar etiquetas, que no son otra cosa que el
identificador que marcará el lugar a donde se dirigirá el flujo del programa al momento de
usar el GOTO. La declaración de etiquetas se hace antes que la de constantes y variables, la
palabra reservada para su declaración es LABEL. El nombre de la etiqueta es un nombre de
un identificador como cualquier otro, pero al utilizarse debe terminar con dos puntos ":".
GOTO etiqueta;
Ejemplo:
Ejemplos.
***********************************************************
PROGRAM EJER2B;
USES CRT;
VAR x,y:REAL;
VAR suma,rest,mult:REAL;
VAR divi:REAL;
BEGIN
Read(x);
Read(y);
suma:=x + y;
rest:=x - y;
mult:=x * y;
divi:=x / y;
ClrScr;
END.
******************************************************************
PROGRAM EJER4B;
USES CRT;
VAR base,altura:REAL;
VAR area:REAL;
BEGIN
ClrScr;
END.
Program Saludo; Var nombre: string[20]; Begin Writeln ('Introduce tu nombre, por
favor'); Readln (nombre); Write ('Hola ',nombre); Readln;End.
******************************************************
PROGRAM EJER10B;
USES CRT;
VAR a,b,c:REAL;
VAR resultado:REAL;
BEGIN
ClrScr;
END.
PROGRAM EJER15B;
USES CRT;
VAR arista:REAL;
BEGIN
END.
********************************************************
**********************************************************
Program Mayor;Uses CRT;Var N1,N2,N3,NMayor:integer;Begin CLRSCR; Write
('Ingrese primer número: '); Readln (N1); Write ('Ingrese segundo número: '); Readln
(N2); Write ('Ingrese tercer número: '); Readln (N3); If (N1>=N2) And (N1>=N3)
Then; NMayor:=N1; If (N2>=N1) And (N2>=N3) Then; NMayor:=N2; If (N3>=N1)
And (N3>=N2) Then; NMayor:=N3; Writeln ('El numero mayor es:
',NMayor); Readln;End.
Program Area;Uses
Begin CLRSCR;
Readln (num);
Readln (B);
Readln (H);
area:=(B*H)/2;
End; Readln;End.
Program Sumar;Uses
CRT;Var N,num,cont,suma:integer;
Begin CLRSCR;
End;
Readln;End.
PROGRAM EJER18B;
USES CRT;
VAR a,b,c:REAL;
VAR resultado1,resultado2:REAL;
BEGIN
ClrScr;
READLN (a);
READLN (b);
READLN (c);
END.
PROGRAM EJER22B;
USES CRT;
VAR cantidad:INTEGER;
BEGIN
ClrScr;
WRITELN ('');
END.
un valor literal
una constante con nombre
una variable
una llamada a una función
nota: Un función especial que tiene writeln es como espaciador entre líneas. Así,
llamando al procedimiento sin ningún parámetro produciremos un salto de línea.
En el siguiente ejemplo puedes observar llamadas a ambos procedimientos que
resumen un poco todo esto que hemos mencionado:
program Prueba_write;
const
iva_factor = 0.16;
var
num_udes : integer;
total, precio_udad : real;
begin
precio_udad := 198;
num_udes := 4;
total := num_udes * precio_udad;
Estos formatos no son gran cosa, pero te permitiran jugar un poco con la
apariencia que presentarán tus datos. Podrás especificar el número de
posiciones para el campo de escritura. Y para los valores reales, el número de
decimales a mostrar.
program Datos_Personales;
var
Nombre : string[15];
Ap1, Ap2 : string[20];
Edad : integer;
begin
write('Introduce nombre: ');
readln(Nombre);
write('Primer apellido : ');
readln(Ap1);
write('Segundo apellido: ');
readln(Ap2);
write('Introduce edad : ');
readln(Edad);
end.
En la gran mayoría de los programas será necesario tomar decisiones sobre qué acciones
realizar. Esas decisiones pueden depender de los datos que introduzca el usuario, de si se ha
producido algún error o de cualquier otra cosa.
La estructura condicional if ... else es la que nos permite tomar ese tipo de decisiones.
Traducida literalmente del inglés, se la podría llamar la estructura "si...si no", es decir, "si se
cumple la condición, haz esto, y sino, haz esto otro".
Un ejemplo sencillo sería el siguiente (no se trata de un programa completo, sino tan sólo
una porción de código):
else
printf("Bienvenido.\n");
Este código de ejemplo dice que si el valor de la variable edad es menor que 18 se
imprimirá "No puedes acceder.\n", mientras que en caso contrario se
imprimirá "Bienvenido.\n".
if (condición) {
sentencias_si_verdadero;
} else {
sentencias_si_falso;
La condición, encerrada entre paréntesis, es una expresión que puede dar como
resultado 0 (interpretado como falso) o cualquier valor distinto de 0 (interpretado
como verdadero). Cuando la condición sea verdadera, se ejecutarán las sentencias dentro
del primer bloque de código, cuando la condición sea falsa, se ejecutarán las sentencias del
segundo bloque de código. Las expresiones y valores de tipo verdadero/falso son también
llamados valores lógicos o booleanos.
La indentación o sangría (los espacios al comienzo de las líneas) no es necesaria, pero ayuda
a la claridad del código. La utilización de las llaves {...} es obligatoria cuando se quiere utilizar
más de una instrucción por bloque, y optativa cuando sólo se quiere escribir una instrucción.
Por claridad, sin embargo, es recomendable utilizarlas aún cuando sólo vaya a haber una
instrucción.
A continuación, un ejemplo con una función, que devuelve el mayor de dos números:
if (b > a) {
return b;
Operadores de comparación[editar]
El símbolo > visto en el último ejemplo es un operador, que en este caso compara dos
números enteros y devuelve verdadero si el primero es mayor, falso en caso contrario.
Operadores de Comparación
Operador Significado
< estrictamente menor que
> estrictamente mayor que
<= menor o igual que
>= mayor o igual que
== igual a
!= distinto de
Teniendo en cuenta que en C se toma como falso el valor 0, y como verdadero cualquier otro
valor, una práctica común es expresar condiciones sin utilizar ningún operador:
if (divisor) {
} else {
return 0;
Operadores lógicos[editar]
Los operadores && ("y"), || ("o") y ! ("no") son operadores lógicos. Permiten operar con
expresiones lógicas para generar expresiones más complejas.
Por ejemplo: determinar si un año es bisiesto o no. Los años son bisiestos si son divisibles por
4, pero no si son divisibles por 100, a menos que también sean divisibles por 400.
} else {
} else {
Además, como a cada rama del if le sigue una única instrucción, podemos expresar la
expresión anterior del siguiente modo:
else
En este caso, se utiliza el operador módulo (%), que obtiene el resto de la división entera de
un número por otro. Cuando un número es divisible por otro, el resto de su división entera
será cero. Siendo que cero es equivalente a falso, y cualquier valor distinto de cero es
equivalente a verdadero, podemos usar el operador % para verificar si el número es múltiplo
de 4, de 100 o de 400.
Evaluación de cortocircuito[editar]
La evaluación en corto circuito es una característica del lenguaje C que se utiliza para
optimizar la ejecución de programas. Consiste en que el programa puede verificar si una
expresión es verdadera o falsa antes de haber evaluado toda condición.
...
}
Al ejecutarse el programa, se evaluará primero si a > 2. En el caso en que sea verdadero, no
continuará con la siguiente condición, ya que el resultado será de cualquier modo verdadero.
...
La estructura condicional switch ... case se utiliza cuando queremos evitarnos las llamadas
escaleras de decisiones. La estructura if nos puede proporcionar, únicamente, dos
resultados, uno para verdadero y otro para falso. Una estructura switch ... case, por su parte,
nos permite elegir entre muchas opciones. Ejemplo:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int dia;
scanf("%i",&dia);
switch(dia) {
case 1 :
printf("Lun, Lunes");
break;
case 2 :
printf("Mar, Martes");
break;
case 3 :
printf("Mier, Miercoles");
break;
case 4 :
printf("Jue, Jueves");
break;
case 5 :
printf("Vie, Viernes");
break;
case 6 :
printf("Sab, Sabado");
break;
case 7 :
printf("Dom, Domingo");
break;
default :
printf("No existe");
}
return 0;
La estructura anterior, de realizarse con sentencias if, necesitaría cuatro de ellas, resultando
un enorme bloque muy difícil de leer. En la mayoría de los casos, además, la
sentencia switch proporciona una ganancia en velocidad del código, pues permite al
compilador trabajar en base a que se trata de una decisión múltiple para una única variable,
cosa que con sentencias if el compilador no tiene por qué detectar.
Como vemos, para cada valor de la variable se ejecuta un bloque de sentencias distinto, en el
que no necesitamos llaves. Hay un caso especial, default, que se ejecuta si ningún otro
corresponde, y que no es necesario poner. Es, en todo, equivalente al bloque else de una
sentencia if.
Es decir, las etiquetas case son puntos de entrada de la ejecución, y no implican que al
acabarse el bloque case la ejecución salte al final del bloque switch. Las
etiquetas case siguientes a la que hemos utilizado para entrar son, sencillamente, ignoradas.
El bucle while[editar]
while (/*condicion*/) {
/* Código */
La condición debe de ser una expresión lógica, similar a la de la sentencia if. Primero se
evalúa la condición. Si el resultado es verdadero, se ejecuta el bloque de código. Luego se
vuelve a evaluar la condición, y en caso de dar verdadero se vuelve a ejecutar el bloque. El
bucle se corta cuando la condición da falso.
printf("%d\n", i);
i = i + 1;
El bucle for[editar]
El bucle for es un bucle muy flexible y a la vez muy potente ya que tiene varias formas
interesantes de implementarlo, su forma más tradicional es la siguiente:
/* código a ejecutar */
Inicialización: en esta parte se inicia la variable que controla el bucle y es la primera sentencia
que ejecuta el bucle. Sólo se ejecuta una vez ya que solo se necesita al principio del bucle.
Expresión condicional: al igual que en el bucle while, esta expresión determina si el bucle
continuará ejecutándose o no.
Incremento: es una sentencia que ejecuta al final de cada iteración del bucle. Por lo general,
se utiliza para incrementar la variable con que se inicio el ciclo. Luego de ejecutar el
incremento, el bucle revisa nuevamente la condición, si es verdadera tiene lugar una
ejecución más del cuerpo del ciclo, si es falsa se termina el ciclo y así.
Aquí se muestra el mismo ejemplo visto para el bucle while, pero implementado con un
bucle for:
int i;
Nota: En C, la sentencia i = i + 1 puede escribirse en forma más reducida como i++. Esta forma
se utiliza más comúnmente en el bucle for:
int i;
printf("%d\n", i);
El bucle do...while[editar]
El bucle do...while es un bucle que, por lo menos, se ejecuta una vez. Do significa
literalmente "hacer", y while significa "mientras".
Su forma es esta:
do {
/* CODIGO */
int aleatorio;
do {
aleatorio = rand();
La verdad es que este ejemplo puede resultar un poco absurdo, pero es bastante intuitivo. El
código del bucle asigna un valor aleatorio a la variable definida anteriormente, y mientras esa
variable no tenga el valor 25, el bucle sigue ejecutándose.
La sentencia goto[editar]
La sentencia goto sirve para indicar al programa que continue ejecutándose desde la línea de
código indicada. Su sintaxis es más o menos así:
/* Código */
ETIQUETA:
/* Código */
goto ETIQUETA;
/* Código */
Esta vez vamos a ver cómo se utiliza las estructuras de control repetitivas en Java (también
conocidas como ciclos o bucles). Como mencionaba en el tutorial Estructuras de control
condicionales vamos a necesitar de estas estructuras al momento de programar, y pues
bueno este tipo de estructuras de control se las utiliza cuando necesitamos recorrer un
conjunto de datos, por ejemplo al leer un archivo, al leer registros de una base de datos, en
fin, en todos los problemas en los que se tenga que hacer iteraciones, bucles, siempre vamos
a necesitar de estas estructuras.
El ciclo for permite ejecutar un conjunto de sentencias un número fijo de veces y antes de
saber cómo funciona esta sentencia, primero que nada vamos a ver la sintaxis.
Nota importante: Este ciclo se lo utiliza cuando sabemos el número de veces que se debe
ejecutar el ciclo.
1 for(variable_inicializacion;condicion;incremento)
2{
3 //instrucciones
4}
Como podemos ver esta sentencia esta compuesta de 3 partes separadas por ; (punto y
coma) la primera parte llamada inicialización permite controlar el ciclo, suele ser la variable
de tipo entero por lo general la letra i, pero puede ser cualquier otra letra, esta variable es
declarada e inicializada dentro de la estructura aunque se la puede hacer desde fuera, la
variable de inicialización indica desde que valor va empezar el ciclo.
AHORA UN EJEMPLO
1 package com.ecodeup.ciclos;
7 }
8 }
9}
PROCESO
El compilador repite las mismas instrucciones desde el paso 2 hasta que i toma el valor de 22,
la condición se verifica y como no se cumple, el ciclo termina.
El ciclo for puede tomar varias sintaxis sin que esto genere errores de compilación o cambie
el resultado del programa. A continuación se muestra algunas sintaxis con las que nos
podemos encontrar.
Ahora el mismo ejemplo anterior lo adaptamos a esta sintaxis, como se puede ver la variable
de incremento se omite y se la pone dentro del ciclo, luego de las instrucciones.
1 package com.ecodeup.ciclos;
7 i += 2;
8 }
9 }
10 }
Nota: En este caso la variable i es visible sólo dentro del ciclo for, puesto que se la ha
declarado e inicializado dentro del ciclo, si la quisiéramos utilizar fuera, nos va lanzar un
error.
En algunos casos también se presenta con la siguiente sintaxis, en este caso la variable de
inicio esta fuera del ciclo y la variable de incremento está después de las instrucciones a
ejecutar.
1 package com.ecodeup.ciclos;
5 int i = 2;
8 i += 2;
9 }
10 }
11 }
En este caso la variable i es visible para todo el programa puesto que la hemos declarado
fuera del ciclo.
1 while (condicion) {
2 //instrucciones
3}
Nota importante: Este ciclo se utiliza cuando no sabemos el número de veces exacto que se
ejecutará el ciclo.
Si la condición siempre es verdadera o siempre se cumple este ciclo puede crear un bucle
que nunca termine, por eso hay que tener en cuenta que en algún momento del ciclo la
condición no debe cumplirse (debe volverse falsa) para que el ciclo termine, caso contrario el
ciclo se vuelve infinito.
1. Ingresar un número por teclado e imprimir por la consola su decena superior: Ejemplo
sin ingreso el número 5, su decena superior es 10, si ingreso el 25, su decena superior
es 30.
El ejemplo anterior lo podemos resolver también con un ciclo for, pero como no sabemos
cuantas iteraciones o cuantas veces se repite el ciclo ya que la decena superior cambiará de
acuerdo al número ingresado, es recomendable utilizar el ciclo while.
A continuación el código.
1 package com.ecodeup.ciclos;
3 import java.util.Scanner;
7 int numero;
9 System.out.println("Ingrese un número:");
10
11 try {
12 numero = entrada.nextInt();
14 numero++;
15 }
17 } catch (Exception e) {
18 System.out.println("Número no válido");
19 }
20 }
21 }
Explicando un poco el ciclo, en la línea 12, se obtiene el número desde teclado (si deseas un
ejemplo completo de cómo ingresar números desde teclado puedes ingresar a esta
entradaEntrada de datos en Java utilizando la Clase Scanner), en la línea 13 empieza el ciclo
while, la condición para que ingrese al ciclo, es que el módulo o resto de dividir el número
entre 10 sea diferente de cero.
El módulo de dividir cualquier número entre 10, (excepto los múltiplos de 10 por ejemplo 10,
20, 30, 40, etc..) siempre nos dará un valor diferente de cero y por ende ingresa al ciclo.
Entonces la idea es ir incrementando el número ingresado hasta que sea múltiplo de 10 y con
esto el módulo de dividir el número entre 10 va ser cero y por ende ya no va ingresar al
bucle.
1 do {
2 //instrucciones
3 } while (condicion);
Una forma para obtener los dígitos que tiene un número, realizamos divisiones sucesivas
entre 10 hasta que el número se vuelve cero (del resultado de la división sólo se debe tomar
la parte entera), para obtener el número de dígitos contamos las veces que se ha dividido.
Por ejemplo tenemos el número 345:
345/10=34
34/10=3
3/10=0
1 package www.ecodeup.com;
7 int contador = 0;
8 do {
9 numero /= 10;
10 System.out.println(numero);
11 contador++;
12 } while (numero != 0);
14 }
15 }
También hubiésemos podido utilizar el ciclo while que funciona con todos los números,
menos con el número 0 (cero), no entra en el ciclo porque número es igual que cero y por
ende la respuesta va ser:
Esto se soluciona con el ciclo do while que me garantiza que por lo menos el ciclo se va
ejecutar una vez, con esto, si se ingresa el número cero va ingresar al ciclo ya que la
condición se verifica al final.
El menú principal se activa pulsando la tecla F10 o al arrancar turbo pascal. Las opciones del
menú principal se pueden invocar pulsando simultáneamente la tecla ALT.Las diversas
opciones de un menú se pueden clasificar en cuatro categorías según su efecto.