-
ERRADO. Mas por que? Será que o CESPE está considerando a prática ou a teoria? Na teoria é possível sim substituir while por for.
Ex.:
Loop infinito:while(1) = for(;;)
-
Toda estrutura do tipo para pode ser representada por uma estrutura do tipo enquanto. Entretanto o oposto não é verdadeiro.
Por exemplo, como representaria numa estrutura do tipo para a condição "ENQUANTO NÓ != NULL FAÇA"?
-
Eu errei esta questão, mas o comentário do colega Bruno Migowski, foi perfeita!
-
Bruno,
nesse seu exemplo, usando o comando for não ficaria assim:
for ( ; NO != NULL ; )
-
Na estrutura enquanto, pode-se GARANTIR que ele SEMPRE será executada PELO MENOS UMA VEZ (do... while).
-
Danilo, a estrutura que pode garantir que será realizado pelo menos uma vez é a estrutura faça ... enquanto e não a estrutura enquanto. São estruturas diferentes.
Eu acho que a banca quer dizer por estrutura para não é um comando for e sim é uma estrutura do tipo:
Para X de xi até xf Faça
[bloco de instruções]
Fim Para
Só vejo essa explicação, vi essa estrutura na wikipedia.
-
Gabarito "E". Minha linha de raciocíno para responder essa questão foi:
"Na construção de um algortimo, só é possível substituir uma estrutura do tipo enquanto por uma estrutura do tipo para quando sabemos exatamente a quantidade de vezes que esse laço irá executar."
-
É uma questão que depende do autor adotado. Ela é certa se considerarmos a prática e errada se considerarmos a teoria. Vejamos porque:
Na prática: Como já dito acima, muitas linguagens de programação aceitam a construção for(ini;cond;valor). Essas estruturas podem, sem sombra de dúvidas, substituir sempre, em qualquer ocasião, uma estrutura while(cond). Para isso, basta que a ini seja ou nula ou igual à condição antes do while; cond seja a mesma condição e valor seja igual ao passo dentro da estrutura. Nessa ótica: certo.
Na teoria: a estrutura para é definida da seguinte forma: para var de ini até fim passo valor faça. Essa estrutura exige que se conheça o início ini e a condição de fim de antemão, enquanto a estrutura enquanto cond faça, não. Assim, loops que têm o fim incerto baseado em condições que não sejam iterativas (como citado, e.g. NÓ = NULO) não encontram descrição no modelo do para.
Essa foi a solução que eu encontrei, depende do autor adotado. A notação do modelo teórico que citei encontra-se em :http://www.dca.ufrn.br/~xamd/dca0800/Cap06.pdf
-
Em CASOS GERAIS/NORMAL/PADRÃO, você não pode substituir o enquanto pelo para porque o enquanto possui um número indefinido de repetições, já o para possui um número definido, em CASOS EXCEPCIONAIS você pode substituir um pelo outro, como exemplificou o colega do primeiro comentário. A questão não especifica, então é no caso geral.
ERRADO
-
me dê um while que eu não consiga substituir por for, cespe, desafio você a achar um while que não dê para substituir por for, PQP viu