Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P UBLISHED BY P UBLISHER
Licensed under the Creative Commons Attribution-NonCommercial 3.0 Unported License (the
“License”). You may not use this file except in compliance with the License. You may obtain a
copy of the License at http://creativecommons.org/licenses/by-nc/3.0. Unless required
by applicable law or agreed to in writing, software distributed under the License is distributed on an
“AS IS ” BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
1 DNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Carnet Universitario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 P1- Sec1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1 Pseudocódigo 25
3.2 Diagrama de flujo 25
3.3 Diagrama de N/S 26
3.4 Código fuente 26
4 P2- Sec10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1 Pseudocódigo 28
4.2 Diagrama de flujo 29
4.3 Diagrama de N/S 29
4.4 Código fuente 30
5 P3- Sec19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1 Pseudocódigo 31
5.2 Diagrama de flujo 31
5.3 Diagrama de N/S 32
5.4 Código fuente 32
6 P4- Sel1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1 Pseudocódigo 34
6.2 Diagrama de flujo 35
6.3 Diagrama de N/S 35
6.4 Código fuente 36
7 P5- Sel10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1 Pseudocódigo 37
7.2 Diagrama de flujo 39
7.3 Diagrama de N/S 39
7.4 Código fuente 39
8 P6- Rep19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.1 Código fuente 41
8.2 Prueba 41
9 P7- Rep10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9.1 Código fuente 44
9.2 Prueba 44
10 P8- Rep19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.1 Código fuente 47
10.2 Prueba 47
11 P9- Arr10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.1 Código fuente 50
11.2 Prueba 50
12 P10- Arr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12.1 Código fuente 52
12.2 Prueba 52
13 P1 - Sel2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
13.1 Esquema 57
13.2 Pseudocódigo 58
13.3 Código Python 59
13.4 Ejecución 60
14 P2 - Sel11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
14.1 Esquema 63
14.2 Pseudocódigo 64
14.3 Código Python 65
14.4 Ejecución 66
15 P3 - Rep11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
15.1 Esquema 68
15.2 Pseudocódigo 69
15.3 Código Python 69
15.4 Ejecución 70
16 P4 - Rep20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
16.1 Esquema 71
16.2 Pseudocódigo 72
16.3 Código Python 72
16.4 Ejecución 73
17 P5 - Arr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
17.1 Esquema 75
17.2 Pseudocódigo 76
17.3 Código Python 77
17.4 Ejecución 78
18 P6 - Arr11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
18.1 Esquema 81
18.2 Pseudocódigo 82
18.3 Código Python 83
18.4 Ejecución 84
19 P1- Sec3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
19.1 Pseudocódigo 87
19.2 Diagrama de flujo 88
19.3 Diagrama de N/S 88
19.4 Código fuente 88
20 P2- Sec12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
20.1 Pseudocódigo 90
20.2 Diagrama de flujo 91
20.3 Diagrama de N/S 91
20.4 Código fuente 92
21 P3- Sec21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
21.1 Pseudocódigo 93
21.2 Diagrama de flujo 94
21.3 Diagrama de N/S 95
21.4 Código fuente 95
22 P4- Sel12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
22.1 Pseudocódigo 96
22.2 Diagrama de flujo 97
22.3 Diagrama de N/S 97
22.4 Código fuente 98
23 P5- Sel3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
23.1 Pseudocódigo 99
23.2 Diagrama de flujo 100
23.3 Diagrama de N/S 100
23.4 Código fuente 100
32 P6-Rep22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
32.1 Pseudocódigo 134
32.2 Diagrama N/S 135
32.3 Diagrama de flujo 136
32.4 Código de fuente 137
33 P7-Rep13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
33.1 Pseudocódigo 140
33.2 Diagrama N/S 140
33.3 Diagrama de flujo 141
33.4 Código de fuente 142
34 P8-Arr13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
34.1 Pseudocódigo 145
34.2 Diagrama N/S 145
34.3 Diagrama de flujo 146
34.4 Código de fuente 147
35 P9-Arr4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
35.1 Pseudocódigo 150
35.2 Diagrama N/S 150
35.3 Diagrama de flujo 151
35.4 Código de fuente 152
36 P1-Sec5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
36.1 Pseudocodigo 155
36.2 Esquema 156
36.3 Codigo Fuente 156
36.4 Ejecucion 156
37 P2-Sec14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
37.1 Pseudocodigo 158
37.2 Esquema 159
37.3 Codigo Fuente 159
37.4 Ejecucion 160
38 P3-Sec23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
38.1 Esquema 161
38.2 Pseudocodigo 162
38.3 Codigo Fuente 162
38.4 Ejecucion 162
39 P4-SeL14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
39.1 Esquema 163
39.2 Pseudocodigo 164
39.3 Codigo Fuente 165
39.4 Ejecucion 165
40 P5-SeL5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
40.1 Esquema 166
40.2 Pseudocodigo 167
40.3 Codigo Fuente 168
40.4 Ejecucion 168
41 P6-Rep1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
41.1 Pseudocodigo 169
41.2 Esquema 170
41.3 Codigo Fuente 171
41.4 Ejecucion 171
42 P7-Rep14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
42.1 Pseudocodigo 172
42.2 Esquema 174
42.3 Codigo Fuente 175
42.4 Ejecucion 175
43 P8-Rep3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
43.1 Pseudocodigo 176
43.2 Esquema 177
43.3 Codigo Fuente 178
43.4 Ejecucion 178
44 P9-Arr13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
44.1 Esquema 179
44.2 Pseudocodigo 180
44.3 Codigo Fuente 181
44.4 Ejecucion 181
45 P10-Arr4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
45.1 Pseudocodigo 182
45.2 Esquema 184
45.3 Codigo Fuente 185
45.4 Ejecucion 186
46 P1-Sec6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
46.1 Pseudocodigo 188
46.2 Diagrama de flujo 188
46.3 Diagrama de N/S 188
46.4 Codigo Fuente 188
47 P1 - Sec7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
47.1 Pseudocódigo 191
47.2 Diagrama de flujo 192
47.3 Diagrama N/S 192
47.4 Código fuente 192
48 P2 - Sec16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
48.1 Pseudocódigo 194
48.2 Diagrama de flujo 195
48.3 Diagrama N/S 195
48.4 Código fuente 196
49 P3 - Sel7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
49.1 Pseudocódigo 198
49.2 Diagrama de flujo 199
49.3 Diagrama N/S 200
49.4 Código fuente 200
50 P4 - Sel16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
50.1 Pseudocódigo 204
50.2 Diagrama de flujo 205
50.3 Diagrama N/S 206
50.4 Código fuente 206
51 P5 - Sel20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
51.1 Pseudocódigo 208
51.2 Diagrama de flujo 209
51.3 Diagrama N/S 210
51.4 Código fuente 211
52 P1 - Sec8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
52.1 Pseudocódigo 213
52.2 Diagrama de flujo 213
52.3 Diagrama N/S 214
52.4 Código fuente 214
53 P2 - Sec17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
53.1 Pseudocódigo 216
53.2 Diagrama de flujo 216
53.3 Diagrama N/S 217
53.4 Código fuente 218
54 P3 - Sel21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
54.1 Pseudocódigo 219
54.2 Diagrama de flujo 220
54.3 Diagrama N/S 221
54.4 Código fuente 221
55 P4 - Sel17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
55.1 Pseudocódigo 223
55.2 Diagrama de flujo 224
55.3 Diagrama N/S 225
55.4 Código fuente 225
56 P5 - Sel8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
56.1 Pseudocódigo 227
56.2 Diagrama de flujo 228
56.3 Diagrama N/S 230
56.4 Código fuente 230
57 P6 - Rep4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
57.1 Pseudocódigo 232
57.2 Diagrama de flujo 233
57.3 Diagrama N/S 235
57.4 Código fuente 235
58 P7 - Rep17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
58.1 Pseudocódigo 237
58.2 Diagrama de flujo 237
58.3 Diagrama N/S 238
58.4 Código fuente 239
59 P8 - Arr21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
59.1 Pseudocódigo 240
59.2 Diagrama de flujo 241
59.3 Diagrama N/S 241
59.4 Código fuente 242
60 P9 - Arr17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
60.1 Pseudocódigo 244
60.2 Diagrama de flujo 245
60.3 Diagrama N/S 246
60.4 Código fuente 247
62 Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
62.1 Pseudocódigo 253
62.2 Diagrama de flujo 253
62.3 Diagrama de NS 254
62.4 Codigo en Python 254
63 Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
63.1 Pseudocódigo 255
63.2 Diagrama de flujo 257
63.3 Diagrama de NS 258
63.4 Codigo en Python 258
64 Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
64.1 Pseudocódigo 259
64.2 Diagrama de flujo 260
64.3 Diagrama de NS 260
64.4 Codigo en Python 260
65 Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
65.1 Pseudocódigo 261
65.2 Diagrama de flujo 264
65.3 Diagrama de NS 265
65.4 Codigo en Python 266
66 Problema 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
66.1 Pseudocódigo 267
66.2 Diagrama de flujo 268
66.3 Diagrama de NS 268
66.4 Codigo en Python 268
67 Problema 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
67.1 Pseudocódigo 269
67.2 Diagrama de flujo 271
67.3 Diagrama de NS 272
67.4 Codigo en Python 272
68 Problema 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
68.1 Pseudocódigo 273
68.2 Diagrama de flujo 274
68.3 Diagrama de NS 274
68.4 Codigo en Python 275
69 Problema 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
69.1 Pseudocódigo 276
69.2 Diagrama de flujo 278
69.3 Diagrama de NS 279
69.4 Codigo en Python 280
I
Datos del estudiante
participante
1 DNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Carnet Universitario . . . . . . . . . . . . . . . . . . 20
1. DNI
4 P2- Sec10 . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1 Pseudocódigo
4.2 Diagrama de flujo
4.3 Diagrama de N/S
4.4 Código fuente
5 P3- Sec19 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1 Pseudocódigo
5.2 Diagrama de flujo
5.3 Diagrama de N/S
5.4 Código fuente
6 P4- Sel1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1 Pseudocódigo
6.2 Diagrama de flujo
6.3 Diagrama de N/S
6.4 Código fuente
7 P5- Sel10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1 Pseudocódigo
7.2 Diagrama de flujo
7.3 Diagrama de N/S
7.4 Código fuente
8 P6- Rep19 . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.1 Código fuente
8.2 Prueba
9 P7- Rep10 . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9.1 Código fuente
9.2 Prueba
10 P8- Rep19 . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.1 Código fuente
10.2 Prueba
11 P9- Arr10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.1 Código fuente
11.2 Prueba
12 P10- Arr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12.1 Código fuente
12.2 Prueba
3. P1- Sec1
3.1 Pseudocódigo
Algoritmo SEC1
Definir B,H,A Como Real
Escribir 'Programa para el cálculo
del área un triángulo'
Escribir 'Ingrese medida de la base en cm'
Leer B
Escribir 'Ingrese medida de la altura en cm'
Leer H
A <- B*H/2
Escribir 'El área del triángulo es de ',A,' cm2'
FinAlgoritmo
break
return M
def gen():
while 1:
try:
B=float(input("Ingrese un número positivo: "))
except:
B=float(input("Ingrese un número positivo: "))
else:
break
return B
print("Programa para el cálculo del área un triángulo")
print("Ingrese la medida de la base en cm: ")
B=valor()
while B<=0:
B=gen()
print("Ingrese la medida de la altura en cm: ")
H=valor()
while H<=0:
H=gen()
A=B*H/2
mensaje="El area del triangulo es {:.2f} cm2"
print(mensaje.format(A))
4. P2- Sec10
La CONAGUA requiere determinar el pago que debe realizar una persona por el total
de metros cúbicos que consume de agua. Realice un diagrama de flujo y pseudocódigo que
representen el algoritmo que permita determinar ese pago.
4.1 Pseudocódigo
Algoritmo SEC10
Definir C,L,T Como Real
Escribir 'Programa para el pago del agua'
Escribir 'Costo del agua en soles por metro cubico'
Leer C
Escribir 'Cantidad de agua consumida en m3'
Leer L
T <- C*L
Escribir 'El pago por el agua es de ',T,' soles'
FinAlgoritmo
4.2 Diagrama de flujo 29
5.1 Pseudocódigo
Algoritmo SEC19
Definir L,A Como Real
Escribir 'Programa para el cálculo del área un cuadrado'
Escribir 'Ingrese medida del lado en cm'
Leer L
A <- L^2
Escribir 'El área del cuadrado es de ',A,' cm2'
FinAlgoritmo
else:
break
return B
print("Programa para el pago del agua")
print("Costo del agua en soles por metro cubico: ")
C=valor()
while C<=0:
C=gen()
print("Cantidad de agua consumida en m3: ")
L=valor()
while L<=0:
L=gen()
T=C*L
mensaje="El pago por el agua es de {:.2f} soles"
print(mensaje.format(T))
6. P4- Sel1
Realice un algoritmo para determinar si una persona puede votar con base en su edad en
las próximas elecciones. Construya el diagrama de flujo, el pseudocódigo y el diagrama N/S.
6.1 Pseudocódigo
Algoritmo SEL1
Definir E Como Entero
Escribir 'Programa para evaluar edad en elecciones'
Escribir 'Escriba su edad'
Leer E
Si E<18
Escribir "Eres muy joven para votar"
SiNo
Si E>70
Escribir "Si quieres puedes votar"
SiNo
Escribir "Puedes votar"
FinSi
FinSi
FinAlgoritmo
6.2 Diagrama de flujo 35
7.1 Pseudocódigo
Algoritmo SEL10
Definir CK, D, K Como Real
Escribir 'Programa para evaluar viajes'
Escribir 'Escriba el costo en soles por km'
Leer CK
Escribir 'Escriba el dinero disponible'
Leer D
K=D/CK
Si K>1800 Entonces
Escribir 'Puedes ir a México, P.V, Acapulco o Cancún'
SiNo
Si K>1200 Entonces
Escribir 'Puedes ir a México, P.V o Acapulco'
SiNo
Si K>800 Entonces
Escribir 'Puedes ir a México o P.V.'
SiNo
Si K>750 Entonces
Escribir 'Puedes ir a México'
SiNo
Escribir 'Quedáte en casa'
FinSi
38 Capítulo 7. P5- Sel10
FinSi
FinSi
FinSi
FinAlgoritmo
7.2 Diagrama de flujo 39
while 1:
try:
B=int(input("Ingrese un número entero positivo: "))
except:
B=int(input("Ingrese un número entero positivo: "))
else:
break
return B
def cond(a):
if a>1800:
m = "Puedes ir a México, P.V, Acapulco o Cancún"
elif a>1200:
m = "Puedes ir a México, P.V o Acapulco"
elif a > 800:
mensaje = "Puedes ir a México o P.V."
elif a > 750:
m = "Puedes ir a México"
else:
m = "Quedáte en casa"
return m
print("Programa para evaluar viajes")
print("Escriba el costo en soles por km: ")
CK=valor()
while CK<=0:
CK=gen()
print("Escriba el dinero disponible, en soles: ")
D=valor()
while D<=0:
D=gen()
K=D/CK
mensaje=cond(K)
print(mensaje)
8. P6- Rep19
El gerente de una compañía automotriz desea determinar el impuesto que va a pagar por
cada uno de los automóviles que posee, además del total que va a pagar por cada categoría y
por todos los vehículos, basándose en la siguiente clasificación:
Los vehículos con clave 1 pagan 10 % de su valor.
Los vehículos con clave 2 pagan 7 % de su valor.
Los vehículos con clave 3 pagan 5 % de su valor.
Realice un algoritmo para obtener la información y represéntelo mediante diagrama de flujo,
pseudocódigo y diagrama N/S. Los datos son la clave y costo de cada uno.
Los directivos de equis escuela requieren determinar cuál es la edad promedio de cada
uno de los M salones y cuál es la edad promedio de toda la escuela. Realice un algoritmo
para determinar estos promedios y represente la solución mediante el diagrama de flujo, el
pseudocódigo y el diagrama N/S.
El gerente de una compañía automotriz desea determinar el impuesto que va a pagar por
cada uno de los automóviles que posee, además del total que va a pagar por cada categoría y
por todos los vehículos, basándose en la siguiente clasificación:
Los vehículos con clave 1 pagan 10 % de su valor.
Los vehículos con clave 2 pagan 7 % de su valor.
Los vehículos con clave 3 pagan 5 % de su valor.
Realice un algoritmo para obtener la información y represéntelo mediante diagrama de flujo,
pseudocódigo y diagrama N/S. Los datos son la clave y costo de cada uno.
Realice un algoritmo que lea dos vectores de cien elementos y que calcule la suma de éstos
guardando su resultado en otro vector, el cual se debe presentar en forma impresa.
13 P1 - Sel2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
13.1 Esquema
13.2 Pseudocódigo
13.3 Código Python
13.4 Ejecución
14 P2 - Sel11 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
14.1 Esquema
14.2 Pseudocódigo
14.3 Código Python
14.4 Ejecución
15 P3 - Rep11 . . . . . . . . . . . . . . . . . . . . . . . . . . 68
15.1 Esquema
15.2 Pseudocódigo
15.3 Código Python
15.4 Ejecución
16 P4 - Rep20 . . . . . . . . . . . . . . . . . . . . . . . . . . 71
16.1 Esquema
16.2 Pseudocódigo
16.3 Código Python
16.4 Ejecución
17 P5 - Arr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
17.1 Esquema
17.2 Pseudocódigo
17.3 Código Python
17.4 Ejecución
18 P6 - Arr11 . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
18.1 Esquema
18.2 Pseudocódigo
18.3 Código Python
18.4 Ejecución
13. P1 - Sel2
Se tienen dos matrices cuadradas (de 12 filas y 12 columnas cada una). Realice un algorit-
mo que lea los arreglos y que determine si la diagonal principal de la primera es igual a la
diagonal principal de la segunda. (Diagonal principal es donde los subíndices I, J son iguales).
Represente la solución mediante el diagrama de flujo y el pseudocódigo.
13.1 Esquema 57
13.1 Esquema
13.2 Pseudocódigo
13.4 Ejecución
Figura 13.5: Ejecución del código fuente Arr11, diagonales principales diferentes.
13.4 Ejecución 61
Figura 13.6: Ejecución del código fuente Arr11, diagonales principales iguales.
14. P2 - Sel11
Se tienen dos matrices cuadradas (de 12 filas y 12 columnas cada una). Realice un algorit-
mo que lea los arreglos y que determine si la diagonal principal de la primera es igual a la
diagonal principal de la segunda. (Diagonal principal es donde los subíndices I, J son iguales).
Represente la solución mediante el diagrama de flujo y el pseudocódigo.
14.1 Esquema 63
14.1 Esquema
14.2 Pseudocódigo
14.4 Ejecución
Figura 14.5: Ejecución del código fuente Arr11, diagonales principales diferentes.
14.4 Ejecución 67
Figura 14.6: Ejecución del código fuente Arr11, diagonales principales iguales.
15. P3 - Rep11
15.1 Esquema
15.2 Pseudocódigo
15.4 Ejecución
.
.
16.1 Esquema
16.2 Pseudocódigo
16.4 Ejecución
.
.
17.1 Esquema
17.2 Pseudocódigo
17.4 Ejecución
Se tienen dos matrices cuadradas (de 12 filas y 12 columnas cada una). Realice un algorit-
mo que lea los arreglos y que determine si la diagonal principal de la primera es igual a la
diagonal principal de la segunda. (Diagonal principal es donde los subíndices I, J son iguales).
Represente la solución mediante el diagrama de flujo y el pseudocódigo.
18.1 Esquema 81
18.1 Esquema
18.2 Pseudocódigo
18.4 Ejecución
Figura 18.5: Ejecución del código fuente Arr11, diagonales principales diferentes.
18.4 Ejecución 85
Figura 18.6: Ejecución del código fuente Arr11, diagonales principales iguales.
IV
Veli Misayauri, Junior Edgar
19 P1- Sec3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
19.1 Pseudocódigo
19.2 Diagrama de flujo
19.3 Diagrama de N/S
19.4 Código fuente
20 P2- Sec12 . . . . . . . . . . . . . . . . . . . . . . . . . . 90
20.1 Pseudocódigo
20.2 Diagrama de flujo
20.3 Diagrama de N/S
20.4 Código fuente
21 P3- Sec21 . . . . . . . . . . . . . . . . . . . . . . . . . . 93
21.1 Pseudocódigo
21.2 Diagrama de flujo
21.3 Diagrama de N/S
21.4 Código fuente
22 P4- Sel12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
22.1 Pseudocódigo
22.2 Diagrama de flujo
22.3 Diagrama de N/S
22.4 Código fuente
23 P5- Sel3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
23.1 Pseudocódigo
23.2 Diagrama de flujo
23.3 Diagrama de N/S
23.4 Código fuente
Una empresa que contrata personal requiere determinar la edad de las personas que
solicitan trabajo, pero cuando se les realiza la entre- vista sólo se les pregunta el año en que
nacieron. Realice el diagrama de flujo y pseudocódigo que representen el algoritmo para
solucionar este problema.
19.1 Pseudocódigo
Algoritmo SEC3
Definir añoDeNacimiento,añoActual,edad Como Entero
añoActual <- 2023
Escribir 'Ingrese el año de nacimiento:'
Leer añoDeNacimiento
edad <- añoActual-añoDeNacimiento
Escribir 'La edad es: ',edad
FinAlgoritmo
88 Capítulo 19. P1- Sec3
20.1 Pseudocódigo
Algoritmo SEC12
Definir precioArticulo, descuento, precioConDescuento, iva, precioFinal como
,→ reales
Escribir "Ingrese el precio del artículo:"
Leer precioArticulo
descuento <- precioArticulo * 0.2
precioConDescuento <- precioArticulo - descuento
iva <- precioConDescuento * 0.15
precioFinal <- precioConDescuento + iva
Escribir "Precio con descuento: ", precioConDescuento
Escribir "Precio final: ", precioFinal
FinAlgoritmo
20.2 Diagrama de flujo 91
21.1 Pseudocódigo
Algoritmo SEC21
Definir añoNacimiento,mesNacimiento,diaNacimiento,horaNacimiento Como Entero
Definir añoActual,mesActual,diaActual,horaActual Como Entero
Definir mesesVividos,semanasVividas,diasVividos,horasVividas Como Entero
Escribir 'Ingrese su año de nacimiento:'
Leer añoNacimiento
Escribir 'Ingrese su mes de nacimiento:'
Leer mesNacimiento
Escribir 'Ingrese su día de nacimiento:'
Leer diaNacimiento
Escribir 'Ingrese su hora de nacimiento:'
Leer horaNacimiento
añoActual <- 2023
mesActual <- 5
diaActual <- 5
horaActual <- 8
mesesVividos <- (añoActual-añoNacimiento)*12+(mesActual-mesNacimiento)
semanasVividas <- (diaActual-diaNacimiento+mesesVividos*30) // 7
diasVividos <- (diaActual-diaNacimiento+mesesVividos*30) MOD 7
horasVividas <- (horaActual-horaNacimiento+diasVividos*24)
Escribir 'Ha vivido aproximadamente:'
Escribir mesesVividos,'meses'
Escribir semanasVividas,'semanas'
Escribir diasVividos,'días'
Escribir horasVividas,'horas'
FinAlgoritmo
94 Capítulo 21. P3- Sec21
22.1 Pseudocódigo
Algoritmo SEL12
Definir horasTrabajadas, pagoHora, sueldoSemana Como Real
El 14 de febrero una persona desea comprarle un regalo al ser querido que más aprecia en
ese momento, su dilema radica en qué regalo puede hacerle, las alternativas que tiene son las
siguientes: Regalo Costo Tarjeta $10.00 o menos Chocolates $11.00 a $100.00 Flores $101.00 a
$250.00 Anillo Más de $251.00 Se requiere un diagrama de flujo con el algoritmo que ayude
a determinar qué regalo se le puede comprar a ese ser tan especial por el día del amor y la
amistad.
23.1 Pseudocódigo
Algoritmo SEL3
FinAlgoritmo
100 Capítulo 23. P5- Sel3
Realice un algoritmo para determinar qué cantidad de dinero hay en un monedero, consi-
derando que se tienen monedas de diez, cinco y un peso, y billetes de diez, veinte y cincuenta
pesos. Represéntelo mediante diagrama de flujo, pseudocódigo y diagrama N/S.
24.1 Pseudocódigo
Algoritmo REP21
Definir total, monedasDiez, monedasCinco, monedasUno, billetesDiez, billetesVeinte,
,→ billetesCincuenta como Entero
total <- 0
calcular_cantidad_dinero()
Se desea saber el total de una caja registradora de un almacén, se conoce el número de bi-
lletes y monedas, así como su valor. Realice un algoritmo para determinar el total. Represente
la solución mediante el diagrama de flujo, el pseudocódigo y el diagrama N/S.
25.1 Pseudocódigo
Algoritmo REP12
Definir total, billetes, monedas como Entero
Definir valorBillete, valorMoneda como Real
total <- 0
calcular_total_caja_registradora()
Se desea saber el total de una caja registradora de un almacén, se conoce el número de bi-
lletes y monedas, así como su valor. Realice un algoritmo para determinar el total. Represente
la solución mediante el diagrama de flujo, el pseudocódigo y el diagrama N/S.
26.1 Pseudocódigo
Algoritmo ARR12
Definir matriz[12, 19] como Entero
Escribir "La matriz con los elementos negativos cambiados a cero es:"
Para fila <- 1 hasta 12 Hacer
Para columna <- 1 hasta 19 Hacer
Escribir matriz[fila, columna]
FinPara
FinPara
FinAlgoritmo
26.2 Diagrama de flujo 109
calcular_total_caja_registradora()
27.2
27.3
Nicol
Diagrama N/S
Diagrama de flujo
27.4 Código de fuente
32 P6-Rep22 . . . . . . . . . . . . . . . . . . . . . . . . . . 133
32.1 Pseudocódigo
32.2 Diagrama N/S
32.3 Diagrama de flujo
32.4 Código de fuente
33 P7-Rep13 . . . . . . . . . . . . . . . . . . . . . . . . . . 139
33.1 Pseudocódigo
33.2 Diagrama N/S
33.3 Diagrama de flujo
33.4 Código de fuente
34 P8-Arr13 . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
34.1 Pseudocódigo
34.2 Diagrama N/S
34.3 Diagrama de flujo
34.4 Código de fuente
35 P9-Arr4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
35.1 Pseudocódigo
35.2 Diagrama N/S
35.3 Diagrama de flujo
35.4 Código de fuente
27. P1- Sec4
Un estacionamiento requiere determinar el cobro que debe aplicar a las personas que lo
utilizan. Considere que el cobro es con base en las horas que lo disponen y que las fracciones de
hora se toman como completas y realice un diagrama de flujo y pseudocódigo que representen
el algoritmo que permita determinar el cobro.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
27.1 Pseudocódigo
1. Inicio
2. Declarar variables C, H, M, Cobro, Tiempo
3. Escribir 'Programa para el cálculo del cobro en un estacionamiento'
4. Escribir 'Introduzca el costo por hora'
5. Leer C
6. Escribir 'Introduzca el número de horas dispuesto'
7. Leer H
8. Escribir 'Introduzca el número de minutos dispuesto'
9. Leer M
10. Hacer Tiempo= H+M/M
11. Hacer Cobro = C*Tiempo
12. Escribir 'El cobro es de:' ,Cobro, 'soles'
13. Fin
La solución de este problema mediante usando lógica secuencial, se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
Declarar
variables C, H, M, Cobro, Tiempo
Leer C
Leer H
Leer M
Tiempo= H+M/M
Cobro = C*Tiempo
Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
27.4 Código de fuente 115
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _1
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1
q9vbp5rPfbdH6jC3h4jbqiGcsLTDcZDl
8 """
9
10 def c a l c u l a r _ c o b r o _ e s t a c i o n a m i e n t o (C , H , M ) :
11 Tiempo = H + M / M
12 Cobro = C * Tiempo
13 return Cobro
14
15 def datos () :
16 print ( ' Programa para el c l c u l o del cobro en un estacionamiento ')
17
18 C = int ( input ( ' Introduzca el costo por hora : ') )
19 H = int ( input ( ' Introduzca el n m e r o de horas dispuesto : ') )
20 M = int ( input ( ' Introduzca el n m e r o de minutos dispuesto : ') )
21
22 Cobro = c a l c u l a r _ c o b r o _ e s t a c i o n a m i e n t o (C , H , M )
23 print ( ' El cobro es de : ' , Cobro , ' soles ')
24
25 datos ()
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
28.1 Pseudocódigo
1. Inicio
2. Declarar variables S, AS, P, AA
3. Escribir 'Programa para el cálculo del ahorro anual de una persona'
4. Hacer P=15%
5. Escribir 'Introduzca el valor de su sueldo'
6. Leer S
7. Hacer AS= 15%*S
8. Hacer AA= 48*AS
9. Escribir 'El ahorro anual será:, AA, 'soles'
10. Fin
La solución de este problema mediante usando lógica secuencial, se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
P=15%
'Introduzca el valor de su
sueldo'
Leer S
AS= 15%*S
AA= 48*AS
Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
28.4 Código de fuente 119
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _2
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1 E -
QAlxYI55i_cT8HiSlbiLYUOLRWAlhL
8 """
9
10 def c a l cular _ahor ro_anu al ( S ) :
11 P = 0.15
12 AS = P * S
13 AA = 48 * AS
14 return AA
15
16 def imprimir () :
17 print ( ' Programa para el c l c u l o del ahorro anual de una persona ')
18
19 S = int ( input ( ' Introduzca el valor de su sueldo : ') )
20
21 AA = calcu lar_a horro_ anual ( S )
22 print ( ' El ahorro anual s e r : ' , AA , ' soles ')
23
24 imprimir ()
Se requiere un algoritmo para determinar el costo que tendrá realizar una llamada te-
lefónica con base en el tiempo que dura la llamada y en el costo por minuto. Represente la
solución mediante el diagrama de flujo y pseudocódigo.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
29.1 Pseudocódigo
1. Inicio
2. Declarar variables C, Costo, M
3. Escribir 'Programa para el cálculo del costo de una llamada'
4. Escribir 'Introduzca el valor de costo por minuto'
5. Leer C
6. Escribir '¿Cuántos minutos duró la llamada?'
7. Leer M
8. Hacer Costo = C*M
9. Escribir 'El costo de la llamada es de:' ,Costo, 'soles'
10. Fin
La solución de este problema mediante usando lógica secuencial, se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
Leer C
Leer M
Costo=C*M
Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
29.4 Código de fuente 123
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _3
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1
TswjgB2QNJG6CFbhik0ditE5vsMmdcNb
8 """
9
10 def c a l cul ar _co sto _l lam ad a (C , M ) :
11 Costo = C * M
12 return Costo
13
14 def resultado () :
15 print ( ' Programa para el c l c u l o del costo de una llamada ')
16
17 C = int ( input ( ' Introduzca el valor de costo por minuto : ') )
18 M = int ( input ( ' Cuntos minutos d u r la llamada ? ') )
19
20 costo_llamada = ca lc ula r_c os to_ ll ama da (C , M )
21 print ( ' El costo de la llamada es de : ' , costo_llamada , ' soles ')
22
23 resultado ()
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
30.1 Pseudocódigo
1. Inicio
2. Declarar variables CE, T
3. Escribir 'Programa para el cálculo del cobro del uso del estacionamiento'
4. Escribir '¿Cuánto tiempo uso el estacionamiento?'
5. Leer T
6. Si T >= 2
Entonces
Si T>=5
Entonces
Si T>=10
Entonces
CE=5*2+4*3+3*5+2*(T-10)
Sino
CE=5*2+4*3+3*(T-5)
FinCompara
Sino
CE=5*2+4*(T-2)
FinCompara
Sino
CE=5*T
7. FinCompara
8. Escribir 'El cobro del uso del estacionamiento es:' ,'$',CE
9. Fin
La solución de este problema usando lógica selectiva se puede establecer mediante el siguiente
diagrama de flujo.
Inicio
Leer T
V F
T>=2
V F
T>=5 CE=5*T
V F CE=5*2+4*(T-2)
T>=10
CE=5*2+4*3+3*5+2*(T-10) CE=5*2+4*3+3*(T-5)
Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
30.4 Código de fuente 127
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _4
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1
nHDM9UpB3j_caRrRmcHiQ03awm0ThZPu
8 """
9
10 def c a l c u l a r _ c o b r o _ e s t a c i o n a m i e n t o ( T ) :
11 if T >= 2:
12 if T >= 5:
13 if T >= 10:
14 CE = 5*2 + 4*3 + 3*5 + 2*( T -10)
15 else :
16 CE = 5*2 + 4*3 + 3*( T -5)
17 else :
18 CE = 5*2 + 4*( T -2)
19 else :
20 CE = 5* T
21 return CE
22
23 def imprimir () :
24 print ( ' Programa para el c l c u l o del cobro del uso del estacionamiento '
)
25
26 T = int ( input ( ' Cunto tiempo uso el estacionamiento ? ') )
27
28 c o b ro_est aciona mient o = c a l c u l a r _ c o b r o _ e s t a c i o n a m i e n t o ( T )
29 print ( ' El cobro del uso del estacionamiento es : $ ' ,
c o b r o_est acion amient o )
30
31 imprimir ()
128 Capítulo 30. P4- Sel13
Los alumnos de una escuela desean realizar un viaje de estudios, pero requieren determi-
nar cuánto les costará el pasaje, considerando que las tarifas del autobús son las siguientes: si
son más de 100 alumnos, el costo es de $20; si son entre 50 y 100, $35; entre 20 y 49, $40, y si
son menos de 20 alumnos, $70 por cada uno. Realice el algoritmo para determinar el costo
del pasaje de cada alumno.
Represente el algoritmo mediante el diagrama de flujo, el pseudocódigo y el diagrama NS.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
31.1 Pseudocódigo
1. Inicio
2. Definir A, CP
3. Escribir 'Programa para evaluar el costo de pasaje para cada alumno'
4. Escribir 'Escriba el número de alumnos'
5. Leer A
6. Si A<=20
Entonces
CP=70
Sino
Si 20<A<49
Entonces
CP=40
Sino
Si 50<=A<=100
Entonces
CP=35
Sino
CP=20
FinCompara
FinCompara
7. FinCompara
8. Escribir 'El costo del pasaje por alumno es:' ,'$',CP
9. Fin
La solución de este problema mediante el uso de lógica selectiva se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
Declarar variables A, CP
Leer A
V F
A<=20
CP=70 V F
20<A<49
CP=40 V F
50<=A<=100
CP=35 CP=20
Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
132 Capítulo 31. P5- Sel4
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _5
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /16
DTsi3WtLFDO75zAK4Ad9ytth9Wb4sr2
8 """
9
10 def e v a luar_costo_pasaje ( A ) :
11 if A <= 20:
12 CP = 70
13 elif 20 < A < 49:
14 CP = 40
15 elif 50 <= A <= 100:
16 CP = 35
17 else :
18 CP = 20
19 return CP
20
21 def imprimir () :
22 print ( ' Programa para evaluar el costo de pasaje para cada alumno ')
23
24 A = int ( input ( ' Escriba el n m e r o de alumnos : ') )
25
26 c os to_pasaje_alumno = evaluar_costo_pasaje ( A )
27 print ( ' El costo del pasaje por alumno es : $ ' , costo_pasaje_alumno )
28
29 imprimir ()
El banco “Bandido de peluche” desea calcular para cada uno de sus N clientes su saldo
actual, su pago mínimo y su pago para no generar intereses. Además, quiere calcular el monto
de lo que ganó por concepto interés con los clientes morosos. Los datos que se conocen d cada
cliente son: saldo anterior, monto de las compras que realizó y pago que depositó en el corte
anterior. Para calcular el pago mínimo se considera 15 % del saldo actual, y el pago para no
generar intereses corresponde a 85 % del saldo actual, considerando que el saldo actual debe
incluir 12 % de los intereses causados por no realizar el pago mínimo y $200 de multa por el
mismo motivo. Realice el algoritmo correspondiente y represéntelo mediante diagrama de
flujo y pseudocódigo.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
32.1 Pseudocódigo
1. Leer N
2. Hacer intereses_morosos= 0
3. Hacer cliente=1
4. Mientras cliente <= N
Leer saldo_anterior
Leer compras
Leer pago_deposito
La solución de este problema mediante el uso de lógica repetitiva se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
intereses_morosos = 0
cliente = 1
cliente <= N
compras
Fin
pago_deposito
multa = 200
V F
pago_deposito<pago_minimo
intereses_morosos = intereses_morosos
+ intereses
cliente = cliente + 1
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
32.4 Código de fuente 137
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _6
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1
JZcaEDdzPpiIqrv6lpBGqwW6y41nvIG3
8 """
9
10 def c a l c u l a r _ i n t e r e s e s _ m o r o s o s ( N ) :
11 cliente = 1
12 intereses_morosos = 0
13
14 while cliente <= N :
15 saldo_anterior = float ( input ( " Ingrese el saldo anterior del cliente
{}: " . format ( cliente ) ) )
16 compras = float ( input ( " Ingrese el monto de las compras del cliente
{}: " . format ( cliente ) ) )
17 pago_deposito = float ( input ( " Ingrese el pago depositado en el corte
anterior del cliente {}: " . format ( cliente ) ) )
18
19 saldo_actual = saldo_anterior - compras - pago_deposito
20 intereses = saldo_actual * 0.12
21 multa = 200
22
23 saldo_actualizado = saldo_actual + intereses + multa
24 pago_minimo = saldo_actualizado * 0.15
25 pago_no_intereses = saldo_actualizado * 0.85
26
27 print ()
28 print ( " - - - - - - - - - - - - - - - - - - - - " )
29 print ( " Cliente {}: " . format ( cliente ) )
30 print ( " Saldo actual : $ {:.2 f } " . format ( saldo_actualizado ) )
31 print ( " Pago m n i m o : $ {:.2 f } " . format ( pago_minimo ) )
32 print ( " Pago para no generar intereses : $ {:.2 f } " . format (
pago_no_intereses ) )
33 print ( " - - - - - - - - - - - - - - - - - - - - " )
34 print ()
35
36 if pago_deposito < pago_minimo :
37 intereses_morosos += intereses
38
39 cliente += 1
40
41 return intereses_morosos
42
43 def imprimir () :
44 N = int ( input ( " Ingrese el n m e r o de clientes : " ) )
45 intereses_ganados = c a l c u l a r _ i n t e r e s e s _ m o r o s o s ( N )
138 Capítulo 32. P6-Rep22
Un vendedor ha realizado N ventas y desea saber cuántas fueron por 10,000 o menos,
cuántas fueron por más de 10,000 pero por menos de 20,000, y cuánto fue el monto de las
ventas de cada una y el monto global. Realice un algoritmo para determinar los totales.
Represente la solución mediante diagrama de flujo, pseudocódigo y diagrama N/S.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
33.1 Pseudocódigo
1. Inicio
2. Leer N
3. Hacer contador = 1
4. Hacer ventas_menor_10000 = 0
5. Hacer ventas_10000_20000 = 0
6. Hacer monto_total = 0
7. Mientras contador <= N
Leer venta
Hacer monto_total = monto_total + venta
La solución de este problema mediante el uso de lógica repetitiva se puede establecer mediante
el siguiente diagrama de flujo.
Inicio
contador = 1
ventas_menor_10000
=0
ventas_10000_20000
=0 "Ventas por 10,000 o menos:",
ventas_menor_10000
monto_total = 0
venta
"Monto total de ventas:",
monto_total
monto_total = monto_total + venta
V F
venta <= 10000 Fin
ventas_menor_10000 =
V F
ventas_menor_10000 + 1
10000 < venta < 20000
ventas_10000_20000 =
ventas_10000_2000 + 1 ventas_10000_20000 =
ventas_10000_2000 + 0
contador = contador + 1
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
142 Capítulo 33. P7-Rep13
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _7
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1 - KImys1HauPIrRBpx1A -9
n6VVowbXsVq
8 """
9
10 def analizar_ventas ( N ) :
11 contador = 1
12 ve ntas_menor_10000 = 0
13 ve ntas_10000_20000 = 0
14 monto_total = 0
15
16 while contador <= N :
17 venta = float ( input ( " Ingrese el monto de la venta : " ) )
18
19 monto_total += venta
20
21 if venta <= 10000:
22 ventas_menor_10000 += 1
23 elif venta > 10000 and venta < 20000:
24 ventas_10000_20000 += 1
25
26 contador += 1
27
28 return ventas_menor_10000 , ventas_10000_20000 , monto_total
29
30 def mostrar () :
31 N = int ( input ( " Ingrese el n m e r o de ventas : " ) )
32 ventas_menor_10000 , ventas_10000_20000 , monto_total = analizar_ventas ( N
)
33
34 print ( " Ventas por 10 ,000 o menos : " , ventas_menor_10000 )
35 print ( " Ventas por m s de 10 ,000 pero menos de 20 ,000: " ,
ve nt as_10000_20000 )
36 print ( " Monto total de ventas : " , monto_total )
37
38 mostrar ()
33.4 Código de fuente 143
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
34.1 Pseudocódigo
1. Inicio
2. Desde I=1 hasta I=100
Leer calificaciones [I]
Fin desde
3. Hacer suma = 0
4. Hacer estudiantes_arriba_promedio = 0
5. Desde I=1 hasta I=100
Hacer suma = suma + calificaciones [I]
Si calificacion > suma/100
Hacer estudiantes_arriba_promedio = estudiantes_arriba_promedio +
,→ 1
Fin compara
Fin desde
6. Escribir "Calificación promedio del grupo:", suma/100
7. Escribir "Estudiantes con calificaciones por encima del promedio:",
,→ estudiantes_arriba_promedio
8. Fin
V V
I=1 I=1 "Calificación
suma = 0 estudiantes_arriba_promedio = 0
promedio del
I > 100 I > 100 grupo:", suma/100
I=I+1 I=I+1
F
calificaciones [I] F
suma = suma +
Se lee el valor I calificaciones [I]
"Estudiantes con calificaciones
por encima del promedio:",
estudiantes_arriba_promedio
calificacion >
suma/100
Se acumula el valor I
estudiantes_arriba_promedio += 1
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _8
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /18 dlwh -
S2Z4dlmstOI_zQ2cwjhLfSoxj1
8 """
9
10 import random
11
12 def g e n era r_ cal ifi ca cio ne s ( N ) :
13 calificaciones = []
14 for _ in range ( N ) :
15 calificacion = random . randint (0 , 20)
16 calificaciones . append ( calificacion )
17 return calificaciones
18
19 def cal cular_promedio ( calificaciones ) :
20 suma = sum ( calificaciones )
21 promedio = suma / len ( calificaciones )
22 return promedio
23
24 def c o n t a r _ e s t u d i a n t e s _ a r r i b a _ p r o m e d i o ( calificaciones , promedio ) :
25 estudiantes_arriba_promedio = 0
26 for calificacion in calificaciones :
27 if calificacion > promedio :
28 e s t u d i a n t e s _ a r r i b a _ p r o m e d i o += 1
29 return e s t u d i a n t e s _ a r r i b a _ p r o m e d i o
30
31 def imprimir () :
32 N = 100
33 calificaciones = g en era r_ cal ifi ca cio ne s ( N )
34 promedio = calcular_promedio ( calificaciones )
35 estudiantes_arriba_promedio = contar_estudiantes_arriba_promedio (
calificaciones , promedio )
36
37 print ( " C a l i f i c a c i n promedio del grupo : " , promedio )
38 print ( " Estudiantes con calificaciones por encima del promedio : " ,
estudiantes_arriba_promedio )
39
40 imprimir ()
148 Capítulo 34. P8-Arr13
Realice un algoritmo para obtener una matriz como el resultado de la resta de dos matri-
ces de orden M x N. Represéntelo mediante diagrama de flujo y pseudocódigo.
Con base en lo que se requiere determinar se puede establecer que las variables requeridas para
la solución del problema son las mostradas en la siguiente tabla:
35.1 Pseudocódigo
1. Inicio.
2. Leer M, N
3. Desde I = 1 hasta I = M
Desde J = 1 hasta J = N
Leer A [I, J], B [I, J]
Fin desde
Fin desde
4. Desde I = 1 hasta I = M
Desde J = 1 hasta J = N
Hacer C [I, J] = A [I, J] - B [I, J]
Fin desde
Fin desde
5. Desde I = 1 hasta I = M
Desde J = 1 hasta J = N
Escribir C [I, J]
Fin desde
Fin desde
6. Fin
Finalmente, se tiene el siguiente código en Phyton usando funciones, así como la salida de
estos al correr el código.
152 Capítulo 35. P9-Arr4
1 # -* - coding : utf -8 -* -
2 """ L3_TD1_Problema _9
3
4 Automatically generated by Colaboratory .
5
6 Original file is located at
7 https :// colab . research . google . com / drive /1 aSQxVqPZ09VwS9 -
fBXOMO_LBfU0CbPd6
8 """
9
10 def ing resar_matrices () :
11 M = int ( input ( " Ingrese el n m e r o de filas M : " ) )
12 N = int ( input ( " Ingrese el n m e r o de columnas N : " ) )
13
14 A = []
15 B = []
16 for i in range ( M ) :
17 fila_A = []
18 fila_B = []
19 for j in range ( N ) :
20 elemento_A = int ( input ( " Ingrese el elemento A [{} , {}]: " . format
( i +1 , j +1) ) )
21 elemento_B = int ( input ( " Ingrese el elemento B [{} , {}]: " . format
( i +1 , j +1) ) )
22 fila_A . append ( elemento_A )
23 fila_B . append ( elemento_B )
24 A . append ( fila_A )
25 B . append ( fila_B )
26
27 return A , B
28
29 def restar_matrices (A , B ) :
30 M = len ( A )
31 N = len ( A [0])
32
33 C = []
34 for i in range ( M ) :
35 fila_C = []
36 for j in range ( N ) :
37 elemento_C = A [ i ][ j ] - B [ i ][ j ]
38 fila_C . append ( elemento_C )
39 C . append ( fila_C )
40
41 return C
42
43 def imprimir_matriz ( matriz , nombre ) :
44 print ()
45 print ( " La matriz " , nombre , " es : " )
46 for fila in matriz :
35.4 Código de fuente 153
VI
Perez Lazo, Renzo Esteban
37 P2-Sec14 . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
37.1 Pseudocodigo
37.2 Esquema
37.3 Codigo Fuente
37.4 Ejecucion
38 P3-Sec23 . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
38.1 Esquema
38.2 Pseudocodigo
38.3 Codigo Fuente
38.4 Ejecucion
39 P4-SeL14 . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
39.1 Esquema
39.2 Pseudocodigo
39.3 Codigo Fuente
39.4 Ejecucion
40 P5-SeL5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
40.1 Esquema
40.2 Pseudocodigo
40.3 Codigo Fuente
40.4 Ejecucion
41 P6-Rep1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
41.1 Pseudocodigo
41.2 Esquema
41.3 Codigo Fuente
41.4 Ejecucion
42 P7-Rep14 . . . . . . . . . . . . . . . . . . . . . . . . . . 172
42.1 Pseudocodigo
42.2 Esquema
42.3 Codigo Fuente
42.4 Ejecucion
43 P8-Rep3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
43.1 Pseudocodigo
43.2 Esquema
43.3 Codigo Fuente
43.4 Ejecucion
44 P9-Arr13 . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
44.1 Esquema
44.2 Pseudocodigo
44.3 Codigo Fuente
44.4 Ejecucion
45 P10-Arr4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
45.1 Pseudocodigo
45.2 Esquema
45.3 Codigo Fuente
45.4 Ejecucion
36. P1-Sec5
Pinturas “La brocha gorda” requiere determinar cuánto cobrar por trabajos de pintura.
Considere que se cobra por m2 y realice un dia grama de flujo y pseudocódigo que representen
el algoritmo que le permita ir generando presupuestos para cada cliente.
36.1 Pseudocodigo
Algoritmo SEC5
Definir precio por metro cuadrado ppm2
Escribir "Ingrese la cantidad de metros cuadrados a pintar:"
Leer m2
precio = pp2*m2
Escribir "Se tendra que cobrar: " precio
FinAlgoritmo
156 Capítulo 36. P1-Sec5
36.2 Esquema
36.4 Ejecucion
36.4 Ejecucion 157
Una empresa desea determinar el monto de un cheque que debe proporcionar a uno de sus
empleados que tendrá que ir por equis número de días a la ciudad de Monterrey; los gastos
que cubre la empresa son: hotel, comida y 100.00 pesos diarios para otros gastos. El monto
debe estar desglosado para cada concepto. Realice un diagrama de flujo y pseudocódigo que
representen
37.1 Pseudocodigo
Algoritmo SEC14
Definir precio por dia del hotel, precio por dia de la comida, precio por otros gastos
,→ = 100
Escribir "Ingrese el número de días que estará el empleado en Monterrey: "
Leer dias_en_monterrey
monto_hotel = costo_hotel_diario * dias_en_monterrey
monto_comida = costo_comida_diario * dias_en_monterrey
monto_otros_gastos = costo_otros_gastos_diario * dias_en_monterrey
monto_total = monto_hotel + monto_comida + monto_otros_gasto
Escribir "El monto para el hotel sera:", monto_hotel
Escribir "El monto para la comida sera:", monto_comida
Escribir "El monto de otros gastos sera:", monto_otros_gastos
Escribir "El Monto total:", monto_total
FinAlgoritmo
37.2 Esquema 159
37.2 Esquema
19 monto_hotel = hotel(costo_hotel_diario,dias_en_monterrey)
20 monto_comida = comida(costo_comida_diario,dias_en_monterrey)
21 monto_otros_gastos = 22 otros(costo_otros_gastos_diario,dias_en_monterrey)
22
23 monto_total = monto_hotel + monto_comida + monto_otros_gastos
24
25 print("El monto para el hotel sera:", monto_hotel)
26 print("El monto para la comida sera:", monto_comida)
27 print("El monto de otros gastos sera:", monto_otros_gastos)
28 print("El Monto total:", monto_total)
37.4 Ejecucion
El hotel “Cama Arena” requiere determinar lo que le debe cobrar a un huésped por
su estancia en una de sus habitaciones. Realice un diagrama de flujo y pseudocódigo que
representen el algoritmo para determinar ese cobro.
38.1 Esquema
38.2 Pseudocodigo
Algoritmo SEC14
Definir precio por noche del hotel
Escribir "Ingrese el número de noches que estuvo el huesped: "
Leer noches
costo = precio_noche*noches
Escribir "El costo total sera:", costo
FinAlgoritmo
38.4 Ejecucion
Realice un algoritmo que, con base en una calificación proporcionada (0-10), indique con letra
la calificación que le corresponde: 10 es “A”, 9 es “B”, 8 es “C”, 7 y 6 son “D”, y de 5 a 0 son “F”.
Represente el diagrama de flujo, el pseudocódigo y el diagrama N/S correspondiente.
39.1 Esquema
39.2 Pseudocodigo
Algoritmo sel14
Escribir "Ingrese la nota:"
Leer n
Si n=10 Entonces
Escribir "La calificacion es A"
SiNo
Si n=9 Entonces
Escribir "La calificacion es B"
SiNo
Si n=8 Entonces
Escribir "La calificacion es C"
SiNo
Si n=7 Entonces
Escribir "La calificacion es D"
SiNo
Si n=6 Entonces
Escribir "La calificacion es E"
SiNo
Si n=5 Entonces
Escribir "La calificacion es F"
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinAlgoritmo
39.3 Codigo Fuente 165
39.4 Ejecucion
Se tiene el nombre y la edad de tres personas. Se desea saber el nombre y la edad de la persona
de menor edad. Realice el algoritmo correspondiente y represéntelo con un diagrama de flujo,
pseudocódigo y diagrama N/S.
40.1 Esquema
40.2 Pseudocodigo
Algoritmo sel14
Escribir "Ingrese la nota:"
Leer n
Si n=10 Entonces
Escribir "La calificacion es A"
SiNo
Si n=9 Entonces
Escribir "La calificacion es B"
SiNo
Si n=8 Entonces
Escribir "La calificacion es C"
SiNo
Si n=7 Entonces
Escribir "La calificacion es D"
SiNo
Si n=6 Entonces
Escribir "La calificacion es E"
SiNo
Si n=5 Entonces
Escribir "La calificacion es F"
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinAlgoritmo
168 Capítulo 40. P5-SeL5
40.4 Ejecucion
41.1 Pseudocodigo
Algoritmo Rep1
Definir SalIni, incremento, años, SalAc Como Real
SalIni <- 1500
incremento <- 0.1
años <- 6
SalAc <- SalIni
Escribir "Salario al cabo de 6 años: ", SalAc
Escribir "Salario recibido en cada año:"
Para n <- 1 Hasta años Con Paso 1 Hacer
aumento <- SalAc * incremento
SalAc <- SalAc + aumento
Escribir "Año ", n, ": ", SalAc
Fin Para
FinAlgoritmo
170 Capítulo 41. P6-Rep1
41.2 Esquema
41.4 Ejecucion
42.1 Pseudocodigo
Algoritmo Notas
repetir
escribir "Ingrese la cantidad de Alumnos: "
leer n
si n no es entero entonces
escribir "Error detectado. Ingrese un número"
fin si
hasta que verdadero
d = 0
a = 0
si N < 10 entonces
d = d + 1
sino
a = a + 1
fin si
fin para
42.1 Pseudocodigo 173
42.2 Esquema
42.4 Ejecucion
Se requiere un algoritmo para determinar, de N cantidades, cuántas son cero, cuántas son
menores a cero, y cuántas son mayores a cero. Realice el diagrama de flujo, el pseudocódigo y
el diagrama N/S para representarlo, utilizando el ciclo apropiado.
43.1 Pseudocodigo
Algoritmo Rep3
Definir n, neg, pos, cero Como Entero
Escribir "Ingrese la cantidad de numeros que evaluara: "
Leer n
neg <- 0
pos <- 0
cero <- 0
Para i <- 1 Hasta n Con Paso 1 Hacer
Escribir "Ingrese un numero: "
Leer N
Si N = 0 Entonces
cero <- cero + 1
Sino Si N < 0 Entonces
neg <- neg + 1
Sino
pos <- pos + 1
Fin Si
Fin Si
Fin Para
Escribir "Hay ", cero, " numeros iguales a 0, ", neg, " numeros menores a 0 y ",
,→ pos, " mayores a 0"
FinAlgoritmo
43.2 Esquema 177
43.2 Esquema
43.4 Ejecucion
44.1 Esquema
44.2 Pseudocodigo
Algoritmo Arr13
Definir calificaciones Como Arreglo de Enteros
Definir notas Como Arreglo de Enteros
Definir probabilidades Como Arreglo de Reales
Definir suma, con Como Entero
Definir n, i Como Entero
Definir promedio Como Real
notas <- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
probabilidades <- [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9,
,→ 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]
Para i <- 1 Hasta 100 Hacer
calificacion <- AleatorioElegido(notas, probabilidades)
AgregarElemento(calificaciones, calificacion)
Fin Para
suma <- 0
con <- 0
n <- Longitud(calificaciones)
Para i <- 1 Hasta n Hacer
suma <- suma + ObtenerElemento(calificaciones, i)
Fin Para
Escribir calificaciones
Escribir "Calificación promedio del grupo:", promedio
Escribir "Estudiantes con calificaciones por encima del promedio:", con
Fin Algoritmo
44.3 Codigo Fuente 181
44.4 Ejecucion
Realice un algoritmo para obtener una matriz como el resultado de la resta de dos matrices de
orden M x N. Represéntelo mediante diagrama de flujo y pseudocódigo.
45.1 Pseudocodigo
Algoritmo Arr13
Escribir "Ingrese el numero de filas para las matrices "
Leer m
Escribir "Ingrese el numero de columnas para las matrices "
Leer n
Dimension M1(m,n)
Dimension M2(m,n)
Dimension M3(m,n)
Para f <- 1 Hasta m Hacer
Para c <- 1 Hasta n Hacer
Escribir "Ingrese el valor para la fila ", f, " y la columna ", c,
,→ " de la primera Matriz: "
Leer valor
valor = M1[f,c]
Fin Para
Fin Para
Fin Para
Fin Para
45.2 Esquema
45.4 Ejecucion
46 P1-Sec6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
46.1 Pseudocodigo
46.2 Diagrama de flujo
46.3 Diagrama de N/S
46.4 Codigo Fuente
46. P1-Sec6
A2 + B2 = C 2
46.1 Pseudocodigo
Algoritmo SEC5
Leer A
Leer B
C = raíz_cuadrada(A^2 + B^2)
Mostrar C
FinAlgoritmo
Compilacion:
46.4 Codigo Fuente 189
47 P1 - Sec7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
47.1 Pseudocódigo
47.2 Diagrama de flujo
47.3 Diagrama N/S
47.4 Código fuente
48 P2 - Sec16 . . . . . . . . . . . . . . . . . . . . . . . . . 194
48.1 Pseudocódigo
48.2 Diagrama de flujo
48.3 Diagrama N/S
48.4 Código fuente
49 P3 - Sel7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
49.1 Pseudocódigo
49.2 Diagrama de flujo
49.3 Diagrama N/S
49.4 Código fuente
50 P4 - Sel16 . . . . . . . . . . . . . . . . . . . . . . . . . . 202
50.1 Pseudocódigo
50.2 Diagrama de flujo
50.3 Diagrama N/S
50.4 Código fuente
51 P5 - Sel20 . . . . . . . . . . . . . . . . . . . . . . . . . . 207
51.1 Pseudocódigo
51.2 Diagrama de flujo
51.3 Diagrama N/S
51.4 Código fuente
47. P1 - Sec7
La compañía de autobuses “La curva loca” requiere determinar el costo que tendrá
el boleto de un viaje sencillo, esto basado en los kilómetros por recorrer y en el costo por
kilómetro. Realice un diagrama de flujo y pseudocódigo que representen el algoritmo para tal
fin.
La tabla de variables:
47.1 Pseudocódigo
#Proceso
B=N*C
#Salida
print('El costo por boleto es: ',B)
47.4 Código fuente 193
48.1 Pseudocódigo
48.2 Diagrama de flujo 195
#Proceso
M1=M+A
M2=M1+Hu
M3=M2+Ha+V
Molde=M3
#Salida
print('Al hornear tendrá un peso de : ',Molde)
La tabla de variables:
49.1 Pseudocódigo
#Proceso
if E>18:
if N>=9:
B=2000
elif N>=7.5:
B=1000
elif N>=6:
B=500
else:
B=0
else:
if N>=9:
B=3000
elif N>=6:
B=100
else:
B=0
#Salida
if B>0:
print('El estudiante recibirá una beca de ',B)
49.4 Código fuente 201
else:
print('Estudie más el próximo ciclo escolar')
Realice un algoritmo que permita determine el monto de bono que percibirá un profesor
(debe capturar el valor del salario mínimo y los puntos del profesor). Represente el algoritmo
mediante el diagrama de flujo, el pseudocódigo y el diagrama N/S.
203
La tabla de variables:
50.1 Pseudocódigo
#Proceso/Salida
if Pu>150:
print('El profesor percibirá 3 salario mínimos')
elif Pu>100:
print('El profesor percibirá 2 salario mínimos')
else:
print('El profesor percibirá 1 salario')
Realice un algoritmo para resolver el siguiente problema: una fábrica de pantalones desea
calcular cuál es el precio final de venta y cuánto ganará por los N pantalones que produzca
con el corte de alguno de sus modelos, para esto se cuenta con la siguiente información:
a) Tiene dos modelos A y B, tallas 30, 32 y 36 para ambos modelos.
b) Para el modelo A se utiliza 1.50 m de tela, y para el B 1.80 m.
c) Al modelo A se le carga 80 por ciento del costo de la tela, por mano de obra. Al modelo B se
le carga 95 por ciento del costo de la tela, por el mismo concepto.
d) A las tallas 32 y 36 se les carga 4 por ciento del costo generado por mano de obra y tela, sin
importar el modelo.
e) Cuando se realiza el corte para fabricar una prenda sólo se hace de un solo modelo y una
sola talla.
f) Finalmente, a la suma de estos costos se les carga 30 por ciento, que representa la ganancia
extra de la tienda
La tabla de variables:
51.1 Pseudocódigo
#Proceso
if M=="A":
PT = 1.5 * C
MO = 0.8 * PT
else:
PT = 1.8 * C
MO = 0.95 * PT
P1 = PT + MO
if T==30:
P2 = P1
else:
P2 = 1.04 * PT
PF = 1.3 * P2
G = N * (PF-PT)
#Salida
print('El precio final de venta será ', PF)
print("La ganancia por la venta de "+str(N)+"
pantalones será "+str(G))
IX
Pelaez Angulo
53 P2 - Sec17
Alvaro Ivan . . . . . . . . . . . . . . . . . . . . . . . . . 216
53.1 Pseudocódigo
53.2 Diagrama de flujo
53.3 Diagrama N/S
53.4 Código fuente
54 P3 - Sel21 . . . . . . . . . . . . . . . . . . . . . . . . . . 219
54.1 Pseudocódigo
54.2 Diagrama de flujo
54.3 Diagrama N/S
54.4 Código fuente
55 P4 - Sel17 . . . . . . . . . . . . . . . . . . . . . . . . . . 223
55.1 Pseudocódigo
55.2 Diagrama de flujo
55.3 Diagrama N/S
55.4 Código fuente
56 P5 - Sel8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
56.1 Pseudocódigo
56.2 Diagrama de flujo
56.3 Diagrama N/S
56.4 Código fuente
57 P6 - Rep4 . . . . . . . . . . . . . . . . . . . . . . . . . . 232
57.1 Pseudocódigo
57.2 Diagrama de flujo
57.3 Diagrama N/S
57.4 Código fuente
58 P7 - Rep17 . . . . . . . . . . . . . . . . . . . . . . . . . 237
58.1 Pseudocódigo
58.2 Diagrama de flujo
58.3 Diagrama N/S
58.4 Código fuente
59 P8 - Arr21 . . . . . . . . . . . . . . . . . . . . . . . . . . 240
59.1 Pseudocódigo
59.2 Diagrama de flujo
59.3 Diagrama N/S
59.4 Código fuente
60 P9 - Arr17 . . . . . . . . . . . . . . . . . . . . . . . . . . 244
60.1 Pseudocódigo
60.2 Diagrama de flujo
60.3 Diagrama N/S
60.4 Código fuente
Se requiere determinar el tiempo que tarda una persona en llegar de una ciudad a otra en
bicicleta, considerando que lleva una velocidad constante. Realice un diagrama de flujo y
pseudocódigo que representen el algoritmo para tal fin.
v: Velocidad constante
d: Distancia entre ciudades
Tiempo: Tiempo del recorrido
52.1 Pseudocódigo
53.1 Pseudocódigo
El banco “Bandido de peluche” desea calcular para uno de sus clientes el saldo actual, el pago
mínimo y el pago para no generar intereses. Los datos que se conocen son: saldo anterior
del cliente, monto de las compras que realizó y el pago que depositó en el corte anterior.
Para calcular el pago mínimo se debe considerar 15 % del saldo actual, y para no generar
intereses corresponde 85 % del saldo actual, considerando que este saldo debe incluir 12 %
de los intereses causados por no realizar el pago mínimo y $200 por multa por el mismo
motivo. Realice el algoritmo correspondiente y represéntelo mediante el diagrama de flujo y
pseudocódigo.
54.1 Pseudocódigo
220 Capítulo 54. P3 - Sel21
Figura 54.1: Pseudocódigo para determinar el saldo actual y el pago mínimo de los clientes
Figura 54.2: Diagrama de flujo para determinar el saldo actual y el pago mínimo de los clientes
54.3 Diagrama N/S 221
Figura 54.3: Diagrama N/S para determinar el saldo actual, el pago mínimo y el pago para no
generar intereses de los clientes
pagoMinimoAnterior=0.15*self.saldoAnterior
if self.pagoCorteAnterior>=pagoMinimoAnterior:
self.saldoActual = self.saldoAnterior + self.montoCompras -
,→ self.pagoCorteAnterior
print("")
print("No se le aplicarán impuestos al cliente")
else:
self.saldoActual = self.saldoAnterior + self.montoCompras -
,→ self.pagoCorteAnterior + 0.12*self.saldoAnterior + 200
print("")
print("Se le aplicarán impuestos al cliente")
self.pagoMinimo=0.15*self.saldoActual
self.pagoNoIntereses=0.85*self.saldoActual
self.informacion()
cliente1= Cliente()
cliente1.persona=1
cliente1.calculoPagos()
print("")
cliente2= Cliente()
cliente2.persona=2
cliente2.calculoPagos()
55.1 Pseudocódigo
224 Capítulo 55. P4 - Sel17
Figura 55.1: Pseudocódigo para determinar qué paquete se puede comprar una persona
Figura 55.2: Diagrama de flujo para determinar qué paquete se puede comprar una persona
55.3 Diagrama N/S 225
Figura 55.3: Diagrama N/S para determinar qué paquete se puede comprar una persona
Cierta empresa proporciona un bono mensual a sus trabajadores, el cual puede ser por su
antigüedad o bien por el monto de su sueldo (el que sea mayor), de la siguiente forma: Cuando
la antigüedad es mayor a 2 años, pero menor a 5, se otorga 20 % de su sueldo; cuando es de 5
años o más, 30 %. Ahora bien, el bono por concepto de sueldo, si éste es menor a $1000, se da
25 % de éste, cuando éste es mayor a $1000, pero menor o igual a $3500, se otorga 15 % de
su sueldo, para más de $3500. 10 %. Realice el algoritmo correspondiente para calcular los
dos tipos de bono, asignando el mayor, y represéntelo con un diagrama de flujo y pseudocódigo.
56.1 Pseudocódigo
228 Capítulo 56. P5 - Sel8
Figura 56.1: Pseudocódigo para calcular y asignar los bonos de los trabajadores
Figura 56.2: Diagrama de flujo para calcular y asignar los bonos de los trabajadores
230 Capítulo 56. P5 - Sel8
Figura 56.3: Diagrama N/S para calcular y asignar los bonos de los trabajadores
if self.antiguedad<2:
self.bonoAntiguedad=0
elif self.antiguedad<5:
self.bonoAntiguedad=0.2*self.sueldo
else:
self.bonoAntiguedad = 0.3 * self.sueldo
if self.sueldo<1000:
self.bonoSueldo=0.25*self.sueldo
elif self.antiguedad<=3500:
self.bonoSueldo=0.15*self.sueldo
else:
self.bonoSueldo = 0.1 * self.sueldo
if self.bonoAntiguedad>self.bonoSueldo:
self.bono=self.bonoAntiguedad
else:
self.bono=self.bonoSueldo
self.informacion()
mensaje3 = ("* Tiene un bono de: ${}")
print(mensaje3.format(self.bono))
trabajador1= Bonos()
trabajador1.trabajador=1
trabajador1.calculoBono()
trabajador2= Bonos()
trabajador2.trabajador=2
trabajador2.calculoBono()
trabajador3= Bonos()
trabajador3.trabajador=3
trabajador3.calculoBono()
Una compañía fabrica focos de colores (verdes, blancos y rojos). Se desea contabilizar, de
un lote de N focos, el número de focos de cada color que hay en existencia. Desarrolle un
algoritmo para determinar esto y represéntelo mediante el diagrama de flujo, el pseudocódigo
y el diagrama N/S, utilizando el ciclo apropiado.
N: Numero de focos
A: Matriz con los colores de cada foco del lote
i: Contador
verde: Numero de focos verdes
rojo: Numero de focos rojos
blanco: Numero de focos blancos
t: Valor ingresado del color del foco
57.1 Pseudocódigo
57.2 Diagrama de flujo 233
Figura 57.2: Diagrama de flujo para determinar el número de focos de cada color
57.3 Diagrama N/S 235
Figura 57.3: Diagrama N/S para determinar el número de focos de cada color que hay en existencia
58.1 Pseudocódigo
Realice un algoritmo que a partir de la matriz del problema anterior encuentre cuántos
elementos tienen valor par y cuántos valores impares. Represéntelo mediante diagrama,
diagrama N/S y pseudocódigo.
59.1 Pseudocódigo
Figura 59.1: Pseudocódigo para calcular cuántos elementos tienen valor par e impar
59.2 Diagrama de flujo 241
Figura 59.2: Diagrama de flujo para calcular cuántos elementos tienen valor par y cuantos tienen
valor impar
Figura 59.3: Diagrama N/S para calcular cuántos elementos tienen valor par y cuantos tienen valor
impar
Una compañía de transporte cuenta con cinco choferes, de los cuales se conoce: nombre, horas
trabajadas cada día de la semana (seis días) y sueldo por hora. Realice un algoritmo que:
Calcule el total de horas trabajadas a la semana para cada trabajador.
Calcule el sueldo semanal para cada uno de ellos.
Calcule el total que pagará la empresa.
Indique el nombre del trabajador que labora más horas el día lunes.
Imprima un reporte con todos los datos anteriores.
60.1 Pseudocódigo
60.2 Diagrama de flujo 245
Figura 60.2: Diagrama de flujo para imprimir el reporte de una compañía de transporte
Figura 60.3: Diagrama N/S para imprimir el reporte de una compañía de transporte
Realice un algoritmo que lea un vector y a partir de él forme un segundo vector, de tal forma
que el primer elemento pase a ser el segundo, el segundo pase a ser el tercero, el último pase a
ser el primero, y así sucesivamente. Represéntelo mediante un diagrama de flujo.
61.1 Pseudocódigo
62 Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . 253
62.1 Pseudocódigo
62.2 Diagrama de flujo
62.3 Diagrama de NS
62.4 Codigo en Python
63 Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . 255
63.1 Pseudocódigo
63.2 Diagrama de flujo
63.3 Diagrama de NS
63.4 Codigo en Python
64 Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . 259
64.1 Pseudocódigo
64.2 Diagrama de flujo
64.3 Diagrama de NS
64.4 Codigo en Python
65 Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . 261
65.1 Pseudocódigo
65.2 Diagrama de flujo
65.3 Diagrama de NS
65.4 Codigo en Python
66 Problema 5 . . . . . . . . . . . . . . . . . . . . . . . . 267
66.1 Pseudocódigo
66.2 Diagrama de flujo
66.3 Diagrama de NS
66.4 Codigo en Python
67 Problema 6 . . . . . . . . . . . . . . . . . . . . . . . . 269
67.1 Pseudocódigo
67.2 Diagrama de flujo
67.3 Diagrama de NS
67.4 Codigo en Python
68 Problema 7 . . . . . . . . . . . . . . . . . . . . . . . . 273
68.1 Pseudocódigo
68.2 Diagrama de flujo
68.3 Diagrama de NS
68.4 Codigo en Python
69 Problema 8 . . . . . . . . . . . . . . . . . . . . . . . . 276
69.1 Pseudocódigo
69.2 Diagrama de flujo
69.3 Diagrama de NS
69.4 Codigo en Python
62. Problema 1
2.9 Se requiere determinar el costo que tendrá realizar una llamada te¬lefónica con base en el
tiempo que dura la llamada y en el costo por minuto. Realice un diagrama de flujo y pseudocódigo
que represen¬ten el algoritmo para tal fin.
62.1 Pseudocódigo
Proceso CostoDeUnaLlamadaTelefonica
Escribir Sin Saltar Ïngresa el valor de costo por minuto:";
Leer costo por minuto;
Escribir Sin Saltar Ïngresa el valor de tiempo en minutos:";
Leer tiempo en minutos;
costo <- tiempo en minutos*costo por minuto;
Escribir "Valor de costo: ", costo;
FinProceso
62.3 Diagrama de NS
2.18 Realice pseudocódigo y diagrama de flujo que representen el algo¬ritmo para preparar un
pastel.
63.1 Pseudocódigo
Algoritmo torta
Repetir
Escribir "¿Que ingredientes necesitas para hacer tortas?"
Escribir "2 ½ tazas de harina, presiona (s) si lo tienes o (n) si no todavía"
Repetir
Leer Ingrediente1
Hasta Que Ingrediente1 = s o Ingrediente1 = n
Escribir "3 cucharadas de polvo para hornea, presiona (s) si lo tienes o (n) si no todavía"
Repetir
Leer Ingrediente2
Hasta Que Ingrediente2 = s o Ingrediente2 = n
Escribir "1/4 de cucharada de sal, presiona (s) si lo tienes o (n) si no todavía"
Repetir
Leer Ingrediente3
Hasta Que Ingrediente3 = s o Ingrediente3 = n
Escribir "1 1/4 taza de azúcar, presiona (s) si lo tienes o (n) si no todavía"
Repetir
Leer Ingrediente4
Hasta Que Ingrediente4 = s o Ingrediente4 = n
Escribir "1 taza de manteca, 10 huevos, 5 ¼ taza de leche y 1 ¼ taza de vainilla, presiona (s) si lo
tienes o (n) si no todavía"
Repetir
Leer Ingrediente5
Hasta Que Ingrediente5 = s o Ingrediente5 = n
256 Capítulo 63. Problema 2
Fin Si
FinAlgoritmo
63.2 Diagrama de flujo 257
63.3 Diagrama de NS
64.1 Pseudocódigo
Proceso BonoNavideno
Escribir Sin Saltar "Digitar el valor de sueldo:";
Leer sueldo;
Escribir Sin Saltar "Digitar el valor de antiguedad:";
Leer antiguedad;
Si antiguedad>4 O sueldo<2000 Entonces
bononavideno <- sueldo*0.25;
SiNo
bononavideno <- sueldo*0.2;
FinSi
Escribir "Bono navideno: ", bononavideno;
FinProceso
260 Capítulo 64. Problema 3
64.3 Diagrama de NS
3.9 Una compañía de seguros para autos ofrece dos tipos de póliza: co¬bertura amplia (A) y
daños a terceros (B). Para el plan A, la cuota base es de $ 1,200, y para el B, de $ 950. A ambos
planes se les carga 10 porciento del costo si la persona que conduce tiene por hábito beber alcohol,
5 porciento si utiliza lentes, 5 porciento si padece alguna enfermedad como de eficiencia cardiaca o
diabetes–, y si tiene más de 40 años, se le carga 20 porciento, de lo contrario sólo 10 porciento.
Todos estos cargos se realizan sobre el costo base. Realice diagrama de flujo y diagrama N/S que
represente el algoritmo para determinar cuánto le cuesta a una persona contratar una póliza.
65.1 Pseudocódigo
Proceso SeguroPorCoberturaAmpliaYDanosATerceros
Escribir Sin Saltar Ïngresa el valor de edad:";
Leer edad;
Escribir "Selecciona el valor de tipo de poliza.";
Escribir "1.- A cobertura amplia";
Escribir "2.- B daños a terceros";
Escribir Sin Saltar ":";
Repetir
Leer tipodepoliza;
Si tipodepoliza<1 O tipodepoliza>2 Entonces
Escribir Sin Saltar "Valor incorrecto. Ingrésalo nuevamente.: ";
FinSi
Hasta Que tipodepoliza>=1 Y tipodepoliza<=2;
Escribir "Selecciona el valor de toma alcohol.";
Escribir "1.- si";
Escribir "2.- no";
Escribir Sin Saltar ":";
Repetir
Leer tomaalcohol;
262 Capítulo 65. Problema 4
65.3 Diagrama de NS
266 Capítulo 65. Problema 4
4.18 En 1961, una persona vendió las tierras de su abuelo al gobierno por la cantidad de $1500.
Suponga que esta persona ha colocado el dinero en una cuenta de ahorros que paga 15 % anual.
¿Cuánto vale ahora su inversión? P(1+i)n .Realiceunalgoritmoparaobtenerestevaloryrepresntelomediantediagramade
66.1 Pseudocódigo
Proceso TierrasVendidasEn1961
n = 2021-1961;
P = 1500.0;
i = 15.0/100.0;
ahorros <- P*(1.0+i)n ;
Escribir”ValordeP : ”, P;
Escribir”Valordeahorros : ”, ahorros;
Escribir”Valordei : ”, i;
Escribir”Valorden : ”, n;
FinProceso
268 Capítulo 66. Problema 5
66.3 Diagrama de NS
4.22 El banco “Bandido de peluche” desea calcular para cada uno de sus N clientes su saldo
actual, su pago mínimo y su pago para no generar intereses. Además, quiere calcular el monto de lo
que ganó por concepto interés con los clientes morosos. Los datos que se conocen de cada cliente
son: saldo anterior, monto de las compras que realizó y pago que depositó en el corte anterior. Para
calcular el pago mínimo se considera 15 % del saldo actual, y el pago para no generar intereses
corresponde a 85 % del saldo actual, considerando que el saldo actual debe incluir 12 % de los
intereses causados por no realizar el pago mínimo y $200 de multa por el mismo motivo. Realice el
algoritmo correspondiente y represéntelo mediante diagrama de flujo y pseudocódigo.
67.1 Pseudocódigo
Proceso BancoBandidoDePelucheDeNClientes
ganaciaporintereses <- 0;
Escribir Sin Saltar Ïngresa el valor de n:";
Leer n;
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "PROCESO ", i;
Escribir Sin Saltar Ïngresa el valor de compras realizadas:";
Leer comprasrealizadas;
Escribir Sin Saltar Ïngresa el valor de pago del corte anterior:";
Leer pagodelcorteanterior;
Escribir Sin Saltar Ïngresa el valor de saldo anterior:";
Leer saldoanterior;
Si saldoanterior*0.15>pagodelcorteanterior Entonces
intereses <- saldoanterior*0.12;
multa <- 200;
SiNo
intereses <- 0;
multa <- 0;
270 Capítulo 67. Problema 6
FinSi
saldoactual <- saldoanterior+comprasrealizadas-pagodelcorteanterior+intereses+multa;
pagominimo <- saldoactual*0.15;
pagoparanogenerarintereses <- saldoactual*0.85;
ganaciaporintereses <- ganaciaporintereses+intereses;
Escribir "Valor de intereses: ", intereses;
Escribir "Valor de multa: ", multa;
Escribir "Valor de pago minimo: ", pagominimo;
Escribir "Valor de pago para no generar intereses: ", pagoparanogenerarintereses;
Escribir "Valor de saldo actual: ", saldoactual;
Escribir ;
FinPara
Escribir "Valor de ganacia por intereses: ", ganaciaporintereses;
FinProceso
67.2 Diagrama de flujo 271
67.3 Diagrama de NS
5.18 Se tiene un arreglo de seis filas y ocho columnas y se sabe que se tiene un elemento
negativo. Realice un algoritmo que indique la posición que ese elemento ocupa en el arreglo (en la
fila y la columna en la que se encuentra ese elemento). Represéntelo mediante diagrama, diagra¬ma
N/S y pseudocódigo.
68.1 Pseudocódigo
Algoritmo detarea
definir x,matriz Como Entero
Dimension matriz[6,8]
a=1
para f = 1 Hasta 6 Con Paso 1 Hacer
para c = 1 Hasta 8 Con Paso 1 Hacer
Escribir Ïngresa un numero: ",a leer matriz(f,c)
a=a+1
FinPara
FinPara
para f = 1 Hasta 6 Con Paso 1 Hacer
para c = 1 Hasta 8 Con Paso 1 Hacer
Escribir matriz(f,c), Sin Saltar
FinPara
Escribir
FinPara
para f = 1 Hasta 6 Con Paso 1 Hacer
para c = 1 Hasta 8 Con Paso 1 Hacer
si matriz(f,c) <0 Entonces
Escribir .El numero negativo se encuentra en la Fila: ",f,çolumna: ",c
FinSi
FinPara
274 Capítulo 68. Problema 7
FinPara
FinAlgoritmo
68.3 Diagrama de NS
68.4 Codigo en Python 275
5.9 Se tiene un arreglo de 15 filas y 12 columnas. Realice un algoritmo que permita leer el
arreglo y que calcule y presente los resultados siguientes: El menor elemento del arreglo; la suma
de los elementos de las cinco primeras filas del arreglo; y el total de elementos negativos en las
co¬lumnas de la quinta a la nueve.
69.1 Pseudocódigo
Algoritmo detarea
Definir f,c,numeromenor,contador,matriz Como Entero
Definir suma Como Real
Dimension matriz[15,12]
para f = 1 Hasta 15 Con Paso 1 Hacer
para c = 1 Hasta 12 Con Paso 1 Hacer
matriz(f,c) = azar(100) +1
Escribir matriz(f,c)
FinPara
FinPara
numeromenor = 0
para f = 1 Hasta 15 Con Paso 1 Hacer
para c = 1 Hasta 12 Con Paso 1 Hacer
si f == 1 y c == 1 Entonces
numeromenor = matriz(f,c)
SiNo
si matriz(f,c) <numeromenor Entonces
numeromenor = matriz(f,c)
FinSi
FinSi
FinPara
FinPara
69.1 Pseudocódigo 277
suma = 0
para f = 1 Hasta 5 Con Paso 1 Hacer
para c = 1 Hasta 12 Con Paso 1 Hacer
suma = suma + matriz(f,c)
FinPara
FinPara
contador = 0
para f = 1 Hasta 15 Con Paso 1 Hacer
para c = 5 Hasta 9 Con Paso 1 Hacer
si matriz(f,c) <0 Entonces
contador = contador + 1
FinSi
FinPara
FinPara
Escribir .El menor elemento de la matriz es: ",numeromenor
Escribir "La suma de las 5 primeras filas es: ",suma
Escribir "Los numeros negativos de la columns 5 a la 9 es: ",contador
FinAlgoritmo
278 Capítulo 69. Problema 8
69.3 Diagrama de NS
280 Capítulo 69. Problema 8