Tabuada do 1 ao 20, intervalo 1 a 10.

Delphi

11/03/2015

Boa Noite,

Gostaria que me ajudassem, estou tentando fazer esta Tabuada do 1 ao 20, com intervalo de 1 a 10, no Delphi usando o form, só que não estou conseguindo fazer, abaixo segue o que eu fiz, de qualquer forma, da maneira que procedi, sei que está errada, pois o certo seria, ao entrar na aplicação, ele já me apresenta-se a tabuada do 1 e ao apertar "enter" as outras tabuadas iam surgindo, alguém pode me ajudar ?
(fiz uma para inserir o valor, com esse mesmo intervalo, só que dessa vez, não era bem isso que eu queria, alguém pode ajudar ? )

Segue o que fiz ;

var
i, n, key, r:integer;
i1, n1, r1:string;
Begin
ListBox1.Items.Clear;
n:=strtoint(Edit1.Text);
i:=1;
while (i <=10) and (n<=10) do
begin
r:=n*i;
str(i:2,i1);
str(n:2,n1);
str(r:3,r1);
ListBox1.Items.Add(n1+' x '+i1+' = '+r1);
i:=i+1;
end;
if (n >=10) then
begin
ShowMessage('Aperte "Enter" para continuar')
end;
if (key = VK_F5) then
begin
r:=n*i;
str(i:2,i1);
str(n:2,n1);
str(r:3,r1);
ListBox1.Items.Add(n1+' x '+i1+' = '+r1);
i:=i+1;
end;
end;

end.
André Moutinho

André Moutinho

Curtidas 0

Melhor post

Marcos Saffran

Marcos Saffran

11/03/2015

Olá,

coloque o código abaixo no evento 'onpaint' do formulário principal e veja se é isso o desejado.

procedure TForm1.FormPaint(Sender: TObject);
var
contador, numero, resultado : integer;
begin
for contador := 1 to 20 do
begin
for numero := 1 to 10 do
begin
resultado := contador * numero;
ListBox1.Items.Add(IntToStr(numero) + ' X ' + IntToStr(contador) + ' = ' + IntToStr(resultado));
end;
ShowMessage('Aperte Enter para continuar');
end;

end;
GOSTEI 1

Mais Respostas

André Moutinho

André Moutinho

11/03/2015

Olá,

coloque o código abaixo no evento 'onpaint' do formulário principal e veja se é isso o desejado.

procedure TForm1.FormPaint(Sender: TObject);
var
contador, numero, resultado : integer;
begin
for contador := 1 to 20 do
begin
for numero := 1 to 10 do
begin
resultado := contador * numero;
ListBox1.Items.Add(IntToStr(numero) + ' X ' + IntToStr(contador) + ' = ' + IntToStr(resultado));
end;
ShowMessage('Aperte Enter para continuar');
end;

end;


Caro Marcos Alfredo ,

Desde já quero agradecer ao auxílio que me foi dado diante desta questão, refiz totalmente a aplicação e acrescentei a ela, ou melhor, ao evento "OnPaint" , o código que você informou e a aplicação correu da maneira que pensava, fiz alguns ajustes após acrescenta-lo como pular a linha, acrescentei também um MessageBox, solicitando ao usuário se quer ou não para a exibição de tabuadas, enfim, agradeço muito, e já te incomodo mais um pouco, para ver se consegue me auxiliar neste aqui ;

Entrar via teclado com “N” valores quaisquer. O valor “N” (que representa a quantidade de números) será digitado, deverá ser positivo, mas menor que vinte. Caso a quantidade não satisfaça a restrição, enviar mensagem de erro e solicitar o valor novamente. Após a digitação dos “N” valores, exibir:
a) O maior valor;
b) O menor valor;
c) A soma dos valores;
d) A média aritmética dos valores;
e) A porcentagem de valores que são positivos;
f) A porcentagem de valores negativos;

Como posso proceder na resolução deste, pois estou confuso, teria como me ajudar ?
Agradeço e desculpa o incomodo.
GOSTEI 0
Marcos Saffran

Marcos Saffran

11/03/2015

Olá, veja se o programa abaixo, feito com a opção 'console aplication' te ajuda.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
  i, N, numero, maior, menor, soma : Integer;
  quantidade_positivo, quantidade_negativo : Integer;
  media, porcentagem_positivo, porcentagem_negativo : double;
begin
  soma := 0;
  quantidade_positivo := 0;
  quantidade_negativo := 0;
  Writeln('Digite um valor entre 1 e 20');
  Readln(N);
  While (N > 20) or (N <= 0) do
  begin
    Writeln('Valor fora dos limites, >0 e <=20');
    Writeln('Digite um valor entre 1 e 20');
    Readln(N);
  end;
  for i := 1 to N do
  begin
    Writeln('Digite o ' + IntToStr(i) + 'o Valor :');
    Readln(numero);
    Soma := soma + numero;
    if i = 1 then
    begin
      maior := numero;
      menor := numero;
      if numero < 0 then quantidade_negativo := quantidade_negativo + 1;
      if numero > 0 then quantidade_positivo := quantidade_positivo + 1;
    end
    else
    begin
      if numero > maior then maior := numero;
      if numero < menor then menor := numero;
      if numero < 0 then quantidade_negativo := quantidade_negativo + 1;
      if numero > 0 then quantidade_positivo := quantidade_positivo + 1;
    end;
  end;
  Writeln('O maior numero e     = ' + IntToStr(maior));
  Writeln('O menor numero e     = ' + IntToStr(menor));
  Writeln('A soma e             = ' + IntToStr(soma));
  Writeln('A media aritmetica e = ' + FloatToStr((soma / N)));
  Writeln('A % de positivos e   = ' + FloatToStr(((quantidade_positivo / N)*100)));
  Writeln('A % de negativos e   = ' + FloatToStr(((quantidade_negativo / N)*100)));
  Readln;
