Enunciado tarefa 4

Enunciado tarefa 4

por Luiz Fernando O C Real -
Número de respostas: 23
Tenho uma dúvida com relação ao enunciado da tarefa 4.
No final, tem o seguinte trecho:

"Como devemos alocar o digrafo já que o número de vértices não é fixado logo de cara? Uma possibilidade é fazermos um realloc. Outras sugestões?"

Isso significa que devemos fazer a tarefa 4 sem um número fixo de vértices? Ou é só para pensar?


Em resposta à Luiz Fernando O C Real

Re: Enunciado tarefa 4

por Pedro P. de S. B. Silva -
tenho uma duvida tb:

o -s faz a mesma coisa q o -s do make? e esse -p? ele so executa o programa?

[]'s
pedro
Em resposta à Pedro P. de S. B. Silva

Re: Enunciado tarefa 4

por Thiago Macedo -
Salve!

Fiquei na dúvida também. Eu entedi que a linha na verdade seria:
./Make [-p | -s <goals>]
onde:
-p : Grava o arquivo MakeFile.dg;
-s : Se <goals> == Ø, <goals> = <Targets>[0];
Se nao, Pra cada <Target> em <goals>, Roda os comandos do <Target>
(claro, na ordem certa, pq tem as dependencias e tal..ai entra um ordenacao topologica? =] ) ;

Seria isso ?

Aproveitando, "vale" checar a presença de ciclos logo na leitura (ie,
pode haver um target com ciclo, que nao esta em <goals>!) ?

Valeu!


Em resposta à Thiago Macedo

Re: Enunciado tarefa 4

por Marcela Ortega -
Eu tb fiquei na dúvida...
Quais são as opções???
-> sem parâmento: 'Make' deve pegar o primeiro target ou 'Make -s' que faz isso?
-> -p OU -s: pode ter 'Make -p -s meuprog'?
Em resposta à Thiago Macedo

Re: Enunciado tarefa 4

por Rafael Schouery -
Thiago, seu ep deve detectar ciclos, não exista algo que não é válido. Mas pense se isso é bom ou não já que a ordenação topológica detecta ciclos naturalmente.
Em resposta à Pedro P. de S. B. Silva

Re: Enunciado tarefa 4

por Rodrigo Luiz Marques Flores -
Tenho a mesma dúvida. Assim como no GNU Make o -s deve rodar o Make silencioso?
Em resposta à Rodrigo Luiz Marques Flores

Re: Enunciado tarefa 4

por Debora Aline Sales Duarte -

Eu tenho um outro chute para esta parte do enunciado:

Será que, na verdade, -p e -s  não são a mesma coisa e não houve algum erro de digitação em algum lugar? Ou seja, além dos nomes dos targets, pode ser passado o comando -p (ou -s, seja lá qual for o correto) para que se crie MakeFile.dg? 

Em resposta à Debora Aline Sales Duarte

Re: Enunciado tarefa 4

por Thiago Macedo -
Caramba! Acho que é isso mesmo!
- Se tem -p OU -s > Printa ou Salva o digrafo no arquivo;
- Se tem <goals>, trata cada um, Else, trata o primeiro;

Em resposta à Luiz Fernando O C Real

Re: Enunciado tarefa 4

por Marcela Ortega -
Tenho outra dúvida:
"Para cada vértice v o seu programa deve manter em:
  • mod_time[v] é o instante da última modificação do arquivo correspondente ao vértice v. Deverá conter -1 caso o arquivo não exista.
  • up_to_date[v] é uma variável booleana que é TRUE se o arquivo correspondente ao vértice v está atualizado."
Eu devo necessariamente manter essas informações para todos os vértices ou posso só verificar os horários (e se estão atualizados) durante a DFS para a reconstrução do target??
Em resposta à Marcela Ortega

Re: Enunciado tarefa 4

por Rafael Junqueira -

Professor/ Monitor,

Estamos aguardando uma comunicação oficial à respeito. E aproveito para comunicar que poderá haver um eventual atraso no cumprimento do prazo em decorrência disso.

Atenciosamente.

Em resposta à Rafael Junqueira

Re: Enunciado tarefa 4

por Lucas C. dos Santos -
>Re: Enunciado tarefa 4
>por Rafael Junqueira - Friday, 9 May 2008, 14:47
>Professor/ Monitor,

>Estamos aguardando uma comunicação oficial à respeito. E aproveito para
>comunicar que poderá haver um eventual atraso no cumprimento do prazo
>em decorrência disso.

>Atenciosamente.

Engraçado como a difenrença entre ser -p ou ser -s na linha de comando atrasa o desenvolvimento...

acho que eu levo umas 2h só pra conseguir escrever:

if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "-p") == 0)
/*imprime o grafo*/

E como sempre... se acontecer um eventual atraso na sua entrega vai acontecer também um eventual desconto na sua nota em decorrência disso.

