Foros del Web » Programación para mayores de 30 ;) » Programación General »

Iniciarme en programación

Estas en el tema de Iniciarme en programación en el foro de Programación General en Foros del Web. Pues eso, al final he conseguido un compilador(¿se llama así?). Es el Modula-2, pero no tengo ni idea de como funciona. Estoy buscando manuales de ...
  #1 (permalink)  
Antiguo 09/07/2006, 08:14
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Iniciarme en programación

Pues eso, al final he conseguido un compilador(¿se llama así?). Es el Modula-2, pero no tengo ni idea de como funciona. Estoy buscando manuales de algun tipo para empezar a aprender a programar en modula-2 y no encuentro. Pero sed buenos, porque no tengo ni idea, empiezo desde cero, nunca he trabajado con este lenguaje y necesitaría manuales que tengan, además de explicaciones, algunos ejemplos.

Pd: si conocéis manuales para iniciados de otro tipo de compiladores y sabéis dónde descargármelos no me iría mal tampoco.

Muchas gracias
  #2 (permalink)  
Antiguo 09/07/2006, 16:16
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 20 años, 5 meses
Puntos: 1
Modula-2? Un poco más y te pones a programar en binario.
Por qué no empiezas con C++ o Visual Basic?
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #3 (permalink)  
Antiguo 09/07/2006, 16:59
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Creo que C/C++, Java, Delphi o Pascal son buenas opciones para empezar, epro modula-2 es un tanto viejito y no te va a proveer de muchos conocimientos para lo que es la programación hoy en día.

En http://www.lawebdelprogramador.com, podes encontrar manuales y compiladores de todo tipo.


Visual Basic no me parece una buena opción para iniciar. No discuto que es bastante facil de aprender, pero le enseña al programador hacer cosas que no son recomendables como por ejemplo el uso de variables sin declarar.

Otro defecto que le veo es que los que se inician con el, piensan que el paradigma orientado a objetos es como lo presenta VB, y no es asi y luego les cuesta aprender bastante Java o C++ (en varios casos).


Con esto pretendo desacreditar a VB como lenguaje, es bastante util en muchos casos, sobre todo para el desarrollo de rapido de aplicaciones de escritorio.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #4 (permalink)  
Antiguo 11/07/2006, 17:41
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Buenas, muchas gracias por las opiniones, al final me he puesto con el c++. Lo que ya os decía, soy novato y no entiendo casi nada. Ahora estoy intentando jugar con el archivo iostream.h y me habla de los streams cin y cout. Lo que me hago un lío cuando empieza a referirse a canales de entrada y salida. ¿cómo me los podríais definir de un modo llano?

Y si me pudieseis hacer un programilla de ejemplo que salieran los streams cin y cout ya sería la ostia.
Por ejemplo:

Hola, que tal estas(bien/mal)? _

¿repito la pregunta(s/n)? _ ( hacer un bucle del tipo do... while si se contesta 's')

Saludos!
  #5 (permalink)  
Antiguo 11/07/2006, 19:41
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
yo prefiero verlo desde el punto de vista procedural o de objeto (Que por dentro es lo mismo).
todo lo demas es transparente al programador a menos que alguna aplicacion requiera de aspectos mas especializados de estos streams.

en C++.

cout y cin son objetos que se encargan de manipular estos canales.
estos objetos son una especializacion de istream y ostream

clases que tienen funciones miembros encargadas de escribir o sacar informacion y leer o capturar informacion.

de cou las funciones que mas se usan son get() y getline(), y los operadores sobrecargados <<.

un operador sobrecargado es en realidad una funcion que por nombre usa a un operador, por ejemplo

ostream& operator << (ostream& os, int value);
es una funcion operator sobrecargado, pero bien podriamos llamarla

ostream& write(ostream& os, int value);

pero claro para mayor comodidad se usan estos operadores.


cout usa << y cin usa >>
es como si fuesen unas flechas que indican la direccion en que fluye el stream.

ostream << value; // value fluye a ostrea, cout <- value;

cin >> value; // istream fluye a value, o value capruta de istream cin -> calue;

los operadores estan sobrecargados para todos los tipos que maneja C++ ademas de la clase string. por tanto no tienen que indicar el tipo a leer o escribir como se hace en C con stdlib.

los parametros para cin se pasan por referencia para poder guardar el valor leido en la variable.



un pequeño ejemplo con cadenas:

#include <iostream>
using namespace std;

int main()
{
char nombre[40];

cout << "Escribe tu nombre: ";
cin >> nombre;
cout << endl;
cout << "Hola " << nombre << "que tal los streams?" << endl;

return 0;
}
  #6 (permalink)  
Antiguo 13/07/2006, 10:08
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
que mas amigos, oye pantalaimon, no seria mas facil q comenzaras por pascal, ya que asi puedes hacer los algoritmos en lenguaje ntarual y no tendrias problemas para pasarlos porq no cambian en mucho los comandos
  #7 (permalink)  
Antiguo 13/07/2006, 13:28
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Pues creo, Bullet, que ahora ya no me voy a meter en pascal, quizá más adelante, pero aunque empiezo con algo durillo voy a seguir con el C++. De momento ya conozco un poco como funcionan las variables, y empiezo a comprender lo de el cin y el cout. Encima, ahora mismo vengo de la biblioteca con un manual para aprender un poco como funciona el c++.

