Upload
sakel-blood
View
225
Download
0
Embed Size (px)
Citation preview
8/17/2019 Cap III Vect 2016
1/71
Capitulo III
Arreglos Unidimensionales (Vectores)
8/17/2019 Cap III Vect 2016
2/71
Capitulo III
Arreglos Unidimensionales (Vectores)
Un arreglo (array) es un conjunto de datos del mismo tipo, los cuales ocupan
direcciones adyacentes en memoria cuando el programa se ejecuta,
permitiendo acceder a ellos en forma aleatoria. Es decir; que a cada
elemento se puede acceder mediante un subíndice entero único que lo
identifica.
Declaración de un arreglo de una dimensión
-------------------------------------------------------------------------------------------------
Tipo
Datos=array[11!!!" de enteros
Varia#les
$ista% Datos
n& i % enteros-------------------------------------------------------------------------------------------------
'emplo: declare un ector de longitud !" y almacene notas.
#eclara un array notas con !" elementos enteros, cada uno de los cuales de
referencia por su subíndice (notas $"%, notas $&%, notas $!% ...notas$&'%)
'aluaciones=array[1*!" de enteros
Varia#les
notas% 'aluaciones
n& i % enteros
dode para leer cantidad de elementos
i: contador de elementos
Algoritmos y 'structura de Datos 2
8/17/2019 Cap III Vect 2016
3/71
otas $ !"%
$ ! " [ 1 " [ * " [ + " [ 1, " [ 1 "
.ndice
&! && "' & ....... && "* "! &!
'lementos indiiduales del ector y todos del mismo tipo
+ara recorrer sus elementos para lectura yo escritura, se debe usar
estructuras de control, tales como:
&.- desde i " asta &' acer
!.- mientras (i/!") acer.
Iniciali/ación de un Arreglo
&.- 0e puede iniciali1ar un array con la declaraci2n:
int a$3% 4!,&,56
int b$% 4&,3,76 8iniciali1a los tres primeros elementos a &, ! y 3, y
los dem9s cero8
!.- 0e puede omitir el tamao del array:
float lista$ % 4 &.", .&, &".6 #eclara un array de tres elementos
0unción de acceso
+ermite acceder a un elemento específico (índice)
Ejemplo: otas $!%: indica que estamos apuntando al elemento en el índice
!.
8/17/2019 Cap III Vect 2016
4/71
olución
2rograma 2seudocódigo 2rograma D0D
Aipo
EaluacionesBarray$&..&""%de enteros
Cariables@ista: Ealuacionesn,i : enteros
Dnicio
Dmprimir(=Dngrese tota notas B >),
leer(n)#esde i & asta n acer
Dnicio
Dmprimir(=lista$>,i.>%B>); leer(@ista$i%)
in
#esde i & asta n acer
Dnicio
0i (@ista$i%?&") entonces
Dnicioap apF&
in Sino
inicio desap desapF& fin
Dmprimir(=Aotal:,ap,=#esaprobados B >,desap )
in
Implementación en C33 4!*
oid main()
Algoritmos y 'structura de Datos 4
8/17/2019 Cap III Vect 2016
5/71
4 int @ista$&""%, tn,i,apB",desapB";
gotoGy(&",); cout//HDngrese total de otas BH; cin??tn;
for(iB&; i/Btn;iFF)
4gotoGy(&",Fi);cout//Hota$H//i//H%BH; cin??@ista$i%;
6
for(iB&; i/Btn;iFF)
4 if (@ista$i%?&")
4apFF;
6
else
4desapFF;
6
6
gotoGy(&",&);cout//H Aotal
8/17/2019 Cap III Vect 2016
6/71
5.- Dniciar la lectura de notas (en este diagrama no est9n
alidadas las notas) usando la ariable ector $ista(i).
Jecuerde que su rango es de "..!" use la sentencia i
o mientras .
*.- +roceso de lectura finali1ado.
'.- Ionsultas: los datos almacenados en el
ector est9n disponibles para acer los
reportes que se requieran.
&".- Kostrar total de notas aprobadas y
desaprobadas: usar paso 7.&&.- Kediante estructura Iondicional,
comparar cada elemento del ector si son mayores &", contar aprobados y
guardar en el contador ap=ap31 En otro caso Iontar desaprobados y
guardar en el contador desap=desap31
&!.- Lacer reporte usando objeto de paso 3.
Aplicación *- #isear un programa que permita almacenar en un ector
=ealuaciones> edades de n empleados (n?" y n/&""). @uego mostrar las
edades ordenadas en forma ascendente
olución
2rograma 2seudocódigo 2rograma D0D
Aipo
EmpleadosB array$&..&""% de enteros
Cariables
Eda: Empleados
n, i,auG : enteros
Dnicio
Dmprimir(=Dngrese total empeladosB>), leer(n)
desde iB& asta n acer
Dnicio
Dmprimir(=Edad$>,i.>%B>); leer(Eda$i%) fin
Algoritmos y 'structura de Datos 6
8/17/2019 Cap III Vect 2016
7/71
desde i asta n-& acer
#esde j iF& asta n acer
0i (Eda$i%? Eda$j) entonces
Dnicio ,Eda$i% finfinImplementación en C33 4!*
Mdefine lineaHNNNNNNNNNNNNNNNNNH;
oid main()
4int Eda$&""%, te,i,j,temp;
gotoGy(&,);cout//HDngrese
numero de empleados: H;cin??te;
gotoGy(&,5); cout//HM Edad H;
gotoGy(&",*); cout//linea;
for(iB&;i/Bte;iFF)
4gotoGy(&,*Fi8!);cout//i//H.-
H;cin??Eda$i%;
6
ordenando
for(iB&;i/Bte-&;iFF) 4 for(jBiF&;j/Bte;jFF)
4 if(Eda$i%?Eda$j%)
4tempBEda$i%;
Eda$i%BEda$j%;
Eda$j%Btemp;
6
6
6
Algoritmos y 'structura de Datos 7
8/17/2019 Cap III Vect 2016
8/71
gotoGy(&",!);cout//HJE+OJAE OJ#E),
leer(n)
desde i & asta n acer
Dnicio Dmprimir(= ); leer(
8/17/2019 Cap III Vect 2016
9/71
fin
fin
fin
si(pos/B&) entonces
inicio
Dmprimir(= El numero H//busca//H aparece y ocupa el H//pos//H lugarH)
fin
sino
Dmprimir(= Elementos repetidos:H),
Dmprimir(= NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH;Dmprimir(= NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH;
Dmprimir(= Cector : H), Dmprimir(= Dndices: H),
desde i & asta r acer
inicio
Dmprimir(J$r%),
Dmprimir( +oos$r%),
fin
fin
fin
Implementación en 5orland c33 4!*
oid main()
4int n,
8/17/2019 Cap III Vect 2016
10/71
4gotoGy(&3F38i,7);cout//H ,H; cin??
8/17/2019 Cap III Vect 2016
11/71
6
Aplicación 6- #isear un programa que permita almacenar en ector < y Pn y m elementos respectiamente, donde (m,n?" y m, n/&""). @uego
mostrar los elementos que son comunes para < y P y su posici2n
respectia.
olución
Aipo
#atosB array$&..&""% de enteros
Cariables
+os,
8/17/2019 Cap III Vect 2016
12/71
t tF&; +osj$t% j;
fin
si (Q?") entonces
inicio
Dmprimir(=CEIAOJE0 IO E@EKEAO0 DAEJIE+A
8/17/2019 Cap III Vect 2016
13/71
QB",dB",tB";
for (iB&; i/Bn; iFF)
for (jB&; j/Bm; jFF)
if (
8/17/2019 Cap III Vect 2016
14/71
Aplicación 4- #isear un programa que permita almacenar en ector < de
longitud m9Gima &""", n números pares positios luego mostrar el promedio
de estos números.
olución
Aipo
#atosB array$&..&"""% de enteros
Cariables
8/17/2019 Cap III Vect 2016
15/71
Diagrama de 0luo de datos
Algoritmos y 'structura de Datos 15
8/17/2019 Cap III Vect 2016
16/71
Importando al compilador 5orland C33 4!*
Algoritmos y 'structura de Datos 16
8/17/2019 Cap III Vect 2016
17/71
Algoritmos y 'structura de Datos 17
8/17/2019 Cap III Vect 2016
18/71
Aplicación 8- #isear un programa que permita almacenar en ector < de
longitud m9Gima &""", n números pares positios luego insertar nueos
elementos.
olucion
Aipo
#atosB array$&..&"""% de enteros
Cariables
8/17/2019 Cap III Vect 2016
19/71
Diagrama de 0luo de datos
Algoritmos y 'structura de Datos 19
8/17/2019 Cap III Vect 2016
20/71
Aplicación 9- #isear un programa que permita almacenar en ector < de
longitud m9Gima &""", c2digo formado por 3 dígitos de n alumnos. @os
Algoritmos y 'structura de Datos 20
8/17/2019 Cap III Vect 2016
21/71
c2digos no deben repetirse. 0i se repite eniar el mensaje mostrado en el
siguiente formulario.
olución
Algoritmos y 'structura de Datos 21
8/17/2019 Cap III Vect 2016
22/71
#iagrama de flujo de datos
Algoritmos y 'structura de Datos 22
8/17/2019 Cap III Vect 2016
23/71
Implementación en c33 4!*
oid main()
4 car nomb$%$%;
int i,j,QB",auG,n,cod$&"%,co$&"%,pos$&"%; bool b&;
clrscr();
system(Hcolor &bH);
gotoGy(&",!);cout//HDngresar numero de alumnos B H; cin??n;
gotoGy(*,); cout//H M Iodigo ombre H;
gotoGy(,);cout//HNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH;
for(iB&;i/Bn;iFF)
4 QB";actuali1a para contador de repeticiones de !do, 3ro cod, repetidos
do
4 gotoGy(&",Fi); clreol();cout//i//H.- H;system(Hcolor &bH);cin??cod$i%;
b&Bfalse;
if(i?&)
4 gotoGy(7",Fi);cout//Hposicion iB H//(i-&); getce();
for(jB&;j/Bi-&;jFF)
4 if(cod$i%BBcod$j%)
4 b&B&; QFF;
gotoGy(3",7Fj);system(Hcolor aH);cout//H Iodigo Ta EGiste posicion: H//j;
gotoGy(",5Fj);cout//H Jepeticion M B H//Q;
getce();
clreol();
6
6D #E@ OJ
6
6 Vile(cod$i%/&""WWcod$i%?&"""WWb&BBtrue);
pos$i%Bi;
gotoGy(!,Fi); gets(nomb$i%);
6D #E@ OJ
Algoritmos y 'structura de Datos 23
8/17/2019 Cap III Vect 2016
24/71
Aplicación ,- #isear un programa que permita almacenar en ector < de
longitud m9Gima &""", edades de n alumnos. @uego acer un reporte de las
edades pero sin repetirse.
0oluci2n
2seudocódigo
Algoritmos y 'structura de Datos 24
8/17/2019 Cap III Vect 2016
25/71
Diagrama de :luo de datos
Algoritmos y 'structura de Datos 25
8/17/2019 Cap III Vect 2016
26/71
Aplicación .- #isear un programa que permita almacenar datos por nota y
seGo de n alumnos en un ector de longitud m9Gima &""". @uego acer un
reporte para conocer los alumnos aprobados de seGo Kasculino.
Algoritmos y 'structura de Datos 26
8/17/2019 Cap III Vect 2016
27/71
Diagrama de :luo de datos
Algoritmos y 'structura de Datos 27
8/17/2019 Cap III Vect 2016
28/71
Aplicación 1!.- #isear un programa para leer un numero entero positio y
luego genere un reporte del número en tXrminos de parejas de números a,
b donde nBaFb y a?Bb. asimismo el mayor elemento respecto al número a
Diagrama de :luo de datos
Algoritmos y 'structura de Datos 28
8/17/2019 Cap III Vect 2016
29/71
Algoritmos y 'structura de Datos 29
8/17/2019 Cap III Vect 2016
30/71
Implementación en c33 4!*
Algoritmos y 'structura de Datos 30
8/17/2019 Cap III Vect 2016
31/71
Aplicación 11- #isear un programa que permita almacenar en un ector
de longitud m9Gima &""", apellidos de n alumnos luego genere un reporte
ordenado en forma ascendente de los apellidos. o debe aceptar el ingreso
de nombres repetidos. El programa finali1a cuando ingresa un apellido en
blanco (cuando presiona EAEJ).
olución
Implementado en 2eInt
+roceso Ordena
8/17/2019 Cap III Vect 2016
32/71
in0i
in+ara
Lasta Rue O seNrepite
inKientras
ordenar en forma ascendente
+ara i/-& Lasta cant-& Lacer
busca el menor entre i y cant
posNmenor/-i;
+ara j/-iF& Lasta cant Lacer
0i apellido$j%/apellido$posNmenor% Entonces
posNmenor/-j;
in0i
in+ara
intercambia el que estaba en i con el menor que encontro
auG/-apellido$i%;
apellido$i%/-apellido$posNmenor%;
apellido$posNmenor%/-auG;
in+ara
Escribir H
8/17/2019 Cap III Vect 2016
33/71
Diagrama De 0luo de datos
Algoritmos y 'structura de Datos 33
8/17/2019 Cap III Vect 2016
34/71
Aplicación 1*- 0olo se debe usar para que el usuario ingrese sus datos por
código(solo de tres dígitos), nom#re(cadena de longitud 1! caracteres) y
edad (&..5") de n empleados
( n/B&"" ). @os datos deben almacenarse en ectores que usted defina,
luego genere los siguientes reportes:
&.- Empleados por c2digo, nombre y edad, respectiamente.
!.-Empleados por nombre y edad, ordenados en forma ascendente por edad.
8/17/2019 Cap III Vect 2016
35/71
Algoritmos y 'structura de Datos 35
8/17/2019 Cap III Vect 2016
36/71
2roceso ordenarAscen;Ins;'lim
definir n,i,notas,G,pos,edad,codigo,G!,j,d,p,sd,c,Gc,as, como enteros;
definir nombre,G&,1 como caracter;
dimension codigo$!"%; dimension nombre$!"%;
dimension pos$!"%; dimension edad$!"%;
Gc/-&;as/-&; c/-";sd/-";/-";
Escribir HDngrese numero de empleados B H;@eer n;sin bajar;
+ara i/-& asta n con paso & acer
Escribir Hcodigo$H,i,H% B H;leer codigo$i%;sin bajar;
si codigo$i%/&""" entonces
Escribir Hnombre$H,i,H% B H;leer nombre$i%;sin bajar;
Escribir Hedad$H,i,H% B H; leer edad$i%;sin bajar;
pos$i%/-i;
0ino
escribir Hcodigo muy largo H,Huela a ingresar el codigo H;
i/-&;
in0i
in+ara
+ara i/-& asta n-& con paso & acer
Algoritmos y 'structura de Datos 36
8/17/2019 Cap III Vect 2016
37/71
para j/-iF& asta n con paso & acer
si (edad$i%?edad$j%) entonces
G/-edad$i%; G&/-nombre$i%; G!/-codigo$i%;
edad$i%/-edad$j%; nombre$i%/-nombre$j%; codigo$i%/-codigo$j%;
edad$j%/-G; nombre$j%/-G&; codigo$j%/-G!;
d/-pos$i%; pos$i%/-pos$j%; pos$j%/-d;
in0i
in+ara
in+ara
Escribir H M codigo ombre Edad +osicion actual +osicion anterior H;
Escribir H-------------------------------------------------------------------------H;
+ara i/-& asta n con paso & acer Escribir H H,i,H.- H,codigo$i%,H H,nombre$i%,H
H,edad$i%,H H,i,H H,pos$i%;
in+ara
mientras Gc/&""" acer
Escribir Hnumero de consulta B H,as;
Escribir H que desea acer H, H(Jetirar,Dnsertar o Puscar empleado) B H;leer 1;
0i 1BYbuscarY WW 1BYPU0I
8/17/2019 Cap III Vect 2016
38/71
Escribir Hnumero total de empleados encontrados con H,p,H aos B H,;
0ino
si 1B YinsertarY WW 1BYD0EJA
8/17/2019 Cap III Vect 2016
39/71
+ara i/-& asta nFsd con paso & acer
Escribir H H,i,H.- H,codigo$i%,H H,nombre$i%,H H,edad$i%,H H,i,H H,pos$i%;
in+ara
0ino
para i/-& asta nFsd con paso & acer
si edad$i%?B7" Entonces
c/-cF&;
G/-edad$nFsd%; G&/-nombre$nFsd%; G!/-codigo$nFsd%;
edad$nFsd%/-edad$i%; nombre$nFsd%/-nombre$i%; codigo$nFsd%/-codigo$i%;
edad$i%/-G; nombre$j%/-G&; codigo$i%/-G!;
d/-pos$nFsd%; pos$nFsd%/-pos$i%; pos$i%/-d;
in0i
in+ara
Escribir H M codigo ombre Edad +osicion actual +osicion anterior H;
escribir H----------------------------------------------------------------------------------------H;
+ara i/-& asta (nFsd)-c con paso & acer
Escribir H H,i,H.-H,codigo$i%,H H,nombre$i%,H H,edad$i%,H H,i,H H,pos$i%;
in+ara
in0i
in0i
Gc/-GcF&;
as/-asF&;
inKientras
in+roceso
Algoritmos y 'structura de Datos 39
8/17/2019 Cap III Vect 2016
40/71
Aplicación 1+.- #isear un
programa que permita leer n notas
(n?!) de alumnos, las cuales
pueden ser únicamente enteras
entre & y !". @uego mostrar un
reporte de total notas de alor: &,
5 y &&.
8/17/2019 Cap III Vect 2016
41/71
#iagrama de flujo de datos
Algoritmos y 'structura de Datos 41
8/17/2019 Cap III Vect 2016
42/71
rrays idimensionales
8/17/2019 Cap III Vect 2016
43/71
Aplicación 1- #isear un programa que permita almacenar datos de ti
entero en una matri1 de n filas y m columnas(n,m?&), luego acer un reporte
y mostrar la suma de sus elementos diagonales. El programa consta de:
+seudoc2digo, #iagrama de flujo de datos y programa en cFF.
2rograma 2seudocódigo en 2eInt
Algoritmos y 'structura de Datos 43
8/17/2019 Cap III Vect 2016
44/71
2rograma en Diagrama de :luo de datos
Algoritmos y 'structura de Datos 44
8/17/2019 Cap III Vect 2016
45/71
Implementación en c33 4!*
oid main()
4 int n,m,i,j,suma,a$&"%$&"%; sumaB";
cout//HDngrese las BH//endl; cin??n;
cout//HDngrese Iolumnas B H//endl; cin??m;
for(iB&;i/Bn;iFF) 4
for (jB&;j/Bm;jFF) 4
cout//H
8/17/2019 Cap III Vect 2016
46/71
Aplicación !.-- Una empresa importadora de eículos tiene distribuido tres
tipos de eículos en tres almacenes diferentes,
tal como se ilustra en la siguiente figura:
#isear un programa que permita leer el
número de tipos de eículos y el número de
almacenes (pude usted generali1ar para n filas y
m columnas), luego generar reportes:
a).- Aotal de eículos por tipo
b).-Aotal de eículos en cada almacXn
olución
Diagrama de :luo de datos
Algoritmos y 'structura de Datos 46
8/17/2019 Cap III Vect 2016
47/71
Algoritmos y 'structura de Datos 47
8/17/2019 Cap III Vect 2016
48/71
Implementacion en 5orland c33 4!*
oid main()
4int almacen$!"%$!"%,i,j,GB,yB&",m,n;
float sumaB",tB"; clrscr(); gotoGy(&,&);
cout//HIompania Dmportadora de
8/17/2019 Cap III Vect 2016
49/71
Aplicación 3. #isear un programa que permita ingresar números enteros
en una matri1 cuadrada de orden n8m (n y m son ingresados por el usuario),
luego se pide mostrar %
a).-@a suma diagonal principal
b).- @a suma de la fila ingresada por el usuario
c).- @a suma de la columna ingresada por el usuario
d).-@a matri1 ordenada por columnas
olucion
Implementacion en 5orland c33 4!*
oid main()4 long a$&"%$&"%,n,m,i,j,Q,auG; int sumaB", suma&B",suma!B"; long s$&"%;
clrscr(); cout//H]ningrese el numero de filas: H;cin??n;
cout//H]ningrese el numero de columnas: H;cin??m;
int GB,yB&";
for(iB&; i/Bn;iFF)
4 for(jB&;j/Bm;jFF) 4gotoGy(&'Fy8j,GFi8!);cout//Hal$H//i//H,H//j//H%BH;
gotoGy(!5Fy8j,GFi8!);cin??a$i%$j%;
6
6
for(iB&; i/Bn;iFF)
4 for(jB&;j/Bm;jFF)
4 if(iBBj)
sumaBsumaFa$i%$j%;
6 6
cout//H]nDngrese el número de fila: H; cin??i;
for(jB&; j/Bn;jFF)
4 suma&Bsuma&Fa$i%$j%; 6
cout//H]n@a suma de la fila es: H//suma&//endl;
cout//H]nDngrese el numero de columna: H; cin??j;
for(iB&; i/Bm;iFF)
4 suma!Bsuma!Fa$i%$j%;
6
Algoritmos y 'structura de Datos 49
8/17/2019 Cap III Vect 2016
50/71
cout//H]n@a suma de la columna es: H//suma!//endl; getce(); clrscr();
gotoGy(*,);cout//H]nKatri1 ordenada pero mostrado por columnas H//endl;
for(iB&;i/Bn;iFF)
for(jB&;j/Bm-&;jFF) ordenado filas en forma descendente
4for(QBjF&;Q/Bm;QFF)
if (a$i%$j%/i%$Q%) 4auGBa$i%$j%; a$i%$j%Ba$i%$Q%; a$i%$Q%BauG;
6
6
for (iB&;i/Bn;iFF) for (jB&;j/Bm;jFF) 4 gotoGy(&'Fy8j,GFi8!); gotoGy(&!Fy8j,GFi8!);cout//a$i%$j%;
6getce();6
Dngreso de datos reporte de la matri1, ordenada por filas y en formadescendente:
Implementación mediante el 2seInt
Algoritmos y 'structura de Datos 50
8/17/2019 Cap III Vect 2016
51/71
Algoritmos y 'structura de Datos 51
8/17/2019 Cap III Vect 2016
52/71
Algoritmos y 'structura de Datos 52
8/17/2019 Cap III Vect 2016
53/71
Algoritmos y 'structura de Datos 53
8/17/2019 Cap III Vect 2016
54/71
Algoritmos y 'structura de Datos 54
8/17/2019 Cap III Vect 2016
55/71
Continuación
Aplicación 4- #isear un programa que permita leer datos de tipo
enteros y almacenarlos en una
matri1 de n filas y m columnas
(m,n?&), luego encontrar el
total de números positios y la
suma respectia. +roceso
an9logo para los números
negatios.
olución
Algoritmos y 'structura de Datos 55
8/17/2019 Cap III Vect 2016
56/71
Algoritmos y 'structura de Datos 56
8/17/2019 Cap III Vect 2016
57/71
Diagrama de :luo de datos
Algoritmos y 'structura de Datos 57
8/17/2019 Cap III Vect 2016
58/71
Aplicación 8- #isear un programa que
permita almacenar dígitos en forma aleatoria
en una matri1 de dimensi2n n8n, luego en un
ector < mostrar la suma por cada fila y en un
ector P la suma por cada columna.
Algoritmos y 'structura de Datos 58
8/17/2019 Cap III Vect 2016
59/71
Diagrama de 0luo de datos
Continua
Algoritmos y 'structura de Datos 59
8/17/2019 Cap III Vect 2016
60/71
Algoritmos y 'structura de Datos 60
8/17/2019 Cap III Vect 2016
61/71
Algoritmos y 'structura de Datos 61
8/17/2019 Cap III Vect 2016
62/71
Usando 5orland C33 4!*
Aplicación 1- #isear un programa que permita ingresar números enteros a
una matri1 de orden n8m( n:filas y m:columnas ) n,m definidos por usuario y
luego mostrar sus elementos ordenados en forma ascendente y en
'2I>A$
olucion ??matri/;espiralcpp
M define linea HNNNNNNNNNNNNNNNNNNNNNNNNNNNH
Mdefine taman !"
oid main()
4 int matri1$taman%$taman%, espiral$taman%$taman%, temp$&""%,i,j,Q,n;
int farribai1q,farribader,cderecaarr,cderecaaba,fabajoder,fabajoi1q,
ci1qaba;
int ci1qarr,contador, auG;;
gotoGy(&,!);cout//H K
8/17/2019 Cap III Vect 2016
63/71
farribai1q B";farribader B n - &;cderecaarr B &;cderecaaba B n - &;fabajoder
B n - !;fabajoi1q B ";ci1qaba B n - !; ci1qarr B &;contador B ";
Vile(contador / (n8n))
4for (i B farribai1q; i /B farribader; iFF)
4espiral$farribai1q%$i% B temp$contador%; contadorFF;
6
farribai1qFF; farribader--;
for( i B cderecaarr; i /B cderecaaba; iFF )
4espiral$i%$cderecaaba% B
temp$contador%;contadorFF;
6
cderecaarrFF;cderecaaba--;
for( iBfabajoder;i?Bfabajoi1q;i-- )
4espiral$fabajoder F &%$i% B
temp$contador%; contadorFF;
6
fabajoder--; fabajoi1qFF;
for( i B ci1qaba; i ?B ci1qarr; i-- )
4espiral$i%$ci1qarr - &% B temp$contador%; contadorFF;
6 ci1qaba--; ci1qarrFF;
6 cout//H]n]t Katri1 de orma de E0+DJ
8/17/2019 Cap III Vect 2016
64/71
2ro#lema *- #isear un programa que permita leer n alumnos por
apellidos y tres notas por cada uno, luego genere reportes para conocer
apellidos, promedio y estado (aprobado, desaprobado). El promedio se
calcula eliminando la menor nota por alumno; asimismo, muestre el alumno
que pertenece al tercio superior
olución
Mdefine maGf " Mdefine maGc "
oid main() 4 car nom$maGf%$maGc%,temp$maGf%;
float temp&, notas$maGf%$3%, prom$maGf%, min$maGf%; int t i,j,n;clrscr();
gotoGy(*,!);cout//HJE@
8/17/2019 Cap III Vect 2016
65/71
for(iB&;i/Bn-&;iFF)
for(jB&;j/Bn-i;jFF)
if (prom$j%/prom$jF&%)
4 temp&Bprom$j%; strcpy(temp,nom$j%);
prom$j%Bprom$jF&%; strcpy(nom$j%,nom$jF&%);
prom$jF&%Btemp&; strcpy(nom$jF&%,temp);
6
cout//H]nH;cout//H]t]tJE+OJAE #E
8/17/2019 Cap III Vect 2016
66/71
rrays ridimensionales
8/17/2019 Cap III Vect 2016
67/71
Aplicación 1- #isear un programa que permita leer n cursos, para cada
curso leer m alumnos y para cada alumnos leer Q pr9cticas, luego mostrar
acumulado de sus notas y luego promedio por alumno.
olución
Algoritmos y 'structura de Datos 67
8/17/2019 Cap III Vect 2016
68/71
#iagrama de flujo de datos
Algoritmos y 'structura de Datos 68
8/17/2019 Cap III Vect 2016
69/71
Aplicación *- Un aeropuerto cuenta con los datos de los pasajeros, por
uelos, de los doce meses del ao pasado. 0e tiene nuee destinos desde
donde pueden enir o llegar dicos uelos y cinco aerolíneas a los cuales
pueden pertenecer los uelos (llamXmosla
8/17/2019 Cap III Vect 2016
70/71
4cout//HDngrese el nmero de uelos desde H//QF&//H :H;
cin??uelos$&%$i%$j%$Q%;
for(lB";l/uelos$&%$i%$j%$Q%;lFF)
4cout//Hmero de pasajeros del uelo H//lF&//H :H;
cin??pasajeros$&%$i%$j%$Q%$l%;
66 6
6
for(iB";i/&!;iFF)
4 cont$i%B"; maG B cont$i%;
for(mB";m/!;mFF)for(jB";j/;jFF)
for(QB";Q/';QFF)
cont$i%Bcont$i%Fuelos$m%$i%$j%$Q%;
if (cont$i% ? maG)
4 maGBcont$i%;maGiBi;
6
6
cout//H]nEl mes de de mayor numeros de uelos es H//maGiF&//H :H;
for(jB";j/;jFF)
4 contNpas$j%B";
maGNpas B contNpas$j%;
for(iB";i/3;iFF)
for(mB";m/!;mFF)
for(QB";Q/';QFF)
for(lB";l/uelos$m%$i%$j%$Q%;lFF)
contNpas$j%BcontNpas$j%Fpasajeros$&%$i%$j%$Q%$l%;
if (contNpas$j% ? maGNpas)
4 maGNpasBcontNpas$j%;aeroBj;
6
6
cout//H]n@a aerolinea con transporte de pasajeros es H//aero F 7//H :H;
6
Algoritmos y 'structura de Datos 70
8/17/2019 Cap III Vect 2016
71/71