leatavsan Posted January 4, 2016 at 05:25 PM Report Share #591315 Posted January 4, 2016 at 05:25 PM Boa tarde, Pretendo criar um programa em Free Pascal em que use vários tipos de variáveis, estruturas de repetição, etc. No projeto pretendo ter variaveis do tipo string, char, integer, real. Pretendo usar a estrutura de seleção case Pretendo utilizar as estruturas de repetição: for, while e/ou repeat Pretendo ainda utilizar arrays (unidimensionais e/ou bidimensionais) Precisava que alguém me desse ideias para projeto. Não quero códigos, nem nada do género. Apenas queria ideias. Alguém me pode ajudar nisso? Desde já obrigado Link to comment Share on other sites More sharing options...
thoga31 Posted January 4, 2016 at 05:28 PM Report Share #591317 Posted January 4, 2016 at 05:28 PM (edited) Para que áreas preferias programar? ...Gestão? Matemática?... Edited January 4, 2016 at 05:30 PM by thoga31 Knowledge is free! Link to comment Share on other sites More sharing options...
leatavsan Posted January 4, 2016 at 05:31 PM Author Report Share #591318 Posted January 4, 2016 at 05:31 PM (edited) Para que áreas preferias programar? ...Gestão? Matemática?... De momento estou completamente aberto a sugestões. O projeto que pretendo fazer não é para demorar 1 hora e pronto. Pretendo que tenha alguma complexidade dentro do que descrevi em cima. A extensão do programa é irrelevante neste momento. Relativamente à área, visto que ainda não tenho um tema, poderá ser qualquer uma Edited January 4, 2016 at 05:50 PM by leatavsan Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 4, 2016 at 05:39 PM Report Share #591319 Posted January 4, 2016 at 05:39 PM máquina calculadora gráfica existem muitas, mas se é para aprender, diverte-te IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
leatavsan Posted January 4, 2016 at 05:43 PM Author Report Share #591321 Posted January 4, 2016 at 05:43 PM máquina calculadora gráfica existem muitas, mas se é para aprender, diverte-te era uma boa ideia, mas ainda não aprendi a utilizar as livrarias disponíveis. a única que já aprendi foi a livraria crt, por isso pretendo uma ideia um pouco diferente, mas obrigado na mesma Link to comment Share on other sites More sharing options...
nunopicado Posted January 4, 2016 at 06:05 PM Report Share #591322 Posted January 4, 2016 at 06:05 PM Para te dar ideias, precisamos saber um pouco mais sobre o que já aprendeste. Por exemplo, destes, o que já aprendeste? Arrays Records Ficheiros "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 4, 2016 at 06:19 PM Author Report Share #591324 Posted January 4, 2016 at 06:19 PM (edited) Para te dar ideias, precisamos saber um pouco mais sobre o que já aprendeste. Por exemplo, destes, o que já aprendeste? Arrays Records Ficheiros Além de tudo o que referi no início sei utilizar funções e procedimentos. Edited January 4, 2016 at 06:20 PM by leatavsan Link to comment Share on other sites More sharing options...
nunopicado Posted January 4, 2016 at 06:27 PM Report Share #591328 Posted January 4, 2016 at 06:27 PM Arrays Records Ficheiros E destes três nada? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 4, 2016 at 06:33 PM Author Report Share #591330 Posted January 4, 2016 at 06:33 PM E destes três nada? Sei os arrays Link to comment Share on other sites More sharing options...
nunopicado Posted January 4, 2016 at 06:45 PM Report Share #591332 Posted January 4, 2016 at 06:45 PM (edited) Nesse caso, e visto que é um projecto para fazer "com calma", eu sugeria-te o seguinte: Fazer uma agenda de contactos. Isto requer: * Variáveis de vários tipos (nome, idade, etc) * case (controle de setas (teclas), por exemplo) * Vários tipos de loop (repeat para o menu, for ou while para percorrer a lista, etc) * procedimentos e funções * records (ainda que não os tenhas já aprendido, são muito fáceis, e é fácil aprenderes - além de mostrares ao professor que tens vontade de aprender mais) É necessário ainda para este projecto uma de duas coisas: Arrays ou Ficheiros Com Arrays, toda a estrutura da agenda pode funcionar, mas nada é gravado em disco, ou seja, muito interessante a nível teórico, nem tanto a nível prático. Com ficheiros, fica tudo gravado em disco, e se o fizeres com atenção, é um programa que pode ser depois usado na prática. Sei que também não deste ficheiros. Estes já são um pouco mais complexos do que os records, mas não são difíceis se quiseres aprender. Nesta linha de ideias podes fazer também outras coisas, base de dados de filmes/jogos/livros, calendário de jogos desportivos, tabela de notas escolares, calendário de testes, etc. No fundo, pensa em algo que te desse jeito usar em casa, e depois procura implementar isso. Edited January 4, 2016 at 06:46 PM by nunopicado "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 4, 2016 at 07:01 PM Author Report Share #591333 Posted January 4, 2016 at 07:01 PM Obrigado pela sugestão, relativamente ao record não sei a estrutura dele... E sei perfeitamente que todo o programa ficaria melhor com um record, para não ter que voltar a introduzir tudo sempre que abro o programa... Seria uma boa ideia é estou a ponderar fazer isso. Mas para seguir com isto para a frente seria bom saber fazer record dos dados introduzidos. Pode me dar algum site com um tutorial ou algo do género sobre record? Só para ficar com umas luzes em relação a isso Link to comment Share on other sites More sharing options...
nunopicado Posted January 4, 2016 at 10:27 PM Report Share #591346 Posted January 4, 2016 at 10:27 PM Obrigado pela sugestão, relativamente ao record não sei a estrutura dele... E sei perfeitamente que todo o programa ficaria melhor com um record, para não ter que voltar a introduzir tudo sempre que abro o programa... Seria uma boa ideia é estou a ponderar fazer isso. Mas para seguir com isto para a frente seria bom saber fazer record dos dados introduzidos. Pode me dar algum site com um tutorial ou algo do género sobre record? Só para ficar com umas luzes em relação a isso Tens aqui mesmo no forum um excelente tutorial sobre Pascal, em que aprofunda esses detalhes: http://www.portugal-a-programar.pt/files/file/6-tutorial-de-pascal/ Em jeito de resumo, um record é uma forma de agrupar várias variáveis de tipos diferentes sob um mesmo identificador, ou uma mesma variável, se preferires. Por exemplo: var Pessoa: Record // A variável Pessoa é do tipo Record, e tem 4 campos: Nome, Idade, Salario e Sexo Nome : String; Idade : Integer; Salario : Real; Sexo : Char; end; begin Pessoa.Nome := 'Nuno Picado'; Pessoa.Idade := 38; Pessoa.Salario := 100000; // Era bom Pessoa.Sexo := 'M'; Para aceder a cada campo, usa-se o nome da variável do tipo Record (Pessoa), e o caracter '.' (ponto) a separar do nome do campo, conforme o exemplo. Isto quer dizer que a variável Pessoa vai reunir num só identificador todos os dados dessa pessoa, o que é muito útil em programas que trabalhem (ou simulem) com uma base de dados. Uma variável destas, só por si, não chega para fazeres uma agenda. Só guarda o nome de uma pessoa. Mas se for usada em conjunto com os arrays, podes numa só variável ter toda a base de dados, e assim consegues percorrer todas as informações de todas as pessoas facilmente. Claro que, melhor que o array, é usar ficheiros, que assim fica tudo guardadinho no disco (no tutorial também lá está como trabalhar com ficheiros de texto. Para este caso, ficheiros tipados, ou seja, ficheiros que guardam directamente os records, são a melhor opção. Se optares por isso, podemos depois explicar-te o funcionamento). Mas já agora, mais uma coisa. Dei-te o exemplo de como definir um record directamente na variável. Mas é comum teres de usar a mesma definição em mais do que um local, e não fazia sentido estares sempre a declarar todos os campos do record, até porque te podias esquecer de algo ao alterar num lado, e depois falhar do outro. O melhor para isto é criares um tipo de dados, conforme o exemplo: type TPessoa = Record // A variável Pessoa é do tipo Record, e tem 4 campos: Nome, Idade, Salario e Sexo Nome : String; Idade : Integer; Salario : Real; Sexo : Char; end; var Pessoa: TPessoa; begin Pessoa.Nome := 'Nuno Picado'; Pessoa.Idade := 38; Pessoa.Salario := 100000; // Era bom Pessoa.Sexo := 'M'; Assim, em qualquer lado onde precisares declarar uma variável para usar a mesma estrutura record, basta dizer que é do tipo TPessoa, e fica tudo certo. 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 5, 2016 at 08:47 AM Author Report Share #591385 Posted January 5, 2016 at 08:47 AM muito obrigado 🙂 fiquei bastante esclarecido, daqui por algum tempo talvez virei aqui para esclarecer alguma duvida 🙂 type TPessoa = Record // A variável Pessoa é do tipo Record, e tem 4 campos: Nome, Idade, Salario e Sexo Nome : String; Idade : Integer; Salario : Real; Sexo : Char; end; var Pessoa: TPessoa; begin Pessoa.Nome := 'Nuno Picado'; Pessoa.Idade := 38; Pessoa.Salario := 100000; // Era bom Pessoa.Sexo := 'M'; Por exemplo, além dessas variáveis por exemplo, se eu queria adicionar a data de nascimento em que a data de nascimento seria um record que teria as variáveis dia, e ano do tipo integer e mês do tipo string. É possível fazer este record dentro do record TPessoa? Link to comment Share on other sites More sharing options...
nunopicado Posted January 5, 2016 at 01:08 PM Report Share #591398 Posted January 5, 2016 at 01:08 PM Sim, podes encadear sem problemas. Podes declarar um record dentro de outro, ou podes, de preferência, criar um tipo para a idade e usar depois dentro do tipo TPessoa. type TData = Record Ano: Integer; Mes: Integer; Dia: Integer; end; TPessoa = Record Nome : String; Nascimento : TData; Salario : Real; Sexo : Char; end; var Pessoa: TPessoa; begin Pessoa.Nome := 'Nuno Picado'; Pessoa.Nascimento.Dia := 27; Pessoa.Nascimento.Mes := 7; Pessoa.Nascimento.Ano := 1977; Pessoa.Salario := 100000; // Era bom Pessoa.Sexo := 'M'; A título de curiosidade, se passarmos de Pascal para Object Pascal, podes até meter funções e procedimentos dentro de um record, como este: type TData = Record Ano: Integer; Mes: Integer; Dia: Integer; end; TPessoa = Record Nome : String; Nascimento : TData; Salario : Real; Sexo : Char; function Idade: Integer; end; var Pessoa: TPessoa; function TPessoa.Idade: Integer; begin // Calcula a idade da pessoa end; begin Pessoa.Nome := 'Nuno Picado'; Pessoa.Nascimento.Dia := 27; Pessoa.Nascimento.Mes := 7; Pessoa.Nascimento.Ano := 1977; Pessoa.Salario := 100000; // Era bom Pessoa.Sexo := 'M'; WriteLn ('Olá ',Pessoa.Nome,'. Tens ',Pessoa.Idade,' anos.'); Ao usar o Pessoa.Idade, a função é calculada e retorna imediatamente o seu valor como se fosse mais um campo do Record. Mas isto é mais à frente, não tens de te preocupar já com isso! 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 5, 2016 at 06:08 PM Author Report Share #591426 Posted January 5, 2016 at 06:08 PM muito obrigado pela ajuda! Tenho esclarecido bastantes dúvidas consigo! 🙂 só uma questão: Free-Pascal é uma linguagem, Object Pascal é outro tipo de linguagem? É que nunca tinha ouvido falar... Link to comment Share on other sites More sharing options...
nunopicado Posted January 5, 2016 at 06:43 PM Report Share #591427 Posted January 5, 2016 at 06:43 PM (edited) só uma questão: Free-Pascal é uma linguagem, Object Pascal é outro tipo de linguagem? É que nunca tinha ouvido falar... FreePascal não é uma linguagem. 🙂 FreePascal é um compilador que suporta as linguagens Pascal e Object Pascal. Object Pascal é uma derivação (ou evolução) da linguagem Pascal que implementa o paradigma de programação orientada a objectos, além do tradicional paradigma funcional encontrado no Pascal. Foi desenvolvida pela Apple entre 1985 e 1986 para programação para Mac, e mais tarde, em 1989, passou a estar disponível no Turbo Pascal 5.5, em MS-DOS. Hoje em dia, muitas das linguagens mais populares usam este paradigma, o que faz com que no que respeita ao Pascal, o Object Pascal seja o 'standard', suportado pelos principais compiladores, como o Delphi e o FreePascal. Tudo o que aprenderes em Pascal, ser-te-á útil quando e se deres o passo para Object Pascal, pelo que não tenhas medo de estares a perder tempo - não estás. Simplesmente, há mais possibilidades no Object Pascal, que a seu tempo poderás desfrutar. Uma delas é exactamente o uso de procedimentos e funções dentro de um record. Ao fazeres isso, estás efectivamente a usar o objecto 'Pessoa', que tem propriedades (campos do record) e pode fazer acções (métodos do record, no caso, a função Idade. À medida que a tua curiosidade te chame para esse lado, vais passando por cá que há sempre quem te tente ajudar a esclarecer dúvidas. 🙂 Edited January 5, 2016 at 06:58 PM by nunopicado "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 5, 2016 at 06:49 PM Author Report Share #591430 Posted January 5, 2016 at 06:49 PM obrigado pelo esclarecimento 🙂 Link to comment Share on other sites More sharing options...
nunopicado Posted January 5, 2016 at 07:01 PM Report Share #591431 Posted January 5, 2016 at 07:01 PM A estrutura Record, tão simples que é, e é na verdade a base de toda a extensão Object Pascal. Quem diria? 🙂 Em Object Pascal, os objectos todos que cries pertencem sempre a uma classe de objectos. E uma classe declara-se exactamente como um Record. Logo, é algo bastante útil de aprenderes! 🙂 Alguma dúvida, vai dizendo. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
leatavsan Posted January 5, 2016 at 07:27 PM Author Report Share #591432 Posted January 5, 2016 at 07:27 PM A estrutura Record, tão simples que é, e é na verdade a base de toda a extensão Object Pascal. Quem diria? 🙂 Em Object Pascal, os objectos todos que cries pertencem sempre a uma classe de objectos. E uma classe declara-se exactamente como um Record. Logo, é algo bastante útil de aprenderes! 🙂 Alguma dúvida, vai dizendo. Está bem, muito obrigado pela ajuda até agora!! Vai-me dar bastante jeito, agora tenho que pôr mãos à obra! 👍 Link to comment Share on other sites More sharing options...
nunopicado Posted January 5, 2016 at 07:58 PM Report Share #591433 Posted January 5, 2016 at 07:58 PM Força nisso... 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. 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