UNIDAD 1:VISUAL C++ CGI ELEMENTOS BASICOS

TEMA 12: APLICACIONES VISUAL C++

El programa o aplicacion que recibe los datos de la forma es el siguiente:

 
#using <mscorlib.dll>
 
#using <System.dll>
 
#using <lcnet.dll>
 
using namespace System;
 
void main(){
 
//declarando variables
 
int base1, altura;
 
Double area;
 
// capturando,cargando y convirtiendo
 
//los datos de la forma a las variables
 
base1 = Int32::Parse(lcnet::getparametro("BASE1"));
 
altura = Int32::Parse(lcnet::getparametro("ALTURA"));
 
// operaciones
 
area = base1 * altura /2.0;
 
//construyendo y desplegando la pagina de salida
 
Console::WriteLine("Content-Type:text/html\n");
 
Console::WriteLine(String::Concat(S"area=",area.ToString("#.##")) );
 
}

Reglas para escribir un programa en VCPP:

Todo programa empieza #using o importanndo las librerias de clases adecuadas paar el programa, en este ejemplo se importo:

mscorlib.dll ← la libreria mas generica de vcpp, trae todas las instrucciones genericas de cpp.

System.dll ← la libreria mas generica de microsoft.net, incluye las definiciones de los tipos de datos, entrada/salida, etc

lcnet.dll ← libreria creada por su servidor lauro soto y que solo contiene una instruccion o funcion (getparametro(string))recordar que en este modelo de programacion cgi, una forma o pagina html mandara los datos al programa.cpp, es esta instruccion o propiamente dicho funcion quien realmente toma el dato de la pagina.html y lo manda a una variable en cpp.

Despues de los #using vienen los namespaces (observar que using no lleva #), un namespace es una manera de recortar dentro del programa un objeto::metodo::propiedad o valor, es decir por ejemplo:

se esta usando la instruccion console::writeline(string) para desplegar un mensaje, existen tres posibles manera de escribirse:

a) System::Console::WriteLine(string) ← es la forma mas completa de escribirla y observar que System es una clase u objeto, Console es otra clase u objeto derivado de la clase System y WriteLine es un metodo de la clase Console, observar tambien que en VCPP se usa el formato clase::metodo para construir las instrucciones apropiadas.

b) Como existe un using namespace system como default en cpp, en el programa se uso la instruccion Console::WriteLine(string);.

c) Si se pone en el programa using namespace Sistem::Console; (observar este formato) se pudo usar en el programa la instruccion WriteLine(string);

Este programa se debera crear y grabar con extencion cpp, es decir debera quedar grabado como prog1.cpp

Observar, usar y respetar mayusculas y minusculas que trae el programa, en general clase::propiedad o metodo siempre empiezan con mayuscula.

Todo programa comienza con una funcion llamada void main().

El cuerpo de instrucciones del programa debera encerrarse entre llaves.

Todas las instrucciones ejecutables terminan con punto y coma.

