miércoles, 4 de noviembre de 2009

MANUAL DE LINUX CON EJERCICIOS EN GAMBAS 2

Ubuntu

Ubuntu (AFI: /uˈbuntu/), o Ubuntu Linux, es una distribución Linux basada en Debian GNU/Linux, cuyo nombre proviene de la ideología sudafricana Ubuntu ("humanidad hacia otros")

Proporciona un sistema operativo actualizado y estable para el usuario promedio, con un fuerte enfoque en la facilidad de uso y de instalación del sistema. Al igual que otras distribuciones se compone de múltiples paquetes de software normalmente distribuidos bajo una licencia libre o de código abierto.

Ubuntu está patrocinando por Canonical Ltd., una compañía británica propiedad del empresario sudafricano Mark Shuttleworth que en vez de vender la distribución con fines lucrativos, se financia por medio de servicios vinculados al sistema operativo y vendiendo soporte técnico. Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar el talento de los desarrolladores de la comunidad en mejorar los componentes de su sistema operativo. Canonical también apoya y proporciona soporte para tres derivaciones de Ubuntu: Kubuntu, Edubuntu y la versión de Ubuntu orientada a servidores ("Ubuntu Server Edition").

Cada seis meses se libera una nueva versión de Ubuntu la cual recibe soporte por parte de Canonical, durante dieciocho meses, por medio de actualizaciones de seguridad, parches para bugs críticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos años, reciben soporte durante tres años en los sistemas de escritorio y cinco para la edición orientada a servidores.

Ubuntu fue seleccionado por los lectores de desktoplinux.com como una de las distribuciones más populares, llegando a alcanzar aproximadamente el 30% de las instalaciones de Linux en computadoras de escritorio tanto en 2006 como en 2007.


Gambas 2 el Visual Basic de Linux

Gambas es un lenguaje de programación libre derivado de BASIC. Es similar al producto de Microsoft Visual Basic y se distribuye con licencia GPL. Aunque desde otro punto de vista, está muy inspirado también por Java.

Permite crear formularios, botones de comando, cuadros de texto o enlazar bases de datos como MySQL, PostgreSQL o SQLite.

Es una herramienta sencilla e interesante para estudiantes, con una programación visual y gráfica. Gambas es un programa que permite crear aplicaciones de la forma mas fácil posible,

Instalación


Para tener Gambas, instalamos el paquete gambas de los repositorios oficiales de Ubuntu en el Gestor de paquetes Synaptic(requiere activar el repositorio universe).

Esto nos instalará la base para poder desarrollar sobre este lenguaje.

o

dijo: sudo apt-get install gambas2


Es más fácil y recomendable que lo hagas desde Synaptics.
Es necesario para su correcto funcionamiento instalar las librerías QT3 (las que creas convenientes usar)ejem. "libqt3-mt-dev" también desde el Synaptic.

Ejemplo de programa


Para empezar lo más sencillo es crear un «Hola mundo» (un programa sencillo que muestra, precisamente, la frase «¡Hola, mundo!» en pantalla), Gambas por el momento sólo puede instalarse en GNU/Linux y únicamente puede crear programas para este sistema operativo.

Para iniciar Gambas, ejecutamos el siguiente comando desde una terminal:


dijo: $ gambas



Para crear una programa basta con abrir un "formulario" desde la ventana proyecto. El formulario es la ventana que se abre al ejecutar el programa, donde van los botones, texto, etc.

Si quieres agregas algunas herramientas desde la ventana "herramienta", y también puedes agregar algo de código (ventana de modulo o clase). Puedes ejecutar tu programa antes de crearlo : en la ventana proyecto vas al menú proyecto, y luego presionas ejecutar.

Luego creas o compilas tu programa como .gambas (no puedes crear un .exe).

El programa creado se ejecuta desde consola, escribes:

dijo: $ ./nombredelprograma.gambas



Puedes escoger entre crearlo comprimido como .tar.gz, o empaquetado para algunas distribuciones GNU/Linux, sólo es cuestión de elegir.

para ver los ejemplos que trae y modificarlos tecleamos

dijo: sudo chmod -R 777 /usr/share/gambas2/examples

Programas realizados en Clase


1. Cédula

Código: Módulo MMain

PUBLIC SUB Main()

DIM num_cedula AS String

PRINT "INGRESE NUMERO DE CEDULA:"

INPUT num_cedula

IF cedula(num_cedula) THEN

PRINT "NUMERO DE CEDULA VALIDO"

