programas em ambiente delphi estruturas matriciais matrizes unidimensionais : array[ ] of ; sendo: -...

22
Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais Matrizes Unidimensionais matriz> : array[<dimensao>] of <tipo>; endo: matriz> - nome atribuido a matriz. dimensao> - tamanho da matriz em numero de elementos. tipo> - tipo dos elementos (inteiro, real, etc).

Upload: marcela-coradelli-natal

Post on 07-Apr-2016

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstruturas Matriciais

Matrizes UnidimensionaisMatrizes Unidimensionais

<matriz> : array[<dimensao>] of <tipo>;

Sendo:<matriz> - nome atribuido a matriz.<dimensao> - tamanho da matriz em numero de elementos.<tipo> - tipo dos elementos (inteiro, real, etc).

Page 2: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiSem Matriz

procedure TForm1.Button1Click(Sender: TObject);var MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8: Real; SOMA, MEDIA: Real; FORMATO: String;begin MD1 := StrToFloat(Edit1.Text); MD2 := StrToFloat(Edit2.Text); MD3 := StrToFloat(Edit3.Text); MD4 := StrToFloat(Edit4.Text); MD5 := StrToFloat(Edit5.Text); MD6 := StrToFloat(Edit6.Text); MD7 := StrToFloat(Edit7.Text); MD8 := StrToFloat(Edit8.Text); SOMA := MD1+MD2+MD3+MD4+MD5+MD6+MD7+MD8; MEDIA := SOMA / 8; FORMATO := FormatFloat('#,##0.00',MEDIA); Label11.Caption := FORMATO; Edit1.SetFocus;end;

end.

Page 3: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiCom Matriz

procedure TForm1.Button1Click(Sender: TObject);var MD: array[1..8] of Real;MD: array[1..8] of Real; SOMA, MEDIA: Real; I : Integer; FORMATO: String;begin SOMA := 0; MD[1] := StrToFloat(Edit1.Text); MD[2] := StrToFloat(Edit2.Text); MD[3] := StrToFloat(Edit3.Text); MD[4] := StrToFloat(Edit4.Text); MD[5] := StrToFloat(Edit5.Text); MD[6] := StrToFloat(Edit6.Text); MD[7] := StrToFloat(Edit7.Text); MD[8] := StrToFloat(Edit8.Text); for I := 1 to 8 do SOMA := SOMA + MD[I]; MEDIA := SOMA / 8; FORMATO := FormatFloat('#,##0.00',MEDIA); Label11.Caption := FORMATO; Edit1.SetFocus; end;

end.

Page 4: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiOutro Exemplo

Desenvolver um programa que efetue a leitura de 5 elementos de umamatriz A tipo vetor. Construir uma matriz B de mesmo tipo, acompanhandoa seguinte lei de formatação: se o valor do índice for par, o valor do elemento deve ser multiplicado por 5, sendo ímpar, deve ser somando 5.No final, mostrar o conteúdo das duas matrizes.

Page 5: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiOutro Exemplo

var A, B: array[1..5] of Integer; I: Integer;begin ListBox1.Items.Clear; ListBox2.Items.Clear; A[1] := StrToInt(Edit1.Text); A[2] := StrToInt(Edit2.Text); A[3] := StrToInt(Edit3.Text); A[4] := StrToInt(Edit4.Text); A[5] := StrToInt(Edit5.Text); for I := 1 to 5 do if (I mod 2 = 0) then B[I] := A[I] * 5 else B[I] := A[I] + 5; for I := 1 to 5 do begin ListBox1.Items.Add(IntToStr(A[I])); ListBox2.Items.Add(IntToStr(B[I])); end; Edit1.SetFocus;end;

Page 6: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiCriando Componetes em Tempo de Execução

Uso de componentes TButton, TLabel, TEdit, etc ...Uso de componentes TButton, TLabel, TEdit, etc ...

var Form1: Tform1; ENTRADA: array[1..18] of TEdit;

Implementation…

Page 7: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiCriando Componetes em Tempo de Execução

type TForm1 = class(TForm) Label1: TLabel; ListBox1: TListBox; Button1: TButton; procedure CriaEdit(Sender: TObject);procedure CriaEdit(Sender: TObject); procedure Button1Click(Sender: TObject);procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;

var Form1: TForm1; ENTRADA: array[1..18] of TEdit;ENTRADA: array[1..18] of TEdit; NOME: array[1..18] of String[20];NOME: array[1..18] of String[20]; implementation

{$R *.dfm}

Global !!!

Componentes doFORM

Page 8: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

procedure TForm1.CriaEdit(Sender: TObject);var RETORNO: String; TOPO, I: Integer;begin TOPO := 32; for I := 1 to 18 do begin ENTRADA[I] := TEdit.Create(Self); ENTRADA[I].Parent := Self; ENTRADA[I].Left := 16; ENTRADA[I].Top := TOPO; Str(I, RETORNO); ENTRADA[I].Name := 'Edit' + RETORNO; ENTRADA[I].Text := ''; TOPO := TOPO + 24; end; ENTRADA[1].SetFocus;end;

Programas em Ambiente DelphiCriando Componetes em Tempo de Execução

Page 9: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiCriando Componetes em Tempo de Execução

procedure TForm1.Button1Click(Sender: TObject);var I, J: Integer; X: String[20];begin ListBox1.Items.Clear; for I := 1 to 18 do NOME[I] := ENTRADA[I].Text; for I := 1 to 17 do for J := I + 1 to 18 do if (NOME[I] > NOME[J]) then begin X := NOME[I]; NOME[I] := NOME[J]; NOME[J] := X; end; for I := 1 to 18 do ListBox1.Items.Add(NOME[I]);end;

