Uploaded by Mauricio Alvaro Flores Rada

Introducción a la Programación con Java

advertisement
INTRODUCCION A LA
PROGRAMACION CON
LENGUAJE JAVA
Realizado: Lic. Adrian
E, Quisbert Vilela
1
La presente edición es propiedad del Autor,
cualquier reproducción y/o difusión total o
parcial de esta, por cualquier medio, esta
prohibido y penado por la ley de acuerdo a
disposiciones legales en vigencia.
Título: “INTRODUCCION A LA PROGRAMACION CON LENGUAJE JAVA”
Primera Edición
Autor: Lic. Adrian E. Quisbert Vilela
La Paz-Bolivia
2
Lic. Adrian E. Quisbert Vilela
Dedicatoria
Dedico esta obra con todo mi cariño y amor, a mi esposa Martha Quisbert Ch. y
a mis hijos Daniel y Gabriela, por todo el apoyo incondicional que me dieron en
los momentos difíciles y cuando más los necesite, y por ser las personas que
dieron nuevamente sentido a mi vida.
Adrián E. Quisbert Vilela
3
4
5
………………………………………………………..60
6
7
Tema
1
Conceptos Fundamentales de
programación
8
-
-
-
9
-
10
11
12
13
14



15




16
Memoria Auxiliar
Procesador
Elementos
de Entrada
Unidad de Control
+
Unidad Aritmético Lógica
Elementos
de Salida
Memoria Central
17
18
19
-
20
21
22
23
24
25
26
27
Tema
2
Algoritmos
-
-
-
28
29
30
Diseño del
Algoritmo
31
32
o
o
o
o
o
33
34
35
36
37
38
39
40
41
42
43
Expresión 1
Operador de relación expresión 2
44
7.
45
46
Tema
3
Acción 1
Acción 1
Acción N
47
48
Inicio
capital
Ganancia= capital * 0.02
ganancia
fin
49
f
50
51
c1, c2, c3, ef, tf
Inicio
c1, c2, c3, ef, tf
52
5) Un maestro desea saber que porcentaje de hombres y que porcentaje de
mujeres hay en un grupo de estudiantes.
53
54
55
P = 5 + 5 +5 + 5 = 20
56
P = 5 + 5 + 8 + 8 = 26
57
58
59
60
RESIDUO
61
62
Tema
4



63
64
V
F
ón
Sentencias
V
F
ón
Sentencias
Sentencias
65
OPCION
1
2
3
S1
S1
S1
S2
S2
S2
….
N
S1
S2
66
67
inicio
N
F
V
N mod 2 =0
“Par”
“Impar”
Fin
68
inicio
A,B
F
V
A>B
A,“ Es
Mayor
B,“Es
Mayor”
Fin
69
inicio
N
V
F
N<0
V
F
N=0
“Positivo”
“Negativo
”
“Neutro”
Fin
70
𝑥=
−𝐴±√𝐵2 −4𝐴𝐶
2𝐴
𝐵2 − 4𝐴𝐶
𝑋=
Y=
−𝐴+√𝐵2 −4𝐴𝐶
2𝐴
−𝐴−√𝐵2 −4𝐴𝐶
2𝐴
71
A,B,C
D = (B*B)-(4*A*C)
F
V
D>=0
X.Y
Fin
72
inicio
A,B,C
V
F
A>B and A>C
F
A es mayor
V
B>A and B>C
F
V
C>A and C>B
B es mayor
C es mayor
Fin
73
74
inicio
N
F
N mod 3 =0
and
N mod 5 <> 0
V
Fin
75
N
N
N
76
77
78
inicio
N
V
F
N>=100 AND N <100
D1 = N mod 10
N =N div 10
D2 = N mod 10
N =N div 10
D3 = N mod 10
N =N div 10
NO ES DE 3 DIGITOS
DM = 0
F
V
DM < D1
DM = D1
F
V
DM < D2
DM = D2
V
F
DM < D3
DM = D3
DM
FIN
79
80
F
V
prom>70
”
fin
81
F
V
fin
82
83
F
V
fin
84
Inicio
SI
NO
totcomp > 500
000
crédito = totcomp * 0.15
cantinv, préstamo,
crédito, int
fin
85
IJNICIO
Swich(N)
N
N
1
2
3
4
5
6
7
“LUNE
S”
“MARTES
”
MIERCOLE
S
JUEVES
VIERNE
S
SABADO
DOMING
O
OP
OP=’S’
FIN
N
6
12
salida
SABADO
NO
EXISTE
DIA
OP
S
N
86
Ejercicios propuestos . –
1.
2.
3.
4.
5.
Pedir un número entre 0 y 99999 y decir cuantas cifras tiene.
Una farmacia desea un programa para ingresar el valor de compra y calcular lo siguiente:
si el pago se efectúa al “contado”, calcular un descuento del 5%; pero si el pago es con
“tarjeta” se incrementa un recargo del 3% al valor de compra. Calcular y visualizar el
descuento o recargo según sea el caso y el total a pagar de la compra.
Diseñe un programa que lea la temperatura en centígrados del día e imprima el tipo de
clima de acuerdo a la siguiente tabla. (Use condicional múltiple).
Determinar si un número es múltiplo de 10.
Hacer un programa que simule un cajero automático con un saldo inicial de 1000 dólares,
con el siguiente menú de opciones: SWITCH
1. Ingresar dinero a la cuenta
2. Retirar dinero de la cuenta
3. Salir
87
88
Tema
5
Estructuras de control de repetición
o
o
o
89
90
91
S=S+A
92
93
94
95
96
97
98
99
100
101
102
103
P = (I * I ) - 1
104
N
10
M
5
5
i
1
2
3
j
1
2
3
4
5
6
1
2
3
4
5
6
1
P
1
2
3
4
5
2
4
6
8
10
CODIFICACION
105
106
107
FIN
108
109
110
N
5
i
5
4
3
2
1
0
S
0
5
9
12
14
15
Codificación
111
112
N
5
S
0
1
1,5
1.666
1.7076
1.715933
I
1
2
3
4
5
6
J
1
2
1
2
3
1
2
3
4
1
2
3
4
5
1
2
3
4
5
6
F
1
1
1
1
2
1
1
2
6
1
1
2
6
24
1
1
2
6
24
120
import java.util.Scanner;
public class Serie4 {
public static void main(String arg[]) {
int N, i, F, j;
double S;
Scanner lee = new Scanner(System.in);
System.out.println("ingrese valor N");
N = lee.nextInt();
S = 0;
for (i = 0; i <= N; i++) {
F = 1;
for (j = 1; j <= i; j++) {
F = F * j;
}
S = S + (1.0 / F);
}
System.out.println("La sumatoria es :" +
S);
}
}
113
CONDICION
CONDICION
S2
S1
S1
S2
114
INICIO
N
NI = 0
N <> 0
N
5314
531
53
5
0
R
4
1
3
5
NI
0
4
41
413
4135
R= N MOD 1O
N= N/ 10
NI = NI * 10 + R
NI
FIN
115
INICIO
N
5314
531
53
5
0
N
NI = 0
AUX = N
R
4
1
3
5
NI
0
4
41
413
4135
AUX
5314
N <> 0
R= N MOD 1O
N= N/ 10
NI = NI * 10 + R
V
F
NI = AUX
N NO ES CAPICUA
N ES
CAPICUA
FIN
116
inicio
X,Y
X <> Y
V
F
X>Y
Y=Y-X
X=X-Y
X
FIN
import java.util.Scanner;
public class Mcd {
public static void main(String
arg[]) {
117
Scanner lee = new
Scanner(System.in);
int x, y;
System.out.println("ingrese valor
de X");
x = lee.nextInt();
System.out.println("ingrese valor
de Y");
y = lee.nextInt();
while (x != y) {
if (x > y) {
x = x - y;
} else {
y = y - x;
}
}
System.out.println("el MCD
es " + x);
}
}
118
Diagrama de flujo
PRUEBA DE ESCRITORIO
inicio
X
8
Y
2
4
6
8
A
8
B
2
X
2
4
6
Y
3
6
A
2
B
3
X,Y
A=X
B=Y
X <> Y
V
F
Codificacion
X>Y
Y= Y + B
X=X+A
import java.util.Scanner;
public class MinimoComumMultiplo {
X
FIN
public static void main(String arg[]) {
long X, Y, A, B;
Scanner lee = new Scanner(System.in);
System.out.print(" Ingrese valor de X:");
X = lee.nextLong();
System.out.print(" Ingrese valor de Y:");
Y = lee.nextLong();
A=X;
B=Y;
while (X != Y) {
if (X > Y) {
Y = Y + B;
} else {
X = X + A;
}
}
System.out.println("el Minimo Comun
Miltiplo es:" + X);
}
}
119

120
121
Diagrama de flujo
inicio
N,b
S=””


N <> 0
R = N mod b
N=N/b
V
F
R >= 10
L=char(65+(R-10))
S= L+S
L=char(48+R)
S=L+S
S
Fin
public class ConvertirBase {
public static void main(String arg[]) {
int N, B, R;
String S;
char L;
Scanner lee = new Scanner(System.in);
System.out.println("Ingrese un Numero en base 10");
N = lee.nextInt();
System.out.println("Ingrese base ");
B = lee.nextInt();
S = "";
while (N != 0) {
R = N % B;
N = N / B;
if (R >= 10) {
L = (char) (65 + (R - 10));
S = L + S;
} else {
L = (char) (48 + R);
S = L + S;
}
}
System.out.println("El numero Convertido es :"+S);
}
}
122
Diagrama de flujo
Inicio
N,B
C=0
N >=B
N =N /B
C=C+1
C
fin
123
C= 2
A
10
6
2
inicio
A,B
C= 0
B
4
C
0
1
2
import java.util.Scanner;
public class Division2Numeros {
public static void main(String arg[]) {
int A, B, C;
Scanner lee = new Scanner(System.in);
System.out.println("Ingrese valor de A");
A = lee.nextInt();
System.out.println("Ingrese Valor de B ");
B = lee.nextInt();
C = 0;
while (A >= B) {
A = A - B;
C = C + 1;
}
System.out.println(" la division es " + C);
}
A >=B
A=A–B
C= C+1
C
fin
}
124
S1
S2
CONDIDICION
Sx


125
Calcula el factorial de un numero N (N!)
For
While
Do while
Inicio
Inicio
N
N
N
F=1
F=1
i=1
i=1
F=1
i=1,N,1
F= F* i
i <= N
Inicio
F= F* i
i=i+1
I
F= F* i
F
i <= N
i=i+1
F
fin
F
fin
fin
import java.util.Scanner;
public class FactorialFOR {
public static void main(String
arg[]) {
long F;
int N, i;
Scanner lee = new
Scanner(System.in);
System.out.println("ingrese un
Numero N:");
N = lee.nextInt();
F = 1;
for(i=1;i<=N;i++)
{
F=F*i;
}
System.out.println("El
factorial es:" + F);
}
}
import java.util.Scanner;
public class FactorialWHILE {
public static void main(String
arg[]) {
long F;
int N, i;
Scanner lee = new
Scanner(System.in);
System.out.println("ingrese
un Numero N:");
N = lee.nextInt();
F = 1;
i=1;
while(i <= N)
{
F=F*i;
i++;
}
System.out.println("El
factorial es:" + F);
}
}
import java.util.Scanner;
public class
FactorialDOWHILE {
public static void main(String
arg[]) {
long F;
int N, i;
Scanner lee = new
Scanner(System.in);
System.out.println("ingrese un
Numero N:");
N = lee.nextInt();
F = 1;
i=1;
do
{
F=F*i;
i++;
}while(i <= N);
System.out.println("El
factorial es:" + F);
}
}
126
inicio
N
S=0
I = 1, N , 1
A
A mod 2
=0
S= S + A
i
S
op
Op = “Si”
127
fin
128
Inicio
Prueba de escritorio
N
3
‘1’
1
2
3
4
1
2
1
2
3
1
2
3
4
J=1 , i , 1
‘0’
j
i
fin
129
inicio
Prueba de escritorio
N
N
4
D=4
C=1
i
1
2
3
4
5
D
4
8
16
c
1
2
v
f
I mod 2 = 0
D
c
D= D*2
C= C+1
i
fin
Ni=0
NI = NI * 10 + R
NI = 0*10 + 4 =4
NI = 4*10 + 3 = 43
NI = 43*10 + 2 = 432
NI = 432*10 + 1 = 4321
130
inicio
N
NI=0
R = N mod 10
N= N / 10
NI = NI * 10 + R
N <> 0
NI
fin
A=123 10
3 12
2
10
1
1
10
0
131
inicio
inicio
N
N
C=0
C=0
A
A
CD=0
f
v
A >=100 and A <=999
A <> 0
A = A / 10
CD= CD + 1
C = C +1
v
f
CD = 3
C
C=C +1
fin
C
fin
Ejercicios propuestos . –
1.
2.
3.
Escribí un programa que, dado un número entero positivo, calcule y muestre su factorial. El factorial de
un número se obtiene multiplicando todos los números enteros positivos que hay entre el 1 y ese
número. El factorial de 0 es 1.
Escribí un programa que permita al usuario ingresar N números enteros, que pueden ser positivos o
negativos. Al finalizar, mostrar la sumatoria de los números negativos y el promedio de los positivos.
No olvides que no es posible dividir por cero, por lo que es necesario evitar que el programa arroje un
error si no se ingresaron números positivos.
Escribí un programa que permita al usuario ingresar una cantidad de números positivos indefinida (la
cantidad que ingresará no se conoce y puede cambiar en cada ejecución), finalizando cuando ingresa el
número 0 (que no se tendrá en cuenta). Una vez terminada la lectura de números, informar cuál fue el
mayor de los números ingresados.
132
4.
Escribí un programa que, dado un número entero por el usuario (guardado como int), muestre la suma de
todos sus dígitos. Recordá que vas a necesitar obtener cada uno de los dígitos por separado para poder
sumarlos entre sí.
133
Tema
6
Programación Modular
El problema es mejor dividir
134
Sub problema 1
Sub problema 2
……
Sub problema n
Modulo

135



136
Sub programa
6.5. Ejemplos.
N=X
inicio
Factorial( N )
N
F= 1
Fac = Factorial( N )
Fac
F= F * i
i
fin
Return (F)
137
138
Potencia(X,Y)
Principal()
P=1
X,Y
i=1, Y,1
Z = potencia(X,Y)
P= P * X
Z
i
return
Return( P)
inicio
Principal()
fin
139
Factorial( N )
F= 1
Potencia(X,Y)
P=1
i=1, Y,1
P= P * X
F= F * i
i
Return (F)
i
Return( P)
140
SumaSerie(N,X)
Principal()
S=0
N, X
S= SumaSerie(N,X)
F= factorial(i)
P= potencia( X, i)
S= S + P / F
S
return
i
inicio
Return S
Principal()
fin
4
141
BuscaDigitoMenor(N)
eliminaDigito(N,D)
DM = N MOD 10
N= N / 10
NN =0
N <> 0
N <> 0
R = N MOD 10
N= N / 10
R2 = N MOD 10
N= N / 10
F
V
D <> R
F
V
NN=NN*10+R
DM > R2
DM = R2
RETURN NN
RETURN DM
Principal()
OrdenaNunero(N)
N
NO = 0
NO = OrdenaNumero(N)
N <> 0
NO
DM = buscaDigitoMenor(N)
N = elininaDigito(N,DM)
RETURN
NO = NO * 10 + DM
INICIO
Principal()
RETURN NO
fin
142
143
Verifica(N)
C= 0
Sw = false
v
F
N mod i = 0
C= C + 1
144
f
v
C >=3
I = n +1
i
v
f
C =2
Sw=true
Return sw
Genera primos
GeneraPrimo(N)
CN = 2
CP=0
CP <=N
v
f
Verifica(CN)=true
CN
CP = CP + 1
CN = CN + 1
Return
145
principal
N
GeneraPrimo(N)
RETURN
INICIO
Principal()
fin
146
NI = 0
NI = Ni * 10 + R
NI = 0 * 10 + 4 = 4
NI = 4*10 + 3 =43
NI = 43 * 10 + 2 =432
NI = 432*10 + 1 = 4321
147
|
Invetir(N)
NI = 0
Principal()
N
N <> 0
NI = invertir(N)
R = N Mod 10
N = N /10
NI = NI * 10 + R
NI
Return
Return (NI)
inicio
Principal()
fin
148
Invetir(N)
Capicua(N)
NI = 0
Sw = false
N <> 0
NI = invertir(N)
R = N Mod 10
N = N /10
NI = NI * 10 + R
f
v
N = NI
Sw= true
Return (NI)
Return(sw)
149
Principal()
N
Sw=capicúa(N)
f
v
Sw=true
e
“capicua”
“No capicua”
Return
inicio
Principal()
fin
150
151
Cambia base
Principal()
CambiaBase( N, b)
N,b
Nb = “”
Nb = CambiaBase(N,b)
=capicúa(N)
N <> 0
R = N mod b
N=N/B
f
Nb
v
Return
R >9
Nb = Nb + char(48+R)
Nb = Nb + char(65+(R-10))
inicio
Principal()
Return Nb
Fin
152
153
CambiaBase10(N,b)
Principal()
L = longitud(N)
N10 = 0
I=0 , L – 1 , 1
X = (int)N[i]
P = potencia(b, L-(i+1))
Y=X*P
N10 = N10 + Y
N,b
Nb = CambiaBase10(N,b)
=capicúa(N)
Nb
Return
inicio
Return (N10)
Principal()
Fin
154
155
156
Tema
7
Estructura de datos (Vectores y Matrices)





157

o
158
Llenar(V[] , n)
i = 0, n-1 , 1
Llenar(V[] , n)
i = 0, n-1 , 1
V[ i ]
V[ i ]
i
i
return
return
159
SumarElementos(V[] , n)
S= 0
i = 0, n-1 , 1
S = S + V [i]
i
Principal()
N
V = array [ 0..N]
Llena( V[], N)
S=SumarElementos ( V[], N)
Return (s)
mostrar( V[], N)
S
return
inicio
Principal()
fin
160
161
Leer un vector
Principal
Principal()
SumarPares(V[] , n)
S= 0
N
i = 0, n-1 , 1
V = array [ 0..N]
v
f
Llena( V[], N)
V[i] mod 2 = 0
S = S + V [i]
S=SumarPares ( V[], N)
mostrar( V[], N)
i
S
Return (s)
return
inicio
Principal()
fin
162
3)
Dado un vector V sumar elementos de las posiciones pares
163
Leer un vector
Principal
Principal()
SumarPosPares(V[] , n)
S= 0
N
i = 0, n-1 , 1
V = array [ 0..N]
v
f
Llena( V[], N)
i mod 2 = 0
S = S + V [i]
i
S=SumarPosPares ( V[], N)
mostrar( V[], N)
S
Return (s)
return
inicio
Principal()
fin
164
165
Leer un vector
Principal
Principal()
buscaMenor(V[] , n)
Em= V[0]
N
i = 1, n-1 , 1
V = array [ 0..N]
v
f
Llena( V[], N)
Em > V[i]
Em = V[i]
Em=buscaMenor ( V[], N)
i
mostrar( V[], N)
Return (Em)
Em
return
inicio
Principal()
fin
166
167
168
Primer caso eliminar el primer elemento x que se encuentra.
Leer un vector
eliminaX(V[] , n,x)
i = 0, n–1,1
v
f
X = V[i]
j = i, n–1,1
V[ j ] = V[ j+1]
n=n–1
i= n +10
i
Return (n)
169
Principal
Principal()
N
V = array [ 0..N]
Llena( V[], N)
X
N=eliminaX ( V[], N,X)
mostrar( V[], N)
return
inicio
Principal()
fin
170
171
i
j
j
j
j
V=
2
0
5
1
6
2
1
3
2
4
V=
2
0
5
1
6
2
1
3
2
4
V=
1
0
5
1
6
2
2
3
2
4
I
j
j
j
V=
1
0
5
1
6
2
2
3
2
4
V=
1
0
2
1
6
2
5
3
2
4
V=
1
0
2
1
6
2
5
3
2
4
V=
1
0
2
1
5
2
6
3
2
4
V=
1
0
2
1
2
2
6
3
5
4
V=
1
0
2
1
2
2
5
3
6
4
I
j
j
I
j
172
Leer un vector
ordena(V[] , n)
i = 0, n–2,1
j = i+1 , n – 1 , 1
v
f
V[i] > V[j]
Aux = V[i]
V[i] = V[j]
V[j] = Aux
j
i
Return
Principal
Principal()
N
V = array [ 0..N]
Llena( V[], N)
ordena ( V[], N)
mostrar( V[], N)
return
173
inicio
Principal()
fin
174
Suma vector
sumarVector(A[],B[],C[] , n)
i = 0, n–1,1
C[i] = A[i] + B[i]
i
Return
Principal
Principal()
N
A = array [ 0..N]
B=array [0..N]
C=array [0..N]
Llena( A[], N)
Llena( B[], N)
SumarVector( A[],B[],C[], N)
mostrar( A[], N)
mostrar( B[], N)
mostrar( C[], N)
return
175
inicio
Principal()
fin
176
return
Principal
rellenarNaturales (V[] , n)
Principal()
i = 0, n-1 , 1
N
V [i] = (i+1)
V = array [ 0..N]
i
rellenarNaturales( V[], N)
Return (s)
mostrar( V[], N)
return
inicio
Principal()
fin
177
178
Principal
rellenarPares (V[] , n)
Principal()
i = 0, n-1 , 1
N
V [i] = 2*(i+1)
V = array [ 0..N]
i
rellenarPares( V[], N)
Return (s)
mostrar( V[], N)
return
rellenarPares (V[] , n)
J=0
inicio
i = 2, n*2 , 2
V [j] = i
J=j+1
Principal()
fin
i
Return (s)
179
180
V[5 ] = V[ 3] + V[4]
Principal
rellenarFibonaci (V[] , n)
Principal()
V[0] = 0
V[1] = 1
N
i = 2, n-1 , 1
V = array [ 0..N]
V [i] = V[i-2] + V[i-1]
rellenarFibonaci( V[], N)
i
mostrar( V[], N)
Return (s)
return
inicio
Principal()
fin
181
182
Principal
contarPosNegCero (V[] , n)
Principal()
Cont1=0
Cont2=0
Cont3=0
N
V = array [ 0..N]
i = 0, n-1 , 1
F
v
f
Llena( V[], N)
V[i]=0
ContarPosNegCero( V[], N)
v
V[i]>0
Cont3=cont3+1
Cont1=cont1+1
Cont2=cont2+1
mostrar( V[], N)
return
i
inicio
Principal()
Cont1,cont2,cont3
fin
Return (s)
183
184
Principal
promedio(V[] , n)
Principal()
S=0
P=0
N
i = 0, n-1 , 1
V = array [ 0..N]
S = S + V[i]
promedio( V[], N)
i
P = S/n
mostrar( V[], N)
return
P
Return
inicio
Principal()
fin
185
186
Principal
rellenarPares1 (V[] , n)
Principal()
i = 0, n-1 , 1
N
V [i] =(n*2) – (2*i)
V = array [ 0..N]
i
rellenarPares1( V[], N)
Return (s)
mostrar( V[], N)
return
inicio
Principal()
fin
14) Llenar un vector V de N posiciones, con la siguiente serie: 3, 32, 33,
34, …., 3N
N = 10
31, 32, 33, 34, 35 36, 37, 38, 39, 310
V=
V=
31
32
33
34
35
36
37
38
39
310
0
1
2
3
4
5
6
7
8
9
3
0
9
1
27
2
81
3
4
5
6
7
8
9
187
Principal
RellenarPot3 (V[] , n)
Principal()
i = 0, n-1 , 1
N
P = 3(i+1)
V[i] = P
i
Return
V = array [ 0..N]
rellenarPot3( V[], N)
mostrar( V[], N)
return
inicio
Principal()
fin
188
189
Principal
MostrarPuntosilla (V[] , n)
Principal()
i = 1, n-2 , 1
N
f
v
V[i]<V[i+1]
and
V[i]>V[i-1]
V = array [ 0..N]
Llenar( V[], N)
V[i]
MostrarPuntoSilla ( V[], N)
i
mostrar( V[], N)
return
Return
inicio
Principal()
fin
190


191
Principal
BusquedaSecuencial (V[] , n, X)
Principal()
Pos= -1
N
i = 0, n-1 , 1
V = array [ 0..N]
f
v
V[i] = X
Llenar( V[], N)
Pos= i
X
Pos= busquedaSecuencial( V[], N,X)
v
i
f
Return (pos)
Pos >=0
“Elemento X
encontrado en la
posicion” pos
“No existe
Elemento X
mostrar( V[], N)
return
inicio
Principal()
fin
192
193


0
1
2
3
4
5
6
194
195





196

o


197
Leer un vector
Mostrar un vector
Llenar(M[][] , f, c)
Mostrar(M[ ][ ] , f, c)
i = 0, f-1 , 1
i = 0, f-1 , 1
j = 0, c-1 , 1
J = 0, c-1 , 1
M[ i ][ j ]
M[ i ] [ j ]
j
j
i
j
return
return
198
Principal()
inicio
f,c
Principal()
M = array [ 0..f, 0..c] of integer
fin
Llenar(M,f,c)
}
Mostrar(M,f,c)
return
2)
Generar la siguiente matriz rectangular ANxM, con los siguientes elementos:
Ejemplo. Si N=4x3
1
4
7
10
2
5
8
11
3
6
9
12
199
Leer un vector
Principal()
Generar1(M[][] , f, c)
f,c
Cont = 1
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Generar1 (M,f,c)
j = 0, c-1 , 1
}
Mostrar(M,f,c)
M[i][j] = cont
Cont = cont+1
return
j
inicio
i
Principal()
return
fin
200
Nprimo(n)
Num = 2
Cp = 0
Np=0
Cp <n
f
v
Verifica(Num)=true
Np=num
Cp = cp +1
201
Num = num + 1
Return (np)
Leer un vector
Principal()
GenerarPrimo(M[][] , f, c)
f,c
Cont = 1
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
GenerarPrimi (M,f,c)
j = 0, c-1 , 1
}
P= Nprimo(cont)
M[i][j] = P
Cont = cont+1
Mostrar(M,f,c)
return
inicio
j
Principal()
i
fin
return
202
203
Leer un vector
Principal()
GenerarPares(M[][] , f, c)
f,c
Cont = 2
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
GenerarPares (M,f,c)
j = 0, c-1 , 1
}
Mostrar(M,f,c)
return
M[i][j] = cont
Cont = cont+2
inicio
j
Principal()
i
fin
return
204
205
0
(3,0)
1
(3,1)
0
(3,2)
Leer un vector
Principal()
GenerarTableroAjedres(M[][] , f, c)
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
j = 0, c-1 , 1
GenerarTableroAjedres (M,f,c)
f
v
(i+j)mod 2 =
0
}
M[i][j] = 1
M[i][j] = 0
Mostrar(M,f,c)
return
j
inicio
i
Principal()
return
fin
206
207
Leer un vector
Principal()
GenerarLatina(M[][] , f, c)
1
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
Con= i +1
GenerarLatina (M,f,c)
j = 0, c-1 , 1
}
M[i][j[ = cont
f
Mostrar(M,f,c)
return
v
Cont = f
inicio
Cont = cont +1
cont = 1
Principal()
j
fin
i
return
208
209
Leer un vector
Principal()
GenerarFilas(M[][] , f, c)
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
j = 0, c-1 , 1
GenerarFilas (M,f,c)
}
Mostrar(M,f,c)
M[i][j] = i+1
return
j
inicio
i
Principal()
return
fin
210
211
Leer un vector
Principal()
SumarElementos(M[][] , f, c)
f,c
sumaM = 0
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Llenar (M,f,c)
j = 0, c-1 , 1
Sm=sumarElementos (M,f,c)
}
Mostrar(M,f,c)
sumaM = sumaM + M[i][j]
Sm
j
return
i
inicio
Principal()
Return(sumaM)
fin
212
213
Leer un vector
Principal()
SumarElementos(M[][] , f, c)
f,c
sumaM = 0
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Llenar (M,f,c)
j = 0, c-1 , 1
Sm=sumarElementos (M,f,c)
}
Mostrar(M,f,c)
sumaM = sumaM + M[i][j]
Promedio = Sm / (f*c)
j
i
Return(sumaM)
promedio
return
inicio
Principal()
fin
214
215
Principal()
multuplicaElementos(M[][] , f, c)
f,c
sumaM = 1
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Llenar (M,f,c)
j = 0, c-1 , 1
Sm=multiplicaElementos
(M,f,c)
}
Mostrar(M,f,c)
sumaM = sumaM * M[i][j]
Sm
j
return
i
inicio
Principal()
Return(sumaM)
fin
216
217
Principal()
sumaDiagonal (M[][] , f, c)
f,c
S=0
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Llenar(M,f,c)
j = 0, c-1 , 1
f
S=sumaDiagonal (M,f,c)
v
I=j
}
Mostrar(M,f,c)
S=S+M[i][j]
s
j
return
i
Return(s)
inicio
Principal()
fin
218
Principal()
sumaDiagonalSec (M[][] , f, c)
f,c
S=0
M = array [ 0..f, 0..c] of integer
i = 0, f-1 , 1
Llenar(M,f,c)
j = 0, c-1 , 1
f
S=sumaDiagonalSec (M,f,c)
v
i = ( f - (j+1))
}
Mostrar(M,f,c)
S=S+M[i][j]
s
j
return
i
Return(s)
inicio
Principal()
fin
219
220
Principal()
generaX(M[][] , f, c)
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
j = 0, c-1 , 1
f
generaX (M,f,c)
v
}
Mostrar(M,f,c)
(i=j) or (i=f-(j+1))
return
M[i][j] = 0
M[i][j] =1
j
inicio
i
Principal()
Return
fin
221
222
Principal()
generaTrianSup(M[][] , f, c)
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
j = i, c-1 , 1
GeneraTrianSup (M,f,c)
M[i][j] = 1
Mostrar(M,f,c)
j
i
Return
Sm
return
inicio
Principal()
fin
223
224
Principal()
generaTrianInf(M[][] , f, c)
f,c
i = 0, f-1 , 1
M = array [ 0..f, 0..c] of integer
j = 0, i , 1
GeneraTrianInf (M,f,c)
}
Mostrar(M,f,c)
M[i][j] = 1
Sm
j
return
i
inicio
Principal()
Return
fin
225
Principal()
SumaMat (A[][] ,B[][], C[][], f, c)
f,c
i = 0, f-1 , 1
A = array [ 0..f, 0..c] of integer
Llenar (A,f,c)
j = 0, c-1 , 1
F1,c1
C[i][j] = A[i][j]+B[i][j]
B = array [ 0..f1, 0..c1] of integer
Llenar (B,f1,c1)
j
v
f
f=f1 and c=c1
i
Return
C = array [ 0..f1, 0..c1] of integer
SumarMat(A,B,C,f,c)
No se puede
sumar
}
mostrar(A,f,c)
mostrar(B,f1,c1)
mostrar(C,f,c)
return
inicio
Principal()
fin
226
227
228











