Mostrando entradas con la etiqueta prácticos. Mostrar todas las entradas
Mostrando entradas con la etiqueta prácticos. Mostrar todas las entradas

viernes, 6 de enero de 2012

C++ Clase cola circular de enteros

//archivo ccolacircular.h
// Class automatically generated by Dev-C++ New Class wizard

#ifndef CCOLACIRCULAR_H
#define CCOLACIRCULAR_H

C++ Clase card para almacenar y mostrar datos sobre libros

//archivo ccard.h
// Class automatically generated by Dev-C++ New Class wizard
#include <string>
#include <iostream>
#include <string.h>   // Required by strcpy()
#include <stdlib.h>
#ifndef CCARD_H
#define CCARD_H

C++ Pila simple para almacenar caracteres mediante un array de caracteres

//archivo cpila.h
// Class automatically generated by Dev-C++ New Class wizard
#include <iostream>
#ifndef CPILA_H
#define CPILA_H

miércoles, 4 de enero de 2012

Java Escalera con astericos

*
**
***
****
*****

//archivo cAsteriscos.java


Java Clase para calcular número de personas según el número de chocos y de papas

Ampliar el programa anterior creando una clase que permita almacenar los kilos de papas y chocos del restaurante.

import java.io.*;
public class cPapaschocos2 {


Java Calcular el número de personas según los kilogramos de papas y chocos que tenga

