Problemas Resuelto Recursividad Programación II - Capitulo 1


Problemas resulto de la materia programación II

Problema 1:

Escribir una función que devuelva true si un vector contiene únicamente cadenas palíndromas. Una cadena es palíndroma si se leen igual de izquierda a derecha como de derecha a izquierda .(20 Ptos)

Ej.1 v["oso", "oruro", "reconocer", "arenera"] ==> true
Ej2. v["rotor", "aibofobia","sala", "ala"] ==>false
La respuesta debe estar máximo en dos funciones
void InvertirCad(String &Cad){byte L=Cad.Length(); if ((L<=1)||(Cad=="")){ Cad=Cad; }else { String c=Cad.SubString(1,2); Cad.Delete(1,2); InvertirCad(Cad); Cad=Cad+c[2]+c[1]; }}bool Palíndromas(TStringGrid *Vec,byte Dim){Boolean B=true; if (Dim>=1) { B=Palíndromas(Vec,Dim-1); String C1=Vec->Cells[Dim-1][0]; String C2=Vec->Cells[Dim-1][0]; InvertirCad(C2); if (C1!=C2){ B=false; } } return B;}void __fastcall TForm1::Palabraspalndromas1Click(TObject *Sender){ Boolean B=Palíndromas(SGVector,SGVector->ColCount); if (B==true){ TSalida->Text="true"; }else TSalida->Text="false";}

⇜⇝⇜⇝⇜⇝⇜⇝

Problema 2:
Escribir una función que devuelva una cadena formada por los dígitos de un número repetidos la cantidad de veces que el dígito representa. Máximo 2 funciones.

Ej. CadDeDigitos(5021)=>"55555221"

String repetido(Cardinal n, Cardinal v) { String cad; if (n == 0) cad = ""; else cad = repetido(n - 1, v) + String(v); return cad;} String CadDeDigitos(Cardinal n) { String cad; if (n < 10) cad = repetido(n, n); else { Byte dig = n % 10; n = n / 10; cad = CadDeDigitos(n) + repetido(dig, dig); } return cad;}

⇜⇝⇜⇝⇜⇝⇜⇝

Problema 3:
Escribir procesos (pueden escribir hasta 2 procesos) para cargar una matriz cuadrada de la siguiente forma:

Amxm

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

5 6 7 8 9

void aux_diag(TStringGrid * m, Cardinal f, Cardinal c, Cardinal v) { if (f > 0 && c <= m->ColCount) { m->Cells[c - 1][f - 1] = v; aux_diag(m, f - 1, c + 1, v); }} //Aqui entra el valor de v, v = 9 void diagonales(TStringGrid* m, Cardinal f, Cardinal c, Cardinal v) { if (c > 0 && f > 0) { aux_diag(m, f, c, v); if (c == 1) diagonales(m, f - 1, c, v - 1); else diagonales(m, f, c - 1, v - 1); }}

⇜⇝⇜⇝⇜⇝⇜⇝

Como estudiante autónomo que todavía está aprendiendo c++.

Organizo mi comprensión del conocimiento en la forma de aprender y compartir, y también espero poder darles una referencia. Como progresar con todos, si hay algún error, espero que todos puedan corregirme.

¡Muchas gracias! Si te gusta, ¡síguelo! O (∩_∩) O

Gracias por su apoyo



ADVERTENCIA: NO INTENTE HACER UN ATAQUE SIN EL PERMISO DE PROPIETARIO DEL SITIO WEB. ES UN PROPÓSITO EDUCATIVO SOLAMENTE.

NO ES RESPONSABLE DE NINGÚN TIPO DE PROBLEMA ILEGAL.

PERMANECE LEGAL.

GRACIAS!

Si tienes algún problema, deja un comentario y comparte tú opinión.

¿Ha quedado contestada su pregunta?

Mi nombre es Luishiño aquí es donde me gusta escribir sobre temas que en su momento me interesan. Aveces sobre mi vida personal y principalmente cosas de programación ,desarrollo web.Aplicaciones,Software, programas que yo mismo las desarrollo y cosas básicas de informática..

Fuente: este post proviene de The Seven Codes, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

SISTEMA DE DIAGNOSTICO Se desea diseñar un diagrama de clases para administrar el trabajo del médico que mediante una cuenta de usuario deberá: • Un administrador se encargará de administrar el sistem ...

¿Qué es el SQL injection? Una inyección de SQL, a veces abreviada como SQLi, es un tipo de vulnerabilidad en la que un atacante usa un trozo de código SQL (lenguaje de consulta estructurado) para mani ...

Etiquetas:

Recomendamos