marrokino Posted December 4, 2009 at 10:54 AM Report Share #298676 Posted December 4, 2009 at 10:54 AM Hello! Queria que me ajudassem neste programa, na zona de calcular os custos totais (procedure_contas) e se possivel ver o que há de errado no programa. Obrigado program Loja; uses SysUtils; type TBikes = Record nome:string[30]; custo:integer; end; type TProdutos = Record nome:string[30]; custo:integer; end; var fit, sunday, verde, subrosa, : TBikes; fork, pneus, guiador, banco, cranks: TProdutos; bike: integer; produto: integer; total: integer; // Fit begin with fit do begin nome:= 'Fit Trail 2010 '; custo:= 640 ; end; // sunday with Sunday do begin nome:= 'Sunday Funday'; custo:= 845; end; // verde with verde do begin nome:= 'Verde Luxe 2010'; custo:= 649; end; // Subrosa with Subrosa do begin nome:= 'Subrosa Novus 2010'; custo:= 759; end; ////////////////// // Fork with fork do begin nome:= 'Fork Odyssey Dirt 10mm'; custo:= 95; end; //Pneus with pneus do begin nome:= '2 x Odyssey Path'; custo:= 45; // Guiador with guiador do begin nome:= 'FitBike Sky High'; custo:= 70; end; // Banco with banco do begin nome:= 'TwentyBikeco. Pivotal Kit'; custo:= 60; end; // Cranks with cranks do begin nome:= 'Primo Powerbite'; custo:= 110; end; ///////// procedure menu; Writeln('Bem Vindo); Writeln(''); Writeln('Temos varias BMX e peças ao seu dispor..'); Procedure escolhas; Writeln('Opcao 1'); Writeln('Nome: ',fit.nome); Writeln('Custo: ',fit.custo); Writeln(''); Writeln(''); Writeln('Opcao 2'); Writeln('Nome: ',sunday.nome); Writeln('Custo: ',sunday.custo); Writeln(''); Writeln(''); Writeln('Opcao 3'); Writeln('Nome: ',verde.nome); Writeln('Custo: ',verde.custo); Writeln('Opcao 4'); Writeln('Nome: ',subrosa.nome); Writeln('Custo: ',subrosa.custo); Writeln('Indique a BMX que mais lhe agrada, 1,2, 3 ou 4:'); Readln(bike); Writeln(''); procedure escolha_bmx; if (bike = 1) then begin Writeln('Escolheu a opcao , que equivale ao ',fit.nome, ' com o custo de ',fit.custo,' Euros'); Writeln(''); Writeln('O ',fit.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); End Else if (bike = 2) then begin Writeln('Escolheu a opcao , que equivale ao ',sunday.nome, ' com o custo de ',sunday.custo,' Euros'); Writeln(''); Writeln('O ',sunday.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 3) then begin Writeln('Escolheu a opcao , que equivale ao ',verde.nome, ' com o custo de ',verde.custo,' Euros'); Writeln(''); Writeln('O ',verde.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 4) then begin Writeln('Escolheu a opcao , que equivale ao ',subrosa.nome, ' com o custo de ',subrosa.custo,' Euros'); Writeln(''); Writeln('O ',subrosa.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else writeln(‘opcao invalida’); Procedure produtos; WHILE (opcao = 6 ) DO Writeln('Os produtos são '); writeln(''); writeln('Opcao 1'); writeln('Produto: ',fork.nome); writeln('Custo: ',fork.custo); writeln(''); writeln('Opcao 2'); writeln('Produto: ',pneus.nome); writeln('Custo: ',pneus.custo); writeln(''); writeln('Opcao 3'); writeln('Produto: ',guiador.nome); writeln('Custo: ',guiador.custo); writeln('Opcao 4'); writeln('Produto: ',banco.nome); writeln('Custo: ',banco.custo); writeln('Opcao 5'); writeln('Produto: ',cranks.nome); writeln('Custo: ',cranks.custo); writeln('Opcao 6'); writeln('Terminar compras'); Writeln('Escolha as opcoes que deseja'); Readln(produto); end; procedure contas; Link to comment Share on other sites More sharing options...
M6 Posted December 4, 2009 at 07:16 PM Report Share #298721 Posted December 4, 2009 at 07:16 PM marrokino, tens de ser especifico nas tuas dúvidas. Qual é a dúvida que tens no procedimento de cálculo os custos totais? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
marrokino Posted December 4, 2009 at 07:31 PM Author Report Share #298724 Posted December 4, 2009 at 07:31 PM A minha duvida é que não estou a ver como fazer com que o programa vá adicionando os valores dos produtos extra ao valor do item escolhido inicialmente. Alguém que me dê umas luzes! Link to comment Share on other sites More sharing options...
M6 Posted December 4, 2009 at 11:49 PM Report Share #298752 Posted December 4, 2009 at 11:49 PM Não encontro no código o procedimento que referes. Mas podes fazer isso de várias formas, talvez a mais simples seja guardar isso num vector, conforme vão sendo adicionados os itens guardá-los num vector e depois é só percorrer e somar o seu valor. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
marrokino Posted December 15, 2009 at 10:03 PM Author Report Share #300610 Posted December 15, 2009 at 10:03 PM Desculpem não ter dito mais nada entretanto, não tive oportunidade passar por aqui. Mas entretanto fui fazendo mais qualquer coisa mas o programa continua me a dar um erro, coisa que não consigo resolver. Se alguém conseguir agradeço, a minha intenção é por o programa funcionar, depois outros erros eu faço por resolver. Muito obrigado desde já! program Loja; uses crt; type TBikes = Record nome:string[30]; custo:integer; end; type TProdutos = Record nome:string[30]; custo:integer; end; var fit, sunday, verde, subrosa : TBikes; fork, pneus, guiador, banco, cranks: TProdutos; bike: integer; produto: integer; total: integer; opcao: integer; procedure menu; Begin clrscr; Textcolor (yellow); WRITELN; Writeln ('============================================================================'); Writeln ('= M E N U ='); Writeln ('= ='); Writeln ('= 1 - Adquirir Bicicleta ='); Writeln ('= 2 - Adquirir peças ='); Writeln ('= 33 - Sair do Programa ='); Writeln ('= ='); Writeln ('============================================================================'); Writeln; Write; Writeln ('Selecione uma opcao:'); Readln (opcao); End; Procedure escolhas; begin Writeln('Opcao 1'); Writeln('Nome: ',fit.nome); Writeln('Custo: ',fit.custo); Writeln(''); Writeln(''); Writeln('Opcao 2'); Writeln('Nome: ',sunday.nome); Writeln('Custo: ',sunday.custo); Writeln(''); Writeln(''); Writeln('Opcao 3'); Writeln('Nome: ',verde.nome); Writeln('Custo: ',verde.custo); Writeln('Opcao 4'); Writeln('Nome: ',subrosa.nome); Writeln('Custo: ',subrosa.custo); Writeln('Indique a BMX que mais lhe agrada, 1,2, 3 ou 4:'); Readln(bike); Writeln(''); begin with fit do begin nome:= 'Fit Trail 2010 '; custo:= 640 ; end; end; with Sunday do begin nome:= 'Sunday Funday'; custo:= 845; end; with verde do begin nome:= 'Verde Luxe 2010'; custo:= 649; end; with Subrosa do begin nome:= 'Subrosa Novus 2010'; custo:= 759; end; end; procedure escolhabmx; begin if (bike = 1) then begin Writeln('Escolheu a opcao , que equivale ao ',fit.nome, ' com o custo de ',fit.custo,' Euros'); Writeln(''); Writeln('A ',fit.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); End Else if (bike = 2) then begin Writeln('Escolheu a opcao , que equivale ao ',sunday.nome, ' com o custo de ',sunday.custo,' Euros'); Writeln(''); Writeln('A ',sunday.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 3) then begin Writeln('Escolheu a opcao , que equivale ao ',verde.nome, ' com o custo de ',verde.custo,' Euros'); Writeln(''); Writeln('A ',verde.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 4) then begin Writeln('Escolheu a opcao , que equivale ao ',subrosa.nome, ' com o custo de ',subrosa.custo,' Euros'); Writeln(''); Writeln('A ',subrosa.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else writeln('opcao invalida'); end; Procedure produtos; begin WHILE (opcao = 6) do begin Writeln('Os produtos são '); writeln(''); writeln('Opcao 1'); writeln('Produto: ',fork.nome); writeln('Custo: ',fork.custo); writeln(''); writeln('Opcao 2'); writeln('Produto: ',pneus.nome); writeln('Custo: ',pneus.custo); writeln(''); writeln('Opcao 3'); writeln('Produto: ',guiador.nome); writeln('Custo: ',guiador.custo); writeln('Opcao 4'); writeln('Produto: ',banco.nome); writeln('Custo: ',banco.custo); writeln('Opcao 5'); writeln('Produto: ',cranks.nome); writeln('Custo: ',cranks.custo); writeln('Opcao 6'); writeln('Terminar compras'); Writeln('Escolha as opcoes que deseja'); Readln(produto); end; with fork do begin nome:= 'Fork Odyssey Dirt 10mm'; custo:= 95; end; with pneus do begin nome:= '2 x Odyssey Path'; custo:= 45; end; with guiador do begin nome:= 'FitBike Sky High'; custo:= 70; end; with banco do begin nome:= 'TwentyBikeco. Pivotal Kit'; custo:= 60; end; with cranks do begin nome:= 'Primo Powerbite'; custo:= 110; end; end; procedure contas; begin WHILE opcao = 3 DO BEGIN WRITE('Deseja sair '); READLN(opcao); END; Begin repeat Menu; readln(opcao); Case opcao of 1: escolhas; 2: produtos; 3: contas; 4: Writeln ('Programa Finalizado! '); Else Writeln ('Opcao Invalida!'); end; until opcao=4; end; end. Link to comment Share on other sites More sharing options...
M6 Posted December 16, 2009 at 09:33 AM Report Share #300661 Posted December 16, 2009 at 09:33 AM E qual é o erro que te dá? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
apocsantos Posted December 16, 2009 at 09:56 AM Report Share #300665 Posted December 16, 2009 at 09:56 AM Não vejo onde ele faça os calculos no procedure contas. Qual o erro, e que compilador de pascal estás a usar? Cumprimentos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
marrokino Posted December 16, 2009 at 09:40 PM Author Report Share #300898 Posted December 16, 2009 at 09:40 PM Dá-me um erro de sintaxe no final do programa. Sim, a zona das contas também estou com problemas para a pôr a funcionar, por favor ajudem-me! Link to comment Share on other sites More sharing options...
M6 Posted December 16, 2009 at 10:08 PM Report Share #300917 Posted December 16, 2009 at 10:08 PM marrokino, se não deres informações precisas não te podemos ajudar! Onde precisamente é que dá erro e que erro é esse? O compilador diz-te o tipo de erro e a linha onde está o erro. Quanto à zona das contas, o apocsantos está a perguntar onde está ela no código dado que não a vê. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
marrokino Posted December 17, 2009 at 12:48 PM Author Report Share #301052 Posted December 17, 2009 at 12:48 PM A zona das contas "está" dentro do procedure_contas, ainda não consegui fazer. O erro de sintaxe é nas ultimas linhas, mas agora diz que falta um begin no ultimo end. Link to comment Share on other sites More sharing options...
apocsantos Posted December 17, 2009 at 02:07 PM Report Share #301068 Posted December 17, 2009 at 02:07 PM 2 Problemas. 1º O programa parece que inicialmente foi feito por uma pessoa mas tem um procedimento mais "arranjadinho" dá ideia que teve "mãozinha" a ajudar B) adiante. 2º Em pascal nunca te explicaram que todos os programas têem de ter um begin e um end. ?? E que é dentro desse bloco que chamas as procedures? o que tens quase parece uma Unit, e não um programa. Aqui tens o codigo comentado e corrigido, agora não te esqueças de chamar as procedures no sitio certo 😛 program Loja; uses crt; type TBikes = Record nome:string[30]; custo:integer; end; type TProdutos = Record nome:string[30]; custo:integer; end; var fit, sunday, verde, subrosa : TBikes; fork, pneus, guiador, banco, cranks: TProdutos; bike: integer; produto: integer; total: integer; opcao: integer; procedure menu; {Begin do procedure menu} Begin clrscr; Textcolor (yellow); WRITELN; Writeln ('============================================================================'); Writeln ('= M E N U ='); Writeln ('= ='); Writeln ('= 1 - Adquirir Bicicleta ='); Writeln ('= 2 - Adquirir peças ='); Writeln ('= 33 - Sair do Programa ='); Writeln ('= ='); Writeln ('============================================================================'); Writeln; Write; Writeln ('Selecione uma opcao:'); Readln (opcao); {end do procedure menu} End; Procedure escolhas; {begin do procedure escolhas} Begin Writeln('Opcao 1'); Writeln('Nome: ',fit.nome); Writeln('Custo: ',fit.custo); Writeln(''); Writeln(''); Writeln('Opcao 2'); Writeln('Nome: ',sunday.nome); Writeln('Custo: ',sunday.custo); Writeln(''); Writeln(''); Writeln('Opcao 3'); Writeln('Nome: ',verde.nome); Writeln('Custo: ',verde.custo); Writeln('Opcao 4'); Writeln('Nome: ',subrosa.nome); Writeln('Custo: ',subrosa.custo); Writeln('Indique a BMX que mais lhe agrada, 1,2, 3 ou 4:'); Readln(bike); Writeln(''); begin with fit do begin nome:= 'Fit Trail 2010 '; custo:= 640 ; end; {end do procedure escolhas} end; with Sunday do begin nome:= 'Sunday Funday'; custo:= 845; end; with verde do begin nome:= 'Verde Luxe 2010'; custo:= 649; end; with Subrosa do begin nome:= 'Subrosa Novus 2010'; custo:= 759; end; end; procedure escolhabmx; {begin do procedure escolhabmx} begin if (bike = 1) then begin Writeln('Escolheu a opcao , que equivale ao ',fit.nome, ' com o custo de ',fit.custo,' Euros'); Writeln(''); Writeln('A ',fit.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); End Else if (bike = 2) then begin Writeln('Escolheu a opcao , que equivale ao ',sunday.nome, ' com o custo de ',sunday.custo,' Euros'); Writeln(''); Writeln('A ',sunday.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 3) then begin Writeln('Escolheu a opcao , que equivale ao ',verde.nome, ' com o custo de ',verde.custo,' Euros'); Writeln(''); Writeln('A ',verde.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else if (bike = 4) then begin Writeln('Escolheu a opcao , que equivale ao ',subrosa.nome, ' com o custo de ',subrosa.custo,' Euros'); Writeln(''); Writeln('A ',subrosa.nome, 'é bastante boa, mas mesmo assim temos alguns produtos para ficar ainda melhor'); end else writeln('opcao invalida'); end; Procedure produtos; {begin do procedure produtos} begin WHILE (opcao = 6) do begin Writeln('Os produtos são '); writeln(''); writeln('Opcao 1'); writeln('Produto: ',fork.nome); writeln('Custo: ',fork.custo); writeln(''); writeln('Opcao 2'); writeln('Produto: ',pneus.nome); writeln('Custo: ',pneus.custo); writeln(''); writeln('Opcao 3'); writeln('Produto: ',guiador.nome); writeln('Custo: ',guiador.custo); writeln('Opcao 4'); writeln('Produto: ',banco.nome); writeln('Custo: ',banco.custo); writeln('Opcao 5'); writeln('Produto: ',cranks.nome); writeln('Custo: ',cranks.custo); writeln('Opcao 6'); writeln('Terminar compras'); Writeln('Escolha as opcoes que deseja'); Readln(produto); end; with fork do begin nome:= 'Fork Odyssey Dirt 10mm'; custo:= 95; end; with pneus do begin nome:= '2 x Odyssey Path'; custo:= 45; end; with guiador do begin nome:= 'FitBike Sky High'; custo:= 70; end; with banco do begin nome:= 'TwentyBikeco. Pivotal Kit'; custo:= 60; end; with cranks do begin nome:= 'Primo Powerbite'; custo:= 110; end; end; procedure contas; {begin do procedure contas} begin WHILE opcao = 3 DO BEGIN WRITE('Deseja sair '); READLN(opcao); END; Begin repeat Menu; readln(opcao); Case opcao of 1: escolhas; 2: produtos; 3: contas; 4: Writeln ('Programa Finalizado! '); Else Writeln ('Opcao Invalida!'); end; until opcao=4; end; {end do procedure contas} end; {begin do programa (parte a ser executada e onde chamas as procedures)} Begin {end do programa} end. "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now