Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Deuzenildo Nascimento

Vetor e Matriz Dinaimcos

Recommended Posts

Olá caros amigos, é a primeira vez que posto aqui, vi que tem muitas respostas para as mais diversas duvidas e eu não programo nada, apenas lido com servidores e redes, mas na faculdade tem uma materia de programação pro meu desastre.

 

Terei prova semana q vem, e nao consigo entender esse esquema de vetor e matriz dinamicos, por exemplo:

 

Quero criar 2 vetores dinamicos, de modo que o produto de ambos os vetores serão mostrados em outro vetor, tambem dinamico ou em uim listbox como no meu exemplo.

 

procedure TForm1.BitBtn1Click(Sender: TObject);
var vet1, vet2 : array of integer;
i,res : integer;
begin
for i := 1 to 5 do
begin
SetLength(vet1, length(vet1 ));
SetLength(vet2, length(vet2 ));
res := vet1 + vet2;
listbox1.Items.Add (floattostr(res));
end;
alguem pode me dar uma luz? agradeço muito.
Abraço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Deuzenildo.

Bom na sua procedure foi declarado os vetores: "vet1, vet2 : array of integer;"

Porém você nem colocou valores neles e fez um for até a posição 5 do vetor. Mas não tem nado no seu vetor...

 

 

--- Edit ---

Deu um SetLength no vetor com tamanho de Length do vetor sem nada manolo. Vai dar nada de novo.. kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao Thyago, ai que mora o problema, eu nao entendo nada de programação, e pra ajudar, tinhamos uma professora desde o inicio do semetre, com uma metodologia de ensino, ela se acidentou e entrou outro professor no lugar dela, com outra forma de ensino, dai complicou nossa vida, porque meu curso é de redes de computadores, nosso negocio é programar roteadores ciscos, servidores, etc... dai cai essas cosias, td mundo fica perdido mesmo, hehee, como eu poderia fazer essa coisa rodar, vc entendeu o q quero?

Quero entrar dados em dois vetores, qdo clicar em ok, ele me mostre os campos pra inserir dados, e depois ele calcule um vetor com o outro e mostre num listbox. entedeu? se puder dar uma ideia, agradeço muito. amanhã tenho prova disso, ta td mundo no ar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei se ainda será útil pra você, mas segue um exemplo básico de como poderia resolver o seu problema.

 

 

procedure TForm1.Button4Click(Sender: TObject);
var vet1, vet2 : array of integer;
    i,res : integer;
    Valor : String;
begin
        //Inicialização de vetores
    vet1 := nil;
    vet2 := nil;
    ListBox1.Items.Clear;
        //Loop de inserção de valores do 1° vetor dinâmico - tomar cuidado aqui, pois os arrays sempre
    //começam da posição 0 quando criados dinamicamente
    for i := 0 to 4 do
    begin
         //Auxiliar que irá receber os valores digitados
         Valor := EmptyStr;
       //Criar um edit virtual para informar o valor a ser incluído no array dinâmico na variável auxiliar valor
       if InputQuery('Informe o valor a ser inserido no 1° vetor...', 'Valor:', Valor) then
       begin
               //Converter o valor para integer
                 res := StrToInt(Valor);
          //Insere uma posição para inserção do registro no array dinâmico
          SetLength(vet1, length(vet1)+1);
          //Insere o valor no vetor 1
          vet1[i] := res;
       end;
      end;
        //Loop de inserção de valores do 2° vetor dinâmico
    for i := 0 to 4 do
    begin
         //Auxiliar que irá receber os valores digitados
         Valor := EmptyStr;
       //Criar um edit virtual para informar o valor a ser incluído no array dinâmico na variável auxiliar valor
       if InputQuery('Informe o valor a ser inserido no 2° vetor...', 'Valor:', Valor) then
       begin
               //Converter o valor para integer
                 res := StrToInt(Valor);
          //Insere uma posição para inserção do registro no array dinâmico
          SetLength(vet2, length(vet2)+1);
          //Insere o valor no vetor 1
          vet2[i] := res;
       end;
      end;
    //Partindo da premissa que os dois vetores estão iguais e preenchidos, para somar os dois seria simples...
    for i := 0 to Length(vet1) - 1 do
    begin
       res := vet1[i] + vet2[i];
       ListBox1.Items.Add(IntToStr(res));
    end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Chrnos, ajuda sim com certeza, como falei, preciso de algo bem simples e rudimentar, ja que meu foco nao é programação, e preciso fazer prova e ta td muito complicado.... vou analisar seu post e testar.

 

se vc tiver algum site com tutoriais sobre vetor e matriz dinamicos, pode me passar, a unica coisa que preciso é montar um vetor dinamico e uma matriz dinamica, pois os estaticos eu consigo me virar.

 

abraço, e obrigado pela dica,vou analisar seu post e testar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deuzenildo, se olhar o código que passei, verá que ele tem 3 partes: a inicialização do vetor dinâmico (onde atribuo o nil), a alimentação dele dentro do for, onde insiro uma nova posição no vetor e depois o valor, e a parte de leitura e utilização dos valores, onde crio um for iniciando em zero e terminando no tamanho do array dinâmico -1 (já que ele começa sempre a partir do zero e o tamanho a contar do 1).

 

Acho que com isto você já consegue criar uma solução sua... e não tenho nenhum link pra te enviar, infelizmente... o que sei aprendi na prática, apesar de que se procurar por isto na web deve achar vários sites com modelos e dúvidas semelhantes (recomendo que use a busca em inglês neste caso).

 

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.