viernes, 22 de octubre de 2010

Programaciòn II 22/10/2010 Cadenas

En la clases anteriores iniciamos el el manejo de caracteres y cadenas con vectores. Hablamos, acerca de como el mismo lenguaje a travez de una librería --, aporta una serie de funciones para tratar con cadenas.
básicamente, si podemos insertar, recuperar, y comparar una cadena, podemos plantear una solución a un problema. Para un caso practico, surge la necesidad de desarrollar nuestras propias funciones para el manejo de cadena, por tal motivo, me di a la tarea de desarrollar las siguientes funciones.




/*
DESCRIPCION :FUNCION QUE CALCULA LA LONGITUD DE UNA CADENA CUALQUIERA
PARAMETROS :CHAR *CADENA, *CADENA ES LA CADENA A COMPARAR.
RETURN :RETORNA UN TIPO DE DATO ENTERO, CON EL VALOR DE LA LONGITUD DE LA CADENA
VERSION : 1.0.0
DOCUMENTO A :--
*/
int longitudCadena(char *cadena){
printf("--Cadena2 es: %s:\n", cadena);
int i=0,cont=0;

while( cadena[i] != '\0'){
printf( "\n--cadena[%d] es %c ",i,cadena[i]);
if(cadena[i] != '\0')//PUEDE COMPARAR LO QUE QUIERAS, EJE, CUANTAS A HAY.
cont++; //CUENTA CUANTOS CARACTERES SON DIFERENTES AL TOKEN DE FIN DE CADENA
i++;
}//END WQ
return cont;

}//END funcion


/*
DESCRIPCION :FUNCIàN QUE COMPARA SI DOS CADENAS SON IGUALES O NO.
PARAMETROS :CHAR *CADENA1, CHAR CADENA2.
RETURN :RETORNA 1, EN CASO DE QUE LA CADENA SEA IGUAL, 0 EN ASO CONTRARIO.
VERSION :1.0.0
DOCUMENTO A :--
*/
int compararCadena(char *cadena1, char *cadena2){
printf("\n\n\n------------------------------------");
printf("\nCOMPARAR CADENAS\n");
printf("--Cadena1 %s Vs %s Cadena2\n",cadena1,cadena2);
int i, cont=0, longitud1=0,longitud2=0, salida;

longitud1=longitudCadena(cadena1);
longitud2=longitudCadena(cadena2);

if(longitud1!=longitud2)
printf("\n---Las cadenas son diferentes, debido a que las longitudes de las cadenas son diferentes.");
else{

for(i=0;i= 0 && pos <= longitud ) return (char)cadena[pos]; else return'*'; }//END FUNCION /* DESCRIPCION :ESTE METODO EXTRAE UNA SUBCADENA DE UNA CADENA DADA. PARAMETROS :INT LI, INT LS, CHAR *CADENA; LI ES EL LIMITE INFERIOR A PARTIR DEL CUAL SE EXTRAERµ LA SUBCADENA, LS, ES EL LIMITE SUPERIOR QUE DETERMINA HASTA DONDE SE EXTRAERµ LA CADENA. RETURN :RETORNA UNA CADENA CHAR *. VERSION :1.0.0 DOCUMENTO :-- */ char *extraerSubcadena(int li, int ls, char *cadena){ char *cadcopia; int i, longitud, indice=0; longitud = longitudCadena(cadena); if( li >= 0 && li <= longitud && ls >=0 && ls <=longitud && li <=ls ){ for(i=li; i<=ls; i++){ cadcopia[indice] = cadena[i]; indice++; }//END FOR //return cadcopia; printf("*******entro al if: cad es:: %s",cadcopia); }else cadcopia[0]='*'; return cadcopia; }//END FUNCION /* DESCRIPCION :ESTE METODO CONCATENA DOS CADENAS CADENA1 Y CADENA2 EN CADENA1 PARAMETROS :CHAR *CADENA1, CHAR *CADENA, SON LAS DOS CADENAS A CONCATENAR. RETURN :RETORNA UNA CADENA DE CHAR. VERSION :1.0.0 DOCUMENTO :-- */ char *concatenarCadena(char *cadena1, char *cadena2){ char *cadcopia; int i,indice=0,longitud1,longitud2,sw=0,limitesuperior; //cadcopia=cadena1; longitud1=longitudCadena(cadena1); longitud2=longitudCadena(cadena2); limitesuperior=longitud1; for( i=0; i <= ( limitesuperior ) ; i++){ if(i==longitud1 && sw ==0 ){sw=1; i=0;limitesuperior=longitud2;} if(i<=longitud1 && sw==0 ) cadcopia[indice]= cadena1[i]; if(i<=longitud2 && sw == 1 ) cadcopia[indice] = cadena2[i]; indice++; } //printf("-->>Copia de cadena 1 es: %s", cadcopia );
return cadcopia;
}//END FUNCION



Que opinan de este código?.  Cada quien puede elaborar su propio código, como lo he dicho antes, el programar depende en cierta forma de la creatividad de cada quien, asi que cualquier otra propuesta de como elaborar estas funciones es completamente valida -siempre y cuando funcione-.

les dejo este código para que lo completen,


#include
#include
#include

concatenar(char cad1[], char cad2[]);

int longitudCadena(char *cadena2);
int compararCadena(char *cadena1, char *cadena2);
char extraerCaracter(int pos, char *cadena);
char* extraerSubcadena(int li, int ls, char *cadena);
char* concatenarCadena(char *cadena1, char *cadena2);
char* invertirCadena(char *cadena);

/*
DESCRIPCION :FUNCION QUE CALCULA LA LONGITUD DE UNA CADENA CUALQUIERA
PARAMETROS :CHAR *CADENA, *CADENA ES LA CADENA A COMPARAR.
RETURN :RETORNA UN TIPO DE DATO ENTERO, CON EL VALOR DE LA LONGITUD DE LA CADENA
VERSION : 1.0.0
DOCUMENTO A :--
*/
int longitudCadena(char *cadena){
printf("--Cadena2 es: %s:\n", cadena);
int i=0,cont=0;

while( cadena[i] != '\0'){
printf( "\n--cadena[%d] es %c ",i,cadena[i]);
if(cadena[i] != '\0')//PUEDE COMPARAR LO QUE QUIERAS, EJE, CUANTAS A HAY.
cont++; //CUENTA CUANTOS CARACTERES SON DIFERENTES AL TOKEN DE FIN DE CADENA
i++;
}//END WQ
return cont;

}//END funcion


/*
DESCRIPCION :FUNCIàN QUE COMPARA SI DOS CADENAS SON IGUALES O NO.
PARAMETROS :CHAR *CADENA1, CHAR CADENA2.
RETURN :RETORNA 1, EN CASO DE QUE LA CADENA SEA IGUAL, 0 EN ASO CONTRARIO.
VERSION :1.0.0
DOCUMENTO A :--
*/
int compararCadena(char *cadena1, char *cadena2){
printf("\n\n\n------------------------------------");
printf("\nCOMPARAR CADENAS\n");
printf("--Cadena1 %s Vs %s Cadena2\n",cadena1,cadena2);
int i, cont=0, longitud1=0,longitud2=0, salida;

longitud1=longitudCadena(cadena1);
longitud2=longitudCadena(cadena2);

if(longitud1!=longitud2)
printf("\n---Las cadenas son diferentes, debido a que las longitudes de las cadenas son diferentes.");
else{

for(i=0;i= 0 && pos <= longitud ) return (char)cadena[pos]; else return'*'; }//END FUNCION /* DESCRIPCION :ESTE METODO EXTRAE UNA SUBCADENA DE UNA CADENA DADA. PARAMETROS :INT LI, INT LS, CHAR *CADENA; LI ES EL LIMITE INFERIOR A PARTIR DEL CUAL SE EXTRAERµ LA SUBCADENA, LS, ES EL LIMITE SUPERIOR QUE DETERMINA HASTA DONDE SE EXTRAERµ LA CADENA. RETURN :RETORNA UNA CADENA CHAR *. VERSION :1.0.0 DOCUMENTO :-- */ char *extraerSubcadena(int li, int ls, char *cadena){ char *cadcopia; int i, longitud, indice=0; longitud = longitudCadena(cadena); if( li >= 0 && li <= longitud && ls >=0 && ls <=longitud && li <=ls ){ for(i=li; i<=ls; i++){ cadcopia[indice] = cadena[i]; indice++; }//END FOR //return cadcopia; printf("*******entro al if: cad es:: %s",cadcopia); }else cadcopia[0]='*'; return cadcopia; }//END FUNCION /* DESCRIPCION :ESTE METODO CONCATENA DOS CADENAS CADENA1 Y CADENA2 EN CADENA1 PARAMETROS :CHAR *CADENA1, CHAR *CADENA, SON LAS DOS CADENAS A CONCATENAR. RETURN :RETORNA UNA CADENA DE CHAR. VERSION :1.0.0 DOCUMENTO :-- */ char *concatenarCadena(char *cadena1, char *cadena2){ char *cadcopia; int i,indice=0,longitud1,longitud2,sw=0,limitesuperior; //cadcopia=cadena1; longitud1=longitudCadena(cadena1); longitud2=longitudCadena(cadena2); limitesuperior=longitud1; for( i=0; i <= ( limitesuperior ) ; i++){ if(i==longitud1 && sw ==0 ){sw=1; i=0;limitesuperior=longitud2;} if(i<=longitud1 && sw==0 ) cadcopia[indice]= cadena1[i]; if(i<=longitud2 && sw == 1 ) cadcopia[indice] = cadena2[i]; indice++; } //printf("-->>Copia de cadena 1 es: %s", cadcopia );
return cadcopia;
}//END FUNCION




main(){
clrscr();
//char cadena[20];
char *cadena, *cadena1, caracter;
int i,igualdad;

printf("Ingrese la cadena: ");
gets(cadena);//Captura una cadena de caracteres por pantalla

printf("Ingrese cadena1: ");
gets(cadena1);
/*
printf( "La longitud de la cadena2 es: %d,", longitudCadena(cadena)) ;
printf("Longitud con funci¢n %d", strlen(cadena));

igualdad = compararCadena( cadena,cadena1 );
printf("\nLa igualdad es:%d",igualdad);


if( igualdad == 1 )
printf("\n--La cadena -%s-, es igual que la cadena1 -%s-",cadena,cadena1);
else
printf("\n--La cadena -%s-, no es igual que la cadena1 -%s-",cadena,cadena1);


caracter = extraerCaracter(10,cadena);
printf("\nEl caracter extraido de cadena es %c ", caracter);

*/
printf("\nLa subcadena de 1,2 de cadena es : %s ", extraerSubcadena(2,4,cadena) );
printf("\nLa concatenaci¢nde cadena1, y cadena2 es: %s", concatenarCadena(cadena, cadena1) );

getche();

return 0;

}



así como esta lo pueden compilar y ejecutar. Falta la función invertir cadena, planteenla.
En la clase de mañana, trabajaremos con estas funciones, y buscaremos plantear soluciones para algunos tipos de problemas.

Como un aviso importante, recalco que el segundo parcial será unificado y se realizará el próximo jueves en horas de la tarde, a eso de las 6.

Ademas, el día lunes haremos clase común y corriente, y recalco, que a la fecha ninguno ha ido a asesorías.


Saludos.

Parcial de Programación II 22/10/2010

El parcial de programación II se realizará el dia jueves 28/10/2010, a unque el día ya esta confirmado, a un falta la hora, la cual tentativamente será a las 6 pm.

El día lunes 24/10/210 realizaremos clase normal.

a la fecha, nadie se a acercado para asesorías.

No olviden sustentarme el trabajo el día sabado. 23/10/2010.

Informatica Basica 22/10/2010

Que es una URL,  http://es.wikipedia.org/wiki/URL#Esquemas_en_URL
http://es.wikipedia.org/wiki/URL

