jueves, 26 de abril de 2012

Ejercicio con matrices y bucles en Lenguaje C

Caso Práctico

Tenemos guardada en una matriz los alumnos de una escuela. Sabiendo que hay 3 cursos distintos, 5 alumnos por curso y que cada alumno tiene 2 asignaturas, se pide:

1. Pedir por teclado las notas que ha sacado cada alumno en cada asignatura y de cada curso.

2. Decir cual es la nota media de un determinado curso.

3. Decir cuántos aprobados y suspensos hay en una determinada asignatura en un determinado curso.

int main()
{

float escuela[3][5][2];
int c,al,as,i,j,menu,asignatura,pos=0;
float media=0;
float aprobados=0;
float suspensos=0;

printf("PROGRAMA ESCUELA\n\n");
printf("================\n\n");

for(c=1;c<4;c++)
{
    printf("CURSO %d:\n",c);
        for(al=1;al<6;al++)
        {
            printf("    ALUMNO %d:\n",al);
                for(as=1;as<3;as++)
                {   
                    printf("        Introduce la nota de la Asignatura %d: ",as);
                    scanf("%f",&escuela[c-1]
[al-1][as-1]);                                        
                }

        }

}

printf("\n\n");

printf("De que curso quiere saber la nota media? [1,2,3]
");
scanf("%d",&menu);

switch (menu){

    case 1:
        for(i=0;i<5;i++)

                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[0][i][j];
          }
        }
        printf("La nota media del Curso 1 es %.2f\n\n\n",media/10);

                  break;

    case 2:

               for(i=0;i<5;i++)
                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[1][i][j];
          }
        }
        printf("La nota media del Curso 2 es %.2f\n\n\n",media/10);

                  break;
    case 3:
       
for(i=0;i<5;i++)
                    {
                         for(j=0;j<2;j++)
          {
              media += escuela[2][i][j];
          }
        }
        printf("La nota media del Curso 3 es %.2f\n\n\n",media/10);

                  break;
}

printf("Aprobados y Suspensos. Seleccione el Curso [1,2,3]");
scanf("%d",&menu);

