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 - mark255

Páginas: [1]
1
Buenas, mejor dejar el código en el propio hilo y asi evitar pérdidas. En https://aprenderaprogramar.com/foros/index.php?topic=1460.0 está explicado cómo pegar código.

....

Salu2
hola ogramar

entiendo lo que dices y sería así, si al insertar el código este tuviese coloreado  :)
tal como queda en el foro (así lo veo yo) no facilita la lectura además de que queda muy anticuado  :(
 
en los enlaces si va coloreado y en algunos también se puede ejecutar y ver el funcionamiento del programa  ;)

puestos a pedir pediría un tema oscuro para la página  8)

por otro lado el enlace que me has pasado esta muy bien explicado   
pero para encontrarlo he tenido buscar y pasar por 15 mensajes que poco tiene que ver con el insertado de códig??? , lástima no halla una manera de ir directamente a un mensaje concreto

saludos

2
hola jorge

parece que el código te sirvió, me alegro  ;)
no sabía que el pastebin duraba solo una semana, dejo otros que creo han de durar  :)

https://www.online-ide.com/vFp2VZeYBE

https://www.onlinegdb.com/BJogtuf0P

https://pastebin.onionsearchengine.com/paste.php?id=401

saludos

3
hola jorge

desde luego hay que darle un poco al tarro y tener claro lo
que quieres para darle solución

te digo un poco como lo he hecho y te reiras del poco código que lleva

hice una función para el incremento rotativo es decir que si estas en
medio del array y llegas la final, siga contando desde el principio
eso no tiene secreto

para el bucle, si lo ves esta muy claro pero para llegar ahí he tenido
que hacer algunas pruebas y simplificar un poco

espero te guste como ha quedado, creo que funciona bien  ;)

https://paste.ofcode.org/5SrtWQH9tWjVZfvkqWmmhJ

suerte  :)

4
hola alejandra
te paso un código para saber si es palíndromo hecho sin pilas

Código: [Seleccionar]
enum { no, si };

#define TAM 30          // longitud máxima de la palabra

#include <stdio.h>
#include <string.h>

int main(void)
{
   char cadena[TAM];    // guarda la palabra
   int  es_pal = si;    // bandera de si es palíndromo

   // petición de la palabra
   printf("Introduzca una palabra y le diré si es un palíndromo: ");
   scanf("%s", cadena);

   // determina si es palíndromo
   for(int i = 0, j = strlen(cadena)-1; i<j; i++, j--)
      if(cadena[i] != cadena[j]) { es_pal = no; break; }
     
   // visuliza si es palíndromo
   printf("La palabra %s %ses un plalíndromo\n", cadena, es_pal ? "" : "no ");

   return 0;            // finalización correcta del programa
}

/* en respuesta a alejandra
   https://aprenderaprogramar.com/foros/index.php?topic=7795.0

   de mark255
*/

link del código

lo que no entiendo es como quieres hacer el programa con una pila ya que si piensas en los caracteres como platos de una pila,

como vas a comparar el primero con el último ??

para llegar al primero tienes que sacarlos todos  ya que esta abajo en la pila ¿?

suerte ;-)

5
Hola Alejandra, te comento lo que voy viendo y quizás quieras cambiar:

- Veo que no pones retorno en main y los paréntesis vacíos   de los prototipos y definiciones no llevan void como mandan   los cánones
- en [crear pila] no veo que reserves memoria, con lo que cima   es una variable temporal que desaparece al salir de la función   es decir solo sirve para imprimir y devolver un null que no usas,   puedes sustituirla por: printf("Pila creada."); es lo mismo
- [main] lo usas para llamar a insertar palíndromo y no la usas para   que contenga la lógica principal del programa
- en [pila vacía] la usas para preguntar por ella en vez de  preguntar por null que es lo mismo
- no se bien la lógica que pretendes pues si solo introduces una   palabra para que necesitas una pila, es que vas a introducir varias palabras o lo que quieres es tener un carácter en cada nodo ya que dato es un string y intentas visualizar un carácter
  enviando un puntero  :(
- en [insertar palíndromo] además de crear las variables en cualquier lado, primero eliminas el nodo y luego imprimes  ???


Bueno no lo he revisado a fondo pero en general deberías hacerte un
diagrama de flujo con el algoritmo que pretendes usar y ver ahí que
todo va bien, depuralo y luego pasalo a código, te ira todo mucho mejor

 
te paso el enlace a unos videos de estructuras de datos que puede te de
una muy buena orientación a las listas

 
mucha suerte Alejandra  :)
chao chao
 