ELSE

PRINT "NUMERO DE CEDULA INVALIDO !!!"

ENDIF

END


PUBLIC FUNCTION cedula(valor AS String) AS Boolean

DIM dv, i, a, res, m, aux, aux1, acu, d10, d3 AS Integer

DIM resul AS Boolean

d3 = Mid(valor, 3, 1)

IF d3 <>

FOR i = 1 TO 9

a = Mid(valor, i, 1)

m = i MOD 2

IF m = 1 THEN

aux = a * 2

ELSE

aux = a * 1

END IF

IF aux > 9 THEN

aux1 = aux - 9

ELSE

aux1 = aux

END IF

acu = acu + aux1

NEXT

res = acu MOD 10

IF res = 0 THEN

dv = 0

ELSE

dv = 10 - res

END IF

d10 = Mid(valor, 10, 1)

IF dv <> d10 OR valor = 0 OR valor = 2222222222 OR valor = 4444444444 OR valor = 5555555555 THEN

resul = FALSE


ELSE

resul = TRUE

END IF

ELSE

resul = FALSE

END IF

RETURN resul

END FUNCTION


2. Objetos

Código: Módulo Mmain

PUBLIC SUB Main()

'Instarciar Objetos

DIM mono AS SerVivo

DIM persona AS Hombre

DIM humano AS Hombre

DIM nom AS String


mono = NEW SerVivo


mono.nacido(CDate("2/2/1992"))

mono.PonePatas(2)

PRINT "La edad del mono es.....", mono.edad()

PRINT "Las patas del mono son...", mono.dicePatas()


persona = NEW Hombre

PRINT "Ingrese Nombre....."

INPUT nom


persona.nacido(CDate("2/18/1969"))

persona.PoneNombre(nom)

persona.PoneApellido("Picapiedra")


PRINT "La edad de la persona es.....", persona.edad()

PRINT "El Nombre completo es....", persona.NombreCompleto()


END

Clases SerVivo

PRIVATE patas AS Integer

PRIVATE nacimiento AS Integer


PUBLIC SUB nacido(fecha AS Date)

nacimiento = Year(fecha)

END


PUBLIC SUB PonePatas(numero AS Integer)

patas = numero

END


PUBLIC FUNCTION edad() AS Integer

RETURN Year(Now) - nacimiento

END


PUBLIC FUNCTION dicePatas() AS Integer

RETURN patas

END

Hombre

INHERITS SerVivo


PRIVATE Nombre AS String

PRIVATE Apellido AS String


PUBLIC SUB PoneNombre(cadena AS String)

Nombre = cadena

END


PUBLIC SUB PoneApellido(cadena AS String)

Apellido = cadena

END


PUBLIC FUNCTION NombreCompleto() AS String

RETURN Nombre & "" & Apellido

END


3. Mayor, Menor e Intermedio

Módulo Mmain

PUBLIC SUB Main()


DIM a, b, c AS Integer

PRINT "Ingrese Valor A:"

INPUT a

PRINT "Ingrese Valor B:"

INPUT b

PRINT "Ingrese Valor C:"

INPUT c


IF ((a > b) AND (a > c)) THEN

PRINT "Mayor", a

IF (b > c) THEN

PRINT "Medio", b

PRINT "Menor", c

ELSE

PRINT "Medio", c

PRINT "Menor", b

ENDIF

ENDIF


IF ((b > c) AND (b > a)) THEN

PRINT "Mayor", b

IF (a > c) THEN

PRINT "Medio", a

PRINT "Menor", c

ELSE

PRINT "Medio", c

PRINT "Menor", a

ENDIF

ENDIF


IF ((c > b) AND (c > a)) THEN

PRINT "Mayor", c

IF (b > a) THEN

PRINT "Medio", b

PRINT "Menor", a

ELSE

PRINT "Medio", a

PRINT "Menor", b

ENDIF

ENDIF

END


4. Factorial

Código: Módulo Mmain

PUBLIC SUB Main()

DIM f, i, l AS Integer

DIM nombre, res AS String

f = 1

FOR i = 2 TO 5

f = f * i

NEXT

PRINT "El factorial de 5 ", f

PRINT "Ingrese un nombre"

INPUT nombre

l = Len(nombre)

FOR i = 1 TO l

res = Mid(nombre, i, 1)

PRINT res

NEXT

END


5. Funciones

Código: Módulo Mmain

PUBLIC SUB Main()

DIM a, b AS Integer

