Publicado el 11 de Julio del 2017
819 visualizaciones desde el 11 de Julio del 2017
33,4 KB
4 paginas
Creado hace 18a (14/05/2006)
H:\EDI\ConjuntoDinamico1.pas
14/05/2006 21:00:54
procedure conjuntoVacio(var conjunto:tConjunto);
function esConjuntoVacio(conjunto:tConjunto):boolean;
function pertenece(info:tInfo; conjunto:tConjunto):boolean;
procedure insertar(info:tInfo; var conjunto:tConjunto);
function cardinal(conjunto:tConjunto):integer;
procedure interseccion(conjunto1, conjunto2:tConjunto; var
procedure union(conjunto1, conjunto2:tConjunto; var
function conjuntoToStr(conjunto: tConjunto):string;
conjuntonuevo:tConjunto);
conjuntonuevo:tConjunto);
tInfo=char;
tConjunto=^tNodo;
tNodo=record
info:tInfo;
sig:tConjunto;
end;
const
type
nulo=nil;
tPos=tConjunto;
1: unit ConjuntoDinamico;
2: interface
type
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21: implementation
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
argumento
nuevo:tPos;
new(nuevo);
nuevo^.info:=info;
nuevo^.sig:=nulo;
CreaNodo:=nuevo;
function CreaNodo(info:tInfo):tConjunto;
{Objetivo: Crea un nuevo nodo en el conjunto con el dato info
Entrada: Info
Salida : un nuevo conjunto
}
var
begin
end;
function primerElemento(conjunto:tConjunto):tPos;
{Objetivo: Determina la posicion del primer elemento en el conjunto
Entrada: Un conjunto
Salida: La posicion del elemento en el conjunto
}
begin
end;
function siguienteElemento(conjunto:tConjunto;p: tPos):tPos;
{Objetivo: Devuelve la posicion del elemneto siguiente al que se pasa como
primerElemento:=conjunto;
Entrada: conjunto,p
Salida:
}
siguiente elemento a p
AcroPDF - A Quality PDF Writer and PDF Converter to create PDF files. To remove the line, buy a license.
1/4
H:\EDI\ConjuntoDinamico1.pas
14/05/2006 21:00:54
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
begin
end;
if esConjuntoVacio(conjunto) then
else
siguienteElemento:=nulo
siguienteElemento:=p^.sig;
procedure conjuntoVacio(var conjunto:tConjunto);
{Objetivo: Crear un conjunto vacio
Entrada:
Salida: Un conjunto vacio
}
begin
end;
conjunto:=nulo;
function esConjuntoVacio(conjunto:tConjunto):boolean;
{Objetivo: Determinar si un conjunto está vacio
Entrada: conjunto
Salida:
Precond: El conjunto debe estar inicializado
}
begin
end;
esConjuntoVacio:=(conjunto=nulo);
True si el conjunto esta vacio, false en caso contrario
True si el elemento pertenece a Conjunto, false en caso contrario
function pertenece(info:tInfo; conjunto:tConjunto):boolean;
{Objetivo: Determina la pertenencia de un elemento a un conjunto
Entrada: Un elemento y un conjunto
Salida:
Precond: El conjunto debe estar inicializado
}
var
begin
auxc:tPos;
auxc:=primerElemento(conjunto);
while (auxc<>nulo) and (auxc^.info<>info) do
auxc:=siguienteElemento(conjunto,auxc);
pertenece:=(auxc<>nulo);
end;
procedure insertar(info:tInfo; var conjunto:tConjunto);
{Objetivo: Añade un elemento a un conjunto
Entrada: El elemento a insertar y el conjunto
Salida:
}
var
begin
temp: tPos;
if not pertenece(info, conjunto) then
begin
Conjunto con el elemento insertado
temp:=CreaNodo(info);
temp^.sig:=conjunto;
conjunto:=temp;
AcroPDF - A Quality PDF Writer and PDF Converter to create PDF files. To remove the line, buy a license.
2/4
H:\EDI\ConjuntoDinamico1.pas
14/05/2006 21:00:54
end;
end;
function cardinal(conjunto:tConjunto):integer;
{Objetivo: Cuenta el número de elementos del conjunto
Entrada: Conjunto
Salida:
}
var
Número de elementos
begin
auxc:tPos;
i:integer;
i:=0;
auxc:=primerElemento(conjunto);
while (auxc<>nulo) do
begin
i:=i+1;
auxc:=siguienteElemento(conjunto,auxc);
end;
cardinal:=i;
end;
procedure interseccion(conjunto1, conjunto2:tConjunto; var
conjuntonuevo:tConjunto);
{Objetivo: Realiza la interseccion de dos conjuntos
Entrada: Dos Conjuntos
Salida:
Un nuevo conjunto resultado de la interseccion de los conjuntos
Precond: Los conjuntos deben estar inicializados y se supone memoria
de entrada
suficiente
}
var
begin
aux1: tPos;
conjuntoVacio(conjuntonuevo);
if not esConjuntoVacio(conjunto1) and
not esConjuntoVacio(conjunto2) then
begin
aux1:=primerElemento(conjunto1);
while (aux1<>nulo) do
begin
if pertenece(aux1^.info, conjunto2) then
aux1:=siguienteElemento(conjunto1, aux1);
insertar(aux1^.info, conjuntonuevo);
end;
end;
end;
procedure union(conjunto1, conjunto2:tConjunto; var
conjuntonuevo:tConjunto);
{Objetivo: Realiza la union de dos conjuntos
Entrada: Dos Conjuntos
Salida:
Un nuevo conjunto resultado de la union de los conjuntos de
Precond: Los conjuntos deben estar inicializados y se supone memoria
entrada
suficiente
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
AcroPDF - A Quality PDF Writer and PDF Converter to create PDF files. To remove the line, buy a license.
3/4
H:\EDI\ConjuntoDinamico1.pas
14/05/2006 21:00:54
}
var
begin
auxc:tPos;
conjuntoVacio(conjuntonuevo);
auxc:=primerElemento(conjunto1);
while (auxc<>nulo) do
begin
String, con los elementos del conjunto separados por un espacio
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207: end.
insertar(auxc^.info, conjuntonuevo);
auxc:=auxc^.sig;
end;
auxc:=primerElemento(conjunto2);
while auxc<>nulo do
begin
end;
insertar(auxc^.info, conjuntonuevo);
end;
function conjuntoToStr(conjunto: tConjunto):string;
{Objetivo: Devuelve el contenido de un conjunto
Entrada: Conjunto
Salida:
}
var
begin
auxc:tPos;
cadena:string;
cadena:='';
auxc:=primerElemento(conjunto);
while (auxc<>nulo) do
begin
cadena:=cadena + auxc^.info;
auxc:=siguienteElemento(conjunto, auxc);
if auxc<>nulo then
cadena := cadena + ' ';
end;
conjuntoToStr:=cadena;
end;
AcroPDF - A Quality PDF Writer and PDF Converter to create PDF files. To remove the line, buy a license.
4/4
Comentarios de: conjunto dinamico (0)
No hay comentarios