Guest Markito Posted February 15, 2013 at 06:41 AM Report #495368 Posted February 15, 2013 at 06:41 AM Bom dia; O Chato de serviço está de plantão... sou eu! Cá vai mais um problema que para mim não encaixa: #include <stdio.h> int main () { int i; do { printf ("\n\nEscolha a fruta pelo numero:\n\n"); printf ("\t(1)...Limao\n"); printf ("\t(2)...Pera\n"); printf ("\t(3)...Laranja\n\n"); scanf("%d", &i); } while ((i<1)||(i>3)); switch (i) { case 1: printf ("\t\tVoce escolheu Limao.\n"); break; case 2: printf ("\t\tVoce escolheu Pera.\n"); break; case 3: printf ("\t\tVoce escolheu Laranja.\n"); break; } return(0); } Programa simples para a maioria menos para mim que tou a aprender. Por favor tenham paciência... O programa corre sem problemas... Óptimo! Eu é que não entendo o porquê! a minha dúvida é a seguinte: while ((i<1)||(i>3)); não deveria ser while ((i>=1)||(i<=3))??? Isto para ler os valores que estão entre o 1 e o 3, e inclusive os mesmos??? quando eu coloco o while ((i>=1)||(i<=3)) ele não lê, no entanto a meu ver não deveria ler era o while ((i<1)||(i>3))! Agradeço desde já a vossa paciência e a vossa resposta. 👍 Obrigado
Guest Markito Posted February 15, 2013 at 07:32 AM Report #495369 Posted February 15, 2013 at 07:32 AM Tive aqui a martelar e parece que já cheguei lá por mim... Penso que é o seguinte: Enquanto o for ((i<1)||(i>3)) ele volta a pedir a variável i! Será isso? Mesmo assim não dispensa a vossa confirmação. Obrigado 👍 .
pikax Posted February 15, 2013 at 09:36 AM Report #495372 Posted February 15, 2013 at 09:36 AM a minha dúvida é a seguinte: while ((i<1)||(i>3)); não deveria ser while ((i>=1)||(i<=3))??? O facto de ((i>=1)||(i<=3)) nao funcionar e' porque a condicao e' sempre verdadeira. esse while serve para ver se o input do user esta' entre i=>1 && i<=3 Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
HappyHippyHippo Posted February 15, 2013 at 10:35 AM Report #495377 Posted February 15, 2013 at 10:35 AM (edited) estás a aprender C, que tens um nome por si só : "linguagem" se é uma linguagem, deverá ser lida e interpretada, e é isso que tens de fazer. tens a sorte de que a sua leitura até nem é complicada: do // do traduzido directamente do inglês é "fazer" { // a abertura das chavetas pode significar "início" } // o fecho das chavetas pode significar "fim" while ( // while traduzido directamente do inglês é "enquanto" (i<1) // isto é lido com o auxilio da matemática : "i menor que 1" || // símbolo que significa "ou" (i>3) // isto é lido com o auxilio da matemática : "i maior que 3" ) tudo junto dá: fazer ......... enquanto i menor que 1 e ou i maior que 3 o que matematicamente significa toda a área assinalada com os 'x': ...xxxxxxxxx xxxxxxxxx... ...--|--|--|--|--|--|--|--|--|--... -2 -1 0 1 2 3 4 5 6 logo, enquanto o i não tiver um valor que seja 1, 2 ou 3, o código será executado. edit : tinha um erro na frase de interpretação (bem num sítio e mal noutro) Edited February 15, 2013 at 11:51 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Guest Markito Posted February 15, 2013 at 11:44 AM Report #495389 Posted February 15, 2013 at 11:44 AM Percebi! Obrigado pela paciência e pelas respostas. 👍 p.s. vou ter o cuidado de não colocar dúvidas tão simplestas da próxima vez...! 😕
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now