Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 7 ejercicio B3
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const DimF = 30; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type indice = 1 .. DimF; Tvector = record vector : array [indice] of integer; DimL : indice; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CARGAR VECTOR} procedure cargarVector(var v : Tvector); var i : indice; begin v.DimL := random(DimF div 2)+1; for i := 1 to v.DimL do v.vector[i] := random(100); end; {----------------------------------------------------------------- IMPRIMIR DECENA} procedure imprimirDecena(n:integer); begin if n > 9 then begin write(' | ',n); end else write(' | 0',n); end; {----------------------------------------------------------------- IMPRIMIR DECENA 2} procedure imprimirDecena2(n:integer); begin if n > 9 then begin writeln(' | ',n,' |'); end else writeln(' | 0',n,' |'); end; {----------------------------------------------------------------- IMPRIMIR DECENA 3} procedure imprimirDecena3(n:indice); begin if n > 9 then begin write(' ',n); end else write(' 0',n); end; {----------------------------------------------------------------- IMPRIMIR VECTOR} procedure imprimirVector(v : Tvector); var j : indice; begin for j := 1 to v.DimL do write('-----'); writeln; for j := 1 to v.DimL-1 do imprimirDecena(v.vector[j]); imprimirDecena2(v.vector[v.DimL]); for j := 1 to v.DimL do write('-----'); writeln; for j := 1 to v.DimL do imprimirDecena3(j); writeln; end; {----------------------------------------------------------------- MIXED} function MIXED (a,b:Tvector;i:indice):Tvector; var n,j : indice; begin for j:= b.DimL downto 1 do begin for n:= a.DimL downto i+1 do a.vector[n+1] := a.vector[n]; // movemos todos los elementos desde i un casillero mas adelante a.DimL := a.DimL + 1; // aumentamos la dimension logica de a a.vector[i+1]:= b.vector[j]; // insertamos el elemento en la posicion i + 1 end; MIXED:=a; end; {----------------------------------------------------------------- VALIDAR - Verifica que se cumpla lo necesario para poder mezclar ambos vectores ... } procedure validar(a,b:Tvector; var v:Tvector;i : indice); begin if (i > 0) and (i <= a.DimL)then begin // si el indice dado está entre los valores cargados en el vector a ... if ((a.DimL + b.DimL) < DimF) then begin // si la suma de las dimensiones logicas de los vectores son menores a la // dimension fisica, para poder juntarlos en un solo vector // sino podremos decir que no hay suficiente lugar para almacenar todos los datos writeln('ínsertamos los elementos de b desde la posicion de ',i,' de a'); v:= MIXED(a,b,i); imprimirVector(v); end else writeln('el vector no tiene suficiente espacio para hacer el mix'); end else writeln('el valor ingresado de indice no es valido para su mix'); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var A,B,v:Tvector; I : indice; begin randomize; cargarVector(A); imprimirVector(A); cargarVector(B); imprimirVector(B); I:= random(A.DimL); // SIEMPRE ESTARÁ EN EL RANGO PERMITIDO. PERO IGUAL VAMOS A REVALIDAR EL INDICE PARA HACERLO MAS SEGURO validar(A,B,v,I); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
JONES
Sasmandar
Пиріжки
zad27-notoptimal
Potenztabelle
Ariketa 06
Thao Vi
Бассейн-5
Prosti brojevi praktikum nizovi
Homework 1