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

Post on 07-Apr-2016

219 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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).

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.

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.

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.

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;

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…

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

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

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;

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>;

Programas em Ambiente DelphiEstrutura de Registro

type <identificador> = record

<lista de campos e tipos> end;

Var <variavel> : <identificador>

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

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;

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;

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;

Programas em Ambiente DelphiArquivos

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

var <variavel> : <arquivo>

ou

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

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.

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.

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;

ExercíciosExercícios

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.

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.

top related