#!/bin/bash
echo escribe una palabra
read PAL1
echo escribe otra palabra
read PAL2
if [ -z "$PAL1" ]; then "la opción -z es para ver si hay valores nulos"
echo no puede haber valores nulos
exit
elif [ -z "$PAL2" ]; then "al poner la variable entre comillas dobles"" es para que tenga en cuenta espacios en blanco
echo no puede haber valores nulos
exit
fi
if [ "$PAL1" \> "$PAL2" ] "para cualquier operación siempre anteponer el backslash "\" "
then
echo la mayor es "$PAL1"
else
echo la mayor es "$PAL2"
fi
Experiencias diarias con un punto de vista y pensamientos distintos a lo acostumbrado.
viernes, 17 de diciembre de 2010
jueves, 16 de diciembre de 2010
SQL ORACLE
para ver las tablas creadas:
select table_name
from user_tables;
from user_tables;
ejemplo de ejercicio:
CREATE TABLE Psicologos( -------------------------> crea la tabla
NIF Varchar2(10), -------------------------> atributo y tipo de datos
Nombre Varchar2(15) NOT NULL,
Apellido1 Varchar2(15) NOT NULL,
Apellido2 Varchar2(15),
Especialidad Varchar2(15) NOT NULL,
Direccion Varchar2(50),
Constraint PK_Psicologos PRIMARY KEY (NIF) -------------------------> clave primaria
);
CREATE TABLE Pacientes(
NIF Varchar2(10),
Nombre Varchar2(15) NOT NULL,
Apellido1 Varchar2(15) NOT NULL,
Apellido2 Varchar2(15),
Fec_Nacim Date NOT NULL,
Telefono Varchar2(10),
Constraint PK_Pacientes PRIMARY KEY (NIF),
Constraint CH_fec_nacim CHECK (Fec_Nacim >= TO_DATE('01/01/1900','DD/MM/YYYY'))
); -------------------------> check de restricciones y ");" es para terminar
CREATE TABLE Transtornos (
Cod_Transtorno Number(5),
Nombre Varchar2(25) NOT NULL,
Sintomas Varchar2(250) NOT NULL,
Constraint PK_Transtornos PRIMARY KEY (Cod_Transtornos),
Constraint CH_Cod_trans CHECK (Cod_Transtornos >=0)
);
CREATE TABLE Terapias (
Cod_Terapia Number(5),
Nombre Varchar2(25) NOT NULL,
Observaciones Varchar2(250) NOT NULL,
Constraint PK_Terapias PRIMARY KEY (Cod_Terapia),
Constraint CH_Cod_terap CHECK (Cod_Terapia >=0)
);
CREATE TABLE Sesiones(
NIF_PS Varchar2(10),
NIF_PA Varchar2(10),
Cod_Transtorno Number(5),
Cod_Terapia Number(5),
Fecha Date,
Constraint PK_Sesiones PRIMARY KEY (NIF_PS,NIF_PA,Cod_Transtornos,Cod_Terapia,Fecha),
Constraint CH_Fecha CHECK (Fecha >= TO DATE('01/01/1990','DD/MM/YYYY')),
Constraint FK_ses_psi FOREIGN KEY (NIF_PS)
REFERENCES Psicologos (NIF)
ON DELETE CASCADE,
Constraint FK_ses_pa FOREIGN KEY (NIF_PA)
REFERENCES Pacientes (NIF)
ON DELETE CASCADE,
Constraint FK_ses_pa FOREIGN KEY (NIF_PA)
REFERENCES Pacientes (NIF)
ON DELETE CASCADE,
);
----------------------------------- Inserción de datos ------------------------------------
INSERT
INTO Psicologos --------> en la tabla
VALUES ('PS123456','JUAN,'PÉREZ',GARCÍA','CLÍNICA','C/REAL'); ----> valores
INSERT
INTO Pacientes
VALUES ('PA123444','MARÍA','GARCÍA','LÓPEZ',TO_DATE('12/12/1980','DD/MM/YYYY'),'666666');
INSERT
INTO Transtornos
VALUES (100,'JORCH','SINTOMAS');
INSERT
INTO Terapias
VALUES (1,'PSICOANÁLISIS','OBSERVACIÓN');
INSERT
INTO Sesiones
VALUES('PS123456','PA123444',100,1,SYSDATE);
COMMIT; --------------------------------> es para validar los cambios
viernes, 26 de noviembre de 2010
Ejemplos Shell (linux)
.........................................inicio (test -L)...............................................
#!/bin/bash
if test -L $1; then #devuelve verdadero o falso, si test -L es verdadero entonces es un enlace simbolico
echo $1 es un enlace simbolico
else
echo $1 no es un enlace simbolico
fi
.................................................fin.........................................................
#!/bin/bash
if test -L $1; then #devuelve verdadero o falso, si test -L es verdadero entonces es un enlace simbolico
echo $1 es un enlace simbolico
else
echo $1 no es un enlace simbolico
fi
.................................................fin.........................................................
jueves, 25 de noviembre de 2010
miércoles, 24 de noviembre de 2010
Opciṕn Test (Linux
test -f ( si es un fichero devuelve 0)
test -s (si el tamaño es mayor a 0 devuelve 0)
test -d (si es un directorio devuelve 0)
test -x (si tiene permiso de ejecución devuelve 0)
en lugar de test se pueden usar corchetes
---------------------------------------(en el fichero.sh)........................................................
[ -d /home ]
echo $?
.....................................................(fin)..............................................................
Evaluar cadenas de caracteres
...................................................(en el fichero.sh)............................................
#[ cadena1 = cadena2 ]
[ "$1" = "$2" ]
echo $?
[ "$1" != "$2" ]
echo $?
....................................................(fin)...............................................................
.................................................(en el fichero.sh).............................................
#Comparar numeros
# -eq (igual)
# -ne (distinto de)
# -lt (menor que)
# -gt (mayor que)
read N1
read N2
[ $N1 -eq $N2 ]
echo $?
[ $N1 -ne $N2 ]
echo $?
[ $N1 -lt $N2 ]
echo $?
[ $N1 -gt $N2 ]
echo $?
....................................................(fin).............................................................................................................................(fichero.sh)..............................................
# usar el if
if [ -d $1 ]
# ve si existe el directorio
then ls -ld $1
elif [ -f $1 ]
# ve si es un fichero
then
cat $1
else
echo creo que no existe
fi
.............................................................(fin)............................................................
test -s (si el tamaño es mayor a 0 devuelve 0)
test -d (si es un directorio devuelve 0)
test -x (si tiene permiso de ejecución devuelve 0)
en lugar de test se pueden usar corchetes
---------------------------------------(en el fichero.sh)........................................................
[ -d /home ]
echo $?
.....................................................(fin)..............................................................
Evaluar cadenas de caracteres
...................................................(en el fichero.sh)............................................
#[ cadena1 = cadena2 ]
[ "$1" = "$2" ]
echo $?
[ "$1" != "$2" ]
echo $?
....................................................(fin)...............................................................
.................................................(en el fichero.sh).............................................
#Comparar numeros
# -eq (igual)
# -ne (distinto de)
# -lt (menor que)
# -gt (mayor que)
read N1
read N2
[ $N1 -eq $N2 ]
echo $?
[ $N1 -ne $N2 ]
echo $?
[ $N1 -lt $N2 ]
echo $?
[ $N1 -gt $N2 ]
echo $?
....................................................(fin).............................................................................................................................(fichero.sh)..............................................
# usar el if
if [ -d $1 ]
# ve si existe el directorio
then ls -ld $1
elif [ -f $1 ]
# ve si es un fichero
then
cat $1
else
echo creo que no existe
fi
.............................................................(fin)............................................................
jueves, 18 de noviembre de 2010
Linux (shell)
Escribir comandos en un fichero de texto
Guardar el fichero
Dar permisos de ejecución (chmod +x nombrefichero)
Escibir en la consola ./nombrefichero
Argumentos de un Shell
Hay q crear un fichero con extensión “.sh”
$0 => Argumento/parámetro 0 (dólar cero es el Argumento del programa (donde está)) (imprime)
$# => guarda el número de argumentos que recibe el programa
$* => guarda la cadena de argumentos (excluyendo $0)
$? => guarda el código de retorno de la última orden ejecutada (0 si no hay error, distinto de 0 si lo hay)
Operadores:
+ sumar
-restar
*multiplicar
/dividir
% para el resto de la división
Ejemplo:
Read a b
C=`expr $a\*$b`
Echo $cAlternativa:
En vez de usar "expr" se puede usar los operadores [corchetes]
Operadores relacionales
Sirve para empezar palabras argumentos, números...
Si el resultado de la comparación es cierto, devuelven 1,
Si es fichero, devuelven 0
= (compara si son iguales)
!= (distinto)
> (mayor que)
< (menor que)
Hay que usarlos con \
\> \<
>= (mayor o igual) <=(menor o igual)
Operadores lógicos
Se usan para comparar 2 argumentos (arg1, arg2).
devuelven un argumento o parte del otro
& -> Y arg1 & arg2
Si arg1 y arg2 son distintos de cero, el resultado es arg1, si no, el resultado es arg2
: (2 puntos)
argi : arg2
arg2 es el patrón buscado en arg1. Si el patrón arg 2 está encerrado entre paréntesis \( u \), el resultado es la parte de arg1 que coincide con arg2, si no, el resultado es el número de caracteres que cpinciden.
NOTA: | y ¬ deben ir precedidos de \ ... \|, \&
Ejemplo:
a= junio_2001
b=`expr $a :'\([a-z]*\)'`
echo b
viernes, 12 de noviembre de 2010
ejemplo de recursividad en C++
#include
main()[
long int x,y;
printf("Escribe un numero\n");
scanf("%li",&x);
y=factorial (x);
printf("%li",y);
}
long int factorial(long int n){
if (n==1) return1;
else return n*factorial (n-1)
}
main()[
long int x,y;
printf("Escribe un numero\n");
scanf("%li",&x);
y=factorial (x);
printf("%li",y);
}
long int factorial(long int n){
if (n==1) return1;
else return n*factorial (n-1)
}
Suscribirse a:
Entradas (Atom)