6
hola elendur
a mi tampoco me gustaba como estaba planteado el ejercicio y solo he puesto asteriscos impares, queda mas bonito ;-)

mando otra posible solución  :D

Código: [Seleccionar]
#define MIN 3     // longitud mínima del rombo
#define MAX 23    // longitud máxima del rombo

#include <stdio.h>

int main(void)
{
   int longitud;
   
   printf("Introduce un número impar entre %d y %d: ", MIN, MAX);
   scanf("%2d", &longitud);
   
   // número erroneo
   if(longitud < MIN || longitud > MAX || longitud%2 == 0) return 1;   

   for(int i = 1, aporte = 2; 0 < i; i+=aporte)       // dibujo el rombo
   {
      putchar('\t');                                  // separación
      for(int j = longitud-i; j; j-=2) printf(" ");   // espacios
      for(int j = i; j--;)             printf("*");   // asteriscos
      putchar('\n');                                  // nueva línea
      if(i == longitud) aporte = -2;                  // invertir el aporte
   }

   return 0;
}

/* en respuesta a elendur
 * https://aprenderaprogramar.com/foros/index.php?PHPSESSID=u10qb2eusmeambnifoh9a207ii&topic=7651.0
 *
 * de mark255
 */


--> link

chao chao

7
hola ogramar

debido a expresiones como for(int y = 0; ...

parece que tienes c99 como estandar por defecto, mira en las opciones del compilador y podrás cambiarlo, en gcc por ej es añadiendo -std=c11 mas acutal

suerte

8
hola alejandra

he hecho un programa que quizás te pueda servir como guía, no se si he acertado en lo que pretendes, pero seguro alguna cosa puedes utilizar  ;)

no me gusta como queda el código aquí  :-*

así que te lo paso en este link -> https://linkode.org/#Kscp1iCGuja4w3GM48bL77


9
Alguien sabe cómo poner símbolos como el signo de interrogación abierto y cerrado?

Puedes usar la función
setlocale(LC_CTYPE, "Spanish"); que se encuentra en la libreria #include<locale.h> de C.
Espero te sirva.

efectivamente lo suyo seria con locale, aunque en gnulinux no me hace falta
sale perfecto igual  ;)

Código: [Seleccionar]
#include <stdio.h>
#include <locale.h>

#define FIL 4
#define COL 50

int main()
{
   // Establecer el idioma a español
   setlocale(LC_ALL, "spanish");
   
   char texto [FIL][COL] =
   { 
      "<<El antílope está hecho añicos>>",
      "<<Hoy llueve>>",
      "<<El cañón es corto>>",
      "<<aprenderaprogramar>>"
   };

   for(int i = 0; i < FIL; i++)     // para las filas
   {
      for(int j = 0; j < i+1; j++)   // para los tabuladores
         printf("\t");
      printf("%s\n", texto[i]);
   }

   return 0;
}

ah, el resaltado de codigo sin colores es bastante soso ¿no?
quizás se vea mejor aquí: https://linkode.org/#jMbxXa4lFEHPTVQ18UeLS6   :)

10
hola alejandra

seria interesante saber que pretendes con este programa,
así como cual es el formato de entrada y que esperas en la salida

se puede imaginar pero con mas información mejor diagnostico

errores y/o posibles mejoras:
- lo primero es que remplazar es horrible, facilmente mejorable
  si es numérico resata 48 a num[ i], si es mayuscula ...
- el main se escribe completo con valor de retorno
- en el scanf pide un puntero, puede ser &entrada[0] o entrada pero no &entrada
- delim es una constante y la declaras como una variable
  luego no usas la constate en strstr y el segundo strtok
- en strcpy (base, "10"); intentas meter tres chars en base de solo dos
- en el printf del resultado %i no es para unsigned
- cuando llamas a partes te pasa como con scanf, envia solo el puntero
- en el for de getval i no puede valer NULL, no es un puntero
- en el if de getval haces *valorptr = 125; pero declaras unsigned int **valorptr
- en remplazar otro tanto con partes
- en validar en el if intentas convetir un puntero en un int

espero que con esto mejore tu programa

suerte ;-)

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".