Archivo del enero de 2008

Gráficas de AMD de doble núcleo

AMD nuevamente ha ampliado su familia de tarjetas gráficas, tanto de nivel de entrada con sus HD 3450 y 3470, como las de gama media y alta con las HD 3650 y 3870×2, ésta última la más esperada por tratarse de un modelo que integra doble núcleo de gráficos RV670 interconectados a través de un bus PCI Express interno. Como ya hiciera nVidia con su modelo GeForce 7950×2 hace unos años, se trata de ofrecer una tarjeta el doble de potente y con la máxima cantidad de memoria, destinada al mercado de entusiastas del PC que utilizan grandes pantallas de visualización y desean obtener el máximo rendimiento en la reproducción de juegos.

AMD

La ATI Radeon HD 3870×2 utiliza tecnología CrossFire lo que hace posible que el sistema tenga hasta un 1,7x más de prestaciones sobre la generación actual. AMD también destaca el bajo consumo de energía que lleva a cabo su nuevo modelo HD 3870×2, con apenas 47 vatios de potencia reproduciendo contenidos de alta definición con PowerPlay, frente a los 75 vatios que suele disipar el modelo 8800 Ultra de nVidia. La cantidad de memoria con la que se comercializará por el momento será de 1 GB, aunque es un factor que AMD deja en manos de los integradores. La refrigeración de las GPUs es otro factor a tener en cuenta a la hora de integrarla en cualquier configuración. El fabricante ha conseguido mantener el valor, pasando de los 34 dB que emitía la Radeon HD 3870 de un solo núcleo, a los 36 dB que arroja el nuevo modelo.

La HD 3870×2 ofrece soporte Shader Model 4.1, así como la tecnología CrossFire de ATI, para poder emparejar dos tarjetas. Sus dos conectores DVI ofrecen soporte HDMI con el canal de audio integrado Surround 5.1, y la segunda generación de UVD (Universal Video Decoder) mejora la reproducción de contenidos de alta definición Blu-ray y HD DVD.

Todas las tarjertas ofrecen soporte de la última versión de la API de Windows, DirectX 10.1 a pesar de que por el momento apenas existan juegos desarrollados bajo dichas instrucciones. Con la llegada del primer “service pack” de Windows Vista se ofrecerá el soporte, con lo que previsiblemente se incrementará la demanda de este tipo de productos. Entre los principales Partners que ya comercializan estos nuevos modelos de gráficos de AMD se encuentran Asus, Sapphire, Gigabyte, PowerColor, GeCube, HIS y VisionTek entre otros

Visual Basic .Net: Pronto pondre como hacer un programa en c con dev-cpp y usar la dll en visual basic

Como dice el titulo pronto hare como una especie de tutorial de como hacer un programa en c con el ide dev-cpp y despues poder usar estas rutinas desde visual basic.

Creo que esto puede ser bastante interesante y a la vez he intentado buscar por internet ejemplos y por lo menos yo no lo he conseguido y si puede servir de ayuda a alguien que no quiera perder sus joyas de programacion en c y seguir usandolas en visual basic .net pues… genial!!! o no?

Visual Basic .Net Relación de Ejercicios de Ficheros de Texto 17

Hacer un diccionario español-inglés e inglés-español. El programa leerá dos listas de parejas de palabras desde un fichero y luego nos permitirá buscar una palabra en inglés o en español. Si la palabra se encuentra en la lista correspondiente nos devolverá su correspondiente en el otro idioma.

Imports System.io
Module Module1

    Sub Main()

        Dim l1, l2 As New List(Of String)
        Dim i, j, op As Integer

        Console.WriteLine("Leyendo fichero..."Wink
        leefichero2columnas("datos17.txt", l1, l2)
        Console.WriteLine("Diccionario cargado en memoria."Wink

        Console.WriteLine("1-Español-Ingles"Wink
        Console.WriteLine("2-Ingles-Español"Wink
        op = Console.ReadLine
        Select Case op
            Case 1
                Console.Write("Dame palabra: "Wink
                Dim s As String = Console.ReadLine
                Dim a As Integer = buscapalabra(l1, s)
                If a <> -1 Then
                    Console.WriteLine("Traducido es: " & l2.Item(a))
                Else
                    Console.WriteLine("Palabra no contenida en diccionario."Wink
                End If
            Case 2
                Console.Write("Dame palabra: "Wink
                Dim s As String = Console.ReadLine
                Dim a As Integer = buscapalabra(l2, s)
                If a <> -1 Then
                    Console.WriteLine("Traducido es: " & l1.Item(a))
                Else
                    Console.WriteLine("Palabra no contenida en diccionario."Wink
                End If

        End Select
        Console.ReadKey()
    End Sub

    Function buscapalabra(ByVal l As List(Of String), ByVal cad As String) As Integer
        Dim i, v As Integer
        v = -1
        For i = 0 To l.Count - 1
            If l.Item(i).ToUpper  = cad.ToUpper  Then
                v = i
                Exit For
            End If
        Next
        If v <> -1 Then
            Return v
        Else
            Return -1
        End If
    End Function

    Sub leefichero2columnas(ByVal f As String, ByRef l1 As List(Of String), ByRef l2 As List(Of String))
        Dim cadenas() As String
        Dim i As Integer = 0
        Dim sr As StreamReader = New StreamReader(Environment.CurrentDirectory & "\" & f)
        While Not sr.EndOfStream
            cadenas = DivideCadena(sr.ReadLine)
            l1.Add(cadenas(1))
            l2.Add(cadenas(2))
            i += 1
        End While
        sr.Close()
    End Sub
    Function DivideCadena(ByVal cadena As String) As String()

        Dim i As Integer
        Dim pos1, pos2 As Integer
        Dim numcadenas As Integer

        Dim arraycadenas(0) As String

        numcadenas = 0
        pos1 = 0
        i = 1
        While (i < cadena.Length)

            If (Posicion(cadena, i) = ","Wink Then
                pos2 = i
                numcadenas = numcadenas + 1
                ReDim Preserve arraycadenas(numcadenas)
                arraycadenas(numcadenas) = cadena.Substring(pos1, pos2 - pos1 - 1)
                pos1 = pos2
            End If

            i = i + 1
        End While

        numcadenas = numcadenas + 1
        ReDim Preserve arraycadenas(numcadenas)
        arraycadenas(numcadenas) = cadena.Substring(pos1)

        Return arraycadenas

    End Function

    Function Posicion(ByVal cad As String, ByVal indice As Integer) As String

        Return cad.Substring(indice - 1, 1)

    End Function

End Module

Visual Basic .Net Relación de Ejercicios de Ficheros de Texto 16

Hacer un juego de preguntas y respuestas (como el Trivial pero sin tablero). Para ello, el programa leerá los datos de un fichero que contendrá preguntas y respuestas. Después irá cogiendo 5 preguntas al azar y le permitirá al usuario intentar adivinar la pregunta. Al final, mostrará el número de preguntas acertadas.

¿Quién descubrió América?,Cristobal Colón
¿Cuál es la capital de Francia?,París

Imports System.io
Module Module1

    Sub Main()

        Dim l1, l2 As New List(Of String)
        Dim i, j, ac As Integer
        Dim r As New Random

        Console.WriteLine("Leyendo fichero..."Wink
        leefichero2columnas("datos16.txt", l1, l2)
        Console.WriteLine("Preguntas cargadas en memoria."Wink
        ac = 0
        For i = 0 To 4
            j = r.Next(0, 8)
            Console.WriteLine("Pregunta num: " & i + 1 & "  " & l1.Item(j))
            Console.Write("Respuesta:"Wink
            Dim s As String = Console.ReadLine
            If s.ToUpper = l2.Item(j).ToUpper Then
                ac += 1
            End If
        Next

        Console.WriteLine("Preguntas acertadas: " & ac)
        Console.ReadKey()
    End Sub

    Sub leefichero2columnas(ByVal f As String, ByRef l1 As List(Of String), ByRef l2 As List(Of String))
        Dim cadenas() As String
        Dim i As Integer = 0
        Dim sr As StreamReader = New StreamReader(Environment.CurrentDirectory & "\" & f)
        While Not sr.EndOfStream
            cadenas = DivideCadena(sr.ReadLine)
            l1.Add(cadenas(1))
            l2.Add(cadenas(2))
            i += 1
        End While
        sr.Close()
    End Sub
    Function DivideCadena(ByVal cadena As String) As String()

        Dim i As Integer
        Dim pos1, pos2 As Integer
        Dim numcadenas As Integer

        Dim arraycadenas(0) As String

        numcadenas = 0
        pos1 = 0
        i = 1
        While (i < cadena.Length)

            If (Posicion(cadena, i) = ","Wink Then
                pos2 = i
                numcadenas = numcadenas + 1
                ReDim Preserve arraycadenas(numcadenas)
                arraycadenas(numcadenas) = cadena.Substring(pos1, pos2 - pos1 - 1)
                pos1 = pos2
            End If

            i = i + 1
        End While

        numcadenas = numcadenas + 1
        ReDim Preserve arraycadenas(numcadenas)
        arraycadenas(numcadenas) = cadena.Substring(pos1)

        Return arraycadenas

    End Function

    Function Posicion(ByVal cad As String, ByVal indice As Integer) As String

        Return cad.Substring(indice - 1, 1)

    End Function

End Module

Visual Basic .Net Relación de Ejercicios de Ficheros de Texto 15

Hacer una función EscribeFichero2Columnas a la que se le pasa el nombre de un fichero y dos listas de cadenas y te escribe en el fichero el contenido de las listas, con el mismo formato que en el ejercicio anterior.

Imports System.io
Module Module1

    Structure datos
        Dim cad1 As String
        Dim cad2 As String
    End Structure

    Sub Main()
        Dim l1, l2 As New List(Of String)
        Dim i As Integer
        Console.WriteLine("Dame 5 cadenas para la lista 1."Wink
        For i = 1 To 5
            Console.Write("Cadena: "Wink
            l1.Add(Console.ReadLine)
        Next
        Console.Clear()
        Console.WriteLine("Dame 5 cadenas para la lista 2."Wink
        For i = 1 To 5
            Console.Write("Cadena: "Wink
            l2.Add(Console.ReadLine)
        Next
        Console.WriteLine("ahora se graba en un fichero..."Wink
        EscribeFichero2Columnas(l1, l2)
        Console.WriteLine("Hecho."Wink
        'Console.Write(Environment.CurrentDirectory)
        Console.ReadKey()
    End Sub

    Sub EscribeFichero2Columnas(ByVal l1 As List(Of String), ByVal l2 As List(Of String))
        Dim sw As StreamWriter = New StreamWriter(Environment.CurrentDirectory + "\datos.txt"Wink
        Dim i As Integer
        Dim d() As datos
        ReDim d(l1.Count)
        For i = 0 To l1.Count - 1
            d(i).cad1 = l1.Item(i)
            d(i).cad2 = l2.Item(i)
            sw.WriteLine(d(i).cad1 & "," & d(i).cad2)
        Next
        'for i=
        'sw.WriteLine(d)
        sw.Close()

    End Sub

End Module

Visual Basic .Net Relación de Ejercicios de Ficheros de Texto 14

Hacer una función LeeFichero2Columnas a la que se le pasa el nombre de un fichero y dos listas de cadenas y te devuelve las listas rellenas con el contenido del fichero, que contendrá cadenas en dos columnas separadas por comas, tal que:

patata,potato
tomate,tomato
cebolla,onion
ajo,garlic

Imports System.io
Module Module1

    Sub Main()

        Dim l1, l2 As New List(Of String)
        Dim i As Integer

        Console.WriteLine("Leyendo fichero..."Wink
        leefichero2columnas("datos.txt", l1, l2)
        Console.WriteLine(" 5 cadenas para la lista 1."Wink
        For i = 0 To 4
            Console.WriteLine("Cadena: " & l1.Item(i))
        Next
        Console.ReadKey()
        Console.Clear()
        Console.WriteLine(" 5 cadenas para la lista 2."Wink
        For i = 0 To 4
            Console.WriteLine("Cadena: " & l2.Item(i))
        Next
        Console.WriteLine("Fin del proceso."Wink
        Console.ReadKey()
    End Sub

    Sub leefichero2columnas(ByVal f As String, ByRef l1 As List(Of String), ByRef l2 As List(Of String))
        Dim cadenas() As String
        Dim i As Integer = 0
        Dim sr As StreamReader = New StreamReader(Environment.CurrentDirectory & "\" & f)
        While Not sr.EndOfStream
            cadenas = DivideCadena(sr.ReadLine)
            l1.Add(cadenas(1))
            l2.Add(cadenas(2))
            i += 1
        End While
        sr.Close()
    End Sub
    Function DivideCadena(ByVal cadena As String) As String()

        Dim i As Integer
        Dim pos1, pos2 As Integer
        Dim numcadenas As Integer

        Dim arraycadenas(0) As String

        numcadenas = 0
        pos1 = 0
        i = 1
        While (i < cadena.Length)

            If (Posicion(cadena, i) = ","Wink Then
                pos2 = i
                numcadenas = numcadenas + 1
                ReDim Preserve arraycadenas(numcadenas)
                arraycadenas(numcadenas) = cadena.Substring(pos1, pos2 - pos1 - 1)
                pos1 = pos2
            End If

            i = i + 1
        End While

        numcadenas = numcadenas + 1
        ReDim Preserve arraycadenas(numcadenas)
        arraycadenas(numcadenas) = cadena.Substring(pos1)

        Return arraycadenas

    End Function

    Function Posicion(ByVal cad As String, ByVal indice As Integer) As String

        Return cad.Substring(indice - 1, 1)

    End Function

End Module

Visual Basic .Net Relación de Ejercicios de Ficheros de Texto 13

Hacer el juego del ahorcado. Para ello, se leerá una lista de palabras desde un fichero y se elegirá al azar una de ellas. A continuación, se presentarán por pantalla un número de guiones igual al número de letras de la palabra. Por último, se le preguntará al jugador que introduzca una letra: si la letra está en la palabra, se sustituirán los guiones por la letra correspondiente y si no, se apuntará un fallo (con 7 fallos se acaba la partida).

Imports System.IO

Module Module1
    Dim fallos As Integer = 0
    Sub Main()
        Dim r As New Random
        Dim npalabra, cont, fallos As Integer
        Dim lista As List(Of String) = Nothing
        Dim letras_usadas() As Char = Nothing
        Dim car As String = ""
        Dim ganado As Integer = 0

        npalabra = -1
        fallos = 0
        Console.Clear()
        While fallos < 7 And ganado = 0
            'Console.Clear()
            Console.SetCursorPosition(4, 2)
            Console.Write("Juego del ahorcado."Wink
            Console.SetCursorPosition(4, 3)
            Console.Write("-------------------"Wink
            If npalabra = -1 Then
                lista = leecadenas()
                npalabra = r.Next(0, lista.Count)
                ReDim letras_usadas(0)
            End If
            ' dibujapanel(lista.Item(npalabra), letras_usadas)
            Console.SetCursorPosition(10, 5)
            dibujapanel(lista.Item(npalabra), letras_usadas)
            Console.SetCursorPosition(10, 7)
            Console.Write("Escribe una letra: "Wink
            Console.SetCursorPosition(29, 7)
            car = Console.ReadLine
            fallos += resultadojugada(lista.Item(npalabra), car)
            ReDim Preserve letras_usadas(UBound(letras_usadas) + 1)
            letras_usadas(UBound(letras_usadas) - 1) = car
            Console.SetCursorPosition(10, 5)
            dibujapanel(lista.Item(npalabra), letras_usadas)
            Console.SetCursorPosition(1, 10)
            Console.Write("Fallos: " & fallos)
            ganado = haganado(lista.Item(npalabra), letras_usadas)
        End While
        Console.WriteLine()
        Console.WriteLine("fin del juego."Wink
        Console.ReadKey()
    End Sub
    Function haganado(ByVal cad As String, ByVal letras_usadas() As Char) As Integer
        Dim i, j, esta, c As Integer
        c = 0
        For i = 0 To cad.Length - 1
            esta = 0
            For j = 0 To UBound(letras_usadas) - 1
                If cad(i) = letras_usadas(j) Then
                    esta = 1
                End If
            Next
            If esta = 1 Then
                c += 1
            End If
        Next
        If c = cad.Length Then
            Return 1
        Else
            Return 0
        End If
    End Function

    Function resultadojugada(ByVal cad As String, ByVal car As String) As Integer
        Dim i As Integer
        Dim r As Integer = 1
        For i = 0 To cad.Length - 1
            If cad(i) = car Then
                r = 0
                Exit For
            End If
        Next
        Return r
    End Function

    Sub dibujapanel(ByVal cad As String, ByVal letras_usadas() As Char)
        Dim i, j, esta As Integer
        For i = 0 To cad.Length - 1
            esta = 0
            For j = 0 To UBound(letras_usadas) - 1
                If cad(i) = letras_usadas(j) Then
                    esta = 1
                End If
            Next
            If esta = 1 Then
                Console.Write(cad(i))
            Else
                Console.Write("-"Wink
            End If
        Next
    End Sub

    Function leecadenas() As List(Of String)
        Dim sr As StreamReader = New StreamReader("D:\palabras.txt"Wink
        Dim lista As New List(Of String)
        While Not sr.EndOfStream
            lista.Add(sr.ReadLine)
        End While
        sr.Close()
        Return lista
    End Function
End Module