lunes, 10 de junio de 2013

6.1 Arreglos unidimensionales .

Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo.


El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria.
Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ellos, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras.


REPRESENTACIóN EN MEMORIA: Los arreglos guardan en memoria la cantidad de espacios que se le indican en la declaración.

Ejemplo: sea el siguente arreglo unidimensional donde se va a guardar 5 datos de tipo entero (integer)

x : array[1..5] of integer
En memoria el computador guarda 5 espacios: esto quiere decir en el arreglo X en la posición 1 guarda 34, en el arreglo X en la posición 2 guarda 22, asi hasta la última posición del arreglo X posicion 5 guarda 72.
X [1]
34
X [2]
22
X [3]
39
X [4]
63
X [5]
72

Declaracin de los arreglos unidimensionales: Se declara el tipo del arreglo, con la palabra reservada TYPE, luego se declara la variable de tipo arreglo, esto se hace en el bloque de declaracion de variables palabra reservada VAR.

Type

nombre_arreglo= array[x..y]of tipo_dato;
Ejemplos:
salarios= array [1…x] of real;
nombre_trabajador=array[1..x] of string;
Nota: El tipo de dato del arreglo puede ser: integer,real, boolean, string etc.
Variables tipo array
Var
sueldo:salarios;
nombre:nombre_trabajador;
Una vez declarados los arreglos procedemos a cargar información en ellos, para esto usamos estructuras repetitivas la mas recomendable por su facilidad es el for, una vez cargada la información se puede hacer cualquier operación de calculo y por último 
mostramos la información de los arreglos usando de igual manera la estructura repetitiva for.
carga de un arreglo, la letra i es el indice o subindice del arreglo e indica la posición del 
arreglo:

for i:=1 to num do

begin
readln(notas[i]);
end;
Mostrar la información de un arreglo, la letra i es el indice o subindice del arreglo e indica la posición del arreglo::
for i:=1 to num do
begin
writeln(notas[i]:3:1);
end;
Se han hechos programas que suman una cantidad de números usando dos variables, una para leer cada número y otra para acumular la suma. Este enfoque tiene la desventaja de que se pierden los valores de los sumandos. El uso de arreglos permite calcular la suma de los números con una cantidad mínima de código y a la vez conservar cada valor, como muestra el siguiente programa completo:


Program SumaN;
Uses
Crt;
Const
n = 5;
Var
nums: Array[1..n] Of Integer;
s, i: Integer;
Begin
For i:=1 To n Do
Begin
Write('Escriba el número: ');
ReadLn(nums[i]);
s := s + nums[i];
End;
WriteLn('La suma es: ', s);
End.

Nótese el uso de una constante para marcar el tamaño del arreglo; dicha constante, también sirve para controlar el For. De este modo, sólo se hace necesario cambiar un número para adecuar el programa a la escala apropiada



* Dadas n cantidad de notas, calcular e imprimir el promedio de las notas y todas las notas que fueron mayor a la media calculada.
PROGRAM calificaciones;
USES CRT;
type
listacalificaciones=array[1..n]of real;
VAR
notas:listacalificaciones;
media,suma:real;
num,i:integer;

BEGIN
WRITELN('INTRODUZCA la cantidad de notas a procesar');
READLN(NUM);
suma:=0;

for i:=1 to num do
begin
readln(notas[i]);
suma:=suma+notas[i];
end;
media:=suma/num;
writeln('la media es:' , media:2:2);
writeln('la lista de calificaciones mayores a la media es:');
for i:=1 to num do
begin
if notas[i]>media then
writeln(notas[i]:3:1);
readln;
end;
END.

(*Escribir un programa en pascal que rellene un array con 11
numeros, luego dividirlos entre 3 y mostralos por pantalla *)

PROGRAM numeros;
USES CRT;
type
arreglonumeros=array[1..11]of real;
VAR
num:arreglonumeros;
i:integer;
numero:real;

