ANTES DE EMPEZAR!!!...
contiguo a cada ejemplo se dará el enlace del mismo en un programa fuente .PAS para que lo puedan analizar también desde su compilador de pascal.
Ahora vamos a crear un programa básico en pascal solo por cogerle el hilo a todo lo que se a ido exponiendo en los posts anteriores.
Lo primero es crear un nuevo archivo .pas, si aun no le toman la idea al crearlo regresen aquí y vuelvan a retomar la idea, una vez hecho esto, hacemos estos otros pasos:
Lo primero es crear un nuevo archivo .pas, si aun no le toman la idea al crearlo regresen aquí y vuelvan a retomar la idea, una vez hecho esto, hacemos estos otros pasos:
- le damos el nombre al programa-program nombre_programa;
- declaramos las cabeceras USES--uses
- declaramos variables------------var
- y creamos el programa principal Begin
NOTA!!: los que estan en negrita y coloreados son palabras reservadas de pascal y no puedes declarar variables con estos tipos de nombres.
ahora con esto hagan algo como imprimir mensajes en pantalla, variables, o leer datos por teclado, para que se vayan familiarizando con el lenguaje. luego vayan escalando el nivel de dificultad y van probando con cosas mas complejas.
ahora con esto hagan algo como imprimir mensajes en pantalla, variables, o leer datos por teclado, para que se vayan familiarizando con el lenguaje. luego vayan escalando el nivel de dificultad y van probando con cosas mas complejas.
Ahora vamos con algo mas interesante.... la utilización de CICLOS REPETITIVOS y COMPARATIVOS!!!
los mas distintivos y utilizados en pascal son: For, Repeat-Until , While, if y case.. Ahora definiremos uno por uno para una mayor comprensión...
los mas distintivos y utilizados en pascal son: For, Repeat-Until , While, if y case.. Ahora definiremos uno por uno para una mayor comprensión...
- FOR
-> supongamos que queremos mostrar en pantalla la cuenta de los números del 1 al 10.. entonces en código pascal seria de la siguiente manera.
Program conteo;
uses
wincrt;
var
a:integer;
Begin
clrscr;-------------{esto sirve para limpiar pantalla}
writeln('vamos a digitar la serie de números del 1 al 10');
for a:=1 to 10 do-- {en español: para a=1 hasta 10 haga lo que esta entre el begin y el end}
begin -------------{indispensable para abrir un for}
writeln('numero ',a);
end; -------------- { indispensable para cerrar un for}
readkey;
End.
descarga conteo.pas->>>http://www.mediafire.com/?m4mza0nagxw
- WHILE
representación del ciclo "mientras que", este se usa para cumplir una condición siempre y cuando se mantenga ciertas condiciones previas a su ejecución, ejemplificando con el siguiente enunciado:
->supongamos que queremos hacer un programa que revise la recogida de un carácter, si la letra es 'S' entonces va a mostrar un mensaje positivo, si en caso contrario es 'N', mostrara el mensaje contrario.
->supongamos que queremos hacer un programa que revise la recogida de un carácter, si la letra es 'S' entonces va a mostrar un mensaje positivo, si en caso contrario es 'N', mostrara el mensaje contrario.
Program validez;
uses
wincrt;
var
a:char;
Begin
clrscr;-------------{esto sirve para limpiar pantalla}
writeln('digite su opción a seguir (S/N):: ');a:=readkey;
a:=upcase(a);{la palabra reservada upcase se usa para convertir letras a mayúsculas}
while (a='S') do
begin
clrscr;
writeln('usted ha escogido seguir');
end;
readkey;
while (a='N') dobegin
clrscr;
writeln('usted ha escogido salir');
end;
readkey;
End.
descarga validez.pas->>>http://www.mediafire.com/?cgtzm1kgwzj
Bueno, esto es un ejemplo bobo y sin sentido, porque cuando ejecuten esto lo que va a hacer es que va a entrar en un bucle infinito pero la idea es que sepan el funcionamiento de este ciclo, ademas, no se si prestaron mucha atención a este código, pero si lo detallamos un poco mas vamos a ver una linea un poco extraña en este paso, es esta:(a:= readkey;).
Se preguntaran para que sirve. Sencillo!!, esto lo que hace es recoger mi carácter de forma dinámica, en palabras mas rasas, ejecuta la instrucción apenas se le digite su carácter por teclado. Esto por algunos es conocido como Variables interactivas.
Se preguntaran para que sirve. Sencillo!!, esto lo que hace es recoger mi carácter de forma dinámica, en palabras mas rasas, ejecuta la instrucción apenas se le digite su carácter por teclado. Esto por algunos es conocido como Variables interactivas.
Pero esta manera de validar es muy engorrosa y antipractica para ciertos casos. es una forma eficaz pero no eficiente habiendo una estructura mas facil de codificar para estos casos, y ahora como diria la señorita laura:: "QUE PASE EL IF".
el if en español es la representacion de la instruccion 'SI', si pasa esto hago aquello y si no hago esto otro, esa va a ser nuestra ventaja sobre el while, para demostrarlo hagamos el miso programa de los whiles pero con if y ustedes juzagaran la diferencia:
Program validez_2.0;
uses
wincrt;
var
a:char;
Begin
clrscr;-------------{esto sirve para limpiar pantalla}
writeln('digite su opcion a seguir (S/N):: ');a:=readkey;
a:=upcase(a);{la palabra resevada upcase se usa para convertir letras a mayusculas}
if (a='S') then
begin
clrscr;
writeln('usted ha escogido seguir');
end
else
begin
clrscr;
writeln('usted ha escogido salir');
end;
readkey;
End.
- IF
el if en español es la representacion de la instruccion 'SI', si pasa esto hago aquello y si no hago esto otro, esa va a ser nuestra ventaja sobre el while, para demostrarlo hagamos el miso programa de los whiles pero con if y ustedes juzagaran la diferencia:
Program validez_2.0;
uses
wincrt;
var
a:char;
Begin
clrscr;-------------{esto sirve para limpiar pantalla}
writeln('digite su opcion a seguir (S/N):: ');a:=readkey;
a:=upcase(a);{la palabra resevada upcase se usa para convertir letras a mayusculas}
if (a='S') then
begin
clrscr;
writeln('usted ha escogido seguir');
end
else
begin
clrscr;
writeln('usted ha escogido salir');
end;
readkey;
End.
descarga validez_2.0.pas->>>http://www.mediafire.com/?iwbz5c44gym
Fijense en dos cosas que tienen de particular el if. Primero es que cuando la primera condicion se cumple el end de esa condicion no lleva punto y coma, y eso por que???, porque eso significa que hay un sino(else) y que debajo de el hay mas instrucciones por ejecutar y ahi no termina el if.
Ahora trabajemos con algo mas chevere, digamos que la forma de trabajar con el for no quedo sonando de a mucho y quiero utilizar algo mas efectivo para el control de mis ciclos repetitivos, así que ahora usemos esto:
-> Se necesita un programa para escribir datos de estudiantes tantas veces como uno pueda, los campos a utilizar son: NOMBRE, CODIGO, y EDAD.
Program datos_alumno;
uses
wincrt;
var
nombre:string;
codigo:integer;
edad:shortint;
mas:char;
Begin
REPEAT <----------inicio del repeat
Ahora trabajemos con algo mas chevere, digamos que la forma de trabajar con el for no quedo sonando de a mucho y quiero utilizar algo mas efectivo para el control de mis ciclos repetitivos, así que ahora usemos esto:
- REPEAT-UNTIL
-> Se necesita un programa para escribir datos de estudiantes tantas veces como uno pueda, los campos a utilizar son: NOMBRE, CODIGO, y EDAD.
Program datos_alumno;
uses
wincrt;
var
nombre:string;
codigo:integer;
edad:shortint;
mas:char;
Begin
REPEAT <----------inicio del repeat
clrscr;
writeln('programa de recoleccion de datos de alumnos');
writeln('digite nombre:: ');readln(nombre);
writeln('digite codigo :: ');readln(codigo);
writeln('digite edad:: ');read(edad);
writeln('desea guadar mas datos(S/N)?:: ');mas:=readkey;
mas:=upcase(mas);
UNTIL(mas='N'); <-------final del repeat
writeln('programa de recoleccion de datos de alumnos');
writeln('digite nombre:: ');readln(nombre);
writeln('digite codigo :: ');readln(codigo);
writeln('digite edad:: ');read(edad);
writeln('desea guadar mas datos(S/N)?:: ');mas:=readkey;
mas:=upcase(mas);
UNTIL(mas='N'); <-------final del repeat
End.
descarga datos_alm.pas->>>http://www.mediafire.com/?ukzkykzlkzu
descarga datos_alm.pas->>>http://www.mediafire.com/?ukzkykzlkzu
Ya hasta este punto se han visto los estructuras mas usados en la programacion, con respecto a la creacion de validaciones y ciclos repetitivos, y eso que nos falta una ultima estructura, para ponerlos un poc en sintonia con esta, piensen un poco en los programas y veran que la gran mayoria llevan menus de opciones para uno realizar diferentes actividades segun lo requiera. bueno, esto es l que vamos a ver a continuacion.
-> En una compañia necesitan llevar el control de datos de su personal de manera sistematizada y se nos pide hacer un programa en el cual llenemos los siguientes campos: NOMBRE, APELLIDOS, EDAD, CARGO, TIEMPO LABORADO (en años). Asi como las siguientes instrucciones: si el empleado es menor de 25 años o si es mayor de esa edad pero no lleva mas de 2 años laborando no aspairara a ascenso, de lo contrario se le asignara un ascenso, asi como si es mayor de 50 y tenga mas de 10 años laborando se le asignara la cateogria de pensionado de la empresa. De lo contrario, no accedera a la pension.
Program empresa;
uses
wincrt;
var
nombre,apellidos,cargo:string;
tiempo_laborado,op:integer;
edad:shortint;
mas:char;
Begin
REPEAT
writeln('MENU DE OPCIONES');
writeln('1. gestionar empleados..');
writeln('2.salir del programa..');
writeln('selecione su opcion:: ');readln(op);
case (op) of
1:
Begin
REPEAT <----------inicio del repeat
- CASE
-> En una compañia necesitan llevar el control de datos de su personal de manera sistematizada y se nos pide hacer un programa en el cual llenemos los siguientes campos: NOMBRE, APELLIDOS, EDAD, CARGO, TIEMPO LABORADO (en años). Asi como las siguientes instrucciones: si el empleado es menor de 25 años o si es mayor de esa edad pero no lleva mas de 2 años laborando no aspairara a ascenso, de lo contrario se le asignara un ascenso, asi como si es mayor de 50 y tenga mas de 10 años laborando se le asignara la cateogria de pensionado de la empresa. De lo contrario, no accedera a la pension.
Program empresa;
uses
wincrt;
var
nombre,apellidos,cargo:string;
tiempo_laborado,op:integer;
edad:shortint;
mas:char;
Begin
REPEAT
writeln('MENU DE OPCIONES');
writeln('1. gestionar empleados..');
writeln('2.salir del programa..');
writeln('selecione su opcion:: ');readln(op);
case (op) of
1:
Begin
REPEAT <----------inicio del repeat
clrscr;
writeln('programa de gestion de empleados de la compañia');
writeln('digite nombre del empleado:: ');readln(nombre);
writeln('digite apellidos del empleado:: ');readln(apellidos);
writeln('digite edad del empleado:: ');readln(edad);
writeln('digite cargo del empleado:: ');readln(cargo);
writeln('tiempo laborando en la empresa:: ');readln(tiempo_laborado);
{si el empleado es menor de 25 años o si es mayor de esa edad pero no lleva mas de 2 años laborando no aspairara a ascenso,de lo contrario se le asigna un ascenso}
if (edad>=25)and(tiempo_laborado>2) then
begin
clrscr;
{si es mayor de 50 y tenga mas de 10 años laborando se le asignara la cateogria de pensionado de la empresa. De lo contrario, no accedera a la pension.}
while (tiempo_laborado>50) do
begin
clrscr;
if (edad>=50) then
begin
writeln('Usted ha sido pensionado ');
end
else
begin
writeln('Usted no ha sido pensionado ');
end;
end;
writeln('Usted ha sido ascendido ');
end
else
begin
clrscr;
writeln('Usted aun no cumple requisitos de ascenso');
end;
writeln('desea guadar mas datos(S/N)?:: ');mas:=readkey;
mas:=upcase(mas);
UNTIL (mas='N');
end;
2:
Begin
clrscr;
writeln('Ha salido del programa ');
end
else
begin
clrscr;
writeln('opcion no valida, intente de nuevo ');
end;
writeln('programa de gestion de empleados de la compañia');
writeln('digite nombre del empleado:: ');readln(nombre);
writeln('digite apellidos del empleado:: ');readln(apellidos);
writeln('digite edad del empleado:: ');readln(edad);
writeln('digite cargo del empleado:: ');readln(cargo);
writeln('tiempo laborando en la empresa:: ');readln(tiempo_laborado);
{si el empleado es menor de 25 años o si es mayor de esa edad pero no lleva mas de 2 años laborando no aspairara a ascenso,de lo contrario se le asigna un ascenso}
if (edad>=25)and(tiempo_laborado>2) then
begin
clrscr;
{si es mayor de 50 y tenga mas de 10 años laborando se le asignara la cateogria de pensionado de la empresa. De lo contrario, no accedera a la pension.}
while (tiempo_laborado>50) do
begin
clrscr;
if (edad>=50) then
begin
writeln('Usted ha sido pensionado ');
end
else
begin
writeln('Usted no ha sido pensionado ');
end;
end;
writeln('Usted ha sido ascendido ');
end
else
begin
clrscr;
writeln('Usted aun no cumple requisitos de ascenso');
end;
writeln('desea guadar mas datos(S/N)?:: ');mas:=readkey;
mas:=upcase(mas);
UNTIL (mas='N');
end;
2:
Begin
clrscr;
writeln('Ha salido del programa ');
end
else
begin
clrscr;
writeln('opcion no valida, intente de nuevo ');
end;
descarga empresa.pas->>>http://www.mediafire.com/?qyzudmvxg2m
No hay comentarios:
Publicar un comentario