Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Dominio del lenguaje

Foro sobre popular lenguaje de Borland y el lenguaje pascal.

Moderador: yalmar

Dominio del lenguaje

Notapor eljuank el Vie May 18, 2007 10:36 pm

Hola:
Hace + - 5 años que me intereso por aprender a programar, he hecho algunas boberías pero siempre consultando un manual o tutorial.
Mi gran interrogante es: Cómo poder aprender completamente un lenguaje ejemplo (Pascal, Delphi)? Lo que quiero es ser capaz de solucionar un problema mediante la creación de un programa pero ya con los conocimientos suficientes, de manera que no me sea imprescindible leer un manual para llevar realizar el proyecto.
De que manera estudiar para convertirme en un programador de verdad, o sea dar solución a los problemas yo solo.
Mis conocimientos relacionados con el tema son los siguientes:

Matemática: nivel medio, estoy flojo en Integrales, derivadas, en álgebra lineal estoy un poco mejor y en Lógica estoy bien.

Algoritmos: nivel medio, me defiendo un poco con el pseudocódigo.

Estructura de Datos: Tengo un poco de teoría

Pascal: Domino las sintaxis fundamentales, Procedure, Function, If, For, Repeat, For, While, Conozco los típos de datos aunque en tipos definidos por el usuario estoy un poco débil así como en el trabajo con punteros.

Hasta aquí he mostrado + - mi nivel sobre programación.

La pregunta es:

Con estos elementos que tengo que hacer o cómo debo estudiar para realmente ser un programador.

Disculpen la extensión el texto pero espero comprendan mi inquietud.
eljuank
Novato
Novato
 
Mensajes: 4
Registrado: Vie May 18, 2007 10:11 pm
Ubicación: Cuba

Re: Dominio del lenguaje

Notapor yalmar el Dom May 20, 2007 3:40 pm

Hola Juan,

Tu pregunta es dificil de responder, y debe variar para cada persona, en particular yo puedo decir que, el dominio de un lenguaje viene con la experiencia y mas experiencia, cuando digo experiencia no me refiero solamente a el hecho de programar y programar, necessariamente tiene que haber alguna planificación cada vez que enfrentas un problema, no basta utilizar solo los conocimientos actuales que tenemos, siempre es necessário aplicar nuevas técnicas, utilizar nuevas tecnologias, y eso solo se consigue viendo código de otras personas, libros, manuales, etc.

Para programar cualquier conocimiento adicional ayuda, sobre todo, matemática, física, hasta tus conocimientos de videogames ;-)

Y sin dominio de punteros realmente es dificil aprovechar el potencial de un lenguaje, en todo caso seria migrar para leguajes que no usan punteros como java, phyton, ruby u otros.

Espero que mis comentarios te sean de ayuda y tambien espero que todos opinen y pongas sus experiencias.

Salu2
Avatar de Usuario
yalmar
Programador
Programador
 
Mensajes: 240
Registrado: Mié Jun 09, 2004 4:13 pm
Ubicación: Brasil

Re: Dominio del lenguaje

Notapor ovh el Jue Jul 03, 2008 9:13 pm

Hola eljuank!

Entiendo que tu pregunta la formulaste el año pasado, no obstante, espero que todavía permanezca vigente tu inquietud.

La respuesta a tu pregunta es una sola: "Depende".

Depende de cual sea el lenguaje, del alcance funcional de su implementación e instrumentación, y de su compilador.

Como tu ya elegiste el Lenguaje de Programación Pascal, entonces no queda otra que confirmar tu acertada elección.

Prácticamente, Pascal es un Lenguaje que ofrece toda posibilidad técnica para el diseño e implementación de funciones y aplicaciones de alto nivel, a partir de reglas sintácticas y gramaticales sumamente amigables, pero además, con la posibilidad de interactuar directamente con el CPU, a través de sus registros, operaciones de bajo nivel y el manejo de las interrupciones.

Obviamente, todo esto lo hace posible su Turbo-Implementación.

Por su naturaleza, Pascal por excelencia, el Lenguaje

Ahora bien, juank, los límites en el aprendizaje de un Lenguaje de Programación como Pascal no lo establece el conocimiento exhaustivo de la sintaxis, las formas y estructuras gramaticales, las estructuras de datos básicas y las avanzadas fundamentales como lo son las estructuras de datos dinámicas (listas enlazadas), además de los Tipos de Dato Abstracto (TDA) que puedas construir haciendo uso de todo lo anterior, y lo más importante, la forma en que logras ver y entender el Universo, siendo esta última la única restricción y obstáculo, para comprender las posibilidades.

La Programación es un ARTE y los verdaderos programadores, los Programadores Estrella, una Élite.

