Ir para conteúdo
Fórum Script Brasil
  • 0

pascal não roda


alex.ryan

Pergunta

PROGRAM TESTE;

USES CRT;

TYPE TP_PRODUT = RECORD

NOME : STRING;

QTD : INTEGER;

você,VV : REAL;

END;

TYPE TP_JOGADOR = RECORD

NOME : STRING;

SALDO : REAL;

PRODUTO : ARRAY[1..3,1..3] OF STRING;

ESTOQUE : ARRAY[1..3,1..3] OF INTEGER;

END;

TYPE TP_CIDADE = RECORD

NOME : STRING;

PROD : ARRAY [1..3] OF STRING;

PRECOCOMPRA : ARRAY [1..3] OF REAL;

PRECOVENDA : ARRAY [1..3] OF REAL;

ESTOQUE : ARRAY [1..3] OF INTEGER;

END;

VAR

ADMINISTRADOR : STRING;

CIDADE : ARRAY [1..3] OF TP_CIDADE;

ICIDADE : INTEGER;

DESLOC : ARRAY [1..3,1..3] OF REAL;

CONF : CHAR;

JOGADOR : TP_JOGADOR;

SAIR,JOGAR : STRING;

OPCAOMENU : CHAR;

CIDADEATUAL : INTEGER;

CIDADEDESTINO : INTEGER;

I,I2,I3 : INTEGER;

OP,OP2 : INTEGER ;

CMOSTRARINSTRUCOES : CHAR;

ICODPRODUTO, IQUANTCOMPRA, IQUANTVENDA :INTEGER;

RVALORCOMPRA,RVALORVENDA : REAL;

SCONFIRMA : STRING;

BEXISTEPRODUTO : BOOLEAN;

CLRSCR

WRITELN('1- Efetuar deslocamento entre cidades');

WRITE('2- Consultar mercadorias dispon¡veis para');

WRITELN(' compra na cidade e seus respectivos pre‡os');

WRITELN('3- Consultar pre‡os de venda de todas as mercadorias');

WRITELN('4- Consultar mercadorias que est  levando');

WRITELN('5- Consultar saldo financeiro');

WRITELN('6- Consultar estoque');

WRITELN('7- Comprar produtos');

WRITELN('8- Vender produtos');

WRITELN('0- Finalizar o jogo');

READLN(OPC3);

CASE OPC3 OF

1: BEGIN

WRITELN;

WRITELN('Efetuar deslocamento');

WRITELN('Vocˆ est  na cidade ',JOGADOR.CID,'.');

FOR j:=1 to 4 do

if(JOGADOR.CID <> VETCIDADE[j]) THEN

writeln(' Se quer ir para a cidade ',VETCIDADE[j],' ,digite ',j);

READLN(DESLOC);

JOGADOR.SALDO:= JOGADOR.SALDO - matcustod[jogador.ncid,desloc];

JOGADOR.CID:= VETCIDADE[DESLOC];

JOGADOR.NCID:= DESLOC;

READKEY();

END;

2: BEGIN

Writeln('------------------------------------------------------------------');

Writeln(' Mercadorias dispon¡veis para compra e pre‡os');

Writeln('------------------------------------------------------------------');

Writeln;

For j:= 1 to 4 do

BEGIN

Writeln('Cidade: ',Vetcidade[j]);

Writeln;

For i:= 1 to 4 do

BEGIN

Writeln('Produto: ', Vetproduto[j].Nome);

Writeln('Pre‡o de compra: ', Vetproduto[j].PC:7:2);

END;

WRITELN;

END;

Readkey();

Writeln;

WHILE CP <> 0 DO

BEGIN

CASE CP OF

1..9:

BEGIN

clrscr;

textcolor(lightgreen);

writeln('CAIXEIRO VIAJANTE');

writeln('CONSULTAR ESTOQUE DO JOGADOR E VENDER PRODUTOS');

writeln('Jogador: ', Jogador.PersonagemNome);

writeln('Cidade atual: ', Cadastro[Jogador.PersonagemCidadeAtual].CidadeNome);

writeln('Saldo atual: R$', Jogador.PersonagemSaldoAtual:1:2);

writeln('CONSULTAR ESTOQUE DO JOGADOR');

FOR NC:= 1 TO 3 DO

FOR NP:= 1 TO 3 DO

writeln('Produto: ', Jogador.PersonagemProdutoNome[NC,NP], ' | Qnt: ', Jogador.PersonagemProdutoQnt[NC,NP], ' | Pre‡o de Venda: R$', Jogador.PersonagemProdutoValorVenda[NC,NP]:1:2);

END;

END;

// Menu comprar produtos

textcolor(lightblue);

writeln('VENDER PRODUTOS');

writeln('[1] ', Jogador.PersonagemProdutoNome[1,1]);

writeln('[2] ', Jogador.PersonagemProdutoNome[1,2]);

writeln('[3] ', Jogador.PersonagemProdutoNome[1,3]);

writeln('[4] ', Jogador.PersonagemProdutoNome[2,1]);

writeln('[5] ', Jogador.PersonagemProdutoNome[2,2]);

writeln('[6] ', Jogador.PersonagemProdutoNome[2,3]);

writeln('[7] ', Jogador.PersonagemProdutoNome[3,1]);

writeln('[8] ', Jogador.PersonagemProdutoNome[3,2]);

writeln('[9] ', Jogador.PersonagemProdutoNome[3,3]);

writeln('[0] Menu principal');

write('Entre com o n£mero do produto que deseja vender: ');

readln(CP);

// PROCESSAMENTO DA VENDA

CASE CP OF

1..9:

BEGIN

// Atribuir valores a vari veis de controle

TempQnt := 0;

TempTotal := 0.00;

CASE CP OF

1..3: NC := 1;

4..6: NC := 2;

7..9: NC := 3;

END;

CASE CP OF

1,4,7: NP := 1;

2,5,8: NP := 2;

3,6,9: NP := 3;

END;

clrscr;

textcolor(lightgreen);

writeln('CAIXEIRO VIAJANTE');

writeln('CONSULTAR ESTOQUE DO JOGADOR E VENDER PRODUTOS');

writeln('Jogador: ', Jogador.PersonagemNome);

writeln('Saldo atual: R$', Jogador.PersonagemSaldoAtual:1:2);

writeln('Produto selecionado: ', Jogador.PersonagemProdutoNome[NC,NP]);

writeln('Qnt em estoque: ', Jogador.PersonagemProdutoQnt[NC,NP], ' | Pre‡o de Venda: R$', Jogador.PersonagemProdutoValorVenda[NC,NP]:1:2);

textcolor(lightblue);

write('Entre com a quantidade a ser vendida: ');

readln(TempQnt);

IF (TempQnt <= Jogador.PersonagemProdutoQnt[NC,NP]) THEN // Validar quantidade de produtos

BEGIN

TempTotal := TempQnt * Jogador.PersonagemProdutoValorVenda[NC,NP]; // Calcular valor total da venda

textcolor(lightgreen);

writeln('O valor total da venda ‚: R$', TempTotal:1:2); // Exibe valor total da venda

Jogador.PersonagemSaldoAtual:= Jogador.PersonagemSaldoAtual + TempTotal; // Adiciona ao saldo do jogador o valor total da venda

Jogador.PersonagemProdutoQnt[NC,NP] := Jogador.PersonagemProdutoQnt[NC,NP] - TempQnt; // Diminui do estoque do jogador o n£mero de produtos vendidos

IF (Jogador.PersonagemProdutoQnt[NC,NP] = 0) THEN // Se igual a 0, eliminar o produto do estoque

BEGIN

Jogador.PersonagemProdutoNome[NC,NP] := '';

Jogador.PersonagemProdutoQnt[NC,NP] := 0;

Jogador.PersonagemProdutoValorVenda[NC,NP] := 0.00;

END;

writeln('A venda do produto ', Jogador.PersonagemProdutoNome[NC,NP], ' foi realizada com sucesso');

writeln('Pressione qualquer tecla para continuar');

readkey;

END

ELSE

BEGIN

textcolor(lightred);

writeln('Estoque insuficiente, venda nÆo realizada');

writeln('Pressione qualquer tecla para continuar');

readkey;

END;

END;

END;

2: begin

2: begin

writeln('Indique o nome e a quantidade do produto que deseja vender.');

write('Produto: '); readln(Produto);

// verifica a existencia do produto na sacola

z:= 0;

FOR x:= 1 TO 9 DO

IF Produto = sacola.ProdutoJog[x] THEN z:= x;;

IF z = 0 THEN

writeln('Vocˆ nÆo possui o produto.')

ELSE

begin

// solicita a quantidade que se deseja vender

write('Quantidade: '); readln(QtdProduto);

// verifica a quantidade dispon¡vel do produto

IF QtdProduto > sacola.QtdProdutoJog[z] THEN

writeln('A quantidade na sacola deste produto ‚ ', sacola.QtdProdutoJog[z],'.')

ELSE

// verifica se ‚ poss¡vel vender o produto na cidade

begin

y:= 0;

FOR x:= 1 TO 3 DO

IF Produto = Cidade.NomeProduto[x] THEN y:= x;

IF y = 0 THEN

writeln('NÆo ‚ poss¡vel vender este produto nesta cidade.')

ELSE

begin

// efetua a venda

(* adiciona: saldo, qtd produtos na cidade *)

saldo:= saldo + Cidade.ValorVenda[y] * QtdProduto;

Cidade.QtdProduto[y]:= Cidade.QtdProduto[y] + QtdProduto;

(* retira produto na sacola *)

sacola.QtdProdutoJog[z]:= sacola.QtdProdutoJog[z] - QtdProduto;

writeln();

writeln('Vocˆ vendeu ', QtdProduto, ' und do produto ', Produto,'.');

writeln('Seu saldo ser  atualizado para R$ ', saldo:1:2);

end;

end;

end;

end;

// ir para outra cidade

3: begin

writeln('Escolha a cidade para qual deseja se deslocar.');

write('- Cidade destino: '); readln(Destino);

writeln();

z:= 0;

FOR x:= 1 TO 3 DO

IF (Destino = Cidade[x].Nome) THEN z:= x;

IF z = 0 THEN writeln('Sinto muito, mas a cidade ', Destino, ' nÆo est  na rela‡Æo.')

ELSE

If z = i Then writeln('Vocˆ j  se encontra na cidade ', Destino, '.')

Else

begin

writeln('Vocˆ se deslocar  para cidade ', Destino,'.');

Saldo:= Saldo - Deslocamento[i,z];

writeln('Ser  cobrada a taxa de deslocamento no valor de R$ ', Deslocamento[i,z]:1:2);

writeln('Seu saldo ser  atualizado para R$ ', saldo:1:2);

i:= z;

end;

end;

// finalizar o jogo

4: writeln('finalizar');

// nenhuma das op‡äes dispon¡veis

ELSE

writeln('Op‡Æo inv lida.');

END;

readkey(); clrscr();

UNTIL opcao = 4;

readkey();

End.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...