Não tão atenciosamente assim...
Em resposta à Lucas C. dos Santos

Re: Enunciado tarefa 4

por Rafael Junqueira -

Prezado Lucas,

Se você tiver algum problema mental ou é sociopata, realmente eu não estou interessado. Nem é da minha conta viu! E talvez este fórum nem seja o ideal para este tipo de discussão. Procure, talvez, algo na área da psicologia ou psiquiatria. Parece-me mais razoável.

O problema que aflige alguns dos alunos desta disciplina não está no tempo de programação, Lucas. Claramente, para fazer um código destes não são necessárias duas horas. Mas acredito que, assim como eu, alguns alunos estejam interessados, também, em compreender real e exatamente a tarefa. Para não ter que ficar reprogramando depois, que não é muito divertido. Enfim, o problema está na definição da tarefa, que nos causou algumas dúvidas totalmente compreensíveis, em minha opinião.

Você já cursou Engenharia de Software, não? Esta disciplina explica - muito melhor do que eu poderia - alguns dos princípios relevantes a esta questão. Se já cursou, talvez não tenha levado muito a sério? Gostaria de uma indicação de algumas obras ou cursos a respeito? Ainda dá tempo de correr atrás do prejuízo, viu! É muito importante para nossa carreira! Muito mais importante do que a ironia insultuosa, por exemplo.

Finalizando, gostaria que você se apresentasse Lucas. Gostaria de saber qual é o seu papel nesta disciplina. Ou seja, quem é você para falar em desconto de nota? Claramente você não é o professor desta disciplina, que se chama José. Não me parece ser o monitor também - que se chama Rafael. Mas talvez seja outro monitor? Senão, desculpe-me, mas a sua opinião a respeito não foi requerida. Se você utilizasse um pouco de interpretação de texto – também muito importante para a carreira de qualquer cidadão – observaria que minha redação anterior foi dirigia a uma destas duas figuras.

Atenciosamente (por que eu sim tive uma boa educação).

Em resposta à Rafael Junqueira

Re: Enunciado tarefa 4

por Lucas C. dos Santos -
é Rafael... Que pena que a sua "ótima" educação te permite xingar pessoas em fóruns acadêmicos... enfim... cada qual com seu problema mental...

engraçado vc citar engenharia de software... pq ela diz que o seu código tem que ser desacoplado o suficiente para que eventuais mudanças não tenham impactos grandes no seu código... ou seja, se seu código não tem a qualidade o suficiente para que pequenas ambiguidades em 10% o enunciado do EP te façam mudar menos de 10% do código que vc já escreveu, vc deveria ler mais sobre refatoração, desacoplamento e etc, principalmente por vc não ter tanto tempo disponível...

até mesmo mudanças estruturais (como mudar de alocação estática pra alocação dinâmica) deveriam ter impactos mínimos no seu sistema... mas enfim... essa é uma discussão pra disciplinas como Engenharia de Software ou XP... não grafos...

e finalizando, meu papel nessa disciplina é o mesmo que o seu: um mero aluno... mas eu sei reconhecer que enquanto eu tenho que fazer 1 EP ou 1 prova, o monitor e o professor têm que corrigir 100 deles... ou seja, se vc tem pouco tempo pra fazer o EP, ou vc não sabe (se) programar, ou vc está fazendo mais atividades do que deveria, então arque com as consequências... e a partir do momento em que vc posta uma mensagem num forum vc está automaticamente pedindo a opinião de qualquer pessoa que faz parte desse forum... se o seu assunto é apenas com o monitor ou com o professor, mande mensagens só pra eles... ou fale com eles pessoalmente...

Sociopsicopaticamente...
Lucas, que acha que essa discussão está acontecendo no lugar errado... mas paciência...
Em resposta à Lucas C. dos Santos

Re: Enunciado tarefa 4

por Marcos Bonci Cavalca -
Caramba, inesperada mesmo uma discussão assim numa questão banal como essa.

De qualquer jeito, discussões de nível pessoal à parte, me parece sempre razoável pedir adiamentos (e a resposta o professor decide como quiser), mas "comunicar" atrasos previstos acho que não soa bem... E resolver pepinos inesperados faz sempre parte do negócio. (Lucas 1 x 0 Rafael, nesses pontos...)
Em resposta à Lucas C. dos Santos

Re: Enunciado tarefa 4

por Rafael Junqueira -
Embora seja muito triste enxergar este tipo de comportamento ignorante numa das melhores universidades do país, acho que continuar esta discussão é totalmente desnecessária e não vou me rebaixar ao este nível e ficar respondendo estes insultos dignos de escárnio.
Já tive meu direito de resposta e ainda concordo com tudo o que eu disse.

Sem mais,

Em resposta à Rafael Junqueira

Re: Enunciado tarefa 4

