entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Como resolver un problema en c++

Hola estoy realizando los ejemplos de un libro llamado Programacion en C,C++,Java y UML de Luis Joyanes Aguilar. he tenido un par de problemas para resolver los problemas propuestos, y he salido adelante, pero en esta ocacion por mas que les doy vuelta, no he podido obtener una respuesta cara. son dos problemas que tiene que ver algo asi, como comparacion de cadenas. bueno aqui se los anexo y aver si me puede orientar por que no he encontrado otro foro donde me ayuden, son dos problemas. gracias de antemano

Escribir un programa que acepte un numero de tres digitos escrito en palabra y acontinuacion
los visualice como un valor de tipo entero. La entrada se termina con un punto. Por ejemplo.
la entrada:

docientos veinticinco

producira la salida

225

Escribir un programa que acepte un año escrito en cifras arabigas y visualice el año escrito en
numeros romanos, dentro del rango 1000 a 2000.
Nota: recuerde que V = 5, X = 10, L = 50, C = 100, D = 500 y M = 1000.

IV = 4 XL = 40
MCM = 1900 CM = 900
MCMLX = 1960 MCML = 1950
MCMLXXXIX = 1989 MCMXL = 1940

gracias de antemano.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola versce123mx,

Me alegra saber que estás aprendiendo a programar o profundizando tus conocimientos de programación de forma autodidacta. En este sentido, te escribo para darte un poco de orientación al respecto, porque me parece que estás encarando mal la cuestión.

Tu problema no parece ser "cómo resolver estos problemas en C++", sin que es más bien "cómo resolver estos problemas". Me explico: en lenguajes imperativos como los que estás viendo, lo primero que hay que pensar es en un algoritmo que solucione el problema dado. He leído a muuuucho algún libro de Joyanes Aguilar, y seguramente al principio del texto planteará cuestiones como la de los algorítmos, pseudocódigo y pruebas de escritorio, todas estas cosas las cuales no nocesitan una computadora para hecerse.

Un algoritmo es una suseción de pasos finitos que resuleven un problema, expresado en primitivas del lenguaje. Esto significa que si el lenguaje, ya sea computacional o humano es de alto nivel, se podrá expresar en menos pasos. Por ejemplo, una multiplicación escrita en un lenguaje que tiene el operador de multiplicar se expresará en un solo paso, pero en un lenguaje que solo tiene el operador de suma, se expresará con varios pasos y una estructura de repetición.

Lo primero en que tenés que pensar es cuál sería el algoritmo para resolver cada uno de estos problemas. Luego, con el algoritmo en mente o escrito, pasarás a un segundo problema que es cómo escribirlo en un lenguaje de programación dado.

La tarea de resolver algoritmos y la de codificarlos, son tareas independientes (a veces las hacen diferentes personas) pero no tiene sentido sentarse a programar, sin saber qué algoritmo se va a implementar.

Lo que creo entonces que tenés que hacer es pensar un algoritmo que resuelva cada uno de los problemas.

Si planteás en pseudocódigo uno y te da problemas, incluso podrías ponerlo por acá para ayudarte a ver qué fallo hay en él... luego nos harás otras preguntas sobre como se escribe el algoritmo en C++ o en Java. En este tipo de foros, cuanto más concreta es la pregunta, mejores son las respuestas.

Saludos cordiales!

0voto

versce123mx comentado

Hola leonardo-tadei efectivamente, no se como le hizo pero me entendio, y comprendio mi cituacion. o tal vez fue por la pregunta. Le comento tengo un tiempo programando, se de uno que otro lenguaje, pero hay un algo que no me permite desenvolverme de la forma adecuada, no se si sea por que pienso las soluciones mas aya de lo que las devo de mirar, o por que le doy muchas vuelta al razonamiento. Se me complica mucho desarrollar programas como los mencionados anteriormente, y cuando llego a encontrar respuestas, digo que tonto fui, si era muy facil, creo que tal vez si me falta lo que usted comenta, desarrollar mis algoritmos para darles solucion de esa forma, y pues sera un poco mas facil en codigo.

