Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Mike24

[Resolvido] Procedure

Recommended Posts

Program Soma;

Uses Crt;

Var

soma_:integer;

Procedure soma(A,B:Real);

Begin

Writeln('o resultado da soma dos dois valores e',(a+B):2:2);

End;

Var

num1,num2:Real;

resposta:char;

Begin

Clrscr;

Resposta:='S';

While (resposta='S') do

Begin

writeln('informe dois valores');

readln(num1,num2);

Clrscr;

Soma(num1,num2);

writeln;

writeln;

CLRSCR;

Begin

function soma(x,y:integer):integer;

resultado: integer;

soma:=x+y;

Begin resultado:=soma(2,3);

writeln('O resultado é ',resultado);

End;

writeln('Deseja efetuar nova soma? sim(S) nao(N) : ');

readln(resposta);

Clrscr;

End;

End.

Editado por Mike24
Use a tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, abaixo seu código com algumas modificações...

PROGRAM Soma;
uses
CRT;
var
soma_:integer;

procedure soma(A,B:real);
begin
writeln('o resultado da soma dos dois valores é ',(a+:0:2);
end;

var
num1,num2 :real;
resposta :char;
BEGIN
//Clrscr; {colocado dentro do while}
Resposta:='S';
//while (resposta='S') do
while (UpCase(resposta)='S') do
begin
ClrScr;
writeln('Informe dois valores');
readln(num1,num2);
ClrScr;
Soma(num1,num2);
writeln;
writeln;
writeln('Pressione quelquer tecla para continuar');
ReadKey; //pause para dar tempo de ver a resposta
ClrScr;
(*
O QUÊ SIGNIFICA ESSE TRECHO ABAIXO?
//begin {begin do quê?}
function soma(x,y:integer):integer; //por que essa function aqui dento?
resultado: integer;
soma:=x+y;
Begin //outro begin de quê???
resultado:=soma(2,3);
writeln('O resultado é ',resultado);
//End; {do begin}
*)
writeln('Deseja efetuar nova soma? sim(S) nao(N) : ');
readln(resposta);
//Clrscr; {basta o primeiro logo depois do while}
end;
END.

Qualquer coisa é só postar

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado por olhar.Gostaria de saber onde coloco essa funçao..ou nao precisa dela no programa??tinha quer ter uma funçao e um procedimento mas nao estou sabendo onde coloca.Se é que realmente precisa.VALEU...:confused:

Compartilhar este post


Link para o post
Compartilhar em outros sites
obrigado por olhar.Gostaria de saber onde coloco essa funçao..ou nao precisa dela no programa??tinha quer ter uma funçao e um procedimento mas nao estou sabendo onde coloca.Se é que realmente precisa.VALEU...:confused:

Olá,

Sem saber do que se trata não temos como ajudar. Você só havia comentado que não estava rodando. ^_^

Mais vamos tentar...

As declarações de mais de um procedimento é feito da mesma forma.. "um em baixo do outro".

Abaixo um código exemplo usando os dois procedimentos e com alguns comentários:

PROGRAM Soma;
uses
CRT;
type
a = integer;

var
soma_:integer;

(*
### SOBRE PROCEDURES E FUNCTIONS ###
AS DECLARAÇÕES DAS FUNCTIONS E PROCEDURES FICAM ENTRE O "PROGRAM" E O
"BEGIN/END PRINCIPAL"
A ORDEM DOS ELEMENTOS, COMO VAR E AS PROCEDURES, DEPENDEM DA
LÓGICA DO SEU PROGRAMA.

POR PADRÃO SEGUEM A SEGUINTE ORDEM (MAIS PODERIA SER DIFERENTE)

PROGRAM
USES
TYPE
VAR
PROCEDURE E FUNCTIONS

BEGIN

END.

OBS.: ESSA ORDEM DO VAR VIM ANTES DOS PROCEDIMENTOS É A MAIS COMUM, POIS
O PASCAL APRENDE DA SEGUINTE FORMA: ""DA ESQUERDA PARA DIREITA, DE CIMA
PRA BAIXO"", OU SEJA, O QUE ESTÁ EM CIMA, NÃO 'ENXERGA' O QUE ESTÁ EM
BAIXO, LOGO, SE VOCÊ DECLARAR UMA PROEDURE EM CIMA DO VAR, ESSA PROCEDURE
NÃO VAI RECONHECER AS VARIÁVEIS GLOBAIS... O MESMO VALE PARA OS PROCEDIMENTOS
POR EXEMPLO, VOCÊ SÓ VAI CONSEGUIR USAR UM PROCEDIMENTOS QUE ESTÁ EMCIMA DO
ATUAL. VEJA

PROCEDIMENTO A
PROCEDIMENTO B

B CONSEGUE USAR O A DENTRO DELE, MAS O A NÃO CONSEGUE USAR O B...!!! SACOU?

*)
procedure soma(a,b:real);
begin
writeln('O resultado da soma dos dois valores é ',(a+:0:2);
end;

{como já é sabido, não podemos colocar o mesmo nome em dois procedimentos
diferentes no Pascal

obs.: em algumas linguagens como o Java, é possível. Esse recurso
é chamado de "Sobrecarga" (o Pascal não tem)}
function soma2(x,y:real):real;
begin
soma2:=x+y;
end;

var
num1,num2 :real;
resposta :char;
BEGIN
resposta:='S';
while (UpCase(resposta)='S') do
begin
ClrScr;
writeln('Informe dois valores');
readln(num1,num2);
ClrScr;
writeln('Usando a procedure');
soma(num1,num2);
writeln;
writeln;
writeln('Utilizando a function');
writeln('O resultado da soma dos dois valores é ',soma2(num1,num2):0:2);
writeln;
writeln;
writeln('Deseja efetuar nova soma? sim(S) nao(N) : ');
readln(resposta);
end;
END.

Espero que seja útil para referência.

Se não for o caso, por favor, poste o "enunciado" do problema para entendermos melhor e assim tentar dar uma resposta mais objetiva.

No aguardo

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
Olá,

Sem saber do que se trata não temos como ajudar. Você só havia comentado que não estava rodando. ^_^

Mais vamos tentar...

As declarações de mais de um procedimento é feito da mesma forma.. "um em baixo do outro".

Abaixo um código exemplo usando os dois procedimentos e com alguns comentários:

PROGRAM Soma;
uses
CRT;
type
a = integer;

var
soma_:integer;

(*
### SOBRE PROCEDURES E FUNCTIONS ###
AS DECLARAÇÕES DAS FUNCTIONS E PROCEDURES FICAM ENTRE O "PROGRAM" E O
"BEGIN/END PRINCIPAL"
A ORDEM DOS ELEMENTOS, COMO VAR E AS PROCEDURES, DEPENDEM DA
LÓGICA DO SEU PROGRAMA.

POR PADRÃO SEGUEM A SEGUINTE ORDEM (MAIS PODERIA SER DIFERENTE)

PROGRAM
USES
TYPE
VAR
PROCEDURE E FUNCTIONS

BEGIN

END.

OBS.: ESSA ORDEM DO VAR VIM ANTES DOS PROCEDIMENTOS É A MAIS COMUM, POIS
O PASCAL APRENDE DA SEGUINTE FORMA: ""DA ESQUERDA PARA DIREITA, DE CIMA
PRA BAIXO"", OU SEJA, O QUE ESTÁ EM CIMA, NÃO 'ENXERGA' O QUE ESTÁ EM
BAIXO, LOGO, SE VOCÊ DECLARAR UMA PROEDURE EM CIMA DO VAR, ESSA PROCEDURE
NÃO VAI RECONHECER AS VARIÁVEIS GLOBAIS... O MESMO VALE PARA OS PROCEDIMENTOS
POR EXEMPLO, VOCÊ SÓ VAI CONSEGUIR USAR UM PROCEDIMENTOS QUE ESTÁ EMCIMA DO
ATUAL. VEJA

PROCEDIMENTO A
PROCEDIMENTO B

B CONSEGUE USAR O A DENTRO DELE, MAS O A NÃO CONSEGUE USAR O B...!!! SACOU?

*)
procedure soma(a,b:real);
begin
writeln('O resultado da soma dos dois valores é ',(a+:0:2);
end;

{como já é sabido, não podemos colocar o mesmo nome em dois procedimentos
diferentes no Pascal

obs.: em algumas linguagens como o Java, é possível. Esse recurso
é chamado de "Sobrecarga" (o Pascal não tem)}
function soma2(x,y:real):real;
begin
soma2:=x+y;
end;

var
num1,num2 :real;
resposta :char;
BEGIN
resposta:='S';
while (UpCase(resposta)='S') do
begin
ClrScr;
writeln('Informe dois valores');
readln(num1,num2);
ClrScr;
writeln('Usando a procedure');
soma(num1,num2);
writeln;
writeln;
writeln('Utilizando a function');
writeln('O resultado da soma dos dois valores é ',soma2(num1,num2):0:2);
writeln;
writeln;
writeln('Deseja efetuar nova soma? sim(S) nao(N) : ');
readln(resposta);
end;
END.

Espero que seja útil para referência.

Se não for o caso, por favor, poste o "enunciado" do problema para entendermos melhor e assim tentar dar uma resposta mais objetiva.

No aguardo

Abraços

Obrigada.Agora entendi como usa os dois procedimentos juntos..Quando surgir mais alguma duvida sobre programaçao..deixarei o enunciado..Boa tarde..Thank you.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×