Mostrando entradas con la etiqueta Media. Mostrar todas las entradas
Mostrando entradas con la etiqueta Media. Mostrar todas las entradas

domingo, 31 de marzo de 2013

Pseudocódigo Vectores y Matrices I


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


jueves, 28 de marzo de 2013

Pseudocódigo XVIII

Ejercicios metodología de la programación con PSeInt.





Un programa que lea números, los sume hasta que el usuario introduzca el número 0, entones los muestra la suma y la media.




1 Proceso LeeEnterosHasta0YSumaYMedia
2      Definir Suma , Numero como Real;
3      Definir Cuantos Como Entero;
4      Cuantos <- 0;
5      Suma <- 0;
6      Repetir
7            Escribir "Dime Un numero";
8            Leer Numero;
9            Si Numero <> 0 entonces
10                  Suma <- Suma + Numero;
11                  Cuantos <- Cuantos + 1;
12           FinSi
13     Hasta Que Numero = 0
14     Si Cuantos > 0 Entonces
15           Escribir "La suma es " , Suma , " Media ", Suma/Cuantos;
16     FinSi
17 FinProceso


Realizar un programa que muestre el valor de una factura telefónica sabiendo que cada paso consumido se cobra a 0.10 Euros y que cuando se consumen más de 1000 pasos se aplica un descuento del 18 % sobre el total de la factura. El número de pasos consumidos se solicita al usuario. Hay que chequear que este valor siempre es mayor que 0.



1 Proceso FacturaTefonica
2      //Realizar un programa que muestre el valor de una
3      //factura telefónica sabiendo que cada paso consumido
4      //se cobra a 0.10 Euros y que cuando se consumen más
5      //de 1000 pasos se aplica un descuento del 18 %
6      //sobre el total de la factura.
7      //El número de pasos consumidos se solicita al usuario.
8      //Hay que chequear que este valor siempre es mayor que 0.
9      Definir Pasos Como Entero;
10     Definir Importe como Real;
11     Repetir
12           Escribir "Cuantos pasos tienes (>0) ??";
13           Leer Pasos;
14     Hasta Que Pasos > 0
15     Importe <- Pasos * 0.10;
16     Si Pasos > 1000 Entonces
17           Importe <- Importe * ( 1-0.18);
18     FinSi
19     Escribir "Tu Factura es de " , Importe , " Euross";
20 FinProceso


Dado un número por teclado, decidir si es par o impar.



1 Proceso LeerNumeroYDecirSiEsParoImpar
2
3      Definir Numero Como Entero;
4      Repetir
5             Escribir "Dime el Numero";
6             Leer Numero;
7            Si Numero % 2 = 0 Entonces
8                   Escribir "El " , Numero , " es par";
9            sino
10                  Escribir "El " , Numero , " es impar";
11           FinSi
12     Hasta Que Falso
13 FinProceso



Dados dos números por teclado, decir si un número es múltiplo de otro.




1 Proceso DosNumerosMultiplo
2      Definir NumA, NumB Como Entero;
3      Escribir "Dime Un Numero:";
4      Leer NumA;
5      Escribir "Dime otro Numero";
6      Leer NumB;
7      Si NumA % NumB = 0 Entonces
8            Escribir NumB , " es multiplo de ", NumA;
9      Sino
10           Escribir NumB , " NO es multiplo de ", NumA;
11     FinSi
12     Si NumB % NumA = 0 Entonces
13           Escribir NumA , " es multiplo de ", NumB;
14     Sino
15           Escribir NumA , " NO es multiplo de ", NumB;
16     FinSi
17 FinProceso



Dado el día, mes y año de nacimiento de una persona y dado también el d, m, a actual, nos diga su edad.



1 Proceso EdadCalculo
2      //Dado el día, mes y año de nacimiento de una persona y
3      //dado también el d, m, a actual, nos diga su edad.
4      Definir AAct, MAct , DAct Como Entero; //Año Mes y Dia Actual
5      Definir ANac, MNac , DNac Como Entero; //Año Mes y Dia Nacimiento
6      Definir Anyos como entero;
7      Escribir "Dime el dia actual dd mm aaaa";
8      Leer DAct, MAct, AAct;
9      Escribir "Dime el dia nacimiento dd mm aaaa";
10     Leer DNac, MNac, ANac;
11     Anyos <- AAct - ANac;
12     Si MAct < MNac entonces
13           Anyos <- Anyos - 1;
14     Sino
15                  Si (MAct = MNAc) & ( DAct < DNac) entonces
16                         Anyos <- Anyos - 1;
17                  FinSi
18     FinSi
19     Escribir "Tienes ", Anyos, " Años";
20 FinProceso