¿Le resulta difícil buscar respuestas a sus preguntas sobre Raspberry Pi? ¿Busca ayuda para comenzar un proyecto? ¿Tiene alguna pregunta que necesita respuesta? ¿Una pregunta para la que solo has hecho investigación básica? ¿Tal vez algo que piensas que todos menos tú sabes? P: ¿Alguien tiene alguna idea de lo que puedo hacer con mi Pi? A: Prácticamente cualquier cosa, puedes ver infinidad de proyectos en internet . P: Mi Pi se comporta de manera extraña, ¿qué hago? R: La tarjeta SD es mala o problemas de energía. El 99.999% de las veces es una de estas dos cosas. P: ¿Qué modelo de Raspberry Pi debería obtener? R: Obtenga la Raspberry Pi 4B con 4GB de RAM P: ¿Puedo usar la tarjeta SD de otra Pi en mi Pi 4? R: Solo si la tarjeta SD ya tiene Raspbian Buster P: Encontré una guía antigua que me dice exactamente cómo hacer algo, ¿debería seguirla? A: Sí, síguelo. Si te quedas atascado, regresa y describe en google el paso exacto en el que estás atascado. P: ¿Cuándo se l...
esto si que viene bien para el examen:
ResponderEliminar--------------------------------------
(burbuja + centinela)
#include
using namespace std;
// Definición de constantes
const unsigned int MAX = 10;
// Definición de tipos
typedef int TpElemento; // Debe permitir los operadores relacionales
typedef TpElemento TpVector[MAX];
struct TpDatos{
TpVector v;
unsigned int numDatos;
};
// Ordena en orden creciente una lista de datos
void OrdenarPorIntercambio(TpDatos &dato);
// Escribe por pantalla los datos
void EscribirDatos(const TpDatos &datos);
int main(){
TpDatos datos = {{10, 5, 11, 44, -7, 12, 14, -6, 21, 129},10};
cout << "Los datos son: " << endl;
EscribirDatos(datos);
OrdenarPorIntercambio(datos);
cout << "Los datos son ORDENADOS son: " << endl;
EscribirDatos(datos);
return 0;
}
// Ordena en orden creciente una lista de datos
void OrdenarPorIntercambio(TpDatos &datos){
TpElemento temp;
unsigned int i;
bool hayInter = true;
i = 1;
while (i < datos.numDatos && hayInter){
hayInter = false;
for (unsigned int j = datos.numDatos-1; j >= i; --j){
if (datos.v[j-1] > datos.v[j] ){ // ¿Intercambiar?
// Intercambiamos los elementos:
hayInter = true;
temp = datos.v[j-1];
datos.v[j-1] = datos.v[j];
datos.v[j] = temp;
}
}
++i;
}
}
void EscribirDatos(const TpDatos &datos){
for (unsigned i=0; i<datos.numDatos; ++i){
cout << datos.v[i] << ' ';
}
cout << endl << datos.numDatos << " elementos." << endl;
}
(búsqueda secuencial + centinela):
ResponderEliminar#include
using namespace std;
// Definición de constantes
const unsigned int MAX = 10;
// Definición de tipos
typedef int TpElemento;
typedef TpElemento TpVector[MAX+1];
struct TpDatos{
TpVector v;
unsigned int numDatos;
};
// Declaración de prototipos
// Algoritmo de búsqueda secuencial: si encuentra
// el elemento, devuelve true; false, si no lo
// encuentra. Se hace búsqueda con centinela:
// el elemento a buscar se inserta en la posición
// datos.numDatos.
// PRECONDICIÓN: datos.numDatos >= 0 && datos.numDatos<=MAX
bool BuscarSecCent(TpDatos &datos, const TpElemento x);
// Escribe por pantalla la lista de datos
void EscribirDatos(const TpDatos &datos);
int main(){
TpDatos datos = {{10, 5, 11, 44, -7, 12, 14, -6, 21, 129, 0},10};
TpElemento elem;
cout << "Los datos son: " << endl;
EscribirDatos(datos);
cout << "Introduzca un elemento a buscar: ";
cin >> elem;
if (BuscarSecCent(datos, elem)){
cout << elem << " está en la lista de datos." << endl;
}
else{
cout << elem << " NO está en la lista de datos." << endl;
}
}
bool BuscarSecCent(TpDatos &datos, const TpElemento x){
bool encontrado = false;
unsigned int ind = 0;
datos.v[datos.numDatos] = x; // Se inserta el centinela
while (datos.v[ind] != x){
ind++;
}
if (ind != datos.numDatos){
encontrado = true;
}
return encontrado;
}
void EscribirDatos(const TpDatos &datos){
for (unsigned i=0; i<datos.numDatos; ++i){
cout << datos.v[i] << ' ';
}
cout << endl << datos.numDatos << " elementos." << endl;
}
(búsqueda binaria):
ResponderEliminar#include
using namespace std;
// Definición de constantes
const unsigned int MAX = 10;
// Definición de tipos
typedef int TpElemento;
typedef TpElemento TpVector[MAX];
struct TpDatos{
TpVector v;
unsigned int numDatos;
};
// Declaración de prototipos
// Algoritmo de búsqueda binaria: si encuentra
// el elemento, devuelve true; false, si no lo
// encuentra
bool BuscarBin(const TpDatos &datos, const TpElemento x);
// Escribe por pantalla la lista de datos
void EscribirDatos(const TpDatos &datos);
int main(){
TpDatos datos = {{-1, 3, 5, 7, 11, 13, 15, 17, 19, 21},10};
TpElemento elem;
cout << "Los datos son: " << endl;
EscribirDatos(datos);
cout << "Introduzca un elemento a buscar: ";
cin >> elem;
if (BuscarBin(datos, elem)){
cout << elem << " está en la lista de datos." << endl;
}
else{
cout << elem << " NO está en la lista de datos." << endl;
}
}
bool BuscarBin(const TpDatos &datos, const TpElemento x){
bool encontrado = false;
unsigned int izq, der, m;
izq = 0;
der = datos.numDatos - 1;
while (izq <= der && !encontrado){
m = (izq + der) / 2; // Posición central de la lista
if (datos.v[m] == x){
encontrado = true;
}
else if (datos.v[m] < x){
izq = m + 1; // Buscamos en la mitad derecha
}
else{
der = m - 1; // Buscamos en la mitad izquierda
}
}
return encontrado;
}
void EscribirDatos(const TpDatos &datos){
for (unsigned i=0; i<datos.numDatos; ++i){
cout << datos.v[i] << ' ';
}
cout << endl << datos.numDatos << " elementos." << endl;
}
Gracias por la aportación juanma, seguro q nos pone alguna ordenación si que si.
ResponderEliminarSuerte y al toro!!!!
la lástima ha sido que no había internet jajajaja
ResponderEliminarPues al final, ni ordenación, ni na.
ResponderEliminarMe esperaba otro tipo de examen.