• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Chuckytah

[How to] Estruturas repetitivas, iterativas ou ciclos

11 mensagens neste tópico

Olá, boa noite a todos.

Bem é o seguinte, eu já aprendi os ciclos todos nas aulas de aplicações informaticas, mas por vezes surge-me a duvida de qual ciclo aplicar para um dado algoritmo, como posso saber qual é o mais indicado? quais as principais diferenças e semelhanças entre eles? Os ciclos PARA podem ser sempre transformados em ciclo ENQUANTO e  REPETIR, e estes dois ultimos podem ser sempre convertidos para ciclos PARA? Obrigada pela ajuda.

Já agora tambem como posso saber quando devo usar uma estrutura CASO?

obigada^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem... posso-te dar algumas respostas a algumas das tuas questões.

Suponho que quando falas de:

  • PARA - Estás-te a referir a For
  • ENQUANTO - Estás-te a referir a While
  • CASO - Estás-te a referir a Case

Para saberes quando deves utilizar os ciclos While e/ou For penso que seja relativamente simples. Utiliza-se o ciclo For quando sabes quantos ciclos precisas fazer, por exemplo, queres escrever os números de 0 a 10, utilizas o ciclo For porque sabes que tens de começar em 0 (zero) e acabar em 10.

O ciclo While utiliza-se quando não sabes ao certo quantos ciclos vais precisar, por exemplo, imagina que querias que o programa fosse escrevendo números até que ocorre-se um evento qualquer (uma tecla fosse pressionada, uma variável ganha-se um valor especifico, etc...), então utilizas um ciclo While ou seja, "Enquanto não acontecer qualquer coisa, executa o seguinte..."

Nos Case, utilizam-se quando existem muitas condições a verificar e em vez de se utilizar ciclos If utiliza-se ciclos Case. Imagina que tens um programa com uma caixa de texto onde o utilizador coloca uma pergunta e em seguida o programa dá uma resposta, para não estares sempre a fazer:

Se "Pergunta = Esta ai?" Entao "Dá esta resposta"

Se Não Se "Pergunta = Tudo bem?l" Entao "Dá aquela resposta"

....

Para não estar constantemente com isto utiliza-se os ciclos Case

Um ciclo For pode ser substituído por um ciclo While penso que em qualquer situação, mas penso que o contrário não acontece ou pelo menos eu não estou a ver nenhuma situação em que isso aconteça. Por exemplo no exemplo dos números de 0 a 10, com o ciclo For basta dares o inicio e o fim e ele "faz o resto":

For Variavel = 0 to 10

    .....

Isto pode ser substituido pelo ciclo While da seguinte forma:

While Variavel < 10

    variavel = variavel + 1

O que acontece é que enquanto a "variavel" for menor que 10 vai incrementando 1 valor na variável, isto substitui o exemplo a cima descrito com o ciclo For, mas se tivermos um um ciclo While que esteja a verificar quando uma variável toma uma valor especifico (no exemplo será o valor 1):

While variavel <> 1

  .....

Isto não pode ser substituído por um ciclo For porque no ciclo For não verificamos condições.

Espero ter ajudado e não confundido mais, Isto são apenas algumas regras, o que não quer dizer que não se possa fazer de outra forma e/ou utilizar os ciclos de outras formas.

Se estiver enganado em alguma das explicações corrijam-me  :thumbsup:

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obigada, sim compreendi melhor, e o REPETIR? sabes quando utilizar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ciclo Repetir nunca trabalhei com ele  :-[

vê o meu post anterior porque editei umas coisas ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

okis ^^ mas aobrigada pela ajuda, axo k o REPETIR so difere do ENQUANTO porque a condição em vex de estar no inicio está no fim, o  k ker dixer k o programa é obrigado a executar todas as instruções pelo menos uma vez pois a condição so é avaliada no final. bem vou estudar mais um bocado,lol obrigada ^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação a isso da condição estar no fim ou no inicio.... Não sei como funciona noutras linguagens mas em VB6 no ciclo While também é possível colocar a condição no inicio ou no fim.

Condição no final:

Do
    i = i + 1
Loop While i < 255

Condição no inicio:

Do While i < 255
    i = i + 1
Loop

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ahh n sabia, lol assim tb ja aprendo pa kando começar VB a serio lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O repetir usas quando quiseres que o programa entre pelo menos uma vez dentro do ciclo.

É um repeat.. until em Pascal ou um do.. loop while em vb.net.

Imagina que queres fazer um menu. (daqueles mais foleiros vistos em consola, com as opções (1,2,3,4,5.. 0 para sair)

O teu objectivo é que ele entre pelo menos uma vez no menu.

repeat

...

until opcao diferente de 0

Um aparte.

Em C um for é como que um "for while" e podes transformar qualquer for em while e qualquer while em for. Nas outras linguagens isto não acontece.

Atenção que o "CASO" não é uma estrutura repetitiva, não sei se quiseste dizer isso no teu post, não percebi muito bem, mas não é, tiram-se já as dúvidas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol si meu sei k n é :thumbsup: lol mas como tb tinha duvidas aproveitei,lol. ja percebi, pa ja ainda n tou a dar e nenhuma linguagem, so mesmo algoritmos simples, talvex começe Visual Basic pa semana ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás em que ano/curso?

Estou em ciencias e tecnologias, biologia mais propriamente, mas no ano passado (11ºano) tinha opção de escolher aplicações informaticas B e escolhi lol ^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora