Program vectores;
Uses
crt;
Var
Sum,Media,Modu1,Modu2,Escalar:real;
t,q,z,x,i,j:integer;
V:array[1..5] of integer; (*Se declara las variables para la estructura array, según la cual se accederá a cada uno de sus datos mediante un indicador común*)
Vec,Vector,VSum,VX:array[1..3] of integer;
Nom:ansistring;
a,b,c,k:char;
Begin
clrscr;
Writeln('Buenas, bienvenido al apasionante mundo de los vectores, mi nombre es GladOs y voy a ser tu gu¡a');
Delay(500);
Writeln('¨Cu l es tu nombre?');
Readln(Nom);
Writeln('Encantada ',Nom);
Delay(500);
Writeln('Empecemos!');
Repeat (*Se establece el principio de la repetión general del programa*)
Repeat (*Se establece una función repeat de forma que se asignarán valores a cada indice de la estructura array*)
For i:=1 to 5 do
Begin
Writeln('Introduce el componente ',i,' del vector');
Readln(V[i]);
End;
Writeln('Perfecto, este es tu vector: (',V[1],',',V[2],',',V[3],',',V[4],',',V[5],')'); (*Se recurre a los datos de la estructura array, nombrandola a su determinante y al indice*)
Delay(500);
Writeln('¨Es correcto?(s/n)');
Readln(b)
Until b in ['S','s'];
Writeln('Por lo tanto, la suma de los 5 componentes es:');
For i:=1 to 5 do (*Con esta función for logro un efecto de “pensando”*)
begin
write('.');
Delay(500);
End;
Sum:=V[1]+V[2]+V[3]+V[4]+V[5];
Writeln(Sum:0:2); (*Determino el numero de decimales que, al ser real, debe de mostrarse*)
Delay(500);
Writeln;
Writeln('Por lo tanto, la media de tus componentes ser :');
For i:=1 to 5 do
begin
write('.');
Delay(500);
End;
Media:= Sum/5;
Writeln(Media:0:2);
Delay(500);
Writeln('De acuerdo, quieres continuar descubriendo el mundo de los vectores?');
For j:=1 to 10 do
begin
write('.');
Delay(300);
End;
Writeln('Claro que s¡!');
Delay(500);
Repeat
Writeln(Nom,'Escribe ahora un nuevo vector de 3 componentes');
For t:=1 to 3 do
Begin
Writeln('Introduce el componente ',t,' del vector'); (*Se pide que introduzca el componente t, siendo t el indice de la estructura array, que ira de 1 a 3*)
Readln(Vec[t]);
End;
Writeln('Entonces tu primer vector es este: (',Vec[1],',',Vec[2],',',Vec[3],')');
Delay(500);
Writeln('¨Es correcto?(S/N)');
readln(c);
Until c in ['S','s'];
Repeat
Writeln('Escribe ahora un segundo vector de 3 componentes');
For q:=1 to 3 do
Begin
Writeln('Introduce el componente ',q,' del vector');
Readln(Vector[q]);
End;
Writeln;
Writeln('Perfecto, este es tu segundo vector: ',Vector[1],',',Vector[2],',',Vector[3],')');
Writeln('¨Son correctos?(s/n)');
Readln(a)
Until a in ['S','s'];
Writeln('Perfecto, comenzar‚ con mis c lculos!');
For j:=1 to 10 do
begin
write('.');
Delay(300);
End;
For z:=1 to 3 do
VSum[z]:=Vector[z]+Vec[z]; (*Realizo la suma de las estructuras array de determinante z, yendo z desde 1 hasta 3, para asi generar una nueva estructura array a partir de la suma de las anteriores*)
Writeln('El resultado de la suma de tus vectores es: (',VSum[1],',',Vsum[2],',',Vsum[3],')');
Delay(500);
For x:=1 to 3 do
VX[x]:=Vector[x]*Vec[x];
Escalar:=VX[1]+VX[2]+VX[3];
Writeln('El resultado del producto escalar de tus vectores es: (',VX[1],',',VX[2],',',VX[3],')');
Modu1:=Sqrt(sqr(Vector[1])+sqr(Vector[2])+sqr(Vector[3])); (*La función sqrt realiza una raiz cuadrada, la sqr, eleva al cuadrado*)
Modu2:=Sqrt(sqr(Vec[1])+sqr(Vec[2])+sqr(Vec[3]));
Writeln('El modulo de tu primer vector es: ',Modu1):0:2;
delay(500);
Writeln('El modulo de tu segundo vector es: ',Modu2:0:2);
writeln();
Writeln('¨Quieres volver a empezar?');
k:=readkey;
until k in ['N','n'];
End.