 El enunciado del ejercicio original está en http://pizarra2011.wikispaces.com/Ejercicio+11+t2
/*
Carlos Pascual Piles García

11. El restaurante mejicano de Israel cuya especialidad son las papas con chocos nos pide diseñar

Aprenda Java como si estuviera en primero: Ejemplo 1

Éste es el código del Ejemplo1 del magnífico manual de Java
Aprenda Java como si estuviera en primero
Yo, que ya había programado en Java, he repasado todo y la verdad es que es BASTANTE BUENO. Tiene su poquito de cada cosa y está muy bien explicado.
Lo he programado en Eclipse bajo Guadalinex. Eclipse permite crear el proyecto y las clases desde la interfaz gráfica, así como asignar las interfaces y las superclases a las clases.
Aquí dejo un enlace a los archivos:

martes, 3 de enero de 2012

Shell Script Visitas a web de máquinas externas

#!/bin/bash

#*Ejercicio 11.* Un administrador de sistema quiere saber si hay accesos a
#su servidor Web desde máquinas desconocidas. Para ello dispone de un
#archivo de log accesos.log cuyo primer campo, separado por blancos, es el
#nombre de una máquina o su número IP, indistintamente; luego otros dos
#campos, luego fecha y página solicitada. La lista de máquinas de su propio
#dominio se encuentran en el archivo /etc/hosts. Escribir un script que
#muestre los nombres o números IP de máquinas que accedieron el Web y la
#fecha, omitiendo las máquinas del propio dominio.  Recordar que el archivo
#/etc/hosts puede tener comentarios, y que accesos.log tiene varios campos.

if [ $# -gt 1  ] #comprobar número de parámetros introducidos
then          #gracias a Alejandro por sus buenas formas
    echo "¡¡Horror!! Uso "$0" "
    exit
fi

cat /etc/hosts | grep ^[^#.] | awk -F"[ \t]" '{print $1 }' > hosts.txt

while read linea
do
    servidor=`echo $linea | cut -d" " -f1`
    fecha=`echo $linea | cut -d" " -f4`
    #echo $servidor
    grep $servidor hosts.txt &>/dev/null
    if [[ $? != 0 ]]
    then
        echo "$servidor $fecha"
    fi
done < accesos.log

Shell Script A partir de un archivo con una lista de nombres, liste los que no están dados de alta en el sistema

#!/bin/bash

#*Ejercicio 10.* Construir un script que a partir de una lista de nombres de
#usuario contenida en el archivo alumnos.txt, uno por línea, determine si el
#usuario existe o no. El script emitirá un listado con los usuarios que
#figuren en el archivo alumnos.txt pero no existan en el sistema.
#*Ayuda:* el comando id usuario devuelve código de retorno 1 cuando el
#usuario no existe, 0 si existe. Redireccionar las salidas de id para no
#confundir el despliegue.

if [ $# -gt 1  ] #comprobar número de parámetros introducidos
then          #gracias a Alejandro por sus buenas formas
    echo "¡¡Horror!! Uso "$0" "
    exit
fi

while read linea
do
    existe=`id -u $linea 2>/dev/null`
    if [[ $existe == '' ]]
    then
        echo $linea
    fi
done < alumnos.txt

Shell Script Calcular cantidad de cuentas para cada shell y nombres de cuentas sin shell asignado

#!/bin/bash

#*Ejercicio 9.* Construir un script que:
#a) indique los nombres de los diferentes shells asignados a las cuentas de
#usuario en el archivo /etc/passwd y la cantidad de cuentas de cada uno de
#esos shells;
#b) muestre los nombres de cuentas sin shell asignado.


if [ $# -gt 1  ] #comprobar número de parámetros introducidos
then          #gracias a Alejandro por sus buenas formas
    echo "¡¡Horror!! Uso "$0" "
    exit
fi
echo "Usuarios con shell asignado y cantidad"
cat /etc/passwd | cut -d: -f7 | sort | uniq -c
echo "Usuarios sin shell asignado"
cat /etc/passwd | grep ".*:.*:.*:.*:.*:.*:$" | cut -f1 -d:

Shell Script Instalación de programa

#!/bin/bash
#*Ejercicio 7.* Los creadores del programa maravil necesitan un script de
#instalación, llamado instalar.sh. Debe realizar estas tareas:
#1) presentar como pantalla de bienvenida el archivo bienvenida.txt, que
#ocupa menos de una pantalla; el usuario deberá digitar Enter para
#continuar.
#2) presentar una pantalla con la licencia, el archivo licencia.txt, también
#menor de una pantalla; el usuario deberá digitar la tecla S para aceptar la
#licencia, si no la acepta el programa avisa y termina con código de error
#1.
#3) inicializar una variable DIRINSTAL con el nombre del directorio de
#instalación por defecto, /usr/local/maravil.
#4) preguntar al usuario el directorio de instalación, mostrando el nombre
#sugerido (variable DIRINSTAL); el usuario podrá digitar un nombre de
#directorio o Enter para aceptar el directorio sugerido. En cualquier caso,
#el nombre del directorio de instalación deberá quedar en la variable
#DIRINSTAL.
#5) verificar si existe ya el directorio de instalación; es así, continúa la
#instalación, y si no, deberá pedir autorización al usuario, crearlo y
#verificar la creación exitosa. Si el usuario no autoriza la creación del
#directorio, el programa termina con error 2; si no se pudo crear el
#directorio el programa termina con error 3. En todos los casos se informa
#lo realizado.
#6) copiar los archivos maravil.py, LEAME y manual.txt hacia el directorio
#de instalación.  Si la copia no da error, se informa la terminación exitosa
#de la instalación; en otro caso, se informa el error y se borra el
#directorio de instalación y todo su contenido. 

cat bienvenida.txt
while :; do
        read tmp
        if [ -z "$tmp" ]; then
        break
        else
                echo "Pulsa Intro para continuar"
        fi
done
cat licencia.txt
read licencia
if [ $licencia == 'S' ]
then
    echo "Licencia aceptada."
else
    echo "No has aceptado la licencia. Saliendo."
    exit 1
fi
DIRINSTAL="/usr/local/maravil"
echo "Escribe el nombre del directorio donde instalar o INTRO para el directorio por defecto"
read directorio
if [ -z "$directorio" ]; then
    echo
else
    DIRINSTAL=$directorio
fi
echo "El directorio de instalación será $DIRINSTAL"
if [ -d $DIRINSTAL ]
then
    echo "El directorio ya existe. Se instalaré el programa en él. ¿Da usted su permiso?"
    read resdir
    if [[ $resdir == 'S' ]]
    then       
        echo "Se van a copiar los archivos."
    else
        echo "Si no da usted permiso, salimos."
        exit 3
    fi
else
    echo "El directorio no existe. Vamos a crearlo. Pulse S para crearlo. ¿Da usted su permiso?"
    read resdir
    if [[ $resdir == 'S' ]]
    then
        mkdir $DIRINSTAL       
        if [[ $? != 0 ]]
        then
            echo "Error al crear el directorio."
            exit 2
        fi
    else
        echo "Si no da usted permiso, salimos."
        exit 3
    fi
fi
cp maravil.py LEAME manual.txt $DIRINSTAL

if [[ $? == 0 ]]
then
    echo "Instalación exitosa"
else
    rm -r $DIRINSTAL
fi

Shellscript Sumar tamaños archivo usuario

#!/bin/bash

#*Ejercicio 5.* Se desea sumar el espacio ocupado por un usuario en un
#directorio y todos sus subdirectorios. Para ello, deben sumarse los tamaños
#de todos los archivos de ese usuario en esa rama de directorios.
#El script recibirá como parámetros el nombre del usuario y el nombre del
#directorio.
#Validará que el usuario pertenezca al sistema, y que el nombre de
#directorio recibido sea efectivamente un directorio.
#Presentará el resultado total en bytes, Kbytes y Mbytes enteros.
# *Sugerencia:* usar el comando find con listado largo; el tamaño de archivo
#en el listado largo está entre las columnas 47 y 56. 



if [ $# -gt 2  ] #comprobar número de parámetros introducidos
then          #gracias a Alejandro por sus buenas formas
    echo "¡¡Horror!! Uso "$0" "
    exit
fi

usuario=$1
carpeta=$2
total=0

echo $usuario
echo $carpeta

existeusuario=`id $usuario 2>/dev/null`

if [ "$existeusuario" == "" ]
then
    echo "El usuario no existe"
else
    if [[ -d $carpeta ]]
    then
        #echo "La carpeta sí existe"
        find $carpeta -user $usuario -printf "%s\n" > tamano.txt
        while read linea
        do
            total=`expr $total + $linea`
        done < tamano.txt
        echo "Número de bytes: $total"           
        kbytes=`echo "scale=0;$total/1024" | bc`
        echo "Número de kilobytes: $kbytes"
        mbytes=`echo "scale=0;$kbytes/1024" | bc`
        echo "Número de megabytes: $mbytes"

    else
        echo "La carpeta no existe"
    fi
fi

Desarrolle un programa en C al que se le pase por línea de comandos dos parámetros. El primero puede ser \l o \u, y el segundo, el nombre de un fichero. Si el primero de ellos es \l, se debe pasar a minúsculas todas las mayúsculas del fichero. Si es \u, hay que convertir a mayúsculas todas las minúsculas.

/*Desarrolle un programa en C al que se le pase por línea de comandos dos
parámetros. El primero puede ser \l o \u, y el segundo, el nombre de un
fichero. Si el primero de ellos es \l, se debe pasar a minúsculas todas las
mayúsculas del fichero. Si es \u, hay que convertir a mayúsculas todas las
minúsculas.*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

FILE *f1,*fres;
char nf1[50]="personas.txt";
char nf2[50]="resultado.txt";
char ch;
char ch2;
char c;
char cres;


char minamay (char c)
{
    switch(c) {
        case 'a': return('A');
                  break;
        case 'b': return('B');     
                  break;
        case 'c': return('C');     
                  break;
        case 'd': return('D');     
                  break;
        case 'e': return('E');     
                  break;
        case 'f': return('F');     
                  break;
        case 'g': return('G');     
                  break;
        case 'h': return('H');     
                  break;
        case 'i': return('I');     
                  break;
        case 'j': return('J');     
                  break;
        case 'k': return('K');     
                  break;
        case 'l': return('L');     
                  break;
        case 'm': return('M');     
                  break;
        case 'n': return('N');     
                  break;
        case 'ñ': return('Ñ');     
                  break;
        case 'o': return('O');     
                  break;
        case 'p': return('P');     
                  break;
        case 'q': return('Q');     
                  break;
        case 'r': return('R');     
                  break;
        case 's': return('S');     
                  break;
        case 't': return('T');     
                  break;
        case 'u': return('U');     
                  break;
        case 'v': return('V');     
                  break;
        case 'w': return('W');     
                  break;
        case 'x': return('X');     
                  break;
        case 'y': return('Y');     
                  break;
        case 'z': return('Z');     
                  break;
        default:  return(c);
                  break;         
              }
 }

char mayamin (char c)
{
    switch(c) {
        case 'A': return('a');
                  break;
        case 'B': return('b');     
                  break;
        case 'C': return('c');     
                  break;
        case 'D': return('d');     
                  break;
        case 'E': return('e');     
                  break;
        case 'F': return('f');     
                  break;
        case 'G': return('g');     
                  break;
        case 'H': return('h');     
                  break;
        case 'I': return('i');     
                  break;
        case 'J': return('j');     
                  break;
        case 'K': return('k');     
                  break;
        case 'L': return('l');     
                  break;
        case 'M': return('m');     
                  break;
        case 'N': return('n');     
                  break;
        case 'Ñ': return('ñ');     
                  break;
        case 'O': return('o');     
                  break;
        case 'P': return('p');     
                  break;
        case 'Q': return('q');     
                  break;
        case 'R': return('r');     
                  break;
        case 'S': return('s');     
                  break;
        case 'T': return('t');     
                  break;
        case 'U': return('u');     
                  break;
        case 'V': return('v');     
                  break;
        case 'W': return('w');     
                  break;
        case 'X': return('x');     
                  break;
        case 'Y': return('y');     
                  break;
        case 'Z': return('z');     
                  break;
        default:  return(c);
                  break;         
              }
 }

int main(int argc, char *argv[]) {

     if (argc!=3) /* argc should be 2 for correct execution */
    {
        /* We print argv[0] assuming it is the program name */
        printf("Uso: %s nombre de fichero\n", argv[0] );
        printf("Número de parámetros: %d",argc);
           }
    else
    {
         printf("El primer parámetro es %s\n",argv[1]);
         printf("El segundo parámetro es %s\n",argv[2]);
         f1=fopen(argv[2],"r");
        if( f1 == NULL )
         {
               puts("No se puede abrir el fichero");
               exit(EXIT_FAILURE);
         }
         fres=fopen("resultado.txt","w+");
         if( fres == NULL )
         {
               puts("No se puede abrir el fichero");
               exit(EXIT_FAILURE);
         }
       switch( argv[1][0] )
       {
         case 'l': ;
         
              do {
                  c=getc(f1);
                  printf("%d",c);
                  if (c==EOF) {
                     break;
                     }
                  else {
                     cres=mayamin(c);
                     putc(cres,fres);    
                  }
                 } while (c != EOF);
              break;
          case 'u': ;
               do {
                  c=getc(f1);
                  printf("%d",c);
                  if (c==EOF) {
                     break;
                     }
                  else {
                     cres=minamay(c);
                     putc(cres,fres);    
                  }
                 } while (c != EOF);
               printf("El primer parámetros es u\n");
               break;
          default:
               printf("Parámetro no reconocido.");
               break;
          }        
    }
   
    system ("pause");
    /*printf("Programa finalizado. Pulse INTRO para salir");*/
    return 0;
}