Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - anonimo115

#1
Ejercicios / Cosa rarisima en codigo c++
19 Agosto 2017, 11:24 AM
Buenos días.
Me tendria que salir ANA 1 15 19 pero sin embargo me sale ANA 15 19.
No se por qué se come la primera posición.
¿Podríais por favor echarle un vistazo?

Este es el enunciado



y este mi codigo

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
const unsigned MAX_PAL_DIST=20;
const unsigned MAX_REP=20;
typedef int TArrayPosiciones[MAX_REP];

struct TPalabra{
unsigned numpos;
string palabra;
TArrayPosiciones arrpos;
};

typedef TPalabra TArrayPalabras[MAX_PAL_DIST];

struct TVector{
unsigned numelem;
TArrayPalabras arrpal;
};

bool esPalindromo(const string& palabra){
    string aux="", aux2="";
for(unsigned cont=0; cont<palabra.size();cont++){
    aux+=palabra[cont];
}
for(int cont=palabra.size()-1; cont>=0;cont--){
    aux2+=palabra[cont];
}
return aux==aux2&&aux.size()>1;
}

bool primeraVez(const string& palabra, const TVector& vect){
bool laprimera=true;
int cont=0;
while(laprimera&&cont<vect.numelem){
    if(vect.arrpal[cont].palabra==palabra){
        laprimera=false;
    }
    ++cont;
}
return laprimera;
}

int buscaPalabra(const string& palabra, const TVector& vect){
int cont=0;
while(vect.arrpal[cont].palabra!=palabra){
    ++cont;
}
return cont;
}

void muestraPalabra(int pos, const TVector& vect){
cout<<vect.arrpal[pos].palabra<<" ";
for(unsigned cont=0;cont<vect.arrpal[pos].numpos;cont++){
    cout<<vect.arrpal[pos].arrpos[cont]<<" ";
}
}

void mostrarVector(const TVector& vect){
for(unsigned cont=0;cont<vect.numelem;cont++){
    muestraPalabra(cont, vect);
    cout<<endl;
}
}

int main(){
string palabra;
int cont=0;
TVector vect;
vect.numelem=0;
cout<<"Introduzca su texto (FIN para terminar)"<<endl;
cin>>palabra;
++cont;
while(palabra!="FIN"&&cont<MAX_PAL_DIST){
    if(esPalindromo(palabra)){
        if(primeraVez(palabra, vect)){
            vect.arrpal[vect.numelem].numpos=0;
            vect.arrpal[vect.numelem].palabra=palabra;
            vect.arrpal[vect.numelem].arrpos[0]=cont;
            ++vect.numelem;
            ++vect.arrpal[vect.numelem].numpos;
        }else{
            int pos=buscaPalabra(palabra, vect);
            vect.arrpal[pos].arrpos[vect.arrpal[pos].numpos]=cont;
            ++vect.arrpal[pos].numpos;
        }
    }
    ++cont;
    cin>>palabra;
}
mostrarVector(vect);
}


Muchas gracias de antemano
#2
Hola.
Antes de nada decir que no quiero hacer un copy paste de lo que voy a pedir y que hasta que me lo pasen voy a seguir intentándolo hacer por mi cuenta.
Pero el caso es que la entrega es hoy y me he cambiado a un grupo en el que la practica es hoy por lo que he tenido menos tiempo que mis compañeros.
Os dejo lo que he intentado para demostrar que he hecho algo.
De verdad que estoy agobiadisimo

https://hastebin.com/abapaheqif.coffeescript

Esto es lo que he intentado

Esto es lo que se pide:

Copia el código anterior con el nombre maximoVector.s y modifícalo para que en vez de sumar los elementos del vector datos, lo que almacene en res sea el valor máximo encontrado en dicho vector.
Ejecuta el código que has creado y comprueba su correcto funcionamiento. Haz
varias pruebas cambiando el tamaño y los valores almacenados en el vector (por
ejemplo tamaño 1, todos los elementos negativos, ...).


Este es el código en el que se basa

https://hastebin.com/mujesagobu.coffeescript

No pienso entregarle esto tal cual ya que soy un chico honrado y posiblemente esté leyendo esto xD
Solo pienso entenderlo y reescribirlo.
Ruego que me lo pasen ya que la entrega se cierra hoy y si no la subo será material que no tendré para el examen final
#3
Cita de: ivancea96 en 13 Marzo 2017, 10:33 AM
Yo no programo ARM. El código, a simple vista, me <parece> correcto.

Lo que te puedo decir es... ¿no tienes forma de depurarlo línea a línea?
O al menos, sacar información cada ciclo del bucle de qué valores tienen r2 y r3.

Es que no he programado absolutamente nada en arm. he mirado alguna transparencias por tratar de entender el codigo.
Me he cambiado de clase (2º profesor con mayor indice de suspensos de españa en el anterior grupo) y no tengo ni idea.

es que segun lo que yo entiendo en r2 guarda el primer valor del array.
en r4 el segundo.
pero en add r3,r3,r4 sumaria 0+4. ¿el dos se lo ha comido no?
#4
Es que no suma el primer 2 del array ¿empieza directamente en el 4 no?
Por favor. tengo que entregar esa practica hoy

Código (cpp) [Seleccionar]
.data
tam: .word 8
datos: .word 2, 4, 6, 8, -2 -4, -6 -7
res: .word 0
.text
.global main
main: ldr r0, =tam
ldr r1, [r0]
ldr r2, =datos
mov r3, #0
loop: cmp r1, #0
beq sal
ldr r4, [r2], #4
add r3, r3, r4
sub r1, #1
b loop
sal: ldr r0, =res
str r3, [r0]
bx lr


#5
He intentado este ejercicio pero es que no hay manera.
Si alguien puede ayudarme se lo agradezco



Este es el codigo

https://hastebin.com/uyiriwohat.cpp