por Lucas Piva Rocha Corrêa -
Eu só gostaria de expressar um pouco da minha indignação com a mentalidade do "adiamento". Daqui a pouco "Paralizou o bandejão!", "Tá chovendo!" e "Faltou uma vírgula no enunciado do EP!" vão virar motivos para pedir adiamento.

E também queria comentar que muito mais importante que interpretação de texto (que aparentemente faltou, para interpretar o enunciado do EP) na "carreira de qualquer cidadão" está a decência e responsabilidade de entregar as tarefas e cumprir com as obrigações no prazo estabelecido.

Lucas Piva.
Em resposta à Marcela Ortega

Re: Enunciado tarefa 4

por Rafael Schouery -
"Eu devo necessariamente manter essas informações para todos os vértices ou posso só verificar os horários (e se estão atualizados) durante a DFS para a reconstrução do target??"

Marcela, por favor mantenha o padrão, isso irá facilitar a correção.
Em resposta à Luiz Fernando O C Real

Re: Enunciado tarefa 4

por Bruno Vercelino da Hora -
Não entendi o que você quis dizer!!!
O que seria o padrão? Seja um pouco mais específico nas respostas!
E não tivemos uma resposta oficial, sobre o -s e o -p...
Agora uma outra dúvida, se o MakeFile fizer a seguinte chamada:

ep4: digraph.o ep4
[...]

Isso é considerado um ciclo?
Em resposta à Bruno Vercelino da Hora

Re: Enunciado tarefa 4

por Rafael Schouery -
"Isso é considerado um ciclo?"
Sim e provavelmente o algoritmo que você implementar de ordenação topológica irá automaticamente detectar este laço. Mas não serei chato com esse tipo de coisa na hora da correção.

Sobre o -p e o -s veja o anúncio que coloquei agora pouco.

O que eu quis dizer com padrão foi guardar as informações on-demand ao invés de calcular durante a dfs.
Em resposta à Rafael Schouery

Re: Enunciado tarefa 4

por Atol Fortin de Oliveira -
estah no enunciado :
"Ao percorrer o digrafo, Make deve:
  1. verificar a existência de ciclos nesta parte do digrafo; e"

Nao entendi essa historia de "on-demand" ... por exemplo se tenho :

ep.c : a.c ep.c
...
...

tudo.c : nada.c
...
...

e for executado no terminal :
Make -s tudo.c

... bom, entao me parece que o programa nao deve acusar erros por conter ciclos, pois estarei apenas gerando um arquivo que nao possui ciclos para sua criacao ....
ou estou errado? quer dizer, apesar de estar gerando um cara que nao possui erros, o Makefile possui um erro, e entao ...?
e entao? queria saber tambem sobre esse e entao? oq deve ser feito ao encontrar um ciclo ? exit(1) ?
Em resposta à Atol Fortin de Oliveira

Re: Enunciado tarefa 4

por Rafael Schouery -
Desculpa, acho que mais uma vez não fui claro.
Quis dizer calcular on-demand o tempo da ultima atualização do arquivo, como perguntou a Marcela. Essa informação deve ser guardada no vértice como é pedido no enunciado. Não estava me referindo a ciclos.

Os ciclos devem ser detectados quando o grafo é percorrido, como está no enunciado.

Se você detectar um ciclo, imprima um erro na tela antes do exit(1). E comente no código o porque deste exit, já que saídas do programa no meio de outra função nem sempre são fáceis de entender.


Em resposta à Atol Fortin de Oliveira

Re: Enunciado tarefa 4

por Nilo Cesar Teixeira -

Pelo que eu entendi é a primeira opção Atol, vc deve detectar erros dentro da árvore do seu goal, se tiver um ciclo e não estiver dentro do seu goal vc não precisa detectar:

"
Para atualizar um objetivo Make deve percorrer o digrafo de dependências, a partir de um vértice que corresponde a um objetivo que foi especificado ou ao primeiro target em Makefile (caso nenhum objetivo (goal) seja especificado como argumento). Ao percorrer o digrafo, Make deve:

  1. verificar a existência de ciclos >>>nesta parte do digrafo<<<; e

"

Abracos,

Nilo

Em resposta à Atol Fortin de Oliveira

Re: Enunciado tarefa 4

por Natan Costa Lima -
algo: algo

Eu testei usando o Makefile de verdade ele solta:
"make: Dependência circular algo <- algo abandonada."
mas continua e fez todos os comandos q eu mandei!!
se não fizermos o exit() como tratamos esses casos?
Em resposta à Natan Costa Lima

Re: Enunciado tarefa 4

por Rafael Schouery -
Acho razoável detectar apenas na busca e se você você encontrar pode matar o seu ep. Não precisa ser exatamente como o make, até porque não usamos exatamente sua especificação. Tente ser fiel ao enunciado.