Fundamentos del lenguaje
27 pasos en 9 series de Delphi.
Delphi es Object Pascal ya maduro: el lenguaje de Turbo Pascal con clases, propiedades y un modelo de componentes acoplado con tanta limpieza que sostuvo la revolución RAD de los años noventa y todavía hoy entrega sistemas de punto de venta, instrumentos de laboratorio y software de gestión para Windows. Es verboso donde C es escueto — begin y end, := para asignar, el punto y coma como separador — y por eso mismo es célebre por seguir siendo legible una década después.
Este tour cubre el núcleo del lenguaje tal como lo compila Free Pascal en modo Delphi: la forma del programa y las variables, el kit de cadenas, las cuatro formas de bucle, procedimientos frente a funciones con parámetros const y var, arreglos y registros, la maquinaria de tipos enumerados y conjuntos que Pascal hace mejor que nadie, clases con constructores y la disciplina de vida con try-finally, y las excepciones. El bis entrega programas completos. Cada fragmento compila sin advertencias y corre.
Programas y variables
- La forma del programaUn saludo del cuaderno de un faro, armado con las piezas mínimas que necesita un programa Delphi.
- Variables y constantesLa caja de una panadería calcula lo recaudado en la mañana con un precio fijo del pan.
- Asignación y aritméticaUn cobrador de autobús lleva la cuenta de quienes suben y parte una tarifa en dólares y centavos.
Tipos y cadenas
- Tipos numéricosUn observatorio cuenta fotogramas, suma bytes y mide una exposición en segundos.
- Format y anchos de campoEl horario de un ferri impreso como una tabla de tres columnas cuyos números quedan alineados.
- Ayudantes de cadenasEl rótulo de una biblioteca de semillas se recorta, se cambia de mayúsculas, se busca y se reescribe.
Control de flujo
- if y caseUna señal de niebla elige su patrón según la visibilidad, y luego un mes escoge la guardia.
- Bucles forLas cajas de un huerto se cuentan hacia arriba, se listan hacia abajo y luego se recorren sin índice.
- while y repeatUna cuenta regresiva de tres minutos de un horno, escrita dos veces, una en cada forma de bucle.
Procedimientos y funciones
- ProcedimientosUn
procedurereporta la inspección de una colmena, y el bloque principal solo lo llama. - Funciones y ResultDos funciones que responden con un valor asignándolo a
Result. - Parámetros const y var
Tunelee un nombre de emisoraconsty escribe de vuelta por un parámetrovar.
Arreglos y registros
- Arreglos estáticosCinco cifras de lluvia en un
array[0..4] of Integer, recorridas una vez por un total y un pico. - Arreglos dinámicosDuraciones de pistas en un
array of Integerque se dimensiona, se llena y luego crece. - RegistrosUn registro
TShelterune un nombre con un conteo de camas y viaja entero hacia una función.
Enums y conjuntos
- Tipos enumerados
TPhasenombra las cuatro fases de la luna, y uncaseelige la línea que se imprime. - ConjuntosUn kit de reparación de bicicleta como
set of TTool, que se edita y luego se consulta conin. - Subrangos y OrdEl subrango
TLane = 1..4indexa un arreglo de tiempos por vuelta, yOrdva y vuelve con una letra.
Clases
- ClasesUna clase contador de pasos: un campo, un método y una instancia que creas y liberas.
- Propiedades y gettersUn círculo cuya área es una propiedad respaldada por un getter en vez de por datos guardados.
- Constructores y FreeUna reserva construida por un constructor con argumentos y liberada después en un bloque
finally.
Excepciones
- try-finallyUn
TStringListcreado antes deltryy liberado en elfinally, salga la función por donde salga. - try-exceptTres cadenas pasan por
StrToInt; una no es un número y se maneja en vez de tumbar el programa. - Lanzar tu propia excepciónUna regla de sobregiro que lanza su propia clase de excepción, atrapada donde ocurren los retiros.
Bis
- word_freq.pasCuenta las palabras de un pasaje incrustado e imprime las cinco más comunes con barras.
- grade_report.pasPuntajes de cinco estudiantes, promediados en calificaciones por letra, con un resumen del grupo.
- temp_stats.pasUna semana de máximas diarias reducida a la más fría, la más cálida y la media, con barras por día.