PRINT "valor 1"

INPUT a

PRINT "valor 2"

INPUT b

PRINT "La suma de los valores es", Module1.suma(a, b)

PRINT "La resta de los valores es", Module1.resta(a, b)

PRINT "La multiplicacion de los valores es", Module1.mult(a, b)

PRINT "La division de los valores es", Module1.division(a, b)

END


6. Matrícula

Código: Módulo Mmain

PUBLIC SUB Main()

'Instarciar Objetos

DIM matricula AS Alumno

DIM nom AS String

DIM ape AS String


DIM curs AS Integer

DIM secc AS String

DIM fecha2 AS Date

DIM parcial AS Integer

matricula = NEW Alumno

PRINT "Ingrese Nombre:"

INPUT nom

PRINT "Ingrese Curso:"

INPUT curs

PRINT "Ingrese Sección:"

INPUT secc

PRINT "Ingrese Fecha Matricula:"

INPUT fecha2

'PRINT fecha2

PRINT "Ingrese Parcial 1:"

INPUT parcial

matricula.ParcialUno(parcial)

PRINT "Ingrese Parcial 2:"

INPUT parcial

matricula.ParcialDos(parcial)

PRINT "Ingrese Parcial 3:"

INPUT parcial

matricula.ParcialTres(parcial)

PRINT "El Promedio Final es....", matricula.PromedioFinal()

PRINT "La Fecha de Matricula es....", matricula.fechama(fecha2)

matricula.PoneNombre(nom)

matricula.PoneApellido("Peralta")

PRINT "El Nombre completo es....", matricula.NombreCompleto()

END

Clase Alumno

PRIVATE Promedio AS Integer

PRIVATE FechaMatricula AS Date

PRIVATE Nombre AS String

PRIVATE Apellido AS String

PRIVATE parcial1 AS Single

PRIVATE parcial2 AS Single

PRIVATE parcial3 AS Single


PUBLIC SUB ParcialUno(numero AS Integer)

parcial1 = numero

END


PUBLIC SUB ParcialDos(numero AS Integer)

parcial2 = numero

END


PUBLIC SUB ParcialTres(numero AS Integer)

parcial3 = numero

END


PUBLIC FUNCTION PromedioFinal() AS Single

RETURN (parcial1 + parcial2 + parcial3) / 3

END


PUBLIC FUNCTION fechama(fecha AS Date) AS Date

FechaMatricula = fecha

RETURN FechaMatricula

END


PUBLIC SUB PoneNombre(cadena AS String)

Nombre = cadena

END


PUBLIC SUB PoneApellido(cadena AS String)

Apellido = cadena

END


PUBLIC FUNCTION NombreCompleto() AS String

RETURN Nombre & "" & Apellido

END

EJERCICIOS CON FORMULARIOS

7. Calculadora







Código: Módulo Mmain

PUBLIC ban AS Integer

PUBLIC aux1 AS Integer

PUBLIC aux2 AS Integer


PUBLIC SUB _new()


END


PUBLIC SUB Button18_Click()


ME.Close


END


PUBLIC SUB Button1_Click()


TextBox1.Text = TextBox1.Text & "1"


END


PUBLIC SUB Button2_Click()


TextBox1.Text = TextBox1.Text & "2"


END


PUBLIC SUB Button3_Click()


TextBox1.Text = TextBox1.Text & "3"


END


PUBLIC SUB Button4_Click()


TextBox1.Text = TextBox1.Text & "4"


END


PUBLIC SUB Button5_Click()


TextBox1.Text = TextBox1.Text & "5"


END


PUBLIC SUB Button6_Click()


TextBox1.Text = TextBox1.Text & "6"


END


PUBLIC SUB Button7_Click()


TextBox1.Text = TextBox1.Text & "7"


END


PUBLIC SUB Button8_Click()


TextBox1.Text = TextBox1.Text & "8"


END


PUBLIC SUB Button9_Click()


TextBox1.Text = TextBox1.Text & "9"


END


PUBLIC SUB Button10_Click()


TextBox1.Text = TextBox1.Text & "0"


END


PUBLIC SUB Button11_Click()


TextBox1.Text = TextBox1.Text & "."


END


PUBLIC SUB Button17_Click()


TextBox1.Clear


END


PUBLIC SUB Mas_Click()

ban = 1

IF TextBox1.Text <> 0 THEN

aux1 = TextBox1.Text

ELSE

aux1 = 0

ENDIF

END


PUBLIC SUB Igual_Click()