Que es un Hosting,
El alojamiento web (en inglés web hosting) es el servicio que provee a los usuarios de
Internet un sistema para poder almacenar información, imágenes, vídeo, o cualq uier
contenido accesible vía Web. Los Web Host son compañías que proporcionan espacio de un
servidor a sus clientes.
 
Que es un dominio,
Los dominios de Internet son los nombres que permiten identificar a empresas, personas, organizaciones... en Internet. Un dominio permite visitar páginas Web o disponer de cuentas de correo electrónico entre otras funciones. Y es que técnicamente un dominio sirve para localizar una maquina en Internet que es la que se encarga de gestionar estos servicios.

Son importantes por,
->Mejoran la Imagen de una empresa. eje
                                    http://hostinggratuito.com/usuarios/miempresa
                                    http://www.miempresa.com/
                                    info@miempresa.com
                                    empresa@hotmail.com.

Dominios genericos .com, .net, .info, .edu, .mil.
Dominios territoriales .co, .fr, .us

OJO...Consulta. Que es un dominio de tercer nivel?, y cuantos tipos de dominios existen?.

Fuente de http://www.dominios-internet.com/que-son/

Que es un correo Electronico, persona@servicio.com
http://es.wikipedia.org/wiki/Correo_electrónico
http://es.wikipedia.org/wiki/Correo_electrónico#Precauciones_recomendables

Que es un Virus,
http://es.wikipedia.org/wiki/Virus_informático

Que es un Antivirus
http://es.wikipedia.org/wiki/Antivirus

Que es un Sistema .Operativo (SO)
 http://es.wikipedia.org/wiki/Sistema_operativo
               Software -un conjunto de componentes digital, estructurado logicamente para realizar una procesamiento/calculo. Se ejecuta sobre un hardware especifico, y eventualemnte controla el mismo hardware sobre el que se ejecuta-  

Que es Ofimatica,
http://es.wikipedia.org/wiki/Ofimática


Que es GNU,
http://es.wikipedia.org/wiki/Licencia_pública_general_limitada_de_GNU

Que es Open Office,
http://es.wikipedia.org/wiki/Open_Office

Que es Office
http://es.wikipedia.org/wiki/Microsoft_Office

Lean esto...
http://www.gsi.dit.upm.es/~fsaez/intl/capitulos/4%20-Influencia%20de%20la%20tecnología%20en%20el%20entorno.pdf


Ensayo, de tres hojas.
la importancia de la tecnología en su area.

sábado, 9 de octubre de 2010

Programación II 9/10/2010

Es importante el entender adecuadamente los conceptos para su posterior aplicación, es el caso de los vectores, en donde el concepto es sencillo, pero la aplicación es amplia. En la clase del sabado pasado, iniciamos el planteamiento del ejercicio 58 de la guia actualizada de programación II -, la encuentran aca, http://felixfernandovargasvillegas.blogspot.com/2010/09/programacion-ii-21septiembre2010_21.html, o aca, http://www.4shared.com/document/nDrQuZxV/GuiaProgramacionII-02-2010.html-, en donde se requería el manejo de multiples vectores -vectores paralelos-.

El manejar multiples vectores puede ser una actividad sumamente sencilla o algo laboriosa. Para el caso de los ejercicios planteados hasta el momento -incluso el del parcial- ha sido sencillo, dado que los vectores son exactamente del mismo tamaño, lo que facilita la interpretación -es decir, la posición i de cada vector conforma los datos de la persona i, así, si quiero acceder a los datos de una persona, solo recorro todos los vectores en la posición i, por ejemplo edad[i], peso[i], codigo[i],...-, el ingreso de datos, el acceso a los datos, y desde luego el recorrido de los vectores.

Para avanzar en el tema de manejo de vectores, se planteo en la clase del lunes pasado, como elaborar un algoritmo que permita solucionar un polinomio, para lo cual nos basamos en la siguiente definicón de polinomio,

a(k)*X^n + a(k-1)*X^(n-1)+...+a(k-k)*X^(n-n)

En donde el primer termino se lee de la siguiente forma,

