Ejercicios de pseudocódigo con vectores:
Mejorar el algoritmo de búsqueda en un vector.
1 Proceso BuscarEnArray1Dim
2 //Buscar de
forma secuencial.
3 //si encuentra
para la bisqueda
4 Definir N como entero;
5 Dimension N[10];
6 Definir I, Buscado,
Encontrado como entero;
7 Buscado <- 23;
8 Encontrado <- 0;
9 Para I <- 1 hasta 10 hacer
10 N[I] <- Azar(50) ;
11 Escribir N[I], " " Sin Saltar;
12 FinPara
13 Escribir "";
14 I<-1;
15 Mientras Encontrado = 0 & I<=10
16 Si N[I] = Buscado
Entonces
17 Encontrado <- I;
18 FinSi
19 I<-I+1;
20 FinMientras
21 Si Encontrado = 0 entonces
22 Escribir "No
Encontrado";
23 Sino
24 Escribir "Encontrado en
pos " , Encontrado , " Con " , I-1 , " Pasos";
25 FinSi
26
27 FinProceso
Diseñar un algoritmo de búsqueda que busque en un vector ordenado.
1 Proceso BuscarEnArrayOrdenado
2 Definir N como entero;
3 Dimension N[10];
4 Definir I,K,Tmp,
Buscado, Encontrado como entero;
5 Buscado <- 50;Azar(25);
6 Escribir "Buscarmos el
" , Buscado;
7 Encontrado <- 0;
8 Para I <- 1 hasta 10 hacer
9 N[I] <- Azar(25) ;
10 FinPara
11 //n[1]<-50;
12 Para I<-1 hasta 10 - 1 hacer
13 Para K<-1 Hasta 10 - I hacer
14 Si N[K]
> N[K+1] entonces
15 tmp <- N[K];
16 N[K]<-N[K+1];
17 N[K+1]<-tmp;
18 FinSi
19 FinPara
20 FinPara
21
22 Para I <- 1 hasta 10 hacer
23 Escribir N[I];
24 FinPara
25
26
27 Definir Min, Max,
Med como entero;
28 Med<-0;
29 Min<-1;
30 Max<-10;
31 Mientras Min <= Max
& Encontrado = 0
32 Med <- (( Max - Min )
/ 2) + Min;
33 Escribir "Min:" , Min , " Max:", Max, " Med:" , Med, " Enc", Encontrado;
34 Si N[Med]
> Buscado entonces //el central es mayor que buscado
35 Max <- Med - 1;
36 Sino
37 si N[med]
< Buscado Entonces //el central es menor que buscado
38 Min <- med + 1;
39 sino // el central
es el buscado
40 encontrado <- Med;
41 FinSi
42 FinSi
43 //Esperar Tecla;
44 FinMientras
45
46 Si Encontrado = 0 Entonces
47 Escribir "No esta";
48 Sino
49 Escribir "Esta en
pos", Encontrado;
50 FinSi
51 FinProceso
Escriba un programa simule varios lanzamientos de un dado y muestre la frecuencia de cada una de las caras así como la proporción del número de veces que haya salido cada cara con respecto al total.Para ello simule 6000 lanzamientos de un dado.
1 Proceso LanzarDado6000Veces
2 //lanzar el
dado y indicar las vecez que
3 //sale cada
cara en total y en %
4 Definir Max Como Entero;
5 Max<-500; //Cambiar por
6000
6 Definir Dado, tanto
Como
Real;
7 Definir Datos Como Real;
8 Dimension Datos[6]; //1 2 3 4 5 6
9 Definir indice Como Entero;
10 //poner a 0
11 para indice <-1 hasta 6
12 Datos[Indice]<-0;
13 FinPara
14 para Indice <-1 hasta Max
15 Dato<-Azar(6) + 1;
16 Datos[Dato]
<- Datos[Dato] + 1;
17 segun Dato hacer //Commentar
para mas rapido
18 1: Escribir " ";
19 Escribir " * ";
20 Escribir " ";
21 2: Escribir " *";
22 Escribir " ";
23 Escribir "* ";
24 3: Escribir " *";
25 Escribir " * ";
26 Escribir "* ";
27 4: Escribir "* *";
28 Escribir " ";
29 Escribir "* *";
30 5: Escribir "* *";
31 Escribir " * ";
32 Escribir "* *";
33 6: Escribir "* *";
34 Escribir "* *";
35 Escribir "* *";
36 FinSegun
37 Esperar 0.05 Segundos;
38 Borrar Pantalla;
39 FinPara
40 para indice <-1 hasta 6
41 Escribir "Cara " , Indice Sin Saltar;
42 Escribir " Veces "
,
Datos[Indice]
Sin Saltar;
43 Tanto <- ( Datos[Indice]
/ Max ) * 100;
44 Escribir " % " , Tanto;
45 FinPara
46 FinProceso
Leer Números hasta introducir 0, calcular la media y mostrar los valores que están por encima de la media.
1 Proceso LeerNumerosMediaYmayoredelamedia
2 //Leer Numero
hasta intoducir el 0
3 //Calcular
Media y mostrar los que estan
4 //por encima de
la media
5 //Como maximo
se leen 1000 Numeros.
6 Definir Num, Nums,
Cuantos, Suma, Media, i Como Entero;
7 Dimension Nums[1000];
8 Cuantos<-0;
9 Suma <-0;
10 Repetir
11 Escribir "Dime el
numero " , Cuantos +1;
12 Leer Num;
13 si Num <> 0 entonces
14 Cuantos <- Cuantos + 1;
15 Nums[Cuantos]<-Num;
16 Suma <- Suma + Num;
17 FinSi
18 Hasta Que Num = 0 | Cuantos > 1000
19 Si Cuantos > 0 entonces
20 Media <- Suma / (Cuantos
);
21 Escribir "La media es
", Media;
22 Para i<-1 hasta cuantos
23 Si Nums[i]> Media entonces
24 Escribir Nums[i],
"
es mayor que la media";
25 FinSi
26 FinPara
27 Sino
28 Media <- 0;
29 fin si
30
31
32 FinProceso
Es muy buena la información, que me dan en este bloc.
ResponderEliminar