BEGIN
for i:=1 to 11 do
begin
WRITELN('Introduzca el numero ' , i, ' a dividir');
readln(num[i]);
numero:=num[i]/3;
write('los numero resultantes de la division son:' ,numero:2:2);
readln;
end;
end.


Observaciones:
  • El tipo-base puede ser cualquiera de los tipos básicos del lenguaje, o incluso algunos complejos como estructuras. Cada elemento del arreglo será del tipo definido aquí.

  •  
  • El identificador es el nombre que distinguirá el arreglo.

  •  
  • Los corchetes [] son obligatorios.

  •  
  • El término NumElementos determina el tamaño del arreglo, es decir, la cantidad de elementos del tipo base que contendrá. Dichos elementos estarán numerados consecutivamente, empezando en 0.

  •  
Es posible declarar un arreglo unidimensional y al mismo tiempo inicializar sus elementos con valores del tipo base. La sintaxis para hacer esto es la siguiente:
       <tipo-base> <identificador>[<NumElementos>] = { valor1, valor2, ... };

Observaciones:
  • Con los valores indicados entre llaves {} se inicializarán los elementos del arreglo.

  •  
  • Los valores deben ser del <tipo-base> del arreglo.

  •  
  • Si se incluyen menos valores que elementos en el arreglo, los últimos serán inicializados en cero.

  •  
Si se hace inicialización, es posible omitir el tamaño del arreglo y dejar que el compilador lo deduzca a partir de los valores asignados. Ver ejemplo más abajo.
La declaración de estructuras complejas, como los arreglos, se hace a partir de tipos existentes, por lo que es posible declarar variables de un tipo simple y arreglos con ese tipo como base, en una misma línea. Por ejemplo, en la siguiente declaración se está definiendo una variable entera, llamada numero, y al mismo tiempo un arreglo con 100 enteros, numerados de 0 a 99, y llamado vec:
       int numero, vec[100];
    
    

Uso de Arreglos Unidimensionales

Los elementos de un arreglo son variables del tipo base del vector, por lo que se utilizan de la misma manera en expresiones y demás instrucciones, como la asignación. Por ejemplo, para asignar un valor a un elemento de un arreglo basta con escribir:
       arreglo[indice] = valor;
en donde arreglo es el nombre de la variable e indice hace referencia a la posición del elemento al que se le quiere asignar el valor.

Importante: Puesto que los arreglos son estructuras complejas (es decir, no básicas), no es posible asignar un arreglo a otro mediante una simple asignación (=). Para hacer esto es necesario escribir un ciclo y asignar elemento a elemento.
Como se mencionó anteriormente, el lenguaje C no controla la validez de los índices que se emplean para referenciar un arreglo. Esto quiere decir que es posible cometer errores muy difíciles de detectar en este sentido. Es necesario prestar especial interés a los valores que toman los índices para evitar estos problemas.
Por ejemplo, la siguiente porción de código compila sin problemas (es decir, sin errores sintácticos), pero probablemente produzca un error en tiempo de ejecución al referenciarse posiciones inexistentes del arreglo.
    /* Ejemplo de error por acceso fuera de rango a un arreglo. */ /* Las posiciones con índices del 20 al 29 son inválidas. */ int i, arreglo[20]; for (i=0; i<30; i++) arreglo[i] = 0;
También es común cometer estos errores olvidando que las posiciones de los arreglos están numeradas a partir del índice cero. Es decir, en un arreglo de tamaño N las posiciones están numeradas de 0 a N-1.
El nombre de un arreglo también puede emplearse sin índice, bajo ciertas circunstancias, por ejemplo, para pasar el arreglo completo como parámetro a una función. Cuando se emplea el nombre solo, lo que se está manejando es en realidad un puntero al primer elemento del arreglo. Más adelante, en la sección de strings se hará una descripción más detallada sobre esto. 

Ejemplos

    En todos los casos, A es el nombre de la variable declarada:
    1.   Declaración de un arreglo de 50 enteros:
            int A[50];
    
    2.   Declaración de un arreglo de 100 caracteres:
            char A[100];
    
    3.   Declaración e inicialización de un arreglo de 10 enteros:
            int A[10] = { 2, 5, 8, 100, 1, 2, 100, 5, 5, 5 }
    
    4.   Inicialización parcial: El resto se inicializa en cero:
            int A[100] = { 25, 5, 100, 25, 5 }
    
    5.   Declaración e inicialización de un arreglo de 10 caracteres:
            char A[10] = { 'a', 'z', 'E', 'e', 65, '\65', '@', 'U', '*', '\n' }
    
    6.   Determinación en forma implícita del tamaño de un arreglo:
            int A[] = { 5, 10, 2, 15, 20 }
    
    7.   Asignando un valor a la sexta posición de un arreglo de enteros:
            A[5] = 200;
    
    8.   Imprimiendo un arreglo de 100 enteros mediante un ciclo for:
            int i;
            for (i=0; i<100; i++)
               printf("%d\n", A[i]);
    
    9.   Leyendo del usuario el contenido de un arreglo de 20 enteros,
         mediante un ciclo for:
            int i;
            for (i=0; i<20; i++)
               scanf("%d", &A[i]);  /* scanf() requiere puntero: & */
    
    10.  Una función que recibe un arreglo de enteros como argumento
         y calcula el promedio:
            int promedio(int A[], int num_elementos) {
               int prom = 0;
               int i;
               for (i=0; i<num_elementos; i++)
                  prom = prom + A[i];
               return(prom/num_elementos);
            }
    
    11.  Llamando una función que recibe un arreglo de enteros como
         parámetro:
            int prom, A[100];
            ...
            prom = promedio(A);
    12. Contando el número de caracteres de una cadena
        int numero_caracteres (char *s){
            int i=0;
            while (s[i] != `\0`)
               i++;
            return (i);
        } 
    

Para establecer el rango del arreglo (número total de elementos) que componen el arreglo se utiliza la siguiente formula:
                RANGO = Ls - (Li+1)
Donde:
ls = Límite superior del arreglo
li = Límite inferior del arreglo
Para calcular la dirección de memoria de un elemento
dentro de un arreglo se usa la siguiente formula:
                A[i] = base(A) + [(i-li) * w]
Donde:
A = Identificador único del arreglo
i = Indice del elemento
li = Límite inferior
w = Número de bytes tipo componente
Si el arreglo en el cual estamos trabajando tiene un índice numerativo utilizaremos las siguientes fórmulas:

                RANGO = ord (ls) - (ord (li)+1)
                A[i] = base (A) + [ord (i) - ord (li) * w]

                        Arreglos

Gráfico



Ejemplo :




              Vídeos


5. Ciclos.

Los ciclos.
Un algoritmo se comporta de una manera secuencial, cada instrucción se lee desde inicio hasta fin. Esto nos da pie a pensar que para lograr repetir algo, será necesario copiarlo muchas veces. En el mundo de los algoritmos encontramos la forma de repetir las veces que deseamos una instrucción o un bloque de ellas, a este elemento lo denominamos ciclo. En la naturaleza y en el mundo real la mayoría de cosas son cíclicas, comer, dormir, respirar, trabajar, estudiar, descansar.... son cosas que se repiten con diferente periodicidad.
¿Qué son los ciclos? 
Son estructuras que permiten hacer  n repeticiones de un bloque de instrucciones.
En los algoritmos los ciclos son diversos, para el caso de estudio del curso seleccionaremos el ciclo mientas, en inglés while y en DFD MQ. El ciclo funciona de modo que: mientras la expresión de control sea verdadera se ejecuta todo el bloque que contienen y cuando llega al final, se devuelve a la expresión de control y nuevamente pregunta, de ser verdad, sigue repitiendo este proceso mientras sea verdad dicha expresión y cuando no, termina saltando el bloque y continuando con las demás acciones programadas en el algoritmo.
El ciclo mientras.
Ya conocemos que la finalidad de un ciclo es hacer un número de repeticiones y en dichas repeticiones denominadas iteraciones realizar otras instrucciones que permitan dar respuesta al problema originalmente planteado.
El ciclo mientras se fundamenta en un expresión relacional o lógica al igual que lo hacen las decisiones.
El ciclo mientras funciona preguntado por una expresión lógica o relacional si es verdad ingresa al ciclo y cuando es falsa salta el bloque y continua en la siguiente instrucción después del bloque mientras.
En esta forma genérica, si la expresión es verdadera se ejecuta inst1, inst2, inst3, inst4 tantas veces como sea verdad la expresión, es decir se deja de repetir cuando la expresión sea falsa. Un dato muy importante es que de alguna forma la expresión  tenga elementos que cambien al interior del ciclo.Cuando los elementos no cambian, se puede generar un ciclo que nunca termina o denominado infinito.
Empezaremos por definir una forma general de usar el ciclo mientras, nos concentraremos en lograr que el ciclo realice n repeticiones. 
La forma general de hacer esto, es definir cuántas repeticiones se desean hacer, crear una expresión que sea verdadera mientras no se cumpla el total de las repeticiones y dentro del ciclo modificar la variable de control del ciclo.






El concepto de contador.

¿Qué es un contador? 
Es una variable, cuya finalidad es la de permitir guardar un conteo sobre algo que se necesita. Desde el punto de vista de la programación es lo siguiente.
variable = variable + K
donde K es una constante numérica que puede ser entera o decimal.


Ejemplos realizados
Construir un programa que lea el nombre de un usuario y su edad. Validar que la edad sea correcta en un rango de 10 a 90. Imprimir el nombre tantas veces como años tiene la persona.
#Algoritmo construido en python 3.2
#Forma 1 de solucionar el planteamiento dado.
n=input("digite nombre")
e=int(input("edad"))
if e>=10 and e<=90:
    c=1
    while c<=e:
        print(n)
        c+=1
else:
     print("fuera del rango")


#Algoritmo construido en python 3.2
#Forma 2 de construir el problema planteado.
n=input("digite nombre")
e=int(input("edad"))
if e<10 or e>90:
    print("fuera del rango")
else:
    c=0
    while c<e:
        print(n)
        c+=1
Construir un programa que realice un conteo descendente desde m hasta 0. Si m es negativo volverlo positivo.
#Algoritmo construido en Python 3.2 Forma 1 de resolver el planteamiento dado.
m=int(input("Digite m"))
if m<0:
    m=-m
c=0
while c<=m:
    print(m-c)
    c+=1



#Algoritmo construido en Python 3.2 Forma 2 de resolver el planteamiento dado
m=int(input("Digite m"))
if m<0:
    m=-m
while m>0:
    print(m)
    m-=1

Imprimir n números pares desde 0 en adelante.

#Algoritmo construido con Python 3.2
#Forma 1 de solucionar el planteamiento dado
m=int(input("numero pares"))
c=1
while c<=m:
    print(c*2)
    c+=1


#Algoritmo construido con Python 3.2
#Forma 2 de solucionar el planteamiento dado
m=int(input("numero pares"))
c=1
p=2
while c<0:
    print (p)
    p+=2
    c+=1

#Algoritmo construido con Python 3.2
#Forma 3 de solucionar el planteamiento dado
m=int(input("numero pares"))
c=1
while c<=m*2:
    if c%2==0:
        print(c)
        c+=1
Leer la edad de n personas, determinando cuántas de las edades están en el intervalo 18 a 90.
#Algoritmo desarrollado en Python 3.2
n=int(input("numero personas"))
p=0
while n>0:
    e=int(input("digite edad"))
    if e>17 and e<91:
        p+=1
        n-=1
        print(p,"personas en el rango")
Realizar esta figura de forma que sea el usuario quien ingrese el número de líneas que se desean hacer y la distancia para separar cada línea. Validar que las líneas sean mayores a 10 y la distancia debe ser positiva. Si los datos son incorrectos, imprimir en letra grande "Datos incorrectos". 





A continuación algunos ejemplos :

1.- Realice un algoritmo que permita calcular y dar como salida el promedio general de una sección, tomando en cuenta que esta compuesta por 25 estudiantes y que se tiene la nota definitiva de cada uno de ellos.
Respuesta: Se utilizará una variable suma que irá acumulando las notas cada vez que se lea. Al final se calcula el promedio dividiendo el valor de la suma entre 25 estudiantes.
El algoritmo será:
1. Inicio
2. Hacer Suma = 0 // Inicializamos el sumado en cero (Al principio la suma es igual a cero)
3. Para i = 1 hasta 25 hacer //Se inicia el ciclo para 25 estudiantes, comenzando con el estudiante 1
4. Leer la nota //Leemos la nota definitiva del estudiante
5. Hacer Suma = Suma + nota //En la variable Suma acumulamos la suma de cada nota leida
6. Fin Para //Fin del ciclo
7. Se calcula el Promedio: Promedio = Suma/25 //Recuerde que en Suma tenemos la suma de las notas
8. Se escribe el promedio //Una vez calculado el promedio de todas las notas lo imprimimos
9. Fin
2. Sean N estudiantes. Hacer un algoritmo que lea las cuatro notas de cada estudiante e imprima la nota definitiva de cada uno, sabiendo que la nota definitiva es igual a la suma de cuatro notas multiplicada por cien, divididas entre 4 y al resultado se le suma uno.
Datos de entrada: Qué me dan (o que voy a leer): N estudiantes. Cada uno con cuatro notas N1, N2, N3 y N4.
Datos de Salida: Qué me piden (o que voy a escribir): La nota definitiva de cada uno NotaD
Procedimiento: NotaD = ((N1 + N2 + N3 + N4)*100/4) + 1). Hay que hacerlo para casa estudiante.
El algoritmo sería:
1. Inicio.
2. Leer N // (Número de estudiantes)
3. Para I = 1 to N hacer //Comienza el ciclo
4. Leer N1, N2, N3, N4 // Leemos las cuatro notas
5. NotaD = ((N1 + N2 + N3 + N4)*100/4) + 1) // Caculamos la nota definitiva
6. Imprimir NotaD
7. Continuar ciclo
8. Fin
Fíjense que los pasos 4 al 6 están dentro del ciclo y se repetirán N veces.
3.- Dado un grupo de 75 Números (Diferentes a Cero), realice un algoritmo que permita determinar y dar como salida lo siguiente:
* Número Mayor y número menor encontrado en el grupo
* Cantidad de Números Mayores a 150
* Cantidad de Números Negativos Encontrados
* Promedio de los Positivos Encontrados.
4.- Dada La C.I., Nombre y la Nota Definitiva de 5 Materias de cada estudiante pertenecientes a un grupo de 35; realice un algoritmo que permita calcular y dar como salida el promedio de notas de cada estudiante.
5.- Realice un Algoritmo que permita calcular y dar como salida el promedio de bateo (PB) de cada jugador perteneciente a un equipo de 40 jugadores, tomando en cuenta que se tienen los siguientes datos:
* Nombre del Jugador
* Veces al Bate (VB)
* Hit Conectados (HIT)
* Extrabases Conectadas (EXT)
* Cantidad de Sacrificios (S)
* Cantidad de Bases por Bolas Recibidas (BB)
Nota: PB = BBC / VLB * 1000
donde:
BBC = HIT + EXT
VLB = VB – S – BB
6.- CANTV Posee dos tipos de clientes: Residencial y Empresarial, realice un algoritmo que permita procesar “n” cantidad de clientes teniendo como datos por C/U. de ellos: Código del Cliente, Tipo de Cliente, Lectura Actual, Lectura Anterior; Calculando y dando como salida la cantidad de Impulsos consumidos y el neto a pagar por cada cliente.
Los Impulsos se cobran a razón de:
Residencial 25 Bs.
Empresarial 35 Bs.
Nota: Cant. De Imp = L. Actual – L. Anterior.
7.- Una Ferretería vende dos tipos de Cables, Cable Tipo A (200 Bs. MT) y Cable Tipo B (300 Bs. MT ); realice un algoritmo que teniendo como datos por cada cliente su nombre, tipo de cable a comprar y cantidad de metros requeridos, calcule y de cómo salida el nombre y el neto a pagar por cada cliente, tomando en cuenta que existe un grupo indeterminado de ellos y que la empresa da una rebaja del 10% por cada compra que exceda de los 100 MT de cable de cualquier tipo
8.- Se toman los Mismos datos del 7 con la diferencia que se da la rebaja del 10% si se compran mas de 100 Mts de Cable tipo A y el 20 % si se compran mas de 100 Mts de Cable Tipo B.
9.- Un Tecnológico, ofrece un curso “x” y desea realizar un algoritmo que permita determinar y dar como salida la cantidad de dinero recaudado por concepto del curso; teniendo en cuenta que se tiene por cada participante la siguiente información:
* Cedula de Identidad
* Nombre del Participante
* Procedencia (At = Alumno del Tecnológico, Dt = Docente del Tecnológico, Pg = Publico en General).
Tomando en cuenta que la procedencia se cobra de la siguiente tarifa:
* At = 10.000 Bs.
* Dt = 20.000 Bs.
* Pg = 35.000 Bs.
Nota: El cupo para el curso no es limitado.
10.- Una Empresa de Reproducción desea realizar un algoritmo que permita calcular y dar como salida el pago que tiene que hacer cada cliente por concepto de copias, tomando en cuenta que se tienen los siguientes datos:
* Cod. de Cliente
* Tipo de Copia (Carta, Oficio, ExtraOficio)
* Cantidad de Copias
Además el Algoritmo debe reportar lo siguiente:
* Total de Copias tipo Carta y Tipo Oficio procesadas por la empresa.
* Promedio de Ventas en Bs.
* Cod. Del Cliente que cancelo mas dinero por el servicio.
El Valor por tipo de Copia es:
* Carta 0,30 Bs.
* Oficio 0,40 Bs.
* Extraoficio 0,50 Bs.
El Algoritmo debe funcionar para “n” cantidad de clientes.
11.- Realice un Algoritmo que permita procesar a “n” cantidad de alumnos, tomando en cuenta que se tienen los siguientes datos:
* Nombre del Alumno
* Especialidad (I, R, A, B, P, D, T)
* Turno (M, T, N)
El Algoritmo debe reportar y dar como salida lo siguiente:
* Cantidad de Relaciones Industriales (R)
* Cantidad de Alumnos de Informática (I) del Turno de la Noche.
12.- Realice un Algoritmo que teniendo en cuenta los siguientes datos de entrada:
* Cod. De Cliente
* Tipo de Cuenta (Ahorro, Corriente)
* Tipo de Actualización (Aporte, Retiro)
* Monto de la Transacción
Calcule y de cómo salida lo siguiente:
* Monto Total de Aporte en Ahorro
* Monto Total de Retiro en Corriente
* Promedio de Retiro en Ahorro.
13.- Realice un Algoritmo que permita dar como salida la población de dos países (a y b), teniendo en cuenta para tal propósito lo siguiente:
* En el Primer Año el País “a” tiene menos población que el país “b”
* Las Tazas de crecimiento de los países “a” y “b” son de 6% y 3% anuales respectivamente.
* Se debe dar como salidas las poblaciones desde el segundo año hasta que la población de “a” exceda a la población de “b”, además la cantidad de años que transcurrieron para que esto sucediera
14.- Realice un algoritmo que permita calcular y dar como salida la temperatura media, mayor y menor ocurrida durante el transcurso de un día.
15.- Data la Nota de Matemática, Estadística e Informática de un grupo de 25 alumnos, realice un algoritmo que permita calcular y dar como salida lo siguiente:
* Promedio de Informática
* Cantidad de aprobados en matemática
* Nota mayor de estadística
* Nota menos de Informática y Nombre del Br. Que la Obtuvo.




CICLO FOR
El ciclor for o para en español, es un ciclo repetitivo donde el usuario decide cuantas veces quiere que repita una pregunta en el algoritmo. La estructura de este ciclo es la siguiente.



para( exprecion logica) exprecion incrementada.

instruccion 1 
instruccion2
fin para

EJEMPLO.

Un algoritmo que lea 5 numeros dados por un usuario y luego muestra el resultado de la suma.

INICIO
ENTERO: N, i, SUMA
SUMA=0
PARA(i= 1 HASTA ,5 , 1)
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA= SUMA+N
FIN PARA
MOSTRAR ('LA SUMA ES:', SUMA)
FIN

Donde 5 son las veces que quiero que se repita la pregunta y 1 de cuanto en cuanto se incrementa, en este casa de 1 en 1.








EJEMPLOS:

Un algoritmo que muestre los pares que hay entre 1 y N.

 INICIO
ENTERO: N, i
MOSTRAR ('DIGITE NUMERO')
LEER (N)
PARA( i= 2 HASTA N, 2)
MOSTRAR (LOS NUMERO PARES SON:', i)
FIN PARA
FIN.



Un algorimo que reciba un dato y lo calcule y mustre el factorial.


INICIO
ENTERO: N,i, FACTORIAL
MOSTRAR ('DIGITE UN NUMERO')
LEER(N)
FACTORIAL=1
PARA( i= 1, HASTA , N, 1)
FACTORIAL= FACTORIAL* i
FIN PARA
MOSTRAR ('EL FACTORIAL ES:', FACTORIAL)
FIN




Un algoritmo que permita mostrar los numeros primos existentes entre 1 y N.

INICIO

ENTEROS:N,i,PRIMO,j


MOSTRAR('DIGITE HASTA Q NUMEERO DESEA VER NUMEROS 

PRIMOS')

LEER:(N)

PARA(i=1, N,1)

PRIMO:1

SI ((i=1)OR(i=2)OR(i=3))

MOSTRAR(i,' ES NUMERO PRIMO')

SINO

PARA(j=2,i-1,1)

SI((i MOD j)!=0)

PRIMO=PRIMO+1


SI(PRIMO=i-1)

MOSTRAR(i,' ES NUMERO PRIMO')

FIN SI

FIN SI

FIN PARA

FIN PARA

FIN


Un algoritmo que permita ingresar N datos correspondientes al genero de N, numero de personas y determine el porcentaje de hombres y mujeres que hay.


INICIO



ENTEROS:N,i,SEXO
REALES:M,F
MOSTRAR:('DIGITE N° DE PERSONAS')
LEER:(N)
M=0


F=0


PARA(i,1,N,1)

MOSTRAR:('DIGITE SEXO 1 MASCULINO, 2 PARA FEMENINO')

LEER:(SEXO)
SI (SEXO=1)

M=M+1

SINO

F=F+1

FIN PARA

F=(F*100)/N

M=(M*100)/N


MOSTRAR:('EL PORCENTAJE DE MUJERES ES: ',F)

MOSTRAR:('EL PORCENTAJE DE HOMBRES ES: ',M)

FIN