Cap III Vect 2016

download Cap III Vect 2016

of 71

Transcript of Cap III Vect 2016

  • 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