·
Cursos Gerais ·
Estrutura de Dados
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
Estrutura de Dados 1 ORGANIZAÇÃO DOS PROJETOS Serão desenvolvidos alguns projetos durante o semestre Todos serão organizados como descrito a seguir Basicamente os programas lerão 2 arquivos um arquivo que descreve um conjunto de dados a serem armazenados em alguma estrutura de dados e um arquivo descrevendo operações sobre o primeiro conjunto As operações podem causar a delição modificação inserção de dados ao primeiro conjunto O resultado final do processamento de cada conjunto é gravado em um ou mais arquivos de saída ENTRADA DE DADOS A entrada de dados via de regra ocorrerá por meio de um ou mais arquivostexto Estes arquivos estarão sob um diretório referenciado por DIRENTRADA neste texto1 SAIDA DE DADOS O dados produzidos serão mostrados na saída padrão eou em diversos arquivostexto Alguns resultados serão gráficos no formato SVG Os arquivos de saída serão colocados sob um diretório referenciado por DIRSAIDA neste texto2 PROCESSO DE COMPILAÇÃO E TESTES DO TRABALHO Organização do ZIP a ser entregue O trabalho deve ser submetido no formato ZIP3 cujo nome deve ser curto mas suficiente para identificar o aluno ou a equipe4 Este arquivo deve estar organizado como descrito abreviaturanome Por exemplo josers LEIAMEtxt colocar matrícula e o nome do aluno Atenção O número da matricula de estar no início da primeira linha do arquivo Só colocar os números não colocar qualquer pontuação Outros arquivos podem ser solicitados a cada fase src arquivosfonte makefile deve ter target para a geração do arquivo objeto de cada módulo e o target ted que produzirá o executável de mesmo nome dentro do mesmo diretório src Os fontes devem ser compilados com a opção fstackprotectorall adotamos o padrão C99 Usar a opção stdc99 h e c Atenção não devem existir outros arquivos além dos arquivos fontes e do makefile Organização do diretório para a compilação e correção dos trabalhos 1 Indicado pela opção e 2 Indicado pela opção o 3 Não usar outros formatos por exemplo rar 7z etc 4 Por exemplo joserszip se aluno se chamar José Roberto da Silva josersmariabczip para uma equipe com dois alunos Evite usar maiúsculas caracteres acentuados ou especiais Estrutura de Dados 2 no computador do professor HOMEDIR py scripts para compilar e executar diretório contendo os arquivos de testes geo qry arquivos de consultas talvez distribuídos em alguns outros sub diretórios alunos contém um diretório para cada aluno abrnome diretório pela expansão do arquivo submetido pe josers outros subdiretórios para os arquivos de saída informados na opção o zips zip Arquivos comprimidos submetiidos pelos alunos Os passos para correção serão os seguintes 1 O arquivo zip será descomprimido dentro do diretório alunos conforme mostrado acima 2 O makefile provido pelo aluno será usado para compilar os módulos e produzir o executável Os fontes serão compilados com o compilador gcc em um máquina Linux Os executáveis devem ser produzidos no mesmo diretório dos arquivos fontes O professor usará o GNU Make Serão executadas a partir dos scripts o seguinte comando make ted 3 O programa será executado automaticamente várias vezes uma vez para cada teste e o resultado produzido será inspecionado visualmente pelo professor Cada execução produzirá pelo menos um arquivo svg diferente dentro do diretório DIRSAIDA informado na opção o Possivelmente serão produzidos outros arquivos svg e txt APENDICE httpswwwgnuorgsoftwaremakemanualmakehtml httpopensourceforucom201206gnumakeindetailforbeginners Estrutura de Dados 3 Os Arquivos de Entrada e Saída A entrada do programa é composta por um em geral dois arquivostexto arquivo geo Um arquivo com a extensão geo por exemplo teste1geo arquivgeo etc contém os comandos que especificam os dados que serão manipulados pelo programa arquivo qry contém consultas alterações e delições de dados provenientes do arquivo geo Alguns comandos também podem provocar a inserção de novos comandos Os arquivos de entrada são compostos basicamente por conjunto de comandos um por linha Cada comando tem um certo número de parâmetros separados por um espaço branco A figura abaixo mostra um exemplo de um arquivo de entrada hipotético Note que a extensão do arquivo é geo Note que cada linha é iniciada por um comando c e r no exemplo seguido por alguns parâmetros Estes parâmetros podem ser número inteiros número reais cadeias de caracteres c 1 5000 500 3000 grey magenta r 6 1210 460 1000 300 cyan yellow c 2 1200 450 150 grey magenta r 4 100 1500 900 400 cyan yellow c 5 2300 1800 130 grey magenta a01geo O arquivo qry é semelhante ao anterior Note que via de regra um comando deste arquivo pode fazer referência a alguma entidade criada no arquivo geo por meio de um identificador número inteiro ou cadeia de caracteres No exemplo abaixo o comando o faz referência às entidades 2 e 6 criadas respectivamente pelos comando c e r Também o comando i referencia a entidade de identificador 5 criada pelo comando c o 2 6 i 5 2100 1600 qqry A Saída Normalmente os dados entidades criados pelo arquivo geo e manipulados pelo arquivo qry são representadas por formas geométricas de duas dimensões Assim via de regra o programa produzirá um arquivo svg e um arquivo txt ambos com o mesmo nome base do arquivo geo O arquivo svg produzido deve mostrar as formas geométricas resultantes do processamento dos arquivos de entrada Existem várias ferramentas que renderizam arquivos svg Estrutura de Dados 4 As figuras abaixo mostram um exemplo de arquivo svg e sua respectiva renderização svg xmlnssvghttpwwww3org2000svg xmlnshttpwwww3org2000svg version11 circle stylefill808080fillopacity05strokeff00ff r30 cy40693146 cx41200001 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y4069 x412 1 text rect stylefill00fffffillopacity05strokeffff00 height30 width100 y36693146 x1122 text stylefontsize5pxlineheight0fillyellow fontsize5 y4069 x1162 6 text circle stylefill808080fillopacity05strokeff00ff r15 cy35693146 cx1112 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y3569 x1112 2 text rect stylefill00fffffillopacity05strokeffff00 height40 width90 y14069315 x12 text stylefontsize5pxlineheight0fillyellow fontsize5 y1487 x42 4 text circle stylefill808080fillopacity05strokeff00ff r13 cy17069315 cx2212 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y1707 x2212 5 text svg Arquivo a01svg Illustration 1 Arquivo a01svg renderizado 1 6 2 4 5 Estrutura de Dados 5 Se o arquivo geo a01geo por exemplo for processado em conjunto com um arquivo qry qqry por exemplo além de a01svg deverá ser produzido um arquivo svg cujo nome é a combinação do nome dos 2 arquivos por exemplo a01qsvg e um arquivo txt também com nome combinado por exemplo a01qtxt O arquivo svg deve representar o estado final do banco de dados após o arquivo qry ter sido completamente processado Por sua vez o arquivo txt deve conter o resultado textual de todas as consultas conforme as especificações dos comandos Neste arquivo deve ser copiado em uma linha o texto da consulta precedido por e na linha seguinte o seu resultado inp 10 círculo âncora em 123500 18350 raio 1500 preenchimento blue borda yellow sel 500 210 600 3500 18 circulo 29 linha 5 texto 9 texto 21 retâgulo Arquivo a01qtxt Estrutura de Dados 6 O PROGRAMA O nome do programa deve ser ted e aceitar alguns parâmetros5 ted e path f arqgeo q consultaqry o dir O primeiro parâmetro e indica o diretório base de entrada DIRENTRADA É opcional Caso não seja informado o diretório de entrada é o diretório corrente da aplicação O segundo parâmetro f especifica o nome do arquivo de entrada que deve ser encontrado sob o diretório informado pelo primeiro parâmetro O terceiro parâmetro q é um arquivo de consultas também sob o diretório de entrada O último parâmetro o indica o diretório onde os arquivos de saída svg e txt deve ser colocados Note que o nome do arquivo pode ser precedido por um caminho relativo dir e path podem ser caminhos absolutos ou relativos A seguir alguns exemplos de possíveis invocações de siguel ted e homeedtestes f t001geo o homeedalunosaluno1o ted e homeed f tst001geo o homeedalunosal1o ted f tstst001geo e homeed o homeedalunosaluno1o ted o alunosaluno1o f testest001geo ted o alunosaluno1o f testest001geo q t001q1qry ted e testes f t001geo o alunosaluno1o q q1qry 5 Novos parâmetros poderão ser acrescentados no decorrer do ano Estrutura de Dados 7 RESUMO DOS PARÂMETROS DO PROGRAMA SIGUEL Parâmetro argumento Opcional Descrição e path S Diretóriobase de entrada DIRENTRADA f arqgeo N Arquivo com a descrição da cidade Este arquivo deve estar sob o diretório DIRENTRADA o path N Diretóriobase de saída DIRSAIDA q arqconsqry S Arquivo com consultas Este arquivo deve estar sob o diretório DIRENTRADA RESUMO DOS ARQUIVOS PRODUZIDOS f q comando com sufixo arquivos arqgeo arqsvg arqgeo arqconsqry arqsvg arqarqconssvg arqarqconstxt arqgeo arqconsqry sufx arqsvg arqarqconssvg arqarqconstxt arqarqconssufxsvgtxt6 ATENÇÃO os fontes devem ser compilados com a opção fstackprotectorall adotamos o padrão C99 Usar a opção stdc99 6 Podem ser produzidos os respectivos arquivos svg eou txt dependendo da especificação do comando
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
Estrutura de Dados 1 ORGANIZAÇÃO DOS PROJETOS Serão desenvolvidos alguns projetos durante o semestre Todos serão organizados como descrito a seguir Basicamente os programas lerão 2 arquivos um arquivo que descreve um conjunto de dados a serem armazenados em alguma estrutura de dados e um arquivo descrevendo operações sobre o primeiro conjunto As operações podem causar a delição modificação inserção de dados ao primeiro conjunto O resultado final do processamento de cada conjunto é gravado em um ou mais arquivos de saída ENTRADA DE DADOS A entrada de dados via de regra ocorrerá por meio de um ou mais arquivostexto Estes arquivos estarão sob um diretório referenciado por DIRENTRADA neste texto1 SAIDA DE DADOS O dados produzidos serão mostrados na saída padrão eou em diversos arquivostexto Alguns resultados serão gráficos no formato SVG Os arquivos de saída serão colocados sob um diretório referenciado por DIRSAIDA neste texto2 PROCESSO DE COMPILAÇÃO E TESTES DO TRABALHO Organização do ZIP a ser entregue O trabalho deve ser submetido no formato ZIP3 cujo nome deve ser curto mas suficiente para identificar o aluno ou a equipe4 Este arquivo deve estar organizado como descrito abreviaturanome Por exemplo josers LEIAMEtxt colocar matrícula e o nome do aluno Atenção O número da matricula de estar no início da primeira linha do arquivo Só colocar os números não colocar qualquer pontuação Outros arquivos podem ser solicitados a cada fase src arquivosfonte makefile deve ter target para a geração do arquivo objeto de cada módulo e o target ted que produzirá o executável de mesmo nome dentro do mesmo diretório src Os fontes devem ser compilados com a opção fstackprotectorall adotamos o padrão C99 Usar a opção stdc99 h e c Atenção não devem existir outros arquivos além dos arquivos fontes e do makefile Organização do diretório para a compilação e correção dos trabalhos 1 Indicado pela opção e 2 Indicado pela opção o 3 Não usar outros formatos por exemplo rar 7z etc 4 Por exemplo joserszip se aluno se chamar José Roberto da Silva josersmariabczip para uma equipe com dois alunos Evite usar maiúsculas caracteres acentuados ou especiais Estrutura de Dados 2 no computador do professor HOMEDIR py scripts para compilar e executar diretório contendo os arquivos de testes geo qry arquivos de consultas talvez distribuídos em alguns outros sub diretórios alunos contém um diretório para cada aluno abrnome diretório pela expansão do arquivo submetido pe josers outros subdiretórios para os arquivos de saída informados na opção o zips zip Arquivos comprimidos submetiidos pelos alunos Os passos para correção serão os seguintes 1 O arquivo zip será descomprimido dentro do diretório alunos conforme mostrado acima 2 O makefile provido pelo aluno será usado para compilar os módulos e produzir o executável Os fontes serão compilados com o compilador gcc em um máquina Linux Os executáveis devem ser produzidos no mesmo diretório dos arquivos fontes O professor usará o GNU Make Serão executadas a partir dos scripts o seguinte comando make ted 3 O programa será executado automaticamente várias vezes uma vez para cada teste e o resultado produzido será inspecionado visualmente pelo professor Cada execução produzirá pelo menos um arquivo svg diferente dentro do diretório DIRSAIDA informado na opção o Possivelmente serão produzidos outros arquivos svg e txt APENDICE httpswwwgnuorgsoftwaremakemanualmakehtml httpopensourceforucom201206gnumakeindetailforbeginners Estrutura de Dados 3 Os Arquivos de Entrada e Saída A entrada do programa é composta por um em geral dois arquivostexto arquivo geo Um arquivo com a extensão geo por exemplo teste1geo arquivgeo etc contém os comandos que especificam os dados que serão manipulados pelo programa arquivo qry contém consultas alterações e delições de dados provenientes do arquivo geo Alguns comandos também podem provocar a inserção de novos comandos Os arquivos de entrada são compostos basicamente por conjunto de comandos um por linha Cada comando tem um certo número de parâmetros separados por um espaço branco A figura abaixo mostra um exemplo de um arquivo de entrada hipotético Note que a extensão do arquivo é geo Note que cada linha é iniciada por um comando c e r no exemplo seguido por alguns parâmetros Estes parâmetros podem ser número inteiros número reais cadeias de caracteres c 1 5000 500 3000 grey magenta r 6 1210 460 1000 300 cyan yellow c 2 1200 450 150 grey magenta r 4 100 1500 900 400 cyan yellow c 5 2300 1800 130 grey magenta a01geo O arquivo qry é semelhante ao anterior Note que via de regra um comando deste arquivo pode fazer referência a alguma entidade criada no arquivo geo por meio de um identificador número inteiro ou cadeia de caracteres No exemplo abaixo o comando o faz referência às entidades 2 e 6 criadas respectivamente pelos comando c e r Também o comando i referencia a entidade de identificador 5 criada pelo comando c o 2 6 i 5 2100 1600 qqry A Saída Normalmente os dados entidades criados pelo arquivo geo e manipulados pelo arquivo qry são representadas por formas geométricas de duas dimensões Assim via de regra o programa produzirá um arquivo svg e um arquivo txt ambos com o mesmo nome base do arquivo geo O arquivo svg produzido deve mostrar as formas geométricas resultantes do processamento dos arquivos de entrada Existem várias ferramentas que renderizam arquivos svg Estrutura de Dados 4 As figuras abaixo mostram um exemplo de arquivo svg e sua respectiva renderização svg xmlnssvghttpwwww3org2000svg xmlnshttpwwww3org2000svg version11 circle stylefill808080fillopacity05strokeff00ff r30 cy40693146 cx41200001 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y4069 x412 1 text rect stylefill00fffffillopacity05strokeffff00 height30 width100 y36693146 x1122 text stylefontsize5pxlineheight0fillyellow fontsize5 y4069 x1162 6 text circle stylefill808080fillopacity05strokeff00ff r15 cy35693146 cx1112 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y3569 x1112 2 text rect stylefill00fffffillopacity05strokeffff00 height40 width90 y14069315 x12 text stylefontsize5pxlineheight0fillyellow fontsize5 y1487 x42 4 text circle stylefill808080fillopacity05strokeff00ff r13 cy17069315 cx2212 text stylefontsize5pxlineheight0fillfuchsia fontsize5 y1707 x2212 5 text svg Arquivo a01svg Illustration 1 Arquivo a01svg renderizado 1 6 2 4 5 Estrutura de Dados 5 Se o arquivo geo a01geo por exemplo for processado em conjunto com um arquivo qry qqry por exemplo além de a01svg deverá ser produzido um arquivo svg cujo nome é a combinação do nome dos 2 arquivos por exemplo a01qsvg e um arquivo txt também com nome combinado por exemplo a01qtxt O arquivo svg deve representar o estado final do banco de dados após o arquivo qry ter sido completamente processado Por sua vez o arquivo txt deve conter o resultado textual de todas as consultas conforme as especificações dos comandos Neste arquivo deve ser copiado em uma linha o texto da consulta precedido por e na linha seguinte o seu resultado inp 10 círculo âncora em 123500 18350 raio 1500 preenchimento blue borda yellow sel 500 210 600 3500 18 circulo 29 linha 5 texto 9 texto 21 retâgulo Arquivo a01qtxt Estrutura de Dados 6 O PROGRAMA O nome do programa deve ser ted e aceitar alguns parâmetros5 ted e path f arqgeo q consultaqry o dir O primeiro parâmetro e indica o diretório base de entrada DIRENTRADA É opcional Caso não seja informado o diretório de entrada é o diretório corrente da aplicação O segundo parâmetro f especifica o nome do arquivo de entrada que deve ser encontrado sob o diretório informado pelo primeiro parâmetro O terceiro parâmetro q é um arquivo de consultas também sob o diretório de entrada O último parâmetro o indica o diretório onde os arquivos de saída svg e txt deve ser colocados Note que o nome do arquivo pode ser precedido por um caminho relativo dir e path podem ser caminhos absolutos ou relativos A seguir alguns exemplos de possíveis invocações de siguel ted e homeedtestes f t001geo o homeedalunosaluno1o ted e homeed f tst001geo o homeedalunosal1o ted f tstst001geo e homeed o homeedalunosaluno1o ted o alunosaluno1o f testest001geo ted o alunosaluno1o f testest001geo q t001q1qry ted e testes f t001geo o alunosaluno1o q q1qry 5 Novos parâmetros poderão ser acrescentados no decorrer do ano Estrutura de Dados 7 RESUMO DOS PARÂMETROS DO PROGRAMA SIGUEL Parâmetro argumento Opcional Descrição e path S Diretóriobase de entrada DIRENTRADA f arqgeo N Arquivo com a descrição da cidade Este arquivo deve estar sob o diretório DIRENTRADA o path N Diretóriobase de saída DIRSAIDA q arqconsqry S Arquivo com consultas Este arquivo deve estar sob o diretório DIRENTRADA RESUMO DOS ARQUIVOS PRODUZIDOS f q comando com sufixo arquivos arqgeo arqsvg arqgeo arqconsqry arqsvg arqarqconssvg arqarqconstxt arqgeo arqconsqry sufx arqsvg arqarqconssvg arqarqconstxt arqarqconssufxsvgtxt6 ATENÇÃO os fontes devem ser compilados com a opção fstackprotectorall adotamos o padrão C99 Usar a opção stdc99 6 Podem ser produzidos os respectivos arquivos svg eou txt dependendo da especificação do comando