C/Visual C - Problema recursivo de Examen

 
Vista:

Problema recursivo de Examen

Publicado por mix (5 intervenciones) el 20/06/2008 02:41:23
Tengo un gran problema, el martes tengo un examen de programacion en la Universidad pero no puedo acudir a preguntar dudas pues estudio en casa "fuera de la ciudad", tengo el siguiente problema que no se resolver.

Dada la siguiente definición de tipos para una lista enlazada de enteros:

1
2
3
4
5
typedef struct nodo {
int dato;
nodo* suc;
};
typedef nodo* puntero;

Escribe una función RECURSIVA en C++ que, dada una lista l, inserte el valor 0 entre cada par de números
primos consecutivos.
Además, debe devolver el número de ceros que se han insertado.
Supondremos que todos los elementos de la lista son números mayores o iguales que 2.
Ejemplos:
- Si la lista es [2, 3, 4, 5, 6, 7, 8],
la lista quedaría [2, 0, 3, 4, 5, 6, 7, 8] y el valor devuelto sería 1.
- Si la lista es [5, 7, 11, 7, 5],
la lista quedaría [5, 0, 7, 0, 11, 0, 7, 0, 5] y el valor devuelto sería 4.
- Si la lista es [ ],
la lista quedaría [ ] y el valor devuelto sería 0.

El principal problema es hacerlo recursv, si no fuese asi si sabria hacerlo pero no se como hacer las llamadas recursivas para poder en caso necesario de eliminar un elemento hacer ke la lista quede enlazada.Me comprenden??
Espero me ayuden estoy agobiado con este tipo de problemas.
Muchas gracias a todo es buenos programadores.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Gracias a todos "ironia"

Publicado por mix (5 intervenciones) el 24/06/2008 20:17:46
Yaresolvi el problema fui a la universidad y me lo resolvio el profsr de programacion, no comprendo como en una semana nadieme resolvio la duda, pense ke este foro la gente era un poco mas desinteresada y podia ayudarme, pero sinceramente me era urgente y perdi ese ejercicio y nadie aporto nada. El ejercicio no dire como se resuelve es facil si alguienm kiere saberlo me lo diga o aprenda por tro lado, en el foro no pondre mas ayudas,Adios y un saludo a los "buenos"programadores y fopreros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias a todos

Publicado por fernando.gomez (1603 intervenciones) el 30/06/2008 19:00:46
"El ejercicio no dire como se resuelve es facil si alguienm kiere saberlo me lo diga o aprenda por tro lado"

Precísamente por eso nadie te ayudó. Querías que hiciéramos tu tarea por tí, cuando es una tarea fácil que pudiste haber incluso buscado en Google. =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias a todos

Publicado por Gracias??? (5 intervenciones) el 01/07/2008 00:27:38
Dos cosillas:
La primera, nos pedi por favor que si alguien sabia resolveerlo, no pedia la solucion sino la manera de hacerlo, ya que yo el codigo no lo piodo en ningun lado, lo que me interesaba era aprenderlo pues a ls dos dias tenia el examenn.
Por otro ya busque en google, sino no hubiese comentado aqui para pedir ayuda si la hubiese entcontrado, comprenderas que hay mejores formas de perder el tiempo si tienes la solucion ya a un problema que no repetirlo 1000 veces, y tan facil no era porque el profesor ded la uni me lo resolvio"expliko el algoritmo" por email y no me kedo claro, tuve ke ir a su despacho personalemete despues dele examen,soybastante nuevo en la progamacion, pero nada, gracias a todos "Fernando".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema recursivo de Examen

Publicado por igor (22 intervenciones) el 03/07/2008 20:19:41
El problema no es que nadie haya resuelto el problema en 3 días.

La gente ayuda en problemas concretos, no resuelve ejercicios completos. Si por lo menos huvieras puesto un código para corregir.

El problema es que a 3 días del examen no te va a ayudar nadie. Has tenido tiempo para aprender y preguntar sobre cualquier programa.

Si lo que quieres es aprender yo estaré disponible. Si quieres sacar el título por la cara, por lo menos ten un poco de respeto por los que ya tenemos títulos.

Repito, ayuda para lo que quieras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema recursivo de Examen

Publicado por Resuelto en Visual Basic (1 intervención) el 08/11/2008 11:29:04
Encontré este foro buscando funciones recursivas para un alumno. Aunque tenía que hacerlo en Pythom se lo mostré en VBA (Access). Puse dos cuadros de texto (inicial y final) y un botoncejo. El código quedó así ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Public Function listaespecial(Li, Lf, p, tpc) As String
    Dim valor
 
    If p > (Len(Li) - 1) Then listaespecial = Lf: MsgBox "El número de pares primos era: " & tpc: Exit Function  ' caso trivial, hemos terminado de examinar la lista 1
    ' caso recursivo
    valor = CLng(Mid(Li, p, 1))
    siguiente = CLng(Mid(Li, p + 1, 1))
    If primo(valor, valor - 1) And primo(siguiente, siguiente - 1) Then
        Lf = Lf & valor & "0"
        tpc = tpc + 1
        p = p + 1
        ' y ahora la llamada recursiva
    Else
        Lf = Lf & valor
        p = p + 1
        ' y ahora la llamada recursiva
    End If
   listaespecial = listaespecial(Li, Lf, p, tpc)
End Function
 
Public Function primo(n, a) As Boolean
    If a <= 1 Then primo = True: Exit Function
    If (n Mod a) = 0 Then primo = False: Exit Function
    primo = primo(n, a - 1)
End Function
Private Sub Comando4_Click()
    ' defino las variables
    Dim listainicial As String
    Dim listafinal As String
    Dim posicion As Integer
    Dim contador As Integer
    
    ' inicializamos las variables
    listainicial = "" & INICIAL
    listafinal = ""
    posicion = 1
    contador = 0
 
  ' Protección
    If Len(listainicial) < 2 Then MsgBox "Al menos dos caracteres /  valores debe haber en la lista 1 que lo sepas": Exit Sub

   ' Lanzamos la función recursiva
    FINAL = listaespecial(listainicial, listafinal, posicion, contador)
End Sub
****
Por cierto, funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar