Ejemplos de algoritmos ( tareas 2.10; 2.12; 2.14; 2.16; 2.18)

  • 1)Se tiene que ingresar a un computador una lista de datos ; confeccione un algoritmo que imprima todos aquellos valores cuyo valor absoluto esté entre 5 y 10.

    Proceso valor 

         N<-0
        CT<-0
        valor<-0
        Escribir "ingrese la cantidad de datos"
        Leer n
        Mientras ct<n Hacer
            Escribir "ingrese el valor"
            Leer valor
            si valor<0 Entonces
                valor<-valor*-1
             
            FinSi
            si ( valor >= 5 y valor<= 10) Entonces
                Escribir "el valor es", valor
            FinSi
            ct<-ct+1
        FinMientras
    FinProceso


    2)Confeccione un algoritmo que cuente la cantidad de datos a ingresar desde un listado.  El fin de este listado está dado por la palabra “Fin” en la última línea.  Imprima el número de datos.

    Proceso datos
        cont<-0
        dato<-""
        Mientras  dato<>"fin" Hacer
            Escribir "ingresar dato(escribir fin para terminar )"
            Leer dato
            cont<-cont+1
        FinMientras
        Escribir "el total de datos ingresados es " , cont -1
    FinProceso

    3)Se tiene una cierta cantidad de datos a procesar en una computadora.  Plantee un algoritmo que para cada valor leído, lo imprima y lo sume respectivamente, usando sumador de números positivos o negativos.  Además al final del proceso, se debe indicar la cantidad de valores positivos y negativos,  leídos  separadamente.

     Proceso datos2
        z<-0
        ct<-0
        n<-0
        ctmenos<-0
        ctmas<-0
        sumvp<-0
        sumvn<-0
        Escribir "ingrese cantidad de números"
        Leer n
        Mientras ct<n Hacer
            Escribir "ingrese dato"
            Leer Z
            si Z>0 Entonces
                ctmas<-ctmas+1
                sumvp<-sumpv+Z
            FinSi
            si Z<0 Entonces
                ctmenos<-ctmenos+1
                sumvn<-sumvn+Z
            FinSi
            ct<-ct+1
        FinMientras
        Escribir "cantidad de positivo" , ctmas "y suma es " , sumvp
        Escribir "cantidad de negativo" , ctmenos " y suma es" , sumvn
        FinProceso

    4)Se desea ingresar a un computador para procesarla, la siguiente información de alumnos de la Universidad:
    Número de matrícula
    Nombre
    Sexo 1 = masculino;2 = femenino;3 = fin de datos
    Edad
    Ingreso familiar
    Confeccione un algoritmo que emita un listado con la siguiente información:
    Cuántos hombres poseen un ingreso familiar que esté comprendido entre $ 350.000 y $ 1.800.000.
    Cuántas mujeres cuya edad fluctúa entre 19 y 22 años, tienen un ingreso familiar superior a $ 700.000.
    La edad promedio de las mujeres y de los hombres.

         Proceso 2.16
            NOMB<-' ';
            NUMMA<-' ';
            EDAD<-0;
            SEXO<-0;
            INGRE<-0;
            CONT1<-0;
            CONT2<-0;
            SUM<-0;
            CONT<-0;
        
            Escribir 'Escribir sexo si es masculino 1 femenino 2 y fin de datos 3';
            Leer SEXO;
           Mientras SEXO<>3 Hacer
            Escribir 'Escribir nombre';
                Leer NOMB;
                Escribir 'Escribir numero de matricula';
                Leer NUMMA;
                Escribir 'Escribir edad';
                Leer EDAD;
                Escribir 'Escribir ingreso familiar';
                Leer INGRE;
               Si SEXO=1 Y INGRE>350000 Y INGRE<1800000                  entonces="entonces" p="p"> CONT1<-CONT1+1;   
                FinSi
              Si SEXO=2 Y EDAD>19 Y EDAD<22 ingre="ingre" y="y">700000  Entonces
                    CONT2<-CONT2+1;
                FinSi
             SUM<-SUM+EDAD;
                CONT<-CONT+1;
             Escribir 'Escribir sexo si es masculino 1 femenino 2 y fin de datos 3';
                Leer SEXO;
             FinMientras
            Escribir CONT1,' Hombres poseen un ingreso familiar entre $350.000  y  $1.800.000';
            Escribir CONT2,' Mujeres cuya edad fluctúa entre 19 y 22 años y que tienen un ingreso familiar superior a $ 700.000';
            Escribir 'La edad promedio de hombres y mujeres es de ',SUM/CONT;
    FinProceso

        5)Se encuentran definidos un conjunto de datos que especifican las diferentes características que tiene un proyecto (se desea procesarlos)
        Código de proyecto
        Nombre de proyecto
         Tipo de proyecto 1 = estatal;2 = privado;3 = mixto;4 = fin de datos
    Región
    Costo de proyecto
    Se desea confeccionar un listado de salida, que contenga la siguiente información:
    Un listado general que especifique el código de proyecto, nombre de proyecto, el tipo, la región a la cual pertenece y el costo del proyecto.
    ¿Cuál es el número de proyectos estatales que pertenecen a la quinta región cuyo costo es superior a $ 10.000.000.-?
    ¿Cuál es el costo promedio de la cuarta región.?
    ¿Cuál es el mayor costo de proyecto y a qué región pertenece.?
           Proceso 2.18
            tipo<-0;
            codigo<-" ";
            nombre<-" ";
            region<-0;
            costo<-0;
            npro<-0;
            cpro<-0;
            con1<-0;
            may<-0;
            may2<-0;
               Escribir "Escribir el tipo de proyecto 1 si es estatal, 2 si es privado, 3 mixto y 4 fin de datos" ;
            Leer tipo;
             Mientras tipo<>4 Hacer
               Escribir "Escribir codigo de proyecto";
                  Leer codigo;
               Escribir "Escribir nombre del proyecto";
                  Leer nombre;
               Escribir "Escrivir el numero de la region";
                  Leer region;
               Escribir "Escribir el costo del proyecto";
                  Leer costo;
                Si tipo=1 y region=5 y costo>10000000 Entonces
                      npro<-npro+1;
                FinSi
                Si region=4 Entonces
                     cpro<-cpro+costo;
                     con1<-con1+1;
                FinSi
                Si costo>may Entonces
                     may<-costo;
                     may2<-region;
                FinSi
                 Escribir "Escribir el tipo de proyecto 1 si es estatal, 2 si es        privado, 3 mixto y 4 fin de datos" ;
                 Leer tipo;
            FinMientras
               Escribir npro "Proyectos estatales que pertenesen a la quinta     region cuyo costo es superior a 10000000";
            Escribir "El costo promedio de la cuarta region es " cpro/con1;
            Escribir "El mayor costo de proyecto es " may " y pertenese a la " may2 " region";
    FinProceso

Algoritmo

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir para dar solución a un problema específico.

Tipos de algoritmo:
  • Cualitativos: Son aquellos en los que se describen los datos utilizando palabras.
  • Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para describir los pasos del proceso.

Lenguajes algorítmicos


Es una seria de símbolos y reglas que se utilizan para describir de manera implícita un proceso.


 Pueden ser gráficos (diagrama de flujo) o no gráficos (pseudo-código).
"Metodología para la solución de problemas por medio de computador"
1. Definición del problema:
Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa.
Es importante que se conozca lo que se desea que realice el computador; mientras esto no se conozca del todo, no tiene mucho caso continuar con la siguiente etapa.
2. Análisis del problema:
Una vez que se ha comprendido lo que se desea del computador, es necesario definir:
- Los datos de entrada.
- Cuál es la información que se desea producir (salida).
- Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy práctica es el que nos pongamos en el lugar del computador y analicemos qué es lo que necesitamos que nos ordenen y en qué secuencia para producir los resultados esperados.
3. Diseño de un buen algoritmo:
Las características son:
- Debe tener un punto particular de inicio.
- Debe ser definido, no debe permitir dobles interpretaciones.
- Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
- Debe ser finito en tamaño y tiempo de ejecución.

Sistemas de numeración

Un sistema de numeración es un conjunto de símbolos y reglas que permi­ten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan porque un símbo­lo tiene distinto valor según la posición que ocupa en la cifra.


Sistema de numeración decimal:

El sistema de numeración que utiliza­mos habitualmente es el decimal, que se compone de diez símbolos o dígi­tos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) a los que otorga un valor dependiendo de la posición que ocupen en la cifra: unidades, decenas, centenas, millares, etc.
El valor de cada dígito está asociado al de una potencia de base 10, número que coincide con la cantidad de símbolos o dígitos del sistema decimal, y un exponente igual a la posición que ocupa el dígito menos uno, contando desde la de­recha.
En el sistema decimal el número 528, por ejemplo, significa:

5 centenas + 2 decenas + 8 unidades, es decir:

5*102 + 2*101 + 8*100 o, lo que es lo mismo:

500 + 20 + 8 = 528

 Sistema de numeración binario:

El sistema de numeración binario utiliza sólo dos dígitos, el cero (0) y el uno (1).
En una cifra binaria, cada dígito tiene distinto valor dependiendo de la posición que ocupe. El valor de cada posición es el de una potencia de base 2, elevada a un exponente igual a la posición del dígito menos uno. Se puede observar que, tal y como ocurría con el sistema decimal, la base de la potencia coincide con la cantidad de dígitos utilizados (2) para representar los números.
De acuerdo con estas reglas, el número binario 1011 tiene un valor que se calcula así:

1*23 + 0*22 + 1*21 + 1*20 , es decir:

8 + 0 + 2 + 1 = 11

y para expresar que ambas cifras describen la misma cantidad lo escribimos así:

10112 = 1110

Conversión entre números decimales y binarios

Convertir un número decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos.
Por ejemplo, para convertir al sistema binario el número 7710 haremos una serie de divisiones que arrojarán los restos siguientes:
77 : 2 = 38 Resto: 1
38 : 2 = 19 Resto: 0
19 : 2 = 9 Resto: 1
9 : 2 = 4 Resto: 1
4 : 2 = 2 Resto: 0
2 : 2 = 1 Resto: 0
1 : 2 = 0 Resto: 1
y, tomando los restos en orden inverso obtenemos la cifra binaria:

7710 = 10011012

 Conversión de binario a decimal

El proceso para convertir un número del sistema binario al decimal es aún más sencillo; basta con desarrollar el número, teniendo en cuenta el valor de cada dígito en su posición, que es el de una potencia de 2, cuyo exponente es 0 en el bit situado más a la derecha, y se incrementa en una unidad según vamos avanzando posiciones hacia la izquierda.
Por ejemplo, para convertir el número binario 10100112 a decimal, lo desarrollamos teniendo en cuenta el valor de cada bit:

1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 83

10100112 = 8310

Conversión de un número decimal a octal

La conversión de un número decimal a octal se hace con la misma técnica que ya hemos utilizado en la conversión a binario, mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 12210 tendremos que hacer las siguientes divisiones:
122 : 8 = 15     Resto: 2
15 : 8 = 1           Resto: 7
1 : 8 = 0               Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal:

12210 = 1728

Conversión octal a decimal

La conversión de un número octal a decimal es igualmente sencilla, conociendo el peso de cada posición en una cifra octal. Por ejemplo, para convertir el número 2378 a decimal basta con desarrollar el valor de cada dígito:
2*82 + 3*81 + 7*80 = 128 + 24 + 7 = 15910

2378 = 15910

 Sistema de numeración hexadecimal

En el sistema hexadecimal los números se representan con dieciséis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las cantidades decima­les 10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dígitos mayores que 9 en el sistema decimal. El valor de cada uno de estos símbolos depende, como es lógico, de su posición, que se calcula mediante potencias de base 16.
Calculemos, a modo de ejemplo, el valor del número hexadecimal 1A3F16:

1A3F16 = 1*163 + A*162 + 3*161 + F*160
 
1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910

Computador (Von-Newman)

John Von Newman observo que la torpeza de la aritmética decimal utilizadas en la computadora ENIAC podia remplazarse utilizando la aritmatica binaria.

Realizo un diseño básico llamado la máquina de Von Newman y se utilizo en la computadora EDVAC que fue la primer computadora que almacenaba el programa.

La máquina de Von Newman tenia 5 partes principales y son las siguientes:

LA MEMORIA: Constaba de 4096 palabras cada una de 40 bits.Y cada palabra podia contener 2 instrucciones de 20 bits cada una o un número entero de 39 bits y su signo.

UNIDAD DE CONTROL:Es la que supervisaba la transferencia de información y la indicaba a la unidad aritmetica lógica cual operación debia ejecutar.

UNIDAD DE ARITMATICA LÓGICA: Es aquella que se encarga de realizar las operaciones aritméticas y lógicas necesarias para la ejecución de una instrucción.

Historia de la computación

                                                                               LINEA DE TIEMPO