-
Posts
13 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Whillis
-
-
Citação
unit Unit1; {$mode delphi} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; { TForm1 } type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Label1: TLabel; Label10: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure Edit5Change(Sender: TObject); procedure Edit6Change(Sender: TObject); procedure Edit7Change(Sender: TObject); procedure Edit8Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); procedure RadioButton1Change(Sender: TObject); procedure RadioButton2Change(Sender: TObject); procedure RadioButton3Change(Sender: TObject); procedure RadioButton4Change(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.RadioButton1Change(Sender: TObject); begin If (radiobutton1.checked=true) then begin Edit6.enabled:=False; Edit7.enabled:=False; Edit8.enabled:=False; Edit9.enabled:=False; Edit6.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end; end; procedure TForm1.RadioButton2Change(Sender: TObject); begin If (radiobutton2.checked=true) then begin Edit6.enabled:=True; Edit6.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end; end; procedure TForm1.RadioButton3Change(Sender: TObject); begin If (radiobutton3.checked=true) then begin Edit6.enabled:=False; Edit7.enabled:=False; Edit8.enabled:=False; Edit9.enabled:=False; Edit6.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end; end; procedure TForm1.RadioButton4Change(Sender: TObject); begin If (radiobutton4.checked=true) then begin Edit6.enabled:=False; Edit7.enabled:=False; Edit8.enabled:=False; Edit9.enabled:=False; Edit6.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end; end; procedure TForm1.Button1Click(Sender: TObject); var //Simples ---------------------------------------------------------------------- soma:real; somac2:real; //Ponderada -------------------------------------------------------------------- soma2:real; soma3:real; //Geométrica ------------------------------------------------------------------- vezes:real; //Harmônica -------------------------------------------------------------------- begin //-ERRO ---------------------------------------------------------------------------------------------------------------------------< //-ERRO ---------------------------------------------------------------------------------------------------------------------------< //Média Aritmética Simples------------------------------------------------------ soma:=(strtofloat(edit1.text) + strtofloat(edit2.text) + strtofloat(edit3.text) + strtofloat(edit4.text)); somac2:=(strtofloat(edit1.text) + strtofloat(edit2.text)); If (radiobutton1.checked=true) then begin if (edit1.text='') and (edit2.text='') then begin end else begin Edit5.text:= FloatToStr((somac2)/4); end end; //-ERRO ---------------------------------------------------------------------------------------------------------------------------< //-ERRO ---------------------------------------------------------------------------------------------------------------------------< //Média Ponderada -------------------------------------------------------------- If (radiobutton2.checked=true) then begin Edit5.text:=floattostr(strtofloat(edit1.text) + strtofloat(edit2.text) + strtofloat(edit3.text) + strtofloat(edit4.text) /(strtofloat(edit6.text) + strtofloat(edit7.text) + strtofloat(edit8.text) + strtofloat (edit9.text))); end; //Média Geométrica ------------------------------------------------------------- Vezes:=(strtofloat(edit1.text) * strtofloat(edit2.text) * strtofloat(edit3.text) * strtofloat(edit4.text)); If (radiobutton3.checked=true) then begin Edit5.text:= FloatToStr(sqrt(vezes)); end; //Média Harmônica Simples ------------------------------------------------------ If (radiobutton4.checked=true) then begin Edit5.text:=(floattostr((strtofloat(edit1.text) / 1) + (strtofloat(edit2.text) / 1) + (strtofloat(edit3.text) / 1) + (strtofloat(edit4.text) / 1)/4)); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.text:=''; Edit2.text:=''; Edit3.text:=''; Edit4.text:=''; Edit5.text:=''; Edit6.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end; procedure TForm1.Edit1Change(Sender: TObject); begin if (Edit1.text='') then begin edit2.enabled:=False; Edit2.text:=''; Edit3.text:=''; Edit4.text:=''; end else begin edit2.enabled:=True end; // Ponderada variavel --- If (radiobutton2.checked=true) then begin if (Edit1.text='') then begin edit6.Enabled:=False; Edit2.text:=''; Edit3.text:=''; Edit4.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end else begin edit2.enabled:=False; edit6.enabled:=True; end; end end; procedure TForm1.Edit2Change(Sender: TObject); begin if (Edit2.text='') then begin edit3.enabled:=False; Edit3.text:=''; Edit4.text:=''; end else begin edit3.enabled:=True; button1.enabled:=True end; // Ponderada variavel --- If (radiobutton2.checked=true) then begin if (Edit2.text='') then begin edit7.Enabled:=False; Edit3.text:=''; Edit4.text:=''; Edit8.text:=''; Edit9.text:=''; end else begin edit3.enabled:=False; edit7.enabled:=True; end; end end; procedure TForm1.Edit3Change(Sender: TObject); begin if (Edit3.text='') then begin edit4.enabled:=False; Edit4.text:=''; end else begin edit4.enabled:=True end; // Ponderada variavel --- If (radiobutton2.checked=true) then begin if (Edit3.text='') then begin edit8.Enabled:=False; Edit4.text:=''; Edit8.text:=''; Edit9.text:=''; end else begin edit4.enabled:=False; edit8.enabled:=True; end; end end; procedure TForm1.Edit4Change(Sender: TObject); begin // Ponderada variavel --- If (radiobutton2.checked=true) then begin if (Edit4.text='') then begin edit9.Enabled:=False; Edit9.text:=''; end else begin edit9.enabled:=True; end; end end; procedure TForm1.Edit5Change(Sender: TObject); begin end; procedure TForm1.Edit6Change(Sender: TObject); begin If (radiobutton2.checked=true) then begin if (Edit6.text='') then begin edit2.Enabled:=False; Edit2.text:=''; Edit3.text:=''; Edit4.text:=''; Edit7.text:=''; Edit8.text:=''; Edit9.text:=''; end else begin edit2.enabled:=True; end; end; end; procedure TForm1.Edit7Change(Sender: TObject); begin If (radiobutton2.checked=true) then begin if (Edit7.text='') then begin edit3.Enabled:=False; Edit3.text:=''; Edit4.text:=''; Edit8.text:=''; Edit9.text:=''; end else begin edit3.enabled:=True; end; end; end; procedure TForm1.Edit8Change(Sender: TObject); begin If (radiobutton2.checked=true) then begin if (Edit8.text='') then begin edit4.Enabled:=False; Edit8.text:=''; Edit9.text:=''; end else begin edit4.enabled:=True; end; end end; procedure TForm1.FormCreate(Sender: TObject); begin end; procedure TForm1.FormResize(Sender: TObject); begin end; end.
desculpe o código muito grande, penso q se mostrar todo será melhor para seu entendimento
Ola estou com uma duvida em meu programa que tem por objetivo pôr de 2 á 4 valores para tirar sua média, porém não sei como fazer para que o programa divida os valores colocados em cada Edit pela quantidade de valores ( se 2, 3 ou 4), por exemplo: edit1=15 , edit2=16, edit3=20 , edit4=' ' são três Edit's sendo usados, dessa forma somo apenas os três e divido pelo número 3, variando de acordo com os edit's usados. Agradeço qualquer ajuda.
aqui uma das minhas tentativas:
if (edit1.text='') and (edit2.text='') then
begin
end
else begin
Edit5.text:= FloatToStr((somac2)/4);
end
end;
-
unit Unit1; {$mode delphi} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; { TForm1 } type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; procedure Button1Click(Sender: TObject); procedure Edit5Change(Sender: TObject); procedure RadioButton1Change(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.RadioButton1Change(Sender: TObject); begin end; procedure TForm1.Button1Click(Sender: TObject); var soma:real; vezes:real; begin //Média Aritmética Simples------------------------------------------------------ soma:=(strtofloat(edit1.text) + strtofloat(edit2.text) + strtofloat(edit3.text) + strtofloat(edit4.text)); If (radiobutton1.checked=true) then begin Edit5.text:=(soma)/4; end; //Média Geométrica ------------------------------------------------------------- vezes:=(strtofloat(edit1.text) * strtofloat(edit2.text) * strtofloat(edit3.text) * strtofloat(edit4.text)); If (radiobutton3.checked=true) then begin Edit5.text:='sqrt(vezes)'; end; end; procedure TForm1.Edit5Change(Sender: TObject); begin end; end.
Não consigo por as contas da média dentro de variaveis para adicionar outras divisões/ raizes ou multiplicações. Estou com um erro pra pegar o resultado dessas médias simples e geométrica, esta dando um erro de (Error:Incompatible type for arg no. 1:Got "Real", expected "TTranslateString") e não sei com consertar o erro esta nessas linhas:
procedure TForm1.Button1Click(Sender: TObject); var soma:real; vezes:real; begin //Média Aritmética Simples------------------------------------------------------ soma:=(strtofloat(edit1.text) + strtofloat(edit2.text) + strtofloat(edit3.text) + strtofloat(edit4.text)); If (radiobutton1.checked=true) then begin Edit5.text:=(soma)/4; end; //Média Geométrica ------------------------------------------------------------- vezes:=(strtofloat(edit1.text) * strtofloat(edit2.text) * strtofloat(edit3.text) * strtofloat(edit4.text)); If (radiobutton3.checked=true) then begin Edit5.text:='sqrt(vezes)'; end; end;
- 1
-
program exercicio; uses CRT; var vetor: array[1..5] of integer; m, p : integer; menor: integer; begin writeln(''); writeln('---------------------------------------------------------'); writeln('Ex. Sistema composto (para e vetor)'); writeln('Digite 5 valores para coloca-los em ordem crescente') writeln('') for m:=1 to 5 do begin writeln('insira um valor na posição: ', m); read(vetor[m]); end; readln; for m:= 1 to 5 do begin for p:= 1 to 5 do begin if (vetor[p] > vetor[m]) then begin menor:= vetor[m]; vetor[m]:=vetor[p]; vetor[p]:=menor; end; readln; end; readln; end; readln; for m:=1 to 5 do begin write('(',vetor[m],')'); end; readln writeln(''); writeln('---------------------------------------------------------'); readkey; end.
Agora funcionou!
mt obrigado pela preocupação, ai está o código que eu usei
- 1
-
Estou utilizando o lazarus IDE v1.6.4
pois foi o sugerido pelo meu professor de programação
Eu salvei o documento porém n mudou em nada
-
Este programa precisa criar um laço de repetição e então a partir de um vetor colocar os números digitados em ordem crescente, porém assim que inicializo e digito os números ele põe em ordem números que eu nem digitei, ou repete números que digito apenas uma vez
Ex.: eu inicializo o programa, digito os números 1, 8, 9, 5 e 6 e então é posto como resultado os números (1)(5)(5)(0)(5)
Eu arrumei o identifier " i " para " m " e " p ", porém o problema ainda vem acontecendo, e quando coloco apenas números menores que 5 o programa repete o "writeln ('insira um valor na posição:',m)" e não para até q eu digite um número maior que 5.
usei o código que você mostrou:
VAR vetor: array[1..4] of integer; m, p : integer; menor: integer; begin writeln(''); writeln('Ex. Sistema composto (para e vetor)'); for m:=1 to 5 do begin writeln('insira um valor na posição: ', m); read(vetor[m]); end; for m:= 1 to 5 do begin for p:= 1 to 5 do begin if (vetor[p] > vetor[m]) then begin menor:= vetor[m]; vetor[m]:=vetor[p]; vetor[p]:=menor; end; end; end; for m:=1 to 5 do begin write('(',vetor[m],')'); end; readln; readln; writeln(''); writeln('---------------------------------------------------------'); end.
Com relação ao identifier, estou usando as letras [m] e [p], pois esse código é parte de outro onde já utilizei os identificadores [ i ] e [ j ]
-
Em 2017-6-16 às 21:58, devair1010 disse:
@Whillis o erro é que precisa colocar begin e end antes do else e também depois do else, sendo que o primeiro end não pode ter ponto e vírgula . veja como ficaria seu código :
///////////////////////////////////////////////////////////////// // o erro esta no else, mas n sei consertar --------------------- if (num > 0) then begin writeln(num,' e um número positivo'); end else begin writeln(num,'e um número negativo'); end; readkey; //---------------------------------------------------------------- //////////////////////////////////////////////////////////////////
Muito obriagado, estava realmente com problemas nesse problema tão simples.
adicionado 0 minutos depoisEm 2017-6-17 às 09:47, Simon Viegas disse:Olá...
1) ESTRUTURA IF/ELSE
Ou pode ser assim:
if (num > 0) then writeln(num,' e um n?mero positivo') else writeln(num,'e um n?mero negativo'); contmenu:=0;
Pois o begin/end não é necessário quando se tem apenas uma instrução após o if ou else (ou while, ou for.. etc). A mesma regra vale para "não ter ';' antes do else.
2) CONDIÇÕES MUTUAMENTE EXCLUSIVAS
Quando opções são excludentes entre si, ou seja, "quando for uma, não poderá ser outra", é sugestionado o uso do else... como no caso de opcao. Já que, por exemplo, se for 2, não faz sentido verificar se é 3, se é 4.. etc. Ex.de como poderia ficar:
if (opcao = 1) then begin end else if (opcao = 2) then begin end else if (opcao = 3) then begin end else if (opcao = 4) then begin end . . . else if (opcao = 11) then begin end;
2.1) IF/ELSE x CASE
Se analisar o case, verás que ele não passa de uma espécie de conjunto de if/else de uma mesma variável... que é o caso acima, ou seja, ficaria muito mais elegante e prático o uso dele. Ex.:
case opcao of 1 :begin end; 2 :begin end; 3 :begin end; 4 :begin end; 5 :begin end; 6 :begin end; 7 :begin end; 8 :begin end; 9 :begin end; 10 :begin end; 11 :begin end; else begin //obs.: esse begin/end não é necessário na sintaxe do case, deixei apenas para ilustrar end; end;
2.2) ESCOPO MATEMÁTICO
No caso do seu if:
Cuidado com essa "negação" de positivo!!!! Ou seja, se o número não é maior que 0 ele é apenas "não positivo" que é diferente de ser negativo, pois nessa negação tem o 0 também!!!. Logo, um número teria 3 definições: positivo, nulo ou negativo.
obs. 1: a negação de ">" é "<=";
obs. 2: essas 3 definições também são excludentes entre si... (só pode ser um), logo precisaria de fato utilizar o else, a questão é que deveria ter mais um if/else para separar os 3. (seria uma estrutura de 2 if e 2 else)
3) READ x READLN
Resumidamente: não user read, use apenas readln.
Um pouco sobre aqui:
***
No aguardo.
Nossa muito obrigado, você pode me tirar muitas duvidas sobre pascal!
- 1
-
program Exercicio; USES CRT; VAR vetor: array[1..4] of integer; m,p, menor : integer; begin writeln(''); writeln('Ex. Sistema composto (para e vetor)'); m:=1; for i:=1 to 5 do begin writeln('insira um valor na posição: ', m); read(vetor[m]); m:=m+1 end; for m:= 1 to 5 do begin for p:= 1 to 5 do begin if (vetor[p] > vetor[m]) then begin menor:= vetor[m]; vetor[m]:=vetor[p]; vetor[p]:=menor; end; end; end; for m:=1 to 5 do begin write('(',vetor[m],')'); end; end.
Como está mostrado, preciso de um vetor com estrutura para, mas n consigo fazer este programa funcionar precisamente, agradeceria muito se alguém pudesse me ajudar.
Agradeço desde ja.
-
Olá estou fazendo um trabalho no lazarus e queria saber por que n está dando certo
program Principal; USES CRT; VAR contmenu, opcao: integer; //Op. 2 ------------------------------------------------------------------------ n1, n2: integer; //Op. 3 ------------------------------------------------------------------------ num: integer; begin { DESENVOLVENDO MENU DE ACESSO} CONTMENU:=1; WHILE (CONTMENU = 1) DO BEGIN writeln ('MENU DE ENTRADA'); writeln (' 1 - Equipe'); writeln (' 2 - Sistema sequencial'); writeln (' 3 - Sistema de decisão'); writeln (' 4 - Sistema de repeticao (enquanto)'); writeln (' 5 - Sistema composto (decisão e enquanto)' ); writeln (' 6 - Sistema composto (enquanto e decisão)' ); writeln (' 7 - Sistema de repeticao (para)' ); writeln (' 8 - Sistema composto (para e se)' ); writeln (' 9 - Sistema composto (para e vetor)' ); writeln ('10 - Sistema composto (matriz)' ); writeln ('11 - Sair'); writeln ('0 - Menu de entrada'); write ('DIGITE O NUMERO DE OPCAO: '); read(OPCAO); //Opção 11 Sair ---------------------------------------------------------------- if (opcao = 11 ) then BEGIN contmenu:=0; end; //Opção 1 Equipe -------------------------------------------------------------- if (OPCAO = 1 ) then begin writeln (''); writeln ('1 - Equipe'); writeln ('ALUNO: Marcelo Rolim de Moura - Numero: 20'); writeln (''); end; //Opção 2 Sistema sequencial --------------------------------------------------- if (OPCAO = 2 ) then begin writeln(''); writeln('2 - Ex. Sistema sequencial'); writeln(''); writeln('Digite primeiro numero'); read(n1); writeln('Digite segundo numero'); read(n2); writeln('a soma de ',n1,'+',n2,' e igual a ',n1+n2); writeln(''); end; //Opção 3 Sistema de decisão -------- AQUI ESTÀ O ERRO vvvvv --------------------------------------------------- if (opcao = 3 ) then begin writeln(''); writeln('3 - Ex. Sistema de decisão'); writeln(''); writeln('digite um numero'); read(num); ///////////////////////////////////////////////////////////////// // o erro esta no else, mas n sei consertar --------------------- if (num > 0) then begin writeln(num,' e um número positivo'); else writeln(num,'e um número negativo'); end; //---------------------------------------------------------------- ////////////////////////////////////////////////////////////////// contmenu:=0; end; end; end; readkey; end.
Na opção 3 tem um erro com o 'else' e n consigo encontrar como consertar isso
Agradeço desde ja.
- 1
-
8 minutos atrás, Wilson Esser disse:
Nesse caso ai são 4 algoritmos diferentes né?
Ou um que resolva os 4?
é um que resolva os quatro
- 1
-
Estou com um problema nesta pergunta de um trabalho em visualg
- 1
-
2 horas atrás, Math.Pi disse:
O result deve ficar fora do laço de repetição, afinal não faz sentido você calcular a média 10 vezes.
Você vai pegar a soma que foi gerada no laço de repetição e dividir por 10.
Oh obrigado mesmo
n sei como q n enxerguei um problema tão simples
- 2
-
Olá, estou fazendo um trabalho de linguagem de programação no visualg
e precisava saber como se faz a média de um vetor
(que no caso seria o VetorB).
Estou com problemas nessa última estrutura "para" :
Var vetorA: vetor [1..10] de inteiro VetorB: vetor [1..10] de inteiro i:inteiro num:inteiro media:real result:real Inicio i<-1 Para i de 1 ate 10 faca Leia(num) vetorA [i]<-num i<-i+1 Fimpara escreval("") escreval("calculando o dobro...") escreval("") para i de 1 ate 10 faca timer (50) VetorB[i] <- VetorA[i] * 2 escreva(VetorB[i]) fimpara para i de 1 ate 10 faca media <- VetorB[i] + VetorB[i] result <- media/10 fimpara Fimalgoritmo
agradeço desde ja
- 1
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Problema em calcular média no Lazarus
em Programação - outros
Postado
Muito obrigado! era isso mesmo