Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mensajes - argentinator

Páginas: [1] 2 3 4 ... 302
1
Programación lineal / Re: Programación modular en C++
« en: 16 Junio, 2020, 12:05 pm »
Hola.. tengo un problema de programación en lenguaje C++ Donde me piden que programe:
 
1- Generación de un número capicúa a partir de un número ingresado, salvo que ya sea capicúa. Indicando la cantidad de pasos realizados para obtener el capicúa.
2- Determinación, si corresponde, del número cuyo cuadrado sea igual a la suma de los dígitos del valor capicúa.
3- Presentación de los valores capicúa comprendidos en un rango especificado.

No se como programarlo con modularidad..  :banghead:
AYUDIITAAA!!!

Hola Ariana.
Aunque se trate de programación, este problema tiene varias componentes de índole matemática.
Así que hay que razonar primero en papel a ver lo que significa cada cosa.

Hay que interpretar cada detalle del enunciado con cuidado.

1.
Habla de número "capicúa". Como sabrás, un mismo número se puede representar de distintas maneras, según qué base se use. Los humanos usamos base diez, pero las computadoras internamente usan base 2 (dígitos 0 y 1 solamente). Así que para detectar que un número capicúa, hay que calcular de algún modo los dígitos en base diez del número, y quizás almacenarlos en alguna parte, por ejemplo en un array (vector) de tipo "int" (también es válido usar el tipo de datos entero que ocupe menos espacio en memoria, como "char").

Luego habría que recorrer este array desde sus extremos hacia el centro, iterando, mediante una estructura repetitiva tipo "for" o "while", para comprobar si los dígitos de cada extremo van conicidiendo. Por ejemplo, Si los dígitos son: 1, 3, 6, 3, 1, hay que chequear que los "1" de las puntas coinciden, luego los "3" de más adentro, y así hasta llegar al dígito central.

Pueden usarse criterios matemáticos más prácticos, pero no sé si es parte de lo que se admite que podés usar en el problema.

Existe la posibilidad de comparar los dígitos directamente, sin necesidad de guardarlos en un array.
Pero hay que calcular el número de dígitos previamente (usando por ejemplo la función log10 de <math>),
y luego trabajar cuidadosamente con divisiones, restos y acumuladores.


2.
El segundo punto del problema confirma lo que te dije en el punto anterior: quien te puso ese problema tiene la intención de que calcules cada dígito (de base diez) del número, y los almacenes en algún array, ya que así los tendrás memorizados para poder luego operar con ellos. Por ejemplo, para sumarlos, como te pide en el segundo punto.
Esa suma quedaría guardada en una variable de tipo acumulador.
A continuación, basta calcular la raíz cuadrada de esa variable que tiene almacenada la "suma".
Podés calcular la raíz cuadrada de un número usando la función sqrt() de el archivo de cabecera <math>.

Si la intención es que no se use un array, entonces esta suma de dígitos tendrás que hacerla al mismo tiempo que los vas analizando en el punto 1, así que este punto 2 no iría aparte. Habría que agregar la variable acumuladora suma en algún lugar apropiado del algoritmo del punto 1.

Lo que no entiendo es el significado de la frase "si corresponde". Quizás se refiere a que solamente muestres el resultado de la raíz cuadrada si es que te da un número entero.
Es decir, el término "número" es más general que el de "número entero", porque con "número" nos podemos referir también a números con parte fraccionaria.
Pero es posible que la intención sea la de considerar sólo números enteros.

En ese caso, podrías hacer un cast a un tipo de datos entero, y así comparar si la parte entera del número obtenido coincide con el número mismo:

double raiz = sqrt(suma);
if ( raiz == (int) raiz ) { /* OK */ }

3.
Para el tercer punto habría que llevar a cabo un procedimiento más sistemático,
ya que pide generar una lista de números capicúas.
Ese es un problema aparte.
Una posibilidad sería forzar las cosas, aprovechando la "modularidad".
Es decir, si hacés una función que resuelva el punto 1, entonces recorrerías cada número en el rango especificado,
y verificarías si es capicúa o no llamando a dicha función.
Otra posibilidad sería aplicar algún criterio aritmética para que el algoritmo vaya más rápido, pero eso no lo explico, porque parece que el enunciado pretende otra cosa.

La función del punto 1 tendría este prototipo:

bool es_capicua (int N) {

  // Sentencias ......
  // Sentencias ......
     
}

La lógica interna de la función es lo que tenés que pensar.  ;)

