Selecciona el Idioma

jueves, 27 de febrero de 2014

Manual Programación C

Los lenguajes de programación podemos dividirlos en :Lenguajes de Alto Nivel y Lenguajes de Bajo Nivel.
Los de bajo nivel, son más cercanos al ordenador.Eso hace que sean más difíciles de aprender.El ordenador sólo entiende 0 y 1. También conocidos como :Datos binarios
Antes de poner en práctica los lenguajes de alto nivel es conveniente:
  • Crear Algoritmo en Pseudocódigo
Es como realizar un boceto del programa, antes de ponerse a picar código, eso facilita el trabajo, especialmente si estamos empezando a programar y desconocemos todo el lenguaje.
El Lenguaje C, se puede crear desde varios programas (Dev-c++,Eclipse,Gedit...),ha de estar bien tabulado y seguir una estructura:
  • Bibliotecas (#include ...)
  • Variables
  • Funciones y Procedimientos
  • Bucles o Condicionales
  • Terminar con un: system("PAUSE");

Existen diferentes tipos de datos (numéricos,carácteres,cadenas...) para definirlos en las variables se hace:
  • int numero; (si es de tipo entero)
  • float numero; (si es tipo real)
  • double numero; (si es real muy largo)
  • char c; (si es tipo carácter)
  • chat c [10]; (si es tipo cadena de 10 carácteres)
  • int c [10]; (si es un array de 10 numeros enteros)

A la hora de guardar los datos de estas variables lo haremos con:
  • scanf("%d",&numero); (si es de tipo entero)
  • scanf("%f", &numero); (si es tipo real)
  • scanf("%lf", &numero); (si es real muy largo)
  • scanf("%c", &c); (si es tipo carácter)
  • scanf("%s", c); (si es tipo cadena de 10 carácteres)
  • scanf("%d",&c); (si es un array de 10 numeros enteros)

Para printarlo por pantalla sería por ejemplo:
printf("resultado=%d\n",n);
En el caso de un entero de variable tipo entero con nombre n, el \n lo que hace es un salto de linea.
La Asignación de valores a una variable se hace así:
nombrevariable=560;
Mientras que si se tratara de un condicional sería así:
if (nombrevariable==560){
Argumentos
};
El programa debe crearse dentro del main() o, tener funciones y/o procedimientos que serán llamados a través del main().
Podemos insertar comentarios con // ( si el comentario ocupa solo una linea).
/* comentarios*/ (si ocupa más de una linea).
Para incrementar o decrementar el valor de una variable, por ejemplo si la usamos como variable contador se puede hacer de varias formas:
  • a++; o a=a+1;
  • a--; o a=a-1;

Para ver exactamente lo que ocupa una variable se hace con sizeof:
Para convertir una variable float (por ejemplo) en una int (por ejemplo):
En los condicionales (if), podemos usar carácteres como: <,>,<=,>=,!=,==
Que significan: menor, mayor,menor o igual, mayor o igual , diferente de,igual a .
Los if pueden ser anidados, NO son bucles, solo se harán una vez a menos que se encuentren dentro de bucles como:while , do-while
Los condicionales if-else , si no hacen el primer condicional harán el siguiente.En los condicionales también se pueden añadir Operadores Lógicos (&&, ||, !)
Que && es para que se cumplan las dos condiciones , || para que se cumpla una u otra y ! para que no se cumpla ninguna.
Normalmente, además del Pseudocodigo se suelen hacer Diagramas de Flujo para representar un programa en C o cualquier otro Lenguaje .
Otro elemento es el switch (variable) significa Encasode (variable).
Hace diferentes casos (respuestas) dependiendo del valor de una variable introducida. NO es un bucle y por tanto solo se hará una vez, a menos que este dentro de una estructura repetitiva, como hemos dicho antes.
Las Estructuras Repetitivasson While y Do-While. Significan Mientras... y Repetir-Mientras... Son bucles y dentro de ellos se añade el código a ejecutar tantas veces como sea necesario.
Ahora un ejemplo de Repetir-Mientras...:
Después tenemos los For, que también son bucles. por ejemplo:
  • for (i=0;i<=10;i++)
  • significa : para (i=0;mientras i<=10;hacer i++)
Esto repite un proceso que va a ir dentro del bucle tantas veces como vale i
También existen for anidados para matrices o ordenar arrays, es su uso más convencional, pero también se necesitan para crear pequeños dibujos a partir de arrays bidimensionales o tridimensionales.
Con un break; podemos terminar los bucles o condicionales.Se usan también en los Switch para pasar al siguiente case.
Mientras que los continue; sirven para forzar pasar a la siguiente acción en los condicionales .
Algunos Códigos Útiles:
putchar ('A'); Formas sencillas de poner un solo carácter por pantalla.
putchar (x) Formas sencillas de poner un solo carácter por pantalla (si utilizamos una variable).
letra=getchar(); Almacena un valor introducido, en la memoria.
gets(texto); Para escribir un texto por pantalla sin parar en el primer espacio.
puts(texto); Para escribir un texto por pantalla sin parar en el primer espacio.
strcpy (destino,origen);Asigna a una cadena el valor de otra (copiar)
strcat (destino,origen);Añade una cadena al final de otra
strcmp (cad1,cad2);Compara cadenas
sscanf ("%s",cadena) Parecido al scanf pero los datos no se leen desde el teclado sino desde una cadena de texto
struct - Son las Estructuras , se crean fuera del main(), y después son en el donde se crea los registros necesarios.
Funciones y Procedimientos:
Son pequeños programas fuera del main () que después serán llamados por este para ejecutar los datos. Las funciones retornan un solo valor , mientras que los procedimientos no retornan nada.
Las funciones pueden ser de tipo (int,double,float,char...) (su retorno tendrá que ser de este mismo tipo). Mientras que los procedimientos siempre serán de tipo Void. Ambos pueden contener parámetros.
Las variables que estos contienen se denominan locales, estas solo podrán ser usadas por el prodecimiento o función que las contenga. Pero también existen las variables globales, se declaran fuera del main() y fuera de cualquier función o procedimiento. Estas variables, si podrán ser usadas en cualquier momento del programa.
Para interrumpir un programa en cualquier momento podemos ejercer las órdenes:
  • exit(0);
  • return(0);
exit80) necesita la biblioteca #include para ejecutarse. Ambos funcionarán si no ha habido ningún error.
Para Debugar o Depurar el programa DEV-c++ incluye una herramienta de muy fácil uso, que nos alertará de los errores que hay que corregir para que el programa funcione bien. Solo hemos de poner un punto de interrupción y después compilar y Debugar.
Para cambiar los colores del printf es necesaria la funcion : SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),9)
donde el último numero (9) corresponde a un color. Por ejemplo para verlo tenéis que hacer algo así:
#include <#stdlib.h>
#include <#stdio.h>
#include <#time.h>
#include <#Windows.h> 



int functotal(int min, int max){
 min=0;
max=5;
int total=0;
int res;

printf("Total de compras  en dolares:? \n");
scanf("%d",&total);
if (total <100 0:="" 10="" 1:="" 20="" 2:="" 30="" 3:="" 4:="" 50="" :="" amarilla:="" aplicable="" azul="" blanca:="" bola="" break="" case="" de="" descuento="" dolares="" else="" etstdhandle="" hay="" int="" lo="" main="" n="" num1="" num2="" o="" oooooh="" otra="" pre="" printf="" promocion="" res="" return="" roja:="" sera="" setconsoletextattribute="" siento="" srand="" switch="" system="" time="" total="functotal(num1,num2);" verde:="" vez="">

Y se verá algo así :

Os dejo este videotutorial aquí. Es un ejemplo para obtener un resultado aleatorio, en este caso. El ganador para un concurso.






Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

jueves, 20 de febrero de 2014

Tar

copia 

         ------d1

                      -----d11

                                  -----f11

        -------d2

                   ------d21

                                 --------f21

                                ---------f22

                  -------d22
crear backup con tar : tar -cvf nombredestino.tar nombreorigen
Llista el contingut del fitxer tar creat anteriorment. tar -tf copia2.tar
En un altre directori, extrau el contingut del fitxer tar creat anteriorment mostrant el progrés de l’operació. tar -xvf copia2.tar copia/d1
En un altre directori, extrau només un fitxer dels que conté el fitxer tar: tar -xvf copia2.tar copia/d1/ copia/d2
Crea un fitxer sense comprimir del teu directori home indicant la etiqueta “Directori home de el_teu_nom sense comprimir” tar -cvf desy1.tar -V "directori_home_desy_sense_comprimir" /home/desy
Crea un fitxer comprimit del teu directori home indicant la etiqueta “Directori home de el_teu_nom comprimit”. Quina diferència hi ha amb l’anterior? tar -czvf desy1.tar.gz -V "directori_home_desy_comprimit" /home/desy
si hacemos un ls los dos salen en rojo, pero uno esta comprimido con el gzip (.gz) y el otro .tar solo esta empaquetado como una copia de seguridad del directorio.
Restaurar archivos
Esborra un directori del teu home. por ejemplo: nos situamos en copia/d2/d21 y elimianmos f22 (rmdir f22) nos vamos con CD a nuestro home CD copia y hacemos un tree para comprobar que se ha borrado lo que queríamos.
Restaura el fitxer esborrat lo restauramos a partir de la copia .tar o .tar.gz que hemos creado anteriormente: desde nuestro home (fuera de copia) tar -xvf copia2.tar copia/d2/d21
Fes el backup del directori /home cada divendres, on el nom del fitxer sigui copiaYYMMDD (on YY és l'any, MM és el mes, i DD és el dia, per exemple:copia120210, ajudeu-vos de la comanda date) (hem de fer srcipt ,chmod+x nom, una comanda de tar dins l'script, y un crontab -e per crear una tarea programada). obrim el Gedit i creem l'script .

Després una vegada creat script fem chmod +x backup.sh (al arxiu script li donem permisos d'execució). i el probem a executar fent ./backup.sh, després si tot es correcte ho programarem amb el crontab -e. prueba.jpg per últim obrim el crontab -e des de el terminal:

m h dom mon dow  command 

30 10  *       *      5        /home/desy/backup.sh

ho guardem ctrl+o sortim ctrl+x.
per probar que funciona primer podem programar-ho per a que s'executi en uns minuts al día d'avui. tenint en compte que els 7 y el 1 es diumenge. De quins directoris és recomanable fer backup a Linux? dels directoris home, etc, y var.
home conté arxius dels usuarios que es va actualitzant com arxius que es van creat de forma diària. etc conté passwd,shadow i groups, informació de noms d'usuaris, contrasenyes xifrades i dades d'acces. var conté arxius lógics del sistema, que si sen's fastidia algún, el podem recuperar des d'aqui´. Aquest directori es molt important.





Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

viernes, 14 de febrero de 2014

MYSQL linia de comandos

Instala el XAMPP O WAMPP i activa Mysql
Per a que funcioni bé el terminal del Mysql: primer de tot anem a equipo ----> propiedades.
Configuración avanzada del sistema---->variables de entorno
En variables del sistema busca el path.Doble clic para acceder
Afegeix ; al final de la linia actual i copia i pega la direcció del teu XAMPP , al final un ; per terminar (la direcció del teu XAMPP, esta en C:\XAMPP\mysql\bin , copia esta ruta en el path , añade un ; y aplica)
Ara ja podràs accedir amb el cmd , des del terminal
Per més info consultar también:
Sentencias SQL BBDD
MySQL inicios
MySQL Workbench
1. Consulta quins usuaris hi ha creats a MySQL. Digues quins són i des de quina màquina poden connectar-se. Es poden consultar les seves contrasenyes?
use mysql; SELECT USER FROM USER; només esta root. si si consultem els privilegis d'usuari amb SHOW GRANTS FOR 'root'; ens surt la contrasenya xifrada.

2. Crea un usuari que pugui connectar-se des de qualsevol màquina anomenat 'teu_nom' (posa-hi el teu nom) i amb contrasenya 'laboratori'. Comprova i mostra amb l'ordre d'abans que apareix el nou usuari.
Entrem a la base de dades mysql: use mysql; CREATE USER 'desy'@' ' IDENTIFIED BY 'laboratori'; li posem a Login name :desy, deixem el simbol % al limit conectivity i li posem una password, en aquest cas laboratori; per consultar els usuaris creats: SELECT USER FROM USER;

3. Consulta els privilegis del nou usuari i explica'ls. Digues també des de quina o quines màquines es pot connectar.
SHOW GRANTS FOR ' desy '; es pot conectar des de qualsevol màquina. per que té el % com a host

1. Obre el Workbench, connecta't amb el teu servidor MySQL amb privilegis d'administrador i ves a la pestanya d'usuaris/es. Quins usuaris hi ha fets, des quina o quines màquines es poden connectar i quins rols administratius tenen? Què vol dir el símbol “%” referit als usuaris?
el usuario root, i el Desy que hem creat abans. Es conecta desde localhost 127.0.0.1, el simbol % serveix per a que el compte d'usuari es pugui conectar des de qualsevol màquina. root, te marcats tots els rols administratius perquè es l'usuari administrador i té accés a tots els rols. mentres que Desy, per defecte no té cap marcat per qué és un usuari estándar.
2. Fes l'usuari/a “teu-nom-1” amb contrasenya “teu-nom-1”. Dona-li privilegis per fer nous usuaris/es i posar noves contrasenyes. Escriu aquí les ordres SQL que mostra el Workbench per a aquests privilegis. Captura una pantalla.
CREATE USER 'Desy1'@'localhost' IDENTIFIED BY 'Desy1'; GRANT CREATE,RELOAD ON *.* TO 'Desy1'@'loclahost' ; SHOW GRANTS FOR 'Desy1'; FLUSH PRIVILEGES;
No us oblideu del FLUSH PRIVILEGES; per actualitzar les taules de permisos després de fer canvis en els permisos dels usuaris.


3. Fes també l'usuari/a “teu-nom-2” amb contrasenya “teu-nom-2”, sense cap privilegi especial.
CREATE USER 'Desy2'@'localhost' IDENTIFIED BY 'Desy2';
5. Des de “teu-nom-1”, canvia la contrasenya de l'”teu-nom--2”. Captura una pantalla
MySql -u Desy1 -pDesy1; SET PASSWORD FOR 'Desy2'@'localhost' = PASSWORD ('Desy1');


8. Connecta't des de la línia d'ordres amb l'“teu-nom-1” i fes l'usuari/a “teu-nom-3” amb contrasenya “teu-nom-3”.
-u Desy1 -pDesy1; CREATE USER 'Desy3'@'localhost' IDENTIFIED BY 'Desy3';
5. Per a què serveix SELECT CURRENT_USER();?
Per veure amb qui usuari estem logejats.
6. Com crear una nova Base de dades?
CREATE DATABASE bdprova;
Així es creara la nova base de dades bdprova.
7.com quitar elsp ermisos a un usuari?
REVOKE ALL ON *.* FROM 'Desy2'@'%';
En comptes d'ALL podem posar només el nom d'un o més permisos especificats als quals retirar del usuari que sigui.
Per reiniciar el servidor des de la consola ho hem de fer així, primer el parem:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld -u root shutdown

Després el iniciem amb la aplicació mysqld.exe fent aixó:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld











Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

lunes, 10 de febrero de 2014

XML /XSL 2

A continuación os detallo un ejemplo de como incorporar etiquetas y atributos en un XML/XSL: Acordaros de quitar todas las # para que os funcione el código. para una información más detallada e inicios en el lenguaje de programación web, visita: XML1
XML:

<#?xml version="1.0" encoding="UTF-8"?>
<#?xml-stylesheet type="text/xsl" href="activitat2.xsl"?>

<#videoclub>

 <#pelicula id="p1">

   <#imagen >../img/los ojos del gato.jpg<#/imagen>
   <#titulo dir="http://gentetraslasparedes.blogspot.com.es/2012/06/los-ojos-del-gato-1985.html"> Los ojos del Gato <#/titulo>
   <#codigo>08556935674<#/codigo>
   <#genero>terror<#/genero>
   <#edad>+18<#/edad>
   <#director> Stephen King<#/director>
  
  
 <#/pelicula>

 
 <#pelicula id="p2">
   <#imagen>../img/django.jpg<#/imagen>
   <#titulo dir="http://www.blogdecine.com/historias-de-cine/django-desencadenado-la-pelicula"> Django <#/titulo>
   <#codigo>085545332118<#/codigo>
   <#genero>accion<#/genero>
   <#edad>+18<#/edad>
   <#director> Quentin Tarantino <#/director>
  
  
 <#/pelicula>

 <#pelicula id="p3">
   <#imagen>../img/the-conjuring.jpg<#/imagen>
   <#titulo dir="http://www.eleconomista.es/boxoffice/reports_usa/2013/the-conjuring-logra-asustar-con-mucha-fuerza-en-la-taquilla/"> The Conjuring<#/titulo>
   <#codigo>0855453098779<#/codigo>
   <#genero>terror<#/genero>
   <#edad>+18<#/edad>
   <#director> James Wan <#/director>
  
  
 <#/pelicula >
 
<#/videoclub>


Y ahora su correspondiente XSL:

<#?xml version="1.0" encoding="UTF-8"?>
<#xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<#xsl:template match="/">
<#html>
<#head>
<#style type="text/css">
h1{color:#purple;}
th{text-align:center;padding:5px;color:#AFB890;}
table{text-align:left;color:#ffffff;background-color:#000000;padding:10px;}
a{ color:#AF0345;font-family:arial black; font-size:12px;text-align:center;}
a:hover{color:#F123AB;}
img{width:100px;height:100px;}
<#/style>
<#/head>
 <#body>
  <#h1>Videoclub<#/h1>
   <#table>
     <#tr>
     
     <#th>Imagen<#/th>
     <#th>Titulo<#/th>
     <#th>Codigo<#/th>
     <#th>Genero<#/th>
     <#th>Edad<#/th>
     <#th>Director<#/th>
     <#/tr>
     <#xsl:for-each select="videoclub/pelicula">
     <#tr>
     
      <#td>
      <#img>
           <#xsl:attribute name="src">
            <#xsl:value-of select="imagen"/>
           <#/xsl:attribute>
       <#/img>
      
      <#/td>
      <#td>
       <#a>
       
        <#xsl:attribute name="href">
         <#xsl:value-of select="titulo/@dir"/>
        <#/xsl:attribute>
        <#xsl:value-of select="titulo"/>
       <#/a>
      <#/td>
     
     
     
      <#td><#xsl:value-of select="codigo"/><#/td>
      <#td><#xsl:value-of select="genero"/><#/td>
      <#td><#xsl:value-of select="edad"/><#/td>
      <#td><#xsl:value-of select="director"/><#/td>
     <#/tr>
     <#/xsl:for-each>
   <#/table>
 <#/body>
<#/html>
<#/xsl:template>
<#/xsl:stylesheet>




Ejemplos creados por mi en XML-XSL


Aquí os dejo un mini videotutorial de programación web y posicionamiento





Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

jueves, 6 de febrero de 2014

CLONEZILLA

Clonezilla es un software libre de recuperación ante desastres, sirve para la clonación de discos y particiones.


CREAR IMAGEN CON CLONEZILLA:
Para empezar, debemos descargar la imagen iso del livecd de Clonezilla . La grabamos en un cd virgen y arrancamos el sistema con este cd en el lector. Seleccionamos “Clonezilla Live”, a la resolución marcada por defecto. Seguimos con la selección de idioma: Ahora, seleccionar el mapa del teclado o dejar el detectado por defecto:
Seleccionamos “Iniciar Clonezilla”: Seleccionamos device-imagen para crear una iamgen.


Ahora vamos a decirle dónde se encuentra el lugar donde queremos guardar la copia de seguridad (o imagen). En mi caso eligiré local. Ahora decidimos en qué partición del disco irá la copia de seguridad. Y después la carpeta. Ahora elegimos “begginer” en el modo de ejecución.Que ya nos servirá, no hace falta el modo experto.
En esta pantalla elegimos la opción saveparts, porque lo que queremos es hacer una imagen, no restaurarla. En el caso de que efectivamente quisiéramos restaurarla nos decantaríamos por restoreparts. En el caso de que en vez de particiones fueran discos iríamos por savedisk o restdisk. Nombramos la imagen creada con el nombre la fecha de creación de la imagen. En este momento tenemos que elegir qué partición es la elegida para hacerle la imagen, que recordemos irá guardada donde le dijéramos en los pasos de más atrás. Confirmamos y el programa ejecuta las funciones. LISTO!!!! ya la tenemos creada.

para más info:

Clic Aquí


RESTAURAR IMAGEN EN MÁQUINA VIRTUAL CON CLONEZILLA:


Lo primero que debemos hacer es abrir el VMWARE o VirtualBox (programa de creación y contenedora de máquinas virtuales) y crear una nueva. Seguimos los pasos y le damos el nombre correspondiente a la copia de imagen que posteriormente le vamos a añadir. El disco virtual (.vdi) deberá tener algo más de tamaño que la imagen a insertar.Clonezilla no permite restaurar una imagen desde una partición o disco rígido más grande a uno más pequeño. Después hemos de modificar el dispositivo de CD-ROM virtual para utilizar la imagen ISO de Clonezilla Live en la máquina virtual.
Ahora colocaremos los archivos: a través de la SCSI en el sistema host, agregando otro disco rígido (HDD) para la máquina virtual conectando directamente la Partición 0 del PhysicalDrive 1 en VMware. Ahora que hemos creado una máquina virtual compacta, es el momento del arranque de la máquina virtual desde Clonezilla Live. Arranca del mismo modo que antes cuando hemos creado la imagen del disco pero ahora la usaremos para restaurar la imagen anteriormente creada.
Debemos entrar como Root (administrador) para que nosp ermita ejecutar las funciones. Desde el shell: Sudo su root password root.


Ahora, debemos determinar el disco de destino para la restauración y el disco en el cual se ubicará la imagen . Para restaurar la imagen clonada de la partición, el disco virtual de destino debe presentarse formateado a Clonezilla.Podemos utilizar el comando FDISK para escribir la etiqueta en el disco virtual. Al igual que con el procedimiento de copia de seguridad, debemos incluir un dispositivo o espacio grabable como /home/particionnueva, y luego Clonezilla buscará en el directorio de imágenes clonadas en /home/particionueva. Para preparar la restauración desde la imagen en la partición /dev/sdb1 a la partición recientemente creada /dev/sda1, primero debemos incluir /dev/sdb1 a /home/particionnueva con el privilegio de la capacidad de escritura.


Cuando estén listos /home/particionnueva y la partición de destino, debemos elegir el mejor modo de restaurar la imagen . Clonezilla provee una variedad de opciones avanzadas y flexibles para la restauración de imágenes. Parámetros adicionales avanzados de Clonezilla: restaurar Al final de la operación se muestra el resumen y las actualizaciones de avance que recibimos después de confirmar la elección.Ya tendremos nuestro sistema clonado en una máquina virtual. Una vez realizada la restauración, el sistema arranca desde la máquina virtual. Para obtener un mejor rendimiento, instalaremos las GUEST ADICCIONS. Listo!!!! sino podéis probar arealizar un backup o restaurarlo también con el comando (en linux) tar

DESCARGAR CLONEZILLA AQUÍ para Ubuntu

DESCARGAR CLONEZILLA AQUÍ para Windows







Espero que os sirva de ayuda,

para más info suscribete a Desy Repara