Page 10: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiMatrizes com mais de uma dimensão

<matriz> :array[<linha>,<coluna>] of <tipo>;

A :array[1..10, 1..5] of integer;

Matriz Dinâmica:<matriz> :array of array of <tipo>;

Page 11: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstrutura de Registro

type <identificador> = record

<lista de campos e tipos> end;

Var <variavel> : <identificador>

Page 12: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstrutura de Registro

type CadAluno = record NOME: String[20]; NOTA1: Real; NOTA2: Real; NOTA3: Real; NOTA4: Real; MEDIA: Real; end;

var ALUNO: CadAluno;

Reg1

Page 13: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstrutura de Registro

procedure TForm1.Button1Click(Sender: TObject);begin ALUNO.NOME := Edit1.Text; ALUNO.NOTA1 := StrToFloat(Edit2.Text); ALUNO.NOTA2 := StrToFloat(Edit3.Text); ALUNO.NOTA3 := StrToFloat(Edit4.Text); ALUNO.NOTA4 := StrToFloat(Edit5.Text); ALUNO.MEDIA := (ALUNO.NOTA1+ALUNO.NOTA2+ALUNO.NOTA3+ALUNO.NOTA4)/4; Label7.Caption := FormatFloat('#0.00', ALUNO.MEDIA);; Button1.Enabled := False;end;

Page 14: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstrutura de Registro

procedure TForm1.Button2Click(Sender: TObject);begin Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; Edit4.Text := ''; Edit5.Text := ''; Label7.Caption := ''; Edit1.SetFocus;end;

Page 15: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiEstrutura de Registro

procedure TForm1.Button3Click(Sender: TObject);begin Edit1.Text := ALUNO.NOME; Edit2.Text := FormatFloat('#0.00', ALUNO.NOTA1); Edit3.Text := FormatFloat('#0.00', ALUNO.NOTA2); Edit4.Text := FormatFloat('#0.00', ALUNO.NOTA3); Edit5.Text := FormatFloat('#0.00', ALUNO.NOTA4); Label7.Caption := FormatFloat('#0.00', ALUNO.MEDIA);end;

Page 16: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiArquivos

type <arquivo> = [TextFile] [File of <tipo>];

var <variavel> : <arquivo>

ou

var <variavel> : [TextFile] [File of <tipo>];

Page 17: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiArquivos

Comando Sintaxe DescriçãoAssignFile AssignFile(<var>,<arq>) Associa o nome lógico ao

arquivo físco.

Rewrite Rewrite(<var>) Cria um arquivo novo.

Reset Reset(<var>) Abre o arquivo para leitura ou gravação.

Write Write(<var>,<dado>) Escreve no arquivo.

Read Read(<var>,<dado>) Le o <dado> do arquivo.

CloseFile CloseFile(<var>) Fecha o arquivo.

Append Append(<var>) Abre o arquivo para inclusão.

Seek Seek(<var>,<chave>) Posiciona no registro <chave>.

FilePos FilePos(<var>) Retorna a posição do arquivo.

Page 18: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiArquivos

Formas de Acesso:Seqüencial O processo de gravação e leitura é feito de forma contínua, um após o outro.

Direta O acesso é feito através de uma chave.

Indexada É o acesso direto em um arquivo sequencial.

Page 19: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

Programas em Ambiente DelphiArquivos

procedure TForm1.Button1Click(Sender: TObject);var ArquivoTexto: TextFile;begin AssignFile(ArquivoTexto, 'C:\ARQTXT.XXX'); Rewrite(ArquivoTexto); CloseFile(ArquivoTexto);end;

procedure TForm1.Button2Click(Sender: TObject);var ArquivoTexto: TextFile; Mensagem: String[20];begin Mensagem := Edit1.Text; AssignFile(ArquivoTexto, 'C:\ARQTXT.XXX'); Append(ArquivoTexto); Writeln(ArquivoTexto, Mensagem); CloseFile(ArquivoTexto);end;

procedure TForm1.Button3Click(Sender: TObject);var ArquivoTexto: TextFile; Mensagem: String[20];begin AssignFile(ArquivoTexto, 'C:\ARQTXT.XXX'); Reset(ArquivoTexto); Readln(ArquivoTexto, Mensagem); Edit2.Text := Mensagem; CloseFile(ArquivoTexto);end;

Page 20: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

ExercíciosExercícios

Page 21: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

ExercíciosExercícios1. Ler duas matrizes A e B do tipo vetor com oito elementos numéricos cada

uma. Construir uma matriz C, sendo esta a junção das duas outras matrizes. Desta forma, C deve ter o dobro de elementos de A e B. Apresentar os elementos da Matriz C.

2. Elaborar um programa que efetue a leitura de dez valores numéricosinteiros para uma matriz A de uma dimensão. Construir uma matriz Bde uma dimensão, sendo que cada elemento da Matriz B deve ser oquadrado correspondente de cada elemento da matriz A, e no finalgravar a matriz B em um arquivo e mostrar na tela.

Page 22: Programas em Ambiente Delphi Estruturas Matriciais Matrizes Unidimensionais : array[ ] of ; Sendo: - nome atribuido a matriz. - tamanho da matriz em numero

ExercíciosExercícios

Elaborar um programa que administre um cadastro de Alunos, considerando a matrícula como chave,trabalhando com arquivo em disco, permitindo funções de Cadastro, Alteração, Remoção e Pesquisados dados.