martes, 1 de noviembre de 2016

MATRICES.

LLenar una matriz
para llenar una matriz debemos recorrer sus posiciones ya sea por columnas, filas o alguna forma especifica  se toma la matriz por lo que esta compuesta dos vectores que representan as filas y alas columnas, para así asignar los valores en las casillas de esta a continuación u ejemplo en LPP.

Las matrices son arreglos con dos dimensiones  es decir se puede decir que tienen filas y columnas, su manejo es igual que los vectores anteriormente tratados, los valores de las variables se llaman elementos, de la misma forma que en los arreglos y sus indices están compuestos por dos caracteres que indican su posision. para poder acceder a un elemento se debe poner su posición compuesta de los dos indices.
por ejemplo para la matriz A y la posición en la fila 1 y columna 2 se debe poner A[1][2], denotándose que el primer indice indica la posision de la fila y el segundo la posición de la columna.

matriz


EJEMPLOS

1)
arreglo [5,5] de real matriz
entero filas,columnas
inicio
escriba “ejemplo de como se llena e imprime una matriz de 5 X 5.”
llamar nueva_linea
escriba “ingrese los valores a ser ubicados en las filas de la matriz”
llamar nueva_linea

para filas<-1 hasta 5 haga
para columnas<-1 hasta 5 haga
escriba “digite el valor: “
lea matriz[filas,columnas]
llamar nueva_linea
fin para
fin para
escriba “imprimir la matriz creada.”
llamar nueva_linea

para filas<-1 hasta 5 haga
para columnas<-1 hasta 5 haga
escriba matriz[filas,columnas]
llamar nueva_linea
fin para
fin para
fin



2)
Entero I, C, L
arreglo [5,4] de real numero
  Inicio
            Para L<-1 hasta 5 haga
                  para C<- 1 hasta 4 haga 
                  escriba "ingrese numero"
                  lea numero[L,C]
             fin para
           fin para
llamar nueva_linea
      para L<-1 hasta 5 haga
            para C<- 1 hasta 4 haga
            escriba numero[L,C], " "
            fin para 
        llamar nueva_linea
      fin para
fin

3)El Siguiente ejemplo nos muestra como ingresar unos numeros a un arreglo de 5 líneas
y 4 columnas para luego presentar los numeros en la pantalla:


arreglo[5,4] de entero numero
entero L,C
inicio
para L <- 1 hasta 5 haga
para c <- 1 hasta 4 haga
Escriba "Numero[", L , ",", C, "]"
lea numero[L,C]
Fin Para
Fin Para
llamar Limpiar_pantalla
para L <- 1 hasta 5 haga
para c <- 1 hasta 4 haga
Escriba numero[L,C]," "
Fin Para
llamar nueva_linea
Fin Para
fin


4)Arreglo tipo matriz 3x3 que muestra la suma de las 3 columnas, al final muestra el total de dicha suma.

arreglo[3,3]de real num
entero f,c
real sum1,sum2,sum3,sum_t
inicio
sum1<-0
sum2<-0
sum3<-0
sum_t<-0
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "ingrese un numero:"
lea num[f,c]
sum_t<-sum_t+num[f,c]
fin para
sum1<-sum1+num[f,1]
sum2<-sum2+num[f,2]
sum3<-sum3+num[f,3]
fin para
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "el numero en la fila ",f," y la columna ",c," es:",num[f,c]
llamar nueva_linea
fin para
fin para
escriba "la suma de la columna 1 es:",sum1,","
escriba "la suma de la columna 2 es:",sum2,","
escriba "la suma de la columna 3 es:",sum3,","
escriba "el total de las sumas es:",sum_t
fin


5)Desarrollar un arreglo que permita el almacenamiento de datos en 2 filas y 3 columnas, permita determinar cual es el mayor

arreglo[2,3]de entero num
entero i,f,mayor
inicio
mayor<-0
para i<-1 hasta 2 haga
para f<-1 hasta 3 haga
escriba "ingrese numero:"
lea num[i,f]
si num[i,f]>mayor entonces
mayor<-num[i,f]
fin si
fin para
fin para
para i<-1 hasta 2 haga
para f<-1 hasta 3 haga
escriba num[i,f]
fin para
fin para
escriba "mayor :",mayor

fin


6)Arreglo tipo matriz 3x3 que muestra la resta de las 3 columnas, al final muestra el total de dicha resta.

arreglo[3,3]de real num
entero f,c
real res1,res2,res3,res_t
inicio
res1<-0
res2<-0
res3<-0
res_t<-0
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "ingrese un numero:"
lea num[f,c]
res_t<-res_t+num[f,c]
fin para
res1<-res1-num[f,1]
res2<-res2-num[f,2]
res3<-res3-num[f,3]
fin para
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "el numero en la fila ",f," y la columna ",c," es:",num[f,c]
llamar nueva_linea
fin para
fin para
escriba "la resta de la columna 1 es:",res1,","
escriba "la resta de la columna 2 es:",res2,","
escriba "la resta de la columna 3 es:",res3,","
escriba "el total de las sumas es:",res_t
fin


7)Desarrollar un arreglo que permita el almacenamiento de datos en 2 filas y 3 columnas, permita determinar cual es el menor


arreglo[2,3]de entero num
entero i,f,min
inicio
min<-9999999
para i<-1 hasta 2 haga
para f<-1 hasta 3 haga
escriba "ingrese numero:"
lea num[i,f]
si num[i,f]<min entonces
min<-num[i,f]
fin si
fin para
fin para
para i<-1 hasta 2 haga
para f<-1 hasta 3 haga
escriba num[i,f]
fin para
fin para
llamar nueva_linea
escriba "menor :",min
fin

jueves, 27 de octubre de 2016

INTRODUCCION A VECTORES

ARREGLOS.


Un arreglo en LPP puede ser considerado como una agrupación de objetos del mismo tipo que se nombran mediante un único identificador; tales objetos ocupan una posición al interior del arreglo y pueden ser leídos o escritos accediendo a dicha posición. Los arreglos suelen dividirse en vectores (arreglos unidimensionales) y matrices (arreglos bidimensionales).

Nota: se pueden crear arreglos de más dimensiones (arreglos n-dimensionales donde n es un número natural) pero, típicamente, los arreglos de mayor dimensión que se usan son los tridimensionales (de 3 dimensiones).

Ejemplo:
Para declarar el vector de enteros contenidos en la anterior tabla habría que escribir los siguiente:

arreglo[8] de entero Cifras

Donde arreglo[8] de define un arreglo unidimensional que podrá admitir hasta 8 datos, entero simboliza el tipo de datos que pueden ser alojados al interior del arreglo y Cifras es el nombre del arreglo.

EJEMPLOS DE VECTORES

EJEMPLOS DE VECTORES SECUENCIALES.

1)Algoritmo que lea 10 nombres y los muestre.


Arreglo [10] de cadena[20] Nombre
Entero i
INICIO
Para i<-0 hasta 9 haga
  Escriba "ingrese ", i, " nombre : "
  lea nombre[i]
       llamar nueva_linea
fin para
Escriba "Los nombres ingresados fueron : "
llamar nueva_linea
Para i<-0 hasta 9 haga
      Escriba Nombre[i], " "
fin para
FIN

2) algoritmo que lea 10 numeros y los muestre.


arreglo [10] de entero num
entero i

inicio
para i<-1 hasta 10 haga
escriba “ingrese un numero: “
lea num[i]
fin para
para i<-1 hasta 10 haga
escriba num[i], " "
fin para

fin

3)Elabore un algoritmo que lea 3 notas de un estudiante, las sume y muestre la nota definitiva (Hacer esto con 10 estudiantes).


arreglo [10] de real nota_f
real nota_1,nota_2,nota_3
entero i
inicio
para i<-1 hasta 10 haga
escriba "ingrese su nota: "
lea nota_1
escriba "ingrese su nota: "
lea nota_2
escriba "ingrese su nota: "
lea nota_3
nota_f[i]<-(nota_1+nota_2+nota_3)/3
fin para
para i<-1  hasta 10 haga
escriba nota_f[i]
llamar nueva_linea
fin para
fin


4)un estudiante desea saber cual es su edad, teniendo encuenta su año de nacimiento. Mostrar nombre,el apellido y su edad actual (hacer esto con 10 estudiantes).


arreglo [10] de cadena[20] nom
arreglo [10] de cadena[20] ape
arreglo [10] de entero edad
real fecha_n
entero i
inicio
para i<- 1 hasta 10 haga
escriba "ingrese su nombre: "
lea nom[i]
escriba "ingrese su apellido: "
lea ape[i]
escriba "ingrese su fecha de nacimiento :"
lea fecha_n
edad[i]<-2016-fecha_n
fin para 
para i<-1 hasta 10 haga
escriba edad[i], " "
escriba nom[i], " "
escriba ape[i], " "
llamar nueva_linea
fin para
fin

EJEMPLOS DE VECTORES CONDICIONALES.


1) algoritmo que lea 10 numeros y los muestre.
si el numero es mayor a 50 lo duplica.

Arreglo [10] de cadena[20] Nombre
Entero i
INICIO
Para i<-0 hasta 9 haga
  Escriba "ingrese ", i, " nombre : "
  lea nombre[i]
  si nombre[i]>50 entonces
       nombre[i]<-nombre[i]*2
       llamar nueva_linea
fin para
Escriba "Los nombres ingresados fueron : "
llamar nueva_linea
Para i<-0 hasta 9 haga
      Escriba Nombre[i], " "
fin para

FIN



2)Algoritmo que lea 10 nombres y los muestre.
si el nombre es igual a juan no lo muestra.


Arreglo [10] de cadena[20] Nombre
Entero i
INICIO
Para i<-0 hasta 9 haga
  Escriba "ingrese ", i, " nombre : "
  lea nombre[i]
  si nombre[i]='juan' entonces 
       nombre[i]<- " "
       llamar nueva_linea
fin para
Escriba "Los nombres ingresados fueron : "
llamar nueva_linea
Para i<-0 hasta 9 haga
      Escriba Nombre[i], " "
fin para

FIN


3)se necesita saber cuanto es la suma de dos numero pero si el primero numero es menor que 10 en vez de sumar se restan los números (hacer esto con 10 numeros)

arreglo[10] de entero total
real num_1,num_2,total
entero i
inicio
para i<-1 hasta 10 haga
escriba "ingrese un numero: "
lea num_1
escriba "ingrese un numero: "
lea num_2
si num_1<10 entonces 
 total[i]<-num_1-num_2
  sino total[i]<-num_1+num_2
fin si
fin para
para i<- 1 hasta 10 haga 
escriba total
llamar nueva_linea
fin para
fin

4)en una empresa estan haciendo un evento alas personas que se llamen diego  y les dan un bono de 6% del salario se necesita hacer esto con 10 empleados


arreglo[10] de entero pago_t
real pago_i
cadena[20]nombre
entero i
inicio
para i<-1 hasta 3 haga
escriba "ingrese su nombre: "
lea nombre
escriba "ingrese su pago: "
lea pago_i
si nombre="diego" entonces 
 pago_t[i]<-pago_i+(pago_i*0.06)
  sino pago_t[i]<-pago_i
fin si
fin para
para i<-1 hasta 3 haga
escriba pago_t[i]
llamar nueva_linea
fin para
fin 

Con algoritmos haga para

1. Hacer un algoritmo que lea 2 numeros y determine la suma entre ellos, hacer estos mismo 10 veces



arreglo [10] de entero suma
entero i,numero,numero_2
inicio
suma[i]<-0
para i<-1 hasta 10 haga
escriba "ingrese un numero:"
lea numero
escriba "ingrese un numero"
lea numero_2
suma[i]<-numero_2+numero
fin para
para i<-1 hasta 10 haga 
escriba suma[i]
llamar nueva_linea
fin para
fin

2. desarrollar un algoritmo que ingrese la cantidad de numeros deseados, los sume y les saque el promedio, al final muestre todos los numeros ingresado

arreglo [10] de entero num
entero suma,i,cant_n
real promedio
inicio 
escriba "ingrese la cantidad de numeros: "
lea cant_n
suma <-0
para i<-1 hasta cant_n haga
escriba "ingrese un numero: "
lea num[i]
suma<-suma+num[i]
escriba "lleva: ",suma
llamar nueva_linea
fin para
para i<-1 hasta 10 haga 
escriba num[i]
llamar nueva_linea
fin para
promedio<-suma/cant_n
escriba "el promedio es: ",promedio
fin 


con algoritmos haga hasta:

1. Hacer un algoritmo tipo vector con haga hasta que ingrese 10 números y los muestre.

arreglo [10] de entero numero
entero i
inicio
i<-1
repita
escriba "ingrese numero ",i
lea numero[i]
i<-i+1
hasta i=11

i<-1
escriba "vector: "
llamar nueva_linea

repita
escriba "numero: ",numero[i]
i<-i+1
llamar nueva_linea
hasta i=11
fin


2.Hacer un algoritmo tipo vector con haga hasta que ingrese 10 meses y los muestre.


arreglo [10] de cadena[15] meses
entero i
inicio
i<-1
repita
escriba "ingrese mes ",i
lea meses[i]
i<-i+1
hasta i=11



i<-1
escriba "vector: "
llamar nueva_linea



repita
escriba "mes: ",meses[i]
i<-i+1
llamar nueva_linea
hasta i=11



fin

Con algoritmos haga mientras

1) algoritmo con ciclo que pida 9000 camisas
arreglo [9000] de cadena [20] camisa
entero i
inicio
Contador<-0
mientras Contador<9000 haga                
escriba "ingrese camisa "
lea camisa[i]
llamar nueva_linea
i<-i+1  
fin mientras
fin

2)Ingresar 10 números y al final presentar la suma de los números.

arreglo [10] de Entero num
entero i,suma
Inicio
i←0
Suma←0
Mientras i<10 haga
Escriba “Ingresar un numero”
Lea num[i]
i← i +1
Suma←num[i]+suma
Fin mientras
Escriba “Suma de los 10 números “, suma
Mientras i<10 haga
escriba num[i], " "
i← i +1
Fin mientras

Fin


lunes, 5 de septiembre de 2016

CICLOS REPETITIVOS, HAGA HASTA

Ciclo Repita

este ciclo es más útil cuando necesitamos definir cuándo y cómo acabar el ciclo


estructura

        Repita 
                     Instrucciones 
        Hasta (condición)


ejemplo

(1°) realizar un algoritmo que pida el nombre de la cantidad de alumnos que se requiera y muestre cuántos aprobaron y cuántos reprobaron.

caracter resp 
real nota 
entero ca, cr 
cadena[25] nombre 
inicio 
ca <-0 
cr <-0 
repita 
Escriba "ingresar el nombre del alumno " 
lea nombre 
Escriba "ingresar la nota del alumno " 
lea nota 
si nota >= 60 entonces 
ca <-ca+1 
sino 
cr <-cr+1 
fin si 
escriba " Desea continuar S/N" 
lea resp 
hasta (resp='n') o (resp='N') 
escriba " Aprobados ",ca 
llamar nueva_linea 
escriba " Reprobados ",cr 
fin

(2°) Desarrollar un algoritmo que me permita ingresar el sexo de 10 personas y al final me muestre la cantidad de cada sexo ingresado.

Entero mascu,feme,otro,con
Cadena[10] sexo

Inicio
mascu<- 0
feme<- 0
otro<- 0
con<- 0

 Repita

Escriba "Ingrese el sexo de la persona : "
Lea sexo

Llamar nueva_linea

 Si (sexo="masculino") o (sexo="Masculino") entonces
  mascu<- mascu + 1

  Sino si (sexo="femenino") o (sexo="Femenino") entonces
   feme<- feme +1

    Sino si (sexo="otro") o (sexo="Otro") entonces
     otro<- otro + 1

      Fin si

    Fin si

 Fin si    

 con<- con + 1

  Hasta (con=10)

Llamar nueva_linea 

Escriba " La cantidad de sexos Masculinos son ", mascu

Llamar nueva_linea

Escriba " La cantidad de sexos Femeinos son ", feme

Llamar nueva_linea

   Escriba " Otros sexos ", otro

Fin  


(3) Desarrollar un algoritmo que me permita hallar el salario de los empleados de una empresa y me muestre la cantidad de salarios que superen los 700.000 $ y cuantos son menores a este.



Entero menor,mayor,salario
Cadena [5] resp

Inicio
menor<- 0
mayor<- 0

 Repita

  Escriba "Ingrese el salario del empleado : "
  Lea salario

  Llamar nueva_linea

   Si (salario > 700000) entonces
    mayor<- mayor + 1

   Sino
    menor<- menor + 1
Fin si

  Llamar nueva_linea

  Escriba " Desea seguir ingresando salarios ? "
  Lea resp

  Llamar nueva_linea

 Hasta (resp="No") o (resp="no")

 Llamar nueva_linea

 Escriba " Los cantida de salarios mayoreas a 700.000 son ", mayor

 Llamar nueva_linea

 Escriba " Los cantidad de salarios minimos a 700.000 son ", menor

Fin  


(4) //Declaración de Variables
Cadena [25] nombre 
Real nota1, nota2, nota3, notaFinal 
Inicio 
 //Inicio del ciclo Repita Repita //
Lectura de los datos de entrada
 llamar nueva_linea
 escriba "Ingrese el nombre del estudiante:" 
 lea nombre 
 escriba "Ingrese el valor de la primera nota:" 
 lea nota1 
 escriba "Ingrese el valor de la segunda nota:" 
 lea nota2
//Cálculo de la nota final 
 notaFinal <- (nota1 + nota2) / 2 
 //Escritura de la salida 
 llamar nueva_linea
 llamar nueva_linea 
 escriba "INFORMACION DEL ESTUDIANTE” 
 llamar nueva_linea 
 escriba "NOMBRE------>",nombre 
 llamar nueva_linea 
 escriba "NOTA FINAL-->",notaFinal 
 Si notaFinal < 3 Entonces 
 escriba "REPROBADO” 
 Sino escriba "APROBADO” 
 Fin Si 
 Hasta notaFinal < 2 
 //Fin del ciclo Repita 
Fin