Vous êtes sur la page 1sur 43

1

INTRODUO LGICA DE PROGRAMAO

LGICA

A lgica de programao necessria para pessoas que desejam trabalhar com


desenvolvimento de sistemas e programas, ela permite definir a seqncia lgica para
o desenvolvimento.

Lgica
de programao a tcnica de encadear pensamentos para atingir
determinado objetivo. Estes pensamentos, podem ser descritos como uma
seqncia de instrues, que devem ser seguidas para se cumprir uma
determinada tarefa.

Exemplo de Algoritmo

Imagine o seguinte problema: Calcular a mdia final dos alunos da 3 Srie. Os alunos

realizaro quatro provas: P1, P2, P3 e P4. Onde: Mdia Final =

Para montar o algoritmo proposto, faremos trs perguntas:

a) Quais so os dados de entrada?

R: Os dados de entrada so P1, P2, P3 e P4

b) Qual ser o processamento a ser utilizado?

R: O procedimento ser somar todos os dados de entrada e dividi-los por 4 (quatro)

c) Quais sero os dados de sada?

R: O dado de sada ser a mdia final

Procedimentos:

Receba a nota da prova1

Receba a nota de prova2


3

Receba a nota de prova3

Receba a nota da prova4

Some todas as notas e divida o resultado por 4

Mostre o resultado da diviso

Os algoritmo so divididos em trs grupos:

Sequnciais : So algoritmos que executam os comandos um aps o outro


numa sequencia.

Com Desvios : Utiliza o comando SE, permitindo que o usurio possa fazer
questionamentos e fornecer respostas diferenciadas.

Com Laos de Repetio: Utiliza os comandos For e While para questionar e


processar uma determinada rotina varias vezes.

Criando um Menu

Aps o exerccio anterior devemos estar um pouco acostumados com os


objetos, propriedades e etc. Vamos facilitar nossos projetos, criando vrios
forms dentro do mesmo projeto.
Para isso vamos criar um form principal e nele ir conter um menu para
chamar os outros forms.

Ex:
4

Criao do form:

a) File New Project... Windows Forms Application.


5

Criao do menu:

a)Toolbox (Painel Lateral Direito). Escolha o objeto MenuStrip:

Coloque no form:

Agora vamos montar os itens do menu. D um clique no espao em branco


e digite Sequenciais, depois pressione enter.

Ante Depo
s is
6

A mesma coisa para os outros itens:

Agora vamos adicionar outros forms.

a)No menu Project Add Windows Form :


7

Depois clique na opo Windows Form Add:

Com a criao do segundo form podemos cham-lo no form principal.


Passos:
a)No menu do form principal, clique no item Sequenciais, depois 2 cliques
no submenu Soma. A tela abaixo ser mostrada:

Cdigo do submenu Soma:


8

Aps digitar o cdigo execute o projeto:

Ou pressione F5.

Note que, ao clicar no submenu Soma o form2 aparece:

Pronto!

Esses procedimentos de criao de menu sero usados por voc nos outros
projetos.

Exemplos Seqenciais
Abra o programa Microsoft Visual C# 2010 Express.

Feche a primeira tela como mostra abaixo:


9

Vamos agora criar o primeiro form (Tela):

Acesse o menu File New Project.

Vai ser mostrada essa tela:


10

Vamos agora escolher a opo Windows Forms Application (Aplicativo para


desktop) e depois clique no boto OK:
11

Feito os passos anteriores, acabamos de criar um form:

For

Pronto. J temos um form para inicio do nosso projeto. Agora vamos


adicionar alguns objetos ao form.

No nosso caso iremos criar um programa para somar 2 nmeros que sero
digitados pelo usurio. Para isso devemos ativar o Toolbox(Painel Lateral que
contem os objetos).

No menu superior, clique na opo Toolbox:

Toolbo
Aps o clique ser exibido um painel lateral esquerdo(Toolbox).
12

Painel Lateral
(Toolbox)

Caso Toolbox j esteja no lugar ignore os passos anteriores.