Yo veo que usted tiene mucha experiencia, y tal vez eso es lo que a mi me ha faltado conocer gente capacitada, a la cual acudir, usted que me recomendaria hacer para lograr desarrollar de una manera mas optima programas como los que planteo, mucha gente me ha comentado que no recomiendan libros por que todo se basa en una buena disiplina, pero tambien creo que deve de aver un libro, manual que explique una forma de tallada de como realizar los algoritmos y pensar en la logica de programacion. Que puedo hacer para mejorar y dar ese pequeño salto que me hace falta para poder realizar cualquier problema que se me plantee.
Soy autodidacta y me hace falta como que razonar el problema de una forma cencilla y asi mismo llevarla a programacion.

Dejare abierta la pregunta, esperando su opinio y darle en pregunta respondida.

haa por cierto muchas gracias por toda la ayuda que aporta a todos los usuarios, ya que es grato conocer gente con sus capacidades y experiencia, tomandose un poco de su tiempo para resolver nuestras dudas.

0voto

Leonardo-Tadei comentado

Hola @versce123mx,

estuve hoy buscando bibliografía pra recomentarte, pero todo lo que tengo sobre algoritmos presupone que el lectar sabe qué son y cómo hacerlos y trata sobre eficiencia y cuestiones formales.

En mi experiencia, tanto como desarrollador como dando clases, la noción de algoritmo se aprehende escribiendo, pensando, equivocándose y viendo algoritmos de otros. La teoría es poco más que lo que te cuento más arriba... luego es trabajar pensando en la idea.

Te reitero el concepto de que pensar algorítmicamente es independiente del lenguaje de programación a usar. Sin embargo, hay lenguajes más aptos para aprender que otros, y tanto C como C++ no son una buena opción para iniciarse, porque tienen una sitaxis tan laxa y unos recursos tan flexibles que a veces es difícil ver el algoritmo que implementa el código.

Hay lenguajes que no se usan mucho comercialmente, como Pascal, pero que son lenguajes ideales para aprender (y como el algoritmo es independietne del lenguaje, lo aprendido en este sentido se puede aplicar en cualquier otro lenguaje más tarde). Justamente pensando en Pascal recordé el libro del mismo Joyanes Aguilar llamado Programación en Turbo Pascal que tiene una razonalbe introducción a los algoritmos y luego el mismo esquema que el que estás leyendo, con conceptos y ejercitación.

El lenguaje Pascal ayuda mucho a pensar ordenadamente, porque si no se siguen las reglas, el programa no compila. Podría usar en vez de algún Turbo Pascal el compilador multiplataforma Free Pascal: en los GNU/Linux se instala con 3 clicks.

Hay otros lenguajes buenos para aprender, como Java y Python, pero no tenemos experiencia en ellos, en el sentido que todavía no hay profesionales formados hace digamos 10 años cuyo primer lenguaje haya sido uno de estos, para poder medir qué tan buenos lograron ser y qué experiencias tuvieron teniendo que pasarse a otros lenguajes, cosa que con el tiempo todos tenemos que hacer por una cuestión tecnológica y de mercado.

Otra cosa importante es que aprendas a expresarte ordenadamente y con buena sintaxis y ortografía. Yo creo que es muy importante para ser buen programador, porque si no nos expresamos bien en nuestra lengua materna, mucho menos nos expresaresmos bien en un idioma extranjero, y a los efectos prácticos, los lenguajes de programación son como idiomas de otro país: el país de las computadoras.

Con darle muchas vueltas a un razonamiento, no te hagas problema: todos lo hacemos. Lo importante es irlo llevando a código para ver cual es más elegante y eficiente. Eso se consigue con la práctica.

Por último, es un placer poder aportar algo a los demás: apenas estoy devolviendo lo mucho, muchísimo que muchas excelentes personas compartieron conmigo, sobre todo entre las comunidades del Software Libre.

Saludos cordiales!

0voto

Leonardo-Tadei comentado

Hola @versce123mx,

me encontré hoy con este libro que tal vez te ayude para la cuestión de desarrollar el pensamiento algorítmico: http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf

Saludos cordiales!

PD: si esta respuesta u otra te sirvió para encontrar cómo encarar el problema, por favor marcala "seleccionar respuesta" así el tema queda cerrado y sirve de ayuda a otros usuarios.

0voto

versce123mx comentado

Hola leonardo-tadei solo para agradecerle su amabilidad al tomarse el tiempo y responder a mis preguntas, le agradesco ese rayo de luz que me dio, ya que yo sabia que me falta algo, pero no sabia si era una cosa u otra, y pues usted confirmo mi falta de desarrollo algoritmico, y pues hora solo queda estudiar para desarrollarlo y aprender mas. muchas gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta