PplWare Mobile

Tutorial C# – II

                                    
                                

Este artigo tem mais de um ano


Autor: Hélio Moreira


  1. M Silva says:

    O exemplo é bom, obrigado. Talvez ousaria dar outra sugestão (usando também apenas o if /else ):

    uso maior ou igual porque os números podem ser iguais..
    if (num >= num1 && num >= num2)
    maior = num;
    else
    if (num1 >= num2)
    maior = num1;
    else
    maior = num2;

    Boa iniciativa.
    M Silva

    • Jr. pachekOo says:

      Tentem esse:

      void Button1Click(object sender, EventArgs e)
      {
      int num = Int32.Parse(tB1.Text);
      int num1 = Int32.Parse(tB2.Text);
      int num2 = Int32.Parse(tB3.Text);

      int aux = 0;
      int maior = 0;

      if (num >= num1){
      aux = num;
      MessageBox.Show(“O Número Nº1 é igual ao Nº2: -> ” + num.ToString());
      }
      else
      aux = num1;
      if (num2 >= aux){
      maior = num2;
      MessageBox.Show(“O Número Nº2 é igual ao Nº3: -> ” + num1.ToString());
      }
      else
      maior = aux;
      MessageBox.Show(“O Número maior é: ” + maior.ToString());

      }

  2. o_unico says:

    Pensei que era um tutorial sobre xingamentos, C#@$&*!§¢£

  3. J.C says:

    Ok eu não quero estar mais uma vez a ser o gaijo que põe o dedo na ferida mas como programador, e pessoa que tem a seu cargo vários, uma das coisas que eu detesto é que se escreva mau código. E uma das normas de ouro é dar nomes às coisas que ajudem o código a ser legível e que seja facil identificar o tipo com que estamos a trabalhar.

    Chamar tB1 e tB2… e num, num1 e num2… a objectos e variaveis… não é a minha ideia de boas práticas.

    Eu sei que isto é um tuturial e que para o efeito não há problema. Mas como meu avô dizia… de pequenino se torce o pepino e por isso acho que já que estamos a fazer tuturials, devemos faze-los respeitando as boas práticas de programação desde o exemplo mais básico ao mais complexo.

    Desculpem o rant mas detesto código deste tipo.

  4. Ruixituh says:

    Lol… É complicado devo admitir…

  5. Simões says:

    Acompanhei estes dois tutoriais.
    Acho a iniciativa muito boa, só não percebo por que razão toda a gente me diz que pascal é uma linguagem ultrapassada e pouca gente utiliza o Delphi ou Lazarus.
    A meu ver, está ao nivel de C# ou acima.
    Tenho desenvolvido muito programa em pascal e até à data, nenhum problema.
    Já agora, em pascal seria qualquer coisa do género:

    var num1, num2, num : integer;
    begin

    num:=strtoint(tB1.text);
    num1:=strtoint(tB2.text);
    num2:=strtoint(tb3.text);

    if ((num1 > num) and (num1 > num2) then maior:=num1;

    showmessage(inttostr(num1));

    end;

    Aqui não existem problemas de maiúsculas ou minúsculas, converter inteiro para string é intuitivo: inttostr, o contrario tb strtoint.

    Por mais que procure, não percebo por que os entendidos não gostam de Lazarus, muito menos de Pascal!!!

    @Hélio Moreira
    Não quero com isto dizer mal do teu trabalho!
    Acho que estás a fazer um excelente tutorial.
    Boa continuação, isto foi só um desabafo.

  6. n3XXuS says:

    @J.C

    Tens bom remédio, não leias 🙂

    “Altere o valor por exemplo para tB1.” – Por exemplo! Agora cada utilizador da’ os nomes que quiser!

  7. Joaquim Almeida says:

    @n3XXuS

    O J.C tem toda a razão naquilo que diz, quando se trabalha em equipa, ou se faz um pequeno projecto para o corrigir daqui a 3 anos, os nomes de objectos/variáveis/classes/propriedades/etc. serão muito importantes para uma rápida leitura do código.
    E não haja dúvida nenhuma, é realmente uma questão de hábito, pois os IDE actuais dão muitas ajudas na escrita de código com nomes grandes, pelo que, escrever “coisas” com nomes enormes não se tornam um problema, antes pelo contrário.
    De qualquer modo é uma boa iniciativa.

  8. Spulva says:

    @Simoes

    Tenta programar algo bastante avançado e ve se na sentes falta de um linguagem com esta, nao e a toua que nao se usa pascal em jogs e softwares nao? tudo tem um razao de ser, pois ate penso que porvavelmente pascal e mais rapido que C#, o q ue tecnicamente seria bom para performance… mas isso e adbicado ter termsod e outras coisas

  9. M Silva says:

    J.C. compreendo o que queres dizer, mas ser programador é algo muito complexo…para se ser apenas um analista programador é necessária muita experiência (pelo menos 7 anos de boas práticas) e ter a sorte de ser bem ensinado! Muita gente julga que sabe programar mas não sabe….Bom mas independentemente disso, ensinar a programar ou apenas escrever um tutorial é muito mais complicado que programar, porque chegar a todos num campo em que o desenvolvimento do raciocínio lógico e a compreensão de um problema conceptual é muito mais importante que a própria linguagem de programação (meramente importante na fase de implementação em que é necessário codificar a resolução de algo…) não é fácil. Além disso, creio que ainda não é o momento certo do Hélio eventualmente mencionar termos como “Pascal Casing” ou “camelCasing”…Nem sequer em paradigmas..
    M Silva

  10. M Silva says:

    Olá Simões, todas as linguagens de programação são boas se utilizadas para os objectivos certos! Esquece questões relacionadas com ser case sensitive ou não, ou até ser interpretada ou compilada…Cada linguagem foi desenvolvida com fins específicos, dentro da mesma classe de linguagens (JAVA, C++, C#) por vezes são modas e as pessoas aderem mais numas que outras…logo há mais código disponível na Internet e assim por diante…No caso das linguagens orientadas a objectos o JAVA teve uma grande aceitação porque colmatou algumas deficiências do C++ (por exemplo no desenvolvimento de aplicações web e outras coisas mais) e houve uma grande aderência…logo código disponível…Por exemplo o Delphi foi a primeira “.NET” que apareceu..Uma grande linguagem (baseada na sintaxe do pascal), no entanto a Microsoft foi buscar o cérebro da mesma a peso de ouro e assim nasceu o .NET…Por exemplo o python é uma excelente linguagem para determinados problemas, etc, etc…Enfim podia ficar aqui a noite toda a contar histórinhas 🙂 mas tenho mais que fazer.
    M Silva.

  11. MytyMyky says:

    @Simões

    Penso que a escolha do C# sobre outras linguagem vai mais para além da linguagem ser melhor ou pior que outros. A mais valia do C# , na minha opinião, vem, essencialmente do Framework .NET que a MS desenvolveu e que considero excelente.

    Apresenta uma fantástica base de trabalho e acelera em muito o desenvolvimento de aplicações complexas.

    Não quero com isto dizer que o Delphi ou Pascal sejam maus. Longe disso. Penso é que talvez pelas empresas serem mais MS-dependente com Windows e afins, naturalmente a programação das tecnologias MS sejam preferiveis.

    Por exemplo, referes o facto do case-sensitive, mas as linguagens C-based sempre assim forma, e/mas no .NET tb há o VB.NET, com capacidades identicas, que já partilha o não case-sensitivity do Basic; Diria que o case sensitivity do C# até é uma mais valia.

    Referes que converter inteiro para string é intuitivo usando inttostr – no caso do .NET tens o Int32.Parse(), que converte não apenas uma string para inteiro, mas practicamente qualquer object que possa ser convertido para interior em inteiro (com os diversos overloads pré-establecidos) ou até o Int32.TryParse que converte e retorna um boolean a indicar se foi ou não convertido. Repare que não é algo da linguagem por si só, é acima de tudo da framework de trabalho, e que é partilhado nas diversas linguagens associadas. Creio muito que é esta a mais valia, e o detalhe que tenderá a estabelecer a escolha.

    @Hélio.

    Parabéns pela iniciativa. No entanto, não sei se concordas, mas os tutoriais não são tanto de C# em si, mas mais de Windows Forms com C#. Não seria mais interessante “leccionar” o C#, recorrendo à base e explicando a linguagem – (tipos, estrutura, e essencialmente a programação por objectos, etc.) do que recorrer ao GUI para a explicar. Ou seja mais virado para a consola e menos para o GUI, para não confundir aquilo que são as classes ligadas aos Forms com o que é a estrutura da linguagem? Por outro lado talvez seja irrelevante.. lol. Seja como for, contínua!

  12. Bruno Andrade says:

    Bom tutorial. Comecei a meses a aprender c#, contudo se me permites a correcção:

    Acho que devias usar { } sempre em cada ciclo. Neste caso não é preciso porque so usas uma linha dentro do ciclo, mas para mais linhas é obrigatorio… Só mesmo para evitar futuros erros.

  13. n3XXuS says:

    @Joaquim Almeida

    Sim, eu concordo contigo nesse aspecto mas repara, não me parece que alguém que esteja a ler um tutorial de C# vai lançar um projecto ou trabalhar em equipa, pelo menos na área de desenvolvimento de software tão cedo. Como deves compreender nem todos os leitores do pplware tem noções básicas de algoritmia nem o habito de programar, seja em que linguagem for. Como e’ lógico, se trabalhares numa equipa, convém dar nomes as variáveis de maneira a que todos percebam que variável e’ aquela e qual a sua função. Mas este tutorial e’ muito básico, serve quase como um incentivo para aqueles que ainda não exploraram esta linguagem, e nesse contexto acho que cada um deve usar as variáveis que achar mais correctas.

  14. Júlio Ramos says:

    Eu dei C na escola mas não orientado a objectos é das minhas linguagens de programação preferidas.
    Pelo que vi em cima isto tipo o visual basic do C.
    Parabéns e óptimo trabalho.

  15. JTeixeira says:

    maior = Math.Max(num2, Math.Max(num, num1));

    apenas mais uma solução… 🙂

    (onde Math.Max(x,y) devolve o numero maior entre x e y)

  16. Helder says:

    Grande ideia mais uma vez. Parabens.

    Digam-me já agora uma forma de programar C# no Ubuntu, já que no primeiro post só indicaram o Microsoft Visual Studio 2008 Express Edition.

    Cumps
    Helder

  17. Hélio Moreira says:

    @Bruno Andrade
    Sim, é uma boa prática usar os { } mas como tu dizes, e muito bem como só há uma linha para o ciclo, logo não é necessário. Mas em posteriores tutoriais, certamente vai ser necessário usar as { }. 🙂

    @MytyMyky
    Concordo contigo, mas estes primeiros tutoriais são unicamente para “apresentar” o C#, mas o C# é orientado para objectos. E o polimorfismo, e afins, vão ser ensinados, e aí não haverá tanto a parte das windows forms, mas sim o “código puro”. 🙂

    @J.C
    Pelos vistos és um expert em todas as áreas, pois sempre que aparece algo, o teu objectivo é criticar destrutivamente. Infelizmente, e quando vou ler algum dos teus comentários aqui no PPLWARE, seja em tutoriais, como em artigos, tu só criticas. Desculpa o desabafo. Em relação à tua critica, penso que não existe a maneira ideal, ou a maneira má de declarar os nomes das variáveis ou qualquer outro tipo de código. Cada um escreve o código como lhe interessar mais. Apesar de eu não escrever o código da maneira como escrevi neste tutorial (foi assim que aprendi), sobretudo penso que seja a maneira mais simples para ententer como as coisas funcionam. Porque se ao segundo tutorial entrasse “a matar”, com código como escrevo profissionalmente, e usando o que uso no dia a dia, quem quisesse aprender, iria ficar sem perceber nada. 🙂

    @M Silva e @JTeixeira
    Sem “tirar nem por” 🙂 Obrigado pela vossa colaboração.

    Cumps,

    Hélio Moreira

  18. MaGiC says:

    Um pequeno acrescento ás criticas construtivas que foram feitas;

    Penso que deverias ir com mais calma e tentar tipo explicar o que são variaveis e tipos de variaveis, ex: string, bool , double, long, etc etc..

    Pois para quem nunca viu programaçao na vida e esta a tentar aprender atraves do pplware pode fazer alguma confusão.

    HENRIQUE POWAAAA!!

  19. Shogun says:

    @M. Silva
    O java veio colmatar algumas deficiencias do C++?O que o java veio fazer foi permitir construir um programa que executa-se em qualquer maquina que tivesse a java virtual machine (jvm) instalada,ou seja,veio garantir a portabilidade dos programas virados para a web,pois dessa forma eu ao entrar numa pagina que contenha uma applet desenvolvida em java eu posso executa-la em windows,linux ou mac desde que tenha a jvm instalada.O C++ faz tudo o que o java faz e até mais,embora n tenha o garbage collector que da mt jeito mas e algo que pode ser implementado em C++.

    @Simões
    Desenvolves muitos programas em pascal?Para que uso?O pascal é uma linguagem estritamente funcional tal como o c que n é orientada a objectos e que ao contrario do c n permite uma manipulacao da maquina a baixo nivel,dai o pessoal n usar muito o pascal hoje em dia.O Delphi nc mexi mas ja ouvi falar mt bem,pelo k percebi é o pascal orientado a objectos, uma especie de visual pascal,foi o k percebi posso estar errado se estiver corrijam.O problema de n ser tao usado como o java ou o c# tem a ver apenas com o facto de n ser mt divulgado penso eu.

    @Artigo 🙂
    Int32.Parse serve apenas e só para converter Strings para inteiros e mesmo as Strings que se convertem tem que ser numeros,se tentarmos por exemplo usar este codigo: Int32.Parse(“Hello World”) ele lancara uma excepcao.Outra questão é já que abordaste um problema com mais do que 2 variaveis,neste caso 3 e em que pretendessaber qual é o maior penso que poderias ter aproveitado para abordar a ordenacao,pois em 4 linhas de codigo provavelmente o problema seria resolvido,e sempre era mais alguma informacao util.A lista dos tipos basicos existentes em C# tb era uma boa ideia,mesmo para quem ja tem algum habito a programar as vezes da sp jeito.De resto penso que foi um bom trabalho,embora concorde com o JC que as boas praticas devem comecar a ser fomentadas logo que nos iniciamos em qualquer actividade.

    PS: Continua,estou a gostar,principalmente pela quantidade de comentarios que aparecem,que nunca pensei que fosse tao grande.

  20. Pedro says:

    Continua 🙂

  21. Aikon says:

    Apenas mais uma solução

    maior = num > num1 ? num : num1;
    maior = maior > num2 ? maior : num2;

    Aikon..

  22. M Silva says:

    @JTeixeira:
    É uma boa solução, mas obrigas a incorporação da classe Math e de tudo que ela tem de bom…mas necessária nesta altura do campeonato(?).

    @Aikon: Em termos de praticas de ensinamento não vejo vantagens por agora dar a conhecer essa forma…Se era para ocupar menos linhas de código:
    int maior = (num >= num1 && num >= num2 ? num : (num1 >= num2 ? num2 : num3));

  23. M Silva says:

    @Shogun: Olá, creio que dissemos o mesmo, mas tu de uma forma mais bem explicada (o meu texto já era grande). Justamente a diferença foi essa: ter uma linguagem orientada a objectos que pudesse correr num “browser” (principalmente isso) e não só: no entanto em C++ podes compilar em qualquer sistema operativo (multiplataforma, não é o problema, pode dar um pouco mais de trabalho só isso) . Além disso o conceito de máquina virtual estendeu-se de forma massiva (olhemos para o flash em que 95 % das pessoas que têm um PC têm a “máquina virtual” do flash). Esse foi o principal fenómeno de mudança. Relativamente ao que dizes sobre o C++ gostava que me desses exemplo mais concretos sobre o que o C++ fazia mais relativamente ao JAVA? Tenho de discordar em vários aspectos: pensando em vários níveis de programadores: Gestão de memória e “threats” mais fácil em JAVA e com alguns níveis de abstracção para o programador…Inclusive já compilei programas em C++ para comparar questões de performance com JAVA e olha que na maior parte dos casos não notei diferença…Estou a falar de algoritmos que exigem já um nível de performance elevado…Isto parece um paradoxo e difícil de acreditar mas é verdade! No caso do C as diferenças já se notam a favor do ANSI C claro. Já para não falar de questões relacionadas com a interface gráfica em que com C++ o processo é bem mais complicado sendo necessário recorrer a widgets (em que a curva de aprendizagem é mais demorada) ao contrário do swing…Enfim podia dar-te mais exemplos…(Atenção é apenas a minha opinião)
    M Silva

  24. S.F. says:

    Só como sugestão, penso que a fim de não gerar nenhuma excepção na conversão de string para int.
    Em vez de fazer:

    int numero = Int32.Parse(caixaTexto.texto);

    Porque não:

    int numero;
    Int32.TryParse(caixaTexto.texto, out numero);

    // esta instrução faz o mesmo que a anterior mas não gera uma excepção e devolve verdadeiro ou falso dependendo do sucesso da conversão.

    Só uma sugestão.

    Cumps

  25. aaa says:

    NOTA:
    para os que estao a aprender. usar:

    try{ …Int32.Parse…}catch(Exception e){ avisa erro }

  26. MaGiC says:

    pelos vistos aqui somos todos “grandes” programadores.. mas os vossos comentarios em nada ajudam. Só confundem quem esta a aprender. Try catch ja é algo um pouco avançado pra quem esta a dar os primeiros passos.. e estes tutorials sao pra quem está a aprender nao pra quem vem praqui mostrar que sabe.

    Voces podem todos saber programar (uns melhor que outros naturalmente) mas em termos de ensinamento teem mto a aprender. Sou Programador informatico de profissão e tive um curso de formação pra formadores e acreditem a reallidade pra quem está a aprender é mtoooo diferente da nossa.

    “small baby steps.”

    é só a minha opinião naturalmente

  27. Hélio Moreira says:

    @aaa
    Isso nesta “altura do campeonato” ainda é muito complicado. Irão ser disponibilizados tutoriais sobre o tratamento de erros / excepções.

    Cumps,

    Hélio Moreira

  28. Pedro Silva says:

    Concordo com muita coisa que foi dita aqui, mas não quando dizem que o C é estritamente funcional.

    Um linguagem estritamente ou puramente funcional é uma linguagem que só tem noção de funções e logo não tem dimensão temporal.. Sendo o C uma linguagem do paradigma imperativo, logo tem dimensão temporal… o C permite uma programação estruturada em que o programa é sub dividido em procedimentos e/ou funções, mas sempre num paradigma imperativo.

    Num ambiente estritamente funcional apenas se define as funções (não confundir com procedimentos) e não a ordem que em que estas podem ser executadas, apesar de terem mecanismos para se praticar programação imperativa (ex: Haskell, Lisp, …)

    só este reparo, mas percebi o que se queria dizer

    Quanto às diferenças entre Java e C++ …

    O Swing é uma biblioteca que permite criar GUI’s… não faz parte da linguagem Java mas sim da biblioteca de classes da plataforma Java.. o que é bastante diferente. Também existem bibliotecas “cross-platform” para o mesmo efeito em C++

    Quanto ao C++ ser mais poderoso que o Java, basta olhar para os C++ Templates que permitem muito mais liberdade. Apesar de agora o Java ter os tipos Generics (tal como o C# 2.0) estes foram todos baseados nos C++ Templates.

    cumps

  29. Telmo Costa says:

    Parabéns!

    Adoro iniciativas deste género!

    Continua o bom trabalho, Saudações.

  30. BESTCINE says:

    mais um Excelente post… Grande ajuda que me deu!

    http://www.best-cine.com :: Saiba tudo sobre CINEMA!

  31. Ze das Couves says:

    Outra solução passa por ordenar por ordem crescente os números, em que o último número da solução é o número maior, vice-versa.
    Isto pode ser feito recorrendo a matrizes, ou listas.

  32. luminoso says:

    mto bem. Bom artigo

  33. Luis Madaleno says:

    @Helder

    Para linux existe o Mono, que é uma versão open source do .NET framework.
    http://www.mono-project.com/, e para programar com ela podes usar o MonoDevelop que tb é free.

    Quanto ao tutorial, é claro que o código poderia estar muito mais optimizado, mas a ideia é que quem não sabe C# aprenda alguma coisa e esse objectivo parece ser conseguido. Portanto acho desnecessário tanto comentário sobre como o código deveria ter sido escrito. O tempo e a pratica fazem o resto para quem quer aprender.

  34. Shogun says:

    @Pedro Silva
    Peco dsc de facto foi um erro,eu keria dizer imperativa em vez de funcional,o ml é k é funcional por exemplo.

    @Magic
    Penso que niinguém quis dizer k o codigo apresentado deveria ter sido outro,apenas apresentamos outras solucoes,da msm forma k o autor do artigo da o seu grande contributo,penso q kem comenta tb pode dar o seu contributo apresentando outras solucoes de modo a kem esta a aprender e msm kem ja sabe mt encontrar sp alternativas aos seus metodos,novas ideias penso k nc fizeram mal a ng,o k acontece e k as vezes a forma de contribuir pode n ser entendida como um contributo mas sim uma critica destrutiva,n sendo essa a intencao de ng penso eu.

    @M Silva
    No C++ tens k fazer a gestao de memoria manualmente o k as vezes pode ser util,tal como podes fazer o acesso directo a memoria com apontadores,era esse tipo de coisas que eu keria dizer,e de facto um programa escrito em C++ pode correr em kk SO mas primeiro tens k o compilar para esse SO o k n acontece com o java k apenas necessita ser compilado uma vez.Concordo cnt kd dizes k e mais facil aprender a desenvolver GUI´s (graphic user interfaces) em java do k em C++ mas a liberdade k tens por exemplo a trabalhar com awt em java n e a msm k tens a trabalhar com a win api em c++ nem tens as msm possibilidades,posso-me referir a uma api simples bitblt,axo k e assim k se escreve k n e possivel,ou pelo menos ainda n consegui, usar em java.

    PS: Todos os comentarios sao uteis estamos sp a aprender uns com os outros, ng ker exibir-se como um “grande programador” como ja alg aki disse,mas sim partilhar o seu conhecimento e as suas ideias,claro k ha passos k sao enormes para alguns mas para outros sao mais pekenos e este post tal como o blog sao dirigidos a um vasto grupo de leitores.

  35. Pedro Silva says:

    @ Shogun

    Não é preciso pedir desculpa 🙂

    “posso-me referir a uma api simples bitblt,axo k e assim k se escreve k n e possivel,ou pelo menos ainda n consegui, usar em java.”

    É assim que se chama.
    Podes usar a API, “apenas” tens de criar o interface JNI para ela 🙂

    Internamente a AWT deve usar essa API (através do JNI, como é óbvio), mas não deve permitir usa-la directamente.
    Não fazia muito sentido, porque desse modo a AWT deixaria de ser “platform-independent”, visto que o comportamento da AWT é indeferente do SO que está por baixo… isso é conseguido, claro, através do JNI 🙂

    cumps

  36. Joao Machado says:

    Parabens pplware & Helio. Considero uma excelente iniciativa. Realmente há muitas outras formas de proceder para chegar à mesma solução mas para um primeiro contacto as vossas abordagens foram muito simples e compreensíveis.
    Contudo há sempre pessoas com uma visão destrutivas mas sinceramente deveriam perceber a finalidade deste post – Ensinar os primeiros passos do C#!!!! Quando aprendi na faculdade também eram programinhas “HelloWorld” mas era só para começar a entender como funcionava tal como este post. Quem realmente gostar e se interessar por esta linguagem, depois dos primeiros passos, que investigue e há dezenas de sites onde se pode aprender (em programação nunca se sabe tudo e para além disso há sempre outras formas de fazer as coisas).

    Cumprimentos

  37. MaGiC says:

    @ shogun

    concordo plenamente com os contributos mas mais uma vez volto a frizar para o facto de isto ser um tutorial e pra quem esta a aprender aquilo que pode ser para ti uma “outra” soluçao para essa pessoa pode ser uma grande confusão! É isso que quero dar a entender.. normalmente num primeiro contacto ate as pessoas estarem bem cientes do que estao a fazer nao se apresenta outras soluçoes.

    A titulo de exemplo se tentares explicar aos teus avós o que é o copy-paste penso que iras ter mais sucesso em lhe explicares apenas o “botao direito do rato ===> copiar e dps a botao direito do rato colar” do que propriamente dizeres k teem o CTRL + C e CTRL +V e ainda podem ir a Editar ==> copiar.. Editar… colar.. ou ainda pressionar o CTRL enqt arrastam.. epah ha uma panoplia de soluçoes.. mas no momento em que estao a aprender.. uma unica solução é o suficiente pa apanhharem a ideia e nao serem confundido.

    again.. just my opinion.

  38. Mi_lady says:

    Muitos parabéns!
    Linguagem simples e acessível e descrição passo a passo.
    Muito bom para principiantes.

  39. Aikon says:

    @M Silva
    Postei aquilo, não pensando no ensino nem na economia de linhas, apenas postei uma solução, usando um recurso que ainda não haviam comentado..!

    Att
    Aikon..!

  40. Aikon says:

    @M Silva
    E ainda pensando em ensinamento, o seu código está incorreto.
    No exemplo do post, em 1 linha seria
    maior = (num >= num1 && num >= num2 ? num : (num1 >= num2 ? num1 : num2));

  41. Dark says:

    sim senhor, continuem…

    estou a gostar! e tou a ver que anda muita gente por ca em programação…

    hehe…

    eu estou a pensar em criar um site para programadores, mas para ajudar em desenvolvimento de software educativo open source e em portugues, mas facilmente adaptavel a outras linguas… alguem alinha??? eu tenho ideias e material, falta-me é pessoal a ajudar… 🙂

  42. Aikon says:

    @Dark
    Gostei da idéia do site, posso ajudar com apostilas e tutoriais, e ajudas com fóruns também..

    Att
    Aikon

  43. Nelson N says:

    42 comentários e todos com conhecimentos em C#
    Sou muito burro ou muito cego! onde é que o programa vai “buscar” os Números 10 12 14? A lógica de os ordenar compreendo mas em que sítio é que lhe disseram que os nrs a ordenar eram estes?

  44. C. Oliveira says:

    Mas vocês não sabem qual é o maior? É preciso um programa para isso? lol …. estou a brincar 😉

  45. n3XXuS says:

    @Nelson N

    “O objectivo é criarmos três “textbox” onde vamos digitar um número em cada uma. No fim, o programa vai indicar qual o maior.” – Passas-te isto a’ frente? E’ suposto tu meteres 3 números e ele dizer-te o maior, não interessa quais os números que metes. LOL!

    @C. Oliveira

    LOOOOOL! ^^

  46. curioso says:

    Primeiro os meus parabens pela excelente iniciativa.

    Eu concordo com o uso do GUI logo no inicio, ou a maioria das pessoas desistia logo.

    Quanto á escolha do C#, hummm…. Apesar de evitar ao extremo linguagens interpretadas, devo reconhecer, que a framework .Net é muito boa e por isso é uma boa escolha, mas qualquer outra linguagem k use o .Net sevia.

    Para os actuais ou antigos utilisadores das linguagens que usam a VCL, é obvia a evidencia de que o .Net é no seu grande essencial uma copia da VCL.

    OFF TOPIC: Quanto ao facto do C++ não ter grande vantagem em relação ao Java em algoritmos complicados, peço desculpa, mas a minha experiencia diz-me sempre o contrario.

    Normalmente o problema é que não podemos programamos em C++ como como se estivese-mos a programar Java, não pode ser assim.

    O C++ é uma fortissima linguagem, mas bem dominada, não basta programar algo em C++ e dizer que por ser em C++ vai ter muita performance, tem que se levar as coisas mais a serio e estar disposto a “sujar um poucos as mãos” e usar tudo o que o C++ nos dá, dá trabalho, mas os resultados são compensão largamente para codigo que necessite de uma elevada performance

    Ou meus amigos se não querem sujar as mãos nem vale a pena pensar em C++, usem outra liguagem.

  47. Rfas says:

    Eu acho que este tutorial devia continuar. Por causa de alguns cometários eu e outros que gostámos deixámos de ter.
    abraço aos bem-intecionados.

  48. romulo alves says:

    Caro amigo seria possivel me enviar tutorial de C# para desenvolviemnto Web:::???

  49. iniciante says:

    Boas!!

    Parece que os comentários abrandaram um pouco (espero ter resposta).

    Antes de mais parabéns pelo trabalho, muito bom e útil.

    Agora relativamente ao programa.
    Penso que é um bom exemplo para iniciar. Embora penso que este mesmo exemplo podia ter um segundo capitulo, mesmo sem a utilização de coisa desnecessárias nesta altura do campeonato.

    Esse tal segundo capitulo poderia, por exemplo expor (que são as minhas duvidas):
    como é que se poderá saber qual a textBox cujo numero é maior;
    como efectuar a operação não preenchendo uma textBox, ou seja, com textBox(s) vazia(s);
    (e por ultimo) Como prevenir que ocorram erros, ou que seja preenchida uma textBox com um caracter invalido, diferente de número;

    Obrigado

  50. vitor says:

    private void bt_adicionar_Click(object sender, EventArgs e)
    {
    if (txt_nome.Text == “”)
    MessageBox.Show(“favor inserir o nome”);

    else if (txt_peso.Text == “”)
    MessageBox.Show(“favor inserir o Peso!”);

    else

    {
    ListViewItem items = new ListViewItem();

    items.Text = txt_nome.Text;

    items.SubItems.Add(txt_peso.Text);

    lstvw_add.Items.Add(items);

    txt_nome.Text = “”;
    txt_peso.Text = “”;

    txt_nome.Focus();

    }

    }
    }
    }

    gostaria de saber o resultado final de quem é mais pesado.
    Mas não sei como continuar…
    obrigado

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.