Agora vamos adicionar os objetos (Button, TextBox, Label e etc...):

No Toolbox, na opo Common Controls, escolha o objetos Label, TextBox e


Button e coloque como na imagem abaixo:

Para colocar os objetos no form basta selecion-lo e clicar no form.


13

Aps esse passo iremos alterar algumas propriedades dos objetos e do


form. A barra de propriedade fica no lado direito do Visual C#.
14

Barra de
Propriedades
(Properties)

Clique no label1, depois na opo Text. Apague o nome label1 e digite 1


nmero:, aps isso pressione enter.

Faa esse mesmo passo para os outros objetos:

label2 : 2 nmero:

label3: Resultado...

Button: Calcular
15

Form: Somar (Clique no form)

Dever ficar desse jeito:

Vamos dar nomes aos TextBox. D mesma forma que colocamos os nomes
a serem mostrados nos Labels, s que no usaremos mas a opo Text e
sim Name.

D um clique no Textbox1 e mude seu name para txtvalor1:

Faa o mesmo passo para o Textbox2, colocando o nome txtvalor2 e


Resultado.. para txtresultado.
16

Estamos fazendo isso para facilitar na construo do cdigo. Pois quando


nos referir ao campo, basta digitar o nome dele. (name)

Diferena entre Text e Name:

Text: Ser o texto mostrado para o usurio. (Pode conter qualquer tipo de
caracter)

Name: Para fazer referncia na rea do cdigo. (No pode conter caracteres
especiais)

Obs: Tomar cuidado com o nome dado aos objetos. Ex: #nome.

Agora vamos colocar os cdigos. Nesse programa como j foi dito, ser
realizado um calculo de dois nmeros. Logo a ao (cdigos) dever estar
dentro do boto Calcular.

D dois cliques no boto Calcular. A rea de cdigo ser mostrada:

Cdigo do boto Calcular. O cdigo dever estar entre os { }:

Repare sempre se est


digitando o cdigo no lugar
certo. Nesse caso no boto.
Desse jeito:
(button1_Click).
17

Agora para testarmos o aplicativo devemos clicar no cone Start Debugging:

Para salvar o projeto, devemos clicar no cone Save All:

Essa tela ser mostrada:

Name: Coloque Soma

Location: Salva numa pasta na unidade D. (Se no existir, crie uma pasta
com seu nome)

Depois clique em Save. Pronto !


18

Exemplos Seqenciais

1- Calculadora:

Name:

Name:

Name:

Cdigo do boto Somar:

Convertendo o que
era letras para
nmeros (float).
Float.Parse

Agora faa o cdigo para os outros botes, siga a mesma lgica do Somar.
19

________________________________________________

2- Mdia:

3- Idade:

Cdigo do boto Verificar idade:


20

Depois da execuo:

_______________________________________________

EXERCICIO DE REVISO TENTE ELABORAR OS ALGORITMOS ABAIXO

A)Elabore um algoritmo que receba o valor de um produto em dlar e converta para


Real.

B)Elabore um algoritmo que receba o Nome e Salrio de um funcionrio e fornea o


valor do desconto do Vale Transporte (6%) e Vale refeio (3%)

C)Elabore um Algoritmo que receba o nome do curso e valor desejado por um aluno
e fornece, quanto o mesmo vai pagar se for a vista (10% desconto) 2 vezes (7%
21

de acrscimo forneca a valor das parcelas) 3 vezes (12% acrscimo fornea o


valor das parcelas)

D) Agora crie um algoritmo que ir receber um nmero e tenha como sada


o antecessor.

USANDO CONTROLES

Vamos continuar estudando controles, agora aprenderemos sobre os controles:


radioButton, checkBox, listBox e comboBox.

Usando os controles radioButton, checkBox, listBox e comboBox

Vamos compreender agora como utilizar os controles RadioButton, CheckBox,


ListBox e ComboBox para receber informaes dos usurios. Para isso vamos criar uma
simples aplicao que usa os quatro tipos de controles para voc compreender quais as
diferenas entre eles, quando e como aplic-los.

1 - Crie um novo projeto chamado Controles do tipo Windows Application.


22

2 - Arraste para o Form1 os seguintes controles:

2 GroupBox

3 RadioButton

3 CheckBox

1 ListBox

1 ComboBox

8 Label

3 - Organize-os como a figura:

4 - Mude a propriedade Text do GroupBox1 para Computadores (apenas um).

5 - Mude a propriedade Text do GroupBox2 para Escritrio (0-3).

6 - Mude a propriedade Text do RadioButton1 para PC.


23

7 - Mude a propriedade Text do RadioButton2 para MAC.

8 - Mude a propriedade Text do RadioButton3 para Notebook.

9 - Mude a propriedade Text do CheckBox1 para FAX.

10 - Mude a propriedade Text do CheckBox2 para Calculadora.

11 - Mude a propriedade Text do CheckBox3 para Copiadora.

12 - Mude a propriedade Text do Label1 para Perifricos (apenas um).

13 - Mude a propriedade Text do Label2 para Produtos escolhidos.

14 - Mude a propriedade Text dos Labels 3 a 8 para vazio.

Deve ficar como a seguinte imagem:


24

Os 3 RadioButton devem ficar dentro do GroupBox1, assim como os 3 CheckBox


devem ficar dentro do GroupBox2, o GroupBox agrupa os controles.

Vamos agora inserir valores na ListBox1.

15 - Clique na ListBox1 e na janela Properties, localize a propriedade Items.

Clique no boto com as reticncias nesta propriedade, deve abrir a seguinte caixa:

16 - Na janela String Collection Editor digite os items conforme a figura abaixo:


25

17 - Clique em OK.

Isso deve adicionar os items que digitamos na ListBox1.

18 - Faa o mesmo para o ComboBox1, adicione os seguintes items:


26

19 - Mude a propriedade Text do ComboBox1 para Forma de Pagamento.

Seu Form1 deve estar semelhante a seguinte imagem:

20 - Execute a aplicao.

A primeira funcionalidade que iremos implementar agora a dos RadioButton. Eles


so usados sempre que o usurio precisa fazer uma escolha nica, j que no permite que
mais de um item seja marcado. Podemos tambm colocar uma escolha que j aparece
marcada como padro, para isso voc deve mudar a propriedade Checked do RadioButton
em questo para True.

21 - Pare a execuo do programa.

22 - Mude a propriedade Checked do RadioButton2 para True.

23 - Execute novamente a aplicao. Agora o item MAC j aparece marcado.


27

24 - Pare novamente a execuo do programa. Vamos agora programar o cdigo


para os RadioButtons.

25 - No modo Design, de um clique duplo sobre o RadioButton1 e digite o seguinte


cdigo no procedimento de evento criado:

label3.Text = "PC";

26 - Faa o mesmo para o RadioButton2 e RadioButton3, digitando as seguintes


linhas de cdigo respectivamente:

label3.Text = "MAC";

label3.Text = "Notebook";

Deve ficar assim:


28

O evento padro para o RadioButton o CheckedChanged, que ocorre sempre


que h uma mudana na propriedade Checked. Quando voc clica nele o Checked fica
como True, ento o evento disparado e muda a propriedade Text do Label3.

27 - Execute a aplicao e clique sobre as escolhas do RadioButtons para verificar


a funcionalidade que acabamos de colocar.
29

28 - Pare a execuo do programa.

Vamos agora programar o cdigo para os CheckBoxes. Eles so semelhantes ao


RadioButton, no entando permitem mais de uma escolha. Novamente voc pode mudar a
propriedade Checked de alguns deles para j iniciarem marcados. So usados sempre para
perguntas que requerem nenhum ou vrias respostas como no nosso exemplo. O usurio
pode no querer nenhum item para o escritrio, pode querer um, dois ou todos os items.

29 - De um clique duplo sobre o CheckBox1 e digite o seguinte cdigo:

if (checkBox1.Checked == true){

label6.Text = "Fax";

} else{

label6.Text = "";

30 - Faa o mesmo para o CheckBox2 e digite o seguinte cdigo:

if (checkBox2.Checked == true){

label7.Text = "Calculadora";

}else{
30

Label7.Text = "";

31 - Faa o mesmo para o CheckBox3 e digite o seguinte cdigo:

if (checkBox3.Checked == true){

label8.Text = "Copiadora";

}else{

label8.Text = "";

32 - Execute sua aplicao. Marque as opes FAX e Copiadora, por exemplo, como
disse podemos marcar mais de um item.

33 - Pare a execuo do programa.

34 - De um clique duplo sobre o ListBox1 e digite o seguinte cdigo:


31

label4.Text = listBox1.SelectedItem.ToString();

Isso escreve o contedo do item seleciona na Label4.

35 - Vamos j programar o cdigo para a ComboBox tambm, de um clique duplo


sobre a mesma no modo Design para abrir o procedimento de evento padro e digite o
seguinte cdigo:

label5.Text = comboBox1.SelectedItem.ToString();

36 - Execute sua aplicao.

37 - Teste todas as escolhas.

Agora voc j capaz de pegar informaes dos usurios de vrias maneiras.

Procure utilizar sempre os controles aprendidos neste capitulo, eles impedem muitos
erros nos programas por impedirem entradas de dados invlidas.
32

Exerccios para elaborao de algoritmos seqenciais

1) Elaborar um algoritmo que l dois nmeros inteiros e calcula e escreve a soma


dos dois nmeros lidos.

2) Elaborar um algoritmo que l trs notas de um aluno e calcula e escreva a mdia


aritmtica do aluno.

3) Elaborar um algoritmo que l o salrio de um funcionrio e calcula e escreve seu


novo salrio considerando um aumento de 30%.

4) Sabendo que um funcionrio tem seu salrio pago em horas trabalhadas,


escrever um algoritmo que l o nmero de horas trabalhadas, o valor da hora e
escreve o valor que o funcionrio tem a receber.

5) Considerando que o funcionrio recebe um adicional de salrio famlia por filho


que possua, escreva um algoritmo que l o salrio do funcionrio, o nmero de
filhos que possui e o valor que recebe por filho. O algoritmo dever escrever o
salrio a receber, levando em conta que dever ser descontado 8% a ttulo de INSS.

6) Escrever um algoritmo que l o saldo de uma conta bancria e calcula o novo


saldo, considerando juros ganhos de 10%.

7) Escrever um algoritmo que l as alturas e o peso de trs pessoas e calcula e


escreva a altura mdia e o peso mdio destas pessoas.

8) Escreva um algoritmo que l o valor de uma mercadoria e calcula e escreve o


valor a ser pago pelo cliente, considerando um desconto de 25%.

9) Elaborar um algoritmo que l o montante que uma pessoa possui no banco e o


valor que necessita pagar para a loja A e o valor que necessita pagar para a loja B.
O algoritmo dever calcular o valor que esta pessoa ter disponvel depois de
efetuar os pagamentos.

10) Escrever um algoritmo que l o valor de uma prestao, o juro dirio e o


nmero de dias em atrazo. O algoritmo dever calcular e escrever o valor a ser
pago pelo cliente.
33

UTILIZAO DE ALGORITMOS COM DESVIOS (IF)

Os comandos de deciso ou desvio fazem parte das tcnicas de programao que


conduzem a estruturas de programas que no so totalmente seqenciais. Com as
instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma
ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados
ou resultados anteriores. As principais estruturas de deciso so:

Se e Seno

SE / IF

A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou


seja, se determinada condio for satisfeita pelo comando SE/IF ento execute
determinado comando.

Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia
for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.

SE MEDIA >= 7 ENTO


ALUNO APROVADO

Exemplos Algoritmos de Desvios

1- Algoritmo Sexo:
34

Comando do boto Realizar a Operao:


35

2- Algoritmo Mdia:

Cdigo do boto Verificar:

Cdigo do boto Limpar:


36

3- Algoritmo Login:

Cdigo do boto Entrar:

Cdigo do boto Limpar:


37

Exerccio Desvios
1) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das
seguintes categorias:
Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos
Juvenil A = 12 a 13 anos
Juvenil B = 14 a 17 anos
Adultos = Maiores de 18 anos

2) Faa um diagrama de bloco que leia um nmero inteiro e mostre uma mensagem
indicando se este nmero par ou mpar, e se positivo ou negativo.

3) Elabore um algoritmo que receba o cdigo e nmero de horas trabalhadas de um operrio.


E calcule o salrio sabendo-se que ele ganha R$ 10,00 por hora.
Quando o nmero de horas exceder a 50 calcule o excesso de pagamento.
A hora excedente de trabalho vale R$ 20,00.
No final do processamento mostre o salrio total e o salrio excedente.

4) Joo Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o


rendimento dirio de seu trabalho. Toda vez que ele traz um peso de peixes maior que o
estabelecido pelo regulamento de pesca do estado de So Paulo (50 quilos) deve pagar
um multa de R$ 4,00 por quilo excedente. Joo precisa que voc faa um sistema que receba
o peso de peixes e verifique se h excesso. Se houver, mostrar o excesso e o valor da multa
que Joo dever pagar. Caso contrrio mostrar ZERO.

5) Desenvolva um sistema que:


Receba 4 (quatro) nmeros;
Some cada um deles;
Se o valor resultante da soma for > 1000, mostre Maior que MIL;
Caso contrrio, mostre o resultado da soma.

6) A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3 grupos de


indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel
varia de 5 at 25.
Se o ndice sobe para 3 as indstrias do 1 grupo so intimadas a suspenderem suas
atividades, se o ndice crescer para 4 as industrias do 1 e 2 grupo
so intimadas a suspenderem suas atividades, se o ndice atingir 5 todos os grupos
devem ser notificados a paralisarem suas atividades. Faa um sistema que leia
o ndice de poluio medido e emita a notificao adequada aos diferentes grupos de
empresas.

7) Construa um algoritmo que receba a idade do usurio e informe se ele


tem mais de 21 anos.

8) Construa um algoritmo que receba trs nmeros inteiros e verifique qual


o maior.

9) Construa um algoritmo que calcule o peso ideal de uma pessoa. Dados de


entrada: altura e sexo. Frmulas para clculo do peso:
peso ideal de homem = (72,7 x altura) - 58
peso ideal da mulher = (62,1 x altura) - 44,7
38

Lao de repetio FOR


Uma estrutura de repetio tambm conhecida como Loop/Lao. O
primeiro tipo de loop que vamos estudar o for. O loop for trabalha
checando uma condio para executar um bloco de cdigo at que essa
condio seja verdadeira, no caso do loop for temos que em sua syntax
declarar sua inicializao, sua condio e seu incremento, veja:

Lao/For (<incio>; <condio>; <incremento>)


{
// instrues</pre>
}
----------------------------------------------
for (int i = 0; i < 10; i++)
{
// instrues
}

No cdigo acima temos a syntax de um loop for onde na primeira parte declaramos
uma varivel do tipo inteiro (int) e a inicializamos com o valor 0 (zero), na segunda
parte temos a condio nesse caso verifica se a nossa varivel recm criada menor que
10 e a terceira e ultima parte o incremento desta varivel, sendo essas trs partes
separadas por ; (ponto e virgula). O funcionamento simples todo o cdigo dentro
desse bloco do for ser executado dez vezes. Simples no? Mas voc deve ter algumas
perguntas em mente como, por exemplo: porque a varivel chama i? o que
incremento? Vamos as respostas!

Primeiro chama-se i por um motivo simples: conveno. i vem de ndice e isso j se


tornou meio que um padro, mas essa varivel pode ter qualquer nome, por exemplo:
contador.

Segundo um incremento nada mais do que adicionar 1 a uma varivel, ou seja, se uma
varivel vale 0 (zero) e passa por um incremento logo essa varivel vale 1 e se passa
mais uma vez vale 2 e assim por diante. E o que acontece com o decremento o
inverso, ou seja, se uma varivel vale 2 e passar por um decremento agora passa a valer
1 e assim por diante.