end.
GOSTEI 0
André Moutinho

André Moutinho

11/03/2015

Olá, veja se o programa abaixo, feito com a opção 'console aplication' te ajuda.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
  i, N, numero, maior, menor, soma : Integer;
  quantidade_positivo, quantidade_negativo : Integer;
  media, porcentagem_positivo, porcentagem_negativo : double;
begin
  soma := 0;
  quantidade_positivo := 0;
  quantidade_negativo := 0;
  Writeln('Digite um valor entre 1 e 20');
  Readln(N);
  While (N > 20) or (N <= 0) do
  begin
    Writeln('Valor fora dos limites, >0 e <=20');
    Writeln('Digite um valor entre 1 e 20');
    Readln(N);
  end;
  for i := 1 to N do
  begin
    Writeln('Digite o ' + IntToStr(i) + 'o Valor :');
    Readln(numero);
    Soma := soma + numero;
    if i = 1 then
    begin
      maior := numero;
      menor := numero;
      if numero < 0 then quantidade_negativo := quantidade_negativo + 1;
      if numero > 0 then quantidade_positivo := quantidade_positivo + 1;
    end
    else
    begin
      if numero > maior then maior := numero;
      if numero < menor then menor := numero;
      if numero < 0 then quantidade_negativo := quantidade_negativo + 1;
      if numero > 0 then quantidade_positivo := quantidade_positivo + 1;
    end;
  end;
  Writeln('O maior numero e     = ' + IntToStr(maior));
  Writeln('O menor numero e     = ' + IntToStr(menor));
  Writeln('A soma e             = ' + IntToStr(soma));
  Writeln('A media aritmetica e = ' + FloatToStr((soma / N)));
  Writeln('A % de positivos e   = ' + FloatToStr(((quantidade_positivo / N)*100)));
  Writeln('A % de negativos e   = ' + FloatToStr(((quantidade_negativo / N)*100)));
  Readln;
end.


Então, eu fiz em C# Sharp no Console Application já esta aplicação, mas como você bem deve saber, a sintaxe de uma para a outra sofre certas alterações e são nelas que acabo me barrando e não conseguindo transpor o código de C# ao Delphi, talvez justamente, porque a orientação a objeto te faz pensar de forma diferente, pois para mim, o Console de Application e a parte até do C# Windows Form é mais fácil, anda como você já notou ando apanhando para me acostumar e aprender Delphi, bom, em cima do que você passou, me baseando, fiz um código porém está péssimo KKKKKKKKK , se possível dê uma olhada e veja o que pode-se arrumar, detalhe, quero apenas trabalhar com 3 variáveis, ou seja, 3 caixas de texto, solicitando para que seja digitado os valores, tem como você ver pra mim ?

(Caso você faça o download e veja o que eu fiz, ignore as Label's que criei, pois acabei repensando e passando as informações para o ShowMessage)

Se puder me auxiliar mais uma vez, agradeço :D


Segue o link da aplicação para download;

http://www.4shared.com/rar/2V9qHBkNce/Aplicao_11.html?
GOSTEI 0
Marcos Saffran

Marcos Saffran

11/03/2015

Olá, pelo que vi, o seu programa foi criado usando um form, parece que entendi errado.

Para usar o meu código, vá em File -> New -> Other, na janela que abre, escolha a aba New e escolha o console application.

Depois vou verificar o seu programa para poder adaptá-lo.
GOSTEI 0
André Moutinho

André Moutinho

11/03/2015

Olá, pelo que vi, o seu programa foi criado usando um form, parece que entendi errado.

Para usar o meu código, vá em File -> New -> Other, na janela que abre, escolha a aba New e escolha o console application.

Depois vou verificar o seu programa para poder adaptá-lo.


Então o que eu queria era que você se possível me ajudasse nesse, como me auxiliou no outro, pois em console application C# , essa aplicação eu fiz, só que não tive sucesso em repassa-lo para o delphi orientado a objeto.

Se puder me auxiliar neste, como conseguiu no primeiro te agradecerei.

Aguardo resposta.


Abraço.
GOSTEI 0
Marcos Saffran

Marcos Saffran

11/03/2015

Olá, o programa que fiz é todo em delphi pascal.

Qual a versão do delphi que você está usando e pode usar o pascal?

Em C# não poderei ajudar.
GOSTEI 0
André Moutinho

André Moutinho

11/03/2015

Olá, o programa que fiz é todo em delphi pascal.

Qual a versão do delphi que você está usando e pode usar o pascal?

Em C# não poderei ajudar.


Não.....eeu só citei o c# pra dizer que fiz no console de application, o auxilio que te peço é no delphi 7 msm ou a versao RAD que vc tiver disponivel , nao to conseguindo interpretar aqele cod q vc passo pro delphi eu ate tentei e te mandei o download mas deve estar td errado.

Se tu pudesse fzr naqele estilo da primeira duvida mnh seria uma mao na roda pq consegii me basear bem naqele e fazer.....se puder fzr dest forma nesse te agradeço .

Nao uso pascal.....uso o delphi 7 ou o rad 2010 q tnho orientado a objeto por isso n to conseguindo de forma resolutiva passar o cod qe vc mandou pro delphi.

Se puder transpor este da mesma forma que o primeiro acho q conseguirei me basear .
GOSTEI 0
POSTAR