Mostrando entradas con la etiqueta Algoritmo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Algoritmo. Mostrar todas las entradas

5 abr 2011

Problema "Rango de Calificaciones"

Se tiene las calificaciones de un grupo de alumnos que presentaron un examen de computación. Haga un diagrama de flujo y su respectivo programa que calcule e imprima cuantas calificaciones hay en cada uno de los rangos:
  • de 0 a 3.99
  • de 4 a 5.99
  • de 6 a 7.99
  • de 8 a 10

Datos: CAL1, CAL2, CAL3..... -1
donde CAL es una variable de tipo real, que representa la calificación del alumno, el fin de la introduccion de los datos esta dado por el valor -1

Diagrama de Flujo

donde RANGO1,RANGO2,RANGO3,RANGO4 son variables de tipo entero , son contadores, cuentan el numero de calificaciones que se encuentran entre los rangos dados respectivamente.

Codigo Consola Visual Basic


Module problema_320

    Sub Main()
        Dim RANGO1 As Integer = 0
        Dim RANGO2 As Integer = 0
        Dim RANGO3 As Integer = 0
        Dim RANGO4 As Integer = 0
        Dim CAL As Double

        Console.Write("Ingresa Calificacion [para terminar -1]: ")
        CAL = Val(Console.ReadLine)

        While CAL <> -1
            If CAL <= 3.99 Then
                RANGO1 = RANGO1 + 1
            Else
                If CAL <= 5.99 Then
                    RANGO2 = RANGO2 + 1
                Else
                    If CAL <= 7.99 Then
                        RANGO3 = RANGO3 + 1
                    Else
                        RANGO4 = RANGO4 + 1
                    End If
                End If
            End If
            Console.Write("Ingresa Calificacion [para terminar -1]: ")
            CAL = Val(Console.ReadLine)
        End While
        Console.WriteLine("0...3.99 = " & RANGO1)
        Console.WriteLine("4...5.99 = " & RANGO2)
        Console.WriteLine("6...7.99 = " & RANGO3)
        Console.WriteLine("8...10.0 = " & RANGO4)
        Console.ReadLine()
    End Sub

End Module



1 abr 2011

Factorial

Para todo número natural n, se llama n factorial o factorial de n al producto de todos los naturales desde 1 hasta n:
Osea:


= n!
= 1
= 1
= 2
= 6
= 24
= 120
= 720
= 5.040
= 40.320
= 362.880
10  = 3.628.800
15  = 1.307.674.368.000
20  = 2.432.902.008.176.640.000
25  = 15.511.210.043.330.985.984.000.000
50  = 30.414.093.201.713.378.043 × 1045
70  = 1,19785717... × 10100
450  = 1,73336873... × 101.000
3.249  = 6,41233768... × 1010.000
25.206  = 1,205703438... × 10100.000
100.000 = 2,8242294079... × 10456.573

El diagrama de Flujo para resolver este problema es:

Y el seudocodigo


1. Leer N
2. Si N mayor o igual a 0
 Entonces
 2.1 Hacer Fact = 1
 2.2 Si N mayor a 0
                  Entonces
  2.2.1 Repetir
   2.2.1.1 Hacer Fact = Fact * N
   2.2.1.2 Hacer N = N -1
  Mientras N mayor 1
       [Fin de Condicional Si paso 2.2]
 2.3 Escribir "El Factorial es" Fact
 Sino
 2.4 Escribir "Error"
 [Fin de condicional Si paso 2]
 

22 ene 2011

Cálculo circular del Chebyshev

Algoritmo para la resolución del Chebyschev enésimo de un número real "x", empleando llamadas circulares o reciprocas.
Definición recursiva
Tomando como base los valores iniciales conocidos para el Chebyschev de 0 y 1, se proceden a calcular sucecivamente los valores del Chebyschev de 2,3,4,etc. hasta llegar al número cuyo chebyschev se quiere conocer .

El algoritmo elaborado para el efecto es el siguiente:

Programa Principal

Modulo 1
Modulo 2

25 jul 2010

Ejemplo: Funciones y Procedimientos

En un ejemplo anterior "Funciones y Procedimientos", vimos la teoria de lo que son los Procedimientos y Funciones en programacion, ahora veremos un ejemplo completo.

Ejercicio. se desea calcular el factorial de un numero utilizando funciones y procedimientos

Factorial: Para todo número natural n, se llama n factorial o factorial de n al producto de todos los naturales desde 1 hasta n:



01 Module Module1
02 
03     Sub Main()
04         ' se declara una variable
05         Dim numero As Integer
06         ' se lee un numero entero utilizando la funcion Leer_Numero()
07         numero = Leer_Numero()
08         ' se llama a un procedimiento
09         Mostrar_resultado(numero)
10     End Sub
11 
12     ' procedimiento encargado de imprimir el resultado
13     Private Sub Mostrar_resultado(ByVal i As Integer)
14         Console.WriteLine("El factorial de " & i & " es " & Factorial(i))
15         Console.WriteLine()
16         Console.WriteLine("presione cualquier tecla para terminar...")
17         Console.ReadLine()
18     End Sub
19 
20     ' funcion que lee un numero entero
21     Private Function Leer_Numero() As Integer
22         Dim n As Integer
23         Do
24             Console.WriteLine("Por favor ingrese un numero de 1 a 10")
25             Console.Write("Numero: ")
26             n = Val(Console.ReadLine)
27         Loop While n > 10 Or n <= 0
28         Return n
29     End Function
30 
31     ' funcion que calcula el factorial de un numero pasado como parametro
32     Private Function Factorial(ByVal n As Integer) As Long
33         Dim i As Integer
34         Dim fac As Long
35         fac = 1
36         For i = 1 To n
37             fac = fac * i
38         Next
39         Return fac
40     End Function
41 End Module

El resultado

11 jul 2010

Algoritmo de encriptamiento Codigo Cesar VB.NET

algoritmo de encriptamiento Codigo Cesar vb.net


Utilizado, de ahí su nombre, por Julio César para comunicarse con sus oficiales, consiste en sustituir cada letra del mensaje por la que está n posiciones más adelante o atrás en el alfabeto.

Si n = 3, la A se sustituiría por la D, la B por E, la C por la F y así sucesivamente. De este modo, la palabra ABC se transforma en DEF encriptada, siendo n la llave (key) para poder decifrarla.

El proyecto.

1. Crea un nuevo proyecto en vb.net, la interfaz es sencilla y consiste en unos cuantos controles como en la imagen
2. Crea una nueva clase, llamala "Cesar.vb", esta clase estara compuesta por tres funciones, encriptar(), desencriptar() y clean(), esta ultima una funcion privada tiene el trabajo de limpiar el codigo de "retornos de carro" y de "caracteres especiales" que no se encuentren en la tabla predefinida para ello.

El codigo fuente de la clase Cesar.vb
01 Public Class Cesar
02     'almacena todos los caracteres permitidos en el mensaje
03     Private Const tabla = "abcdefghijklmnopqrstuvwxyz 
04                           0123456789ABCDEFGHIJLKMNOPQRSTUVWXY
05                           Z,.-;:_{}[]+*\¿?!¡#$&amp;/()
06                           =áéíóúÁÉÍÓÚñÑ " + Chr(13)
07     Private resultado As String
08     Private i As Integer
09     Private pos As Integer
10 
11     Function Encriptar(ByVal texto As String, ByVal key As 
12                        Integer) As String
13         resultado = ""
14         texto = clean(texto)
15         For i = 0 To (texto.Length - 1)
16             'buscar la posicion del caracter 
17             pos = tabla.IndexOf(texto.Chars(i))
18             'realiza el reemplazo de caracteres
19             If (pos + key) &lt; tabla.Length Then
20                 resultado = resultado + tabla.Chars(pos + 
21                             key)
22             Else
23                 resultado = resultado + tabla.Chars((pos + 
24                             key) - tabla.Length)
25             End If
26         Next
27         'reconstruye el mensaje con los retornos de carro
28         resultado = resultado.Replace("{.13}", vbCrLf)
29         Return resultado
30     End Function
31 
32     Function Desencriptar(ByVal texto As String, ByVal key 
33                           As Integer) As String
34         resultado = ""
35         texto = clean(texto)
36         For i = 0 To (texto.Length - 1)
37             pos = tabla.IndexOf(texto.Chars(i))
38             If ((pos - key) &lt; 0) Then
39                 resultado = resultado + tabla.Chars((pos - 
40                             key) + tabla.Length)
41             Else
42                 resultado = resultado + tabla.Chars(pos - 
43                             key)
44             End If
45         Next
46         resultado = resultado.Replace("{.13}", vbCrLf)
47         Return resultado
48     End Function
49 
50     Private Function clean(ByVal t As String) As String
51         ' reemplaza el retorno de carro con un simbolo
52         t = t.Replace(vbCrLf, "{.13}")
53         ' reemplaza los caracteres que no se encuentran en 
54         la tabla por un simbolo
55         For i = 0 To (t.Length - 1)
56             pos = tabla.IndexOf(t.Chars(i))
57             If (pos = -1) Then
58                 t = t.Replace(t.Chars(i), "{.d}")
59             End If
60         Next
61         Return t
62     End Function
63  End Class


Resultado


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification