Ir ao conteúdo
  • Cadastre-se

Procedure


Mike24

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!