Lukas S. Posted June 27, 2012 at 11:24 AM Report Share #465905 Posted June 27, 2012 at 11:24 AM Bem , eu gostei do Pascal e tive uma nota boa no exame ( 15 , não foi assim tão mal para o que tinha estudado e que aqui ajudaram ) e decidi melhorar a nota a Estruturas de Dados Compostas uma vez que quero seguir universidade ... Tive a procurar no google e no proprio chm(manual de ajuda) do Pascalzim! e encontrei isto : Tipos Estruturados Os tipos de dados predefinidos podem ser organizados em tipos de dados complexos, denominados tipos estruturados. A linguagem Pascal oferece, basicamente, quatro destes tipos: Enumerações Ponteiros Registros Vetores A meu haver isto é estruturas de dados compostas mas no meio do meu estudo não percebi uma pergunta... Qual a vantagem da utilização de estruturas compostas? E alguém pode explicar-me como utilizar um Array de estruturas ? 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...
passarito Posted June 27, 2012 at 01:06 PM Report Share #465924 Posted June 27, 2012 at 01:06 PM (edited) Bom, vamos lá ver se percebes isto. Caso 1: Array do tipo record Type TRecord_Exemplo=record nome:string; idade:integer; end; Var VArray_Exemplo:Array [1..50] of TRecord_Exemplo; Begin {lê as introduções do utilizador para o registo da posição 5 do array} Readln(VArray_Exemplo[5].Nome); Readln(VArray_Exemplo[5].Idade); {lê as introduções do utilizador o registo de todas as posições 5 do array} For i:=1 to 50 do begin Readln(VArray_Exemplo[5].Nome); Readln(VArray_Exemplo[5].Idade); end; {Copia os valores do registo da posição 5 do array para o registo a posição 3} VArray_Exemplo[3]:=VArray_Exemplo[5]; {Copia o nome do registo da posição 5 do array para o nome do registo da posição 10} VArray_Exemplo[10].Nome:=VArray_Exemplo[5].Nome; End. Caso2 : Record com campo tipo array Type TRec_Ex=record ... valor_mes:array [1..12] of ; end; Var VRE:TRec_Ex; Begin {lê introdução do utilizador para a posição 5 (Maio, neste caso) do array do registo} Readln(VRE.Valor_mes[5]); {lê introdução do utilizador para todas as posições (todos os meses, neste caso) do array do registo} For i:=1 to 12 do Readln(VRE.Valor_mes[i]); End. Edited June 27, 2012 at 01:06 PM by passarito Link to comment Share on other sites More sharing options...
bsccara Posted June 27, 2012 at 02:46 PM Report Share #465946 Posted June 27, 2012 at 02:46 PM Qual a vantagem da utilização de estruturas compostas? Em relação aos registos, permitem manipular um conjunto de dados relacionados como um objecto indivisível. Dou-te uma analogia: uma pasta com folhas. Podes manipular as folhas individualmente mas o acesso a elas e o seu transporte é muito mais fácil se estiverem agrupadas numa pasta. Em relação aos arrays (não gosto de chamar-lhes 'vectores' pois cria-se muita confusão com o C++ e outras linguagens, em que vectores são arrays dinâmicos), permitem agrupar várias instâncias de variáveis do mesmo tipo (e que são algoritmicamente usadas em conjunto) sob um único identificador, e permitem também um acesso indexado a elementos individuais, o que é necessário para vários algoritmos. Eu não considero enumerações e ponteiros tipos de dados estruturados. Link to comment Share on other sites More sharing options...
passarito Posted June 27, 2012 at 02:58 PM Report Share #465953 Posted June 27, 2012 at 02:58 PM Em relação aos arrays (não gosto de chamar-lhes 'vectores' pois cria-se muita confusão com o C++ e outras linguagens, em que vectores são arrays dinâmicos) Penso, que vectores são arrays unidimensionais. Essa designação é mais para os brasucas (não reparaste que o @Lucas S. escreveu Registros? Cara, o brasiu eh q tá a dar, valeu...) e matemáticos, pois um array pode ser bi, tri, ... n .... dimensional! Link to comment Share on other sites More sharing options...
bsccara Posted June 27, 2012 at 03:39 PM Report Share #465984 Posted June 27, 2012 at 03:39 PM Depende da linguagem de programação. Em C++, por exemplo, um array tem um tamanho imutável enquanto que um vector tem um tamanho variável, logo vector != array. Por isso não gosto desta conversa 'array = vector'. Link to comment Share on other sites More sharing options...
Lukas S. Posted June 27, 2012 at 04:50 PM Author Report Share #466011 Posted June 27, 2012 at 04:50 PM não reparaste que o @Lucas S. escreveu Registros? Cara, o brasiu eh q tá a dar, valeu...) Eu juro que ri tanto que doeu -me a barriga XD ... isso era o que estava no chm do pascalzim .... 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 27, 2012 at 04:58 PM Report Share #466012 Posted June 27, 2012 at 04:58 PM (edited) Ok, no meio disto tudo, parte do essencial ficou perdido 😛 O @passarito já resumiu muito bem a diferença entre um Array de Records e um Record com um campo do tipo Array. Também como já foi dito, uma estrutura composta permite organizar informação relacionada de uma forma compacta. Imaginemos que queremos fazer o registo de pessoas. Não dá jeito ter um canhão de variáveis. Uma forma de organizar isto é do seguinte modo: Criar um Record com os campos do registo de cada pessoa; Criar um Array desse Record. Assim, se quisermos registar o nome, a idade e o sexo de 100 pessoas, em vez de 300 variáveis individuais, o que é um trabalho do caraças, temos nada mais do que isto: type TRegPessoa = record nome : string; idade : word; sexo : char; end; var Pessoas : array [1..100] of TRegPessoas; 6 linhas de definição vs 300 linhas que seriam variáveis independentes. E, desta forma, bastarão ciclos para tratar todos estes dados. Eu não considero enumerações e ponteiros tipos de dados estruturados. Os ponteiros, em Pascal, costumam ser criados e tratados com Records, pelo que há quem os considere como tipos de dados compostos. 😉 Quanto aos Arrays vs Vectores... Em Pascal, a definição correcta é Array seguido da definição do nº de dimensões: Array [1..10] of tipo --> Array unidimensional; Array [1..10, 1..20] of tipo --> Array bidimensional; Array [1..10, {...}, 1..5] of tipo --> Array multidimensional, ou de n dimensões. EDIT: Quanto ao PascalZIM, eu recomendo vivamente que deixes de o utilizar, ele é um crime para o Pascal - tem sido o culpado de muitos dos boatos do Pascal ser fraco e mais não sei o quê... Pudera! Este compilador é extremamente restritivo, não reconhece as bibliotecas básicas, etc etc etc... Cumprimentos, thoga31 😉 Edited June 27, 2012 at 05:00 PM by thoga31 Knowledge is free! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 27, 2012 at 05:56 PM Author Report Share #466028 Posted June 27, 2012 at 05:56 PM @thoga31 nao tenho outra hipótese se não usar o PascalZim uma vez que o exame é feito com esta ferramenta ... Então pelo que percebi a definição de estrutura de dados composta é : Compactação de dados através arrays , records ,ponteiros. certo ? 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...
passarito Posted June 27, 2012 at 06:31 PM Report Share #466035 Posted June 27, 2012 at 06:31 PM ora... de trás para a frente Então pelo que percebi a definição de estrutura de dados composta é : Compactação de dados através arrays , records ,ponteiros. certo ? Não percebi..... compactação?!? Se te referes ao que o @thoga31 referiu sobre a forma compacta, ele queria dizer que não tinhamos de ter um trilhião de variaveis! Os ponteiros, em Pascal, costumam ser criados e tratados com Records, pelo que há quem os considere como tipos de dados compostos. 😉 ... EDIT: Quanto ao PascalZIM, eu recomendo vivamente que deixes de o utilizar, ele é um crime para o Pascal - tem sido o culpado de muitos dos boatos do Pascal ser fraco e mais não sei o quê... Pudera! Este compilador é extremamente restritivo, não reconhece as bibliotecas básicas, etc etc etc... Quanto aos ponteiros, já vi, li e aprendi da forma que o @thoga31 referiu essa é a maneira teórica de aprender ponteiros, mas na prática não vejo grandes vantagens... eu sei que haverá quem diga que isto e aquilo (e tive algumas dicussões com o prof. por isso mesmo), mas eu uso os ponteiros com o minimo de informações possiveis, pois na prática usam-se ficheiros e não toda a informação carregada na memória. Os ponteiros apenas têm de preparar as coisas para a optimização de todo o resto. Mas isto é só uma opinião minha. Quanto à 2ª parte... tenho de arreliar o Thoga31 um bocadito.... vejo que já não estás tão crente no FPC... lol....😉 Eu juro que ri tanto que doeu -me a barriga XD ... isso era o que estava no chm do pascalzim .... Espero que não estejas a gozar comigo, afinal Registro é PT ou BR? Já faz parte do acordo ortográfico? Se usas emuladores de Pascal Brasileiros é contigo, agora devias ter corrigido andes de postares isso aqui. A brincadeira do Brasileiro, foi a propósito de um outro tópico... Link to comment Share on other sites More sharing options...
thoga31 Posted June 27, 2012 at 06:38 PM Report Share #466038 Posted June 27, 2012 at 06:38 PM @thoga31 nao tenho outra hipótese se não usar o PascalZim uma vez que o exame é feito com esta ferramenta ... A sério? Numa instituição de ensino utilizam uma ferramenta de desensino? Enfim... Uma coisa que tens de perceber é que a síntaxe e a base do Pascal não muda de compilador para compilador, só há algumas "nuances" que diferem. Claro que o PZim é um caso especial, mas, enquanto na escola utilizas essa infelicidade, em casa utiliza outra decente. A escola não é a regra de ouro, bem pelo contrário 😉 Nem que seja o Dev-Pascal, é um trilião de vezes melhor que o PZim, apesar de já ter bengala. Compactação de dados através arrays , records ,ponteiros. Compactação é um conceito diferente. Tão diferente que existe uma palavra reservada e pelo menos dois métodos relacionados com compactação de dados. O que os tipos de dados compostos fazem é organizar dados do mesmo género de uma forma simples e eficiente. Como o @passarito acabou de esclarecer, estes tipos de dados evitam que tenhas um canhão de variáveis e, por conseguinte, um canhão de linhas de código. É possível fazer em 50 linhas, ou menos, um programa de registo de pessoas. Se não utilizares tipos de dados compostos, terias pelo menos 1000 linhas de código para tratar os dados de 100 pessoas e só com 3 campos. Knowledge is free! Link to comment Share on other sites More sharing options...
Lukas S. Posted June 27, 2012 at 09:54 PM Author Report Share #466049 Posted June 27, 2012 at 09:54 PM (edited) OK esclarecido até agora ... Alguém sabe me dizer o que é ser capaz de criar um array de estruturas? Conhecer e saber aplicar o conceito de estrutura dentro de estrutura e como manipular uma estrutura Edited June 27, 2012 at 09:55 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...
pwseo Posted June 27, 2012 at 10:55 PM Report Share #466059 Posted June 27, 2012 at 10:55 PM Lukas, Há uns dias atrás pediste ajuda sobre como criar arrays de tipos de dados simples. Ora bem, uma array funciona sempre da mesma forma, independentemente do tipo de dados que contenha (simples ou composto). Logo, se sabes criar uma array de integers ou de strings, criar uma array de estruturas de dados (provavelmente records) é a mesma coisa, logo que tenhas criado o teu tipo de dados, como o thoga31 e o passarito já te explicaram. Quanto a ter uma estrutura de dados dentro de outra, deixo-te apenas uma pista: uma estrutura de dados é, fundamentalmente, um tipo de dados como outro qualquer. E relativamente ao PascalZIM, tem piada avaliar Pascal num programa que nem sequer Pascal suporta decentemente. Mas isso não é culpa tua, claro, é de quem vos ensina. bsscara, relativamente a array vs vector, se leres livros portugueses sobre programação em C, a maioria fala em vectores. E existe uma curiosa moda dos portugueses chamarem vector a arrays; Isto deve vir do C++, onde alguém teve a brilhante ideia de criar uma implementação de uma array de tamanho flexível e chamar-lhe vector (pelos vistos, o autor do nome reconhece que deveria ter chamado array ao vector da STL, mas agora é demasiado tarde). Link to comment Share on other sites More sharing options...
passarito Posted June 28, 2012 at 07:51 AM Report Share #466079 Posted June 28, 2012 at 07:51 AM OK esclarecido até agora ... Alguém sabe me dizer o que é ser capaz de criar um array de estruturas? Conhecer e saber aplicar o conceito de estrutura dentro de estrutura e como manipular uma estrutura Isto está respondido logo na 1ª resposta ao teu post. Link to comment Share on other sites More sharing options...
Lukas S. Posted June 28, 2012 at 08:50 AM Author Report Share #466083 Posted June 28, 2012 at 08:50 AM Alguém sabe me dizer o que tem de mal neste código ? Program Pzim ; Const prisioneiros=20; var i:integer; var dados : Record nome : string; altura : integer; peso : integer; datanascimento:string; dataprisao:string; AnosPena:integer; End; var tabela:array[1..prisioneiros] of dados; Procedure TabPrisioneiros(Var todosprisioneiros:tabela); Begin WITH todosprisioneiros[1] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); ENd; With todosprisioneiros[2] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[3] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[4 do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[5] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[6] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[7] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[8] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[9] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[10] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[11] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[12] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[13] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[14] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[15] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[16] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[17] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[18] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[19] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[20] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; Begin TabPrisioneiros(ta); for i:=1 to prisioneiros do Writeln('Nome:',ta[i].nome); Writeln('Altura:',ta[i].altura) ; Writeln('Peso:',ta[i].peso) ; Writeln('Data de Nascimento:',ta[i].datanascimento) ; Writeln('Data de Prisão:',ta[i].dataprisao); Writeln('Anos de Pena :',ta[i].AnosPena); End. 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...
Lukas S. Posted June 28, 2012 at 09:28 AM Author Report Share #466091 Posted June 28, 2012 at 09:28 AM (edited) Simplesmente uma vergonha ... estou em pleno exame o professor da discplina não está cá tou a ser vigiado e posso aceder ao que eu quiser ... ainda por mais o código que me dão para supostamente comentar está errado : Vejam esta desgraça ( Usando o compilador pascalzim) Program Notas(Input,Output) ; // O Dr. fez o programa no TurboPascal o que dá imcompatibilidade em certas //variáveis... // ... Este código vai dar mal aqui no PascalZim mas dá bem no TURBO PASCAL Const maxalunos=5; // declaramos a constante de que o máximo de alunos é 5 var i:integer; // i para indice Type aluno = Record // tipo record , dá erro no PascalZim nome : string[60]; nota: integer; End; tabela=array[1..maxalunos] of aluno; // Erro outra vez no pascalzim // tem de levar tabela:= e mesmo assim dá erro não percebi porque Procedure TabAlunos(Var todosalunos:tabela); //da erro também //aqui dizemos que o procidimento vai ter uma variavel chamada todosalunos do tipo tabela Begin WITH todosalunos[1] do // na variavel todosalunos guardamos na posição 1 begin todosalunos[1]-nome:='Marcelo'; todosalunos[1].nota:=20 ; End; WITH todosalunos[2] do //2 begin todosalunos[2].nome:='Pedro'; todosalunos[2].nota:=10 ; End; WITH todosalunos[3] do begin todosalunos[3].nome:='Joana'; todosalunos[3].nota:=0 ; End; WITH todosalunos[4] do begin todosalunos[4].nome:='Mariana'; todosalunos[4].nota:=5 ; End; WITH todosalunos[5] do begin todosalunos[5].nome:='Zezinho'; todosalunos[5].nota:=9; End; Begin TabAlunos(ta); for i:=1 to maxalunos do Writeln(ta[i].nome:' ',ta[i].nota); // apresentamos o valor de todos end; Writeln('Os alunos que foram aprovados são:') For i:=1 to maxalunos do if ta[i].nota > 9,5 then //se a nota for maior que 9,5 entao Writeln(ta[i].nome) end; End. Edited June 28, 2012 at 09:05 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...
passarito Posted June 28, 2012 at 12:59 PM Report Share #466147 Posted June 28, 2012 at 12:59 PM (edited) Dirige-te à secretaria e faz uma reclamação! Quando fiz o ECDL, aquilo tinha respostas erradas, quando ameaçei que ia fazer queixa fizeram-me tudo e mais alguma coisa! Edited June 28, 2012 at 01:02 PM by passarito Link to comment Share on other sites More sharing options...
Lukas S. Posted June 28, 2012 at 02:04 PM Author Report Share #466171 Posted June 28, 2012 at 02:04 PM Eu também avisei que queria repetir o exame e a professora de vigia avisou-me q por raivao ainda fazem um pior e pra lixar o aluno 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 28, 2012 at 09:12 PM Report Share #466295 Posted June 28, 2012 at 09:12 PM Nestes últimos códigos que o @Lukas S. colocou, de facto vi uns quantos desastres... Então mas declara-se um Array de Records para evitar canhões de linhas de código e depois percorremos o Array índice a índice num verdadeiro copy-past? Este código... Alguém sabe me dizer o que tem de mal neste código ? Program Pzim ; Const prisioneiros=20; var i:integer; var dados : Record nome : string; altura : integer; peso : integer; datanascimento:string; dataprisao:string; AnosPena:integer; End; var tabela:array[1..prisioneiros] of dados; Procedure TabPrisioneiros(Var todosprisioneiros:tabela); Begin WITH todosprisioneiros[1] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); ENd; With todosprisioneiros[2] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[3] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[4 do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[5] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[6] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[7] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[8] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[9] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[10] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[11] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[12] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[13] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[14] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[15] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[16] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[17] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[18] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[19] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; With todosprisioneiros[20] do Writeln('Digite o nome do recluso'); Readln(dados.nome); Writeln('Digite a altura do recluso'); readln(dados.altura); Writeln('Digite o peso do recluso'); readln(dados.peso) ; Writeln('Digite a data de nascimento'); Readln(dados.datanascimento); Writeln('Digite a Data de Prisão'); Readln(dados.dataprisao); Writeln('Digite os anos de pena que o recluso apanhou'); Readln(dados.AnosPena); END; Begin TabPrisioneiros(ta); for i:=1 to prisioneiros do Writeln('Nome:',ta[i].nome); Writeln('Altura:',ta[i].altura) ; Writeln('Peso:',ta[i].peso) ; Writeln('Data de Nascimento:',ta[i].datanascimento) ; Writeln('Data de Prisão:',ta[i].dataprisao); Writeln('Anos de Pena :',ta[i].AnosPena); End. ... é um desastre. Então temos o mesmo código 20 vezes só para percorrer o Array? E se este tivesse 1000 elementos, repetíamos o código 1000 vezes? :O De facto o ensino parece estar arruinado - não se ensina, mata-se o que é bom com boatos aos quais lhes chamam gentilmente de "matéria a ser avaliada em teste"... Dirige-te à secretaria e faz uma reclamação! Quando fiz o ECDL, aquilo tinha respostas erradas, quando ameaçei que ia fazer queixa fizeram-me tudo e mais alguma coisa! Sem ofensa relacionada com o teu BI 😛 , mas no teu tempo a minha mãe também fez queixas e refilava muito, e ela, tendo razão, "ganhava". Actualmente, se eu tentar fazer exactamente o mesmo, possivelmente nunca mais vou fazer a cadeira do professor com quem eu reclamar. Welcome to the 21th century, my dear friend. Knowledge is free! Link to comment Share on other sites More sharing options...
nunopicado Posted June 28, 2012 at 10:27 PM Report Share #466311 Posted June 28, 2012 at 10:27 PM Que mal eu pergunte... Estavas em pleno exame a aceder a um forum de programação para ver o que estava errado com um código de uma pergunta do exame? O quê que está mal aqui, além do código? De qualquer maneira, não será o caso do código estar errado de proposito para ver se o aluno (de preferencia sem aceder a foruns no meio do exame) consegue descobrir o que está mal? "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...
passarito Posted June 28, 2012 at 10:37 PM Report Share #466313 Posted June 28, 2012 at 10:37 PM Se for secundária, existem instancias superiores, se for Universidade há os regentes da cadeira. Mesmo estes também são atingíveis. Uma vez numa "discussão" como regente da cadeira de Pascal, eu disse-lhe que as coisas não se faziam como ele estava a dizer ao que ele retorquiu: então vai lá mostrar isso no computador. Eu de um lado ele do outro e sala cheia. Resultado, a solução dele falhou e minha funcionou! Nunca mais me chateou, mas no exame tentou lixar-me. correu-lhe mal. Link to comment Share on other sites More sharing options...
Recommended Posts