Por último juank, la pregunta que te tienes que hacer es:

¿Como saber si has alcanzado o te aproximas a un nivel de Programador Estrella, especialista en el Lenguaje de Programación Pascal?

Bueno juank, tienes que programar aplicaciones en Turbo Pascal 7 (MS-DOS), que ofrezcan interfaces para el usuario amigables, iconográficas, que emulen un ambiente Windows o Macintosh, programado por ti mismo.


Por ejemplo, el siguiente procedimiento detecta si ocurre un doble-click, devolviendo en las variables X y Y, la posición en la pantalla donde ocurrió.

Procedure C-M-D (var x,y:integer);
var doble:boolean;
begin
ShowMouse;
doble:=false;
repeat
GetMouseEvent(Evento); {Variable global de Tipo TEvent)
if evento.what = evMouseUp then
if evento.double then
begin
doble:=evento.double;
regs.ax:= 3;
Intr($33,regs); { Call DOS }
x:= regs.cx;
y:= regs.dx;
end;
until doble;
HideMouse;
end;


El siguiente procedimiento dibuja un botón 3D, en las coordenadas x1, y1, x2, y2. Luego, escribe encima del botón el string
de caracteres contenido en el parámetro "texto" el cual se pasa por valor. El string también se visualiza en la pantalla en 3D.

procedure boton(x1,y1,x2,y2,color:integer;texto:string);
begin
setfillstyle(1,color);
bar(x1,y1,x2,y2);

setcolor(color+8);
line(x1,y1,x2,y1);
line(x1,y1+1,x2,y1+1);
line(x1,y2,x1,y1);
line(x1+1,y2,x1+1,y1);
setcolor(0);
line(x2,y1+1,x2,y2);
line(x2,y2,x1+1,y2);

setcolor(color+8);
outtextxy(x1+7,y1+2,texto);
outtextxy(x1+8,y1+1,texto);
setcolor(0);
outtextxy(x1+9,y1+2,texto);
outtextxy(x1+8,y1+3,texto);
setcolor(color);
outtextxy(x1+8,y1+2,texto);
end;


Por último, ejecutando el programa bajo DOS, el siguiente procedimiento dibuja una ventana al estilo Macintosh en las coordenadas x1, y1, x2, y2.

procedure VentanaMac(x1,y1,x2,y2:integer);
begin

{Tope Ventana}
settextstyle(defaultfont,horizdir,1);
setfillstyle(1,15);
bar(x1,y1,x2,y1+16);


{Bordes Tope Ventana}
setcolor(0);
line(x1,y1,x2,y1);
line(x2,y1,x2,y1+16);
line(x2,y1+16,x1,y1+16);
line(x1,y1+16,x1,y1);
setcolor(7);
line(x1+1,y1+1,x2-1,y1+1);
line(x2-1,y1+1,x2-1,y1+15);
line(x2-1,y1+15,x1+1,y1+15);
line(x1+1,y1+15,x1+1,y1+1);

{Lineas Grises Tope Ventana}
line(x1+1,y1+4,x2-1,y1+4);
line(x1+1,y1+6,x2-1,y1+6);
line(x1+1,y1+8,x2-1,y1+8);
line(x1+1,y1+10,x2-1,y1+10);
line(x1+1,y1+12,x2-1,y1+12);

{Boton Cierre de Ventana}
bar(x1+5,y1+4,x1+15,y1+12);
setcolor(0);
line(x1+6,y1+4,x1+14,y1+4);
line(x1+14,y1+4,x1+14,y1+12);
line(x1+14,y1+12,x1+6,y1+12);
line(x1+6,y1+12,x1+6,y1+4);

{Cuerpo Ventana}
setfillstyle(1,15);
bar(x1,y1+16,x2,y2);
setcolor(0);
line(x1,y1+16,x2,y1+16);
line(x2,y1+16,x2,y2);
line(x2,y2,x1,y2);
line(x1,y2,x1,y1+16);

line(x1,y1+26,x2,y1+26);
line(x1,y1+28,x2,y1+28);

{ScrollBar Ventana}
setcolor(0);
line(x2-14,y1+28,x2-14,y2);
line(x1,y2-14,x2,y2-14);

{Sombra Ventana}
line(x1+2,y2+1,x2+1,y2+1);
line(x2+1,y2+1,x2+1,y1+2);

settextstyle(smallfont,horizdir,4);
end;


Ojalá leas la respuesta y no te detengas.

Saludos Cordiales juank.

Oscar.
ovh
Novato
Novato
 
Mensajes: 1
Registrado: Jue Jul 03, 2008 11:53 am


Volver a Delphi

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados