programas em ambiente delphi estruturas matriciais matrizes unidimensionais : array[ ] of ; sendo: -...
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.