2
Anuncios / Re: Nuevo Tema/Theme
« en: 02 Junio, 2020, 10:18 am »
Hola Diego Andrés.

Me parece perfecto que la gente opine, porque después de todo el foro está para usarlo todos los días y tiene que resultar cómodo.

De mi parte, no tengo más que agradecimiento con tu trabajo, y además me encanta toda la estética renovada del foro.

Además, la actualización de versiones de SMF seguramente hará que todo marche perfecto.

 :aplauso: :aplauso: :aplauso: :aplauso:

Saludos.  :)

3
Anuncios / Re: ¡Vuelve el foro!
« en: 31 Mayo, 2020, 08:37 pm »
Hola

Por un lado recordar que dejé un comentario unos mensajes atrás:

También, si puede, (...)

Insisto en la necesidad de crear el shortcut ALT+X para generar el tag "tex", que vendría muy bien para ahorrar tiempo.


También es posible ingresar código LaTeX directamente, utilizando los delimitadores estándar:

Código: [Seleccionar]
\(       fórmula-LaTeX      \)
\[       fórmula-LaTeX      \]

Eso te da agilidad si es que usás algún editor LaTeX por ahí, y querés copiar y pegar algo que ya tenías escrito en LaTeX en otro lado.

También podés usar scripts de Autohotkey, como creo que has visto en los posts de masacroso, para generar etiquetas [ tex ] [ /tex ] (y que el cursor quede en el centro justo para empezar a escribir la fórmula):

Código: [Seleccionar]
!x::
  SendInput {Text}[tex][/tex]
  SendInput {Left 6}
Return

Ojo: no me opongo a que se agregue la funcionalidad de ALT X que proponés, lo cual dejo a criterio del técnico que está arreglando todo el foro, pero son alternativas que existen mientras esa opción no esté aún disponible.

Generado con \ ( y \ ) :    \( \cos x^2 \)
Generado con \ [ y \ ] :   \[ \tan \sqrt x \]


4
Teoría de números / Re: Criterios sobre lo que es primalidad
« en: 31 Mayo, 2020, 08:15 pm »
Hola feriva.

Contesto al post inicial de Victor Luis, que decía esto:

Buenas a Todos ...

   * Descartando ó dejando de lado el criterio de "Divisibilidad" ... Qué otros criterios mas tenemos, o se tiene, para dar a entender y/o comprender, lo que es PRIMALIDAD?



5
Teoría de números / Re: Criterios sobre lo que es primalidad
« en: 31 Mayo, 2020, 01:07 am »
Un número entero positivo N se dice irreducible,
  si toda factorización N = A . B, con A, B, enteros positivos,
  implica que A = 1 ó B = 1.

Un número entero positivo N se dice primo,
  si para todo par de enteros positivos X, Y,
  tales que N | X . Y (o sea, N divide al producto X . Y),
  implica que N | X ó N | Y (o sea, N divide a X o bien N divide a Y).

Se puede demostrar que todo número primo es también irreducible.

En el caso de los enteros positivos (o también los enteros en general),
se puede demostrar que todo irreducible es también primo.

Pero hay estructuras algebraicas en las que no es equivalente ser primo que ser irreducible.

Por lo tanto, ahí tendrías una definición alternativa de número primo,
la de ser irreducible,
que aunque es equivalente para números enteros,
no lo es en otros contextos.

Por ejemplo, en el conjunto

  \(R = \{a+ i b \sqrt 5 : a,b\in\mathbb Z\}\),

se puede hablar de los conceptos de divisibilidad, primalidad e irreducibilidad.

Sólo que ahora, la condición A = 1 ó B = 1 de la irreducibilidad se cambia por |A| = 1 ó |B| = 1
(o sea, el valor absoluto o norma de A o de B es 1).

Por ejemplo, el número 3 sería irreducible pero no primo.
En este caso, 3 divide a \(9 = (2 + i \sqrt{5}).(2-i\sqrt{5})\),
pero no divide a ninguno de los factores del producto.



6
Anuncios / Re:¡Vuelve el foro!
« en: 20 Mayo, 2020, 05:06 am »
¡Felicitaciones! ¡Luce excelente! ¡Gracias por el gran trabajo!
Se nota que ha sido duro.

7
En efecto \(p\to p\) no es un razonamiento.
Es una proposición.

Usando terminología informática,
una proposición es una "string" (cadena de símbolos o caracteres),
mientras un razonamiento es un "algoritmo" que transforma una lista de "strings" (que llamaríamos premisas) en otra "string" (la conclusión).