229
Principal()
MulMat (A[][] ,B[][], C[][], f, c,f1,c1)
f,c
i = 0, f-1 , 1
A = array [ 0..f, 0..c] of integer
Llenar (A,f,c)
j = 0, c1-1 , 1
F1,c1
C[i,j] = 0
B = array [ 0..f1, 0..c1] of integer
k = 0, f1-1 , 1
Llenar (B,f1,c1)
C[i][j] = C[i,j] + (A[ i, k ] * B[ k , j ]
v
f
C = f1
k
C = array [ 0..f, 0..c1] of integer
j
mulMat(A,B,C,f,c,f1,c1)
i
Return
No se puede
multiplicar
mostrar(A,f,c)
mostrar(B,f1,c1)
mostrar(C,f,c1)
return
inicio
Principal()
fin
230
231
232
Principal()
CuboMagico(M[][] , n)
n
Fil = 0
Col = n/2
M = array [ 0..n, 0..n] of integer
i = 1, n*n , 1
cuboMagico (M,n)
M[fil,col] = i
}
v
Mostrar(M,n,n)
return
i mod n = 0
f
Fil = Fil + 1
v
inicio
Fil = 0
Fil = n-1
Fil = Fil - 1
Principal()
fin
v
f
col = n1
Col = Col + 1
Col = 0
i
Return
233
234
Principal()
caracol(M[][] , n)
n
cont = 1
M = array [ 0..n, 0..n] of integer
i = 0, n/2+1 , 1
caracol (M,n)
j = i, n-i , 1
}
M[i , j ] = cont
Cont = Cont +1
Mostrar(M,n,n)
return
j
j = i+1, n-i , 1
inicio
M[ j, n-i-1 ] = cont
Cont = Cont +1
Principal()
j
fin
j = n-i-2, i, -1
M[ n-i-1 , j] = cont
Cont = Cont +1
j
235
j = n-i-2, i+1 , -1
M[ j,i] = cont
Cont = Cont +1
j
i
Return
236
237
Principal()
TiroBlanco(M[][] , n)
n
cont = n/2+1
M = array [ 0..n, 0..n] of integer
i = 0, n/2+1 , 1
tiroBlanco (M,n)
j = i, n-i , 1
}
Mostrar(M,n,n)
M[i , j ] = cont
return
j
j = i+1, n-i , 1
inicio
M[ j, n-i-1 ] = cont
}
Principal()
j
fin
j = n-i-2, i, -1
M[ n-i-1 , j] = cont
j
238
j = n-i-2, i+1 , -1
M[ j,i] = cont
j
Cont = cont -1
i
Return
239
240
Principal()
sumaPArImpar (M[][] , f, c)
f,c
SP = 0
SI = 0
SD=0
M = array [ 0..f, 0..c] of integer
Llenar(M,f,c)
i = 0, f-1 , 1
sumaPArImpar (M,f,c)
}
j = 0, c-1 , 1
f
v
M[ i, j ] mod 2 =0
SP=SP+M[i][j
]
SI=SI+M[i][j]
v
f
I=j
SD=SD+M[i][
j]
Mostrar(M,f,c)
return
inicio
Principal()
fin
j
i
241
SI,SP,SD
Return
import java.util.Scanner;
242
243
244
245
246
22)
Teniendo dos vectores A y B de N posiciones cada uno, a partir de estos crear otro
vector C que contenga los elementos tanto de A como de B de forma intercalada.
Ejemplo: Si N=4
Vector A:
1
4
9
0
Vector B:
20
Vector C:
30
40
1
50
20
4
30
9
40
0
50
Principal
intercalar (A[] , B[], C[], n)
Principal()
J=0
N
i = 0, n-1 , 1
C[J] = A[i]
C[J+1] = B[i]
J= J +2
i
Return
A = array [ 0..N]
B = array[0..N]
C=array [0..N+N]
llena( A[], N)
llena( B[], N)
intercalar( A,B,C N)
mostrar( A[], N)
247
mostrar( B[], N)
mostrar( C[], N)
return
inicio
Principal()
fin
248
249
250
Lic. Adrian Eusebio Quisbert Vilela
Nació En La Paz el 5 de Marzo de 1970, Licenciado
en informática de la Universidad Mayor de San Andrés
(UMSA), Magister En Ciencias de la computación de
Universidad Mayor de San Andrés (UMSA), Egresado
de la Carrera de Auditoría de la Universidad Mayor de
San Andrés (UMSA) y, Diplomado en Organización y
Administración Pedagógica del Aula en Educación
Superior (CEPIES-UMSA), Diplomado “Aprendizaje
Cooperativo con Estilo Salesiano y la Nueva
Tecnología Informática en Educación Superior” de la
Universidad
Católica
de
Brasil,
Postgrado
Coordinador de Recursos Telemáticos de Centros
Educativos: Universidad de Barcelona – España
FUNDACION EDEBÉ.
Desarrollador de software en Alfa SRL. (1993-1996), Sub Jefe de Carrera de Informática Industrial
“EISPDM” (1998-1999), Jefe de Área del Tecnológico Santo Toribio de Mogrovejo (2002-2008),
(2014) Docente Interino de la Carrera de Ingeniería Petrolera (UMSA), Docente de la Carrera
de Informática Industrial de La Escuela Industrial Superior “Pedro Domingo Murillo”, Docente de la
Carrera de Ingeniería de Sistemas de la Universidad Salesiana de Bolivia y docente de la Universidad
Pública de El Alto (UPEA) ,Consultor de Proyectos de Implementación de sistemas de Informáticos y
desarrollador de software.
251
Download