Simulador de encuestas autopersonalizables


Nota: un programa de encuestas autopersonalisables consiste en q el usuario encargado de administrar el programa pueda decir q la pregunta1 es respondia por el usuario & q la pregunta 2 es de selección múltiple con única respuesta & asi sucesivamente.
 Aplicando la Logica del calculo, la cual aplique tanto para programar el simulador la hare para explicarlo
 Vamos
 Primero q todo: tengo un amigo q me conto q tenia q hacer un programa para una compañía X, q se encarga de hacer encuetas en las distintas partes de colombia, y me dijo q el programa consistía en generar encuestas en ambiente web para q las personas las pudieras hacer desde internet y una aplicación extra par alos blackberrys para q la pudieras ejecutar en los pueblos donde se cae el internet & muchas cosas mas como se deben imagina, de ahi viene el nombre simulador ya q a mi me causo intriga lo de las "encuestas autopersonalisables" & lo mio esta echo en C#, y además solo es un algoritmo q implemente para generar tales encuestas. 
- ahora yo no uso BD ya q solo es un simulador, solo ultilizo vectores & matrices ya verán porq.
agrego una imagen del programa
 
Nota: es el primer programa q ago orientado objeto donde aplico las clases,  claro no es gran nivel porq ya entre a la u & no me dio tiempo de seguir leyendo msdn pero ami me guta bastante el modo enq trabaje, creo q le saque el jugo alo  leido.




Juego en C# (Reversi en consola)

Muchos en sus tiempos de ocio habran jugado alguna ves un juego q nos ofrece microsft llamado "Resversi en internet" para los q no pueden entrar a el de la siguiente forma: inicio>todos los programas>juegos>Reversi en internet, ¿porq hice enfasis en eso?, pues porq si no conocen el juego me gustaria q lo vieran funionar en modo grafico para q hagan su comparacion con el modo consola q he creado.

esta son unas imagenes del juego:

Ahora como La idea esq todos aprendamos, coloco el algoritmo del juego(Quedando claro q no es un algoritmo como tal, si nó, mas bien un modo de pensar para poder desarrollar el juego)
******Algoritmo
El algoritmo solo are una breve explicación de cuáles son los factores a tener en cuenta, para esto tendremos que hacer uso de la teoría de intervalos esto para hacernos una simple idea de cómo funciona.

El algoritmo como es una explicación básica no será hecho en seudocódigo ni diagrama de flujo es llamado algoritmo porque es un análisis de cómo debe funcionar el algoritmo.

ahora para mi es bastante entendible el juego, pues claro yo fui el q lo hice jajaj, pero para los que no, miren les explico, como ven el cuadro de juego esta coordenado en los ejes x,y el programa lo q hace es leer la posicion donde se pondra la ficha q sera la "jugada".. pero al igual q el algoritmo este es solo una brebe explicacion

& pues despues de todo esto, con la explciacion del algoritmo que uso para desarrollarlo les seria facil programarlo pero si aun tienen dudas sobre el codigo o solo quieren ver mi codigo [a ver q tan mal & desordenado programo jejej : ) ]. pues les dejo el proyecto en el siguiente link:

http://www.4shared.com/file/250887100/f2c51dd0/come_fichas.html  
Nota: el en link estan los dos documentos el algoritmo y el manual, claro tambien el codigo del proyecto

Aclaro es el primer programa q hice en C# aun no sabia manejar objetos ni clases, solo programcion estructurada XD

mi primer programa en vb

enrealidad no es mi primer programa , pero es uno de los q tengo bueno recuerdos ya no existen links de descarga solo historia en google, y algunas fotografias & pues el link no existe por dos razones lo tenia alojado en 4shared y pues deje de acceder y me eliminaron la cuenta, y donde lo habia codeado ese compu se daño pero gracias a Dios mi papa nos regalo otro q si sirve jeje

este es el link de la imagen ampliada

Bueno esto es solo un poco de historia, para mostrar q siemrpe debemos avanzar en el camino

modificadores de acceso by clipto

MODIFICADORES DE ACCESO By Clipto

Modificadores de Acceso de una Clase (Encapsulamiento):
Para empezar hare referencia a algo del curso 5 estrellas de Microsoft no del mismo modo pero trata de reflejar la misma idea, y es lo siguiente: En el mundo de programación y de acuerdo a las actuales tendencias, imaginemos que vamos manejando un carro “personalmente quisiera que fuere verdad pero en fin…”, ahora sabemos que este posee motor, pistones y un gran número de elementos que son los encargados de que este funcione, todos estos aparatos como les venía diciendo dado a las tendencias actuales estos son simplemente objetos, y el compartimiento que contiene estos objetos es una clase “Compartimiento mencionado: donde va el motor y esas cosas, no lo menciono porque no sé cómo se llama” , en fin, para nosotros saber manejar no necesitamos saber cómo funciona esa clase, ósea cual es su comportamiento, solo necesitamos algo que nos haga referencia a esa clase “esa parte del carro”, y que la podamos hacer funcionar, creo que se puede entender la idea del ejemplo, ahora lo explicare un de una forma más compleja. Entre los pilares de la programación orientada a objetos tenemos, Abstracción, Relaciones, Herencia, & el tema a tratar Encapsulamiento, El cual básicamente nos permite abstraer el código de una clase del resto de mundo “de las demás clases”, ¿se preguntaran aja y porque es un pilar de la POO o porque es tan importante? si recordamos el ejemplo del carro el encapsulamiento es el que nos permite que podamos usar una clase sin tener que saber que ocurre dentro de esta o como funciona, lo que en el ejemplo nos permitiría manejar el carro sin ser mecánicos, ahora los modificadores de acceso son los que nos permiten saber qué acceso podemos tener a una clase X, ya definido esto podemos pasar a decir cuáles son los modificadores de acceso existentes que puede tener una clase:
1. Public (publico): como su nombre lo indica, con este modificador estaríamos indicando una clase de tipo publica es decir que desde cualquier otra clase o lo que sea podemos tener acceso a los miembros públicos de esta clase.
2. Protected (protegido): MSDN lo considera un tipo de acceso derivado, pero ¿por qué derivado? Pues miren al ser un tipo de acceso protected solo esa clase puede tener acceso al elemento protegido, y, lo derivado porque también una clase derivada de esta “herencia” puede tener acceso a estos miembros protegidos.
3. Prívate (privado): esto realmente hace referencia a su nombre, porque solo la clase puede ver sus propios elementos privados, es decir solo esta tiene acceso a tales elementos.
4. Paquete: pues no sabría darles una definición distinta a la que leí, y es que es una clase que solo puede ser accedida desde el mismo árbol de paquete, es decir una biblioteca. dll, o un .exe.


esta es una parte del documento, les dejo la otra como documento en version pdf, y disculpne la plantilla del pdf es de un foro q visito para el cual hice el documento anterior jejej :)

Descargar el documento desde: http://www.4shared.com/file/250880912/961424bc/MODIFICADORES_DE_ACCESO.html


introduccion a .NET by Clipto

El siguiente texto es para explicar que es .net, cabe aclarar esto porque pueden haber personas que se hayan confundido y piensan que es una introducción a la programación en .net.  ¿Por qué ha de haber un texto como este?, es sencillo nos mostrara con más claridad en que es lo que estamos trabajando, sabremos que lo componen  como y cuál es la función de cada componente lo cual nos dará mas destreza a la hora de trabajar con .Net
DEFINICION DE  .NET: hay personas que suelen decir que .net es un lenguaje de programación incluso yo lo creía así, entonces como primera parte lo que haremos será quitarnos todas estas ideas y para ello empezaremos diciendo que no es .NET 
Definición formal, complementada con la información dada por Microsoft:
1.   .Net no es un sistema operativo: bueno creo que ya esa sería la última opción que se nos ocurriría porque bien conocemos lo que es un S.O  y los podemos identificar además sabemos que .net no cumple ninguna de estas cualidades
2.   .Net no es un producto que se pueda comprar como tal:  debido a la definición que daremos mas adelante nos daremos cuenta que este en realidad no es un producto como tal, sino que es un conjunto de aplicaciones y servicios por lo que podemos deducir que el concepto de .net va mas allá de un simple producto
3.   .NET no es un entorno de de desarrollo: desde aquí no podemos ir haciendo una idea breve de lo que es .NET, miren .NET no es un entorno de desarrollo, pero .NET incluye distintos entornos de Desarrollo llamados también IDES, tampoco es decir entonces que .NET es un conjunto de entorno de desarrollo jajá, porque aun el concepto de .net va mas allá.
4.   .NET no es un lenguaje de programación: al igual que hablamos de entornos de desarrollo contenidos en .net podemos enseguida deducir porque este no es un lenguaje de programación, sino que este contiene distintos lenguajes de programación que nos permitirán desarrollar aplicaciones según la necesidad, aclarando nuevamente que el concepto de .NET va mas allá.
Creo que hasta el momento nos hemos hecho una definición más clara al hablar de lo que no es .NET y hemos borrado todas aquellas ideas que teníamos sobre lo que pensábamos que era .NET, desde este momento mostraremos lo que en realidad es .NET 
¿QUE ES .NET?: .NET es una plataforma de desarrollo estrictamente orientada a objetos compuesta por distintos elementos que por la abreviación que pretende tener este articulo no serán definidos solamente nombrados, buscando con esto tener una IDEA BASICA pero clara de lo que es .NET
1.   Entorno de ejecución (Runtime).
2.   Bibliotecas de funcionalidad (Class Library).
3.   Lenguajes de Programación.
4.   Compiladores.
5.   Herramientas de desarrollo (IDE & Tools).
6.   Guías de arquitectura.
y lo más importante es que

7.   .NET es La evolución de la plataforma COM: Al ser esto tan importante para la definición de lo que es  .NET esta será definida atreves de un cuadro comparativo de lo que era la COM y de lo que ahora es .NET

Pues pensaba dejarlo hasta aquí pero debido a la mucha info que falta para  hacernos una idea clara no solo de lo que es .net sino de cómo trabaja decidí extender un poco el artículo, que aunque sé que es un poco largo le recomiendo a los lectores seguir el curso de este articulo que bien pagara el tiempo que hemos  gastado leyendo el tema.

¿QUE ES EL CLR?:  la única definición formal que se debe tener en cuenta es que el CLR es el que nos determina la arquitectura de ejecución de cualquier programa desarrollado en cualquiera de los IDES soportados por .NET o en pocas palabra como dice Microsoft el CLR  es  el motor de ejecución (Runtime o maquina virtual) de .NET,  pero se preguntaran aja y cómo funciona el tal CLR,  pues miren el CLR cumple ciertas características que serán resumidas pero antes de eso hablemos de su arquitectura de ejecución, como ya definimos .NET es la evolución de la COM la cual funciona con Windows pero en .NET las aplicaciones corren por encima del sistema operativo de es que se encarga el CLR esto trae muchas ventajas ya que Windows no controla el siclo de vida de estas aplicaciones además ningún error  producido en estas aplicaciones debe afectar a las otras ya que todo el soporte lo da el CLR, aplicaciones ahora un detalle también importante es saber que los componentes de software ejecutados de esta manera (por medio  del CLR) se llaman componentes manejados. Ahora sin más rodeo vamos directo al grano, la arquitectura de ejecución de las aplicaciones es la siguiente:

Componentes Manejados >>>Servicios  y Apis  del entorno de ejecución intermedio (CLR)>>>>Servicios y Apis del S.O>>>Hardware.

Seguro muchos dirán que por el CLR, nuestro equipo no soportara tanto gasto de memoria pues les informo que no es así, entornos como .NET hacen parte de la actualidad y lo más usado en los próximos años y se darán cuenta  las características que posee el CLR nos muestran que es al contrario y que no hay tanto gasto de memoria sino mas bien, ejecución controlada observen.

Características del CLR:
1.   Compilación Just-In-Time (JIT): nuestra primera característica nos mostrara que en realidad no hay tanto gasto de memoria ya que just-in-time significa justo a tiempo queriendo decir con esto que el CLR se encarga de compilar las aplicación de la plataforma .Net en el momento que se necesite evitando con esto el gasto de RAM innecesario.
2.   Garbaje  Collector: este sirve para la gestión automática de memoria, como muchos ya sabe esto quiere decir recolector de basura, y para los que no saben los recolectores de basura se encargan de liberar periódicamente la memoria de procesos que ya no están siendo usados por ninguna aplicación. Ahora ven lo interesante de la plataforma .NET nos llena de muchas ventajas a nuestro favor ya que el usuario no tendrá que estar pidiendo liberación de memoria por miedo de que sus procesos llenen toda la RAM y se bloquee el equipo.
3.   Gestión de errores: ya que los aplicaciones desarrolladas en la plataforma .NET son componentes manejados por el CLR (Runtime) lo errores producidos en tiempo de ejecución no serán  atrapados por el sistema operativo  causando problemas con otras aplicación sino que estos errores serán atrapados por el CLR.
4.   Gestión de Seguridad: permite establecer reglas de seguridad con las que serán ejecutadas las aplicaciones de .Net en una determinada maquina.
Para terminar la introducción al CLR cabe destacar que el proceso de compilación del CLR produce código MSIL, el MSIL es un conjunto de instrucciones que pueden ser convertidas a código nativo muy eficientemente.

Bueno para no alargar el tema dejemos hasta aquí, para algunos ha sido bueno hacerse una idea de que es y cómo trabaja en parte .NET, pero para los que quieran mas información resumida como la anterior pueden pedir que se continúe la introducción y eso hare o hará cualquier user del foro, espero les haya gustado el articulo y por favor dejar sus comentarios con el cual podremos sentir que hicimos bien o que debemos profundizar o cambiar algunos aspectos del articulo.


codigo en c++q implemta el gauus yordan

lo hice bajo el interprete netbenas no tiene todas las validaciones necesarias pero trata de cumplir su prometido


// 
// File:   newmain.cc
// Author: felix
//
// Created on 13 de julio de 2008, 11:14 PM
//

#include
#include

double a1,b1,c1,r1,a2,b2,c2,r2,a3,b3,c3,r3;


void calcular () {
////////obtener la ecuasion
    cout<<"escribir la ecuasion 1 \n";
cin>>a1; cin>>b1; cin>>c1;cin>>r1;
cout<<"escribir la ecuasion 2 \n";
cin>>a2; cin>>b2; cin>>c2;cin>>r2;
cout<<"escribir la ecuasion 3 \n";
cin>>a3; cin>>b3; cin>>c3;cin>>r3;    


////////resolver la ecuasion

///uno en la primera fila
b1=b1/a1;
c1=c1/a1;
r1=r1/a1;
a1=a1/a1;

//primer cero de la columna 1
b2=((a2 * -1) * b1) + b2;
c2=((a2 * -1) * c1) + c2;
r2=((a2 * -1) * r1) + r2;
a2=0;

///segundo cero columna 1
b3=((a3 * -1) * b1) + b3;
c3=((a3 * -1) * c1) + c3;
r3=((a3 * -1) * r1) + r3;
a3=0;

//uno en la fila 2
c2=c2/b2;
r2=r2/b2;
b2=b2/b2;

///primer cero en la columna 2
c1=((b1 * -1) * c2) + c1;
r1=((b1 * -1) * r2) + r1;
b1=0;

///segundo cero en la columna 2
c3=((b3 * -1) * c2) + c3;
r3=((b3 * -1) * r2) + r3;
b3=0;

///uno en la fila #3
r3=r3/c3;
c3=c3/c3;

////primer cero en la columna 3
r1=((c1 * -1) * r3) + r1;
c1=0;

//segundo cero en la columna 3
r2=((c2 * -1) * r3) + r2;
c2=0;
//////////

cout<<"\n \n \n";
cout<<"r1 = "<
cout<<"\n r2 = "<
cout<<"\n r3 = "<

}




int ayuda (){
 int opc;   

 do{
     cout<<" si es la primera ves q usas esta aplicasion te convendria acceder a la ayuda, siendo de otra manera puedes empesar a trabajar sin ningun problema  \n \n";
    cout<<"ayuda (1)     ";
    cout<<"calcular(2)   ";
    cout<<"salir (3)   \n    ";
   cout<<"opcion  = "; cin>>opc;
 }while(opc>3 || opc<1);
 
 if  (opc==1){
                    
                     cout<<"este programa toma las costantes de la ecuasion de  3*3 y trata de deducir el valor de las variables, asi, si la ecausion es del tipo  \n";
                     cout<<"5a + 6b - 7c = 8  \n";
                    cout<<"1a - 2b + 3c= 4   \n ";
                    cout<<"-7a + 8b -9c =10 \n";
                    cout<<"5 seria a1, 1 seria a2 y -7 seria a3 asi sucesivamente al igual q 8 seria r1 hasta 10 que seria r3 ";
                    cout<<"ademas teniendo en cuenta que cuando pide la ecausion 1 lo que digitaremso seran las constantes de a1, b1, c1 y r1";                                         
                    }
 
  if  (opc==3){
                         return (EXIT_SUCCESS); 
                         
                      }
 
 if (opc==2){
                      calcular();
     
                    }
   
}

int main(int argc, char** argv) {
    
    
    cout<<"sistema gauss-jordan \n \n \n";
    
    ayuda();
    
    
     return (EXIT_SUCCESS);
}

matriz a vector incluye metodo burbuja

para los que no saben o se les ha olvidado les recuerdo que el metodo burbuja consiste en la organizacion de datos ascendente o descendentemente, cuando lo ahcemos ascendentemente se llama conejos y cuando lo hacemos descendentemente se llama tortuga.

el ejercisio es basico:

/////////////
cargar una matriz de n*n con numeros, despues de cargada pasarla toda a un vector, dentro del vector ordenarla en forma ascendente y luego regresar los valores ordenados a la matriz.

Nota: ahora que coloque las comas pueden observar qeu lo anterior a cada coma en un problema lo que nos lleva a implemntar el concepto de divide y venceras
/////////////EXPLICASION
tenemos una matriz de 4 *4 es esta hay 16 posciones cierto, de ahi deducimos que el vector debe ser de 16 posiciones ya teniendo implementado eso solo es oranizar enviar y recibir.

Inicio
pos,i,j,n,a,cambio=0
leer n
defina f(n,n)
tamv=n*n
dfina v(tamv)
i=1
mq i<=n haga
j=1
mq j<=n haga
//aqui lo boy a cargar
leer f(i,j)
j=j+1
///aqui lo puedo ir enviando al vector
pos=pos+1
v(pos)=f(i,j)
fin mq
i=i+1
fin mq

//////organizo el vector
i=1
mq i<=tamv haga
a=i+1
mq a<=tamv haga
   //lo que boy a comparar aqui es que si l aposicion posterior es mayor que la anterios hace un       
   //cambio de posiciones dejando de primero el valor menor y de segundo el valor mayor
 si v(i)>v(a) entonces
    cambio=v(i)
     v(i)=v(a)
    v(a)=cambio
    fin si
    a=a+1
fin mq
i=i+1
fin mq


///ahor alo paso del vecto a la matriz
pos=0,i=1
mq i<=n haga
j=1
mq j<=n haga
pos=pos+1
f(i,j)=v(pos)
j=j+1
fin mq
i=i+1
fin mq

////////ya estan los datos dentyro de la matriz (esta cargada ahora imprimamola)
i=1
mq i<=n haga
j=1
mq j<=n haga
imprima f(i,j)
j=j+1
fin mq
i=i+1
fin mq

FIN

algorimto de gauss-yordan by clipto

este es muy facil de hacer solo consiste en saber hacer el procedimiento.


lo puse en un pdf aqui esta el link de descarga
http://rapidshare.com/files/151322852/gaussbyclipto.pdf.html
la contraseña es: "colombia">>>sin las comillas

bueno me disen que tal! 

numeros primos y no primos

defina los numeros entre 1 y 100 colocando al frente primo o no primo

primero que todo are la explicasion sobre lo que es mod, yo no sabia que significaba ni como funcionaba asi que si alguien tiene el mismo problema lo explicare

consiste en hacer diviciones exactas donde el resultado es (1 u 0) asi:

4 |_2_ 5 |_2_
(0) 2 (1) 2

como pueden notar los primos se caracterizan porque su divicion es exacta donde el resultado es 0 y los no primos porque su resultado es 1 , la forma de hacer esta operacion en algoritmo es

a= 5 mod 2
despues de haber espesificado todo esto escribire el algoritmo

INICIO
n,i,k,j=0

n=1

mq n<=100 haga
k=0
i=2
mq i<=n/2 and k=0 haga
j=n mod i
si j=0 entonces
k=1
fin si
i=i+1
fin mq
si k=0 entonces
imprima n, "primo"
sino
imprima n, "no primo"
fin si
n=n+1
fin mq
FIN

encontrar X

pues este algoritmo consiste en encontrar el numero que se encuentre de esta forma a
un ejemplo 456, si nos basamos en la sigueinte forma a

645 X sigue siendo 5,

//////////////////////////////////////////////////////////////////////
OPCIONES PLANTEADAS

