Pascal/Turbo Pascal - AYUDA LO MAS PRONTO POSIBLE!!!

 
Vista:

AYUDA LO MAS PRONTO POSIBLE!!!

Publicado por ChRIsTiAN (2 intervenciones) el 17/08/2009 19:47:22
En este programa que hice calculo la desviacion estandar , pero tengo un limite de vectores hasta 5. Como puedo hacer que el limite del array lo pueda cambiar el usuario ( ej. en vez de 5 que sean 6 o 7) y a la vez sacar la desviacion de todos esos numeros.



program vector1;
uses crt;
const limite=5;
type vector=array[1..limite] of real;
var x:vector;
desv,suma,media,sumatoria:real;
i:integer;
resp:char;
begin
clrscr;
suma:=0;
media:=0;
sumatoria:=0;
desv:=0;
resp:='s';
while (resp='s') or (resp='S') do
begin
clrscr;
writeln('Calculo de la desviacion estandar');
for i:= 1 to limite do
begin
writeln('Introduzca el elemento ',i,' del vector:');
readln(X[i]);
suma:=suma + X[i];
end;
media:=suma/limite;
writeln('La medida de los elementos del vector es: ',media:10:2);
for i:= 1 to limite do
begin
sumatoria:=sumatoria + sqr(X[i] - media);
end;
desv:=sqrt(sumatoria/(limite-1));
writeln('La desviacion estandar es: ',desv:10:2);
writeln('Desea realizar un nuevo calculo (s/n): ');
readln(resp);
end;
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA LO MAS PRONTO POSIBLE!!!

Publicado por juan (44 intervenciones) el 18/08/2009 15:08:39
es el mismo caso que el posteo anterior , usa una dimension fica ( establecida de antemano ) y una dimension logica ( una variable ya valla teniendo encuenta el tamaño a establecerse con el usuario e cargando los datos e incrementandose osea como indice autonumerico , hasta llegar al tamaño que establecio el usuario , sin pasarse del tamaño fisico)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA LO MAS PRONTO POSIBLE!!!

Publicado por Erick (1 intervención) el 05/07/2010 20:23:01
Es facil.

En lazarus,

Unit vector;
interface
type
ve=class

private
vector: array of integer;
n:integer; //El usuario digita el tamaño n del vector
x:integer;
public
constructor create;
procedure tamano; //procedimiento que asigna el tamaño del vector
procedure setn(valor:integer);
function getn:integer;
procedure setx(valor:integer);
function getx:integer;
procedure setvector(pos:integer;dat:integer);
function getvector(pos:integer):integer;
end;
implementation
constructor vec.create;
var
i:integer;
begin
//inicializacion de las variables
n:=0;
x:=0;
for i:=0 to n-1 do
begin
vector[i]:=0;//en cada posicion del vector se le asigna 0
end;
end;

procedure vec.tamano;
begin
SetLength(vector,n); //Esto es un vector dinamico; por lo tanto, cuando se trabaja con length, el indice arranca desde 0 hasta n-1
end;

procedure vec.setn(valor:integer);
begin
n:=valor;
end;

function vec.getn:integer;
begin
result:=n;
end;

procedure vec.setx(valor:integer);
begin
x:=valor;
end;

function vec.getx:integer;
begin
result:=x;
end;

procedure vec.setvector(pos:integer;dat:integer);
begin
vector[pos]:=dat;
end;

function vec.getvector(pos:integer):integer;
begin
result:=vector[pos];
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar