clipper

Upload: mjekliolpt

Post on 22-Jul-2015

84 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUCCIN El compilador de Clipper es uno de los ms potentes compiladores en la actualidad. Es el perfecto complemeto para los gestores de bases de datos puesto que proporciona velocidad, potencia y versatilidad a las aplicaciones que gestoras bases de datos. Solo los listos(as) o listillos(as) dicen que no tiene utilidad. Es el lenguaje ideal para la comenzar a programar ya que su facil manejo y su gran variedad de erramientas no familiarizan con el mundo de la programacin.

PRIMERAS SENTENCIAS EN CLIPPERAntes de pasar a realizar el primer programa en Clipper vamos a conocer una serie de sentencias necesarias para cualquier programa. Asi podremos conocer tambien el proceso de codificacin y compilacin necesario en la realizacin de nuestras futuras aplicaciones. SENTENCIA CLEAR @fil,colum SAY TEXT | variable INKEY(num) @fil,colum TO fil,colum [DOUBLE] DESCRIPCIN Borra la pantalla. Muestra texto o variables en pantalla. Realiza una pausa o parada (0). Pinta cajas y lineas simples o dobles.

@fil,colum,fil,colum BOX 8piezas Pinta cajas con las piezas dadas. SET COLOR TO num_letra/num_fondo @fil.colum PROMPT texto MENU TO variable_num Colocando un astersco (*) detras del numero o letra hacemos que parpadee. Con el signo mas (+) conseguimos el efecto de brillo. Especifica el color del texto y fondo Crea un men de opciones.

VALOR 0|N 1|B 2|G 3|BG 4|R 5|RB 6|GR 7|W

COLOR Negro Azul Verde Cian Rojo Magenta Marrn Blanco

Para la realizacin del primer programa debemos escribir el cdigo fuente (con cualquier editor de texto) y guardarlo con un nombre (8 letras mximo) y la extensin prg. A la hora de compilar deberemos escribir CL nombre, sin poner la extensin. EJEMPLO: C:\CLIPPER5\BIN>edit nombre_programa.prg C:\CLIPPER5\BIN>cl nombre_programa EJEMPLO: SET TALK OFF SET ECHO OFF CLEAR @ 1,1 TO 24,79 DOUBLE @ 2,30 SAY "PRIMER PROGRAMA" @ 3,2 TO 3,78 @ 10,10,20,50 BOX "*" INKEY(2) @ 12,22 SAY "TEXTO" INKEY(0)

OPERADORESClipper define 4 tipos de operadores. Operadores aritmticos, relacionales, lgicos y el operador de asisnacin. Todos estos operadores necesitan minimo 2 operandos anque pueden unir ms. ASIGNACION (=): Con utilizar el igual (=) se realiza la asignacin. En la parte de la izquierda siempre pondremos una variable y a su derecha se pone una expresin valida, es decir, un valor, variable, funcin o expresin aritmtica o de cadenas.

SINTAXIS variable=valor variable=variable1 variable=funcin() variable=expresin

ARITMTICOS: Son utilizados para realizar operaciones aritmticas sencillas, anque unindolos se puede realizar cualquier operacin matemticas. En la siguiente tabla se muestrn todos estos operadores.

OPERADOR + * / % Suma. Resta.

DESCRIPCIN

Multiplica. Divide. Resto de una divisin

LOGICOS Y RELACIONALES: Los operadores relacionales nos sirven para realizar comparaciones con variables. Los lgicos los utilizamos para poder unir varias condiciones. Ambos operadores solo pueden ser utilizados en las sentencias de control, fueran de ellas son intiles. OPERADOR = < > = DESCRIPCIN Igual Menor Mayor Menor o Igual Mayor o Igual Distinto OPERADO R .AND. .OR. .NO. DESCRIPCIN Operador Y Operador O Operador NO

VARIABLES Y PETICION POR TECLADOUnidad bsica de almacenamiento, la creacin es la combinacin de un identificador y un tipo. Todas las variables deben ser declaradas antes de ser utilizadas. El lugar donde se declaran las variables es al principio del programa o al comienzo de cada una de las funciones o procedimiento.

El nombre de las variables debe cumplir una serie de normas. La primera y ms importante es que el nombre debe ser unico para cada uno de ellas, otra es que el nombre no debe superar 12 letras, no pueden contener espacios ni signos gramaticales. La sintaxis para declarar variables es poner su nombre y asignarle un valor inicial que le indica el tipo que va a guardar SINTAXIS nombre=space(tamao) nombre=0 nombre=CTOD( nombre=space(1) Alfanumricos. Numricos. ) Fechas. Lgicos. Estos llevarn mascara logica. TIPO DE DATO

La funcin que se utiliza para pedir los datos por teclado es GET y la funcin READ, que es para asociar el valor a la variable. Con tener una sentencia READ es suficiente para todas las variables, aunque se puede asociar a cada GET un READ. La funcin adems de leer los datos realiza una pausa en el programa. La funcin GET se le puede asignar una serie de mscaras para controlar el formato, el rango, validaciones... Todas estas funciones son opcionales y no necesitamos poner todas.GET var PICTURE mascara(s) RANGE ini,fin VALID var$(valores)

READ MASCARA 9 # A ! . ; @A @!A Y @B @Snum DESCRIPCIN En esa posicin un digito. Digitos, signo, espacios. Letras solamente. Letras Mayusculas. Posicion decimal. Separador de los miles. Solo letras en toda la extensin. Letras en mayuscula en toda la extensin Valores lgicos como Y o N Justifica los nmeros a la izquierda. Scroll de las letras que indica el valor numrico.

La mscara RANGE en caso de ser para fechas sofre una modificacin en su sintaxis, esta debe ser como sigue. El resto de parmetros no tienen incidencias sobre su formato de entrada y salida. RANGE CTOD(fecha_inicio), CTOD(fecha_fin)

EJEMPLO:SET TALK OFF SET ECHO OFF NUMERO=0 CADENA=SPACE(10) LOGICO=SPACE(1) FECHA=CTOD(" - CLEAR @ 5,5 SAY "CADENA: @ 6,5 SAY "NUMERO: @ 7,5 SAY "LOGICO: @ 8,5 SAY "FECHA: READ CLEAR @ 5,5 SAY CADENA @ 6,5 SAY NUMERO @ 7,5 SAY LOGICO @ 8,5 SAY FECHA INKEY(0)

") " " " " GET GET GET GET CADENA PICTURE @!A NUMERO PICTURE 999.99 LOGICO PICTURE "Y" FECHA

SENTENCIAS DE CONTROLEs el modo que tiene un lenguaje de programacin de provocar que el flujo de la aplicacin avence y se ramifique en funcin de los datos que tengan las variables que se usen en el programa. Existe 2 tipos de sentencias de control, de seleccin e iteracin. IF . . ELSE . . ENDIF La ejecucin atraviesa un conjunto de estados bolean que determinan la ejecucin de distintos fragmentos de cdigo. La clausula else es opcional, las condiciones pueden ser ms de una, existe la posibilidad de anidarlos, es decir, poner uno dentro de otro. IF(expresion(es)_boleana(s)) . . sentencias . . ENDIF IF(expresion(es)_boleana(s)) sentencias . . ELSE sentencias . . ENDIF

DO CASE . .CASE . .ENDCASE Realiza distintas operaciones en base al valor de una nica variable o expresin. Es una sentencia muy similar a if-else, pero esta es mucho ms cmoda y fcil de usar cuando la ramificacin es ms amplia de 3 caminos. DO CASE CASE variable=valor1 Sentecia . . CASE variable=valor1 Sentecia . . CASE variable=valor1 Sentecia . . CASE variable=valor1 Sentecia . . [OTHERWISE] Sentencia . . ENDCASE El valor de la expresin se compara con cada uno de los literales de la sentencia case si coincide alguno se ejecuta el cdigo que le sigue, si ninguno coincide se realiza la sentencia otherwise (opcional), si no hay sentencia otherwise no se ejecuta nada. DO WHILE . .ENDDO Ejecuta repetidamente el mismo bloque de cdigo hasta que se cumpla una condicin de terminacin. Hay cuatro partes en cualquier bucle. Inicializacin, cuerpo, iteracin y condicin.

inicializacion DO WHILE cond1 operador cond2 operador condN sentencia iteracion . . ENDDO

FOR . .STEP . .NEXT

Realiza las mismas operaciones que en los casos anteriores pero la sintaxis es una forma compacta. Se utiliza para la inicializacin de tablas. La clusula step es opcional.

FOR inicializacion TO valor_final[STEP valor] sentencia . . NEXT variable_inicializada

La sentencia exit se puede utilizar en ambos bucles, fuerza la salida del bucle donde se encuentra, sin tener en cuenta las sentencias que quedan por ejecutar dentro del bucle. Esta sentencia no puede ser utilizada fuera de los bucles. EJEMPLO 1: Se pide una edad por teclado y hay que determinar si es un NIO, un JOVEN o un ADULTO. Sabiendo que los nios son hasta 10 aos, el joven de 11 a 64 y el adulto a partir de 65 aos. SET TALK OFF SET ECHO OFF EDAD=0 CLEAR @5,5 SAY "Tu edad: " GET EDAD READ IF EDAD=65 @10,5 SAY "ADULTO" ELSE @10,5 SAY "JOVEN" ENDIF ENDIF INKEY(0)

EJEMPLO 2: Introduciendo un nmero por teclado deberemos indicar mediante una cadena de texto el valor que se puso como numero. El rango de valores debe estar comprendido entre 1 y 5. SET TALK OFF SET ECHO OFF NUMERO=0 CLEAR @5,5 SAY "Introduce valor: " GET NUMERO RANGE 1,5 READ DO CASE CASE NUMERO=1 @10,5 say "es CASE NUMERO=2 @10,5 say "es CASE NUMERO=3 @10,5 say "es CASE NUMERO=4 @10,5 say "es CASE NUMERO=5 @10,5 say "es ENDCASE INKEY(0)

uno" dos" tres" cuatro" cinco"

EJEMPLO 3: Mostrar todos los numeros comprendidos entre el 1 y el cien. Cada uno de los numeros debe mostrarse fila. Realizando ademas una pausa cada vez que se llene la pantalla de numeros. SET TALK OFF SET ECHO OFF CONTADOR=0 FILA=0 CLEAR FOR CONTADOR=1 TO 100 FILA=FILA+1 @FILA,5 SAY CONTADOR IF FILA=23 @24,5 SAY "Pulse teccla para seguir" INKEY(0) FILA=0 CLEAR ENDIF NEXT CONTADOR INKEY(0)

EJEMPLO 4: Realizar la suma de los valores que se vallan escribiendo por teclado mientras que el valor sea distinto de cero. SET TALK OFF SET ECHO OFF VALOR=1 TOTAL=0 CLEAR DO WHILE VALOR0 VALOR=0 @5,5 SAY "Valor a sumar: " GET VALOR READ TOTAL=TOTAL+VALOR @7,5 SAY TOTAL ENDDO INKEY(0) EJEMPLO 5: Obligar al usuario a introducir un valor negativo. Si el nmero no es negativo se debe volver a pedir. SET TALK OFF SET ECHO OFF DATO=0 CLEAR DO WHILE DATO