Lukas S. Posted June 21, 2012 at 09:08 PM Report Share #464742 Posted June 21, 2012 at 09:08 PM Boa noite a todos os que ainda estão acordados ... Estou a usar pascal neste momento para fazer um exame e só agora que deparei que vai calhar também arrays... alguém sabe de forma simples e sem complicar muito explicar : Definição de Array como variável; Declaração e manipulação de Arrays; Eu sei que foi muito mau chegar aqui e pedir isto mas é que nimguem sabia e uma colega nossa avisou precisamente depois do jogo de Portugal vs Republica Checa E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
pmg Posted June 21, 2012 at 09:16 PM Report Share #464745 Posted June 21, 2012 at 09:16 PM (edited) Para coisas gerais, a Wikipedia costuma ter artigos simpaticos: o artigo sobre arrays nao e excepcao 🙂 Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Para declarares um array com capacidade para 5 inteiros usa a sintaxe seguinte: myarray : array [1 .. 5] of Integer; Para atribuires um valor ao terceiro elemento, faz assim: myarray[3] := 42; Para usares o valor de um elemento do array, usa a mesma sintaxe como para atribuicao writeln("valor do segundo elemento: ", myarray[2]); Edited June 21, 2012 at 10:13 PM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 21, 2012 at 09:20 PM Author Report Share #464747 Posted June 21, 2012 at 09:20 PM (edited) obrigado pmg mas eu já tinha visto isso e sei o que é um array ...Em pascal não sei como fazer nem como aplicar... Podes explicar melhor ? ... confirma-me só uma coisa ... nos objectivos do exame tenho aqui também Conhecer o conceito de string e saber como pode ser manipulada... Isto signfica do tipo ' Para o PascalZim Program Lucas Var Texto:String; begin Writeln('Olá.Qual o teu nome?') readln(lucas) End será isto manipular a string ? duvido .... Eu sou de visual basic .net e não precisamos nada disto .... só declarar as variaveis normalmente e dizer Lucas=textbox1.txt Edited June 21, 2012 at 09:21 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
pmg Posted June 21, 2012 at 09:27 PM Report Share #464752 Posted June 21, 2012 at 09:27 PM obrigado pmg ... Podes explicar melhor ? Eu alterei a minha resposta para incluir exemplos de uso de arrays. Ve la se agora ficas mais elucidado. Conhecer o conceito de string e saber como pode ser manipulada No teu exemplo declaras a variavel Texto, mas depois queres meter um valor na variavel Lucas ... que nao declaraste! Tens de declarar tudo! What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
thoga31 Posted June 21, 2012 at 09:40 PM Report Share #464757 Posted June 21, 2012 at 09:40 PM (edited) Os maus vícios de VB.NET, minha nossa... Depois é misturar alhos e bugalhos e dá estrume... Um tutorial de Pascal em PDF, da minha autoria: https://www.portugal-a-programar.pt/files/file/6-tutorial-de-pascal/ Eu gostaria de saber como vais fazer um teste quando nem entendes a base das bases... esse teu exemplo de programa sucks, desculpa a frontalidade. Então mas tu declaras a variável Texto e não a usas, e quando usas uma variável é uma que não está declarada? Isso não é manipulação de string: na realidade, não é nada em Pascal! O @pmg já deu as indicações-base. Se sai arrays no teste, significa que deste arrays nas aulas. O que deste e o que sabes, comecemos por aí. Edited June 21, 2012 at 09:41 PM by thoga31 Knowledge is free! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 21, 2012 at 09:42 PM Author Report Share #464758 Posted June 21, 2012 at 09:42 PM (edited) Nãoo demos thoga a falar asério ... Nós nas aulas tinhamos um professor que não ensinava nada e permitia jogar jogos e toda gente jogava ... Este ano apanhámos um professor mais rigoroso e pronto não sabemos nada .... opá e preciso mesmo disto ... eu sei arrays em visual basic .net agora em pascal ? Esquece ... Vou estudar aquilo que fizeste em pdf e penso que saberei muito mais de arrays ... já fiz download 😉 Edited June 21, 2012 at 09:47 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
nunopicado Posted June 21, 2012 at 09:49 PM Report Share #464760 Posted June 21, 2012 at 09:49 PM (edited) Tens essa informação toda bem explicada no tutorial de Pascal do Thoga31, aqui mesmo no forum: http://wiki.portugal-a-programar.pt/dev_geral:pascal:tutorial_2010:indice Em resumo: Arrays - Declaração: var NomeArray: Array [1..5] of Integer; // Dentro de parentesis rectos, deves meter o índice inferior. Segue-se o operado "até" (..) e depois o índice superior. // Logo de seguida, a palavra chave "of" e depois o tipo de dados a que pertencem os valores do array. Para o usares, é como disse o pmg, metes o nome do array seguido da posição que pretendes dentro de parentesis rectos. NomeArray[1] := 513; Writeln(NomeArray[1]); Quanto às strings, vais-me desculpar mas não há linguagem nenhuma de nivel alto ou intermédio que não tenha manipulação de strings. O que te está a falhar não é o como, mas o conceito. Sabendo que uma string é uma variável que guarda uma cadeia de caracteres, tens por exemplo: var Nome:String; begin Write('Indique o nome e apelido: '); Readln(Nome); if Nome='Lucas Poborski' then writeln('Olá ',Nome,'!') else Writeln('Não te conheço ',Nome,', bem vindo!'); Writeln('O teu apelido é ',Copy(Nome,pos(' ',Nome)+1,999),' não é?'); end. Ou seja, pegares numa string e tratares a informação que ela tem, seja retirando dela partes de que precisas, ou adicionando outras partes, apagando ainda outras... Ou seja, manipulares a informação (texto) que lá estiver. Mais uma vez, o tutorial do Thoga explica isso tudo, mas faz assim: esquece o que pensas que sabes, e procura estudar a linguagem com olhos de quem está mesmo a aprender. Vais ver que é facílimo! PS: Como exercicio, tenta explicar o que faz este programinha que pus em cima... Não pus comentários de proposito, tenta raciocinar e ver o que ele faz! Edited June 21, 2012 at 09:50 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...
Lukas S. Posted June 21, 2012 at 09:55 PM Author Report Share #464763 Posted June 21, 2012 at 09:55 PM Muito obrigado a todos que responderam... Fui muito burro em ter confundido isto tudo e com os nervos atão e só de lembrar que vamos ter duas linguagens no exame baralha tudo ... Desculpem mais uma vez e OBRIGADO a todos que responderam a minha noobice autentica Quanto às strings, vais-me desculpar mas não há linguagem nenhuma de nivel alto ou intermédio que não tenha manipulação de strings. O que te está a falhar não é o como, mas o conceito. Sabendo que uma string é uma variável que guarda uma cadeia de caracteres, tens por exemplo: Writeln('O teu apelido é ',Copy(Nome,pos(' ',Nome)+1,999),' não é?'); Ou seja, pegares numa string e tratares a informação que ela tem, seja retirando dela partes de que precisas, ou adicionando outras partes, apagando ainda outras... Ou seja, manipulares a informação (texto) que lá estiver. PS: Como exercicio, tenta explicar o que faz este programinha que pus em cima... Não pus comentários de proposito, tenta raciocinar e ver o que ele faz! Explica-me uma coisa aqui : Copy(Nome,pos(' ',Nome)+1,999),' não é?'); Poderá explicar aqui o que representa este resto de comando ? o porque de tar ali 1,999 E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
pwseo Posted June 21, 2012 at 10:00 PM Report Share #464766 Posted June 21, 2012 at 10:00 PM São na realidade dois números diferentes: 1, 999. Lembra-te que em Pascal o separador decimal é o ponto, sendo a vírgula utilizada para separar parâmetros que passas a funções. Agora resta-te inspeccionar alguma documentação da função copy() para perceberes o porquê dos parâmetros que o nunopicado utilizou. Link to comment Share on other sites More sharing options...
Lukas S. Posted June 21, 2012 at 10:09 PM Author Report Share #464774 Posted June 21, 2012 at 10:09 PM (edited) Oqueijo 😄 .... Uma duvida ... tentei fazer um array sem ver e mecher no resto .... alguém sabe dizer porque dá erro na linha 9 o erro é ->" não esperado. Program EquipaDeFutebol ; var numerodejogadores,i:integer; var calcadojogadores :array[1..numerodejogadores] of integer; Begin Writeln('Quantos jogadores tem a equipa ?') ; readln(numerodejogadores) ; for i:=0 to numerodejogadores do begin Writeln('Qual o numero de calcado dos jogadores?'); writeln (calcadojogadores[0..numerodejogadores]) ; End ; Writeln(' Os calçados dos jogadores são:',calcadojogadores[1..numerodejogadores]) ; End. Edited June 21, 2012 at 10:17 PM by thoga31 GeSHi E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
thoga31 Posted June 21, 2012 at 10:18 PM Report Share #464778 Posted June 21, 2012 at 10:18 PM Não podes declarar o limite de um array através de uma variável, só através de uma constante. CONST NumJog = 10; var Jog : array [1..NumJog] of integer; Knowledge is free! Link to comment Share on other sites More sharing options...
nunopicado Posted June 21, 2012 at 10:20 PM Report Share #464780 Posted June 21, 2012 at 10:20 PM E alem disso, quando usas o array, só lhe podes dizer o numero da posição que queres. O .. só usas na declaração. "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...
Lukas S. Posted June 21, 2012 at 10:28 PM Author Report Share #464786 Posted June 21, 2012 at 10:28 PM Então em Pascal é obrigatório saber o fim ? E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
nunopicado Posted June 21, 2012 at 10:32 PM Report Share #464789 Posted June 21, 2012 at 10:32 PM Existe algo chamado arrays dinâmicos. Mas isso implica ponteiros, e parece-me que nesta fase não deves pensar nisso. Cria um array com um limite acima do que é necessário, e depois usas as posições que precisares. "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...
Lukas S. Posted June 21, 2012 at 10:35 PM Author Report Share #464792 Posted June 21, 2012 at 10:35 PM (edited) Program NotasArray; Var i:integer; Notas:Array[1..11] of Integer; Begin For i:= 1 to 11 do Begin Write('Introduza as notas'); Read (Notas[i]); End; End. Edited June 21, 2012 at 10:39 PM by thoga31 E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
thoga31 Posted June 21, 2012 at 10:35 PM Report Share #464793 Posted June 21, 2012 at 10:35 PM (edited) Então em Pascal é obrigatório saber o fim ? Tens de perceber que VB.NET é um ninho de más práticas. Esquece o ReDim ou o Array.Resize! Em Pascal tudo é declarado com os devidos limites. Um array tem um início e tem um fim. Como o @nunopicado disse, há os dinâmicos, mas esses são complexos, e para os usar mais valem as listas ligadas. E usa as tags Code, sff... Edited June 21, 2012 at 10:36 PM by thoga31 Knowledge is free! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 21, 2012 at 10:37 PM Author Report Share #464795 Posted June 21, 2012 at 10:37 PM Por exemplo poderia dar para fazer o seguinte vou só mostrar a pratica Não liguem para a estrutura vou por tipo algoritmo Numero de jogadores na equipa ? Readln(Jogadores) Agora o array era de 1..Jogadores 'sendo que na variável estaria o valor que eu queria no final seria um array bi-dimensional não ? E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
thoga31 Posted June 21, 2012 at 10:41 PM Report Share #464797 Posted June 21, 2012 at 10:41 PM Não. Tu estás a tentar controlar o tamanho do array, e isso seria um dinâmico, o qual, por mais que tentes, nem o vais arranhar com os conhecimentos que tens. Como o @nunopicado disse, tens de definir um array com um tamanho específico, e depois trabalhas só com o que precisares. Por exemplo, crias um array de 100 elementos, e depois perguntas o nº de jogadores com a condição de ser só até 100. Depois, conforme o nº, trabalhas só com esses elementos do array. Knowledge is free! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 21, 2012 at 10:43 PM Author Report Share #464799 Posted June 21, 2012 at 10:43 PM (edited) Calma thoga eu sei q não tenho conhecimentos mas espero obter-los e estou a esforçar por isso... Obrigado por explicares a duvida 😉 Já agora ótimo pdf... Muito boa matéria Edited June 21, 2012 at 10:45 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
thoga31 Posted June 21, 2012 at 10:45 PM Report Share #464800 Posted June 21, 2012 at 10:45 PM Calma thoga eu sei q não tenho conhecimentos Eu estou "calmo". Apenas disse que não vais conseguir arranhar os dinâmicos porque, de facto, são complexos. Antes desses, tens de aprender convenientemente os estáticos. mas espero obter-los e estou a esforçar por isso... A jogar nas aulas... Knowledge is free! 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