Código: [Seleccionar]
string mi_razonamiento(string premisa_list[])
{
    string conclusion = "?";
    // Paso 1
    // Paso 2
    ...
    // Paso N (conclusión finalmente obtenida)

    return conclusion;
}

8
Hola masacroso.

Hace unos años diseñé un script en autohotkey
para generar comandos de LaTeX.
Creo que puede ser interesante para que compares con el tuyo, y quizás combines y experimentes ideas.

Está medio perdido en el siguiente hilo:

http://rinconmatematico.com/foros/index.php?topic=21452.msg86681#msg86681

Lo que me critico a mí mismo son dos cosas:
sólo adjunté el ejecutable, sin al fuente AHK.
(Creo que el AHK lo publiqué en el foro de AutoHotKey, pero ya ni me acuerdo.)

Así que aprovecho a agregar acá un archivo fuente de AutoHotKey,
aunque los comandos son diferentes del original
(o sea que no van a coincidir con la imagen GIF).
Es el archivo texboard0001.ahk.
He añadido el ejecutable para aquellos que quieran usarlo sin instalar AutoHotKey, aunque no es muy fácil descifrar lo que hace el programa si no se estudia el lenguaje de AutoHotKey... mmmm.
(Si alguien quiere usar mi script y desea un minitutorial, me avisa. Sólo escribiré al respecto si hay interés.)

La filosofía que apliqué creo que es diferente a la tuya.
Aunque uso abreviaturas, no es la intención principal hacerlo,
sino que hago un super-abuso de combinaciones de teclas, mediante CTRL, ALT, WINKEY, AppKey, entre otras cosas raras.
Cada combinación de teclas es "temática".
Por ejemplo, WinKey + letra, genera una letra griega; Win+Alt+Shift+flecha, genera una flecha.

Mi programita tiene algunos problemas.
Por ejemplo, dado que ciertas combinaciones de teclas
tienen prioridad del sistema Windows,
me cuesta generar la "lambda minúscula" de un modo coherente
respecto a como genero las otras letras griegas.

Además, estresar tanto las combinaciones del teclado a veces puede generar que el teclado falle, y se quede tildado, como por ejemplo, que el sistema crea que una tecla CTRL quedó presionada, cuando en realidad ya se soltó. Pero esas son fallas de AutoHotKey, y no de la lógica de programación que he empleado.






9
La afirmación de que \(\{\emptyset\}\) pertenece a \(\mathcal P(A)\)
es equivalente a que \(\{\emptyset\}\) es subconjunto de \(A\).
Esto equivale a decir que todo elemento del conjunto \(\{\emptyset\}\) es también elemento del conjunto \(A\).
El conjunto \(\{\emptyset\}\) tiene un único elemento, que es \(\emptyset\).
Por lo tanto, lo que estamos analizando es si \(\emptyset\) es, o no, un elemento de \(A\).
La respuesta a esta pregunta coincide con la respuesta a la pregunta originalmente formulada.

10
A mí me mostraba un mensaje de un problema relacionado con la región horaria.

11
Computación e Informática / Re: Programa en c
« en: 17 Marzo, 2020, 05:05 pm »
Para este tipo de consultas debieras volcar aquí una copia de los mensajes del compilador.

De todas maneras, veo que has colocado entre llaves los

break;

Me resulta raro.
No tengo claras las reglas de sintaxis
de forma exhaustiva de switch,
pero esa puede ser una fuente de error.

Un error claro está en la fumción lista.
Subject pretende ser puntero o array
y lo has leído como estructura al imprimir.
Falta el subíndice.

12
Por pequeña que sea la diferencia,
si el Sib no es mayor que el La#,
y tampoco es EXACTAMENTE igual,
entonces, desde un punto de vista matemático,
sólo queda una opción:

<

 ;D

13
¿Mimetex?

14
Y en un momento dado me pregunté que si tendría algún nombre la cejilla, el accesorio, para diferenciarla de la cejilla que se hace con el dedo.

No existe distinción. Se usa como argot guitarrero "capo" (del inglés) para distinguir la cejilla artificial de la que se hace con el dedo.

