Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 1
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 2
Nota sobre direitos autorais:
Este e-book de autoria de Herbert Moroni Cavallari da Costa Gois, sendo comercializado diretamente atravs do site www.juliobattisti.com.br e www.linhadecodigo.com.br ou atravs do site de leiles Mercado Livre: www.mercadolivre.com.br, mediante contato atravs do email: batisti@hotmail.com ou webmaster@juliobattisti.com.br, diretamente pelo autor ou por Jlio Battisti. No Mercado Livre, somente o usurio GROZA que tem autorizao para comercializar este e-book. Nenhum outro usurio/email e/ou empresa est autorizada a comercializar este ebook.
Ao adquirir este ebook voc tem o direito de l-lo na tela do seu computador e de imprimir quantas cpias desejar. vetada a distribuio deste arquivo, mediante cpia ou qualquer outro meio de reproduo, para outras pessoas. Se voc recebeu este ebook atravs do e-mail ou via ftp de algum site da Internet, ou atravs de um CD de Revista, saiba que voc est com uma cpia pirata, ilegal, no autorizada, a qual constitui crime de Violao de Direito Autoral, de acordo com a Lei 5988. Se for este o caso entre em contato com o autor, atravs do e-mail webmaster@juliobattisti.com.br, para regularizar esta cpia. Ao regularizar a sua cpia voc ir remunerar, mediante uma pequena quantia, o trabalho do autor e incentivar que novos trabalhos sejam disponibilizados. Se voc tiver sugestes sobre novos cursos que gostaria de ver disponibilizados, entre em contato pelo e- mail: webmaster@juliobattisti.com.br.
Visite periodicamente o site www.juliobattisti.com.br para ficar por dentro das novidades: Cursos de informtica. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 3
Guias de Estudo para os Exames de Certificao da Microsoft. Artigos e dicas sobre Certificaes da Microsoft. Artigos sobre Carreira e Trabalho. Dicas de livros e sites sobre diversos assuntos. Simulados gratuitos, em portugus, para os exames da Microsoft.
ESTE E-BOOK NO PODE SER FORNECIDO EM UM CD OU DVD DE NENHUMA REVISTA SE VOC OBTEVE UMA CPIA DESTE E-BOOK ATRAVS DO E-MULE, KAZAA, MORPHEUS OU OUTRO PROGRAMA DE COMPARTILHAMENTO, SAIBA QUE VOC EST COM UMA CPIA ILEGAL, NO AUTORIZADA USAR UMA CPIA NO AUTORIZADA CRIME DE VIOLAO DE DIREITOS AUTORAIS, COM PENA PREVISTA DE CADEIA VOC S PODE USAR ESTE E-BOOK SE VOC COMPROU ELE DIRETAMENTE COM O AUTOR OU ATRAVS DOS SITES WWW.JULIOBATTISTI.COM.BR OU WWW.LINHADECODIGO.COM.BR
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 4
PR-REQUISITOS PARA O CURSO:
Para que voc possa acompanhar as lies deste curso necessrio que voc j tenha preenchido os seguintes pr-requisitos:
Conhecimento bsico do Windows 98, 2000 ou XP, tais como:
Criao de pastas e subpastas. Utilizao do mouse e do teclado. Operaes bsicas com arquivos e pastas, usando o Windows Explorer. Conhecer conceitos tais como cones, rea de trabalho, janelas do Windows, uso de menus e outras configuraes bsicas do Windows.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 5
Palavras do autor:
A proposta desse curso ensinar os conceitos sobre lgica de programao e a construo de algoritmos computacionais. Alm disso apresentamos duas linguagens de programao e ensinamos a aplicar os conceitos aprendidos de lgica nas mesmas.
O VB.NET e C# junto com o Visual Studio .NET 2005 compe uma ferramenta extremamente robusta e fcil de utilizar, com perfeito suporte a todas as novas ondas que rondam o mundo da informtica e tecnologia.
Tanto a linguagem VB.NET e a C# trabalham de forma praticamente idntica na plataforma .NET da Microsoft, com diferena de sintaxe, como voc vai ver se acompanhar o contedo das duas linguagens.
O Visual Studio .NET 2005 a melhor ferramenta de desenvolvimento de aplicaes para a plataforma .NET. Com uma interface amigvel e integrada com os ambientes e de fcil entendimento, proporciona aos desenvolvedores a criao de aplicaes sofisticadas com todos os recursos existentes, sem ter que ficar criando parte de cdigo em um aplicativo e o restante no outro. possvel com o Visual Studio gerenciar recursos da mquina e local e de um possvel servidor, criar aplicaes para Windows, web e dispositivos mveis.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 6
Tambm estou a disposio para responder eventuais dvidas sobre o contedo do curso, envie-me tambm suas sugestes para que possamos sempre melhorar o material proposto. Meu e-mail para contato herbertmoroni@hotmail.com ou moroni@weblitenet.com.br.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 7
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 8
ndice do Curso
CAPITULO 1............................................................................................... 11 INTRODUO CONCEITOS INICIAIS........................................................... 11 CAPITULO 2............................................................................................... 15 ALGORITMO .............................................................................................. 15 CAPITULO 3............................................................................................... 28 VARIVEIS, TIPOS DE DADOS E CONSTANTES ............................................... 28 3.1 Tipos de dados ............................................................................ 29 3.2 Declarando Variveis.................................................................... 31 3.3 Constantes ................................................................................. 33 3.4 Case-sensitive............................................................................. 34 3.5 Exerccios para fixao ................................................................. 35 CAPITULO 4............................................................................................... 37 OPERADORES ............................................................................................ 37 4.1 Operadores de atribuio.............................................................. 37 4.2 - Operadores aritmticos ................................................................. 38 4.3 Operadores relacionais ................................................................. 39 4.4 Operadores Lgicos...................................................................... 41 4.5 Funes matemticas................................................................... 43 4.6 Precedncia dos operadores .......................................................... 44 4.7 Tabela-verdade ........................................................................... 46 4.8 Exerccios para fixao ................................................................. 48 CAPITULO 5............................................................................................... 49 COMANDO DE ENTRADA E SADA ................................................................. 49 5.1 Entrada de dados......................................................................... 49 Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 9
5.2 Sada de dados............................................................................ 50 CAPITULO 6............................................................................................... 53 ESTRUTURAS DE CONTROLE........................................................................ 53 6.1 Estruturas de deciso................................................................... 53 6.1.1 Estruturas de deciso simples..................................................... 54 6.1.2 Estruturas de deciso compostas................................................. 58 6.1.3 Estruturas de deciso aninhadas ................................................. 61 6.1.4 Estruturas de deciso de mltipla escolha..................................... 63 6.1.4 Exerccios para fixao............................................................... 67 6.2 Estruturas de repetio ................................................................ 68 6.2.1 Estruturas de repetio com teste no inicio................................... 69 6.2.2 Estruturas de repetio com teste no fim...................................... 70 6.2.3 Estruturas de repetio com varivel de controle........................... 73 6.2.4 Exerccios para fixao............................................................... 74 CAPITULO 7............................................................................................... 75 ESTRUTURAS DE DADOS VETORES E MATRIZES .......................................... 75 7.1 Vetores ou Arrays........................................................................ 75 7.2 Matrizes ..................................................................................... 80 CAPITULO 8............................................................................................... 84 PROCEDIMENTOS E FUNES...................................................................... 84 8.1 Procedimentos ............................................................................ 85 8.2 Funes ..................................................................................... 91 8.3 Escopo de variveis ..................................................................... 93 CAPITULO 9............................................................................................... 95 LGICA DE PROGRAMAO COM C#............................................................. 95 9.1 Tipos de dados em C#.................................................................130 9.2 Declarando Variveis em C# ........................................................132 9.3 Constantes em C#......................................................................133 Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 10
9.4 Operadores de atribuio em C#...................................................134 9.5 - Operadores aritmticos em C#......................................................135 9.6 Operadores relacionais em C#......................................................136 9.7 - Operadores Lgicos em C#...........................................................137 9.8 - Entrada e Sada de dados em C#...................................................147 9.9 Estruturas de deciso em C#........................................................148 9.10 Estruturas de repetio em C# ...................................................160 9.11 Vetores e matrizes em C#..........................................................173 9.12 Procedimentos e funes em C# .................................................187 CAPITULO 10............................................................................................206 LGICA DE PROGRAMAO COM VB.NET......................................................206 10.1 Tipos de dados em VB.NET.........................................................230 10.2 Declarando Variveis em VB.NET.................................................231 10.3 Constantes em VB.NET ..............................................................233 10.4 Operadores de atribuio em VB.NET...........................................233 10.5 - Operadores aritmticos em VB.NET..............................................234 10.6 Operadores relacionais em VB.NET ..............................................235 10.7 - Operadores Lgicos em VB.NET...................................................237 10.8 - Entrada e Sada de dados em VB.NET...........................................238 10.9 Estruturas de deciso em VB.NET................................................239 10.10 Estruturas de repetio em VB.NET............................................245 10.11 Vetores e matrizes em VB.NET..................................................261 10.12 Procedimentos e funes em VB.NET .........................................280
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 11
CAPITULO 1 INTRODUO CONCEITOS INICIAIS
Analise as seguintes afirmativas:
O livro esta no armrio. O armrio esta fechado. necessrio primeiro abrir o armrio para depois pegar o livro.
Esse exemplo comprova que sempre que pensamos ou fazemos algo a lgica nos acompanha. Podemos perceber a importncia da lgica na nossa vida, no s na teoria, mas tambm na pratica, j que sempre que queremos pensar, falar, escrever e agir corretamente precisamos colocar ordem no pensamento, isto utilizar a lgica.
Ento podemos definir a lgica como tcnica de encadear os pensamentos para atingir um determinado objetivo.
Usaremos a lgica de forma a organizar e resolver problemas que desejamos programar.
Perceba a importncia do objetivo. Se voc no tiver um objetivo no vai conseguir definir a seqncia necessria para alcan-lo. Isso pode parecer bsico, mas muito importante e muitas vezes a falta de foco no objetivo atrapalha no desenvolvimento dos programas. J vi muitos programadores experientes perderem um bom tempo no desenvolvimento de uma rotina exatamente por Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 12
perderem o foco no objetivo da mesma. Procure sempre deixar bem claro seu objetivo e definir a seqncia lgica antes de comear a programar, isso vai lhe poupar um bom tempo e vai aprimorar sua lgica. No comeo ou para problemas difceis pegue uma folha e anote a seqncia lgica, se necessrio faa os diagramas conforme aprender neste curso.
Como voc sabe, nosso raciocnio algo abstrato e intangvel, temos a capacidade de expressa-lo atravs das palavras e escrita que baseado em um determinado idioma. Este idioma nada mais do que um conjunto de regras e padres (gramtica). O que quero que voc compreenda aqui que no importando o idioma sempre seguimos uma ordem de raciocnio, e o idioma apenas a forma que utilizamos para expressar esse raciocnio.
Da mesma forma ocorre na lgica da programao, temos varias formas de expressar nosso raciocnio em diversas linguagens de programao. Estas linguagens so muito atreladas a recursos dos computadores que pouco tem a ver com o raciocnio original, por isso utilizaremos durante o curso os algoritmos que nos ajudaro a expressar nosso raciocnio independente da linguagem utilizada para se programar.
O algoritmo pode ser definido como uma seqncia de passos necessrios execuo de um objetivo.
Por exemplo, para fazer pipoca no microondas voc precisa seguir os seguintes passos:
Pegar o pacote de pipoca; Abrir o microondas; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 13
Colocar o pacote no microondas; Fechar o microondas; Apertar o boto pipoca;
Esse conjunto de passos para fazer pipoca de microonda um algoritmo. Um algoritmo para fazer pipoca de microondas.
Tambm fiquei com vontade de comer pipoca, mas voltando ao nosso assunto, com o exemplo da pipoca percebemos que embora pouco usuais, os algoritmos so muito comuns em nossos programas e que podemos organizar de forma lgica e seqencial toda tarefa que formos realizar desde que tenhamos um objetivo bem definido.
Muitas vezes realizamos este tipo de atividade inconscientemente, sem percebermos os detalhes que nos levam a alcanar o objetivo proposto.
Existem muitas formas de se resolver um problema, afinal cada pessoa pensa e age de maneira diferente. Ento podemos ter mais de uma soluo correta para um problema, a soluo correta a que atinge o objetivo. O bom senso e a prtica indicaro qual a soluo mais apropriada, que com menor esforo e maior objetividade produz o resultado esperado.
Para voc compreender melhor e fechar o contedo deste capitulo vamos fazer um algoritmo um pouco mais complexo, segue o problema:
Trs jesutas e trs canibais precisam atravessar um rio usando um barco com capacidade para duas pessoas. Por segurana, no se deve deixar que em Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 14
nenhuma margem o nmero de canibais seja maior que o de jesutas. (Seno os canibais podem comer o jesuta sozinho.)
Vamos soluo:
Atravessar um jesuta em um canibal. Voltar o jesuta com o barco. Atravessar dois canibais. Voltar um canibal com o barco. Atravessar dois jesutas. Voltar um jesuta e um canibal. Atravessar dois jesutas. Voltar um canibal. Atravessar dois canibais. Voltar um canibal. Atravessar dois canibais.
Esse o nosso algoritmo ele representa uma linha de raciocnio que pode ser descrita de varias maneiras, tanto grficas como textuais. At agora usamos a forma textual, no prprio portugus colonial, no entanto durante o curso voc vai aprender uma tcnica melhor para expressar os seus algoritmos, chamada de PSEUDOCDIGO.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 15
CAPITULO 2 ALGORITMO
Para escrever um algoritmo voc precisa descrever a seqncia de instrues de maneira simples e objetiva. Para isso siga as seguintes instrues:
Use somente um verbo por frase. Imagine que esta desenvolvendo um algoritmo para quem no trabalha com informtica. Use frases curtas e simples. Seja objetivo. No use palavras que tenham sentido dbio ou duplo sentindo.
Ao criar um algoritmo divida o problema apresentado em trs fases:
ENTRADA PROCESSAMEN TO SAIDA
Entrada representa a entrada de dados no algoritmo. Processamento so os procedimentos utilizados para chegar ao resultado final. Sada so os dados j processados.
Vamos a mais um exemplo, neste vamos fazer um algoritmo que calcule a mdia aritmtica entre quatro nmeros. Para isso primeiramente vamos fazer trs perguntas: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 16
1 Quais os dados de entrada? 2 Qual ser o processamento? 3 Quais os dados de sada?
Os dados de entrada sero os quatro nmeros que iremos utilizar para calcular a mdia. Chamaremos de N1, N2, N3, N4.
O processamento ser a soma dos quatro nmeros divididos por quatro.
O dado de sada ser a mdia ou resultado final.
Vamos ao nosso algoritmo:
Receber N1. Receber N2. Receber N3. Receber N4. Somar N1,N2,N3 e N4. Dividir o resultado da soma por quatro. Mostrar o resultado da diviso.
Verifique agora o seguinte diagrama:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 17
Inicio Somar N1, N2, N3, N4 Dividir o resultado da soma por 4 Exibir o resultado Fim Receber N2 Receber N1 Receber N3 Receber N4
Com voc j percebeu, este diagrama representa o algoritmo que acabamos de fazer. Esse tipo de diagrama conhecido como DIAGRAMA DE BLOCO ou FLUXOGRAMA.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 18
No quadro abaixo voc vai conhecer os principais smbolos para a criao de um DIAGRAMA DE BLOCO ou FLUXOGRAMA e o que eles representam:
SIMBOLO NOME FUNO
TERMINAL Indica o inicio ou fim de um algoritmo.
PROCESSAMENTO Representa um processamento
ENTRADA MANUAL DE DADOS Indica entrada de dados manual, atravs de um teclado por exemplo.
EXIBIR Representa a exibio dos dados e informaes, atravs de um monitor por exemplo.
DECISO Representa um teste lgico que escolhe qual instruo ser executado.
PREPARAO Representa uma ao de preparao para o processamento.
CONECTOR Utilizado para interligar partes de um fluxograma ou para desviar o fluxo Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 19
corrente para um determinado trecho do fluxograma.
CONECTOR DE PGINAS Utilizado para interligar partes do fluxograma em pginas distintas.
Como viu no diagrama que criamos somente o smbolo no significa muita coisa, precisamos sempre escrever algo nele que represente a sua funo no nosso algoritmo.
Eu uso o Microsoft Visio para fazer meus diagramas. O template que uso o Basic Flowchart (Metric), que fica na categoria Flowchart.
Vou mostrar rapidamente como criar esse tipo de diagrama no Microsoft Visio, mas fique a vontade para criar os seus onde desejar, incluindo o Microsoft Word ou at mesmo uma folha de papel em branco. Muitas vezes eu crio meus diagramas rapidamente em uma folha em branco mesmo apenas para me certificar ou organizar o cdigo que vou criar.
O Microsoft Visio no vem com o Office em sua verso padro, ele adquirido separado. No entanto, depois de instalado voc pode encontr-lo junto com os demais programas do Office. Para este exemplo vou usar o Microsoft Office 2003 assim como o Microsoft Visio da mesma verso.
Entre no Microsoft Visio, para isso clique em Iniciar > Programas > Microsoft Office > Microsoft Visio.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 20
Selecione Flowchart em Category como a figura acima e clique em Basic Flowchart (Metric).
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 21
Perceba na figura acima a janela a esquerda chamada Shapes, nela voc encontra os smbolos que aprendeu logo acima. O nome deles na Shapes Terminator, Process, Manual Input e Display respectivamente como a tabela.
Para montar seu diagrama basta arrastar os smbolos para o palco.
Vamos montar o diagrama do exemplo que fizemos logo acima. Arraste para o palco:
2 Terminal (terminator). 4 Entrada Manual de dados (manul input) 2 Processamento (process) 1 Exibir (Display)
Organize-os como a figura abaixo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 22
Para digitar um texto dentro do smbolo, de um clique duplo sobre o smbolo desejado. Veja a imagem abaixo, dei um clique duplo sobre o primeiro terminal.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 23
Aps digitar apenas clique fora do smbolo para o zoom voltar como estava.
Para voc ligar um smbolo ao outro use a ferramenta connector tol que se encontra na barra de ferramentas. Como na imagem abaixo.
Aps selecionar a ferramenta voc pode ligar um smbolo ao outro, clicando sobre o primeiro e mantendo o boto pressionado arrastar at o outro. Veja a prxima imagem.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 24
Agora que voc j sabe como utilizar o Microsoft Visio para criar seus diagramas de bloco vamos a mais um exemplo para fixar o contedo at aqui. Vamos a um exemplo mais parecido com o que temos que fazer no mundo da programao embora ainda um problema bem pequeno comparado ao que enfrentamos no dia- a-dia, mas, vamos l.
Considere o seguinte: precisamos fazer um algoritmo que calcule a comisso de venda de um vendedor. Para isso temos os seguintes dados:
A comisso de 5%. Voc tem o cdigo do vendedor. Tem tambm o cdigo da venda, que recupera o valor total da mesma.
Nosso algoritmo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 25
Entrar com o cdigo do vendedor. Entrar com o cdigo da venda. Recuperar valor da venda. Calcular 5% do valor total da venda. Exibir resultado.
Vamos ao diagrama de bloco do nosso algoritmo:
Inicio Fim Receber cdigo do vendedor Receber cdigo da venda Recuperar valor da venda Calcular 5% sobre a venda Exibir resultado
Para finalizar este captulo vamos aprender sobre PSEUDOCDIGO. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 26
Visando a criao de um algoritmo com uma linguagem flexvel, intermediria entre a linguagem natural e a linguagem de programao, utilizamos o PSEUDOCDIGO.
O exemplo a seguir mostra um algoritmo em PSEUDOCDIGO:
Al gor i t mo Exempl o1 Var codVendedor , codVenda: i nt ei r o val or Venda, comi ssao: r eal I ni ci o Most r ar ( Qual o cdi go do Vendedor ) Ler ( codVendedor ) Most r ar ( Qual o cdi go da Venda) Ler ( codVenda) val or Venda Ret or naVal or Venda( codVendedor , codVenda) comi ssao ( 5 * val or Venda) / 100 Most r ar ( comi ssao) Fi m.
Note que na primeira linha identificamos o algoritmo.
A segunda e terceira usamos para fazer a declarao de variveis. Voc sempre declara as variveis que vai usar no seu algoritmo aps a palavra-chave var.
Entre I nicio e Fim temos ento o corpo do algoritmo.
Segue algumas regras para a criao de PSEUDOCDIGO:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 27
A primeira linha sempre deve identificar o algoritmo. No se devem usar espaos entre as letras no nome do algoritmo, para um cadastro de cliente, por exemplo, voc pode colocar cadastroCliente ou cadastro_Cliente. No iniciar o nome com nmeros. No utilizar palavras reservadas, isto , palavras usadas para representar aes especificas. Exemplo: variveis (palavra que representa a rea de declarao de variveis. No utilizar caracteres especiais como acentos, smbolos (? / : @ # etc.), , entre outros. No utilizar nomes iguais para representar variveis diferentes. Ser sucinto e utilizar nomes coerentes.
Nos prximos captulos voc vai aprender mais sobre a criao de PSEUDOCDIGO, e passaremos a utiliz-lo no nosso curso para representar de forma textual nossos algoritmos. O PSEUDOCDIGO ajuda a evitar erros de interpretao e comunicao que podem acontecer quando apenas descrevemos de forma textual, alm impe regras que nos ajudam a implementar melhor o algoritmo em nosso programa.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 28
CAPITULO 3 VARIVEIS, TIPOS DE DADOS E CONSTANTES
Pense em uma caixa que voc usa para guardar suas coisas, qualquer caixa, pode ser uma de papelo. Concorda comigo que a quantidade de coisas que voc pode guardar ou armazenar nesta caixa proporcional ao tamanho da caixa correto? Voc no pode guardar na caixa algo maior do que ela. Concorda?
As variveis de forma geral podem ser comparadas a caixas. Elas guardam informaes na memria do computador. J os tipos de dados so usados para dizer que tamanho ter a nossa varivel ou quanto ela poder armazenar.
Ento sempre que voc cria uma varivel voc na verdade esta dizendo ao computador que esta reservando ou alocando um espao na memria para armazenar algo. Para que o computador saiba quanto ele precisa reservar de espao voc precisa informar o tipo de dado quando esta criando a sua varivel. Voc tambm precisa dar um nome nico a sua varivel para poder referenciar ela em seu programa, ou seja, para que possa atribuir e usar os valores dela.
Antes de aprender a sintaxe de como declarar suas variveis vamos aprender sobre os tipos de dados.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 29
3.1 Tipos de dados
Dados so os valores que iremos usar nos nossos programas para resolver nossos problemas. Se voc precisa fazer uma simples adio, como 45 + 20, os valores 45 e 20 so dados que voc precisa ter para realizar a operao.
Aproximando-nos da maneira que o computador manipula as informaes, podemos dividir os dados nos seguintes tipos:
Inteiro - toda informao numrica que pertena ao conjunto de nmeros inteiros relativos.
Real - toda informao numrica que pertena ao conjunto dos nmeros reais.
Caracter ou Literal - toda informao composta por um conjunto de caracteres alfanumricos: numricos (0...9), alfabticos (A...Z, a...z) e especiais (#,?,!,@).
Lgico - toda informao que pode assumir apenas duas situaes, verdadeiro ou falso.
Os tipos de dados acima so conhecidos como tipos primitivos. Eles so os tipos bsicos usados na construo de algoritmos.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 30
Quando voc precisar armazenar nmeros inteiros em suas variveis voc as declara como Inteiro. Para armazenar valores monetrios ou nmeros com casas decimais voc usa o tipo Real. Para armazenar textos voc usa o Literal o Caracter e finalmente para armazenar apenas um valor lgico, ou seja, verdadeiro ou falso voc usa o tipo Lgico.
Uma varivel do tipo Real vai usar um espao maior na memria do que uma varivel do tipo Inteiro, porque o numero que ela pode armazenar pode precisar de mais espao do que o que disponibilizado para uma varivel do tipo inteiro. Isso quer dizer que ao usar tipos de dados errados voc pode ou desperdiar espao na memria ou ter problemas na hora que for armazenar o dado por no caber no espao alocado. Isso gera um erro no programa.
Outra informao importante. Cada linguagem de programao tem suas particularidade em relao aos tipos de dados primitivos, por isso vou mostrar no curso o que cada varivel pode armazenar para cada tipo de dado em sua respectiva linguagem. De forma geral todas elas dividem os tipos em categorias, como as que voc acabou de aprender.
Como os dados manipulados pelos computadores durante a execuo dos programas so armazenados na memria, esses tipos de dados seguem as caractersticas de formato disponvel nessa memria, ou seja, so organizados em bits e bytes, por exemplo, para representar um numero inteiro poderiam ser usados dois bytes ou 16 bits que a mesma coisa. Isso resultaria em 2 16
combinaes possveis ou 65.536 possibilidades. Lembrando que os nmeros podem assumir valores positivos ou negativos, nosso numero inteiro poderia armazenar um valor que vai de -32.768 a 32.767.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 31
3.2 Declarando Variveis Como voc j aprendeu no inicio deste capitulo, quando declaramos uma varivel estamos alocando um espao na memria do computador para a mesma.
Para declarar uma varivel voc precisa saber qual tipo de dado ela vai armazenar e qual ser o identificador dela. Alm disso, no pode usar como nome de suas variveis uma palavra reservada.
Identificador o nome da sua varivel. atravs dele que voc usa a sua varivel.
Lembre-se destas trs regras quando estiver definindo o nome da sua varivel:
Deve comear por um caractere alfabtico; Podem ser seguidos por mais caracteres alfabticos ou numricos; No devem ser usados espaos ou caracteres especiais;
Segue algumas dicas para voc nomear suas variveis melhor:
Evite usar underline; No crie variveis que apenas se diferenciem apenas pela sua forma. Exemplo: minhaVariavel e outra chamada MinhaVariavel; Procure iniciar o nome com uma letra minscula; Evite usar todas as letras maisculas; Quando o nome tiver mais que uma palavra, a primeira letra de cada palavra aps a primeira deve ser maiscula (conhecido como notao camelCase); Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 32
No use notao Hngara.
Voc tambm pode usar as convenes PascalCasing e camelCasing na nomeao das suas variveis.
Conveno PascalCasing: para usar a conveno PascalCasing para nomear suas variveis, capitalize o primeiro caractere de cada palavra. Exemplo:
I ni ci al i zandoDados
Recomenda-se usar o PascalCasing quando estiver nomeando procedimentos e funes, voc vai aprender sobre elas no capitulo 8.
Conveno camelCasing: para usar esse tipo de conveno, capitalize a primeira letra de cada palavra menos da primeira. Como o exemplo:
pr ecoMedi oDoTer r eno
Recomenda-se essa conveno na nomeao de variveis que usam tipos primitivos.
Exemplos de identificadores vlidos: nome, x, hi 123, k1, not as, medi a, M, ABC, FGTS
Exemplos de identificadores invlidos: 5x, e( 1) , a: g, x- y, pr eo/ 3, asd*, pp&hh
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 33
Exemplo de declarao de variveis em PSEUDOCDIGO: i dade: i nt ei r o val or , x: r eal nome, t el ef one, ender eco: l i t er al pf : l gi co
Perceba nos exemplos acima que podemos declarar mais de uma varivel do mesmo tipo junto, basta separa-las por vrgula. Em Pseudocdigo voc tambm precisa criar suas variveis no comeo do algoritmo aps a palavra-chave Var.
3.3 Constantes
Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Constante como uma varivel, a diferena que o seu valor no alterado durante a execuo do programa, voc pode armazenar o valor da taxa de juros, por exemplo, e sempre que precisar desse valor voc usa a constante.
Voc tambm precisar dizer qual tipo de dado precisar ao declarar sua constante.
Em PSEUDOCDIGO as constantes devem ser declaradas como variveis cujo valor atribudo permanecer inalterado ao longo do programa.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 34
3.4 Case-sensitive
Para finalizar esse capitulo quero apenas que voc compreenda mais este conceito:
O que uma linguagem Case-sensitive?
Para compreender compare a diferena entre as seguintes palavras:
Professora PROFESSORA ProFeSSora professora
Para nos as quatro palavras so iguais. Para uma linguagem que no case- sensitive tambm. Mas para as linguagens que so case-sensitive as quatro palavras so interpretadas diferentes, isso porque essas linguagens diferenciam letras maisculas de minsculas para seus identificadores.
Isso quer dizer que para uma linguagem case-sensitive se voc declarasse quatro variveis conforme as palavras acima, elas seriam quatro variveis diferentes. Um exemplo de linguagem case-sensitive o C#, uma varivel chamada nome diferente de outra chamada NOME em C#.
J em VB.NET se voc declara uma varivel chamada nome voc nem pode declarar outra chamada NOME. Isso gera um erro, porque ele entende que voc Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 35
esta declarando duas varveis com o mesmo nome, isso porque o VB.NET no case-sensitive.
3.5 Exerccios para fixao 1) Classifique os dados de acordo com o seu tipo, sendo (I = inteiro, R = real, C = caracter, L = lgico).
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 37
CAPITULO 4 OPERADORES
Operadores so usados para representar expresses de clculo, comparao, condio e atribuio. Portanto, temos os seguintes tipos de operadores:
De atribuio; Aritmticos; Relacionais; Lgicos.
4.1 Operadores de atribuio
Os operadores de atribuio so usados para expressar o armazenamento de um valor em uma varivel. Esse valor pode ser predefinido e pode ser tambm o resultado de um processamento.
Exemplo: nome Ful ano de t al
L-se nome recebe fulano de tal. O exemplo acima representa a atribuio do valor Fulano de tal na varivel nome.
Mais alguns exemplos: val or 3 Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 38
r esul t at o 45 + 30 codi goCl i ent e 134
4.2 - Operadores aritmticos
Os operadores aritmticos so usados na representao de clculos matemticos, so eles:
Operador Representao em PSEUDOCDIGO Exemplo Incremento Utiliza-se uma expresso. Exemplo: a + 1 a a + 1 Neste caso somado 1 ao valor de a. Decremento Utiliza-se uma expresso. Exemplo a -1 a a 1 Neste caso subtrado 1 do valor de a. Multiplicao * a * b Multiplica-se o valor de a por b. Diviso / a / b Divide-se o valor de a por b. Exponenciao ^ ou ** 2 ^ 3 Aqui representamos 2 elevado a 3 ou 2 3 . Mdulo Mod a mod b Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 39
Retorna o resto da diviso de a por b. Adio + a + b Soma de a com b. Subtrao - a b Subtrao de a com b.
4.3 Operadores relacionais
Primeiramente vamos entender o que uma EXPRESSO CONDICIONAL. Esta uma expresso que sempre retorna um valor boleano, ou seja, VERDADEIRO ou FALSO.
Exemplo:
Pr eo menor que 100.
Se preo for menor que 100 ento o resultado da expresso acima VERDADEIRO. Caso contrario o resultado FALSO.
Voc pode usar os seguintes operadores relacionais para fazer comparaes:
Operador Representao em PSEUDOCDIGO Exemplo Maior > a > b Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 40
Se o valor de a for maior que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Maior ou igual >= a >= b Se o valor de a for maior ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor < a < b Se o valor de a for menor que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor ou igual <= a <= b Se o valor de a for menor ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Igual a = a = b Se o valor de a for igual ao valor de b ento o resultado dessa expresso Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 41
verdadeiro seno falso. Diferente de <> a = b Se o valor de a for diferente do valor de b ento o resultado dessa expresso verdadeiro seno falso.
4.4 Operadores Lgicos
Antes de falar sobre operadores lgicos vamos entender o que uma expresso lgica. Elas sempre retornam tambm um valor booleano, ou seja, verdadeiro ou falso, para compreender melhor vamos ver um exemplo:
Ti ago t em20 anos e Pedr o t em30 anos.
Perceba que o e une duas expresses condicionais. O resultado acima ser verdadeiro de Tiago tiver 20 anos e Pedro 30. Seno ser falso. Se tiago tiver 20 anos e Pedro 31 por exemplo o resultado ser falso.
O e no nosso exemplo conhecido como operador lgico. Voc pode usar os seguintes operadores lgicos nos seus programas:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 42
Operador Representao em PSEUDOCDIGO Exemplo E .e. a = 5 .e. b > 9 Caso o valor de a seja igual a cinco e o valor de b maior que nove o resultado verdadeiro, seno falso. Ou .ou. a = 5 .ou. b > 9 Se o resultado de a for igual a cinco ou o valor de b for maior que nove ento o resultado verdadeiro. O resultado s ser falso as duas expresses retornarem falso. No .no. .no a = 5 Se o resultado de a for igual a 5 ento o resultado ser falso, o operador no inverte o resultado da expresso.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 43
4.5 Funes matemticas
Alm das operaes aritmticas citadas anteriormente, podemos usar nas expresses aritmticas algumas funes da matemtica. Exemplo: a sen( x) No exemplo acima a varivel a esta recebendo como contedo o seno de x. A tabela seguinte mostra as funes matemticas que voc usar em seus algoritmos, o valor de x pode ser um nmero, uma varivel, expresso aritmtica ou tambm outra funo matemtica.
Funo Observao sen(x) Seno de x. cos(x) Coseno de x. tg(x) Tangente de x. arctg(x) Arco cuja tangente x. arccos(x) Arco cujo coseno x. arcsen(x) Arco cujo seno x. abs(x) Valor absoluto ou mdulo de x. int(x) A parte inteira de um nmero fracionrio. frac(x) A parte fracionaria de x. ard(x) Transforma por arredondamento um nmero fracionrio em inteiro. sinal(x) Retorna -1, +1 ou 0 conforme o valor de x seja Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 44
negativo, positivo ou nulo. rnd(x) Valor randmico ou aleatrio de x;
4.6 Precedncia dos operadores
Precedncia de operadores nada mais do que a ordem que as expresses so avaliadas quando mais do que um operador usado em uma expresso, exemplo:
Percebe que a precedncia aqui parecida com a precedncia em matemtica, primeiro foi executado a exponenciao, depois a multiplicao, depois a diviso e ento a soma.
Assim como em matemtica voc pode e deve usar os parnteses para orientar a execuo, como no seguinte exemplo:
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 45
( 3 * 3) ^ 2 9 ^ 2 81
A seguinte tabela mostra a relao nos operadores e sua procedncia:
Operador Observao (), [] Parnteses e colchetes so usados para agrupar expresses determinando a procedncia, como acontece nas operaes matemticas. ^ ou ** Potenciao. *, / Operadores aritmticos de multiplicao e diviso. +, - Operadores aritmticos de adio e subtrao. Operador de atribuio. =, <, >, <=, >=, <> Operadores relacionais. .no. Operador lgico de negao. .e. Operador lgico e. .ou. Operador lgico ou.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 46
4.7 Tabela-verdade
A tabela-verdade representa o conjunto de todas as possibilidades existentes entre os valores de diversas variveis ou expresses e operadores lgicos.
A B A .e. B A .ou. B .no. (A) V V V V F V F F V F F V F V V F F F F V
A tabela verdade acima mostra todos os valores possveis para A e B.
Conforme a tabela acima, se o valor de A for verdadeiro e B for verdadeiro, ento o resultado da expresso A .e. B ser verdadeiro, o valor da expresso A .ou. B ser verdadeiro e o valor da expresso .no A ser falso, e assim por diante.
Vamos a um exemplo para que voc compreenda melhor. Vamos fazer a tabela verdade da expresso: a = 2 .e. b = 5.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 47
Operador
Expresso em algoritmo a = 2 b = 5 a = 2 .e. b = 5 a = 2 .ou. b = 5 .no. b = 5 V V V V F V F F V F F V F V V Resultados possveis F F F F V
Na tabela verdade podemos constatar que as expresses a = 2 e b = 5 podem assumir quatro possibilidades. Ou seja, ambas podem ser verdadeiras (primeira linha dos resultados possveis), a primeira pode ser verdadeira e a segunda falsa, a primeira pode ser falsa e a segunda verdadeira ou ambas podem ser falsas. Essas combinaes dependem portanto dos valores que esto em a e b.
Lembrando que uma expresso pode ter mais de um operador lgico aumentando as possibilidades, como a seguinte expresso:
(a = 5 .e. b > 2) .ou. b <> 20
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 48
4.8 Exerccios para fixao 1) indique qual o resultado ser obtido das seguintes expresses: a) 1 / 2 b) 1 DIV 2 c) 1 MOD 2 d) ( 200 DIV 10 ) MOD 4 e) 5**2 + 3 f) 6 +19-23 g) 3,0* 5,0 +1 h) 1/4+2 i) 29,0/7+4 j) 3/6,0-7 2) Indique o resultado das seguintes expresses: a) 2 > 3 b) ( 6 < 8 ) OR ( 3 > 7 ) c) NOT ( 2 < 3 )
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 49
CAPITULO 5 COMANDO DE ENTRADA E SADA
Os comandos de entrada e sada representam no nosso algoritmo as entradas e sadas de dados, voc j aprendeu a represent-los usando fluxogramas, agora vai aprender como representamos os mesmos nos nossos algoritmos usando pseudocdigo.
5.1 Entrada de dados
Para que o algoritmo possa receber os dados de que necessita adotaremos um comando de entrada de dados denominado ler. A entrada elementar de dados feita por meio do teclado e representada por:
l er ( var i vel )
Usamos como no seguinte exemplo:
Al gor i t mo Exempl o2 Var x: i nt ei r o I ni ci o l er ( x) Fi m.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 50
Esse comando atribui o valor da leitura na varivel x.
O Fluxograma do exemplo acima este:
Inicio Fim X
5.2 Sada de dados
O dispositivo padro de sada do computador o monitor, representamos da seguinte forma:
Most r ar ( var i vel )
Como no seguinte exemplo:
Al gor i t mo Exempl o3 Var x: i nt ei r o I ni ci o Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 51
X 2 Most r ar ( x) Fi m.
Esse comando exibe no monitor o contedo da varivel x, no caso do nosso exemplo o valor 2.
Segue o fluxograma:
Inicio Fim X X
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 52
Al gor i t mo Exempl o4 Var nome: car act er I ni ci o nome Pedr o Most r ar ( O nome : , nome) Fi m.
O exemplo acima Imprime na tela a concatenao, ou seja, o agrupamento da string O nome : com o contedo da varivel nome. No caso do nosso exemplo seria exibido na tela O nome : Pedro
Segue o fluxograma:
Inicio Fim nome O nome : , nome
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 53
CAPITULO 6 ESTRUTURAS DE CONTROLE
Como o prprio nome diz, as estruturas de controle servem para controlar a execuo dos nossos programas. Elas so dividas em:
Estruturas de deciso ou seleo; Estruturas de repetio;
Portanto dividiremos esse capitulo em dois, a primeira parte tratando das estruturas de deciso e a segunda das de repetio.
6.1 Estruturas de deciso
Imagine que voc chegou sua casa e vai abrir a porta da frente para entrar. Se a porta estiver aberta voc entra correto?
Isto uma estrutura condicional. O resultado da pergunta se a porta esta aberta pode ser verdadeira ou falsa. E voc s vai entrar se a porta estiver aberta, correto? Isso estrutura condicional simples. Voc tem apenas uma pergunta, se for verdade ento acontece algo, seno no acontece nada.
Mas como voc sabe se a porta da sua casa no estiver aberta para voc entrar, voc vai tomar alguma outra atitude para entrar. Voc pode bater na porta por Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 54
exemplo para ver se algum abre ela para voc. Nossa estrutura condicional ficaria assim ento:
Se a porta estiver aberta ento voc entra, seno voc bate na porta.
Conhecemos uma estrutura condicional como exemplo acima chama composta, porque tem dois blocos de instruo, um o entrar se a porta estiver aberta e o outro bater na porta caso ela esteja fechada.
No nosso dia-a-dia frequentemente tomamos esse tipo de deciso no mesmo? Agora e se voc bater na porta e ningum abrir?
Neste caso nossa estrutura de deciso no resolveu o problema ainda. Voc ainda no capaz de entrar. O que fazemos geralmente nesse caso utilizar estruturas condicionais aninhadas, ou seja, uma dentro da outra. Exemplo:
Se a porta estiver aberta ento voc entrar, seno voc bate na porta, se ningum abrir ento voc liga para ver se algum atende ao telefone, seno voc vai embora.
Os problemas mais complexos exigem varias estruturas de deciso aninhadas.
6.1.1 Estruturas de deciso simples
Na introduo sobre estruturas de deciso voc j aprendeu o que uma estrutura de deciso simples. Aqui s quero salientar a sintaxe e os exemplos.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 55
Sintaxe em Pseudocdigo:
Se ( condi o) ent o Conj unt o de i nst r ues Fi m- se
Exemplos:
Al gor i t mo Exempl o5 Var i dade: i nt eger I ni ci o Ler ( i dade) Se ( i dade >= 18) ent o Most r ar ( Mai or de i dade) Fi m- se Fi m.
No exemplo acima de se o contedo da varivel idade for maior ou igual a dezoito ento ser mostrado na tela o texto Maior de idade.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 56
Inicio Fim Idade Maior de Idade Idade >=18 .V. .F.
Al gor i t mo Exempl o6 Var sexo: car act er I ni ci o Lei a( sexo) Se ( sexo = F) . ou. ( sexo = f ) ent o Most r ar ( Sexo f emi ni no) Fi m- se Fi m.
No exemplo acima de se o contedo da varivel sexo for igual a F ento ser mostrado na tela o texto Sexo feminino. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 57
Segue o fluxograma:
Inicio Fim Sexo Sexo feminino Sexo =F .ou. Sexo =f .V. .F.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 58
6.1.2 Estruturas de deciso compostas
Como voc j aprendeu, a estrutura de deciso composta prev uma condio com dois conjuntos de instrues para serem realizados de acordo com a avaliao da expresso condicional.
Sintaxe no Pseudocdigo:
Se ( condi o) ent o Conj unt o de i nst r ues que ser r eal i zado se o r esul t ado da expr esso condi ci onal f or ver dadei r o Seno Conj unt o de i nst r ues que ser r eal i zado se o r esul t ado da expr esso condi ci onal f or f al so. Fi m- se
Exemplos:
Al gor i t mo Exempl o7 Var l ogi n: car act er I ni ci o Ler ( l ogi n) Se ( l ogi n = mor oni ) ent o most r ar ( usur i o vl i do) seno Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 59
most r ar ( usur i o i nval i do) Fi m- se Fi m.
No exemplo acima se o contedo da varivel login for igual a moroni ento vai ser exibido usurio valido, seno, ou seja, para qualquer outro valor diferente de moroni ser exibido usurio invalido.
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 60
Al gor i t mo Exempl o8 Var sal do: r eal I ni ci o Ler ( sal do) Se ( sal do >= 0) ent o most r ar ( Sal do posi t i vo) seno most r ar ( Sal do negat i vo) f i m- se Fi m. No exemplo acima se o contedo da varivel saldo for maior ou igual a 0 ento vai ser exibido Saldo positivo, seno ser exibido Saldo negativo. Segue o fluxograma: Inicio Fim saldo Saldo positivo Saldo >=0 .V. .F. Saldo negativo
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 61
6.1.3 Estruturas de deciso aninhadas
Temos estruturas de deciso aninhadas quando temos uma estrutura de deciso dentro de outra.
Estruturas de deciso aninhadas fazem uma seqncia de testes de seleo que podero ser executados ou no de acordo com o resultado das expresses condicionais.
Sintaxe em pseudocdigo:
Se ( condi o_1) ent o Se ( condi o_2) ent o Conj unt o de i nt r ues A Seno Conj unt o de i nst r ues B Fi m- se Seno Conj unt o de i nst r ues C Fi m- se
No modelo acima, se a condio_1 resultar verdadeiro, ento ser realizado o teste da condio_2. O importante aqui que se o resultado da condio_1 for falso a condio_2 nem testada, o cdigo j direcionado para o Seno da primeira estrutura de deciso.
Exemplo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 62
Al gor i t mo Exempl o9 Var ms: i nt eger I ni ci o Ler ( ms) Se ( ms = 2 . ou. ms = 4 . ou. ms = 6 . ou. ms = 9 . ou. ms = 11) ent o Se ( ms = 2) ent o Most r ar ( Est e ms t em28 di as) Seno Most r ar ( Est e ms t em30 di as) Fi m- se Seno Most r ar ( Est e ms t em31 di as) Fi m- se Fi m.
Como voc j deve ter percebido a estrutura acima verifica quantos dias tem o ms atribudo a varivel ms. O primeiro Se verifica se o ms igual a 2 ou 4 ou 6 ou 9 ou 11, que so os meses que tem menos de 31 dias. Se o valor de ms no for nenhum desses valores a execuo vai para seno e mostra que o ms tem 31 dias. Se o valor de ms for igual a um dos valores ento o segundo Se avaliado. Ele verifica se o ms 2, ou seja, fevereiro. Se sim, o ms tem 28 dias, seno tem 30 dias. No nosso exemplo eu atribui 2 a varivel ms ento seria mostrado que o ms possui 28 dias.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 63
Inicio Fim ms Este ms tem 28 dias ms =2 .ou. ms =4 .ou. ms =6 .ou. ms =9 .ou. ms =11 .ou. .V. .F. Este ms tem 31 dias Ms =2 .V. Este ms tem 30 dias .F.
6.1.4 Estruturas de deciso de mltipla escolha
Uma estrutura de deciso de mltipla escolha funciona como um conjunto de opes para escolha.
Sintaxe em pseudocdigo:
Escol ha var i vel Caso t al _coi sa_1 Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 64
Faa i nst r uo a Caso t al _coi sa_2 Faa i nst r uo b Caso t al _coi sa_3 Faa i nst r uo c Caso t al _coi sa_4 Faa i nst r uo d Caso cont r ar i o Faa i nst r uo e Fi m- escol ha
Exemplo:
Al gor i t mo Exempl o10 Var i dade: i nt eger I ni ci o Ler ( i dade) Escol ha i dade Caso i dade < 18 Most r ar ( Menor de i dade) Caso i dade >= 18 . e. i dade <= 55 Most r ar ( Adul t o) Caso i dade = 0 Most r ar ( Beb) Caso cont r ar i o Most r ar ( I doso) Fi m- escol ha Fi m.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 65
Perceba que a estrutura de mltipla escolha tem finalidade parecida com a estrutura aninhada. No exemplo acima se idade for menor que 18 ento ser exibido Menor de idade, se idade for maior ou igual a 18 e menor ou igual a 55 ento ser exibido Adulto. Se o valor de idade for igual zero, ser exibido Beb, se o valor de idade no corresponder a nenhuma das opes acima ento ser exibido Idoso. Como atribu o valor 22 no nosso exemplo a varivel idade ento no exemplo acima ser exibido Adulto.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 66
Inicio Fim idade Idade <18 Idade >=18 .e. Idade <=55 Idade =0 .F. .F. .F. Menor de idade Adulto Beb .V. .V. .V. Idoso
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 67
6.1.4 Exerccios para fixao
1) Construa um algoritmo que verifique a validade de uma senha fornecida pelo usurio. A senha valida deve ser igual a aai3115%.
2) Dados trs nmeros inteiros, coloc-los em ordem crescente.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 68
6.2 Estruturas de repetio
As estruturas de repetio usam as expresses condicionais para repetir um determinado bloco de cdigo. Essas estruturas tambm so conhecidas como estruturas de loop ou lopping.
Exemplo:
Al gor i t mo Exempl o11 Var x: i nt eger I ni ci o x 1 enquant o x < 5 f aa most r ar ( x) x x + 1 f i m- enquant o Fi m.
O bloco de cdigo acima mostrar na tela os nmeros 1, 2, 3 e 4.
A expresso x x + 1 denominada incremento. Isso significa que cada vez que for executado acrescentara 1 ao valor da varivel x. O valor de incremento no precisa ser necessariamente 1, pode ser qualquer outro valor, inclusive negativo, neste caso chamamos de decremento.
Segue o fluxograma do nosso exemplo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 69
Inicio Fim X <5 X x +1 x .V. Loop .F. X 1
6.2.1 Estruturas de repetio com teste no inicio
O exemplo que acabamos de ver na introduo acima uma estrutura de repetio com teste no inicio. Ela tambm conhecida como estrutura Enquanto. Uma caracterstica importante deste loop que o teste feito no inicio, ou seja, antes de entrar no bloco de cdigo. Ento, se logo na primeira vez que a estrutura enquanto for executada o resultado j for falso ento o bloco de cdigo de dentro da estrutura no ser executado nenhuma vez.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 70
Essa uma caracterstica importante das estruturas com teste no inicio.
Sintaxe em pseudocdigo:
Enquant o condi o f aa Bl oco de i nst r ues Fi m- enquant o
6.2.2 Estruturas de repetio com teste no fim
A estrutura de repetio com teste no fim permite a um ou mais comandos serem executados repetidamente at uma condio especifica tornar-se verdadeiro.
Essa estrutura muito semelhante estrutura anterior, a diferena que as instrues so executadas antes da condio ser avaliada. Isso quer dizer que mesmo que o resultado da condio for falso as instrues sero executadas pelo menos uma vez.
Essa estrutura tambm conhecida como Repita.
Sintaxe em pseudocdigo:
Repi t a Bl oco de i nst r ues At condi o
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 71
Exemplos:
Al gor i t mo Exempl o12 Var x: i nt eger I ni ci o x 1 Repi t a most r ar ( x) x x + 1 At x = 5 Fi m.
O exemplo acima vai exibir 1, 2, 3, 4 e 5.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 72
Inicio Fim X 1 X X X +1 X =5 Loop .F. .V.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 73
6.2.3 Estruturas de repetio com varivel de controle
Conhecida como Para, essa estrutura utiliza variveis de controle que definem exatamente o numero de vezes que a seqncia de instrues ser executada.
Usamos esta estrutura quando sabemos exatamente quantas vezes vamos executar o bloco de cdigo.
Exemplo:
Al gor i t mo Exempl o13 Var cont ador : i nt eger I ni ci o Par a cont ador = 1 at 10 passo 1 f aa Most r ar ( 9 X , cont at or , = , 9 * cont ador ) Fi m- par a Fi m.
O exemplo acima mostra na tela a tabuada do 9.
Segue fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 74
Inicio Fim Loop Contador 1, 10, 1 9 X , contador, =, 9 * contador
Sintaxe em pseudocdigo:
Par a var = val or i ni ci al at val or f i nal Passo i ncr ement o f aa Bl oco de i nst r ues Fi m- par a
6.2.4 Exerccios para fixao
1) Faa um algoritmo que leia 50 numeros fornecidos pelo usuario, calcule e exiba a mdia.
2) Faa um algoritmo que exiba a tabuada a partir de um numero fornecido pelo usuario.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 75
CAPITULO 7 ESTRUTURAS DE DADOS VETORES E MATRIZES
Imagine que voc tem que armazenar as faltas cometidas por cada jogador de um time em uma partida de futebol. Voc precisaria armazenar o nome e o nmero de faltas que cada jogador cometeu. Como faria para armazenar isso em variveis? Provavelmente voc teria que declarar duas variveis para cada jogador, uma para armazenar o nome e outra o nmero de faltas, chagando facilmente a 22 variveis, isso, se no houver nenhuma substituio. Neste captulo vamos aprender como gerenciar esse tipo de informao.
Vetores ou Arrays como tambm so conhecidos e Matrizes so usados para gerenciar grande quantidade de informao. Como variveis, voc precisa declarar seus arrays antes de us-los.
7.1 Vetores ou Arrays
Para que voc possa compreender melhor o que so e como usar os arrays vamos fazer um exemplo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 76
J ogador es: vet or [ 1. . 11] de car act er
Acima declaramos um vetor chamado Jogadores do tipo caracter, ou seja, podemos usar esse vetor para armazenar os nomes dos jogadores. Nosso vetor permite que armazenemos 11 nomes conforme especificamos em sua declarao.
Os vetores so declarados no mesmo local que voc declara as variveis.
Agora como adicionamos o nome de um jogador no nosso vetor?
J ogador es[ 1] Di da
Desta forma atribumos o valor Dida na primeira linha do nosso vetor.
Se fizermos assim:
J ogador es[ 6] Di da
O valor Dida do exemplo acima inserido na linha 6 do nosso vetor. Voc percebe assim que para inserir um valor no nosso vetor como atribuir valor a uma varivel, com a nica diferena que precisa especificar o local ou linha onde o valor ser armazenado. O numero que especifica isso conhecido como ndice, ento 6 um ndice no nosso vetor no exemplo acima.
Para recuperar um valor de um vetor voc faz da mesma forma que com as variveis tambm, s que especifica o ndice desejado.
Most r ar ( Gol ei r o: , j ogador es[ 1] ) Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 77
O exemplo acima exibe o nome que esta na posio 1 do vetor.
Voc pode usar a estrutura de deciso Para a fim de varrer os elementos de um vetor.
Exemplos:
Al gor i t mo Exempl o14 Var J ogador es: vet or [ 1. . 11] de car act er I ni ci o J ogador es[ 1] Di da Most r ar ( Gol ei r o: , j ogador es[ 1] ) Fi m.
O algoritmo acima mostra como declaramos, atribumos e lemos o valor de um vetor.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 78
Inicio Fim J ogadores[1] Dida Goleiro: , jogadores[1]
Al gor i t mo Exempl o15 Var num: vet or [ 1. . 6] de i nt ei r o soma, i : i nt ei r o I ni ci o Soma 0 num[ 1] 2 num[ 2] 4 num[ 3] 5 num[ 4] 6 num[ 5] 8 num[ 6] 22 Par a i 1 at 6 Faa Soma soma + num[ i ] Fi m- Par a Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 79
Fi m.
O algoritmo acima um exemplo do uso da estrutura de repetio Para para somar todos os nmeros entre os ndices 1 e 6 do vetor num.
Segue o fluxograma:
Inicio Fim Soma 0 i 1, 6, 1 Soma Soma + num [i] num[1] 2 num[1] 4 num[1] 5 num[1] 6 num[1] 8 num[1] 22
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 80
7.2 Matrizes
Como voc viu no item anterior, utilizamos um vetor para armazenar o nome dos jogadores.
No entanto como falei no principio deste capitulo nos precisamos armazenar o nome e o total de faltas de cada jogador em nosso problema.
Um vetor como uma linha com varias colunas, para armazenar o total de faltas utilizando apenas vetores precisaramos criar um novo vetor para armazenar as faltas ou utilizar matrizes.
Matrizes so mais parecidas com tabelas. Voc pode ter varias linhas.
Novamente para que voc entenda melhor vamos continuar com nosso exemplo dos jogadores.
J ogador es: vet or [ 1. . 11, 1. . 2] de car act er
Essa declarao muito semelhante declarao de vetor porque o vetor uma matriz de uma dimenso.
Delimitadas entre colchetes temos duas declaraes, a primeira representa a linha e o segundo a coluna. Visualmente nossa matriz seria assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 81
Uma tabela com 11 colunas e duas linhas.
Para armazenar um valor em uma matriz fazemos assim:
J ogador es[ 6, 1] J uni nho
No exemplo acima adicionamos o valor Juninho a primeira linha da matriz na coluna seis. No prximo exemplo adicionaremos um valor segunda linha:
J ogador es[ 6, 2] 22
Perceba que coloquei 22 entre aspas porque minha matriz do tipo caracter, ento o 22 que estou armazenando nela um texto e no um numero.
Neste ponto voc j deve ter adivinhado como recuperar valores de suas matrizes, mas vamos ao exemplo:
Most r ar ( Tot al de f al t as do J uni nho: , j ogador es[ 6, 2] )
Exemplos:
Al gor i t mo Exempl o16 Var J ogador es: vet or [ 1. . 11, 1. . 2] de car act er I ni ci o J ogador es[ 6, 1] J uni nho J ogador es[ 6, 2] 22 Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 82
Most r ar ( Tot al de f al t as do J uni nho: , j ogador es[ 6, 2] ) Fi m.
O algoritmo acima mostra como declarar, atribuir e recuperar valores de uma matriz.
Segue o fluxograma:
Inicio Fim J ogadores[6,1] = J uninho J ogadores[6,1] = 22 Total de faltas do juninho: , jogadores[6,2]
O prximo exemplo mostra como fazer operaes com matrizes. A partir de uma matriz de 6 colunas e duas linhas, calculamos e exibimos a media geometria dos Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 83
valores de cada uma das colunas. A media geomtrica calculada pela seguinte expresso: SQRT (x1 * x2), que representa a raiz quadrada do resultado da multiplicao dos elementos da linha pelos da coluna.
Al gor i t mo Exempl o17 Var V: vet or [ 1. . 6, 1. . 2] de i nt ei r o i , j : i nt ei r o pr od: r eal I ni ci o Par a i 1 at 6 Faa Pr od Par a i at 6 Faa Ler ( V [ i , j ] ) Pr od pr od * V[ i , j ] Fi m- par a Most r ar ( Li nha , i , = , SQRT ( pr od) ) Fi m- par a Fi m.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 84
CAPITULO 8 PROCEDIMENTOS E FUNES
Quando voc comear a escrever programas grandes e complexos, ver que seu programa ser composto de vrios algoritmos e que alguns algoritmos existentes em seu programa diferentes precisaro acessar as mesmas variveis e rotinas.
Por padro, variveis so locais aos seus respectivos algoritmos. Entenda nesta introduo que uma varivel local no pode ser acessada em todo lugar do programa - at agora criamos apenas variveis locais.
Procedimento um conjunto de cdigos a serem executados para uma determinada finalidade. Quando voc estiver escrevendo seus programas, vai notar que muito cdigo digitado igual, ou seja, que voc precisa repetir cdigo em vrios locais.
Os procedimentos auxiliam nisso, voc pode criar um procedimento e depois cham-lo em seu programa sempre que for necessrio.
Funo igual a um procedimento s que sempre vai retornar um valor. Um procedimento nunca vai retornar nada.
Os procedimentos e funes tambm ajudam na manuteno do programa.
Imagine que voc precise fazer certo clculo em vrios locais do seu programa. E agora a frmula do clculo foi modificada, voc ter que localizar no seu programa Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 85
cada local que tem a frmula para alter-la. Se voc tiver um procedimento ou funo que faz o clculo, basta alterar o mesmo.
Tanto os procedimentos como as funes so mini-algoritmos que possuem variveis e ate mesmo outros procedimentos e funes dentro deles.
8.1 Procedimentos
Um procedimento tambm conhecido como sub-rotina um conjunto de instrues que realiza uma tarefa. Um algoritmo de procedimento criado da mesma maneira que outro algoritmo qualquer. Voc cria seus procedimentos antes de declarar as variveis dentro do seu algoritmo.
Sintaxe em Pseudocdigo:
Pr ocedi ment o nome_do_pr ocedi ment o ( l i st a de par met r os) Var Decl ar ao das var i vei s que per t encema est e pr ocedi ment o I ni ci o I nst r ues do pr ocedi ment o Fi mPr ocedi ment o
A chamada de um procedimento o momento em que o procedimento acionado e seu cdigo executado. Voc chama seu procedimento pelo nome passando os valores necessrios nos parmetros quando eles existirem. Os parmetros so opcionais.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 86
Sintaxe de chamada de procedimento em Pseudocdigo:
nome_do_pr ocedi ment o ( val or es de par met r os)
Exemplo:
Al gor i t mo Exempl o18 Pr ocedi ment o Cal cul ar Ar eaQuadr ado ( l ado: r eal ) Var Resul t ado: r eal I ni ci o Resul t ado : = l ado * l ado Most r ar ( Resul t ado) Fi mPr ocedi ment o Var l : r eal I ni ci o Ler ( l ) Cal cul ar Ar eaQuadr ado ( l ) Fi m.
O procedimento acima foi feito para mostrar a rea de um quadrado. Para executar o procedimento voc precisa passar o valor do lado do quadrado. Toda vez que voc for precisar mostrar a rea do quadrado na tela vai poder usar esse procedimento.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 87
Voc chama o procedimento da seguinte forma no seu programa supondo que o valor do lado seja 20.
Cal cul ar Ar eaQuadr ado ( 20)
Voc tambm pode passar uma varivel como parmetro, desde que o valor nela seja do mesmo tipo de dado do parmetro, veja o exemplo a seguir, suponha que a varivel ladoDoQuad do tipo real.
Cal cul ar Ar eaQuadr ado ( l adoDoQuad)
Segue o fluxograma do exemplo acima:
Inicio Fim l CalcularArea Quadrado(l) CalcularAreaQuad rado(lado) Resultado lado * lado resultado Retornar
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 88
Perceba que no fluxograma o procedimento feito como se fosse um algoritmo separado, s que no lugar de inicio voc coloca o nome do procedimento e no fim a instruo retornar que significa que o controle de fluxo de dados dever retornar ao procedimento principal. Note tambm como representamos a chamada do procedimento em nosso algoritmo principal.
O prximo exemplo representa um algoritmo cujo procedimento recebe mais do que um parmetro:
Al gor i t mo Exempl o19 Pr ocedi ment o Cal cul ar Ar eaRet angul o ( l ado: r eal , al t ur a: r eal ) Var Resul t ado: r eal I ni ci o Resul t ado : = l ado * al t ur a Most r ar ( Resul t ado) Fi mPr ocedi ment o Var Lado, al t ur a: r eal I ni ci o Lei a( Lado, al t ur a) Cal cul ar Ar eaRet angul o ( Lado, al t ur a) Fi m.
Para declarar mais de um parmetro voc os separa com vrgula como o exemplo acima.
Segue o fluxograma: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 89
Inicio Fim lado CalcularArea Quadrado(lad o,altura) CalcularAreaReta ngulo(lado,altura) Resultado lado * altura resultado Retornar altura
Se os tipos de dados dos parmetros forem iguais voc pode fazer assim:
Al gor i t mo Exempl o20 Pr ocedi ment o Cal cul ar Ar eaRet angul a ( l ado, al t ur a: r eal ) Var Resul t ado: r eal I ni ci o Resul t ado : = l ado * al t ur a Most r ar ( Resul t ado) Fi mPr ocedi ment o Var L1, a1: r eal Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 90
I ni ci o Lei a( L1, a1) Cal cul ar Ar eaRet angul a ( L1, a1) Fi m.
O exemplo abaixo no recebe parmetro nenhum:
Al gor i t mo Exempl o21 Pr ocedi ment o Most r ar Pr opr i et ar i o ( ) Var pr opr i et ar i o: Car act er I ni ci o pr opr i et ar i o Her ber t Mor oni Most r ar ( pr opr i et ar i o) Fi mPr ocedi ment o Var I ni ci o Most r ar Pr opr i et ar i o( ) Fi m.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 91
8.2 Funes
Tudo que se aplica aos procedimentos usado para as funes, elas so criadas e chamadas da mesma maneira. A diferena entre eles que as funes podem ser utilizadas em expresses, como se fossem variveis, pois as funes retornam valores que so associados ao seu nome. Por isso necessrio que ao criar uma funo voc especifique o tipo de dado que ela vai retornar.
Sintaxe em Pseudocdigo:
Funo nome_da_f uno ( l i st a de par met r os) : t i po_de_dado da f uno Var Decl ar ao das var i vei s que per t encema est a f uno I ni ci o I nst r ues da f uno Ret or nar ( var i vel )
Exemplo:
Al gor i t mo Exempl o22 Funo Cal cul ar Ar eaQuadr ado ( l ado: r eal ) : r eal Var r esul t ado: r eal I ni ci o r esul t ado : = l ado * l ado Ret or nar ( r esul t ado) Var Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 92
n1: r eal r esul t : r eal I ni ci o Ler ( n1) Resul t Cal cul ar Ar eaQuadr ado( n1) Fi m.
Perceba que a funo acima no usa um comando de sada para exibir o resultado, ela retorna o contedo da varivel resultado atravs do comando Retornar. Por isso voc no pode simplesmente chamar suas funes para us-las. Segue um exemplo do uso da funo do exemplo acima:
Resul t Cal cul ar Ar eaQuadr ado( n1)
No exemplo acima a varivel Result recebe o resultado da funo CalcularAreaQuadrado. O nico detalhe que a varivel Result deve suportar o mesmo tipo de dado que a funo retorna, no caso do nosso exemplo o tipo real.
Segue o fluxograma:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 93
Inicio Fim lado CalcularAreaQuad rado(lado) Resultado lado * lado resultado Retornar (resultado) Result CalcularAreaQuad rado(num1)
8.3 Escopo de variveis
At agora, todos os exemplos utilizaram variveis locais. Ou seja, variveis que s podem ser utilizadas no escopo do algoritmo/programa no qual foram declaradas. Vamos analisar o seguinte exemplo para que voc possa entender melhor sobre escopo de variveis.
Al gor i t mo Exempl o23 Funo Mul t i pl i car ( a, b: r eal ) : r eal Var r esul t ado: r eal I ni ci o r esul t ado a * b Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 94
Ret or nar ( r esul t ado) Var numer o1, numer o2: r eal I ni ci o Ler ( numer o1, numer o2) Most r ar ( Mul t i pl i car ( numer o1, numer o2) ) Fi m.
No exemplo acima a varivel resultado foi declarada dentro da funo Multiplicar. Essa varivel s pode ser usada dentro desta funo, voc no pode atribuir ou consultar nenhum valor nela diretamente, somente atravs da funo. Chamamos a varivel resultado dentro da funo Multiplicar de varivel local. J as variveis numero1 e numero2 so globais, porque podem ser acessadas tanto pelo corpo do algoritmo quanto por qualquer procedimento ou funo declarada dentro do algoritmo.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 95
CAPITULO 9 LGICA DE PROGRAMAO COM C#
O C#, junto com o Visual Studio .NET 2005 compe uma ferramenta extremamente robusta e fcil de utilizar, com perfeito suporte a todas as novas ondas que rondam o mundo da informtica e tecnologia.
O Visual Studio .NET 2005 a melhor ferramenta de desenvolvimento de aplicaes para a plataforma .NET. Com uma interface amigvel e integrada com os ambientes e de fcil entendimento, proporciona aos desenvolvedores a criao de aplicaes sofisticadas com todos os recursos existentes, sem ter que ficar criando parte de cdigo em um aplicativo e o restante no outro. possvel com o Visual Studio gerenciar recursos da mquina e local e de um possvel servidor, criar aplicaes para Windows, web e dispositivos mveis.
Meu objetivo neste capitulo ajuda-lo a aplicar os conhecimentos de lgica de programao adquiridos at aqui na linguagem de programao C#.
Vamos primeiramente conhecer um pouco do Visual Studio.NET, a ferramenta que utilizaremos para desenvolver nossos aplicativos e criar nosso primeiro exemplo.
1 Entre no Visual Studio.NET, eu estou usando a verso 2005, mas os exerccios funcionam em qualquer verso.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 96
Voc pode entrar no Visual Studio.NET atravs do menu Iniciar / Programas / Microsoft Visual Studio .NET / Microsoft Visual Studio .NET , sinta-se a vontade para criar qualquer atalho para ele.
A imagem anterior mostra o Visual Studio .NET assim que o iniciamos, exibida a pagina Start Page onde podemos abrir rapidamente os ultimos projetos criados atravs da caixa Recent Projects.
2 No menu File, aponte em New, e clique em Project. (Ou clique Ctrl+Shift+N).
A caixa de dialogo New Project aparece. Ela permite que criemos um novo projeto usando vrios templates, como um Windows Application, Class Library, Console Application e vrios outros. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 97
3 No painel Project Type, clique em Visual C# Projects, aqui esto todos os templates disponveis para a linguagem C#.
4 No painel Templates clique em Console Application.
5 No campo nome digite, ClassicoHelloWorld.
Perceba que voc pode ainda alterar o caminho onde sua aplicao ser salva e o nome da sua Soluo.
6 Clique em OK.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 98
A barra de menus (menu bar) possibilita o acesso aos comandos que voc usa no ambiente de programao. Voc pode usar o teclado ou o mouse para acessar o menu ou atalhos exatamente como usa em outros programas baseados em Windows.
A barra de ferramentas (toolbar) localizada embaixo da barra de menus e disponibiliza botes que executam os comandos usados com mais freqncia. No confunda toolbar com toolbox.
A janela Solution Explorer mostra os nomes dos arquivos associados com o seu projeto. Voc pode dar um clique duplo sobre o nome do arquivo para exibi-lo no painel de cdigo (Code pane). Vamos examinar os arquivos que o Visual Studio criou como parte do seu projeto: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 99
ClassicoHelloWorld.sln organiza os projetos de cada soluo, uma soluo pode ter vrios projetos, seu nome representado no primeiro item na janela Solution Explorer s que sem a extenso do arquivo.
ClassicoHelloWorld.csproj este o arquivo do projeto C#. Pode ser associado a vrios arquivos de cdigo. reconhecido no Solution Explorer pelo nome do projeto apenas, no entanto gravado no disco com a extenso .csproj.
Program.cs um arquivo de cdigo do C#. Voc vai escrever seu cdigo neste arquivo. O Visual Studio j adicionou algum cdigo nele automaticamente, examinaremos esse cdigo mais adiante.
Aos poucos ns vamos explorando mais o Visual Studio, vamos ao nosso primeiro exemplo.
O arquivo Program.cs define uma classe chamada Program que contm um mtodo chamado Main. Todos os mtodos precisam ser definidos dentro de uma classe. O mtodo Main especial porque ele o primeiro a ser executado quando o programa iniciado, por isso ele precisa ser designado como static (esttico), mtodos e classes vo ser discutidos em detalhes mais adiante no curso.
Importante: O C# case-sensitive, ele diferencia letras minsculas de maisculas, um M interpretado diferente de um m. Consequentemente Main diferente de main.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 100
Nosso primeiro exemplo bem simples, e um clssico para quem esta aprendendo qualquer linguagem, ele escreve Hello World no console.
7 Dentro do mtodo Main, entre os colchetes digite: Console
A classe Console contm os mtodos para exibir mensagens na tela e pegar as entradas do teclado. Tudo que o usurio digita no teclado pode ser lido atravs da classe Console. A classe Console s significante para aplicaes que rodam no prompt de comando como neste nosso primeiro exemplo.
8 Agora digite um ponto depois de Console.
Uma lista aparece, ela chamada de IntelliSense, esse no um recurso exclusivo do Visual Studio mas ajuda muito na programao principalmente em linguagens case-sensitive, como o C#. O IntelliSense exibe todos os mtodos, propriedades e campos da classe. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 101
9 Selecione WriteLine, voc pode usar o Mouse ou o Teclado, tecle Enter ou d um clique duplo sobre o WriteLine.
O IntelliSense fechado e o mtodo WriteLine adicionado ao cdigo. Como a seguinte imagem: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 102
Quando o IntelliSense aparece voc tambm pode pressionar W para ir direto para o primeiro membro do mtodo Console que comear com w.
10 Abra parnteses (
mostrado uma outra forma do IntelliSense, esse mostra os parmetros do mtodo WriteLine. O mtodo WriteLine tem o que chamamos de Sobrecarga (Overload). Para cada sobrecarga do mtodo WriteLine usamos parmetros diferentes. Cada sobrecarga e seus respectivos parmetros podem ser visualizados clicando com o mouse na seta do IntelliSense ou navegando pelas setas do teclado.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 103
11 Feche os parnteses ) e digite ponto-e-virgula, vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 104
12 Digite entre os parnteses a string Hello World, string deve ficar entre aspas. Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 105
Pegue o habito de digitar os pares de caracteres juntos, como ( e ) e { e }, antes de entrar com seus respectivos contedos. Assim voc evitar alguns erros por esquecer de fechar.
13 Vamos agora compilar nossa aplicao. No menu Build, clique em Build Solution. Se tudo estiver certinho vai aparecer a seguinte linha na janela Output:
========== Bui l d: 1 succeeded or up- t o- dat e, 0 f ai l ed, 0 ski pped ==========
Para exibir a janela Output na barra de menus clique em View, Output ou pressione Ctrl+W+O.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 106
Um asterisco depois do nome do arquivo no painel de cdigo indica que foram feitas modificaes no cdigo do respectivo arquivo e que essas alteraes no foram salvas. Voc pode salvar manualmente antes de compilar a aplicao, mas ao compilar o Visual Studio salva automaticamente todos os arquivos da aplicao.
14 No menu Debug, clique em Start Without Debugging para executar o programa no prompt de commando.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 107
O programa vai escrever Hello World como a ilustrao acima.
Ns escolhemos Start Without Debugging para forar uma pausa no final da execuo. Se clicssemos em Start ele iria executar o programa e fechar o prompt de comando logo aps a execuo, seria to rpido que no conseguiramos ver o que foi escrito, experimente.
15 Com o foco no prompt de comando pressione qualquer tecla.
A janela ir fechar e retornaremos para o Visual Studio.
16 - Na janela Solution Explorer, clique no boto Show All Files. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 108
Aparecem os nomes bin e obj depois do nome do projeto. Esses dois correspondem a pastas com seus respectivos nomes. Essas pastas so criadas quando voc executa a aplicao e contem uma verso executvel do programa e outros arquivos necessrios para depurar o programa.
17 Ainda na janela Solution Explorer, clique no sinal de + esquerda do nome bin.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 109
Um outro nome aparece representando uma outra pasta chamada debug.
18 Clique no sinal de + de debug.
Repare nos arquivos: ClassicoHelloWorld.exe e ClassicoHelloWorld.pdb.
O arquivo .exe o executvel da aplicao.
O arquivo .pdb armazena informaes de depurao da aplicao.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 110
O arquivo ClassicoHelloWorld.vshost.exe s aparece no Visual Studio 2005, ele usado para melhorar a performance da depurao de erros.
Como vimos at agora, o Visual Studio compilou automaticamente nosso programa e criou os arquivos necessrios automaticamente, durante o processo de compilao. Em resumo a compilao o processo que transforma seus arquivos fonte em um arquivo executvel pelo sistema operacional, um .exe por exemplo.
Antes de prosseguir eu quero fazer mais um exemplo com voc, agora vamos compilar nosso programa atravs do prompt de comando utilizando um utilitrio chamado csc.
1 - Com o Visual Studio fechado, na barra de ferramentas do windows clique em Iniciar, Executar, digite notepad em Abrir e clique em OK.
2 - Digite o seguinte cdigo no notepad.
using System;
namespace txtHello { Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
3 Salve o arquivo com o nome teste.cs Para isso ser necessrio escolher Todos os arquivos na opo Salvar como tipo no notepad quando voc clicar em Arquivo \ Salvar.
4 Feche o notepad.
5 No menu Iniciar, v em Programas / Visual Studio .NET / Visual Studio .NET Tools e clique em Visual Studio .NET Command Prompt.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 112
Para compilarmos manualmente nosso programa so necessrias algumas mudanas no ambiente do sistema operacional como alteraes em algumas variveis de ambiente, PATH, LIB e INCLUDE. Essas mudanas incluem adicionar pastas contendo bibliotecas e utilitrios .NET.
6 No prompt, v at a pasta que voc salvou o arquivo teste.cs.
7 Digite dir e tecle enter.
Ele vai listar os arquivos da pasta, no caso vai mostrar o arquivo teste.cs.
8 Digite: csc /out:hello.exe teste.cs
Isso vai criar um executvel chamado hello.exe. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 113
9 Digite dir e tecle enter.
Agora voc no v apenas o arquivo teste.cs, foi adicionado um arquivo chamado hello.exe, ele o resultado da compilao do seu arquivo fonte teste.cs.
10 Digite hello e tecle enter.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 114
O programa ser executado, no caso, ser escrito a palavra Hello World, no prompt semelhante ao que ocorreu com o exemplo da lio 1.
11 Digite del hello.exe e tecle enter.
Isso apagara o arquivo executvel.
12 Digite csc teste.cs
Ao omitir o parmetro /out o compilador cria um arquivo executvel com o mesmo nome do arquivo fonte. Ser criado ento o arquivo teste.exe, execute este arquivo para test-lo.
13 Abra novamente o arquivo teste.cs, pode ser no prprio notepad ou no Visual Studio .NET.
14 Apague a primeira linha de cdigo. Vai ficar assim:
namespace txtHello Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
15 Compile e teste a aplicao, novamente fica a sua escolha, use o prompt de comando ou o Visual Studio .NET. Uma recomendao, compile manualmente pelo prompt para se familiarizar melhor com ele, j que no falaremos muito mais sobre ele no curso.
16 Ao compilar ele vai emitir um erro. Como este:
teste.cs(7,4): error CS0246: The type or namespace name 'Console' could not be found (are you missing a using directive or an assembly reference?)
17 Mude a linha com Console.WriteLine("Hello World"); para System.Console.WriteLine("Hello World");
18 - Compile e teste novamente.
A compilao concluda com sucesso e o programa funciona normalmente s que desta vez sem a diretiva using System;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 116
Como parte do Microsoft .NET Framework o C# pode fazer uso de uma srie de classes de utilidades que executam uma gama de operaes teis. Essas classes so organizadas no que chamamos de namespaces, eles contem um conjunto de classes relacionadas e tambm podem conter outros namespaces.
System um namespace. O namespace System o mais importante porque contm as classes que a maior parte das aplicaes utiliza para interagir com o sistema operacional.
A classe Console uma classe do namespace System.
O mtodo Writeline um mtodo da classe console que escreve uma mensagem no prompt de comando.
Os namespaces ajudam a reduzir a complexidade de um programa e a facilitar sua manuteno.
Podemos criar nossos prprios namespaces.
Programas pequenos e crianas pequenas tm uma coisa obvia em comum, eles crescem. Com o crescimento de um programa surgem dois problemas:
1 - Quanto mais cdigo maior a complexidade do programa e mais difcil sua manuteno.
2 - Mais cdigo usualmente representa mais nomes de dados, funes, classes, etc. Facilitando os erros por conter nomes iguais.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 117
Os namespaces tem a funo de ajudar a solucionar esses dois problemas. Para usar um namespace lembre-se que necessrio fazer uma referencia ao mesmo atravs de uma diretiva using seguido do nome do namespace no comeo do bloco de cdigo. Voc pode fazer referencia a vrios namespaces no seu arquivo de cdigo. Um em cada linha. Um aps o outro.
At agora por motivo didtico usamos somente o prompt de comando para criar os nossos exemplos. Como sabemos esse tipo de aplicao no muito til nos dias de hoje. O Visual Studio .NET conta com diversos recursos importantes para o desenvolvimento de aplicaes Windows.
1 Entre no Visual Studio .NET.
2 Crie um novo projeto, s que desta vez do tipo Windows Application, chamado WinHello.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 118
O Visual Studio .NET cria e mostra um formulrio baseado em Windows no modo Design.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 119
Vamos agora criar a nossa interface com o usurio.
3 Na barra de ferramentas do Visual Studio .NET clique em ToolBox. O cone da ToolBox aparece a esquerda do formulrio. Voc tambm pode localizar a ToolBox atravs do menu View > ToolBox.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 120
4 Arraste da barra de ferramentas o controle Label e posicione-o no canto superior esquerdo do formulrio.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 121
Para colocar um controle no formulrio voc pode tambm dar um clique duplo sobre ele na barra de ferramentas ou clicar uma vez sobre ele na barra de ferramentas e depois clicar no formulrio. O clique duplo posiciona o controle no canto superior esquerdo. A segunda opo coloca o controle no local onde voc clicar.
5 Coloque tambm no formulrio um controle TextBox e um controle Button. Como na prxima ilustrao:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 122
6 Na janela Solution Explorer, clique no boto View Code.
O cdigo do arquivo Form1.cs aparece.
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
Form1.cs tem todo o cdigo gerado automaticamente pelo Visual Studio .NET. Note os seguintes elementos no cdigo.
As diretivas usadas no inicio do cdigo referenciando aos namespaces.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 123
usi ng Syst em; usi ng Syst em. Col l ect i ons. Gener i c; usi ng Syst em. Component Model ; usi ng Syst em. Dat a; usi ng Syst em. Dr awi ng; usi ng Syst em. Text ; usi ng Syst em. Wi ndows. For ms;
O Visual Studio .NET usa o mesmo nome do projeto para criar o namespace principal.
namespace Wi nHel l o {
}
Uma classe chamada Form1 dentro do namespace WinHello.
namespace Wi nHel l o { publ i c cl ass For m1 . . . { . . . } }
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 124
O constructor (construtor), um mtodo especial que tem o mesmo nome da classe. Ele o primeiro mtodo a ser executado quando o programa iniciado.
publ i c cl ass For m1 . . . { . . . publ i c For m1( ) { . . . } }
Um mtodo chamado InitializeComponent. O cdigo dentro deste mtodo configura as propriedades dos controles que adicionamos no modo Design. Ateno, no modifique o contedo do InitializeComponent diretamente no cdigo, use a janela Properties no modo Design. Vamos aprender mais sobre os mtodos nos prximos tutoriais. Este mtodo esta no arquivo Form1.designer.cs no Visual Studio .NET 2005.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 125
pr i vat e voi d I ni t i al i zeComponent ( ) { t hi s. l abel 1 = new Syst em. Wi ndows. For ms. Label ( ) ; t hi s. but t on1 = new Syst em. Wi ndows. For ms. But t on( ) ; t hi s. t ext Box1 = new Syst em. Wi ndows. For ms. Text Box( ) ; t hi s. SuspendLayout ( ) ; / / / / l abel 1 / / t hi s. l abel 1. Aut oSi ze = t r ue; t hi s. l abel 1. Locat i on = new Syst em. Dr awi ng. Poi nt ( 13, 13) ; t hi s. l abel 1. Name = " l abel 1" ; t hi s. l abel 1. Si ze = new Syst em. Dr awi ng. Si ze( 35, 13) ; t hi s. l abel 1. TabI ndex = 0; t hi s. l abel 1. Text = " l abel 1" ; / / / / but t on1 / / t hi s. but t on1. Locat i on = new Syst em. Dr awi ng. Poi nt ( 150, 50) ; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 126
t hi s. but t on1. Name = " but t on1" ; t hi s. but t on1. Si ze = new Syst em. Dr awi ng. Si ze( 75, 23) ; t hi s. but t on1. TabI ndex = 1; t hi s. but t on1. Text = " but t on1" ; t hi s. but t on1. UseVi sual St yl eBackCol or = t r ue; / / / / t ext Box1 / / t hi s. t ext Box1. Locat i on = new Syst em. Dr awi ng. Poi nt ( 16, 50) ; t hi s. t ext Box1. Name = " t ext Box1" ; t hi s. t ext Box1. Si ze = new Syst em. Dr awi ng. Si ze( 100, 20) ; t hi s. t ext Box1. TabI ndex = 2; / / / / For m1 / / t hi s. Aut oScal eDi mensi ons = new Syst em. Dr awi ng. Si zeF( 6F, 13F) ; t hi s. Aut oScal eMode = Syst em. Wi ndows. For ms. Aut oScal eMode. Font ; t hi s. Cl i ent Si ze = new Syst em. Dr awi ng. Si ze( 292, 273) ; t hi s. Cont r ol s. Add( t hi s. t ext Box1) ; t hi s. Cont r ol s. Add( t hi s. but t on1) ; t hi s. Cont r ol s. Add( t hi s. l abel 1) ; t hi s. Name = " For m1" ; t hi s. Text = " For m1" ; t hi s. ResumeLayout ( f al se) ; t hi s. Per f or mLayout ( ) ;
}. . . Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 127
Vamos agora definir as propriedades dos controles que colocamos no Form.
7 Volte para o modo Design.
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
8 De um clique sobre o Button1 para selecion-lo.
9 Na janela Properties, altere a propriedade Text do button1 para OK.
Se no localizar a janela Properties, clique em F4, ou no menu View, clique em Properties Window.
10 Altere tambm a propriedate Text do Label1 para Digite o seu nome
11 Altere agora a propriedade Text do controle textBox1 para aqui.
Note que as propriedades modificadas na janela Properties ficam em negrito. Assim voc pode saber se elas esto com seu valor padro ou no.
12 Selecione o formulrio clicando sobre ele.
Note que aparecem alguns marcadores envolta do formulrio. Eles ajudam a redimensionar o formulrio. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 128
13 - Clique sobre o marcador central na parte de baixo do Form1 e mantendo o boto pressionado arraste para cima.
Isso serve para os outros controles tambm, clique sobre os outros controles e note os marcadores.
Vamos agora escrever o cdigo para o nosso programa.
14 No painel de cdigo de um clique duplo sobre o Button1.
Note que ele vai diretamente para o painel de cdigo e criado automaticamente o seguinte cdigo. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 129
pr i vat e voi d but t on1_Cl i ck( obj ect sender , Syst em. Event Ar gs e) {
}
Tudo que for digitado dentro deste cdigo ser executado assim que o Button1 for clicado quando o programa estiver executando.
15 - Digite o seguinte cdigo:
Tenha ateno com esse cdigo, ele deve ser digitado exatamente como se segue, lembre-se que o C# case-sensitive. necessrio tambm o ponto-e-virgula no final da linha.
MessageBox. Show( " Hel l o " + t ext Box1. Text ) ;
Vai ficar assim:
pr i vat e voi d but t on1_Cl i ck( obj ect sender , Syst em. Event Ar gs e) { MessageBox. Show( " Hel l o " + t ext Box1. Text ) ;
}
16 Execute o programa.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 130
Para executar o programa voc pode clicar e F5, ou no menu Debug clicar em Start Debugging.
Automaticamente o Visual Studio .NET salva o programa, compila e o executa. A seguinte janela aparece:
17 Digite seu nome e clique em OK.
Uma janela aparece exibindo a mensagem Hello seu-nome.
18 - Clique em Ok para fechar a janela com a mensagem.
19 Na janela executando o Form1 clique em fechar.
9.1 Tipos de dados em C#
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 131
Categoria Tipo Valores possveis de se armazenar Inteiro byte 0 a 255 (8 bits) Inteiro sbyte -128 a 127 (8 bits) Inteiro int -2,147,483,648 a 2,147,483,647 (32 bits) Inteiro uint 0 a 4,294,967,295 (32 bits) Inteiro long 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits) Inteiro ulong 0 a 18,446,744,073,709,551,615 (64 bits) Inteiro short -32,768 a 32,767 (16 bits) Inteiro ushort 0 a 65,535 (16 bits) Real decimal 1.0 1028 a 7.9 1028 (128 bits) Real double 5.0 10324 a 1.7 10308 (64 bits) Real float 1.5 1045 a 3.4 1038 (32 bits) Lgico bool Verdadeiro ou Falso (Valores booleandos) Literal char Um caractere (16 bits) Literal string Seqncia de caracteres (16 bits por caractere)
Em C# os tipos uint, ulong e ushort, ocupam o mesmo espao que os tipos int, long e short. S que s podem armazenar nmeros positivos.
Os tipos uint, ulong e ushort so conhecidos como Tipos no assinados.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 132
9.2 Declarando Variveis em C#
Antes de qualquer coisa segue a lista das palavras reservadas em C#, lembre-se de que elas no podem ser usadas na criao de identificadores, ou seja, no podem ser usadas como nome de variveis.
abstract as base Bool break byte case Catch char checked class Const continue decimal default Delegate do double else Enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 133
Declaramos especificando o tipo de dado seguido do nome da varivel como no exemplo:
int contador;
Esse exemplo declara uma varivel chamada contador do tipo integer. Podemos tambm declarar mltiplas variveis de uma vez, fazemos isso da seguinte maneira:
int contador, numeroCarro;
Estamos declarando nesse exemplo duas variveis do tipo integer, uma chamada contador e a outra numeroCarro.
9.3 Constantes em C# Para declarar uma constante em C# voc usa o comando Const na declarao da varivel que ser a constante. Exemplo:
const double pi = 3.1415;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 134
9.4 Operadores de atribuio em C#
Depois de declarar sua varivel voc precisa atribuir um valor a ela. No C# voc no pode usar uma varivel antes de colocar um valor nela, isso gera um erro de compilao.
Exemplo de como atribuir um valor a uma varivel:
int numeroFuncionario;
numeroFuncionario = 23;
Primeiro ns declaramos nossa varivel do tipo integer. Depois atribumos o valor 23 a ela. Entendemos pelo sinal de igual como recebe. Assim numeroFuncionario recebe 23.
Podemos tambm atribuir um valor a varivel quando a declaramos, dessa forma:
int numeroFuncionario = 23;
Isso faz mesma coisa que o exemplo anterior, s que tudo em uma linha.
Mais um exemplo:
char letraInicial = M;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 135
9.5 - Operadores aritmticos em C#
Operador Representao em C# Exemplo Incremento ++ a ++ Neste caso somado 1 ao valor de a. Decremento -- a -- Neste caso subtrado 1 do valor de a. Multiplicao * a * b Multiplica-se o valor de a por b. Diviso / a / b Divide-se o valor de a por b. Mdulo % a % b Retorna o resto da diviso de a por b. Adio + a + b Soma de a e b. Subtrao - a b Subtrao de a com b.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 136
9.6 Operadores relacionais em C# Operador Representao em C# Exemplo Maior > a > b Se o valor de a for maior que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Maior ou igual >= a >= b Se o valor de a for maior ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor < a < b Se o valor de a for menor que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor ou igual <= a <= b Se o valor de a for menor ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Igual a == a == b Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 137
Se o valor de a for igual ao valor de b ento o resultado dessa expresso verdadeiro seno falso. Diferente de != a != b Se o valor de a for diferente do valor de b ento o resultado dessa expresso verdadeiro seno falso.
9.7 - Operadores Lgicos em C# Operador Representao em C# Exemplo E && a == 5 && b > 9 Caso o valor de a seja igual a cinco e o valor de b maior que nove o resultado verdadeiro, seno falso. Ou || a == 5 || b > 9 Se o resultado de a for igual a cinco ou o valor de b for maior que nove ento o resultado verdadeiro. O resultado Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 138
s ser falso as duas expresses retornarem falso. No ! ! a == 5 Se o resultado de a for igual a 5 ento o resultado ser falso, o operador no inverte o resultado da expresso.
Vamos fazer um exemplo pratico de como utilizar os operadores.
1 Crie um novo projeto no Visual Studio do tipo Windows Application chamado Operadores.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 139
2 Arraste para o Form1 os seguintes controles: 3 Label 3 TextBox 1 Button 1 GroupBox 5 RadioButton
3 Organize-os como a figura abaixo:
4 Configure as propriedades dos controles conforme a tabela abaixo:
Controle Propriedade Valor Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 140
Label1 Text Valor1 Label2 Text Valor2 Label3 Text Resultado Button Text Calcular GroupBox Text Operador RadioButton1 Text + Adio RadioButton2 Text - Subtrao RadioButton3 Text * Multiplicao RadioButton4 Text / Diviso RadioButton5 Text % Resto Diviso
Vai ficar como a figura abaixo:
5 Execute a aplicao. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 141
Clique na TextBox1, pressione a tecla Tab do teclado, verifique que conforme voc clica na tecla ele passa de um controle a outro.
Clique sobre os operadores, veja que voc s pode selecionar um, essa uma caracterstica do controle RadioButton que no tinha sido usado at aqui. A GroupBox agrupa todos os RadioButtons dentro dela de forma que apenas um deles pode ser selecionado.
6 Finalize a execuo, para isso voc pode simplesmente fechar a janela do Form1 ou clicar no boto Stop Debugging na barra de ferramentas.
7 - Vamos agora digitar o cdigo que efetuar os clculos, esse cdigo vai ser executado quando o boto Calcular for clicado. De um clique duplo sobre o Button1 para digitarmos o seguinte cdigo. (Ateno na hora de digitar, lembre-se que o C# case-sensitive ou seja, diferencia maisculas de minsculas).
l ong pr i mei r oVal or , segundoVal or , r esul t ado;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 142
pr i mei r oVal or = i nt . Par se( t ext Box1. Text ) ; segundoVal or = i nt . Par se( t ext Box2. Text ) ;
i f ( r adi oBut t on1. Checked) { r esul t ado = pr i mei r oVal or + segundoVal or ; t ext Box3. Text = r esul t ado. ToSt r i ng( ) ; } el se i f ( r adi oBut t on2. Checked) { r esul t ado = pr i mei r oVal or - segundoVal or ; t ext Box3. Text = r esul t ado. ToSt r i ng( ) ; } el se i f ( r adi oBut t on3. Checked) { r esul t ado = pr i mei r oVal or * segundoVal or ; t ext Box3. Text = r esul t ado. ToSt r i ng( ) ; } el se i f ( r adi oBut t on4. Checked) { r esul t ado = pr i mei r oVal or / segundoVal or ; t ext Box3. Text = r esul t ado. ToSt r i ng( ) ; } el se i f ( r adi oBut t on5. Checked) { r esul t ado = pr i mei r oVal or %segundoVal or ; t ext Box3. Text = r esul t ado. ToSt r i ng( ) ; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 143
}
Digitamos nosso cdigo dentro do procedimento:
pr i vat e voi d but t on1_Cl i ck( obj ect sender , Syst em. Event Ar gs e) {
}
Esse procedimento executado sempre que o Button1 clicado. Sendo assim quando o boto clicado, primeiro:
Declaramos as variveis primeiroValor, segundoValor e resultato do tipo Long. O tipo Long usado aqui porque armazena uma grande variedade de nmeros. Perceba que declaramos as trs variveis em apenas uma linha de cdigo.r.
l ong pr i mei r oVal or , segundoVal or , r esul t ado;
Depois atribumos os valores das caixas de texto as variveis primeiroValor e segundoValor.
pr i mei r oVal or = i nt . Par se( t ext Box1. Text ) ; segundoVal or = i nt . Par se( t ext Box2. Text ) ;
Como o valor que esta na caixa de texto do tipo string convertemos para int usando int.Parse. Voc pode usar o mtodo Parse sempre que precisar converter um tipo de dados em outro. Para usa-lo digite o tipo do dado ponto Parte como o exemplo acima ou o seguinte exemplo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 144
l ong. Par se( t ext Box2. Text ) ;
Voltando ao nosso exemplo, depois de atribuir os valores as variveis vamos verificar qual operao executar, para isto usamos a propriedade checked de cada RadioButton.
i f ( r adi oBut t on1. Checked)
ou
el se i f ( r adi oBut t on2. Checked)
Se o valor da propriedade Checked do RadioButton for True quer dizer que ele esta selecionado, ento executamos o calculo correspondente ao RadioButton selecionado e atribumos o resultado a varivel resultado.
Agora atribumos o valor da varivel resultado propriedade Text do textbox3 para que seja exibida na tela.
t ext Box3. Text = r esul t ado. ToSt r i ng( ) ;
Perceba que precisamos converter o valor da varivel resultado para String. Fizemos isto utilizando o mtodo ToString. Voc pode usar o mtodo ToString sempre que precisar converter um tipo de dados para string.
8 Execute o programa.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 145
9 Digite 9 para o valor1 e 2 para o valor2, selecione adio e clique em calcular.
Faa testes com os outros operadores.
Subtrao:
Multiplicao:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 146
Diviso, perceba que ele retorna um resultado em inteiro, o numero inteiro mais prximo do resultado:
Resto da Diviso, perceba que ele retorna o resto da diviso, 9 dividido por dois resulta em 4 com resto 1.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 147
10 Pare a aplicao.
9.8 - Entrada e Sada de dados em C#
Para entrada de dados em C# usamos o comando ReadLine, e para a Sada de dados o comando WriteLine.
Segue um exemplo:
st r i ng nome; Consol e. Wr i t eLi ne( " Di gi t e seu nome" ) ; nome = Consol e. ReadLi ne( ) ; Consol e. Wr i t eLi ne( " Seu nome : " + nome) ;
No exemplo acima, primeiro declaramos uma varivel do tipo string chamada nome, depois usamos o comando de saida WriteLine para imprimir Digite seu nome na tela. Na terceira linha atribumos o valor que foi digitado varivel Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 148
nome usando o comando de entrada ReadLine. Por ultimo exibimos na tela o nome digitado novamente usando o comando WriteLine. O operador mais foi usado para concatenar, ou seja, para unir o texto Seu nome com o contedo da varivel nome.
9.9 Estruturas de deciso em C#
A primeira estrutura de deciso que iremos estudar o IF, veja a sintaxe a seguir:
i f ( expressocondicional ) { bloco-de-codigo1 } el se { bloco-de-codigo2 }
Se o resultado da expresso condicional for VERDADEIRO ento o bloco-de-codigo1 ser executado, se a expresso for FALSO, ento o bloco-de-codigo2 ser executado.
Se o bloco-de-codigo1 e bloco-de-codigo2 for apenas uma linha de cdigo no necessrio usar os colchetes, como nos exemplos abaixo.
Veja o seguinte exemplo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 149
doubl e Sal ar i o = 1200;
i f ( Sal ar i o > 1000) Sal ar i o *= 1. 1;
Existe uma varivel chamada Salario que est definida e contm o valor 1200. Como toda condio retorna apenas verdadeiro ou falso, verificado se o valor maior que 1000, e caso seja verdadeiro ser somado 10% ao Salario. Se Salario for menor que 1000 nada ser executado.
Vamos a mais alguns exemplos para facilitar o entendimento.
doubl e Sal ar i o = 1200;
i f ( Sal ar i o < 500) Sal ar i o += 50; el se Sal ar i o += 100;
Aqui verificado se o valor menor que 500 e dependendo da condio somado 50 ou 100, pois h o Else. Ento se a varivel for menor que 500 adicionamos nela o valor 50, seno adicionamos 100.
doubl e Sal ar i o = 1200;
i f ( Sal ar i o < 500) Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 150
Sal ar i o += 50; el se i f ( ( Sal ar i o >= 500) && ( Sal ar i o < 2000) ) Sal ar i o += 100; el se Sal ar i o += 250;
J no exemplo acima existem 3 condies, onde o primeiro IF soma 50, o segundo 100 e o ELSE 250. O Else sempre executado quando nenhuma expresso verdadeira.
possvel avaliar diversos else ifs com uma determinada expresso. Como no exemplo abaixo:
doubl e Sal ar i o = 1200;
i f ( Sal ar i o < 500) Sal ar i o += 50; el se i f ( ( Sal ar i o >= 500) && ( Sal ar i o < 600) ) Sal ar i o += 100; el se i f ( ( Sal ar i o >= 500) && ( Sal ar i o < 700) ) Sal ar i o += 110; el se i f ( ( Sal ar i o >= 500) && ( Sal ar i o < 800) ) Sal ar i o += 120; el se Sal ar i o += 250;
Perceba que no bloco de cdigo acima usamos o &&.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 151
O && usado quando precisamos testar mais de uma expresso condicional.
Exemplo:
el se i f ( ( Sal ar i o >= 500) && ( Sal ar i o < 600) )
Nesta linha testamos se o Salario maior ou igual a 500 e o Salario menor que 600.
Ento se o Salario for 553 a expresso acima VERDADEIRA, caso contrario FALSA.
A segunda estrutura de deciso que iremos estudar conhecida como switch.
Essa estrutura de deciso seleciona o cdigo a ser executado baseado no valor de uma expresso.
A sintaxe a seguinte:
swi t ch ( testexpression) { case constant-expression: statements br eak: def aul t : Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 152
statements }
O funcionamento ocorre da seguinte maneira: a expresso obtida no switch e para cada Case existe uma condio a ser validada. Caso o Case seja verdadeiro, ento a linha ou o bloco de cdigo executado. Se nenhum dos Cases for vlido, ento default executado. O default opcional e voc pode ter quantos Cases for necessrio. A cada Case preciso declarar o break, seno o programa continua avaliando todos os Cases.
Veja o exemplo:
i nt di aDaSemana = 3;
swi t ch ( di aDaSemana) { case 1: MessageBox. Show( " Domi ngo" ) ; br eak; case 2: MessageBox. Show( " Segunda- Fei r a" ) ; br eak; case 3: MessageBox. Show( " Ter a- Fei r a" ) ; br eak; case 4: MessageBox. Show( " Quar t a- Fei r a" ) ; br eak; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 153
case 5: MessageBox. Show( " Qui nt a- Fei r a" ) ; br eak; case 6: MessageBox. Show( " Sext a- Fei r a" ) ; br eak; case 7: MessageBox. Show( " Sabado" ) ; br eak; }
Primeiro criamos uma varivel do tipo int e atribumos a mesma o valor 3.
A seguir iniciamos a estrutura colocando como expresso de teste o valor da varivel.
O primeiro Case verifica se o valor da varivel ou expresso de teste 1. Se for o cdigo que escreve na tela o texto Domingo executado e a estrutura finalizada no verificando os outros Cases. Caso contrario ele vai pro prximo case e segue como o primeiro at o fim da estrutura. Se nenhum dos cases se enquadrar no valor da expresso de teste nenhum cdigo ser executado, para isso que serve o default. No prximo exemplo vamos apenas programar o uso do default:
i nt di aDaSemana = 3;
swi t ch ( di aDaSemana) { case 1: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 154
MessageBox. Show( " Domi ngo" ) ; br eak; case 2: MessageBox. Show( " Segunda- Fei r a" ) ; br eak; case 3: MessageBox. Show( " Ter a- Fei r a" ) ; br eak; case 4: MessageBox. Show( " Quar t a- Fei r a" ) ; br eak; case 5: MessageBox. Show( " Qui nt a- Fei r a" ) ; br eak; case 6: MessageBox. Show( " Sext a- Fei r a" ) ; br eak; case 7: MessageBox. Show( " Sabado" ) ; br eak; def aul t : MessageBox. Show( " Di a I nvl i do" ) ; br eak;
}
Aqui se o resultado da expresso de teste no for verdadeiro em nenhum Case, ento ser executado o default, escrevendo na tela que o valor informado Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 155
invalido, o que no o caso para o nosso exemplo, j que o valor da expresso se enquadra no Case 3 escrevendo Tera-Feira.
Lembre-se do seguinte a respeito do switch:
O switch deixa o cdigo mais estruturado em relao ao uso de vrios else if seguidos;
Voc s pode usar o switch com tipos de dados primitivos, como: (int, long, float, double, decimal, string, char, bool). Para usar outros tipos de dados use o if;
A expresso do case precisa ser uma expresso nica, em outras palavras, no permitido escrever duas expresses em um mesmo case.
Voc precisa repetir a sintaxe do case para cada valor individual que voc quer avaliar, mesmo que ele execute o mesmo bloco de cdigo, veja o ultimo exemplo.
Voc deve usar o break aps cada bloco de cdigo seno ele vai continuar executando os outros cases.
Vamos fazer um programinha que valida o usurio, verificando se ele mesmo atravs do seu nome e senha.
1 Entre no Visual Studio e crie uma aplicao chamada EstruturaDeDecisao do tipo Windows Application. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 156
2 Arraste para o Form os seguintes controles:
2 - Label 2 TextBox 1 Button
3 Mude as propriedades dos controles como a tabela abaixo:
Controle Propriedade Valor Label1 Text Nome Label2 Text Senha Textbox1 Text Textbox2 Text Button1 Text Validar
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 157
4 Organize-os para ficarem assim:
5 De um clique duplo no button1 e digite o seguinte cdigo:
st r i ng Nome = t ext Box1. Text ; st r i ng Senha = t ext Box2. Text ;
i f ( ( Nome == " Mor oni " ) && ( Senha == " 123" ) ) MessageBox. Show( " BemVi ndo Mor oni " ) ; el se { MessageBox. Show( " Usuar i o I nval i do" ) ; Cl ose( ) ;
} Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 158
Voc pode substituir o valor do nome para o seu nome e sua senha.
Perceba que tivemos que abrir e fechar colchetes ( {} ) depois do else, sempre temos que fazer isso quando tivermos mais que uma linha de cdigo, isso se aplica ao else, e tambm depois do if, se tivssemos mais de uma linha de cdigo no bloco de cdigo acima teramos que fazer o mesmo.
6 Execute o programa.
7 Digite Moroni em nome (ou seu nome) e a senha 123.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 159
8 Clique em validar.
executado o seguinte cdigo:
MessageBox. Show( " BemVi ndo Mor oni " ) ;
Fazendo com que a seguinte mensagem aparea.
9 Clique em Ok.
10 Digite outro valor qualquer na caixa de texto e clique em OK.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 160
E executado o seguinte cdigo:
MessageBox. Show( " Usuar i o I nval i do" ) ; Cl ose( ) ;
Fazendo com que a seguinte mensagem aparea.
E que o programa seja encerrado.
Em resumo:
Declaramos duas variveis e demos as elas os valores dos controles de texto. Depois testamos se o valor do nome era Moroni e a Senha 123, voc pode substituir o valor para o seu nome e sua senha. Se o resultado da expresso for verdadeira ento ele da a mensagem de bem vindo, caso contrario ele da a mensagem de usurio invalido e sai do programa.
9.10 Estruturas de repetio em C#
O looping While executado sempre associado a uma condio, ou seja, a cada passagem pelo looping a condio avaliada. Veja a sintaxe a seguir:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 161
whi l e ( booleanExpression ) statement
Vamos fazer um exemplo para voc compreender melhor o funcionamento do while.
1 - Crie um novo projeto no Visual Studio, novamente do tipo Windows Application, chame o projeto de while.
2 - Adicione no Form1 os seguintes controles:
1 Button 1 ListBox
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 162
3 - Mude a propriedade Text do Button1 para Loop.
4 - Organize os controles como a figura abaixo:
5 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:
i nt cont ador = 0; whi l e ( cont ador < 20) { cont ador ++; l i st Box1. I t ems. Add( cont ador ) ; }
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 163
Esse nosso cdigo, vamos estud-lo um pouco:
i nt cont ador = 0; whi l e ( cont ador < 20) { cont ador ++; l i st Box1. I t ems. Add( cont ador ) ; }
Na primeira linha declaramos uma varivel chamada contador do tipo integer e atribuimos a essa variavel o valor 0.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 164
A segunda linha comea o While com a condio. Essa linhar quer dizer enquanto contador for menor que 20, ou seja ele vai executar o loop ou o cdigo que esta entre os colchetes at que o conteudo da varivel contador seja igual ou maior que 20.
A linha quatro soma 1 ao conteudo da varivel contador, a linha a seguir tem o mesmo significado:
cont ador = cont ador + 1
Entretanto da forma que fizemos no nosso exemplo mais elegante porque no precisamos repetir o nome da varivel, se apenas fizssemos assim:
cont ador = 1
Ele atribuiria 1 ao contedo da varivel e o nosso looping se tornaria um loop infinito ou seja nunca ia parar de rodar porque nunca entraria na condio que o faz parar. Cuidado com esse tipo de loop, seus loops nunca devem ser infinitos.
A linha 5 atribui ao ListBox o valor da varivel.
Fique atento para o seguinte quando estiver utilizando o WHILE:
A expresso condicional deve retornar sempre um valor Boolean ou seja, verdadeiro o falso.
A expresso condicional tambm deve estar sempre entre parnteses.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 165
Se na primeira passagem o resultado da empresso condicional for falso, o cdigo do While no ser executado.
Se voc for usar mais de uma linha de cdigo dentro do while precisa coloc-lo entre colchetes, seno no.
O Do semelhante ao while, ou seja, executado sempre associado a uma condio, novamente a cada passagem pelo looping a condio avaliada. S que no Do a condio colocada no final, fazendo com que mesmo que o resultado seja falso da expresso booleana o cdigo seja executado pelo menos uma vez. Caso precise abandonar o looping, use o break, que opcional. Veja a sintaxe (no esquea do ponto-e-virgula no final):
do statement whi l e ( booleanExpression) ;
Vamos fazer uma modificao no exercicio do item anterior para compreender como funciona o break.
1 - Se o exemplo anterior no estiver aberto no Visual Studio, abra-o.
2 - V para o cdigo do button1, ele deve ser o seguinte:
i nt cont ador = 0; whi l e ( cont ador < 20) { cont ador ++; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 166
l i st Box1. I t ems. Add( cont ador ) ; }
3 - Mude para o seguinte:
i nt cont ador = 0; whi l e ( cont ador < 20) { cont ador ++; i f ( cont ador == 10) { br eak; } l i st Box1. I t ems. Add( cont ador ) ; }
Perceba que as modificaes foram minimas, apenas inserimos um If que verifica se o conteudo da variavel contador 10, se for ele executa o break que finaliza imediatamente o loop.
4 - Execute a aplicao:
5 - Clique em Loop. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 167
Perceba que ele nem chega a escrever o nmero 10 por que a linha de cdigo que responsvel por isso esta depois do If que finalizou o loop.
6 Agora mude o valor inicial da varivel 0 para 20.
7 Execute a aplicao e clique em Loop. Perceba que no aparece nada, porque o resultado da expresso condicional comea como false, j que o valor no menor que 20, e sim igual a 20.
8 Vamos usar o Do agora, mude o cdigo para o seguinte:
i nt cont ador = 20; do { cont ador ++; l i st Box1. I t ems. Add( cont ador ) ; i f ( cont ador == 10) Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 168
{ br eak; } } whi l e ( cont ador < 20) ;
9 - Execute a aplicao e clique em Loop.
Se a expresso estivesse encima nada apareceria, mas agora aparece o 21, isso porque ele executou uma vez o loop antes de avaliar a expresso, algumas vezes esse tipo de loop pode ser necessrio. Fique atento.
O For usado quando sabemos o nmero de vezes que iremos executar o Loop. O For precisa de um contador que normalmente uma varivel que controla o nmero de vezes que o loop ser executado..
A varivel contador pode ser inicializada antes do For ou na prpria declarao. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 169
Se durante o processamento voc quiser abandonar o looping, ter que usar o break. A sintaxe do For a seguinte:
f or ( initialization; booleanExpression; updateControlVariable) statement
1 - Crie uma nova aplicao do tipo Windows Application com nome For.
2 - Arraste para o Form1 um Button.
3 - Mude a propriedade Text do Button1 para Beep.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 170
4 - De um clique duplo sobre o boto e no digite o seguinte cdigo para o evento do boto:
f or ( i nt i = 1; i <= 4; i ++) { MessageBox. Show( i . ToSt r i ng( ) ) ; }
Vai ficar assim: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 171
5 - Execute a aplicao.
6 - Clique no boto Beep. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 172
Vamos dar uma avaliada no cdigo:
f or ( i nt i = 1; i <= 4; i ++) { MessageBox. Show( i . ToSt r i ng( ) ) ; }
Quando inicializamos o for, primeiro iniciamos uam varivel do tipo integer e damos o valor 1 para ela, demos o nome de i para essa variavel. Depois colocamos uma expresso booleana que ser responsvel por avaliar o numero de vezes que o for ser executado, nossa expresso diz que o for deve ser executado enquanto o contedo de da varial i for menor ou igual a 4. Para finalizar a inicializao do For dizemos que a cada passada o contedo da varivel i deve ser acrescentado em 1.
7 - Mude o cdigo do boto para o seguinte:
f or ( i nt i = 1; i <= 25; i +=5) { MessageBox. Show( i . ToSt r i ng( ) ) ; }
8 - Execute a aplicao e clique em Beep.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 173
Perceba que o i+= 5 fez com que o nmero adicionado a variavel a cada passada do loop 5 ao invs de 1.
9.11 Vetores e matrizes em C# Vamos fazer um exemplo, nele vamos criar o programa que armazenar os dados nos nomes dos jogadores e as faltas cometidas por eles.
1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application chamado Arrays.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 174
2 - Arraste para o Form1 os seguintes controles:
3 Button 1 ListBox 2 Labels 2 TextBoxes
3 - Altere a propriedade Text do Button1 para Inserir Jogador.
4 Altere a propriedade Text do Button2 para Inserir Falta
5 Altere a propriedade Text do Button3 para Visualizar Array
6 - Altere a propriedade Text do Form1 para Array. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 175
7 Altere a propriedade Text do Label1 para Jogador.
8 Altere a propriedade Text do Label2 para Num. Faltas
9 - Organize-os como a prxima figura:
10 - Na janela Solution Explorer clique no boto View Code para ir para o Painel de cdigo.
11 - Digite dentro da classe do Form1 o seguinte cdigo:
st r i ng[ ] j ogador es = new st r i ng[ 11] ;
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 176
Nesta linha declaramos um Array de tamanho fixo. O array que criamos como uma tabela com 11 linhas, o suficiente para armazenar o nome do time inteiro, 11 jogadores.
12 - Na janela Solution Explorer clique em View Designer para voltar para o Form1 no modo Design, voc pode tambm clicar na aba Form1.vb[Design] ao lado da aba Start Page, essa altura do curso voc ja deve estar familiarizado com o Visual Studio.
13 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:
j ogador es[ 0] = t ext Box1. Text ;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 177
Isso insere Marcos na primeira linha do Array, se colocassemos 6 ao invs de 0, por exemplo, seria na linha 7. O primeiro registro no array sempre o 0, isso porque os ndices sempre comeam com 0.
14 - De um clique duplo sobre o Button3 (Visualizar Array) e digite o seguinte cdigo:
l i st Box1. I t ems. Add( j ogador es[ 0] ) ;
Isso insere na ListBox1 o contedo da primeira linha do array Jogadores, se colocassemos 6, exibiria o contedo da linha 7, lembre-se que de o primeiro registro do array tem sempre o ndice 0 e assim sucessivamente.
No se assuste com o cdigo para inserir no ListBox1, se fosse em uma TextBox ou Label voc poderia usar a seguinte linha de cdigo:
t ext Box1. Text = j ogador es[ 0] ;
S que para inserir um item no ListBox precisamos usar seu mtodo Add.
15 Execute a aplicao.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 178
16 Digite Marcos no textBox1 e clique em inserir Jogador.
17 Clique em Visualizar Array.
Agora que voc j compreende como inserir e ler dados do array vamos avanar no exemplo. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 179
18 Pare a execuo.
19 - Digite dentro da classe do Form1 o seguinte cdigo:
i nt cont ador = 0;
Isto cria uma varivel que estar disponvel para todos os procedimentos dentro da classe, ou seja, seu escopo a classe. Tambm j atribumos o valor 0 nela. Essa varivel ser usada para controlar o ndice ou local do array onde vamos inserir cada jogador.
20 - Volte para o cdigo do procedimento do Button1.
21 - Substitua o cdigo pelo seguinte:
i f ( cont ador <= 10 && t ext Box1. Text ! = " " ) { j ogador es[ cont ador ] = t ext Box1. Text ; cont ador += 1; t ext Box1. Text = nul l ; } el se { but t on1. Enabl ed = f al se; }
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 180
Vai ficar assim:
No podemos adicionar jogadores no array se ele estiver cheio e se o contedo do textBox no tiver nada. Para isso usamos o if.
Depois adicionamos o contedo do textBox1 no array. A posio informada pela varivel contador.
Adicionamos 1 a varivel contador, seno o array nunca vai para a prxima posio.
Para finalizar limpamos o textBox1. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 181
No else apenas desabilitamos o Button1 caso o array esteja vazio ou no tenha nada nele digitado, ou seja, caso a expresso lgica do if retorne false.
22 - Mude o cdigo do Button3 pelo seguinte:
f or ( i nt i = 0; i <= j ogador es. Lengt h - 1; i ++) { l i st Box1. I t ems. Add( j ogador es[ i ] ) ; }
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 182
Aqui usamos o loop tor para passar por cada item do Array e adiciona-lo no ListBox1.
A propriedade Length retorna o numero de registros do array, que 11, poderamos simplesmente ter feito assim:
f or ( i nt i = 0; i <= 10; i ++)
Colocamos o -1 depois do Length porque o Lenght retorna 11, lembre-se que o ndice do primeiro elemento do array 0, ento o ultimo 10.
A cada passada pelo For o i assume o valor de uma linha do array at chegar ao final.
23 - Execute a aplicao.
24 Digite o nome de um Jogador e clique no boto Inserir Jogador.
Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array seja totalmente preenchido.
25 - Clique no boto Visualizar Array.
O nome dos 11 jogadores listado.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 183
Como voc pode ver, trabalhamos facilmente com os nomes dos 11 jogadores em nosso array, podemos modificar os dados do nosso array facilmente, bastando para isso indicar qual linha deve ser alterada e o novo dado, como no exemplo:
j ogador es[ 10] = Robi nho;
Um array pode conter mais de um coluna. Vamos entender como isso funciona implementando o cdigo que vai armazenar o nmero de faltas de cada jogador.
Como um Array s pode conter um tipo de dado e nosso Array j do tipo String, no nosso exemplo vamos adicionar o nmero de faltas como string mesmo, mas, a maneira correta seria criar um outro Array do tipo integer para armazenar as faltas. Vamos optar pela primeira opo para voc aprender a trabalhar com duas colunas.
26 - Altere o cdigo que declara o Array para o seguinte:
st r i ng[ , ] j ogador es = new st r i ng[ 11, 2] ; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 184
Isso cria um Array com 11 linhas e 2 colunas.
27 - Localize no procedimento do evento do Button1, as seguintes cdigo:
j ogador es[ cont ador ] = t ext Box1. Text ;
28 - Mude-o para o seguinte:
j ogador es[ cont ador , 0] = t ext Box1. Text ;
Isso apenas indica que vamos adicionar o nome na linha que o loop indicar, na coluna 1, de ndice 0.
29 - Digite dentro da classe do Form1 o seguinte cdigo:
i nt cont ador Fal t as = 0;
Esta varivel far o mesmo que a contador, s que para as faltas.
30 - D um clique duplo sobre o Button2 e digite o seguinte cdigo:
i f ( cont ador Fal t as <= 10 && t ext Box2. Text ! = " " ) { j ogador es[ cont ador Fal t as, 1] = t ext Box2. Text ; cont ador Fal t as += 1; t ext Box2. Text = nul l ; } Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 185
el se { but t on2. Enabl ed = f al se; }
Vai ficar assim:
Isso semelhante ao cdigo do Button1. S que usamos a varivel contadorFaltas, o textBox2 e o button2.
Note tambm que agora atribuimos os valores segunda coluna, como mostra o cdigo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 186
j ogador es[ cont ador Fal t as, 1] = t ext Box2. Text ;
O ndice 1 se refere a segunda coluna.
Agora precisamos mudar o cdigo do button3, que exibe os dados, para listar as faltas tambm.
31 - Mude o cdigo do Button3 para o seguinte:
f or ( i nt i = 0; i <= 10; i ++) { l i st Box1. I t ems. Add( j ogador es[ i , 0] + " - Tot al de f al t as: " + j ogador es[ i , 1] ) ; } O que fizemos foi concatenar os dados da coluna 1 com os da 2, e fazer um loop por cada linha do array de 0 a 10 ou seja pelas 11 linhas.
32 - Execute sua aplicao:
33 Digite o nome de um Jogador e clique no boto Inserir Jogador.
Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array seja totalmente preenchido.
34 Digite uma quantidade de faltas para cada jogador como fez com o nome dos jogadores at o boto ser desabilitado.
35 Clique no boto Visualizar array Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 187
9.12 Procedimentos e funes em C#
Em C# tanto os procedimentos quanto as funes so conhecidos como mtodos.
Em C# os mtodos podem ou no retornar valores. Quando eles retornam valores trabalham de forma idntica a uma funo, quando no retornam valores so como procedimentos.
Mtodo uma seqncia nomeada de instrues. Cada mtodo tem um nome e um corpo. O corpo contem as instrues que vo ser executadas quando o mtodo for chamado. O nome do mtodo deve ajudar a identificar seu propsito, ex: CalcularImpostoVenda.
A maioria dos mtodos recebe dados, processa-os e retorna a informao ou o resultado do processamento. Mtodo um mecanismo fundamental e poderoso. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 188
Especificando a sintaxe de declarao de um mtodo: tipoDeRetorno nomeDoMetodo ( l i st aDePar ament r os opci onal ) { / / cor po do mt odo }
tipoDeRetorno o tipo de dado que vai ser retornado pelo mtodo aps sua execuo. Pode ser o nome de qualquer tipo como int ou string. Se o seu mtodo no for retornar valor algum, voc precisa usar a palavra reservada void aqui, especificando que o mtodo no retorna nada.
nomeDoMetodo o nome que vai ser usado para chamar o mtodo. Este nome deve seguir as mesmas recomendaes usadas nos nomes das variveis. Procure usar notao camelCasing para nomear os mtodos e tambm procure utilizar um verbo na primeira palavra do nome, para ajudar a identificar o que o mtodo faz.
ListaDeParametros descreve o tipo e os nomes das informaes opcionais que o mtodo recebe. Voc escreve os parmetros dentro dos parnteses como se fosse declarar variveis: nome do tipo seguido pelo nome do parmetro. Se o seu mtodo tiver mais que um parmetro, separe-os com vrgula.
Corpo do mtodo linhas de cdigo que vo ser executadas quando o mtodo chamado.
O C# no suporta os mtodos globais, utilizados por programadores Visual Basic, C e C++. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 189
Abaixo um exemplo de um mtodo chamado AdicionarValores que retorna um numero inteiro (int) e recebe dois nmeros inteiros como paramentos.
i nt adi ci onar Val or es ( i nt numer oPequeno, i nt numer oGr ande) { / / . . . / / cor po do mt odo deve ser f ei t o aqui / / . . . }
Abaixo um segundo exemplo, de um mtodo chamado mostrarResultado que no retorna nenhum valor, e recebe um simples parmetro chamado pergunta do tipo int. voi d most r ar Resul t ado ( i nt per gunt a) { / / . . . }
Lembre-se de usar a palavra reservada void quando o mtodo no for retornar nada.
Escrevendo declaraes que retornam valores:
Se voc quer que seu mtodo retorne uma informao (em outras palavras que retorne um tipo e no um void), voc precisa escrever um cdigo de retorno dentro do mtodo.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 190
Para isso voc usa a palavra reservada return, seguida da expresso que calcula o valor a ser retornado. Ateno, porque o resultado da expresso deve ser do mesmo tipo que o especificado como tipoDeRetorno do mtodo, seno o programa no vai compilar.
Por exemplo: i nt adi ci onar Val or es ( i nt numer oPequeno, i nt numer oGr ande) { / / . . . r et ur n numer oPequeno + numer oGr ande; }
Lembre-se do ponto-e-vrgula ao final de cada instruo.
O retorno do mtodo deve estar no final do mtodo porque ele causa a finalizao do mtodo. Qualquer cdigo depois da linha que faz o retorno no vai ser executado.
Se voc no quer que seu mtodo retorne informao alguma (do tipo void), voc pode uma variao da palavra reservada return para causar o encerramento imediato do mtodo, para isso digite return seguido de ponto-e-vrgula.
Por exemplo: voi d most r ar Resul t ado ( i nt per gunt a) { . . . i f ( . . . ) r et ur n; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 191
. . . }
Se o seu mtodo no precisar retornar nada voc pode simplesmente omitir o return, porque o mtodo vai ser finalizado automaticamente quando a ultima linha de cdigo do corpo for executada.
Chamando mtodos:
Mtodos existem para serem chamados. Voc chama um mtodo pelo seu nome para ele executar uma tarefa. Se esse mtodo precisa de informaes para realizar sua tarefa (parmetros), voc precisa enviar essas informaes pra ele. Se o mtodo retornar uma informao, voc precisa ter uma forma de receber essa informao, como uma varivel, por exemplo.
Especificando a sintaxe para se chamar um mtodo:
nomeDoMetodo ( listaDeArgumentos opci onal )
nomeDoMetodo precisa ser exatamente igual ao nome do mtodo que voc esta chamando, lembre-se que o C# case-sensitive ou seja, diferencia maisculas de minsculas.
listaDeArgumentos informaes adicionais que o mtodo aceita, voc precisa passar um valor para cada parmetro e este valor precisa ser compatvel o tipo correspondente ao parmetro. Se o mtodo que voc esta chamando tiver dois ou mais parmetros, voc precisa separar os valores com vrgula.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 192
Importante: Voc precisa escrever os parnteses ao final de cada mtodo, mesmo que l no tiver parmetro algum.
Por exemplo, lembre-se do mtodo adicionarValores:
i nt adi ci onar Val or es ( i nt numer oPequeno, i nt numer oGr ande) { / / . . . r et ur n numer oPequeno + numer oGr ande; }
Este mtodo tem dois parmetros entre os parnteses, para cham-lo, faa assim: adi ci onar Val or es( 39, 3)
Esta a maneira correta de chamar o mtodo, se voc tentar das seguintes formas no vai conseguir:
adi ci onar Val or es / / Fal t a par nt eses adi ci onar Val or es( ) / / Fal t a ar gument os adi ci onar Val or es( 39) / / Fal t a umar gument o adi ci onar Val or es( 39, 3) / / Ti pos er r ados
O mtodo adicionarValores retorna um numero inteiro. Este valor inteiro pode ser usado em qualquer lugar que uma variavel int puder ser usada.
Por exemplo: r esul t ado = adi ci onar Val or es( 39, 3) ; most r ar Resul t ado( adi ci onar Val or es( 39, 3) ) ;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 193
No primeiro exemplo atribumos o retorno a uma varivel chamada resultado. No segundo atribumos o resultado a outro mtodo, que vai utilizar este resultado como parmetro para sua execuo.
Voc viu que pode criar uma varivel dentro de um mtodo. A varivel criada na cdigo que a define, e outros cdigo no mesmo mtodo que vm depois podem usar a varivel. Em outras palavras, uma varivel pode ser usada s em certos lugares depois de que ter sido criada. Uma vez que o mtodo terminou, a varivel desaparece completamente.
Se uma varivel pode ser usada em um local particular em um programa, ela parece estar no escopo daquele local. O escopo de uma varivel simplesmente a regio do programa em que ela utilizvel. O escopo se aplica a mtodos como tambm a variveis. O escopo de uma varivel ligado ao local da sua declarao que introduz a mesma no programa, como voc aprender agora.
Criando escopo local com um mtodo.
As chaves determinam onde comea e onde termina o corpo do mtodo. Elas tambm determinam o escopo do mtodo. Qualquer varivel criada dentro do corpo do mtodo faz parte do escopo do mtodo. Estas variveis so chamadas de variveis locais porque so locais ao mtodo onde so declaradas. Elas no podem ser usadas no escopo nenhum outro mtodo, por isso voc no pode usar variveis locais para armazenar informaes entre mtodos. Quando um mtodo acaba sua execuo ele finaliza as variveis que ele criou.
Por exemplo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 194
cl ass Exempl o { voi d mt odo( ) { i nt var i avel ; . . . } voi d out r oMet odo( ) { var i avel = 42; / / i sso ger a umer r o de compi l ao } }
O erro mostrado acima porque a varivel foi criada dentro de um mtodo diferente da qual esta sendo usada.
Criando escopo de classe com uma classe:
As chaves determinam onde comea e onde termina o corpo da classe e determinam seu escopo. Assim sendo, qualquer varivel que voc criar dentro do corpo da classe (mas que no estejam dentro do mtodo), fazem parte do seu escopo. Em C# o nome correto desse tipo de varivel campo. Em contraste as variveis locais voc pode usar os campos para armazenar informaes entre os mtodos.
Por exemplo: cl ass Exempl o { Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 195
i nt campo;
voi d mt odo( ) { campo = 42; . . . } voi d out r oMet odo( ) { campo = 44; } }
Perceba que criamos a varivel dentro da classe.
Em um mtodo voc precisa declarar uma varivel antes de us-la. Campos so diferentes, um mtodo pode usar um campo antes de ser definido algum valor para ele.
Exemplo:
1 Crie uma aplicao no Visual Studio .NET do tipo Console Application chamada Metodo. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 196
2 No painel de cdigo crie digite o seguinte cdigo que cria o mtodo lerDouble dentro da classe Program.
publ i c doubl e l er Doubl e( st r i ng i ni ci e) { Consol e. Wr i t e( i ni ci e) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n doubl e. Par se( l i nha) ;
}
Vai ficar assim nosso mtodo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 197
Esse mtodo escreve no console o texto que enviado para ele como parmetro. Depois armazena na varivel linha o numero digitado pelo usurio e o retorna.
3 No menu Build clique em Build Metodo ou pressione Ctrl+Shift+B.
Verifique se compila sem nenhum erro.
4 - Vamos criar agora um outro mtodo com as seguintes caractersticas:
Digite o seguinte cdigo, voc pode digit-lo em qualquer local desde que esteja dentro da Classe no nosso caso a Program.
publ i c i nt l er I nt ei r o( st r i ng i ni ci o) { Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 198
Consol e. Wr i t e( i ni ci o) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n i nt . Par se( l i nha) ; }
Esse mtodo faz a mesma coisa que o mtodo lerDouble, s que retorna uma integer (inteiro).
Esta ficando assim nosso cdigo:
usi ng Syst em; usi ng Syst em. Col l ect i ons. Gener i c; usi ng Syst em. Text ;
namespace Met odo { cl ass Pr ogr am { publ i c doubl e l er Doubl e( st r i ng i ni ci e) { Consol e. Wr i t e( i ni ci e) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n doubl e. Par se( l i nha) ;
}
publ i c i nt l er I nt ei r o( st r i ng i ni ci o) { Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 199
Consol e. Wr i t e( i ni ci o) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n i nt . Par se( l i nha) ; }
st at i c voi d Mai n( st r i ng[ ] ar gs) { } } }
Verifique se os dois mtodos esto dentro do escopo da classe Program.
5 Novamente menu Build clique em Build Metodo ou pressione Ctrl+Shift+B. E verifique se ocorre erros, se ocorrer verifique seu cdigo comparando-o ao acima. Lembre-se novamente que o C# case-sensitive, ou seja, diferencia maisculas de minsculas.
6 Vamos criar mais um mtodo, este mtodo possui mais de um parmetro: Segue as caractersticas do nosso mtodo:
publ i c doubl e cal cul ar ( doubl e t axaDi ar i a, i nt di as) { r et ur n t axaDi ar i a * di as; }
Esse mtodo retorna a multiplicao dos dois parmetros que so enviados para ele. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 200
7 Nosso ultimo mtodo tem as seguintes especificaes:
publ i c voi d escr ever ( doubl e t axa) { Consol e. Wr i t eLi ne( " A t axa : {0}" , t axa * 1. 1) ; }
Lembre que os mtodos do tipo void no retornam nada.
Esse mtodo escreve no console a multiplicao do parmetro que enviado para ele com 1.1
Esta ficando assim nosso cdigo:
usi ng Syst em; usi ng Syst em. Col l ect i ons. Gener i c; usi ng Syst em. Text ;
namespace Met odo { cl ass Pr ogr am { publ i c doubl e l er Doubl e( st r i ng i ni ci e) { Consol e. Wr i t e( i ni ci e) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n doubl e. Par se( l i nha) ;
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 201
}
publ i c i nt l er I nt ei r o( st r i ng i ni ci o) { Consol e. Wr i t e( i ni ci o) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n i nt . Par se( l i nha) ; }
publ i c doubl e cal cul ar ( doubl e t axaDi ar i a, i nt di as) { r et ur n t axaDi ar i a * di as; }
publ i c voi d escr ever ( doubl e t axa) { Consol e. Wr i t eLi ne( " A t axa : {0}" , t axa * 1. 1) ; }
st at i c voi d Mai n( st r i ng[ ] ar gs) { } } }
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 202
8 Clique em Build Metodo no menu Build para verificar se compila corretamente. Tudo certo? Vamos usar os mtodos que criamos.
Chamando Mtodos
Podemos chamar mtodos dentro de mtodos, como faremos a seguir.
9 Crie um novo mtodo que no retorna nada, ou seja, do tipo void. De o nome dele de Executar
O cdigo do nosso novo mtodo deve ficar assim:
publ i c voi d execut ar ( ) { doubl e t axadi ar i a = l er Doubl e( " Di gi t e a t axa di ar i a: " ) ; i nt di as = l er I nt ei r o( " Di gi t e o numer o de di as: " ) ; escr ever ( cal cul ar ( t axadi ar i a, di as) ) ; }
Na primeira linha de cdigo criamos uma varivel do tipo double e atribumos a ela o mtodo lerDouble.
Na segunda linha criamos uma varivel do tipo int e atribumos a ela o mtodo lerInteiro.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 203
Na terceira linha de cdigo chamamos o mtodo escrever e passamos para ele como parmetro o mtodo calcular.
10 No mtodo Main (primeiro mtodo executado pelo programa) digite o seguinte cdigo:
( new Cl ass1( ) ) . execut ar ( ) ;
Isso vai executar o mtodo executar assim que o programa for iniciado
O mtodo Main vai ficar assim:
st at i c voi d Mai n( st r i ng[ ] ar gs) { ( new Pr ogr am( ) ) . execut ar ( ) ; }
11 Pressione Ctrl+F5 para executar o programa.
O Visual Studio compila o programa e o executa. Uma janela console aparece.
12 Para taxa diria digite 315 e pressione Enter.
13 Para numero de dias digite 15 e pressione Enter.
O programa vai escrever a seguinte mensagem no console: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 204
A t axa : 5197, 5
14 Pressione qualquer tecla para retornar ao Visual Studio.
Vou digitar o cdigo fonte todo utilizado para voc poder verificar caso haja algum problema e vamos depurar nosso programa para entender melhor como ele funciona.
usi ng Syst em; usi ng Syst em. Col l ect i ons. Gener i c; usi ng Syst em. Text ;
namespace Met odo { cl ass Pr ogr am { publ i c doubl e l er Doubl e( st r i ng i ni ci e) { Consol e. Wr i t e( i ni ci e) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; r et ur n doubl e. Par se( l i nha) ;
}
publ i c i nt l er I nt ei r o( st r i ng i ni ci o) { Consol e. Wr i t e( i ni ci o) ; st r i ng l i nha = Consol e. ReadLi ne( ) ; Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 205
r et ur n i nt . Par se( l i nha) ; }
publ i c doubl e cal cul ar ( doubl e t axaDi ar i a, i nt di as) { r et ur n t axaDi ar i a * di as; }
publ i c voi d escr ever ( doubl e t axa) { Consol e. Wr i t eLi ne( " A t axa : {0}" , t axa * 1. 1) ; }
publ i c voi d execut ar ( ) { doubl e t axadi ar i a = l er Doubl e( " Di gi t e a t axa di ar i a: " ) ; i nt di as = l er I nt ei r o( " Di gi t e o numer o de di as: " ) ; escr ever ( cal cul ar ( t axadi ar i a, di as) ) ; }
st at i c voi d Mai n( st r i ng[ ] ar gs) { ( new Pr ogr am( ) ) . execut ar ( ) ; } } }
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 206
CAPITULO 10 LGICA DE PROGRAMAO COM VB.NET
O VB.NET, junto com o Visual Studio .NET 2005 compe uma ferramenta extremamente robusta e fcil de utilizar, com perfeito suporte a todas as novas ondas que rondam o mundo da informtica e tecnologia.
Tanto a linguagem VB.NET e a C# trabalham de forma praticamente idntica na plataforma .NET da Microsoft, com diferena de sintaxe, como voc vai ver se acompanhar o contedo das duas linguagens.
O Visual Studio .NET 2005 a melhor ferramenta de desenvolvimento de aplicaes para a plataforma .NET. Com uma interface amigvel e integrada com os ambientes e de fcil entendimento, proporciona aos desenvolvedores a criao de aplicaes sofisticadas com todos os recursos existentes, sem ter que ficar criando parte de cdigo em um aplicativo e o restante no outro. possvel com o Visual Studio gerenciar recursos da mquina e local e de um possvel servidor, criar aplicaes para Windows, web e dispositivos mveis.
Meu objetivo neste capitulo ajuda-lo a aplicar os conhecimentos de lgica de programao adquiridos at aqui na linguagem de programao VB.NET.
Vamos primeiramente conhecer um pouco do Visual Studio.NET, a ferramenta que utilizaremos para desenvolver nossos aplicativos e criar nosso primeiro exemplo.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 207
1 Entre no Visual Studio.NET, eu estou usando a verso 2005, mas os exerccios funcionam em qualquer verso.
Voc pode entrar no Visual Studio.NET atravs do menu Iniciar / Programas / Microsoft Visual Studio .NET / Microsoft Visual Studio .NET , sinta-se a vontade para criar qualquer atalho para ele.
A imagem anterior mostra o Visual Studio .NET assim que o iniciamos, exibida a pagina Start Page onde podemos abrir rapidamente os ultimos projetos criados atravs da caixa Recent Projects.
2 No menu File, aponte em New, e clique em Project. (Ou clique Ctrl+Shift+N).
A caixa de dialogo New Project aparece. Ela permite que criemos um novo projeto usando vrios templates, como um Windows Application, Class Library, Console Application e vrios outros. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 208
3 No painel Project Type, clique em Visual C# Projects, aqui esto todos os templates disponveis para a linguagem C#.
4 No painel Templates clique em Console Application.
5 No campo nome digite, ClassicoHelloWorld.
Perceba que voc pode ainda alterar o caminho onde sua aplicao ser salva e o nome da sua Soluo.
6 Clique em OK.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 209
A barra de menus (menu bar) possibilita o acesso aos comandos que voc usa no ambiente de programao. Voc pode usar o teclado ou o mouse para acessar o menu ou atalhos exatamente como usa em outros programas baseados em Windows.
A barra de ferramentas (toolbar) localizada embaixo da barra de menus e disponibiliza botes que executam os comandos usados com mais freqncia. No confunda toolbar com toolbox.
A janela Solution Explorer mostra os nomes dos arquivos associados com o seu projeto. Voc pode dar um clique duplo sobre o nome do arquivo para exibi-lo no painel de cdigo (Code pane). Vamos examinar os arquivos que o Visual Studio criou como parte do seu projeto: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 210
ClassicoHelloWorld.sln organiza os projetos de cada soluo, uma soluo pode ter vrios projetos, seu nome representado no primeiro item na janela Solution Explorer s que sem a extenso do arquivo.
ClassicoHelloWorld.vbproj este o arquivo do projeto VB.NET. Pode ser associado a vrios arquivos de cdigo. reconhecido no Solution Explorer pelo nome do projeto apenas, no entanto gravado no disco com a extenso .vbproj.
Module1.vb um arquivo de cdigo do VB.NET. Voc vai escrever seu cdigo neste arquivo. O Visual Studio j adicionou algum cdigo nele automaticamente, examinaremos esse cdigo mais adiante.
Aos poucos ns vamos explorando mais o Visual Studio, vamos ao nosso primeiro exemplo.
Nosso primeiro exemplo bem simples, e um clssico para quem esta aprendendo qualquer linguagem, ele escreve Hello World no console.
7 Dentro da Sub Main, digite: Console
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 211
A classe Console contm os mtodos para exibir mensagens na tela e pegar as entradas do teclado. Tudo que o usurio digita no teclado pode ser lido atravs da classe Console. A classe Console s significante para aplicaes que rodam no prompt de comando como neste nosso primeiro exemplo.
8 Agora digite um ponto depois de Console.
Uma lista aparece, ela chamada de IntelliSense, esse no um recurso exclusivo do Visual Studio mas ajuda muito na programao. O IntelliSense exibe todos os mtodos, propriedades e campos da classe.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 212
9 Selecione WriteLine, voc pode usar o Mouse ou o Teclado, tecle Enter ou d um clique duplo sobre o WriteLine.
O IntelliSense fechado e o mtodo WriteLine adicionado ao cdigo. Como a seguinte imagem: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 213
Quando o IntelliSense aparece voc tambm pode pressionar W para ir direto para o primeiro membro do mtodo Console que comear com w.
10 Abra parnteses (
mostrado uma outra forma do IntelliSense, esse mostra os parmetros do mtodo WriteLine. O mtodo WriteLine tem o que chamamos de Sobrecarga (Overload). Para cada sobrecarga do mtodo WriteLine usamos parmetros diferentes. Cada sobrecarga e seus respectivos parmetros podem ser visualizados clicando com o mouse na seta do IntelliSense ou navegando pelas setas do teclado.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 214
11 Feche os parnteses, vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 215
12 Digite entre os parnteses a string Hello World, string deve ficar entre aspas. Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 216
13 Vamos agora compilar nossa aplicao. No menu Build, clique em Build Solution. Se tudo estiver certinho vai aparecer a seguinte linha na janela Output:
========== Bui l d: 1 succeeded or up- t o- dat e, 0 f ai l ed, 0 ski pped ==========
Para exibir a janela Output na barra de menus clique em View, Output ou pressione Ctrl+W+O.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 217
Um asterisco depois do nome do arquivo no painel de cdigo indica que foram feitas modificaes no cdigo do respectivo arquivo e que essas alteraes no foram salvas. Voc pode salvar manualmente antes de compilar a aplicao, mas ao compilar o Visual Studio salva automaticamente todos os arquivos da aplicao.
14 No menu Debug, clique em Start Without Debugging para executar o programa no prompt de commando.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 218
O programa vai escrever Hello World como a ilustrao acima.
Ns escolhemos Start Without Debugging para forar uma pausa no final da execuo. Se clicssemos em Start ele iria executar o programa e fechar o prompt de comando logo aps a execuo, seria to rpido que no conseguiramos ver o que foi escrito, experimente.
15 Com o foco no prompt de comando pressione qualquer tecla.
A janela ir fechar e retornaremos para o Visual Studio.
16 - Na janela Solution Explorer, clique no boto Show All Files. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 219
Aparecem os nomes bin e obj depois do nome do projeto. Esses dois correspondem a pastas com seus respectivos nomes. Essas pastas so criadas quando voc executa a aplicao e contem uma verso executvel do programa e outros arquivos necessrios para depurar o programa.
17 Ainda na janela Solution Explorer, clique no sinal de + esquerda do nome bin. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 220
Um outro nome aparece representando uma outra pasta chamada debug.
18 Clique no sinal de + de debug.
Repare nos arquivos: ClassicoHelloWorld.exe e ClassicoHelloWorld.pdb.
O arquivo .exe o executvel da aplicao. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 221
O arquivo .pdb armazena informaes de depurao da aplicao.
O arquivo ClassicoHelloWorld.vshost.exe s aparece no Visual Studio 2005, ele usado para melhorar a performance da depurao de erros.
Como vimos at agora, o Visual Studio compilou automaticamente nosso programa e criou os arquivos necessrios automaticamente, durante o processo de compilao. Em resumo a compilao o processo que transforma seus arquivos fonte em um arquivo executvel pelo sistema operacional, um .exe por exemplo.
At agora por motivo didtico usamos somente o prompt de comando para criar os nossos exemplos. Como sabemos esse tipo de aplicao no muito til nos dias de hoje. O Visual Studio .NET conta com diversos recursos importantes para o desenvolvimento de aplicaes Windows.
1 Entre no Visual Studio .NET.
2 Crie um novo projeto, s que desta vez do tipo Windows Application, chamado WinHello.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 222
O Visual Studio .NET cria e mostra um formulrio baseado em Windows no modo Design.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 223
Vamos agora criar a nossa interface com o usurio.
3 Na barra de ferramentas do Visual Studio .NET clique em ToolBox. O cone da ToolBox aparece a esquerda do formulrio. Voc tambm pode localizar a ToolBox atravs do menu View > ToolBox.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 224
4 Arraste da barra de ferramentas o controle Label e posicione-o no canto superior esquerdo do formulrio.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 225
Para colocar um controle no formulrio voc pode tambm dar um clique duplo sobre ele na barra de ferramentas ou clicar uma vez sobre ele na barra de ferramentas e depois clicar no formulrio. O clique duplo posiciona o controle no canto superior esquerdo. A segunda opo coloca o controle no local onde voc clicar.
5 Coloque tambm no formulrio um controle TextBox e um controle Button. Como na prxima ilustrao:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 226
6 Na janela Solution Explorer, clique no boto View Code.
O cdigo do arquivo Form1.vb aparece.
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
Form1.vb tem todo o cdigo gerado automaticamente pelo Visual Studio .NET. Note os seguintes elementos no cdigo uma classe chamada Form1.
Vamos agora definir as propriedades dos controles que colocamos no Form.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 227
7 Volte para o modo Design.
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
8 De um clique sobre o Button1 para selecion-lo.
9 Na janela Properties, altere a propriedade Text do button1 para OK.
Se no localizar a janela Properties, clique em F4, ou no menu View, clique em Properties Window.
10 Altere tambm a propriedate Text do Label1 para Digite o seu nome
11 Altere agora a propriedade Text do controle textBox1 para aqui.
Note que as propriedades modificadas na janela Properties ficam em negrito. Assim voc pode saber se elas esto com seu valor padro ou no.
12 Selecione o formulrio clicando sobre ele.
Note que aparecem alguns marcadores envolta do formulrio. Eles ajudam a redimensionar o formulrio.
13 - Clique sobre o marcador central na parte de baixo do Form1 e mantendo o boto pressionado arraste para cima.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 228
Isso serve para os outros controles tambm, clique sobre os outros controles e note os marcadores.
Vamos agora escrever o cdigo para o nosso programa.
14 No painel de cdigo de um clique duplo sobre o Button1.
Note que ele vai diretamente para o painel de cdigo e criado automaticamente o seguinte cdigo.
Pr i vat e Sub But t on1_Cl i ck( ByVal sender As Syst em. Obj ect , ByVal e As Syst em. Event Ar gs) Handl es But t on1. Cl i ck
End Sub
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 229
Tudo que for digitado dentro deste cdigo ser executado assim que o Button1 for clicado quando o programa estiver executando.
15 - Digite o seguinte cdigo:
MessageBox. Show( " Hel l o " + t ext Box1. Text )
Vai ficar assim:
Pr i vat e Sub But t on1_Cl i ck( ByVal sender As Syst em. Obj ect , ByVal e As Syst em. Event Ar gs) Handl es But t on1. Cl i ck MessageBox. Show( " Hel l o " + Text Box1. Text ) End Sub
16 Execute o programa.
Para executar o programa voc pode clicar e F5, ou no menu Debug clicar em Start Debugging.
Automaticamente o Visual Studio .NET salva o programa, compila e o executa. A seguinte janela aparece:
17 Digite seu nome e clique em OK.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 230
Uma janela aparece exibindo a mensagem Hello seu-nome.
18 - Clique em Ok para fechar a janela com a mensagem.
19 Na janela executando o Form1 clique em fechar.
10.1 Tipos de dados em VB.NET
Categoria Tipo Valores possveis de se armazenar Inteiro Byte 0 a 255 (8 bits) Inteiro SByte -128 a 127 (8 bits) Inteiro Integer -2,147,483,648 a 2,147,483,647 (32 bits) Inteiro UInteger 0 a 4,294,967,295 (32 bits) Inteiro Long 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits) Inteiro ULong 0 a 18,446,744,073,709,551,615 (64 bits) Inteiro Short -32,768 a 32,767 (16 bits) Inteiro UShort 0 a 65,535 (16 bits) Real Decimal 1.0 1028 a 7.9 1028 (128 bits) Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 231
Real Double 5.0 10324 a 1.7 10308 (64 bits) Real Single 1.5 1045 a 3.4 1038 (32 bits) Lgico Boolean Verdadeiro ou Falso (Valores booleandos) Literal Char Um caractere (16 bits) Literal String Seqncia de caracteres (16 bits por caractere)
Em VB.NEU os tipos UInteger, ULong e UShort, ocupam o mesmo espao que os tipos Integer, Long e Short. S que s podem armazenar nmeros positivos.
Os tipos UInteger, ULong e UShort so conhecidos como Tipos no assinados.
10.2 Declarando Variveis em VB.NET
Segue a lista de palavras-reservadas do VB.NET, lembre-se que elas no podem ser usadas como nome de variveis.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 232
Em VB.NET declaramos usando o comando Dim como segue:
Dim contador As Integer
Sempre depois de As vem o tipo de dado.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 233
Esse exemplo declara uma varivel chamada contador do tipo integer.
Podemos tambm declarar mltiplas variveis de uma vez, fazemos isso da seguinte maneira:
Dim contador, numeroCarro as Integer
Estamos declarando nesse exemplo duas variveis do tipo integer, uma chamada contador e a outra numeroCarro.
10.3 Constantes em VB.NET Para declarar uma constante em VB.NET voc usa o comando Const na declarao da varivel ao invs de Dim. Exemplo:
Const pi as Double = 3.1415
10.4 Operadores de atribuio em VB.NET
Exemplo de como atribuir um valor a uma varivel em VB.NET.
Dim numeroFuncionario as Integer Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 234
numeroFuncionario = 23
Primeiro ns declaramos nossa varivel do tipo integer. Depois atribumos o valor 23 a ela. Entendemos pelo sinal de igual como recebe. Assim numeroFuncionario recebe 23.
Podemos tambm atribuir um valor a varivel quando a declaramos, dessa forma:
Dim numeroFuncionario as Integer = 23
Isso faz mesma coisa que o exemplo anterior, s que tudo em uma linha.
Valores do tipo String ou Caracter devem ser inseridos entre aspas duplas, exemplo:
Dim nome As String = Moroni
10.5 - Operadores aritmticos em VB.NET Operador Representao em VB.NET Exemplo Incremento ++ a ++ Neste caso somado 1 ao valor de a. Decremento -- a -- Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 235
Neste caso subtrado 1 do valor de a. Multiplicao * a * b Multiplica-se o valor de a por b. Diviso / a / b Divide-se o valor de a por b. Exponenciao ^ 2 ^ 3 Aqui representamos 2 elevado a 3 ou 2 3 . Mdulo Mod a mod b Retorna o resto da diviso de a por b. Adio + a + b Soma de a com b. Subtrao - a b Subtrao de a com b. 10.6 Operadores relacionais em VB.NET
Operador Representao em VB.NET Exemplo Maior > a > b Se o valor de a for maior que o valor de b ento o resultado dessa expresso Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 236
verdadeiro seno falso. Maior ou igual >= a >= b Se o valor de a for maior ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor < a < b Se o valor de a for menor que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Menor ou igual <= a <= b Se o valor de a for menor ou igual que o valor de b ento o resultado dessa expresso verdadeiro seno falso. Igual a = a = b Se o valor de a for igual ao valor de b ento o resultado dessa expresso verdadeiro seno falso. Diferente de <> a <> b Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 237
Se o valor de a for diferente do valor de b ento o resultado dessa expresso verdadeiro seno falso.
10.7 - Operadores Lgicos em VB.NET
Operador Representao em VB.NET Exemplo E And a = 5 And. b > 9 Caso o valor de a seja igual a cinco e o valor de b maior que nove o resultado verdadeiro, seno falso. Ou Or a = 5 Or b > 9 Se o resultado de a for igual a cinco ou o valor de b for maior que nove ento o resultado verdadeiro. O resultado s ser falso as duas expresses retornarem falso. No Not Not a = 5 Se o resultado de a for Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 238
igual a 5 ento o resultado ser falso, o operador no inverte o resultado da expresso.
10.8 - Entrada e Sada de dados em VB.NET
Para entrada de dados em VB.NET usamos o comando ReadLine, e para a Sada de dados o comando WriteLine. A linguagem VB.NET e C# tem vrios comandos similares, j que ambas foram desenvolvidas para serem utilizadas na plataforma .NET da Microsoft. No entanto a sintaxe do C# mais parecida com a do C, por ser uma linguagem que vem do C.
Segue um exemplo em VB.NET:
Di mnome As St r i ng Consol e. Wr i t eLi ne( " Di gi t e seu nome: " ) nome = Consol e. ReadLi ne Consol e. Wr i t eLi ne( " Seu nome : " & nome)
No exemplo acima, primeiro declaramos uma varivel do tipo string chamada nome, depois usamos o comando de saida WriteLine para imprimir Digite seu nome na tela. Na terceira linha atribumos o valor que foi digitado varivel nome usando o comando de entrada ReadLine. Por ultimo exibimos na tela o Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 239
nome digitado novamente usando o comando WriteLine. O operador & foi utilizado para concatenar o texto Seu nome com o contedo da varivel nome.
10.9 Estruturas de deciso em VB.NET
A primeira estrutura de deciso que iremos estudar o IF, veja a sintaxe a seguir:
I f condio Then cdigo El seI f condio Then cdigo El se cdigo End I f
IF condio THEN ento faa algo; caso contrrio Else ou ainda voc pode testar outra condio ElseIF at que o programa encontre o resultado correto.
Veja o seguinte exemplo:
Di mSal ar i o As Doubl e = 1200 I f Sal ar i o > 1000 Then Sal ar i o *= 1. 1 End I f
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 240
Existe uma varivel chamada Salario que est definida e contm o valor 1200. Como toda condio retorna apenas verdadeiro ou falso, verificado se o valor maior que 1000, e caso seja verdadeiro ser somado 10% ao Salario.
Vamos a mais alguns exemplos para facilitar o entendimento.
Di mSal ar i o As Doubl e = 1200
I f Sal ar i o < 500 Then Sal ar i o += 50 El se Sal ar i o += 100 End I f
Aqui verificado se o valor menor que 500 e dependendo da condio somado 50 ou 100, pois h o Else. Ento se a varivel for menor que 500 adicionamos nela o valor 50, seno adicionamos 100.
Di mSal ar i o As Doubl e = 1200
I f Sal ar i o < 500 Then Sal ar i o += 50 El seI f Sal ar i o >= 500 And Sal ar i o < 2000 Then Sal ar i o += 100 El se Sal ar i o += 250 End I f Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 241
J no exemplo acima existem 3 condies, onde o primeiro IF soma 50, o segundo 100 e o ELSE 250. O Else sempre executado quando nenhuma expresso verdadeira.
possvel avaliar diversos ElseIFs com uma determinada expresso. Como no exemplo abaixo:
Di mSal ar i o As Doubl e = 1200
I f Sal ar i o < 500 Then Sal ar i o += 50 El seI f Sal ar i o >= 500 And Sal ar i o < 600 Then Sal ar i o += 100 El seI f Sal ar i o >= 600 And Sal ar i o < 700 Then Sal ar i o += 110 El seI f Sal ar i o >= 700 And Sal ar i o < 800 Then Sal ar i o += 120 El se Sal ar i o += 250 End I f
Perceba que no bloco de cdigo acima usamos o And.
O And usado quando precisamos testar mais de uma expresso condicional.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 242
Exemplo:
El seI f Sal ar i o >= 500 And Sal ar i o < 600 Then
Nesta linha testamos se o salario maior ou igual a 500 e o salario menor que 600.
Ento se o salario for 553 a expresso acima VERDADEIRA, caso contrario FALSA.
A segunda estrutura de deciso que iremos estudar conhecida como Select Case.
Essa estrutura de deciso seleciona o cdigo a ser executado baseado no valor de uma expresso.
A sintaxe a seguinte:
Sel ect Case expresso de teste Case item de texte cdigo Case El se cdigo End Sel ect
O funcionamento ocorre da seguinte maneira: a expresso obtida no Select Case e para cada Case existe uma condio a ser validada. Caso o Case seja verdadeiro, ento a linha ou o bloco de cdigo executado. Se nenhum dos Cases for vlido, Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 243
voc pode usar o Case Else. O Case Else opcional. Voc pode ter quantos Cases for necessrio.
Veja o exemplo:
Di mdi aDaSemana As I nt eger = 3
Sel ect Case di aDaSemana Case 1 MsgBox( Domi ngo) Case 2 MsgBox( Segunda- Fei r a) Case 3 MsgBox( Ter a- Fei r a) Case 4 MsgBox( Quar t a- Fei r a) Case 5 MsgBox( Qui nt a- Fei r a) Case 6 MsgBox( Sext a- Fei r a) Case 7 MsgBox( Sabado) End Sel ect
Primeiro criamos uma varivel do tipo integer e atribumos a mesma o valor 3.
A seguir iniciamos a estrutura colocando como expresso de teste o valor da varivel. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 244
O primeiro Case verifica se o valor da varivel ou expresso de teste 1. Se for o cdigo que escreve na tela o texto Domingo executado e a estrutura finalizada no verificando os outros Cases. Caso contrario ele vai pro prximo case e segue como o primeiro at o fim da estrutura. Se nenhum dos cases se enquadrar no valor da expresso de teste nenhum cdigo ser executado, para isso que serve o Else. No prximo exemplo vamos apenas programar o uso do Else:
Di mdi aDaSemana As I nt eger = 3
Sel ect Case di aDaSemana Case 1 MsgBox( Domi ngo) Case 2 MsgBox( Segunda- Fei r a) Case 3 MsgBox( Ter a- Fei r a) Case 4 MsgBox( Quar t a- Fei r a) Case 5 MsgBox( Qui nt a- Fei r a) Case 6 MsgBox( Sext a- Fei r a) Case 7 MsgBox( Sabado) Case El se MsgBox( Numer o I nvl i do) End Sel ect
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 245
Aqui se o resultado da expresso de teste no for verdadeiro em nenhum Case, ento ser executado o Case Else, escrevendo na tela que o valor informado invalido, o que no o caso para o nosso exemplo, j que o valor da expresso se enquadra no Case 3 escrevendo Tera-Feira.
10.10 Estruturas de repetio em VB.NET
O looping While executado sempre associado a uma condio, ou seja, a cada passagem pelo looping a condio avaliada. Veja a sintaxe a seguir:
Whi l e condio cdigo End Whi l e
Vamos fazer um exemplo para voc compreender melhor o funcionamento do while.
1 - Crie um novo projeto no Visual Studio, novamente do tipo Windows Application, chame o projeto de while.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 246
2 - Adicione no Form1 os seguintes controles:
1 Button 1 TexBox
3 - Mude a propriedade Text do Button1 para Loop.
4 - Mude as seguintes propriedades do TextBox1:
Text = vazio Multiline = True ScrollBars = Vertical
5 - Organize os controles como a figura abaixo:
6 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 247
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Whi l e Cont ador < 20 Cont ador += 1 Text Box1. Text += Cont ador & Quebr a End Whi l e
Vai ficar assim:
7 - Execute a aplicao.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 248
8 - Clique no boto loop.
Verifique que o nosso programa escreve os nmeros de 1 a 20, um embaixo do outro.
Esse nosso cdigo, vamos estud-lo um pouco:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 249
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Whi l e Cont ador < 20 Cont ador += 1 Text Box1. Text += Cont ador & Quebr a End Whi l e
Na primeira linha declaramos uma varivel chamada contador do tipo integer e atribumos a essa varivel o valor 0.
Na segunda declaramos uma segunda varivel chamada quebra do tipo String, e armazenamos nela uma string que representa o pressionamento da tecla Enter, isso responsvel por fazer com que o prximo numero seja exibido na linha debaixo, sem isso os nmeros ficariam um seguido do outro, faa o teste.
A terceira linha comea o While com a condio. Essa linhar quer dizer enquanto contador for menor que 20, ou seja ele vai executar o loop ou o cdigo que esta entre While e End While at que o contedo da varivel contador seja igual ou maior que 20.
A linha 4 soma 1 ao contedo da varivel contador, a linha a seguir tem o mesmo significado:
Cont ador = Cont ador + 1
Entretanto da forma que fizemos no nosso exemplo mais elegante porque no precisamos repetir o nome da varivel, se apenas fizssemos assim: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 250
Cont ador = 1
Ele atribuiria 1 ao contedo da varivel e o nosso looping se tornaria um loop infinito ou seja nunca ia parar de rodar porque nunca entraria na condio que o faz parar. Cuidado com esse tipo de loop, seus loops nunca devem ser infinitos.
A linha 5 atribui ao TextBox o valor da varivel contador concatenado com o valor da varivel quebra que simula o enter como especificado acima.
A linha 6 finaliza o While.
Repare que aps o numero 20 no programa tem uma linha em branco. Isso porque sempre inserida uma linha no TextBox quando chamada a varivel Quebra.
O Do...Loop semelhante ao while, ou seja, executado sempre associado a uma condio, novamente a cada passagem pelo looping a condio avaliada. S que o Do...Loop permite que dependendo da situao, a condio possa ser colocada no incio ou no final do looping. Se for ao incio, avaliada logo na primeira vez; se for no final, o looping executado pelo menos a primeira vez, pois a condio ser avaliada no final da primeira passagem pelo looping. Caso precise abandonar o looping, use o Exit Do, que opcional. Veja a sintaxe tanto com a condio no comeo como no final:
Do { Whi l e | Unt i l } condio cdigo Exi t Do Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 251
Loop
ou
Do cdigo Exi t Do Loop { Whi l e | Unt i l } condio
Depois do Do, voc pode usar o While ou o Until, a diferena que o While faz com que o loop seja executado at que a condio seja (falsa), e o Until at que a condio seja True (Verdadeira).
Vamos fazer uma modificao no exerccio anterior para compreender como funciona o Exit Do.
1 - Se o exemplo anterior no estiver aberto no Visual Studio, abra-o.
2 - V para o cdigo do button1, ele deve ser o seguinte:
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Whi l e Cont ador < 20 Cont ador += 1 Text Box1. Text += Cont ador & Quebr a End Whi l e
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 252
3 - Mude para o seguinte:
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Do Whi l e Cont ador < 20 Cont ador += 1 I f Cont ador = 10 Then Exi t Do End I f Text Box1. Text += Cont ador & Quebr a Loop
Perceba que as modificaes foram mnimas, apenas colocamos o Do antes do While, substitumos o End While por Loop, transformando assim o simples While em um Do...Loop. Aps inserimos um If que verifica se o contedo da varivel contador 10, se for ele executa o Exit Do que finaliza imediatamente o loop.
4 - Execute a aplicao:
5 - Clique em Loop.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 253
Perceba que ele nem chega a escrever o numero 10 por que a linha de cdigo que responsvel por isso esta depois do If que finalizou o loop.
Se voc fizer a seguinte modificao ele escreve o 10 antes de finalizar.
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Do Whi l e Cont ador < 20 Cont ador += 1 Text Box1. Text += Cont ador & Quebr a I f Cont ador = 10 Then Exi t Do End I f Loop
6 - Agora mude o comando While para Until como a linha abaixo: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 254
Do Unt i l Cont ador < 20
7 - Execute a aplicao.
8 - Clique em Loop.
Nada acontece, no mesmo? Isso porque o Until executa at que a expresso seja True. Como ela j true nem chega a executar o loop.
9 - Voc pode negar a expresso para ela executar, faa isso, mude a linha do Do Until... para a seguinte:
Do Unt i l Not Cont ador < 20
10 - Execute a aplicao novamente e clique em Loop.
Agora executa normalmente.
11 - Agora tire o not e coloque a expresso no final do loop como o cdigo a seguir:
Di mCont ador As I nt eger = 0 Di mQuebr a As St r i ng = Chr ( 13) & Chr ( 10) Do Cont ador += 1 I f Cont ador = 10 Then Exi t Do Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 255
End I f Text Box1. Text += Cont ador & Quebr a Loop Unt i l Cont ador < 20
12 - Execute a aplicao.
Se a expresso estivesse encima nada apareceria, como no exemplo acima, mas agora aparece o 1, isso porque ele executou uma vez o loop antes de avaliar a expresso, algumas vezes esse tipo de loop pode ser necessrio. Fique atento.
O For...Next usado quando sabemos o nmero de vezes que iremos executar o Loop. O For Next precisa de um contador que normalmente uma varivel e o looping vai do incio (Start) at (TO).
A varivel contador pode ser inicializada antes do For ou na prpria declarao. Em certos loopings voc pode usar o Step que o incremento do looping, podendo ser positivo ou negativo.
Se durante o processamento voc quiser abandonar o looping, ter que usar o Exit For que semelhante ao Exit Do. A sintaxe do For...Next a seguinte:
For contador = start To end Step statements Exit For Next
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 256
1 - Crie uma nova aplicao do tipo Windows Application com nome ForNext.
2 - Arraste para o Form1 um Button.
3 - Mude a propriedade Text do Button1 para Beep.
4 - De um clique duplo sobre o boto e no digite o seguinte cdigo para o evento do boto:
Di mi As I nt eger For i = 1 To 4 MessageBox. Show( i ) Next
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 257
5 - Execute a aplicao.
6 - Clique no boto Beep.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 258
Vamos dar uma avaliada no cdigo:
Di mi As I nt eger For i = 1 To 4 MessageBox. Show( i ) Next
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 259
A primeira linha cria uma varivel do tipo Integer.
A segunda linha inicia o For, ele executar de 1 a 4.
A linha 3 responsvel por abrir uma caixa de dilogo na tela com o valor da varivel i.
A linha 4 joga novamente para a linha 2.
A cada passada no For adicionada 1 ao contedo da varivel i, quando chega no 4 ele finaliza o loop.
7 - Mude o cdigo do boto para o seguinte:
Di mi As I nt eger For i = 1 To 25 St ep 5 MessageBox. Show( i ) Next
8 - Execute a aplicao e clique em Beep.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 260
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 261
Perceba que o Step 5 fez com que o nmero adicionado a varivel a cada passada do loop 5 ao invs de 1.
10.11 Vetores e matrizes em VB.NET Vamos fazer um exemplo, nele vamos criar o programa que armazenar os dados nos nomes dos jogadores e as faltas cometidas por eles.
1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application chamado Arrays.
2 - Arraste para o Form1 os seguintes controles:
3 Button 1 ListBox
3 - Altere a propriedade Text do Button1 para Inserir Jogadores.
4 - Altere a propriedade Text do Form1 para Arrays.
5 - Organize-os como a figura abaixo:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 262
6 - Na janela Solution Explorer clique no boto View Code para ir para o Painel de cdigo.
7 - Digite dentro da classe do Form1 o seguinte cdigo:
Di mJ ogador es( 10) As St r i ng
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 263
Nesta linha declaramos um Array de tamanho fixo. Perceba que a declarao bem semelhante a de uma varivel, com exeo do (10). O array que criamos como uma tabela com 11 linhas, isso porque o array comea sempre no 0 e acaba no nmero que especificamos, no caso 10, o suficiente para armazenar o nome do time inteiro, 11 jogadores.
8 - Na janela Solution Explorer clique em View Designer para voltar para o Form1 no modo Design, voc pode tambm clicar na aba Form1.vb[Design] ao lado da aba Start Page, essa altura do curso voc ja deve estar familiarizado com o Visual Studio.
9 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:
J ogador es( 0) = Mar cos
Isso insere Marcos na primeira linha do Array, se colocassemos 6 ao invs de 0, por exemplo, seria na linha 7.
10 - Mude a propriedade Text do Button2 para Visualizar.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 264
11 - De um clique duplo sobre o Button2 e digite o seguinte cdigo:
Li st Box1. I t ems. Add( J ogador es( 0) )
Isso insere na ListBox1 o contedo da primeira linha do array Jogadores, se colocassemos 6, exibiria o contedo da linha 7, lembre-se que de que todo array comea com 0, obrigatoriamente.
No se assuste com o cdigo para inserir no ListBox1, se fosse em uma TextBox ou Label voc poderia usar a seguinte linha de cdigo:
Text Box1. Text = J ogador es( 0)
S que para inserir um item no ListBox precisamos usar seu mtodo Add.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 265
Agora que voc j compreende como inserir e ler dados do array vamos avanar no exemplo.
12 - Volte para o cdigo do procedimento do Button1.
13 - Substitua o cdigo pelo seguinte:
Di mMensagem, J ogador As St r i ng Di mi As I nt eger
Mensagem= Di gi t e o nome do j ogador
For i = 0 To UBound( J ogador es) J ogador = J ogador & ( i + 1) J ogador es( i ) = I nput Box( Mensagem, J ogador ) Next
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 266
Com este cdigo vamos solicitar ao usurio que digite o nome dos 11 jogadores. Para isso fazemos um loop que vai de 0 at o total de itens no array.
Como sabemos que o Array possui 11 linhas poderia ter usado o seguinte cdigo, que seria mais simples:
For i = 0 To 11
No entando a tcnica que utilizamos mais flexivel por prever que o array pode aumentar. Agora temos que mudar o cdigo que exibe os dados tambm, para que possa exibir todos os dados cadastrados.
14 - Mude o cdigo do Button2 pelo seguinte: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 267
Di mi As I nt eger
For i = 0 To UBound( J ogador es) Li st Box1. I t ems. Add( J ogador es( i ) ) Next
Vai ficar assim:
Aqui usamos o loop For tambm para passar por cada item do Array e adicion-lo no ListBox1. Lembrando que a cada passada pelo For o i assume de uma linha do array at chegar ao final.
15 - Execute a aplicao. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 268
16 - Clique no boto Inserir Jogadores.
Aparece uma caixa pedindo para que digite o nome do Jogador 1.
17 - Digite um nome para o Jogador 1 e clique em OK.
Ele pede para inserir o nome do Jogador 2.
18 - Digite um nome para o Jogador 2 e clique em OK. Faa isso para os 11 jogadores.
19 - Clique no boto Visualizar.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 269
O nome dos 11 jogadores listado.
Como voc pode ver, trabalhamos facilmente com os nomes dos 11 jogadores em nosso array, podemos modificar os dados do nosso array facilmente, bastando para isso indicar qual linha deve ser alterada e o novo dado, como no exemplo:
J ogador es( 10) = Robi nho
Um array pode conter mais de um coluna. Vamos entender como isso funciona implementando o cdigo que vai armazenar o nmero de faltas de cada jogador.
Como um Array s pode conter um tipo de dado e nosso Array j do tipo String, no nosso exemplo vamos adicionar o nmero de faltas como string mesmo, mas, a maneira correta seria criar um outro Array do tipo integer para armazenar as faltas.
20 - Altere o cdigo que declar o Array para o seguinte: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 270
Di mJ ogador es( 10, 1) As St r i ng
Isso cria um Array com 11 linhas e 2 colunas. Um Array pode ter vrias colunas.
21 - Localize no procedimento do evento do Button1, o seguinte cdigo:
J ogador es( i ) = I nput Box( Mensagem, J ogador )
22 - Mude-o para o seguinte: J ogador es( i , 0) = I nput Box( Mensagem, J ogador )
Isso apenas indica que vamos adicionar o nome na linha que o loop indicar, na coluna 1, lembrando que os Arrays sempre iniciam com indice 0.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 271
23 - Mude a propriedade Text do Button3 para Adicionar Faltas.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 272
24 - D um clique duplo sobre o Button3 e digite o seguinte cdigo:
Di mMensagemAs St r i ng Di mi As I nt eger
For i = 0 To UBound( J ogador es) Mensagem= Di gi t e as f al t as do & J ogador es( i , 0) J ogador es( i , 1) = I nput Box( Mensagem, Fal t as) Next
Vai ficar assim:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 273
Isso semelhante ao cdigo do Button1, com algumas modificaes, como as mensagens que sero inseridas, a cada loop vamos exibir o nome do jogador que esta recebendo os dados das faltas, a linha de cdigo responsvel por isso pe a seguinte:
Mensagem= Di gi t e as f al t as do & J ogador es( i , 0)
Note que agora atribuimos os valores segunda coluna, como mostra o cdigo:
J ogador es( i , 1) = I nput Box( Mensagem, Fal t as)
Agora precisamos mudar o cdigo do button2, que exibe os dados.
25 - Mude o cdigo do Button2 para o seguinte:
Di mi As I nt eger
For i = 0 To UBound( J ogador es) Li st Box1. I t ems. Add( J ogador es( i , 0) & - Tot al de f al t as: & J ogador es( i , 1) ) Next
O que fizemos foi concatenar os dados da coluna 1 com os da 2.
26 - Execute sua aplicao: Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 274
27 - Clique no boto Inserir Jogadore e adicione o nome dos 11 jogadores.
28 - Clique no boto Adicionar Falta e adicione um nmero de faltas para cada jogador.
29 - Clique no boto Visualizar.
Como voc sabe bem, tanto em um jogo de futebol, como em muitas outras situaes, ns no sabemos com certeza o nmero de linhas que iremos precisar no nosso Array. Em um jogo de futebol podem haver at 3 substituies, o que aumentaria em 3 o nmero de linhas no nosso Array. No entanto, no certeza que o treinador far as 3 substituies que lhe cabem por direito.
Para esse tipo de situaes, o Visual Basic oferece um Array especial, conhecido como Array Dinmico. Um Array Dinmico pode ser redimencionado durante a execuo do programa. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 275
ARRAY DINMICO
Para se criar um Array Dinmico voc precisa de alguns cuidados extras.
1 - Declare o Array Dinmico sem especificar o nmero de elementos, como no seguinte exemplo:
Di mJ ogador es( ) As St r i ng
2 - Antes de inserir dados no seu Array Dinmico voc precisa saber qual ser o tamanho dele, voc deve implementar cdigo para isso, como por exemplo, uma caixa de dilogo que pergunta ao usurio quantos jogadores participaram da partida.
3 - Use o comando Redim para redimencionar seu Array em tempo de execuo, usando para isso a informao do nmero de elementos que descobriu.
Exemplo:
ReDi mJ ogador es( 13)
Voc no pode usar o Redim para mudar o tipo de dados do seu array, isso no possvel.
Ateno quando usar o Redim. Lembre-se que o Array comea com 0.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 276
Agora voc j pode usar normalmente seu Array.
Vamos implementar um Array Dinmico no nosso exemplo.
30 - Mude a declarao do Array Jogadores para o seguinte:
Di mJ ogador es( , ) As St r i ng
Usamos a virgula porque nosso Array possui duas colunas. Perceba que no especificamos o nmero de linhas, nem o nmero de colunas. Com isso atendemos a regra 1 sobre os Arrays Dinmicos.
31 - Para atender a regra 2, descobrindo quantas linhas sero necessrias vamos implementar no nosso programa mais uma caixa de dilogo que pergunta quantos jogadores participaram do jogo, para isso altere o cdigo do Button1 para o seguinte:
Di mMensagem, J ogador As St r i ng Di mi As I nt eger Di mNumer oJ ogador es As I nt eger
Numer oJ ogador es = I nput Box( Di gi t e o nmer o de j ogador es que par t i ci pou da par t i da, J ogador es)
ReDi mJ ogador es( Numer oJ ogador es - 1, 1)
Mensagem= Di gi t e o nome do j ogador
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 277
For i = 0 To UBound( J ogador es) J ogador = J ogador & ( i + 1) J ogador es( i , 0) = I nput Box( Mensagem, J ogador ) Next
Tudo que fizemos foi criar uma varivel do tipo integer que armazena o nmero de jogadores que participaram da partida. Adicionamos a essa varivel o nmero digitado na caixa de dilogo atravs da seguinte linha de cdigo:
Numer oJ ogador es = I nput Box( Di gi t e o nmer o de j ogador es que par t i ci pou da par t i da, J ogador es)
Neste ponto sabemos o nmero de jogadores ento usamos o Redim para redimencionar o array. Perceba que passamos como nmero de linhas o nmero de jogadores menos 1, isso porque a primeira linha do array sempre 0, se no fizessemos isso e o usurio digitasse 2 por exemplo, teriamos 3 linhas no array, a 0, 1, 2. Como sabemos que o nmero de colunas desejado 2, colocamos 1 no Redim.
ReDi mJ ogador es( Numer oJ ogador es - 1, 1)
32 - Execute sua aplicao.
33 - Clique em Inserir Jogadores.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 278
Agora, antes de exibir a caixa que pergunta o nome dos jogadores, aparece a seguinte caixa perguntando a quantidade. Digite a quantidade e clique em OK.
O restante da aplicao funciona normalmente, s que agora com o nmero de jogadores informado.
Uma observao importante, que quando voc executa o Redim o que estiver armazenado no seu array perdido. Dependendo das necessidades do seu programa isso pode lhe trazer muitas dores de cabea. Para solucionar esse problema, voc pode usar o Redim Preserve, que mantm os dados do array mesmo depois do seu redimensionamento.
O seguinte exemplo ilustra o uso do Redim Preserve:
Di mJ ogador es( 10) As St r i ng
Declaramos um array que pode armazenar 11 jogadores, no entando agora precisamos armazenar 13, s que sem perder o nome dos jogadores que j esto armazenados. Para isso usamos o Redim Preserve como se segue:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 279
ReDi mPr eser ve J ogador es( 12)
O problema com o Redim Preserve que se temos um Array com duas dimenses, como o seguinte exemplo:
Di mJ ogador es( 10, 1) As St r i ng
S podemos redimencionar o tamanho da ltima dimenso, ou seja, s podemos mudar o nmero de colunas.
Para finalizar o assunto Arrays, vamos apenas enteder o que LBound e UBound. Lembre-se que durante nossos exemplos usamos o UBound, junto com o Loop For, como se segue:
For i = 0 To UBound( J ogador es)
O Ubound como voc pode perceber sempre retorna o nmero mximo de registros que podem ser armazenados no Array iniciando em 0. O LBound retorna o nmero mnimo, geralmente 0. A sintaxe dos dois so:
UBound(NomedoArray) LBound(NomedoArray)
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 280
Lembre-se que Arrays so usados para gerenciar grande quantidade de informao, como variveis, voc precisa declarar seus arrays antes de us-los. Os arrays tambm respeitam as mesmas regras de escopo que as variveis, ou seja, se declaradas dentro de procedimentos, ficam disponveis apenas para o procedimento em questo.
10.12 Procedimentos e funes em VB.NET
Procedimentos em VB.NET so conhecidos como Sub.
Procedimentos Sub so tipicamente usados para pegar informaes do usurio, exibir ou imprimir informaes e manipular propriedades associadas a condies.
Sua sintaxe a seguinte:
Sub NomedoProcedimento(argumentos) Cdigo End Sub
NomedoProcedimento o nome que voc quer dar a Sub que esta criando. Procure dar sempre um nome que ajude a identificar a utilidade da sua Sub.
Argumentos so uma lista de argumentos opcionais - separados por vrgula se forem mais de um - que sero usados na sua Sub. Cada argumento precisa ter um tipo especifico. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 281
Cdigo o bloco de cdigo que faz o trabalho do procedimento.
Funes em VB.NET so declaradas como Function.
A Function (funo) muito parecida com a Sub, as regras aplicadas para as Subs se aplicam aqui, principalmente as que se referem ao escopo e aos argumentos. A diferena que a Function vai sempre retornar um valor.
A sintaxe da Function a seguinte:
Funct i on NomedaFuno(argumentos) as Type Cdigo Ret ur n valor End Funct i on
NomedaFuno o nome que voc quer dar a funo que esta criando. Como com as Subs, procure dar sempre um nome que ajude a identificar a utilidade da sua funo. No esquea do Type que o tipo de dados que sua funo vai retornar.
Argumentos so uma lista de argumentos opcionais - separados por vrgula se forem mais de um - que sero usados, como nas Subs.
Cdigo o bloco de cdigo que faz o trabalho da funo.
Return a instruo que permite retornar o valor. Aps o Return ser executado a funo finalizada. Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 282
Para entender melhor vamos fazer um exemplo bem simples.
1 - Crie um projeto no Visual Studio do tipo Windows Application, chamado ProdFunc.
2 - Arraste para o Form1 os seguintes controles:
1 Button 1 TexBox
3 - Organize-os como a imagem:
4 - Na classe do Form1, crie o seguinte procedimento Sub:
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 283
Sub Teste(ByVal a As Integer) a += 10 MsgBox(a.ToString) End Sub
Nossa sub simplesmente soma 10 ao valor que foi passado a ela como parmetro e mostra uma caixa de dilogo com o valor. Deve ficar assim no painel de cdigo:
5 - Agora no modo Design, de um clique duplo sobre o Button1 e digite o seguinte cdigo:
Dim numero As Integer = 5 Teste(numero) Label1.Text = numero.ToString
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 284
A primeira linha declara uma varivel chamada numero do tipo Integer e atribui 5 a ela A segunda faz a chamada ao procedimento Teste que criamos. A terceira linha simplesmente pega o contedo da varivel numero e exibe no Label1. Deve ficar assim no painel de cdigo:
6 - Execute a aplicao.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 285
7 - Clique no Button1.
exibida a caixa de dilogo da Sub com o valor.
Como passamos a varivel numero como parmetro e o contedo dela 5, esse valor somado a 10 na Sub o valor exibido pela caixa de dilogo.
8 - Clique em OK.
Curso de Lgica de Programao
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br Confira tambm o curso: Programando com VB.NET e Programando com C#e o Visual Studio .NET 2005
Pgi na 286
Depois que ele executa a Sub ele pega o valor da varivel e exibe na Label1, perceba que o valor permanece sendo 5, ou seja ele efetuou a soma na Sub mais no alterou o valor da varivel nmero.