Fórum Progressão aritmética em Delphi xe8 #562724
22/09/2016
0
Sou novato no Delphi e na programação. Estou tentado criar um programa que calcule qualquer termo de uma progressão aritmética (Não o n-ésimo termo, mas qualquer um, ou AN). Estou com problemas de lógica e dando erros no compilador. Não vou postar muitos erros, porque estou indo na tentativa e erro.
Eis a Unit:
unit ProgreArit;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
A1,An,R,N: Integer;
Meu_Array : Array [0..50] of integer;
begin
Meu_Array[0]:= A1;
A1:=StrToInt(Edit2.Text);
Meu_Array = Array [0..50] of integer := N;
N:=StrToInt(Edit3.Text);
Meu_Array[0]:= (R+1);
R:= StrToInt(Edit4.Text);
An:=StrToInt(Edit1.Text);
An:=(A1 + (N - 1) * R);
An:=Meu_Array[0.50];
end;
end.
O último erro:
[dcc32 Error] ProgreArit.pas(44): E2010 Incompatible types: 'array[0..50] of Integer' and 'Set'
Vou ainda botar mais um Edit para dar a saída. Se Alguém puder me dar algumas luzes, agradeço imensamente.
Valew!
Adriano Freitas
Curtir tópico
+ 0Posts
22/09/2016
Natanael Ferreira
https://br.answers.yahoo.com/question/index?qid=20061101103046AAOsvjE
Teste assim:
Var
A1, An, R: Real;
Meu_Array: Array [0 .. 50] of Integer;
N: Integer;
begin
A1 := StrToInt(Edit2.Text); // Primeiro Termo
R := StrToInt(Edit4.Text); // Razao
for N := 0 to 50 do
begin
An := A1 + (N - 1) * R;
Meu_Array[N] := Trunc(An);
end;
for N := 0 to 50 do
ShowMessage(FloatToStr(Meu_Array[N]));
end;Gostei + 0
22/09/2016
Natanael Ferreira
Var
A1, An, R: Real;
Meu_Array: Array [0 .. 50] of Integer;
N: Integer;
begin
A1 := StrToInt(Edit2.Text); // Primeiro Termo
R := StrToInt(Edit4.Text); // Razao
for N := 0 to 50 do
begin
An := A1 + N * R;
Meu_Array[N] := Trunc(An);
end;
for N := 0 to 50 do
ShowMessage(FloatToStr(Meu_Array[N]));
end;Gostei + 0
22/09/2016
Adriano Freitas
Não sei se tem lógica mas seria isso. Se alguém ou você puder dar uma luz, valew. Mas fico grato mesmo assim.
Meu abraço!
Gostei + 0
23/09/2016
Natanael Ferreira
Coloque Edit's com os nomes:
- EditPrimeiroTermo - EditRazao - EditQuantTermos - EditPosicao - EditResultado
Teste o código abaixo em um Click de um Botão:
Var
PrimeiroTermo, Razao, Posicao2: Real;
Meu_Array: Array of Integer;
N, QuantTermos, Posicao: Integer;
begin
PrimeiroTermo := StrToInt(EditPrimeiroTermo.Text); // Primeiro Termo
Razao := StrToInt(EditRazao.Text); // Razao
QuantTermos := StrToInt(EditQuantTermos.Text); // Quant. Termos
Posicao := StrToInt(EditPosicao.Text); // Posicao desejada
SetLength(Meu_Array, QuantTermos);
for N := 0 to QuantTermos - 1 do
begin
Posicao2 := PrimeiroTermo + N * Razao;
Meu_Array[N] := Trunc(Posicao2);
end;
EditResultado.Text := IntToStr(Meu_Array[Posicao - 1]);
end;Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)