switch (menu){

    case 1:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[0][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }
            }
            printf("En la Asignatura 1 del Curso 1 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[0][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 1 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;

   
case 2:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[1][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 1 del Curso 2 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[1][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 2 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;

   
case 3:
        printf("De que asignatura?[1,2]");
        scanf("%d",&asignatura);
        if(asignatura==1)
        {
            for(i=0;i<5;i++)
            {
                if(escuela[2][i][0]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 1 del Curso 3 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        else
        {
           
for(i=0;i<5;i++)
            {
                if(escuela[2][i][1]>=5)
                {
                    aprobados++;
                }
                else
                {
                    suspensos++;
                }

            }
            printf("En la Asignatura 2 del Curso 3 hay %.0f aprobados y %.0f suspensos\n\n",aprobados,suspensos);
        }
        break;
}

system("PAUSE");

}

Sumar las filas y columnas de una matriz en Lenguaje C

El ejercicio consiste en realizar una matriz de 5x4 elementos y sumar fila por fila y columna por columna, guardando los resultados en dos vectores, uno vertical para las filas, y otro horizontal para las columnas.

Ejemplo:

    MATRIZ       RESULTADO FILAS

5  6  7  2  3    23
4  2  1  0  6    13
3  2  7  6  5    23
7  8  5  2  1    23

19 18 20 10 15 <<-- RESULTADO COLUMNAS




int main()
{

int matriz[4][5];
int horizontal[5];
int vertical[4];
int fila,columna;
int suma=0;
int i;


/*Bucle que registra los numeros introducidos de teclado*/
for(fila=0;fila<4;fila++)
{
    for(columna=0;columna<5;columna++)
    {
        printf("Introduce un numero para la posicion %d,%d: ",fila,columna);
        scanf("%d",&matriz[fila][columna]);
    }
}

/*Bucle que suma las filas y registra el resultado en el vector vertical*/
for(fila=0;fila<4;fila++)
{
    suma=0;
    for(columna=0;columna<5;columna++)
    {
        suma+=matriz[fila][columna];
    }
    vertical[fila]=suma;
}

/*Recorre el vector vertical y muestra los resultados*/
for(i=0;i<4;i++)
{
    printf("%d\n",vertical[i]);
}

/*Bucle que suma las columnas y registra el resultado en el vector horizontal*/
for(columna=0;columna<5;columna++)
{
    suma=0;
    for(fila=0;fila<4;fila++)
    {
        suma+=matriz[fila][columna];
    }
    horizontal[columna]=suma;
}

/*Recorre el vector horizontal y muestra los resultados*/
for(i=0;i<5;i++)
{
    printf("%d",horizontal[i]);
}
system("PAUSE");
}

martes, 24 de abril de 2012

Calcular el día de la semana a partir de una fecha en Lenguaje C

Para calcular el día de la semana (Lunes, Martes, Miércoles...) a partir de una fecha del tipo 02/03/2010, hay que hacer uso del siguiente algoritmo.


Donde:

d = día de la semana
A = Año
DM = Días transcurridos hasta antes del primer día del mes
D = Día
% = Módulo

En primer lugar debemos tener en cuenta si el año es bisiesto o no. Por lo que para calcular el DM%7 deberemos usar una tabla u otra:

Meses E F M A M J J A S O N D
Año regular 0 3 3 6 1 4 6 2 5 0 3 5
Año bisiesto 0 3 4 0 2 5 0 3 6 1 4 6

Vamos a realizar el programa en C:

{

//Declaracion de vectores y variables
int regular[]={0,3,3,6,1,4,6,2,5,0,3,5};
int bisiesto[]={0,3,4,0,2,5,0,3,6,1,4,6};
int d,m,a;

//Para simplificar el algoritmo vamos a dividirlo en partes más pequeñas

int result1,result2,result3,result4,result5;

printf("Introduce un dia de la semana en numero: ");
scanf("%d",&d);
printf("Introduce un mes en numero: ");
scanf("%d",&m);
printf("Introduce un anyo en numero: ");
scanf("%d",&a);

//comprobamos primero si el año es bisiesto o es regular
//si es bisiesto, asignamos a m la posición del vector bisiesto -1
//si es regular, asignamos a m la posición del vector regular -1

if((a%4==0) && !(a%100==0))
{
    m=bisiesto[m-1];
}
else if (a%400==0)
{
    m=bisiesto[m-1];
}
else
{
    m=regular[m-1];
}

//Resolvermos la fórmula poco a poco

result1=(a-1)%7;
result2=(a-1)/4;
result3=(3*(((a-1)/100)+1))/4;
result4=(result2-result3)%7;
result5=d%7;
d=(result1+result4+m+result5)%7;

//resuelto el dia, con un switch case mostramos en pantalla lo que corresponda.

switch(d)
{
    case 0:
        printf("Domingo\n");
        break;
    case 1:
        printf("Lunes\n");
        break;
    case 2:
        printf("Martes\n");
        break;
    case 3:
        printf("Miercoles\n");
        break;
    case 4:
        printf("Jueves\n");
        break;
    case 5:
        printf("Viernes\n");
        break;
    case 6:
        printf("Sabado\n");
        break;
}
system("PAUSE");

}








































                   

lunes, 23 de abril de 2012

Calcular la letra del DNI en Lenguaje C

La letra del DNI es una técnica utilizada para evitar los errores al introducir los 8 números de un DNI. 

Se usan 23 letras del abecedario para el DNI que se encuentran ordenadas en una tabla específicamente así:

0=T, 1=R, 2=W, 3=A, 4=G, 5=M, 6=Y, 7=F, 8=P, 9=D, 10=X, 11=B, 12=N, 13=J, 14=Z, 15=S, 16=Q, 17=V, 18=H, 19=L, 20=C, 21=K, 22=E.

Cada letra se corresponde con un número.

La técnica para calcular el DNI es la siguiente:

- Se divide el nº de DNI entre 23.
- El resto de la división, corresponderá con la letra de ese DNI.

Así si tecleas tu DNI y te equivocas en un número, el programa compara la letra que has introducido con la que debería tener ese número. Si no coinciden, el programa te avisa.

Eso es lo que vamos a crear en C, un programa que calcule la letra de un DNI y lo compare con la letra introducida por el usuario.

{
/*Metemos en un vector las 23 letras usadas en el DNI en el orden especificado anteriormente*/
char letras[]={'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'};
int dninumero;
char letra;


printf("Introduce el numero de tu DNI (sin letra): ");
scanf("%d",&dninumero);


printf("Introduce la letra de tu DNI: ");
scanf("%c",&letra);

/*Comparamos la letra introducida por el usuario con la calculada por el programa (resto de dividir el DNI entre 23)*/
if(letra==letras[dninumero%23])
{
    printf("El DNI es correcto");
}
else
{
    printf("El DNI NO es correcto");
}

}

domingo, 22 de abril de 2012

Calculadora básica en Lenguaje C

Vamos a crear una sencilla calculadora en C, con un pequeño menú que nos permita seleccionar si deseamos sumar, restar, multiplicar o dividir. Y nos pida dos números con los que operar.

También añadiremos en el menú una opción para Salir.

Empezamos...

{

int eleccion,operador1,operador2;

/*Empezamos usando un bucle do while para que el programa se ejecute hasta que el usuario seleccione la opcion 5*/
do
{
system("CLS"); //Limpia la pantalla en cada nueva operación.

printf("CALCULADORA\n\n");
printf("1. Suma\n");
printf("2. Resta\n");
printf("3. Multiplicacion\n");
printf("4. Division\n");
printf("5. Salir\n\n");

scanf("%d",&eleccion);

/*Usamos un switch como altenativa multiple para ejecutar la parte correspondiente a la elección del usuario*/

switch(eleccion)
{
    case 1:
        printf("Introduce un numero: ");
        scanf("%d",&operador1);
        printf("Introduce otro numero: ");
        scanf("%d",&operador2);
        printf("Resultado: %d\n",operador1+operador2);
        break;

    case 2:
        printf("Introduce un numero: ");
        scanf("%d",&operador1);
        printf("Introduce otro numero: ");
        scanf("%d",&operador2);
        printf("Resultado: %d\n",operador1-operador2);
        break;

    case 3:
        printf("Introduce un numero: ");
        scanf("%d",&operador1);
        printf("Introduce otro numero: ");
        scanf("%d",&operador2);
        printf("Resultado: %d\n",operador1*operador2);
        break;

    case 4:
        printf("Introduce un numero: ");
        scanf("%d",&operador1);
        printf("Introduce otro numero: ");
        scanf("%d",&operador2);

        /*Ponemos la condicion de que no se pueda dividir entre 0 ya que de lo contrario el programa dará error*/
        if(operador2==0)
        {
            printf("No se puede dividir entre 0, intentalo otra  vez...\n ");
        }
        else
        {
            printf(Resultado: %d\n",operador1/operador2);   
        }
        break;

    case 5:
        printf("Saliendo...\n\n");
}
system("PAUSE");
/*Cuando el usuario selecciona la opción 5, el bucle termina y se cierra el programa*/
}while(!(eleccion==5));

}






Comprobar si un número es primo en Lenguaje C

Un número primo es aquel que solo es divisible entre 1 y él mismo.
Con lo cual solo tiene 2 divisores.

Así que tendremos que usar el ejercicio anterior de calcular los divisores de un número, y comprobar que solo sean dos para que el número sea primo.

{

int num1,i,a;

a=0; */Esta variable la vamos a usar para contar los divisores del número introducido, la inicializamos a 0*/

printf("Introduce un numero: ");
scanf("%d",&num1);

for(i=1;i<=num1;i++)
{
    if(num1%i==0) // si num1 módulo de i es 0, incrementamos a en 1.
    a++;
}


if(a==2); /*Si al final del bucle, a vale 2, el número es primo, porque tiene solamente 2 divisores.
{
    printf("El número es primo");
}
else
{
    printf("El número no es primo");
}


}



Comprobar si un año es bisiesto o regular en Lenguaje C

Para que un año sea bisiesto se deben cumplir 3 condiciones:

1. Que el año sea múltiplo de 4. Es decir, que al dividirlo entre 4 el resto de 0.

2. Que el año NO sea múltiplo de 100. Irónico ya que el propio 100 es múltiplo de 4, con lo que esta condición contradice a la primera aunque luego lo resolveremos.

3. Para liarlo aún más, un año también es bisiesto si es múltiplo de 400, aunque el propio 400 sea múltiplo de 100 que ya se está contradiciendo con la condición 2. 

Con esto tenemos que:

Los años 4,8,12,16... son bisiestos.
Los años 100,200,300,500... no son bisiestos.
Los años 400,800,1200,1600... son bisiestos. 


Pues vamos a hacer el programa que lo resuelva todo.




{


int num1;


printf("Introduce un numero: ");
scanf("%d",&num1);

//Las dos primeras condiciones: Si num1 es múltiplo de 4 y NO es múltiplo de 100


if((num1%4==0) && !(num1%100==0))
{
    printf("El año es bisiesto");
}


//La tercera condicion: Si num1 es múltiplo de 4


else if (num1%400==0)
{
    printf("El año es bisiesto");
}


else // Todos los demás no son bisiestos
{
    printf("El año NO es bisiesto");
}


}

Calcular los divisores de un número en Lenguaje C

Al dividir un número por su divisor, el resto de la división debe ser 0. Para ello usaremos en la función el operador Módulo de(%).

{

int num1,i; //Declaramos las variables de tipo entero

printf("Introduce un numero: ");
scanf("%d",&num1); //Guardamos el número introducido por el usuario en la variable num1

/*Con un bucle for, recorremos todos los números desde el 1 hasta el introducido por el usuario para comprobar uno a uno si es dividor de este.
 
for(i=1;i<=num1;i++)
{
    if(num1%i==0) //La condición es que el numero dividido entre num1 de como resto 0    
    {
        printf("%d, es divisor de %d \n",i,num1);
    }
}

}

sábado, 21 de abril de 2012

Escribir los números pares hasta un número dado en Lenguaje C

{

int num1,i; //Declaramos dos variables, una para pedir un numero y la otra para llevar la cuenta del bucle

printf("Introduce un numero: "); //Pedimos un número de teclado
scanf("%d",&num1); //Lo guardamos en la variable num1

/*Usamos un bucle for con los siguientes parámetros:
Inicializamos i en 2, en cada paso del bucle, i se incrementará en lo que ya tuviera + 2 (2,4,6,8...). El bucle se ejecutará mientras sea menor o igual que el número que hemos introducido de teclado*/
 
for (i=2;i<=num1;i+=2)
{
    printf("%d \n", i); //Mostramos lo que vale i en cada paso del bucle
}

system("PAUSE");

}

Cuenta atrás desde un número en Lenguaje C

{

int num1; //Declaración de variable de tipo entero

printf("Introduce un numero: "); //Pedimos un numero de teclado
scanf("%d",&num1); //Guardamos el numero en la variable num1

//Usamos un bucle Do While, para que se ejecute al menos una vez
do{

    printf("%d\n",num1); //Muestra en pantalla el numero introducido y lo decrementa en 1.
    num--;

}while (num1 != 0); //Todo esto lo realiza mientras num1 no sea 0. En el momento que llega a 0, el bucle termina.

system("PAUSE";


 

Resolver el mayor de dos números en Lenguaje C.

{

int num1, num2; //Declaramos dos variables de tipo entero.

printf("Introduce un numero: "); //Pedimos un numero de teclado.
scanf("%d",&num1); //Guardamos el numero en la variable num1.

printf("Introduce otro numero: "); //Pedimos otro numero de teclado.
scanf("%d",&num2); //Lo guardamos en la variable num2.

if(num1 > num2) //Comparamos, si num1 es mayor que num2...
{
    printf("El mayor es %d \n",num1); //Escribimos que el mayor es num1.
}
else //si no...
{
    printf("El mayor es %d \n",num2); //Escribimos que el mayor es num2.
}
system("PAUSE"); //Hacemos un pause en el programa para que de tiempo a ver el resultado.

}


domingo, 25 de marzo de 2012

Comandos Linux (Los más usados).

Una lista con los comandos más usados en la terminal de Linux.

Archivos y Directorios:

- cd /home: entrar en el directorio home.
- cd ..: retroceder un nivel.
- cd ../..: retroceder dos niveles.
- cd: ir al directorio raiz.
- cd ~user1: ir al directorio user1.
- cd -: regresar al directorio anterior.
- pwd: mostrar el camino del directorio de trabajo.
- ls: listar los ficheros de un directorio.
- ls -F: ver los ficheros de un directorio.
- ls -l: mostrar los detalles de ficheros y carpetas de un directorio.
- ls -a: mostrar los ficheros ocultos.
- tree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.
- lstree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.
- mkdir carp1: crear una carpeta o directorio con nombre carp1.
- mkdir carp1 carp2: crea dos carpetas o directorios simultáneamente.
- mkdir -p /carp0/carp1/carp2: crea un árbol de directorios.
- rm archivo1: borra el archivo llamado archivo1.
- rm -f archivo1: borra el archivo llamado archivo1.
- rmdir dir1: borra la carpeta llamada dir1.
- rm -rf dir1: borra la carpeta llamada dir1 y todo su contenido. 
- rm -rf dir1 dir2: borra dos carpetas con todo su contenido.
- mv dir1 nuevo_dir: cambia el nombre de dir1 a nuevo_dir.
- mv /dir1/file /dir2 mueve el archivo file de la carpeta dir1 a la carpeta dir2.
- cp archivo.txt: copia un archivo llamado archivo.txt
- cp archivo1 archivo2: copia dos archivos a la vez.
- cp dir /*: copia todos los ficheros de un directorio dentro del directorio de trabajo actual.
- cp -a /tmp/dir1: copa un directorio dentro del directorio de trabajo actual.
- cp -a dir1: copiar un directorio.
- cp -a dir1 dir2: copia dos directorios a la vez.
- ln -s file1 lnk1: crea un enlace simbólico al fichero o directorio.
- ln file1 lnk1: crea un enlace físico al fichero o directorio.
- touch -t 0854450000 file1: modifica el tiempo de creación de un fichero o directorio.
- file file1: salida (volcado en pantalla) del tipo mime de un fichero de texto.

Continuará...

jueves, 15 de marzo de 2012

Montar particiones de forma autómatica en Linux

Muchas veces tenemos en nuestro sistema particiones que nos piden poner contraseña para montarlas cada vez que iniciamos sesión.

A priori no es un drama, pero se reconoce que es un poco molesto el andar metiendo la contraseña cada vez que quieres acceder a un dato de esa partición.

La forma de solucionar esto es configurar la partición para que se automonte al arranque del sistema, y ya esté accesible desde el primer momento sin necesidad de poner contraseña.

El archivo a modificar se encuentra en /etc/fstab.

Pero existe una aplicación que nos lo pone mucho más facil a la hora de configurar el automontaje de nuestras particiones.

Se trata de PySDM.

Este programa se encuentra en la mayoría de repositorios oficiales de nuestra distro. Basta con ir a la terminal a descargarla:

apt-get install pysdm (si estás con una distro basada en Debian)
yum install pysdm (si estás con una distro basada en Red Hat)

Antes de tocar nada, conviene hacer una copia de seguridad del archivo fstab.

Desde la terminal y como root, nos situamos en la carpeta /etc y tecleamos:

cp fstab fstab-old

Con esto hacemos una copia de fstab en un archivo llamado fstab-old.

Si la fastidiamos en algún momento, podemos restaurar el fstab tecleando:

cp fstab-old fstab

Para iniciarlo lo tecleamos desde la terminal

pysdm



Como vemos en la imagen, a la derecha se nos muestra nuesto disco duro sda, y dentro las particiones disponibles, sda1, sda2, y sda3.

En mi caso, la primera partición, sda1 es la partición del sistema, la sda2 es la partición swap, y la sda3 es una partición NTFS que necesitaba autenticar por contraseña cada vez que iniciaba sesión en el equipo.

Así que marcamos la partición a automontar, y clicamos en Asistente.


Aquí nos aseguramos de que esté marca la opción:

"Montar el sistema de ficheros en el arranque".

Y que esté NO esté marcada la opción:

"Sistema de solo lectura".

Aceptamos, y luego Aplicamos.

Tras reiniciar, ya se nos montará esa partición automáticamente.





martes, 13 de marzo de 2012

Instalar Prestashop en Linux

En esta guía vamos a explicar cómo instalar el gestor de tiendas virtuales de código abierto, Prestashop, en nuestra máquina Linux.

La instalación no difiere mucho respecto a la de Windows, aunque existen un par de detalles que mencionaremos posteriormente.

Antes de instalar Prestashop y ejecutarlo en modo local, necesitamos que se encuentren instalados: Apache, PHP y mySQL.

Para instalar estos módulos puedes consular esta entrada donde se explicó cómo instalar el paquete XAMPP en Linux. 

Empezamos...


Lo primero será acudir a la web del proyecto y descargar el paquete Prestashop, que está comprimido en zip.

Podemos extraerla con nuestro descompresor favorito, o podemos acceder a una terminal, situarnos en el directorio donde se ha descargado y teclear:

unzip prestashop_1.4.7.0.zip



Una vez descomprimido, vemos que la carpeta que nos ha generado:


Bien, esta carpeta tenemos que copiarla dentro de /opt/lampp/htdocs.

Pero si intentamos copiarla tal cual, nos va a decir que no tenemos permisos para realizar la acción.

Así que vamos a copiarla utilizando la terminal.

Lo primero nos identificamos como root:

su
password

Nos situamos en el directorio donde se encuentra la carpeta Prestashop, y tecleamos:

cp -R prestashop /opt/lampp/htdocs



Con cp copiamos, con -R le decimos que incluya todos los archivos y subdirectorios que hay en el interior, y lo último es la ruta en donde queremos copiarlo.

Nos aseguramos de que se ha copiado correctamente:



Otro paso importante:

Para instalar Prestashop, éste necesita poder leer/escribir en los archivos/carpetas de Prestashop. Pero recordemos que la carpeta /opt y todos los subdirectorios que le cuelgan solo son escribibles por root. Para cualquier otro usuario solo son de lectura.

Así que necesitamos asignar permisos de lectura/escritura a toda la carpeta prestashop, para que cualquier usuario (el propio Prestashop) tenga acceso a lectura/escritura.

El comando es:

chmod -R 0777 /opt/lampp/htdocs/prestashop



chmod es el encargado de asignar permisos.
-R le indica que afecte a todos los archivos y subdirectorios que contiene.
Los permisos en Linux se establecen mediante un número octal (con base 8), esto significa, números que comprenden entre el 0 y el 7. 
El parámetro 0777 asigna permisos a cualquier usuario para lectura/escritura.

Una vez establecidos los permisos, vamos a crear la base de datos sobre la que trabajará Prestashop.

Para ello accedemos al navegador y entramos en http://localhost/phpmyadmin


Pinchamos en Bases de Datos y escribimos el nombre para esta. Por ejemplo, Prestashop, y clic en Crear.


Ahora para instalar Prestashop entramos en http://localhost/prestashop:

Lo primero que nos aparece es el Contrato de Licencia. Siguiente:



A continuación nos pide un nombre para el servidor, el nombre de la base de datos que habíamos creado, el usuario de la base de datos, etc..

Podemos dejar las opciones por defecto:


En tipo de instalación podemos darle a Modo Completo, para que nos incluya todos los módulos y la tienda de ejemplo para ver cómo funciona y poder modificarla a nuestro antojo.

El e-mail es opcional y como bien dice, configurarlo es para expertos únicamente, jeje.


Más datos sobre nuestra tienda. Podemos poner el nombre, el tipo de actividad que vamos a realizar, escoger un logo, etc.


Escribimos nuestro nombre y apellido.

Muy importante la dirección de email que pongamos aquí y la contraseña, pues es la que nos va a pedir cuando administremos la tienda.


La hemos terminado la instalación. 


Como vemos en el mensaje, nos dice que para más seguridad borremos la carpeta install que se encuentra dentro de la carpeta Prestashop.

Pues nos vamos a la terminal, nos siguamos en el directorio de prestashop:

cd /opt/lampp/htdocs/prestashop

y tecleamos:

rm -rf install (siempre identificado como root)



rm borra el directorio
-rf borra todos los archivos y subdirectorios internos y además no nos pregunta uno a uno si estamos seguros de borrarlos, ya que son bastantes archivos y directorios, y podemos estar un buen rato confirmando el borrado de cada archivo/directorio.

También tenemos que renombrar el directorio /admin.

Pues ya que tenemos la terminal abierta la renombramos, por ejemplo, a admin1:

mv admin admin1



Y para acceder a nuestra tienda entramos en http://localhost/prestashop

Añadir leyenda


Para acceder a la zona de administración, entramos en http://localhost/prestashop/admin1


Y eso es todo.