IF TextBox1.Text <> 0 THEN

aux2 = TextBox1.Text

ELSE

aux2 = 0

ENDIF

TextBox1.text = operaciones(ban, aux1, aux2)

END


PUBLIC FUNCTION operaciones(opera AS Integer, v1 AS Float, v2 AS Float) AS Integer

DIM respuesta AS Integer

SELECT CASE opera

CASE 1

respuesta = v1 + v2

CASE 2

respuesta = v1 - v2

CASE 3

respuesta = v1 * v2

CASE 4

IF v2 = 0

Message("División para cero imposible")

ELSE

respuesta = v1 / v2

ENDIF

END SELECT

RETURN respuesta


END


PUBLIC SUB Menos_Click()


ban = 2

IF TextBox1.Text <> 0 THEN

aux1 = TextBox1.Text

ELSE

aux1 = 0

ENDIF

TextBox1.Clear


END


PUBLIC SUB Multiplicacion_Click()


ban = 3

IF TextBox1.Text <> 0 THEN

aux1 = TextBox1.Text

ELSE

aux1 = 0

ENDIF

TextBox1.Clear


END


PUBLIC SUB Division_Click()


ban = 4

IF TextBox1.Text <> 0 THEN

aux1 = TextBox1.Text

ELSE

aux1 = 0

ENDIF

TextBox1.Clear


END


PUBLIC SUB Cuadrado_Click()


TextBox1.text = TextBox1.Text * TextBox1.Text

END


PUBLIC SUB Cubo_Click()


TextBox1.text = TextBox1.Text * TextBox1.Text * TextBox1.Text


END


PUBLIC SUB Binario_Click()

DIM n, i, x1, x2 AS Integer

DIM cadena, cadena2 AS String

n = TextBox1.Text

WHILE n > 0

x1 = (Int(n / 2))

x2 = n MOD 2

cadena = cadena & Str(x2)

n = x1

WEND

FOR i = Len(cadena) TO 1 STEP -1

cadena2 = cadena2 & Mid(cadena, i, 1)

NEXT

TextBox1.Text = cadena2

'Message("El resultado es ...", "Aceptar")

END


PUBLIC SUB exponenteN_Click()

DIM n AS Integer

n = 0

WHILE n > 0

TextBox1.Text = TextBox1.Text * n

WEND


END


PUBLIC SUB seno_Click()


TextBox1.Text = Sin(TextBox1.Text)


END


PUBLIC SUB coseno_Click()


TextBox1.Text = Cos(TextBox1.Text)

END


PUBLIC SUB tangente_Click()


TextBox1.Text = Tan(TextBox1.Text)


END


PUBLIC SUB Hexadecimal_Click()

DIM n, i, x1, x2 AS Integer

DIM cadena, cadena2 AS String

n = TextBox1.Text

WHILE n > 0

x1 = (Int(n / 16))

x2 = n MOD 16

IF x2 <>

cadena = cadena & Str(x2)

ELSE IF x2 = 10 THEN

cadena = cadena & "A"

ELSE IF X2 = 11 THEN

cadena = cadena & "B"

ELSE IF x2 = 12 THEN

cadena = cadena & "C"

ELSE IF X2 = 13 THEN

cadena = cadena & "D"

ELSE IF x2 = 14 THEN

cadena = cadena & "E"

ELSE IF X2 = 15 THEN

cadena = cadena & "F"

ENDIF

n = x1

WEND

FOR i = Len(cadena) TO 1 STEP -1

cadena2 = cadena2 & Mid(cadena, i, 1)

NEXT

TextBox1.Text = cadena2

'Message("El resultado es ...", "Aceptar")


END


PUBLIC SUB porcentaje_Click()

DIM n, resul AS Integer

n = 0

IF n > 0 THEN

TextBox1.Text = ((TextBox1.Text * n) / 100)

resul = TextBox1.Text

ELSE

PRINT ("Error")

ENDIF


END


PUBLIC SUB Octal_Click()


DIM n, i, x1, x2 AS Integer

DIM cadena, cadena2 AS String

n = TextBox1.Text

WHILE n > 0

x1 = (Int(n / 8))

x2 = n MOD 8

cadena = cadena & Str(x2)

n = x1

WEND

FOR i = Len(cadena) TO 1 STEP -1

cadena2 = cadena2 & Mid(cadena, i, 1)

NEXT

TextBox1.Text = cadena2

'Message("El resultado es ...", "Aceptar")

END