Ejercicios para repasar y estudiar
Vamos a hacer una serie de ejercicios sencillos con los que repasaremos lo aprendido en este bloque de análisis. Primero recordemos lo que debemos saber:
- Insertar sin duplicados
- Contar elementos dentro de un vector
- Hacer un menú con opciones.
- Trabajar de forma fila/columnas con una matriz de 2 dimensiones
- Borrar de un vector o una matriz
- Dibujar DFD de Nivel o y Nivel1
Ejercicios
- Rellena sin duplicados un vector alfanumérico de 15 elementos.
- Rellena sin duplicados un vector numérico de 15 elementos.
- Haz un menú que nos permita elegir entre los dos ejercicios anteriores
- Modifica el ejercicio 2 para que se rellene casilla a casilla
- Amplia el ejercicio 4 para que en cualquier momento podamos contar las casillas llenas.
- Amplia el ejercicio 4 para que en cualquier momento podamos borrar una casilla.
- Amplia el ejercicio 2 para que se ordenen los elementos del vector tras su inserción.
- Amplia el ejercicio 6 para que tras el borrado se ordene de nuevo el vector.
- Haz un ejercicio que almacene alumnos con nombre y apellidos
- Modifica el ejercicio anterior para que podamos borrar alumnos.
Originally posted 2010-11-30 19:01:07.
Hola Juan Luis, el ejercicio 3 me tiene atascada:
Proceso hacer_menu
Dimension alfanumerico[15];
Dimension numerico[15];
Para i<-1 Hasta 15 Con Paso 1 Hacer
alfanumerico[i]<-"vacio";
numerico[i]<-0;
FinPara
i<-1;
j<-1;
valor<-0;
Mientras valor<3 Hacer
Escribir "selecciona una opcion:";
Escribir "1. Rellenar vector alfanumerico";
Escribir "2. Rellenar vector numerico";
Escribir "3. Salir";
Leer valor;
Segun valor Hacer
1:
Escribir "Introduce letras";
Para i<-1 Hasta 15 Con Paso 1 Hacer
leer letras;
duplicado<-0; //inicializamos duplicado dentro del para pq si no se quedaría activado//
Para j<-1 Hasta 15 Con Paso 1 Hacer
si vector[j]=letras Entonces
duplicado<-1;
FinSi
FinPara
Si duplicado=0 Entonces
vector[i]<-letras;
Sino
Escribir "esa letra ya ha sido insertada";
FinSi
FinPara
2:
Escribir "introduce un numero:"
Para i<-1 Hasta 15 Con Paso 1 Hacer
Leer numero;
duplicado<-0;
Para j<-1 Hasta 15 Con Paso 1 Hacer
Si vector[j]=numero Entonces
duplicado<-1
FinSi
FinPara
Si duplicado=0 Entonces
vector[i]<-numero;
Sino
Escribir "ese numero ya ha sido insertado";
FinSi
FinPara
3:
escribir "hasta otra";
FinSegun
FinMientras
FinProceso
el error que me da es como siempre subindices fuera de rango en:
Para j<-1 Hasta 15 Con Paso 1 Hacer
Si vector[j]=numero Entonces
duplicado<-1
FinSi
FinPara
Tú ves porqué?
Y otra cosa, no entiendo bien qué tenemos que hacer en el ejercicio 4. ¿qué quiere decir: "para que ser rellene casilla a casilla"?
El error no lo veo, ya saber pon un escribir por delante y otro por detrás para ver el error.
La otra pregunta:
En este ejercicio, el tres, rellenas todo el vector del tiron, en el siguiente debemos tener un menú (como los quesos o los jamones) con una opción insertar elemento que cada vez que se seleccione pida un nuevo elemento para el vector.
hola,cuando pides en un ejercicio que se pueda borrar una casilla lo hemos hecho dejando el vacío en medio y también juntando luego las datos y dejando todos los vacíos al final. De cara al examen de mañana cuando pidas que borremos algo si dejamos el vacío en medio ¿estaría bien? es que cuanto mas estoy haciendo los ejercicios peor me salen creo que me estoy aprendiendo de memoria la estructura y cuando pides algo mas simple me complico la vida sin necesidad.
Cuando quiera que se vuelvan a colocar así lo pediré y siempre será con datos numéricos. Se re-colocan simplemente ordenándolos.
alberto yo cada vez me lio nás
juan luis no soy capaz de sacar el ejercicio de borrar llevo todala tarde con eso.No doy pie con bola ¿me podrias explicar como hacerlo?gracias.
Supon este vector ya inicializado a cero. (<-0)
Dimension vector[10];
Para borrar tenemos que hacer tres cosas:
1.- Pedir el elemento a borrar
2. Segunda recorrer toda la estructura buscándolo y si lo encuentro paso al punto 3
3.-Borrarlo, es decir ponerle valor de inicialización
Sería
Escribir "Diga el elemento a borrar"; //Pido elemento a borrar y lo leo en elemento
Leer elemento;
//recorro todo el vector en busca del elemento y si lo encuentro le meto un cero, porque su valor de inicialización
Para i<-1 hasta 10 hacer
si vector [i]=elemento entonces
vector[i]<-0;
finsi
finpara
gracias por contestarme,esto lo entiendo perfectamente pero sabes què pasa? que al haber vector de letras y número cuando dimensiono el auxiliar me pierdo. He tenido que dimensionar dos auxiliares uno inicializado a “vacio” y otro a 0 y meterlo dentro del apartado de menú “crear lista”sino no era capaz.
No sé si está bien pero ha sido la única manera que he tenido de hacerlo.
¿tú como lo ves?.
Claro te hace falta un auxilar para números y otro para letras, es donde lees antes de insertar en cada vector.