"a sub k, multiplicado por X a la n"

El segundo termino se lee,

"a sub k menos uno, multiplicado por  X a la n menos uno "

y en nuestra interpretación,

El k-esimo termino se lee
"a sub k menos k, multiplicado por X a la n menos n".

Analizamos varios posibles soluciones soluciones del polinomio dependiendo del las especificaciones del enunciado.

sábado, 2 de octubre de 2010

Programación II 02/10/2010

La formula para lograr la conversión de la nota sobre 2 fue la siguiente,

A--->5
X--->2

Donde A, es la nota que obtuvieron en la sustentación del parcial, y X es la variables -nota a calcular-, asi, si alguno obtenia 5 en la sustentación se calcularía de la siguiente forma,

X=A*2/5,
X=5*2/5 -> 2;

Esto quiere decir -para quienes no presentarón parcial-, que la maxima nota que sacarian es 2, cumpliendose el acuerdo al que se habia llegado.

Quienes no me sustentarón los trabajos, les califique lo que me enviarón al correo, algunos no enviarón uno de los dos trabajos que les deje.

Les dejo como trabajo, el realizar el siguiente ejercicio 58 de la guia de programación II.

Exitos,

viernes, 1 de octubre de 2010

Informatica Basica 01/10/2010

Hoy revizaremos estos enlaces,

Internet es una red. WWW es un servicio.

WWW (World Wide Web) Servicio más popular de Internet que revolucionó el crecimiento de ésta. En general, el www es la parte de la Internet que ofrece a los usuarios acceso a la documentación e información basadas en hipermedia. Esto permite que el usuario navegue a través de Internet, y se mueva de manera fácil al apuntar y hacer clic de una localidad o documento a otro. El Web elimina comandos computacionales complicados. Además, los recursos del www incluyen imágenes, gráficas, fotografías, audio y video, elementos que hacen divertida y práctica tanto la localización como el uso de la información

-http://www.uvirtual.net/portal/preguntas_frecuentes/e-learning/glosario_de_terminos_utilizados_en_e-learning.html-

Que es una IP,
http://es.wikipedia.org/wiki/Direcci%C3%B3n_IP

Que es una mascara de Red,
http://es.wikipedia.org/wiki/M%C3%A1scara_de_red

Que es una puerta de enlace,
http://es.wikipedia.org/wiki/Gateway_(inform%C3%A1tica)

Que es un navegador Web,
http://es.wikipedia.org/wiki/Navegador_web

Partes de un navegador,
http://www.ayudaenlaweb.com/navegadores/partes-de-un-navegador/

Que es un proxy,
http://es.wikipedia.org/wiki/Proxy

Que es un puerto,



Un puerto es algo así como una "ventana" en tu ordenador. La comunicación con otras máquinas en las redes se realiza a través de puertos.

Cada servicio, esto es, cada "tipo de comunicación" tiene un número de puerto predeterminado asociado para poner en contacto a las máquinas que se tienen que comunicar, aunque se puede efectuar por cualquier puerto del mismo tipo.

Hay varios tipos de puertos dependiendo de cómo es la comunicación que deseamos establecer. Los más utilizados son los puertos TCP.

La razón de que los puertos existan es para permitir que una máquina se comunique usando varios servicios a la vez teniendo una única dirección (ejemplos de servicios: web, FTP, SMTP...). De esta manera la comunicación web y FTP pueden efectuarse en puertos distintos de una misma máquina sin interferir entre ellos.

Los servidores web por ejemplo, aceptan peticiones por el puerto 80/tcp , mientras que el cliente puede remitir su petición desde un puerto aleatorio, el cual permanecerá abierto en espera de que el servidor web le envíe la respuesta a su petición.

Se dice que un puerto está en uso cuando se está estableciendo una transmisión de datos por él, y que está cerrado cuando un puerto no tiene ningún servicio asociado y por tanto no se produce comunicación a través de él.
Es decir un puerto puede estar cerrado, bloqueado, o sigiloso.
Que es una aplicaciòn WEB,
Que es un plugin,