Ir para o conteúdo

Pesquisar na Comunidade

A mostrar resultados para tags ''pascal''.



Mais opções de pesquisa

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Procurar resultados em...

Pesquisar conteúdos que contêm...


Data de Publicação

  • Início

    Fim


Última Actualização

  • Início

    Fim


Filtrar por número de...

933 resultados

  1. Pinhalnovo

    Euromilhões e Totoloto

    Bem como referenciei na minha apresentação estou a tirar um curso de aplicações informáticas e estou com algumas dúvidas.. Basicamente tenho um novo projecto em que tenho que fazer uma aplicação com o pascal zim que ajude no preenchimento dos boletins dos jogos socias Totoloto e Euromilhões. A aplicação deverá começar por questionar o utilizador se pretende apostar no Totoloto ou no Euromilhões e de seguida questionar quantas apostas o utilizador pretende efectuar considerando que: Euromilhões: - Minímo 1 aposta; - Máximo 5 apostas; - Cada aposta terá 5 números de 1 a 50 e duas estrelas de 1 a 11. Totoloto: - Mínimo 2 apostas; - Máximo 10 apostas; - O número de apostas terá de ser par; - Cada aposta é composta por 6 números de 1 a 49. Quando forem gerados os números para a(s) aposta(s) deverá ter em atenção que numa mesma aposta o mesmo número não poderá aparecer mais do que uma vez. Depois de geradas, as apostas devem ser apresentadas ao utilizador de forma ordenada, isto é os números terão de surgir no ecrã ordenados de forma crescente. Já tentei várias coisas mas o pascalzim está sempre a dar erros e ainda não consegui correr nenhuma vez o programa. Para além disso não estou a ver como é que vou fazer para ordenar os números das apostas. Alguem dá uma ajudinha? Obrigadão!
  2. BHAMF

    Como transformar String em PChar

    Um tópico informativo é este. Não achei nenhum conteúdo sobre isto por aqui, então resolvi postar como que conseguimos transformar uma string em PChar. A dúvida surgiu quando eu estava utilizando um comando em que um de seus parâmetros era PChar, porém eu não conseguia por si só, guardar informações que o utilizador digitava direto na variável PChar, e nem passar a informação de uma string para um PChar: [...] procedure SndPlaySound(name : PChar, TypePlay : integer); .[...] Var mus : PChar; mus2 : String begin [...] readln(mus); //isso não era possível, pois dava o erro "can't read or write variables of this type" SndPlaySound(mus, 1); ////////////////////////// //nem isto era possível: readln(mus2); mus := mus2; //pois dava o erro "Incompatible types "AnsiString" and "PChar" então, a maneira que eu achei de resolução foi esta função das profundezas da internet: // // Apenas tens de colocar a variável que desejas que seja transformada em PChar: PChar(variable); //daí podes usar com algum atributo, etc. Vejam os exemplos. Ex.: [...] var mus : PChar; mus2 : string; begin [...] readln(mus2); mus := PChar(mus2); //isto já daria certo! SndPlaySound(mus, 1); {ou desta maneira também} readln(mus2); SoundPlaySound(PChar(mus2), 1); //perfeito! Era isto! Valeu pessoal, espero que tenham gostado! Caso tenham mais propostas, melhoras, podem mandar. B.H.A.M.F, Natal, RN. Brasil. 25/12/2018 | 14:21 (Horário de Brasília)
  3. BHAMF

    Como imprimir algo em Pascal

    Observação: Variáveis não declaradas nesta procedures estão declaradas em outra parte do programa. Estou com uma dúvida sobre como imprimir algo em Pascal, utilizei o seguinte código para um programa que estou fazendo mas a impressora nem deu sinal de que iria imprimir, o código compilou sem nenhum erro. A impressora utilizada era EPSON e era USB. código usado: O objetivo era imprimira dados de um cliente que iria fazer uma viagem. procedure impressaoDeDados; var R : string; begin clrscr; gotoxy(2,2); write('Tem certeza que deseja imprimir as informa'#135#228'es do cliente ', cliente.escolha, '?'); // Cliente.escolha é a variável que diz o número do cliente. writeln; write('S/N: '); readln(R); if (R = 'S') or (R = 's') or (R = 'SIM') or (R = 'Sim') or (R = 'sim') then begin writeln; write('Imprimindo os dados...'); // Só aparecia a mensagem até aqui, o programa não fechava nem nada. writeln; PRINTCENTER('Impress'#198'o de informa'#135#228'es do cliente | GDV'); write(LST, 'Dados do cliente', cliente.escolha, ' da se'#135#198'o/ viagem ', identificacao_ADD_DEL2, '...'); writeln(LST); write(LST, 'Nome do cliente: ', cliente.nome); writeln(LST); write(LST, 'Telefone do cliente: ', cliente.tel); writeln(LST); write(LST, 'Data de anivers'#160'rio do cliente: ', cliente.dataAniv); writeln(LST); write(LST, 'Identidade/CPF do cliente: ', cliente.Ident); writeln(LST); write(LST, 'Data de ida do cliente: ', cliente.datIda); writeln(LST); write(LST, 'Data de volta do cliente: ', cliente.DatVLT); writeln(LST); write(LST, 'Tipo de pagamento efetuado pelo cliente: ', cliente.PagType); writeln(LST); write(LST, 'Valor do pagamento efetuado pelo cliente: ', cliente.PagVal); writeln(LST); write(LST, 'Finalizado. GDV ( Gerenciamento de Viagens ).'); write(LST, #12); writeln; write('Finalizado. Tecle ENTER.'); readln; clrscr; tela_inicial; end else begin if (R = 'N') or (R = 'n') or (R = 'NAO') or (R = 'Nao') or (R = 'nao') or (R = 'N'#199'O') or (R = 'N'#198'o') or (R = 'n'#198'o') then begin end else begin end; end; end; procedure PRINTCENTER (MENSAGEM : string); var posicao : BYTE; begin posicao := 40 + length(MENSAGEM) div 2; writeln(LST, MENSAGEM:posicao); end;z Espero uma ajuda, obrigado desde já! Brasil, 21:07 | 23/09/2017 (Horário de Brasília)
  4. Como posso mover o ponteiro do arquivo em Pascal??
  5. Yamix

    Método para se "interromper" um Delay

    Olá, Trago aqui um método para se "interromper" um Delay. Para quem não sabe, o Delay é um procedimento que congela o programa por um determinado tempo (em milisegundos). Procedure Delay(MS: Word); // Cabeçalho do procedimento Delay Então, não há meios de se interromper um Delay em tempo de execução (a menos que você finalize o programa de alguma forma ). Mas, há uma forma de se trabalhar para que se possa burlar o "Delay", utilizando laços de repetição. É bem simples, não tem muito mistério. O que é feito, é utilizar repetidas vezes o Delay(1); até somar o tempo total, e por também uma condição de parada. Então, o Delay poderá ser "interrompido" ou não. Exemplo (onde a condição, é uma tecla ser pressionada) : Program InterromperDelay; Uses Crt; Const Segundos = 1000; Var I, TempoDelay: Integer; Interrompido: Boolean; Begin Interrompido := False; TempoDelay := 3 * Segundos; WriteLn('ENTRANDO NO DELAY..'); For I := 1 To TempoDelay Do Begin Delay(1); If (KeyPressed = True) Then Begin ReadKey(); Interrompido := True; Break; End; End; If (Interrompido = True) Then Begin WriteLn('DELAY INTERROMPIDO!'); End Else WriteLn('DELAY NAO FOI INTERROMPIDO!'); End. ou, para quem viu o último tópico: Program InterromperDelay; Uses Crt; Const Segundos = 1000; Var I, TempoDelay: Integer; Begin TempoDelay := 3 * Segundos; WriteLn('ENTRANDO NO DELAY..'); For I := 1 To TempoDelay Do Begin Delay(1); If (KeyPressed = True) Then Begin Break; End; End; If (KeyPressed = True) Then Begin ReadKey(); WriteLn('DELAY INTERROMPIDO!'); End Else WriteLn('DELAY NAO FOI INTERROMPIDO!'); End. Espero que tenham entendido a lógica PS: Estou começando um canal no youtube, o foco é desenvolver coisas em Pascal. Quem quiser dar uma olhada, segue o link.
  6. BHAMF

    Pesquisa

    Olá! Preciso da ajuda de vocês, vocês já tentaram usar o CTRL+F do Google Chrome? Bom, estou querendo usar este método de pesquisa, alguém pode me ajudar? Não tenho nem ideia de como se faz isto. Obrigado desde já! B.H.A.M.F 13/10/2016 17:53 (Horário de Brasília)
  7. BHAMF

    cases com funções repetidas

    Há como fazer uma coisa semelhante a isso com estruturas de repetição: var Counter : integer; begin for Counter := 1 to 20 do begin counter := counter + 1; //funções para este for end; end. //do mesmo jeito, queria em case ou IFs. case var of //em vez de 1: begin, end; 2, begin, end; fazer logo de 1 até 20, como na criação de uma array: [a..20] //seria possível? end; ? Obrigado desde já. B.H.A.M.F. 26/12/2018 | 18:21 (Horário de Brasília) Natal, RN. Brasil.
  8. Olá, Estava desenvolvendo um jogo no estilo, "Reaction Time Test". Quando, me deparei com o seguinte problema: - Se o jogador apertasse alguma tecla durante o delay, então, após a saída do delay, imediatamente era contado como se o jogador tivesse pressionado uma tecla. Ou seja, seu tempo de reação era de 0.000 segundos, burlando o jogo. Nesse momento, meu código estava assim: Program ReactionTimeTest; Uses Crt; Const Sec = 600000; Var Tempo: Double; Contador: LongInt; Begin Repeat Tempo := 0; Contador := 0; Delay(Random(3000 - 1500) + 1500); WriteLn('VAI!'); While (KeyPressed = False) Do Begin Contador := Contador + 1; End; Tempo := Contador / Sec; WriteLn('TEMPO: ', Tempo:0:3, 's.'); Until (False); End. Então pensei, isso é simples de se resolver, e cheguei nisso: Program ReactionTimeTest; Uses Crt; Const Sec = 600000; Var Tempo: Double; Contador: LongInt; Begin Repeat Tempo := 0; Contador := 0; Delay(Random(3000 - 1500) + 1500); WriteLn('VAI!'); If (KeyPressed = False) Then Begin While (KeyPressed = False) Do Begin Contador := Contador + 1; End; Tempo := Contador / Sec; WriteLn('TEMPO: ', Tempo:0:3, 's.'); End Else ReadKey(); Until (False); End. Agora vai dar tudo certo! - SÓ QUE NÃO.. O bug ainda existia só que pior, o programa ficava repetindo o delay, até o número de vezes que apertei alguma tecla.. Depois de algum tempo tentando cheguei nessa solução, Repeat Erro := False; If (KeyPressed = True) Then Begin ReadKey(); Erro := True; End; Delay(10); Until (Erro = False); SOLUÇÃO: Ler todas as teclas pressionadas até esvaziar o buffer do teclado. A criação deste tópico, foi apenas para compartilhar a minha solução(não sei se existe outra) de como resolver o bug do delay.
  9. BHAMF

    Botões do form

    Olá! Estou em dúvida, se é possível (e se é, como se faz) desabilitar os botões do form quando se está trabalhando com a programação console (sem interface gráfica): Os botões de maximizar, minimizar e o de fechar a janela. Obrigado, espero resposta!
  10. Estou tentando inserir valores dentro dessa input, com o codigo abaixo: Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("FormRow-BUY-quantity").value="100";', 'about: blank', 0); Estou usando o chromium cef4 https://www.briskbard.com/index.php?lang=en&pageid=cef no rad studio 10.2, o codigo envia o valor para o input, mais depois de alguns milisegundos o valor desaparece do input, como se não tivesse sido renderizado no input. Mais testando outra forma eu consegui enviar o valor conforme codigo abaixo: procedure TMiniBrowserFrm.Button1Click(Sender: TObject); var event: TCefKeyEvent; begin FillChar(event, SizeOf(TCefKeyEvent), 0); event.kind := KEYEVENT_KEYDOWN; event.windows_key_code := ord('1') ; Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); event.windows_key_code := ord('0') ; Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); FillChar(event, SizeOf(TCefKeyEvent), 0); event.kind := KEYEVENT_CHAR; event.windows_key_code := ord('1'); Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); event.windows_key_code := ord('0') ; Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); FillChar(event, SizeOf(TCefKeyEvent), 0); event.kind := KEYEVENT_KEYUP; event.windows_key_code := ord('1'); Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); event.windows_key_code := ord('0') ; Chromium1.Browser.Host.Browser.MainFrame.Browser.Host.SendKeyEvent(@event); end; Eu gostaria de saber como posso corrigir o problema usando o javaScripit o que eu devo fazer para ele funcionar? Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("FormRow-BUY-quantity").value="100";', 'about: blank', 0); <input class="sc-1c2873k-1 gszTkZ" type="number" id="FormRow-BUY-quantity" name="quantity" step="0.000001" min="0.000001" value="">
  11. Estou a fazer um programa em pascal para a escola e tenho uma duvida acerca de fazer com que o programa nao crash quando introduzo letras num integer. aqui esta o parte onde crasha! repeat writeln('Qual é o valor do produto?'); Readln(ap^.preco); until (ap^.preco>=1);
  12. joaorebouta

    "Mini base de dados"

    O erro é que o identificador ' Acrescentar' nao foi declarado dentro do escopo de program Program Canoagem ; Type CanAtleta = Record Numero:Integer; Nome :String[25]; Idade: Integer; Sexo :Char; Escalao :String; Telefone :String[9]; End; Var Atleta :CanAtleta; Arquivo: file of CanAtleta; op:Char; Procedure ExibirMenu; Begin clrscr; Writeln(' Menu '); Writeln('1. InserirDados'); Writeln('2. Acrescentar'); Writeln('3. Listar'); Writeln('0. Exit'); Write('Digite a opçao desejada:'); repeat Read(op); Until (op = '0') or (op = '1') or (op = '2') or (op ='3'); End; Procedure InserirDados; Begin clrscr; Writeln(' Menu - Inserir Atleta'); Writeln; Write('Numero'); Readln(Atleta.Numero); Write('Nome'); Readln(Atleta.Nome); Write('Sexo'); Readln(Atleta.Sexo); Write('Escalão'); Readln(Atleta.Escalao); Write('Telefone'); Readln(Atleta.Telefone); Assign(Arquivo,'Atletas.dat'); Reset(Arquivo); If ioresult <> 0 then rewrite (arquivo); if filesize (arquivo) >0 then seek(Arquivo,FileSize(Arquivo)); write(Arquivo,Atleta); Close(Arquivo); End; Function ExisteFicheiro : Boolean; Procedure Acrescentar; Var N,i: Integer; Begin Writeln('Acrescentar Atleta'); If ExisteFicheiro Then Reset (Arquivo) Else Rewrite(Arquivo); Write('Quantos atletas quer acrescentar'); Read(N); Seek(Arquivo,FileSize(Arquivo)); For i:=1 to N do Begin Write('Numero'); Read(Atleta.Numero); Write('Nome'); Read(Atleta.Nome); Write('Idade'); Read(Atleta.Idade); Write('Sexo'); Read(Atleta.Sexo); Write('Escalao'); Read(Atleta.Escalao); Write('Telefone'); Read(Atleta.Telefone); Write (Arquivo,Atleta); End; Close (Arquivo); End; Begin Assign (Arquivo,'Atleta.dat'); {$I-}; Reset(Arquivo); Close(Arquivo); {$I+}; ExisteFicheiro := (IoResult=0); End; Procedure Listar; Var ExisteFicheiro: boolean; Begin Clrscr; If Not ExisteFicheiro Then Begin Writeln('Ficheiro inexistente'); Write('Tecla Enter para Menu'); Readln; End Else Begin Reset(Arquivo); Writeln('Listar registos'); Write('Registos no ficheiro: '); Writeln(FileSize(Arquivo)); Writeln; While Not Eof (Arquivo) Do Begin Read(Arquivo, Atleta); Write(Atleta.Numero); Write(Atleta.Nome); Write(Atleta.Idade); Write(Atleta.Sexo); Write(Atleta.Escalao); Write(Atleta.Telefone); End; Close(Arquivo); Writeln('Tecla Enter para o Menu'); Readln; End; End; Begin Repeat ExibirMenu; Case Op Of '1' :InserirDados; '2' :Acrescentar; '3' :Listar; '0' :Exit else Writeln('Opcao Invalida'); End; Until Op = '0'
  13. dtenente

    Mini Base de Dados

    Boa noite, eu estou de volta de um programa a uns dias que parece que quando dou um passo para a frente dou dois para trás... Alguém me pode ajudar a organizar os pensamentos para conseguir saber o que tenho de fazer? Este é o enunciado: Elabore um programa que permita efectuar a gestão de sócios de uma colectividade desportiva. Esta colectividade disponibiliza 3 modalidades para os sócios: natação, ténis e golf. Para cada sócio são necessários os seguintes dados:  Número de sócio;  Nome;  Ano de nascimento;  Sexo;  Telemóvel;  Ano de admissão na coletividade;  Modalidade. A inserção dos sócios deverá ser feita mediante a modalidade, ou seja, terá que haver um ficheiro para cada modalidade. O programa deverá apresentar um menu de opções ao utilizador. Neste programa deverá ser possível efectuar:  Inserção de um novo sócio;  Validação dos dados inseridos para o campo Sexo, ou seja só será possível inserir M ou F;  Acrescentar sócios;  Listar sócios (dar a opção ao utilizador da modalidade que pretende listar);  Actualizar os dados pessoais;  Pesquisar sócios a partir do nome;  Perguntar ao utilizador qual a modalidade que pretende visualizar e mostrar toda a informação no ecrã;  Eliminar um sócio;  Todo o tipo de opções que ajudem ao bom funcionamento do programa! Obrigado pela atenção!
  14. Marcos Vinícius

    Goto e Label não são suportados - Pascal no Android

    Olá, estou com um problema com meu compilador Pascal, sou novo na área da programação e perdi meu notebook recentemente, mas, como eu queria muito usar o programa para testar meus conhecimentos eu pensei em procurar por aplicativos para utilizar o programa no celular, e encontrei, mas, por ser feito no celular, aparecem alguns erros que não apareceriam se fosse testado no computador. Preciso de ajuda! Estou tendo problemas para usar os comandos goto e label, pois o compilador (Pascal Gui) sempre diz que estes não são suportados. Deixarei o código de um programa simples que eu estava fazendo e a mensagem que aparece quando executo ou compilo o programa. O objetivo é fazer com que toda vez que apertar qualquer tecla o writeln seja ativado para dizer Ok. Se descobrirem algo sobre como usar o Pascal no Android, mais relatos sobre isso, por favor, informe aqui, e se puder e souber como resolver o meu problema, desde já agradeço. Ps: Em breve poderão vir novas perguntas. {O programa} program IrPara; uses crt; label C; begin C: writeln('Ok'); readkey; goto C; end. {O erro} temp.pas(3,7) Error: GOTO and LABEL are not supported (use switch - Sg) temp.pas(8,2) Error: GOTO and LABEL are not supported (use switch - Sg) temp.pas(9,4) Fatal: There were 2 errors compiling module, stopping Fatal: Compilation aborted
  15. Wenderson Lisboa

    [Resolvido] Erro SIGSEGV Lazarus 1.8.4

    Boa tarde, estou com um grande problema, construi um pequeno programa e quando rodo o mesmo acontece o seguinte erro: "CAD USER elevou classe exceção 'External: SIGSEGV' . Por favor me ajudem a descobrir o que posso fazer. De já agradeço todos que se empenharam solucionar esse problema.
  16. Tonecas

    Erro sintático '2' não esperado!

    Boas, Gostava que me ajudassem a resolver este erro que está ocorrer no Pascal🙏 Eu estou a tentar criar uma calculadora em pascal só que quando eu executo o programa dá me o erro "Erro sintático '2' não esperado" Eis o programa: Program Calculadora; Var x,y,op: integer; resultado: real; Begin Writeln('== CALCULADORA =='); Writeln('Introduza o primeiro número:'); Readln(x); Writeln('Introduza o segundo número:'); Readln(y); Writeln('Escolha uma das opções:'); Writeln('1 - Soma'); Writeln('2 - Diferença'); Writeln('3 - Produto'); Writeln('4 - Divisão'); Writeln('Introduza a operação:'); Readln(op); Case op of 1: resultado:=x+y; Writeln('A soma dos dois números é:',resultado) 2: resultado:=x-y; Writeln(' A diferença entre os dois números é: ', resultado); 3: resultado:=x*y; Writeln('O produto dos dois números é:', resultado); 4: resultado:=x/y; Writeln('A divisão dos dois números é:', resultado); Else Writeln('Opção inválida!'); End; End. PS: Se eu puser ";" no final da linha 19 ["Writeln('A soma dos dois números é:',resultado)"] o Pascal dá o seguinte erro: Erro sintático ";" não esperado!
  17. Yamix

    Conjuntos/Set

    Olá! Poucas horas atrás, estava procurando por alguns conteúdos que ainda desconheço, e cheguei aos Conjuntos/Set. Li e re-li sobre, (não entendo as diferenças exatas, quando devo usar cada um e tals.. perdoe-me minha lerdeza' .. hahah), e como de costume estou tentando aplicar o que estou aprendendo. Enfim, cheguei nesse problema: Const MovC = ['W']; MovB = ['S']; MovE = ['E']; MovD = ['D']; Movimentos = [MovC, MovB, MovE, MovD]; Perdoe-me, se meu problema for algo muito besta, mas estou tentando criar um conjunto que recebe dentro dele outros conjuntos. Por gentileza, poderia guiar-me? Obs: Por agora, esses conjuntos possuem apenas um elemento, mas depois serão adicionados outros em cada um.
  18. thoga31

    [Debate] Qual o futuro do Pascal e do Delphi?

    Vou fazer uma coisa que já não vejo há anos aqui no P@P: lançar um debate (ou pelo menos tentar 😐). Há quem diga que Pascal é uma linguagem morta, e alguns dos que apoiam esta frase incluem Delphi na sua opinião. Os maiores users destas linguagens no mundo estão em Portugal e no Brasil. Apesar de haver mais de 200 milhões de pessoas entre os dois países, apenas uma gota de nós programa na linguagem. As linguagens Pascal e Delphi terão futuro a médio e a longo prazo? O que poderá acontecer? Como poderá acontecer? Fica a ideia para um debate saudável. Todos nós aqui sabemos que Pascal e Delphi são potentes - Delphi então é das linguagens mais potentes da actualidade. Estando isso definido à partida, deixo o debate lançado Cumprimentos!
  19. Yamix

    Simular Objetos/Re-uso de Código?

    É possível simular (ou imitar) objetos no Pascal bordland? Pensei em criar um tipo de dado registro que guardaria os atributos, por exemplo, de um carro e após isso criar os métodos para ele, mesmo que fossem globais. É possivel fazer o re-uso de código também? Eu creio que sim, mas seria talvez, meio que uma gambiarra.. Desculpa-me por fazer essas perguntas assim.. Estou farto dos meus colegas de faculdade tratarem Pascal como se não fosse nada e Java como se fosse mil maravilhas.. o engraçado é que nunca programaram uma linha em Pascal e querem dar opnião.. típico de programador Java.. Isso que acontece, quando, ao invez de ensinar o básico aos iniciantes, já começam ensinando Java.
  20. Boas, ppl! Já vi que já há um post sobre a tabela de ASCII, com um programa. Contudo, eu criei um programa que nos diz o valor na tabela de ASCII de cada tecla, o que nos permite, depois, utilizar em menus, por exemplo, teclas como as F (F1, F2...), ESC, etc, que não aparecem directamente no programa que já cá foi postado. Deixo aqui o meu código, espero que seja útil. program ascii; uses crt; var tecla:char; Begin writeln('Prima tecla. ENTER para sair.'); writeln('NOTA: ENTER e a tecla #13.'); writeln('O resultado aparece sob a forma: caracter > #numero'); writeln; repeat tecla:=readkey; writeln( char(tecla) , ' > ', ord(tecla) ); until (tecla=#13); End. Esta é uma de algumas ferramentas que eu criei e que facilitam o meu trabalho na programação. Também poderá ser útil para outras linguagens. Cumpz.
  21. Cruzuto

    Programa não repete

    Boas pessoal, tou aqui num impasse. É assim eu fiz um programa e quero que esse programa repita mas não está a repetir não sei porquê... Aqui está o programa: Program SSMD ; var a,b,resp:real; c:char; d:string; Begin d:='Sim'; d:='s'; Repeat; Writeln('Escreva um número.'); Read(a); Writeln('Escreva outro número.'); Read(b); Writeln('Deseja somar (+), subtrair (-), dividir (/) ou multiplicar (*)?'); Read(c); If c='+' then begin resp:=a+b end else if c='-' then begin resp:=a-b end else if c='/' then begin resp:=a/b end else if c='*' then begin resp:=a*b end; Writeln('O seu resultado é: ',resp); Writeln('Deseja repetir? Sim ou Não'); Read(d); Until (( d<>'Sim') or (d<>'s')); If d='N' then begin Writeln('Adeus fraco') end; End. Espero pela ajuda, obrigado (:
  22. Roberto Duha

    Separar conteúdo de arquivo HTM com Pascal

    Olá! Meu conhecimento em Pascal pode ser considerado básico. E não consigo escrever uma solução para o problema abaixo: No site da Caixa, disponibilizam os resultados (todos eles) de todas as loterias. Ele vem em formato HTM. Para a Megasena, é uma tabela mostrando nas linhas todos os resultados com informações diversas distribuidas pelas colunas. Cada linha um resultado e nas 21 colunas (Megasena) , informações pertinentes ao próprio. Preciso colocar num arquivo texto sequencial a informação de cada uma dessas 21 colunas de todos os sorteios já realizados. O arquivo baixado da Caixa, possui um trecho inutil no começo e outro no final. A parte central tem o que nos interessa, com HTM uniforme que se repete em todas as linhas dos sorteios. Problema que ele não tem marcação de final de linha..... quando mando ler uma linha, ele tenta ler o arquivo todo (1.2Mb) e dá erro de execução. Foi o que conclui. Trecho que interessa: <tr> <td rowspan="1">1</td> <td rowspan="1">11/03/1996</td> <td rowspan="1">41</td> <td rowspan="1">05</td> <td rowspan="1">04</td> <td rowspan="1">52</td> <td rowspan="1">30</td> <td rowspan="1">33</td> <td rowspan="1">0,00</td> <td rowspan="1">0</td> <td rowspan="1">&nbsp</td><td rowspan="1">&nbsp</td> <td rowspan="1">0,00</td> <td rowspan="1">17</td> <td rowspan="1">39.158,92</td> <td rowspan="1">2016</td> <td rowspan="1">330,21</td> <td rowspan="1">SIM</td> <td rowspan="1">1.714.650,23</td> <td rowspan="1">0,00</td> <td rowspan="1">0,00</td></tr> São (hoje) 2065 resultados da Megasena e logo, 2065 trechos desses. Podem me dar alguma dica do caminho a seguir? Tem que ser em Pascal. Uso o Lazarus. Vou publicando aqui o desenrolar. Abraço à todos e grato pela atenção.
  23. Sempre me perguntei: Como receber o valor que eu quero independente da "posição em que as letras estejam"... Ex: [...] //em vez de fazer isto: case A of 'Sim' : Initial; 'sIM' : Initial; 'SIM' : Initial; 'sim' : Initial; 'sIm' : Initial; [...] end; //Como faço, pra indepentende da "posição das letras", eu receber o mesmo valor? Espero respostas obrigado desde já! B.H.A.M.F, 31/05/2018 | 13:22 (Horário de Brasília)
  24. BHAMF

    Criptografia: copiar para arquivo

    Estava aqui, tentando colocar a criptografia de MD5 num arquivo, mas, ao compilar, dá um erro: Can't read or write variables of this type (não se pode ser ou escrever variáveis deste tipo). Mas, então, como consigo escrever em um arquivo? Eis o código:  program teste md5; uses md5; begin assign(t,'cad1.vlna'); rewrite(t); append(t); write(t,MDString('Senha1', MD_Version_5)); close(t); end. Já fiz outros teste, mas só consigo verificar a senha dentro da própria memória: program testMD5; uses md5, Crt;  procedure telaDeEntrada; var senha : string; hash1 : TMDDigest; hash2 : TMDDigest; senha2 : string; begin clrscr; write('Digite uma senha | >:'); readln(senha); hash1:= MDString(senha, MD_VERSION_5); writeln; write('Senha ', senha, ' armazenada como: ', MDPrint(hash1)); writeln; write('Agora redigite-a. | >: '); readln(senha2);  hash2:= MDString(senha2, MD_VERSION_5); if (MDMatch(hash1, hash2) = true) then begin writeln; write('Senha 1:', senha, ' hash1: ', MDPrint(hash1)); writeln; write('Senha 2:', senha2, ' hash2: ', MDPrint(hash2)); writeln; writeln('Acesso concedido'); readln; end else begin writeln; write('Senha 1:', senha, ' hash1: ', MDPrint(hash1)); writeln; write('Senha 2:', senha2, ' hash2: ', MDPrint(hash2)); writeln; writeln('Acesso negado'); readln; end; end; begin telaDeEntrada; end. Preciso inserir a hash no arquivo e depois verificar se a hash coincide com o que foi digitado. Mas não estou conseguindo inserir pelo erro que deu... Peço ajuda a vocês... Fico agradecido desde já! B.H.A.M.F. 23/06/2018 | 12:58 (Horário de Brasília)
  25. Uma dúvida CRUEL que não consigo resolver. Há algum comando para listar arquivos e pastas na tela e exibi-las na consola?
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.