5,(6),7 // (6),5,7 // 7,5,(6) >>>>estas son las posibles organizaciones de los numero
7,(6),5 // (6),7,5 // 5,7,(6) para poder hallar X,

algoritmo: imprimir el valor de x (teniendo en cuenta que los numeros digitados son diferentes entre si)

INICIO

a,b,c =0

leer a,b,c

si (b>a) and (c>b) and (c>a) or (a>b) and (b>c) and (a>c) entonces

imprima "el valor de X es: ", b

sino

si (a>b) and (c>a) and (c>b) or (a>c) and (b>a) and (b>c) entonces
imprima "el valor de X es: ", a

sino
si ( a>b) and (cb) or (ac) and (b>a) entonces
imprima "el valor de X es: ", c
fin si
fin si
fin si


FIN

numero capicua

como ustedes saben los numeros capicuas son aquellos que se leen de igual manera de izquierda a derecha como de derecha a izquierda algunso ejmeplos son:

111 (por los dos lados es siempre 111)
101 (por los dos lados es siempre 101)
202
303
333
77
10001
11111
444444
555555555
11 (por los dos lados es siempre 11)

en fin espero hallan entendido la idea, bueno ahora aqui presentaremos un seudocodigo de este numero haremos el ejemplo como los numeros de tres sifras.

///////////////////////////////////////SEUDOCODIGO
INICIO

d=0
b=1
MQ (b<=9) haga
c=0
MQ(c<=9) haga
d= b* 100+c*10+b
imprima d, "es un numero capicua de tres sifras"
c=c+1
fin MQ
b=b+1
fin MQ

FIN
//////////////////////////////////////////////////////////////////////////////

ahora una brebe explicasion
MQ=(mientras que)

los numeros capicuas de tres sifras se hallan de la sigueinte forma
1*100 + 0 *10 +1 = 101
1*100 + 2 *10 + 1 =121
.
.
.
9*100 + 9 *10 +9=999


bueno creo que quedo claro...Xd y sino pueden reguntar y resolver sus dudas.

PD: mi profesor es fidel lopez y solo he visto como desarrollar los algoritmos por seudocodigo de la forma que acaban de ver, ahora si alguien quiere puede plantear el problema con diagrama de flujo 

factorial con sumas

pues consiste en un algoritmo q aga el factrial de un numero n, pero en ves de factroail use puras sumas. pues miren yo he usado dos siclos for y un contador

int numero = 1;
            int b,n;
            n = Convert.ToInt16(Console.ReadLine());
            for (int i=1;i<=n;i++)
            {

                b = 0;
                for (int a = 1; a <= i; a++)
                {
                    b += numero;
                }
                numero = b;
                
            }

            Console.WriteLine("\n"+ "aplicando el factorial sumando el resultado es: "+ numero);


bueno el codigo esta en C# pero supongo q es bastante entendible

Multiplicasion algebraica de matrices

en fin es sencilla despeus de analisar que es lo que debe hacer, lo poste en uns foros como reto peor nunca lo contestaron, bueno este lo probe fue en uns egundo esque me pase toda la noche haciendo varios ejercisios y tenia parcial en la mañanita ya se imagina lo cansao que estaba asi que ustedes veanlo y saquen sus propias conclusiones

aqui una imajen de como se debe multiplicar para lo que recien empiezan recuerden qeu la algebra lineal del 1er semestre nos ayuda mucho

si aun quedas con duda tienes dos opcuiones preguntarnos proque estamos dispuestos a responder tus dudad o investigar por ti mismo en libros o en internet como les sea mas facil. aqui les faciltiamos un link
http://es.wikipedia.org/wiki/Producto_de_matrices

///ahora si el ejercisio
esa hoja me la arrancaron del cuaderno pero creo que dise asi
leer una matriz de (n*m) una de (m*p) y multiplicarlas mostrando el resultado en una matriz de (n*p)

Inicio
mq (n<=1) and (m<=1) and (p<=1) haga
Leer n,m,p
fin mq

Defina a(n,m), b(m,p), c(n,p)

///cargar la 1era matriz
mq i<=n haga
j=1
mq  j<=m haga
leer a(i,j)
j=j+1
fin mq
i=i+1
fin mq

///cargar la segunda matriz
i=1

mq i<=m haga
j=1
mq j<=p haga
leer b(i,j)
j=j+1
fin mq
i=i+1
fin mq

