Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Linguagem Programação II Prof. Edson Batista de Sena © Denis R. de Carvalho – denisrcarvalho@hotmail.com © Denis R. de Carvalho – denisrcarvalho@hotmail.com Roteiro Laboratorio 01 - LPII Agenda Sintaxe Básica da Linguagem; Variáveis; Expressões; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Definição Se os programas de computador são basicamente a realização de operações em dados, precisamos de uma forma de armazenagem dos dados e alguns é todos para manipulá-los. Essas duas funções são fornecidas pelas VARIÁVEIS e EXPRESSÕES. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Sintaxe Básica do C# A aparência e o funcionamento do código C# são semelhantes àqueles do C++ e do Java; Ao contrário dos compiladores de algumas outras linguagens, os compiladores C# não observam o espaçamento adicional no código, seja por meio de espaços, mudança de linha ou caracteres de tabulação; O código C# é formado por uma série de instruções, cada qual terminada por um ponto e vírgula; © Denis R. de Carvalho – denisrcarvalho@hotmail.com O C# é uma linguagem estruturada em blocos delimitados por chaves ( “{“ e “}”), podendo conter qualquer quantia de instruções. Os caracteres-chave não precisam vir seguidos de ponto e vírgula; Ex: { <linha de código 1, instrução 1>; <linha de código 2, instrução 2> <linha de código 3, instrução 2>; } Sintaxe Básica do C# © Denis R. de Carvalho – denisrcarvalho@hotmail.com Os blocos de código podem ser aninhados uns nos outros (blocos podem conter outros blocos); Ex: { <linha de código 1>; { <linha de código 2>; <linha de código 3>; } <linha de código 4>; } Sintaxe Básica do C# © Denis R. de Carvalho – denisrcarvalho@hotmail.com Sintaxe Básica do C# Os COMENTÁRIOS não são exatamente um código C#, mas podem co-habitar com ele. Tipos de comentários em C#: a)De Bloco – Inicia com /* e termina com */ Ex: /* Este é um comentário */ /* E este ... .......... também */ b)De Linha – Começa com // Ex: // Este é um tipo de comentário diferente c)De Documentação em XML – Começa com /// Ex: /// Um comentário especial © Denis R. de Carvalho – denisrcarvalho@hotmail.com Sintaxe Básica do C# O código C# é case sensitive ( faz a diferenciação entre maiúsculas e minúsculas); © Denis R. de Carvalho – denisrcarvalho@hotmail.com Variáveis no C# Variáveis dizem respeito ao armazenamento de dados; Podemos fazer analogia das variáveis na memória de um computador como caixas em uma prateleira; Com as caixas podemos colocar e retirar coisas ou podemos simplesmente olhar dentro de uma caixa para ver se há algo dentro nela; O mesmo vale para as variáveis; nós colocamos os dados nelas e podemos retirá-los ou olhar seu conteúdo, conforme a necessidade; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Variáveis no C# Embora todos os dados em um computador sejam efetivamente a mesma coisa (uma série de zeros e uns), as variáveis têm espécies diferentes (tipos). Fazendo analogia com as caixas, podemos imaginar que as nossas caixas tem tamanhos e formas diferentes e algumas coisas se encaixarão apenas em determinadas caixas; Os tipos de dados poderão requerer diferentes métodos de manipulação e ao restringir as variáveis a tipos individuas evitamos que eles se misturem; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Variáveis no C# Para usar variáveis temos que declará-las, ou seja, devemos atribuir a elas um nome e um tipo, quando então poderemos usá-las como unidades de estocagem para o tipos de dados que declaramos que elas teriam; A sintaxe C# para a declaração de variáveis envolve a especificação do tipo e do nome da variável: < tipo > < nome > ; int num1; float num2; string nome; © Denis R. de Carvalho – denisrcarvalho@hotmail.com © Denis R. de Carvalho – denisrcarvalho@hotmail.com © Denis R. de Carvalho – denisrcarvalho@hotmail.com Declaração de Variáveis Regras básicas: 1. O primeiro caractere de um nome de variável deverá ser ou uma letra, ou um sublinhado(“_”) ou “@”; 2. Os caracteres subsequentes podem ser letras, sublinhados ou números; 3. Não se pode usar palavras-chave. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Declaração de Variáveis e Atribuição de valores Declaramos as variáveis usando o seu tipo e nome: int idade; Depois, atribuimos valores usando o operador de atribuição (=): idade = 25; Podemos declarar muitas variáveis do mesmo tipo simultaneamente: int xSyze, ySyze; Declarar e atribuir valor às variáveis ao mesmo tempo: int xSyze=4, ySyze=5; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Operadores Podemos ser classificados em: Unários – que atuam em um único operando; Binários – que atuam em dois operandos; Ternários – que atuam em três operandos. A maior parte pertence à categoria dos binários, com alguns unários e um único ternário chamado condicional (LÓGICO). © Denis R. de Carvalho – denisrcarvalho@hotmail.com Operadores Matemáticos © Denis R. de Carvalho – denisrcarvalho@hotmail.com Operadores de Atribuição © Denis R. de Carvalho – denisrcarvalho@hotmail.com Precedência de Operadores Quando uma operação é avaliada, cada operador é processado na sequência . Isto não significa, necessariamente, que esses operadores sejam avaliados da esquerda para a direita. var1 = var2 + var3; (o operador + atua antes de = ) Podemos controlar a precedência dos operadores usando parênteses. var1 = (var2 + var3) * var4; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Precedência de Operadores © Denis R. de Carvalho – denisrcarvalho@hotmail.com Declaração de Variáveis e Atribuição de valores int numero = 15; //variável numero recebendo valor 15 numero = numero + 10; // variável numero recebendo incremento de 10, ficando com valor 25 numero = 36 * 15; // este comando apaga o valor anterior e armazena o valor da operação que é 540 numero = 12 – (42 / 7); // a primeira operação realizada é a divisão pela precedência de operadores em seguida o valor é aramazenado na variável numero numero += 10; // este comando (+=) significa que a variável manterá o valor inicial e incrementará em 10 numero *= 3; // este comando (*=) mantém o valor inicial e multiplicará por 3 numero = 71 / 3; // o resultado da divisão é 23,66666, porém o valor armazenado será somente 23, uma vez que a variável foi declarada como inteiro. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Revisando a sintaxe do C# Cada comando precisa terminar com um ponto e virgula. x = x+1; Um comentário de linha começa com duas barras. // esta linha será ignorada Os espaços em branco é ignorada. x = 3; é a mesma coisa que x = 3; Variáveis são declaradas usando tipo e depois o nome. int peso; // peso irá armazenar um inteiro Blocos de código são delimitados dentro de chaves { }. public void vamos( ) { //seu código aqui } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Laços e Repetições Até agora, a execução dos programas seguia de linha para linha e de cima para baixo, sem perder coisa alguma. Se todos os aplicativos funcionassem assim, estaríamos bastante limitados quanto ao que poderíamos fazer. O tipo bool pode conter apenas um de dois valores, true ou false. Este tipo é usado para armazenar o resultado de uma comparação. As comparações booleanas requerem o uso de operadores de comparação booleanos ou relacionais. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Operadores Relacionais © Denis R. de Carvalho – denisrcarvalho@hotmail.com Os comandos if/else Forma mais versátil e útil de tomar decisões. Adequado para executar grandes partes de código baseadas em comparações. Use os comandos “if/else” para dizer aos seus programas para fazer coisas apenas no caso de as condições estabelecidas serem ou não verdadeiras. Sintaxe : if (<teste>) <código executado se <teste> for verdadeiro>; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Os comandos if/else if (algumValor == 24) { MessageBox.Show(“O valor foi 24.”); } ------------------------------------------- if (algumValor == 24) { MessageBox.Show(“O valor foi 24.”); }else{ MessageBox.Show(“O valor não foi 24.”); } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Laços de Repetição (Looping) O looping ocorre quando as instruções são executadas repetidamente. Essa técnica pode ser bastante, visto que com ela podemos repetir as operações quantas vezes quisermos (milhares, talvez milhões de vezes) sem precisar escrever o mesmo código a cada vez. Uma aplicação de loop importante é aquela que executamos até que uma determinada condição seja verificada. Os Laços de Repetição (Loopping) dizem ao seu programa para executar um certo conjunto de instruções enquantoo uma condição especifica for verdadeira ou falsa. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Laços de Repetição (while) Num laço while (enquanto), todos os comandos dentro das chaves são executadas enquanto a condição for atendida. { int x = 15, while (x > 5) { x = x-3; } MessageBox.Show(“O valor de x é:” + x); } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Laços de Repetição (for) Os Laços “for” são executados por um determinado número de vezes, e mantém o seu próprio contador. Para definir um loop for, precisamos das seguintes informações: 1. Um valor de início para inicializar a variável contador. 2. Uma condição para continuar o loop, geralmente envolvendo a variável contador. 3. Uma operação a ser realizada no final de cada ciclo do loop, geralmente na variável contador. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Laços de Repetição (for) { for (int i=0; i<8; i=i+2) { MessageBox.Show(“Vou aparecer 4 vezes”); } } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Vamos Praticar !!! No Visual Studio 2010, crie um novo aplicativo Windows Form; Insira 4 botões simples, como na imagem abaixo: © Denis R. de Carvalho – denisrcarvalho@hotmail.com Botão 01... Clique duas vezes no primeiro botão e adicione os seguintes comandos ao método button1 click( ). Examine e avalie atentamente o código e o resultado que ele produz: private void button1_Click(object sender, EventArgs e) { String nome = "José"; //declaração da variável tipo String int x = 3; //declaração da variável x do tipo inteiro x = x * 17; //atribuição a x do valor de x multiplicado por 17 double d = Math.PI / 2; //declaração da variável d, recebendo o valor de PI dividido por 2 MessageBox.Show("nome é " + nome + "\nX é " + x + "\nD é " + d); //exibição de todas as variáveis em uma tela de mensagem } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Botão 2 ... Clique duas vezes no segundo botão e adicione os seguintes comandos ao método button2 click( ). Examine e avalie atentamente o código e o resultado que ele produz: private void button2_Click(object sender, EventArgs e) { int x = 5; if (x == 10) { MessageBox.Show("X é igual a 10"); } else { MessageBox.Show(" X é diferente de 10"); } } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Botão 3 ... Clique duas vezes no terceiro botão e adicione os seguintes comandos ao método button3 click( ). Examine e avalie atentamente o código e o resultado que ele produz: { int resultado = 0; int x = 6; while (x > 3) { resultado = resultado + x; x = x - 1; } for (int z = 1; z < 3; z = z + 1) { resultado = resultado + z; } MessageBox.Show("O resultado é: " + resultado); } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Botão 4 ... private void button4_Click(object sender, EventArgs e) { int contador = 0; while (contador < 10) { contador = contador + 1; } for (int i = 0; i < 5; i++) { contador = contador - 1; } MessageBox.Show("O Resultado é: " + contador); } } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Analise os laços a seguir e apresente o resultado obtido: LAÇO 01 int contador = 5; while (contador > 0) { contador = contador * 3; contador = contador * -1; } LAÇO 02 int i = 0; while (i == 0); { contador = contador * 3; contador = contador * -1; } LAÇO 03 int j = 2; for (int i = 1; i < 100; i = i*2; { j = j – 1; while (j < 25) { j = j + 5; } } LAÇO 04 int p = 2; for (int q = 2; q 32; q = q * 2) { while (p < q) { p = p * 2; } q = p – q; } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Junte os fragmentos de código e gere o programa correto MessageBox.Show(resultado); x=x-1; Resultado = resultado + “-”; int x = 3; string Resultado = “”; while (x > 0) { if (x > 2){ resultado = resultado + “a”; } if (x == 1) { resultado = resultado + “d”; x = x – 1;} if (x==2) { resultado = resultado + “b c”;} © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão de Tipos Mesmo sendo possível passar uma sequência de bits de uma variável para outra de um tipo diferente, os resultados podem não ser o que se espera. Precisamos então de uma conversão de tipo nos dados, para viabilizar o mapeamento de bits de uma variável para outra. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão de Tipos A conversão de tipos pode assumir duas formas: Conversão implícita – em que a conversão do tipo A para o tipo B é possível em todas as circunstâncias e as regras para realizar a conversão são simples o suficiente para que possamos confiar no compilador. Conversão explícita – em que a conversão do tipo A para o tipo B é possível apenas em determinadas circunstâncias ou em que as regras para a conversão sejam complicadas o suficiente para merecer um processamento adicional de alguma espécie. © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Implícita A conversão implícita não requer nenhum código adicional para efetuá-la, basta o uso do comando de atribuição. Exemplo: ushort varDestino; char varFonte; varDestino = varFonte; © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Implícita © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Explícita A conversão explícita ocorre quando pedimos explicitamente ao computador que converta o valor de um tipo de dados para outro. Elas requerem código extra para se obter a conversão exata. kmInicial = (int)numericUpDown1.Value; kmFinal = (int)numericUpDown2.Value; string temp2 = temp.ToString(); Double e1 = (Double)Convert.ToDouble(textBox1.Text); © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Explícita A conversão explícita ocorre quando pedimos explicitamente ao computador que converta o valor de um tipo de dados para outro. Elas requerem código extra para se obter a conversão exata. kmInicial = (int)numericUpDown1.Value; kmFinal = (int)numericUpDown2.Value; string temp2 = temp.ToString(); Convert.ToChar(temp); © Denis R. de Carvalho – denisrcarvalho@hotmail.com Somando dois inteiros usando Componente textBox { int a1 = (int)Convert.ToInt16(textBox1.Text); int a2 = (int)Convert.ToInt16(textBox2.Text); int a3 = a1 + a2; string temp = Convert.ToString(a3); textBox3.Text = temp; } © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Explícita (Overflow) Devemos ficar atentos ao forçar a conversão de uma variável, caso a variável de destino não suporte o tamanho do conteúdo da variável de origem, ocorrerá o que chamamos de “Overflow”. Exemplo: byte varDestino; short varFonte = 281; varDestino = (byte) varFonte; Qual o resultado produzido???? © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Explícita (Overflow) O que acontece? Verificando a representação binária dos números 25 e 281, percebemos que o bit mais à esquerda foi perdido. 281 = 100011001 25 = 000011001 255 = 011111111 O que produzirá o resultado: valor de varFonte: 281 valor de varDestino: 25 © Denis R. de Carvalho – denisrcarvalho@hotmail.com Conversão Explícita (Overflow) Durante a codificação o programador poderá solicitar ao compilador que verifique se está havendo sobrecarga da variável. Para isso ele poderá utilizar a expressão “checked” byte varDestino; short varFonte = 281; varDestino = checked((byte) varFonte); O que produzirá um erro de compilação quando o código for executado. © Denis R. de Carvalho – denisrcarvalho@hotmail.com © Denis R. de Carvalho – denisrcarvalho@hotmail.com Atividades de Fixação – Dupla - 5 pts 1) Escrever na tela: “Hoje é Sexta - Feira, 23 de Agosto de 2013”. 2) Faça uma aplicação que receba os valores da expressão (A+B)x C em caixa de texto para as variáveis, faça os calculos e exiba o resultado em outra caixa de texto. 3) Faça uma aplicação que receba um valor em caixa de texto e calcule a raiz quadrada de um número. 4) Faça uma aplicação que receba as dimensões de um retângulo e exiba os valores em uma caixa de texto. 5) Faça uma aplicação que receba os valores dass variáveis de uma equação do segundo grau e retorne o resultado para o usuário. 6) Faça uma aplicação que compare três números e retorne o maior. 7) Faça uma aplicação que faça o calculo da área da circunferência. 8) Faça uma aplicação gráfica cujo o usuário digita o KM inicial e KM final e a aplicação calcula o custo total da viagem e o KM percorrico, lembrando que o custo do KM é de R$ 0,85 por KM rodado. O resultado deverá ser exibido em uma Label e em uma Caixa de Texto (TextBox)