Y, aparte, metido en harina, me encontré con lo que dicen que es el primer tratado de guitarra, de Juan Carlos Amat; lo enlazo, y también un vídeo “conspirativo” sobre las guitarras de Antonio Torres; hablando de estas teorías raras precisamente  (de todo se encuentra ya )
https://www.alamy.com/guitarra-espaola-y-vandola1639-portada-author-amats-juan-c-location-biblioteca-nacional-coleccion-madrid-spain-image209183596.html
https://www.youtube.com/watch?v=F-3CdYh2PdE&t=138s

Vamos a verlo.

(*Argentinator, ¡la definición previa, que eres matemático :D ! )

Una opción es que el el conjunto de las notas músicales (y dentro de la misma octava) \( \mathcal N=\left\{{Do, D\#,\ldots, Si}\right\} \) se defina \( x\le y\Leftrightarrow y+n=x \) con \( n \) semitono y \( 0\le n\le 11 \). En tal caso, \( Sib < Fa\# \) pues \( Fa\# +4 =Sib \).

Otra opción es que Argentinator haya querido simplemente enredar.

Perdón.
Me equivoqué de nota. Quise decir:

Sib < La#

El contexto es un solo de violín.

En cambio, en un piano tenemos:

Sib = La#

Me baso en lo que dice acá:

https://es.quora.com/Cuál-es-la-diferencia-entre-sol-sostenido-mayor-y-la-bemol-mayor?top_ans=86865448

15
Sib < Fa#

16
Hay que traducirlo como: "y todo lo que dejamos sin mencionar,  que lo demuestre después el lector, a ver si es cierto que es menos holgazán que yo".

18
Foro general / Re: Curiosidad reglas de redondeo
« en: 06 Febrero, 2020, 01:00 pm »
Hola argentinator

¿Redondeo a la par? No lo había escuchado nunca, interesante. Lo primero que me salta en Google es una función de Excel: ñhttps://support.office.com/es-es/article/redondea-par-función-197b5f06-c795-4c1e-8696-3c3b8a646cf9

¿Es decir que si queremos redondear 3 quedaría 4? En ese caso, ¿por qué sería preciso o útil?

Gracias y saludos

El 3 en binario es 11 así que redondearía a 10,  que es 2.
El 5 es 101 así que redondearía a 6.

Para un número binario dado, es lo mismo redondear hacia arriba o hacia abajo cuando los dígitos a descartar terminan en 1000000..., pues ambos redondeos están a la misma distancia del valor exacto original.
La ambigüedad se debe resolver con una convención.
Una cosa que es de interés es minimizar el error promedio en un conjunto de valores grande, o sea que ya no estamos mirando un único número.

Entonces se procura que en promedio la mitad de los redondeos vayan hacia arriba y la otra mitad hacia abajo.
Uno podría elegir al azar hacia dónde redondear cada caso, con una distribución uniforme, pero introducir aleatoriedad complica y ralentiza los cálculos, y además tiene el problema de que un mismo número puede aparecer redondeado de dos formas distintas si se ejecuta un programa dos veces, quitándonos la posibilidad de analizar el algoritmo determinísticamente.

Así que una opción es redondear a la par.
Ahí ze obtiene un criterio bien determinado, que a la vez reparte el error estadísticamente de modo uniforme.



19
Foro general / Re: Curiosidad reglas de redondeo
« en: 06 Febrero, 2020, 12:30 pm »
El redondeo a la par existe,
pero como dice manooooh,
es un convenio.

Esto significa que una persona o estamento debe especificar de antemano qué tipo de redondeo va a usar.

En base decimal no es ese el convenio estándar.
Lo estándar es auempre redondear el 5 hacia arriba.

Sin embargo, como dice el enlace,
el reparto estadístico del error de redondeo  es mejor cuando se usa redondeo a la.par.

Por eso, en base binaria en el.formato estándar de punto flotante, la convención es usar redondeo a la par.
En este caso, no es el 5 lo que se redeondea,  sino el dígito 1.

En cualquier caso, un lenguaje de programación ha de permitir al.programador establecer el método de redondeo deseado.

20
Computación e Informática / Re: Tamaño de bytes de un fichero
« en: 23 Enero, 2020, 07:49 pm »
Existen métodos para cambiar la posición del cabezal del archivo, por ejemplo hasta el final del archivo.
Existen métodos para averiguar la posición actual del cabezal del archivo.
Luego, se puede obtener el tamaño de un archivo en 2 pasos. Primero,  mover el cabezal alemán final; segundo leer el número de posición del cabezal cuando lo hemos movido al final del archivo.

Busca información sobre los métodos seekp y tellp o similares.

Páginas: [1] 2 3 4 ... 302