///hacer la multiplciasion
i=1
mq i<=n haga
j=1
       mq j<=p haga
       mult=0, h=1
            mq h<=m haga
            a(i,h)*b(h,j)+ mult =mult
            h=h+1
            fin mq
      c(i,j)=mult
      j=j+1
      fin mq
i=i+1
fin mq


FIN


listo a provarlo muchachos(as) y me cuentan

matriz simetrica

una matriz simetrica es aquella en la que la matriz transpuesta es igual a la original.

esto sumple dos reglas basicas miren:
para que sea simetrica debe ser una matriz de igual numero de filas e igual numero de columnas porque se comparan las posiciones y en una habra mayor numero de filas o numero de columnas que en la otra
y la otra la mas logica no se compara como tranpeusta sino que se compara normalmente porque si no no tendria caso observen la posicion a(2,1)= 5 y a(1,2)= 5 simpre sera esa comparacion y si es asi siempre habra la igauldad debe comparar cnormalmente A(2.1)= B(2.1) por decirlo asi. claro estas fueron las conclusiones que yo saque.

///ejercisio leer una matriz de n *m y comprobar si esta es simetrica


Inicio
sim,n,m,i,j,z=0;
Leer n,m
defina f(n,m), defina a(n,m)

si n<>m entonces
imprima "la matriz no es simetrica"       //*comrpuebo que sean del mismo tamaño, primer caso que 
 --Fin--                                             les msotre, si no lo son simple imprimo no son simetrica y 
si no                                             salgo o podria hacer un siclo hasta que me digitan
                                                       n^m iguales pero eso no es lo que me pden jajaj.

imprima "se cargara la matriz"
i=1
mq i<=n haga
j=1
mq j<=m haga

leer z
f(i,j)=z
a(i,j)=z
j=j+1
fin mq
i=i+1
fin mq
//ahora verificio la simetria

i=1
mq i<=n haga
j=1
mq j<=n haga                                 //no es un error colocar n recuerden que si esta en esta 
si f(i,j)<>a(i,j) entonces                   // parte es porque comprobo que n=m
sim=1
fin si
j=j+1
fin mq
i=i+1
fin mq

si (sim=1) entonces
imprima "la matriz no es simetrica"
sino
imprima "la matriz es simetrica"
fin si
fin si

FIN


si encuntran un error lo postean no lo he provado pero supongo que esta bien

sencillo operaciones entre matrices

bueno esto es uno de los ejemplos d eintroduccion con los que abarcamos el team el ejerciso plantea lo sigueinte:

///ejercisio
cargar dos matrices de N*N en una tercera la suma, y en una cuarta la multiplicasion, en una quinta la resta en una sexta la divicion imprima la matrices con su respectivo signo
//////////

en fin solo boy a colocar la operacion de la uma porque como saben las otras serian lo mismo solo seria cambairle el signo

Inicio
j,i,n=0
Leer n 
defina a(n,n), b(n,n), c(n,n) 

i=1
mq i<= n haga
j=1
mq j<=n haga
c(i,j)= a(i,j) + b(i,j)
imprima a(i,j) " + " b(i,j) " = " c(i,j)
 
j=j+1
fin mq
i=i+1
fin mq

Fin

matriz trampuesta

pues miren lo que boy hacer es cargar una matriz tranpuesta solo un pequeño ejemplo y se daran cuenta de como adaptarlo a cualquier situacio como leer una matriz e imprimir la tranpuesta etc



INICIO

n,m,z,i,j=0

leer n,m
defina f(n,m)
i=1
mq i<=n haga
j=1
mq j<=m haga
z=z+1
f(j,i)=z
j=j+1
fin mq
i=i+1
fin mq

FIN


Negrita

**********prueba a de escritorio
i j z
-------
1 1 1
2 2
3 3
------- 
2 1 4
2 5
3 6
-------
3 1 7
2 8
3 9


vista de la matriz tranpuesta


como ven los numeros son positivos aumentan de uno en uno pero su organizacion es tranpuesta...XD

matriz de M*N que genera segunda matriz


bueno pues el el titulo del mensaje no me supe explicar bien asi que aqui les coloco la informacion que necesitan, el ejercisio consiste en cargar una matriz de N*M con numeros, y en una segunda matriz colocar el mensaje primo o no primo segun sea el caso, y pues segun lo que yo entendi deberia ser algo as como se muestra en la imagen
ahora si empesemos con el codigo pero recuerden pruebenlo aber si funciona antes de que caigamos todos en el error, y si tienen dudas pregunten, aqui estamso encantados de responderles
INICIO