Nivel7, me cuesta mucho entender lo que escribes, hay un montón de vocabulario en el cual aún no tengo asumidas definiciones claras( operadores, funciones ,objetos...) . También veo que aprender un lenguaje no es tan complicado si te van poniendo ejemplos. Sin embargo me cuesta más entender cómo funciona todo por dentro, quizà también me pase porque no tengo muchos conocimientos(por no decir nulos) sobre informática y cuando me dicen, por ejemplo, que tal o cual cosa se almacena en la memoria intermedia me quedo en estado de shock . Así que para entender cómo funcionan las cosas tendría que solucionar este problema básico.
En este caso, no entendía lo que eran canales de entrada y salida. Ahora más o menos creo que tengo una idea. El canal de entrada es el que sirve para enviar información del teclado al ordenata y el de salida, para enviar información del ordenata a la pantalla.

Por otra parte, el ejemplo que me has puesto, al igual que otros que he copiado del manual que tengo ahora en mis manos, se ejecutan pero en una centésima de segundo desaparecen, como lo puedo solucionar esto?

Pd: Como este post ya se direcciona a hablar sobre el lenguaje c++, pediría a los moderadores que lo cambiaran al sitio correspondiente. Sino, supongo que abriré otro post nuevo en el foro indicado para no entorpecer el funcionamiento del foro.

Muchas gracias por la ayuda
  #8 (permalink)  
Antiguo 13/07/2006, 18:47
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
si esperaba que comentaras eso,(lo del programa que se ejcuta pero se cierra),
eso se soluciona facil.

lo que tienes que hacer es parar el programa, ya sea que leeas algo por el teclado o que uses un comando del Sistema.

podrias usar cin.get();

o

system("paunse");

justa antes del return 0;

con relacion a lo de operadores , funciones y objetos, son terminos que el C++ asi como otros lenguajes manejan y tienes que aprender.

un operador en un operador, jeje. un simbolo por asi llamarlo,
como +,*,-,/, >, <, =, ==, etc.

en C++ tu puedes hacer que el signo + se use para restar en lugar de sumar, o que el opedaror de *(multiplicacion) sea para escribir por pantalla, claro que esto no es recomandable, ya que la sobrecraga es para hacer mas facil la programacion y no para complicarla.

lo corercto es que el de suma(+) se use para sumar y el de multiplicar(*) para multiplicar.
esto de la sobrecraga se hace generalmente cuando se manejas clases y objetos, por el momento no creo que tengas que hacerlo, locomente por que cin y cout lo usan pero tu solo usalod y ya.
una funcion es un subprograma, que realiza una tarea especifica y puede o no retornar un valor.
con forme leas tu manual poco a poco comprederas esto. te recomiendo el manual de Salvador de Conclase.net.

www.conclase.net

Saludos.
  #9 (permalink)  
Antiguo 14/07/2006, 05:36
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
#include <iostream>
using namespace std;

int main()
{
char nombre[40];

cout << "Escribe tu nombre: ";
cin >> nombre;
cout << endl;
cout << "Hola " << nombre << "que tal los streams?" << endl;

cin.get()
return 0;
}

Pues nada... que estoy en las mismas, no se para ni a la de tres.
  #10 (permalink)  
Antiguo 14/07/2006, 16:22
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
cin,get();
solo funciona cuando el buffer de lectura esta vacio, en este caso no es asi, a menos que lo uses en dos ocasiones;

cin.get();
cin.get();

si esto no te agrada puedes usar

system("pause");

tienes que experimentar un poco.

Saludos.
  #11 (permalink)  
Antiguo 16/07/2006, 11:25
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Igualmente esto de ponerle aditivos para que el programa no se cierre no me acaba de convencer, no lo veo normal... principalmente por que no he visto en ningún manual este tipo de funciones[cin.get() y system("pause)] en los primeros ejemplos de programas en c++. ¿O es que los autores de los manuales nos quieren volver locos a los iniciados?

¿No puede ser causado por alguna opción que le tenga que poner al compilador para que no me lo haga?

  #12 (permalink)  
Antiguo 17/07/2006, 00:00
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
pues no, se supone que C++ hace lo que tu le dices hacer, cin,get() es decirle lee el stream de entrada.

o con system("pause"); pues simplemente le pide al sistema que pause la ejecucion asta un evento, y el evento es keyDown.

hya IDE's, como el Visual C++ que te pausan la ejecucion sin estos agregados pero solo en tiempo de diseño, es decir solo si el programa es invocado desde el IDE, lo mismo que si lo haces desde cmd.

si quieres puedes hacer eso, evita poner estas cosas, y llama a tu aplicacion desde la consola de comandos.

Saludos.
  #13 (permalink)  
Antiguo 17/07/2006, 12:12
Ma1
 
Fecha de Ingreso: junio-2006
Ubicación: en mi casa
Mensajes: 2
Antigüedad: 17 años, 10 meses
Puntos: 0
hola a todos...
me gusta mucho su pag y me interesa la programacion, no c nada pero me interesaria aprender, y kiero una opinion de uds sobre por donde empezar, lo basico, ect..

salu2
  #14 (permalink)  
Antiguo 18/07/2006, 10:12
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 10 meses
Puntos: 28
Hola! lo que pasa es que estas haciendo un programa para la consola, si estuvieras trabajando desde alli tu programa simplementre se ejecutaria y volverias al cursor, sin embargo regresa al compilador porque eso eso es lo que se supone que "deberia hacer" cuando finalice la ejecucucion de tu programa.

El comentario de nivel7 es muy acertado, para evitar que eso suceda debes indicarle a tu programa que se detenga antes de regresar al ide...en este caso usando la funcion "system("pause")".

Para el compañero Ma1...te aconsejo que comiences con pascal, es un lenguaje que contiene TODO lo que nececitas para aprender, por ahi tienes el FreePascasl, compilador de pascal gratuito y luego puedes pasar a lazarus o delphi (version visual del object pascal) para desarrollar aplicaciones para windows (lazarus te premite desarrollarlas para linux tb)

Saludos...
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 03:00.