domingo, 16 de octubre de 2011

Guias, tutoriales y mas.

Guías tutoriales y mas sobre ubuntu






Bueno buscando en la web sobre linux, ubuntu etc. Me encontré estas buenas paginas en las cuales podréis aprender bastante sobre Linux;  Tanto por los vídeos de youtube que son muy instructivos y por un foro que me encontré en la web, este ultimo es creado por  juanetebitel uno de los que hace los tutoriales en youtube. allí podreis leer y nunca terminareis de aprender sobre Linux.


Foro aprederemos todo sobre GNU/linux
http://foro-ubuntu-guia.963965.n3.nabble.com/

Videos tutoriales para aprender aun mas sobre GNU/linux
http://www.youtube.com/user/pedrote2222#p/u/22/XPx8exlTYEI

Maestro Guia en videos sobre GNU/linux
http://www.youtube.com/user/juanetebitel#p/u/38/RA2CyI0lXdA

Clases completisimas de ubuntu.
http://www.gnutnfra.com.ar/mediawiki/index.php?title=Material

martes, 11 de octubre de 2011

Proyecto robotica

 Dribbler

Autor: Martin Berkhoff Jerez
Competencia: Desarrollo de software
Palabra clave: Dribbler
curso: Proyecto robotica.

Bueno compañeros aqui les  traje un proyecto de robotica, realizado el segundo semestre de el presente año, aqui les enseñare el codigo con  una pequeña explicacion de el, para que vean como desarrollamos la solucion a lo que se pidio en la actividad.

Descripcion de la actividad
  1. La idea de la competencia es que un robot autónomo encuentre la mayor cantidad de “zonas de puntaje” (círculo negro) en la pista, sin chocar con los obstáculos presentes (paredes, bloques, etc), ya que cuando pase esto, termina el juego.
  2. Cuando el robot vaya a chocar, el jugador debe indicarle que existe peligro de choque, a través de una señal audible (grito, pitazo, aplauso, etc), de modo que el robot no colisione.
  3. Cada vez que el robot encuentra una zona de puntaje (círculo negro), acumula puntos, pero también aumenta su velocidad.
  4. Gana el jugador que logre el mayor puntaje, antes de chocar con algún obstáculo.

Solucion: aplicamos los conocimientos adquiridos en las guias subidas a moddle y el trabajo de equipo logro la finalizacion de este trabajo, bueno aqui les presento el codigo.


Codigo:


mutex bandera;
int potencia=20;
int t_inicial=0;  //tiempo entre circulos
int t=0;     //para calculo puntaje
int a_puntaje[100];  //arreglo
int i=0;        //variable arreglo
int k=0;        //variable arreglo
int ga=0;       //giro aleatorio

int total=0; //almacena contenido arreglo


#define NEGRO 35    //valor máximo para superficie negra
#define GRITO 80     //valor para ruido

task Avanza()
{
    t_inicial=CurrentTick();    //asignación de tiempo cero
    while(true)
    {
        OnFwd(OUT_BC,potencia);
        if(SENSOR_3 > GRITO)      //si sensor ruido
        {
            Acquire(bandera);      //se pide uso de:
            OnFwd(OUT_B,75);       //motor derecho
            Wait(180);
            OnRev(OUT_C,75);
            Wait(180);              // motor izquierdo
            Release(bandera);
        } //usado para esquivar cuando se le "grite"
    }
}   //tarea que permite avanzar y esquivar

task Circulo()
{
    while(true)
    {
        if(SENSOR_2 <= NEGRO)
        {
            PlayFile("! Click.rso"); 
//sonido usado cuando detecta punto
            t=(CurrentTick()-t_inicial)/1000; //variable que calcula segundos
            if(t<=10)
            {
                a_puntaje[i]=(-5*t)+50;
                i++;  //avanza a siguiente posición en arreglo
            } //si t es menor, igual a 10 asigna un puntaje en el arreglo
            else
            {
                a_puntaje[i]=0;
                i++;
            } // si no almacena un cero en el arreglo
            potencia=potencia+10;  //incremento de la potencia

            if(potencia>=100)
            {
                potencia=100;
            } //si el incremento resultara mayor a 100, ésta es igualada a 100
            ga=Random(721); //para dar un tiempo aleatorio
            Acquire (bandera);
            OnFwd(OUT_B,75); Wait(ga);  //giro entre 0 y 721 ms, (0 a 360 grados)
            OnRev(OUT_C,75); Wait(ga);
            Release (bandera);
            t_inicial=CurrentTick(); 
//reasinga el tiempo inicial al valor del CurrentTick() 
}
    }
} //tarea que almacena dato en arreglo y realiza giro


task Sonido()
{
    while(true)
    {
        PlayFileEx("nyan.rmd",4,true);  //sonido para avanzar
        Wait(3000);
    }
}

task Final()
{
    Acquire(bandera);
    Off(OUT_BC);   //apaga motores
    for(k=0;k<i;k++)
    {
        NumOut(30,k*10, a_puntaje[k]);
        total=total+a_puntaje[k];
  }//muestra en pantalla los valores del arreglo y además calcula el total.
    NumOut(60,0,total);   //muestra el total
    Wait(5000);
    Release(bandera);
    StopAllTasks(); //mata todo
}

task Choque()
{
    while(true)
    {
        if(SENSOR_1==1 || SENSOR_4==1)
        {
            ExitTo(Final);
        }
    }
} //cuando el robot choca llama a Final();

task main()
{
    Precedes(Avanza, Circulo, Choque, Sonido);
    SetSensorLight(IN_2);
    SetSensorTouch(IN_4);
    SetSensorTouch(IN_1);
    SetSensorSound(IN_3);

}
 
Para que vean como quedo el robot final mente aqui les dejo el video:
Reflexion, nunca terminamos de aprender sobre la programacion de los robot, 
siempre hay algo nuevo y eso nos motiva. 

Metodo del trapecio

Autor: Martin Berkhoff Jerez
Competencia: Desarrollo de software
Palabra clave: bluJ, area
Curso: Programacion II

Descripcion de la Actividad
Para esta ocacion les enseñare un ejercicio realizado en un laboratorio de programacion II, donde calculamos el area bajo una curba. Para esro fue nesesario una catedra de matematicas  y luego pasamos a desarrollarlo en BLUJ.

Solucion: Esta fue dada por el profesor ya que calcular el area bajo la curva es algo muy complicado para el nivel de matematicas que tiene el curso. En  fin, el codigo final es el siguiente.

Codigo: 
import java.io.*;
Public class trapecio {
   public static void main (String args[]) {
    double a= 2.0,  b= 5.0;
    double fa, fb, h, error, eps = 0,00001;
    double area, areaAnt =0;
    int n=2;
   
    do {
        h= (b-a)/n;
        for(int i=1; i<n; i++);
        area = area +f(a+i*h)
        area = h * area;
        System.out.println("n ="+ n + "area ="+ area);
        error = (area - areaAnt)/area;
        if (error < 0) error = -error;
        areaAnt = area;
        n = 2 * n;
        } while(error > eps);
        }
        private static double f(double x)
        { return x*x - 7 * x + 10;
        }
        } 
En bluJ se veia asi:
Y el resultado compilado de el programa esta aqui:



A modo de reflexion en este laboratorio aprendimos muchas cosas nuevas y nos dimos cuenta que tenemos que ponerle arto estudio  en matematicas para poder elaborar programaciones  asi, como las son las de los ingenieros.

lunes, 10 de octubre de 2011

Diagrama y ruteo

Autor: Martin Berkhoff
Competencia : Desarrollo software
Palabra clave: Diagrama de flujo 







Descripcion de la Actividad

Escriba un problema mediante diagrama de flujo para solicitar  dos edades en años y entrege las edades en dias. Determine quien es mayor. Asuma que un año es igual a 365 dias.

Solucion:  Pensar bien que se quiere lograr y ir paso a paso, identificar variables y condicionadores logicos.


Inicio --> Ea1,Ea2 --> ed = Ea1*365, ed2 = Ea1 *365 -->

ed1,ed2 --> ed1>ed2 -- >ed1 -->fin
                     if else     -- >ed2 --> fin



A modo de reflexion cuando comenzamos a realizar trabajos con diagramas de flujo no les tome mucha importancia, con el pasar de dias me di cuenta de que el algoritme es escencial para lograr completar una buena programacion..


                                                   