n,m,i,j,z,a,h,cont =0

leer n,m

defina f(n,m), defina A(n,m)


mq i<= n haga
j=1
mq j<=m haga
leer z
f(i,j)=z
j=j+1
fin mq
i=i+1
fin mq

///ahora ago el proceso de verificasion

mq i<=n haga
j=1
mq j<=m haga
z=f(i,j)
a=1, cont=0
h= z mod a

si h=0 entonces
cont=cont +1
fin si
a=a+1
fin mq

si cont<=2 haga
A(i,j)="primo"
sino
A(i,j)= "no primo"
fin si
j=j+1

fin mq
i=i+1
fin mq

FIN

triangular superior de una matriz


el ejercisio es el siguiente:

en una matriz de N*N en la triangular superior colocar los numeros positivos en el resto colocar ceros

NOTA: ten go una gripa mas peye asi que solo colocare el algorimto, si tiene dudas pidan explicasion y si creen que esta malo argumenten y den solucion es mejor que me corrijan antes del parcial  ;D

INICIO

i,j=1
z,h,k=0

Leer n
defina A(n,n)

mq i<= n haga
j=1, h=1

mq j<=n haga
si h<=k entonces
mq h<=k  haga
A(i,j)=0
h=h+1, j=j+1
fin mq
sino
z=z+1
A(i,j)=z
j=j+1
fin si

fin mq
i=i+1
k=k+1
fin mq
imprima "algoritmo creado by clipto"

FIN


***************prueba de escritorio


I j h k z n
********************************
1 1 1 0 0 4
                                   1
2 2
3 3
4 4
----------------------------------------------
2 1 1 1 4 4
2 (2 falla 1) 5
3 6
4 7
---------------------------------------------   
3 1 1 2 7 4
2 2 2
3        (3 falla  2) 8
4 9
--------------------------------------------- 
4 1 1 3 9 4
2 2 3
3 3 3
4 (3 falla 4) 10
*********************************


lo siguiente es una iamgen de la triangular superior espero que se peuda apreciar bien

100 numeros

el algoritmo consiste en leer 100 numeros y decir cual es el mayor, hasta el moemnto solo lo he echo mentalmente primera ves que lo boy a escribir pero si tengo un error no duden en corregirme

Explicasio: si tubieramos tres numeros a b c deberiamso validar cual de estos es el mayor, y si es algo tedisos validad tres numeros imaginense validar 100 o un numero n que no conosen, mi punto consisitio enque deberia haber una forma de no validar tanto porque hacer validacioens de 100numeros me tardaria mucho y serian demasiadas hojas y no seria la forma ya que mi profesor siempre nos dise que pasemos al tablero hacer el algoritmo y el tablero seria muy poco espacio.....espero hallan entendido mi idea

entonces lo que hise fue leer un numero inicialmente y validarlo con todos los que lea, todos estos dentro de un siclo asi
************************************************************
INICIO

mayor=0
n=1
mq n<=100 haga
leer numero

si (numero>mayor) entonces
mayor=numero
fin si
n=n+1
fin mq

imprima "el numero mayor es: ", mayor

FIN
*********************************************************

PRUEBA DE ESCRITORIO
******************
|mayor numero n|
|*******************
|0 5 1|
|5 4 2|
|5 0 3|
|5 -5 4|
|5 8 5|
|8 25 6| 
|25 2 7|
|25 . .|
******************


como ven si el numero que se lee es mayor a mi numero almacenado (mayor) este toma el valor del numero mayor, espero les halla gustado y sobre todo que si funcione jeje...Xd

fibonacci

la serie de fibonacci esta dada por: (0,1,1,2,3,5,8,13,21.......N)

como pueden ver: 0+1=1, 1+1=2, 2+1=3, 2+3=5, 3+5=8, 5+8=13 y asi sucesivamente

alo que se quiere llegar esq el fibonacci se obtien de suma del numero anterior con el numero actual

////////////////////

INICIO

Nante=-1, Nactual=1
z=1

MQ z<=10 haga
c=Nante+Nactual
Nante=Nactual
Nactual=c
imprima c

z=z+1

fin MQ


FIN