Free Pascal es un potente compilador para dicho lenguaje.
La sintaxis de lenguaje de Free Pascal es semánticamente compatible con Turbo Pascal 7.0. También soporta algunas extensiones usadas por Delphi.
Opciones adicionales incluyen: soporte para sobrecarga de proceso, optimizador de código, posibilidad para cargar variables en registros, un analizador del nivel del flujo de datos del ensamblador, eliminaciones de Stack, un ensamblador integrado, encadenamiento inteligente, soporte para debugger GNU, y soporte API.
Nota: Lo he usado y lo uso para mis calses de pascal y debo decir que es excelente me gusta mucho este compilador y para los que trabajen con turbopascal y vallan a provar este compilador. donde colcan: Uses wincrt; en free pascal es de la siguiente forma: Uses crt;
Bueno como muchos sabrán este fue nuestro primer parcial de programación avanzada y como muchos no sabrán son la 02:15am jejej ya va siendo hora de acostarme, así que seré breve.
Este consiste en una aplicación que realiza encuestas donde primero que todo se registran los candidatos y luego los barrios donde se realizara la encuesta. Cuenta con el modulo de encuestado donde los datos ya son cargados según los barrios y candidatos que se registraron, excepto los estratos que tome 10 tipos de estratos. Ahora las consultas permiten consultar el porcentaje total de un candidato seleccionándolo en un combo que se carga con los nombres de los candidatos, permite una consulta por parámetro para este caso por sexo, así muestra según el sexo seleccionado el porcentaje de personas que votaron por cada candidato, y por ultimo cuenta con una consulta por barrio que nos muestra el porcentaje de personas en un barrio especificado que botaran por los candidatos
Como lo prometido es deuda este es un minivortal desarrollado por supuesto en visual basic.NET y como estoy trabajando en otra aplicación, un sistema de encuestas para subirlo mas tarde les dejo una descripción básica:
La aplicación utiliza las siguientes estructuras "Lo cual verán, y se darán cuenta que esta echa en tal forma como si fuera una base de datos", por eso en el post anterior dije que la siguiente aplicación traería principios conceptuales de bases de datos. ahora las estructuras:
Public Structure materias Public nomb_materi As String Public cod_materia As Integer End Structure
Public datos_materias() As materias
Public Structure estudiante Public nombre As String Public id AsLong Public dir As String Public tel As Long Public fecha_nac As Date End Structure
Public datos_estudiante() As estudiante
Public Structure matricula Public cod_estudiante As Long Public cod_materia As Long End Structure
Public datos_matricula() As matricula
Public Structure notas Public cod_estudiante As Long Public cod_materia As Long Public n1 As Decimal Public n2 As Decimal Public n3 As Decimal End Structure
Hola. Tengan buenas noches. Muchos se preguntaran ¿el porque de mentalidad cliptoniana? Pues cuando cree el blog se hizo para compartir ideas de como optar por soluciones eficientes para desarrollar nuestras aplicaciones. Pues hoy me tomare unos minuticos para mostrarles algo de archivo.
Esta idea nace en que patiño nos puso hacer un programa con un vector dinámico de registro el cual iba incrementando su tamaño a medida que se iban incluyendo registros o perdiendo tamaño a medida que se iban eliminando, eso esta bien todos los damos para hacer pero a patiño se le ocurrió que lo pasáramos a archivo. & pues había que modificar la mayoría de la estructura del código, y como soy muy flojo dije eso es demasiado para mi así que me pregunte a mi mismo: mi mismo inventate algo que trabaje con archivos pero que no tengas que modificar gran parte del programa, me puse a leer sobre flujos-archivos y entre tanto leer conseguí cosas que me hicieron pensar en otras cosas y después de contarle como surgió la idea aquí esta:
Para los que conocen sobre Bases de Datos sabrán lo que es un acceso desconectado y me dije si ya lo tenemos en un vector tratemos de emitar este tipo de conexión que caga los datos en el dataset y luego actualiza la Base de Datos cuando sea necesario... jejej supongo que ya se habran imaginado que use como dataset el vector que ya tenia así que solo tenia que crear una clase que escribiera y leyera los datos luego cargarlos en un vector y en el momento de agregar, editar o eliminar un registro lo hacia en el vector que me resultaba mucho mas fácil, & cuyo procedimiento ya estaba implementado asi que solo esa agregar una linea de código al final de los botones que implementaban estas operaciones para trabajar con mi objeto de escritura y lectura de archivos.
Pues esa es la idea, hasta el momento he ido mejorando el sistema y me ha resultado muy util ya que puedo acomodarlo a cualquier numero de estructuras como verán en el siguiente aporte que pretende ser un sistema de matricula de materias y digitalizacion de notas con un poco de pricipios teoricos de fundamentos de Base de datos.
Esto se fue largo pero como dije pretende ser una idea, una forma de dar solución a un problema. Ahora explicare un detalle que me parece importante
Para el proceso de escritura:
--Verifico si existe el archivo
----sino existe
**********quiere decir que sera el primer registro que almacenare en el archivo
***********esto lo ago de modo normal con modo append, y write
--pero si existe
*hago una copia de seguridad del archivo-por si se daña el archivo en el proceso
*luego elimino el archivo original
*creo uno nuevo en el cual lo que ago es escribir en el archivo todo el vector(proceso muy sencillo)
--Para la lectura
-verifico si existe el archivo
*leo el archivo hasta que sea fin de archivo
*lo que boy leyendo lo boy almacenando en el vector
Este es un codigo que hice como un año y medio y buscando me encontre con el dentro de mis archivos olvidados la verdad es muy simple, pero para los que solo comienzan les puede servir de guia.
Estos son unos ejemplos Sencillos que hicimos en clase espero se entiendan
/* Hacer un programa en c/c++, que reciba un valor para N y determine si
existe o no en la lista de elementos del arreglo:
vector[10]={2,5,8,4,5,9,3,0,4,8}. Para accesar al arreglo usar un puntero*/
1 #include<iostream.h>
2 #include<conio.h>
3 #include <ctype.h>
4 5void main(void)
6 {
7int vector[10]={2,5,8,4,5,9,3,0,4,8},*n,*p,*i;
8char *si,*ct;
9 p = &vector[0];//p tiene la direccion de la primera posicion del vector 10 11//declaracion del vector en forma dinamica 12 n=newint;///valor a leer 13 p=newint;//acceso a puntero 14 i=newint; //recorrido 15 si=newchar;
16 ct=newchar;
17 18 *ct='S';
19 20while(*ct=='S')
21 {
22 clrscr();
23 24 *si='n';//incializo como si el valor no estubiera dentro de la lista 25 gotoxy(2,4);
26cout<<"Digite un n£mero para ser consultado: ";
27cin>>*n;
28 29for (*i=0; *i<=9; (*i)++)
30 {
31if (*n==*p)//compara el valor almacenado en la direccion de n con el 32 { //valor alamcenado en la direccion de p 33cout<<endl;
34cout<<"El valor se encuentra almacenado dentro de la lista";
35 *si='s';
36break;
37 }//fin si 38// cout<<endl; 39//cout<<*p; Q pasa con la primera posicion 40 p=&vector[*i];
41 }//fin for que recorre el vector 42 43if(*si=='n')
44 {
45cout<<"El valor no esta dentro de la lista";
46 }
47 48cout<<endl<<endl<<endl;
49cout<<"presione s para buscar otro valor u otra tecla para salir: ";
50cin>>*ct;
51 *ct=toupper(*ct);
52 53 }///fin whie 54 55 }//Fin main