Robot Sumo

Autor: Martin berkhoff Jerez
Competencia: Desarrollo de software.
Palabras claves: Sensor, Pseudocodigo





Descripcion Trabajo
Bueno amigos vengo a enseñarles uno de los tantos proyectos de robotica. En proyecto tuvimos la libertad de hacer la programacion a nuestro gusto, esta tenia que ser acorde al tema, "robot sumo". en este blogg  robot  les enseñare bàsicamente el pseudocodigo de nuestro robot y el codigo de ataque y defenza  junto con los sensores que ocupamos, para que se hagan una idea de como funciona este.


Uso de sensores
Bueno los Sensores que decidimos usar esta ves fueron, finalmente 2. el de ultrasonido y el de luz ya que ellos son los dos sensores indispensables dentro de la lucha.

Sensor de ultrasonido

Este sensor lo construimos de tal manera que quedara al frente del robot(ver imagen 1.3), entre medio de la plataforma y mirando hacia adelante, lo cual nos permitía detectar de manera eficiente a los demás robots enemigos por que estaba bien adelante.

Sensor de Luz

Éste Sensor es indispensable si no queremos perder las batallas, ya que este nos mantendrá dentro de la zona delimitada( circulo negro). Este sensor lo ubicamos debajo de la plataforma, por qué ahí?

Patrón de ataque y defensa

Nuestro Dembers posee dos sensores establecidos correctamente al comienzo del programa con lo siguiente.

task main()

{

SetSensorLight (IN_1);

SetSensorLowspeed (IN_2);

}

Con esto inicializamos ambos sensores el de luz en el puerto 1 y el sensor de ultrasonido en el puerto 2.



Realizamos la descripción de cada una de las subrutinas.

sub domo ()
{
OnRev (OUT_AC, 100);

Wait (750);

OnFwd (OUT_A,100) ;

Wait (1000);
}
La subrutina que realizamos se llama domo y básicamente lo que hace es con el objetivo de mantenerse en el domo de modo de seguir luchando.

sub ataque ()
{
OnFwd (OUT_AC, 100);

Wait (750);

OnFwd (OUT_A, 100);

Wait (200);

OnFwd (OUT_AC, 100);

Wait (700);
}
sub defensa ()
{

OnRev (OUT_C, 100);

Wait (500);

OnFwd (OUT_AC, 100);

Wait (500);
}

Pseudocódigo es el siguente.

#Se define las variables de umbral en 40.

#Se define la variable cerca que es la que usa el sensor de ultra sonido.

Primera sub rutina domo()

{

  retrocede los dos motores a potencia maxima

  Espera un tiempo

  Retrocede una rueda a potencia maxima

  espera menos de 1 segundo

}
    Segunda sub rutina ataque()
{
  avanza a máxima potencia

  Durante un tiempo

  Luego retrocede una rueda

  Durante un tiempo corto

  Luego avanza nuevamente

  Durante poco tiempo
}
  tercera sub rutina defensa()
{
  Retrocederá con un motor C

  Durante un tiempo corto

  Avanzara hacia adelante a potencia maxima

  Medio segundo
}

Tarea principal()
{
  Declaramos sensor de luz

  Declaramos sensor de Ultrasonido

  Mientras( verdad) // siempre verdadero
{
  avanzara hacia adelante a una potencia de 100

  Si( encuentra algo negro)
{
  domo() ;
}
  si( sensor de ultra sonido detecta algo cerca)
{
  Ataque() ;

  Defensa() ;
}
}
}

A modo de reflexion sobre este proyecto de robotica tomo muy en cuenta el orden que hay que tener para realizar cualquier tipo de programacion,  pseudocodigo. Un buen orden nos llevara a buenos resultados.

Robot Patrulla

Autor: Martin Berkhoff
Competencia: Desarrollo de software.




Descripcion de la Actividad 
Bueno compañeros aqui les traje nuevamente un proyecto de robotica, "el robot patrulla" .
Nuestro proyecto consiste en elaborar un robot en NXT, para hacer la simulación de un robot patrullero. Que debe cumplir con una ruta establecida y ser capaz de recrear todas las órdenes dadas por medio de la programación.