Los comentarios se ponen encerrados entre Siempre se debe declarar primero las variables a usar. Se utiliza el objeto System::Console::WriteLine(string) para desplegar mensajes u otros elementos en el dispositivo de salida standar (la pagina html). Observar como se encadenan strings en writeline, usando el objeto String::Concat(str1, str2) y observar qye la variable area se tiene que convertir a string tambien con el metodo variable.ToString() porque como ya se indico sistem::console::writeln() ocupa adentro puras strings. VCPP es case-sensitive, es decir trata a mayusculas y minusculas como caracteres diferentes. En particular, el programa primero crea las variables normales y a cada una de ellas primero las carga con el objeto lnet::.getparametro(variable), realmente lnet.dll es una clase, pero como getparametro() solo puede regresar strings, se tiene que convertir al tipo de dato adecuado con los metodos TIPODATO::PARSE(string), los demas PARSE verlos en el tema de tipos de datos de donde se obtuvo INT32 y usar los demas para convertir strings al tipo de dato apropiado, otro y ultimo ejemplo Double::Parse(string). Como nota importante getparametro() no es una instrucciones estandar de vcpp, es una funcion creada y contenidas en la libreria lnet.dll que su servidor lauro soto la construyo para facilitar la comunicacion entre los programas.cpp y las formas.html, mas adelante se explicara como construirlas por su propia cuenta. Ya creadas y cargadas las variables normales, se efectuan los procesos u operaciones normales con ellas y al final se construye una pagina normal html con los resultados usando el objeto System::Console::WriteLine(string). Este programa es llamado por prog1.html, mismo que le pasa las variables y los datos que el usuario le proporciono. Por ultimo, en ToString(”#.##”) se esta aprovechando para formatear la salida de una variable numerica, usando estos caracteres de control, los caracteres que se pueden usar son: | Format character | Name | Description | | | Zero placeholder | If the value being formatted has a digit in the position where the '0' appears in the format string, then that digit is copied to the output string. The position of the leftmost '0' before the decimal point and the rightmost '0' after the decimal point determines the range of digits that are always present in the output string. | | # | Digit placeholder | If the value being formatted has a digit in the position where the '#' appears in the format string, then that digit is copied to the output string. Otherwise, nothing is stored in that position in the output string. Note that this specifier never displays the '0' character if it is not a significant digit, even if '0' is the only digit in the string. It will display the '0' character if it is a significant digit in the number being displayed. | | . | Decimal point | The first '.' character in the format string determines the location of the decimal separator in the formatted value; any additional '.' characters are ignored. The actual character used as the decimal separator is determined by the NumberDecimalSeparator property of the NumberFormatInfo object that controls formatting. | | , | Thousand separator and number scaling | The ',' character serves two purposes. First, if the format string contains a ',' character between two digit placeholders (0 or #) and to the left of the decimal point if one is present, then the output will have thousand separators inserted between each group of three digits to the left of the decimal separator. The actual character used as the decimal separator in the output string is determined by the NumberGroupSeparator property of the current NumberFormatInfo object that controls formatting. Second, if the format string contains one or more ',' characters immediately to the left of the decimal point, then the number will be divided by the number of ',' characters multiplied by 1000 before it is formatted. For example, the format string '0,,' will represent 100 million as simply 100. Use of the ',' character to indicate scaling does not include thousand separators in the formatted number. Thus, to scale a number by 1 million and insert thousand separators you would use the format string '#,##0,,'. | | % | Percentage placeholder | The presence of a '%' character in a format string causes a number to be multiplied by 100 before it is formatted. The appropriate symbol is inserted in the number itself at the location where the '%' appears in the format string. The percent character used is dependent on the current NumberFormatInfo class. | | E0 E+0 E-0 e0 e+0 e-0 | Scientific notation | If any of the strings 'E', 'E+', 'E-', 'e', 'e+', or 'e-' are present in the format string and are followed immediately by at least one '0' character, then the number is formatted using scientific notation with an 'E' or 'e' inserted between the number and the exponent. The number of '0' characters following the scientific notation indicator determines the minimum number of digits to output for the exponent. The 'E+' and 'e+' formats indicate that a sign character (plus or minus) should always precede the exponent. The 'E', 'E-', 'e', or 'e-' formats indicate that a sign character should only precede negative exponents. | | \ | Escape character | In C# and the Managed Extensions for C++, the backslash character causes the next character in the format string to be interpreted as an escape sequence. It is used with traditional formatting sequences like “\n” (new line). In some languages, the escape character itself must be preceded by an escape character when used as a literal. Otherwise, the compiler interprets the character as an escape sequence. Use the string “\\” to display “\”. Note that this escape character is not supported in Visual Basic; however, ControlChars provides the same functionality. | | 'ABC' “ABC” | Literal string | Characters enclosed in single or double quotes are copied to the output string literally, and do not affect formatting. | | ; | Section separator | The ';' character is used to separate sections for positive, negative, and zero numbers in the format string. | | Other | All other characters | All other characters are copied to the output string as literals in the position they appear | Este programa se debera crear usando el notepad o wordpad(de preferencia)de windows, grabarlo como prog1.cpp en el folder de tareas o programas( ya lo crearon?). Ya creado y grabado iniciar una sesion de msdos(console o prompt) y navegar al folder donde deben encontrarse ya prog1.cpp, lcnet.dll y despues se compilara con la instruccion: C:\tareas\ cl /clr prog1.cpp <enter key> El compilador sino marca errores debera crear un archivo llamado prog1.exe que es el programa executable. como sugerencia crear un archivo compilar.bat con la instruccion: cl /clr %1 si ponen este archivo compilar.bat, junto con lcnet.dll y prog1.cpp ya podran compilar sus programas con C:\tareas\compilar prog1.cpp si no conocen o saben que es un archivo batch, entonces no hagan caso de las tres ultimas notas o caritas. Dicho prog1.exe y lcnet.dll deberan copiarse y subirse con el ftp del internet explorer a tu sitio en LUNARPAGES al folder cgi-bin ( si no existe crearlo) Ahora por ultimo usar el browser subirse a la direccion del servidor donde se encuentra prog1.html con la direccion http://LUNARPAGES/tusitio/prog1.html y les debe responder mostrando la pagina del tema anterior cargar las cajas base y altura con los datos apropiados, oprimir click en boton ok y el servidor de paginas les debe responder con: image285.jpg Recuerden que en su sitio deberan estar los tres programas siguientes, prog1.html, prog1.exe y lcnet.dll. Como se observa se ha construido un programa donde captura y despliegue de datos se ha realizado con paginas y formas html, usando un servidor de paginas html. TAREAS PROGRAMACION VISUAL C++ CONVERTIR A PROGRAMAS TODOS LOS PROBLEMAS CONSTRUIDOS CON EL MODELO DE SOLUCION PARA EL CASO DE QUE NO EXISTA CAPTURA, SOLO CONTRUIR LA PAGINA DE REFERENCIA QUE DESPIERTE EL PROG.EXE APROPIADO

Politica de Privacidad