for(int cont = 0; cont < 10; cont++)


{
Listbox1.Items.Add(cont.ToString());
}

No exemplo acima declaramos uma varivel chamada cont que inicializa


seu valor em 0 e efetuar a execuo do bloco at que o valor da varivel
alcance o valor da condio (cont < 10). Caso seja necessrio a declarao
e inicializao de mais de uma varivel, s dividimos por vrgulas, como
mostra o exemplo abaixo:Exemplo 2:
39

for(int x = 0, y = 1; ((x < 10) && (y < 10)); x++,y++)


{
Listbox1.Items.Add(O valor de x : + x.ToString());
Listbox1.Items.Add(O valor de y : + y.ToString());
}

Laos de Repetio (WHILE)

While que nada mais do que uma repetio controlada por contador, possuindo quatro
aspectos importantes:

1. Uma varivel de controle (ou contador de loop).

2. Um valor inicial para controlar a varivel.

3. O incrementador e o decrementador, atravs da qual a varivel de controle


modificada a cada passagem pelo loop.

4. A condio para continuao do loop que determina se o looping deve


continuar.

Para ver esses aspectos de repetio controlada por contador, considere a aplicao que
usa um loop para mostrar nmeros de 1 at 10. Veja no exemplo abaixo:

int contador = 1; // Declarao e inicializao da varivel de


// controle
while ( contador <= 10 ) // Condio de continuao do loop
{
Listbox.Items.Add(contador.ToString());
contador++; // Incrementa a varivel de controle
}

A varivel de controle (contador) foi declara como sendo Int, pois ns usaremos apenas
valores de 1 at 10. Para uma estrutura de repetio desnecessrio declarar a varivel
como sendo Double ou Float, pois o contador s funciona com nmeros inteiros, o que
no descartaria a hiptese de voc utiliz-la com os operadores em uma diviso ou
resto, nesse caso basta colocar em parnteses (float) ou (double) para que o seu
resultado no saia como sendo um nmero inteiro, e sim um nmero decimal. Porm
jamais armazene esse valor decimal na varivel contador, pois se o loop continuar isso
resultar em um erro no seu programa.

Note que o contador inicializado com o valor 1, logo aps declarada a estrutura de
repetio while, que verifica se o valor do contador menor ou igual a 10. Se ele for
menor ou igual a 10, ele adicionado como um novo item do listbox, e logo em seguida
ele implementa mais 1 ao valor do contador. A expresso contador++ nada mais do
que uma forma reduzida e prtica de (contador = contador + 1), que primeiramente pode
ser simplicada por (contador += 1), mas isso fica a cargo das preferncias do
programador.
40

Logo aps chegar ao final da estrutura de repetio, ele retorna ao incio do while e
comea tudo novamente, isso chamado de loop, quando um nmero fica retornando
inmeras vezes ao comeo da estrutura de repetio.

Exemplos com Laos


1- Tabuada:

Cdigo do boto Calcular:


41
42

2- Soma - Par ou Impar

Cdigo do boto Verificar:


43

Exerccios Laos
1- Escreva uma aplicao usando o lao for para contar de 0 at 10.
2- Neste exerccio voc dever modificar o Exerccio Resolvido 1.
Agora voc dever usar o lao for para contar de 10 at 0, ou seja,
o inverso do exerccio anterior.

3- Escreva um programa que usa o lao for para contar de 0 at 10 e


somar todos estes valores, ou seja, 0 + 1 + 2 + 3 + etc. Como
resultado seu programa dever exibir o valor 55.

4- Apresentar o total da soma dos cem primeiros nmeros inteiros ( 1


+ 2+ 3 + 4...+ 99 + 100).

5- Elaborar um programa que apresente no final o somatrio dos


valores pares existentes na faixa de 1 at 500.

6- Apresentar todos os nmeros divisveis por 4 que sejam menores


que 200.

Vous aimerez peut-être aussi