Solucion: Estrategia de solución:
Para poder lograr el término de éste proyecto el primer paso fue definir bien los roles entre los integrantes del grupo para así ocupar al cien por ciento el tiempo de laboratorio.


El pseudocódigo usado es el siguiente:




Pseudocódigo



#Se define las variables de umbral en 40.

#Se Define la variable de umbral de

#Se define la variable cerca que es la que usa el sensor de ultra sonido.

#Se le da un alias a la variable de activación del sensor de sonido.

#Se define el tiempo de giro.

#Se define tiempo de movimiento.

Sonido en 50.

Primera sub rutina avanzar ()

Avanza hacia adelante con los dos motores prendidos;

Si encuentra algo blanco ()

{

Acelera un poco el motor del lado externo de la pista;

}

Segunda sub rutina encargada de contar sonidos y ver acumuladores de alerta()

Contamos el sonido inusual;

A la energía se le descontara un valor random;

Al nivel de alerta se le sumara un valor random;

Se apagara los 2 motor Esperar un tiempo corto;

Tocará un pequeño ruido;

Enseña por pantalla los valores y los textos de;

Energía;

Nivel de alerta;

Contador de sonido;

Tercera sub rutina la de actualizar valores de energía.

Contamos el sonido inusual;

A la energía se le descontara un valor random;

Al nivel de alerta se le sumara un valor random;

Enseña por pantalla los valores y los textos de:

Energía;

Nivel de alerta;

Contador de sonido;

Cuarta sub rutina Modo de Ataque.

Avanza hacia adelante con potencia cien por ciento;

Durante 1 segundo;

Retrocede con la potencia máxima;

Durante 1 segundo;

Se inicia tarea patrullero ()

Declaramos los 3 tipos de sensores que usaremos

Mientras el nivel de alerta es menor a lo pedido ().

{

Llamamos a la sub rutina avanzar;

Si detecta un sonido fuera de lo común ().

{
Llamamos a la segunda sub rutina;
{{

Luego el robot debe girar 90° hacia adentro del circulo mientras la energía;

El robot girar en su eje;

Sea mayor que 0 ();

Si detecta un sonido fuera de lo común() ;

}}
Llamamos a la tercera subrutina()
{
{
Luego de que la energía sea menos que cero será siempre cierto que;
{
Si encuentra algo a menos de 10 cm ()
{
Llamamos a la cuarta sub rutina modo de ataque;
}
}

El Código es el siguiente:

#define CERCA 10 // cm

#define UMBRAL 40

#define UMBRAL_SONIDO 40

#define MIC SENSOR_2

#define TIEMPO_GIRO 850

#define TIEMPO_MOVIMIENTO 800

int energia = 500 ;

int nivel_alerta =0;

int contador=0;

sub avanzar()

{
     OnFwd(OUT_AC, 50);

     if (SENSOR_1 > UMBRAL)

{
    OnFwd(OUT_C, 70);

    Wait(180);
}

}
     sub contador_sonido_disminucion_energia_acumulador_alerta()

{
    contador++;

    energia =energia - Random(11)-50; // valor random

    nivel_alerta=nivel_alerta + Random (31)+20; // acumula alerta

    Off(OUT_AC);

    Wait(300);

    PlayTone(4000,50); // toca sonido

   Wait(500);

   ClearScreen();

   TextOut(0,50,"Intento de robo"); // muestra texto en pantalla

   NumOut(0,60,contador); // muestra numeros en pantalla

   TextOut(0,20,"Energia");

   NumOut(0,30,energia);

   TextOut(0,35,"Nivel de alerta");

   NumOut(0,45,nivel_alerta);

}
   sub actualizar_energia()
{
   contador++;

   energia =energia - Random(11)-50

   nivel_alerta=nivel_alerta + Random (31)+20;

    ClearScreen();

    TextOut(0,20,"Energia");

    NumOut (0,30,energia);

    TextOut(0,35,"Nivel de alerta");

    NumOut (0,45,nivel_alerta);

   Off (OUT_AC);
}
  sub ataque_final()
{
     OnFwd(OUT_AC, 100);

    Wait(1000);

    OnRev(OUT_AC, 100);

    Wait(1000);

    Off (OUT_AC);

    Wait(500);

    OnFwd(OUT_A,45) ;

    OnRev(OUT_C,45);

   Wait(500);

   OnFwd(OUT_C,45) ;

   OnRev(OUT_A,45);

   Wait(1000);

   OnFwd(OUT_A,45);

  OnRev(OUT_C,45);

  Wait (500);

  Off(OUT_AC);
}
task main ()
{
     SetSensorLight(IN_1);

    SetSensorSound(IN_2);

   SetSensorLowspeed(IN_3);

  while( nivel_alerta < 100) //MODO PATRULLA!!!
{
  avanzar();

  if (SENSOR_2 > UMBRAL_SONIDO)
{
    contador_sonido_disminucion_energia_acumulador_alerta();
}
}
   Off(OUT_AC); // aqui entra hacia el centro del circulo

   Wait(500);

   OnFwd(OUT_C,75);

  Wait(TIEMPO_GIRO);

  OnFwd(OUT_AC,50);

  Wait(TIEMPO_MOVIMIENTO);

  while(energia > 0) // MODO GUARDIAN!!!
{
   OnRev(OUT_C,50);

   OnFwd(OUT_A,50);

  if (MIC > UMBRAL_SONIDO)
{
   actualizar_energia();
}
}
    while(true) // MODO ATAQUE
{
   if(SensorUS(IN_3)<CERCA)
{
    ataque_final();
}
}
}

A modo de refelexion en este proyecto pusimos  a prueba varias cosas como lo fueron el trabajo en equipo la organizacion y las multiples habilidades en la programacion de el robot, la creacion de sub rutinas claras.
La  programacion no fue nada de sensilla en ese entonces aplicamos todos los conocimientos mas las guias y tutoriales encontrados en la web.

Actividad java

 Programacion en java.

Autor: Martin Berkhoff Jerez 
Palabras claves: public class, if, else, System. 
Competencia: Desarrollo de software 


Descripcion de la Actividad
En un colegio de Temuco los alumnos se evaluan con notas A, B, C, D, E si tienen entre 81 y 100, 61 y 80, 41 y 60, 21 y 40, 0 y 20.





Ejemplo paso a paso:

N = 5   =>  5 > = 81  =  Falso
                   5 > = 61  =  Falso
                   5 > = 41  =  Falso
                   5 > = 21  =  Falso
                   5 > = 0    =  Verdadero
Final = 5 = Letra E

Codigo (Solucion)

import java.util.*;
public class Notas
{
    static void main ()
    { int n;
     Scanner user= new Scanner (System.in);
     System.out.println ("Ingrese el puntaje (debe ser de 0 a 100)");
    n = user.nextInt();
    if (n>100)
    System.out.println ( "Error: El numero debe ser igual o menor a 100");
    else
    if (n>=81 && n<101)
    System.out.println (+n+ " Puntos corresponde a la nota A");
    else
    if  (n>=61 && n<81)
    System.out.println (+n+ " Puntos corresponde a la nota B");
    else
    if  (n>=41 && n<61)
    System.out.println (+n+ " Puntos corresponde a la nota C");
    else
    if  (n>=21 && n<41)
    System.out.println (+n+ " Puntos corresponde a la nota D");
    else
    if  (n>=0 && n<21)
    System.out.println (+n+ " Puntos corresponde a la nota E");
    
  
}
}

Asi nos muestra por pantalla-->
 
A modo de reflexion, estos ejercicio ayudaron  mucho a aprender a programar en java,  realizar estas actividades costo en un principio, pero haciendo repiticion se logran buenos resultados. 

Bluj

Introduccion al lenguaje en Java
Autor: Martin Berkhoff Jerez
Competencia: desarrollo software

Bueno amigos aqui les presento Uno de las primeras interacciones con el lenguaje Java, esto lo trabajamos en programacion I. aqui isimos nuestro primer programa, muy simple solo imprime por pantalla un Hola mundo.
Ademas aqui les enseñare otro programa en bluJ, programacion en java ya un poco mas avanzado y de mayor complejidad; les invito a ver.


Atividad 1
import java.util.*;
public class ejemplo1{
public static void main(String[]args){
System.out.println("Hola mundo");
}
}

Laboratorios despues le agregamos el uso de variables, de condiciones logicas como lo son el if , where. ciclos com el while etc.


Actividad 2

Como les dije anterior mente, aqui esta otro de los programas que isimos en los laboratorio de programacion.
Aqui les presento el problema de este ejercicio que nos pedia sacar los pares e impares de numeros ingresodos por el usuario, la solucion para desarrollar este programa  fue diseñar un buen algoritmo, identifica variables, utilizar los restos para verificar pares e impares.

Codigo:
import java.util.Scanner;
public class paresimapares {;
public static void main(){;
Scanner exp1= new Scanner (System.in);
System.out.println("cuantos numeros pares e impares tiene");
System.out.print("ingrese un numero de 3 digitos: ");
int a = exp1.nextInt();
int par = 0 ;
int impar = 0 ;
int u = a%10 ;
int d = a/10 ;
int c = a/100 ;
if (u %2==0) {
par = par+1 ;
}
else
impar= impar+1 ;
if (d %2==0) {
par = par+1 ;
}
else
impar= impar+1 ;
if (c %2==0) {
par = par+1 ;
}
else
impar= impar+1 ;
System.out.println ("total de pares="+" "+par);
System.out.println ("total de impares="+" "+impar);
}
}


Estos laboratorios  fueron importantes, ya que nos enseñaron la logica que se ensesita para poder programar bien..

Comandos Linux

Autor: Martin Berkhoff Jerez
Competencia: Gestion TI

En esta actividad se nos pedia tener  ubunto de linux instalado en nuestra consola virtual, en el tubimos que aprender el majeno de la consolo de  linux. la actividad  fue la siguiente

 Actividad a realizar
1. En el directorio $HOME (directorio de usuario) crear un directorio “pruebas”.
2. Ingresar a ese directorio “pruebas”
3. Crear un archivo que contenga un resumen de los módulos o drivers que están instalados en el Ubuntu Linux.
4. Crear un archivo que contenga una lista de los dispositivos PCI del computador con ubuntu.
5. Juntar los dos archivos anteriores en uno solo llamado “modulosypci.txt”.
6. Crea un archivo vacío “mipasswd”
7. Copia el contenido de /etc/passwd en el archivo vacío con cat
8. Denegar atributos de lectura, escritura y ejecución al grupo y los otros en el directorio pruebas.
9. Crear un archivo que contenga todas las variables de entorno
10. Renombrar el directorio “pruebas” como “tareas”.
11. Ingresar al directorio tareas y copiar la fecha y hora del sistema en un archivo llamado “fecha.txt”
12. Renombrar fecha.txt como fechayhora.txt
13. Agregar al archivo fechayhora.txt la lista de archivos de /etc con sus tamaños y atributos
14. Otorgar permisos de lectura solo al usuario y rechazar todos los permisos al grupo y otros al archivo fechayhora.txt

Resumen atividad, aqui se manejo consola de linux, el contenido  usado para resolver esto esta en la plataforma educa.


root@martin-desktop:/home/martin# mkdir pruebas

root@martin-desktop:/home/martin# cd ./pruebas

root@martin-desktop:/home/martin/pruebas# touch modulos.txt
root@martin-desktop:/home/martin/pruebas# lsmod >modulos.txt

root@martin-desktop:/home/martin/pruebas# touch dispositivospci.txt
root@martin-desktop:/home/martin/pruebas# lspci >dispositivospci.txt

root@martin-desktop:/home/martin/pruebas# cat modulos.txt dispositivospci.txt > modulosypci.txt

root@martin-desktop:/home/martin/pruebas# touch mipasswd

root@martin-desktop:/home/martin/pruebas# cat ./passwd >mipasswd

root@martin-desktop:/home/martin/pruebas# chmod g-rwx,o-rwx pruebas

root@martin -desktop:/home/martin/pruebas# touch entorno.txt
root@martin -desktop:/home/martin/pruebas# env >entorno.txt

root@martin-desktop:/home/martin/pruebas# cd ./..
root@martin-desktop:/home/martin# mv pruebas tareas

root@martin-desktop:/home/martin# cd ./tareas
root@martin-desktop:/home/martin/tareas# date >fecha.txt

root@martin-desktop:/home/martin/tareas# mv fecha.txt fechayhora.txt

root@martin-desktop:/home/martin/tareas# ls -la /home/martin/tareas >>fechayhora.txt

root@martin-desktop:/home/martin/tareas# chmod u+r,g-rwx,o-rwx, fechayhora.txt

root@martin-desktop:/home/martin/tareas# ls >directorio.txt

Aqui aprendi lo basico para manejarse en consola. se presentaron bastantes problemas al principio pero con arta lectura se pudo abordar el problema. Con esto nos  habrio otros orizontes ademas de window.

Simuproc

Autor: Martin Berkhoff Jerez 

Como primera actividad les enseñare "Simuproc" este es un programa que simula el proceso de una CPU. La actividad consta de dos partes las dos se trabajan con "simuproc".



Primera parte:

 1) Solicitar por teclado el diámetro de una circunferencia y calcular el área mostrando el resultado por pantalla.

Respuesta:
#SimuProc 1.4.3.0

msg "ingrese el diametro la circunferencia"
in ax,1
stf 060;guarda en la memoria
ldf 060;carga el nùmmero de 32 bits
divf 055; divide en 32 bits
stf 065 ;guarda en memoria
ldf 065 ; carga numero
mulf 065 ; multiplica
stf 069
ldf 069
mulf 055 ; multiplicar
stf 071 ; guarda resultado final
msg "el area de la circunferencia es "
out 1,ax
hlt
#050
0100000000000000
0000000000000000
#055
0100000001001000
1111010111000010


Parte dos de esta actividad nos pedia era Unica por alumno, en mi caso fue:  tener un numero determinado de numeros, para luego sumarlos  y sacar el promedio de estos.

Respuesta en lenguaje de maquinas es:
#SimuProc 1.4.3.0

mov ax,059; mover a la memoria ax
add 05A; numeros a sumar
add 05B;
add 05C;
add 05D;
add 05E;
mov 050,ax;
mov ax,050;
div 054; dividir por la cantidad de numeros
mov 051,ax; mueve resultado a ax en espacio indicado
eap " el promedio es "
hlt;

#054
110 ;cantidad de numeros a promediar

#059
;numeros a promediar

1010001
1011010
111001
10011
101101
1100001

El aprendisaje obtenido fue el de ver como funciona la CPU y ver como realiza procesos que a nosotros nos parecen muy simples, pero en realidad son muy complicados.

Introduccion a las tecnologias de la informacion

Este blog esta orientado para  presentarles las actividades realizadas el primer semestre y lo aprendido en ellas,en el ramo de Introduccion a las tecnologias de la informacion, de la Universidad Catolica  de Temuco.
Todas las Actividades que les mostrare a continuacion  son de las competencias de gestion en TI.

Como primera actividad les enseñare "Simuproc" este es un programa que simula el proceso de una CPU. La actividad consta de dos partes las dos se trabajan con "simuproc".

Primera parte:

 1) Solicitar por teclado el diámetro de una circunferencia y calcular el área mostrando el resultado por pantalla.

Respuesta:
#SimuProc 1.4.3.0

msg "ingrese el diametro la circunferencia"
in ax,1
stf 060;guarda en la memoria
ldf 060;carga el nùmmero de 32 bits
divf 055; divide en 32 bits
stf 065 ;guarda en memoria
ldf 065 ; carga numero
mulf 065 ; multiplica
stf 069
ldf 069
mulf 055 ; multiplicar
stf 071 ; guarda resultado final
msg "el area de la circunferencia es "
out 1,ax
hlt
#050
0100000000000000
0000000000000000
#055
0100000001001000
1111010111000010


Parte dos de esta actividad nos pedia era Unica por alumno, en mi caso fue:  tener un numero determinado de numeros, para luego sumarlos  y sacar el promedio de estos.

Respuesta en lenguaje de maquinas es:
#SimuProc 1.4.3.0

mov ax,059; mover a la memoria ax
add 05A; numeros a sumar
add 05B;
add 05C;
add 05D;
add 05E;
mov 050,ax;
mov ax,050;
div 054; dividir por la cantidad de numeros
mov 051,ax; mueve resultado a ax en espacio indicado
eap " el promedio es "
hlt;

#054
110 ;cantidad de numeros a promediar

#059
;numeros a promediar

1010001
1011010
111001
10011
101101
1100001

El aprendisaje obtenido fue el de ver como funciona la CPU y ver como realiza procesos que a nosotros nos parecen muy simples, pero en realidad son muy complicados.

Descreipcion de la actividad comandos linux
1. En el directorio $HOME (directorio de usuario) crear un directorio “pruebas”.
2. Ingresar a ese directorio “pruebas”
3. Crear un archivo que contenga un resumen de los módulos o drivers que están instalados en el Ubuntu Linux.
4. Crear un archivo que contenga una lista de los dispositivos PCI del computador con ubuntu.
5. Juntar los dos archivos anteriores en uno solo llamado “modulosypci.txt”.
6. Crea un archivo vacío “mipasswd”
7. Copia el contenido de /etc/passwd en el archivo vacío con cat
8. Denegar atributos de lectura, escritura y ejecución al grupo y los otros en el directorio pruebas.
9. Crear un archivo que contenga todas las variables de entorno
10. Renombrar el directorio “pruebas” como “tareas”.
11. Ingresar al directorio tareas y copiar la fecha y hora del sistema en un archivo llamado “fecha.txt”
12. Renombrar fecha.txt como fechayhora.txt
13. Agregar al archivo fechayhora.txt la lista de archivos de /etc con sus tamaños y atributos
14. Otorgar permisos de lectura solo al usuario y rechazar todos los permisos al grupo y otros al archivo fechayhora.txt

Resumen atividad:


root@martin-desktop:/home/martin# mkdir pruebas

root@martin-desktop:/home/martin# cd ./pruebas

root@martin-desktop:/home/martin/pruebas# touch modulos.txt
root@martin-desktop:/home/martin/pruebas# lsmod >modulos.txt

root@martin-desktop:/home/martin/pruebas# touch dispositivospci.txt
root@martin-desktop:/home/martin/pruebas# lspci >dispositivospci.txt

root@martin-desktop:/home/martin/pruebas# cat modulos.txt dispositivospci.txt > modulosypci.txt

root@martin-desktop:/home/martin/pruebas# touch mipasswd

root@martin-desktop:/home/martin/pruebas# cat ./passwd >mipasswd

root@martin-desktop:/home/martin/pruebas# chmod g-rwx,o-rwx pruebas

root@martin -desktop:/home/martin/pruebas# touch entorno.txt
root@martin -desktop:/home/martin/pruebas# env >entorno.txt

root@martin-desktop:/home/martin/pruebas# cd ./..
root@martin-desktop:/home/martin# mv pruebas tareas

root@martin-desktop:/home/martin# cd ./tareas
root@martin-desktop:/home/martin/tareas# date >fecha.txt

root@martin-desktop:/home/martin/tareas# mv fecha.txt fechayhora.txt

root@martin-desktop:/home/martin/tareas# ls -la /home/martin/tareas >>fechayhora.txt

root@martin-desktop:/home/martin/tareas# chmod u+r,g-rwx,o-rwx, fechayhora.txt

root@martin-desktop:/home/martin/tareas# ls >directorio.txt
 
Aqui aprendi lo basico para manejarse en consola.
 
Herramientas Ofimaticas.
 
Defenicion Ofimatica
 
La ofimatica es el conjunto de tècnicas, aplicaciones y herramientas informaticas que se utilizan en funciones de oficina para optimizar, automatizar y mejorar los procedimientos o tareas relacionados.
Las herramientas ofimaticas permiten idear, crear, manipular, transmitir y almacenar informacion  nesesaria en una oficina.
Actualmente es fundamental que estas esten conectadas a internet. 
 
Herramientas y procedimientos ofimaticos
- Procesamiento de textos
- Hoja de calculo
- Herramienta de presentacion multimedia
- base de datos
-  agendas, calculadora etc.
- Programas de email, correo de voz, mensajeros. 
 

 
 

 Creado por: Martin Bekhoff Jerez, estudiante de Ingenieria civil en informatica.