Buenas, en clases de programacion me ha tocado hacer un programa en el que introduces 2 vectores cualesquiera y el programa tiene que devolver tres vectores, uno el vector x, debe dar los elementos comunes a ambos vectores, el vector y debe dar los elementos que estan en el primer vector pero no en el segundo, y le tercero debe dar los elementos del 3 vector que no este en el 1. He hecho la primera parte del programa (hasta el vector x) y el problema que tengo es que funciona, pero no siempre, para los mismos valores del vector, 1 de cada 3 veces da los elementos correctos, 1 de cada 3 quita uno de los elementos y añade un numero gigantesco, y el resto de veces repite uno de los vectores. Este es el codigo, le he pedido ayuda al profesor, y no me ha corregido nada y dice, deberia dar bien, pero turbopascal no da bien, y ahi ha quedado su ayuda:
Program hijk;
var
e,b,c,u,n,m,a,i,j,k:integer;
v,w,x,y,z:array[1..100] of integer;
repetido:Boolean;
begin
Writeln('Introduzca el tamaño del primer vector:');
Readln(n);
Writeln('Introduzca los números del primer vector:');
For i:=1 to n do
read(v[i]);
Writeln('Introduzca el tamaño del segundo vector:');
readln(m);
Writeln('Introduzca los números del segundo vector:');
For j:=1 to m do
read(w[j]);
a:=1;
For i:=1 to n do
Begin
For j:=1 to m do
If v[i ]=w[j] then
Begin
repetido:=false;
For k:=1 to a do
If v[i]=x[a] then repetido:=true;
If repetido=false then
Begin
x[a]:=v[i];
a:=k+1;
end;
end;
Write('Este es el vector X: ');
For k:=1 to a-1 do
write(x[k],' ');
Readln;
readln;
end.
-Puede que haya algun error a la hora de copiar, porque lo he copiado a mano ya que no he encontrado otra forma de copiar directamente de turbo pascal a ningun sitio
-hay algun fallo, o solo es mi turbo pascal el que da problemas con eso?, el error da sobre todo con vectores iguales, dando igual el orden de los elementos
Version 2.0
Me piden hacer unr egistro, y no hemos dado registros. Los campos a rellenar son:
-Nombre
-Edad
-Grupo (A, B o C)
Hay que crear un programa que lea los datos por teclado, los muestre por pantalla, los ordene por nombre, edad, y grupo. Yo lo unico que he conseguido hacer es declarar el type, pego lo que he escrito hasta el momento, sin que explote pero si con error
type datos=record
Nombre:string;
Edad:integer;
Grupo:char;
end;
vector=array[1..100] of datos;
Var nombre:datos;
edad:datos;
grupo:datos;
v:vector;
i,n:integer;
begin;
writ
Readln(n);
Writeln('nombre, edad, grupo');
For i:=1 to n do
read(v[edad.edad, nombre.nombre, grupo.grupo]);
For i:=1 to n do writeln(edad.edad, nombre.nombre, grupo.grupo);
readln;
readln;
end.
Es una mierda, pero ya no se seguir, porque intento crear un array que almacene los distintos tipos, pero no hay manera, lo ultimo que he intentado es meter 3 For pero nose como vincularlos a un array ni nada por el estilo