C (“C Sharp”) - cpiiwalmir.xpg.com.br · C♯ é uma linguagem de programação. É uma das...
-
Upload
truongtuyen -
Category
Documents
-
view
218 -
download
0
Transcript of C (“C Sharp”) - cpiiwalmir.xpg.com.br · C♯ é uma linguagem de programação. É uma das...
- 1 -
LPI
C♯ (“C-Sharp”)
1. A Plataforma .NET (em inglês: dotNet) – Visão Geral
C♯ é uma linguagem de programação.
É uma das linguagens de programação que fazem parte da Plataforma .NET (em
inglês: dotNet) criada pela Microsoft (Microsoft .NET).
A Plataforma .NET também é conhecida como .NET Framework (arcabouço).
.NET Framework é uma plataforma (infra-estrutura tecnológica) para
desenvolvimento (ambiente de desenvolvimento) e execução (ambiente de
execução) de sistemas/aplicações.
Obs.: Um usuário/dispositivo (computador, etc.) que vai apenas executar uma
aplicação (programa) .NET, precisa ter instalado apenas o ambiente de execução.
A principal característica da plataforma .NET Framework é que todo código gerado
para ela pode ser executado em qualquer dispositivo, seja um dispositivo que use
o sistema Windows, Android, iOS ou outro. Para isso, basta que o dispositivo onde o
código será executado possua o framework (basta o ambiente de execução)
correspondente ao sistema do dispositivo (Windows, Android, iOS, etc.).
A ideia é que o programador deixe de escrever código (programas) para um
sistema ou dispositivo específico e passe a escrever para a plataforma .NET (este
conceito já existia na plataforma Java, por exemplo).
Outra característica do .NET Framework é que ele disponibiliza para o programador,
independentemente da linguagem de programação que está sendo utilizada,
uma enorme Biblioteca de Classes (códigos já prontos e testados que os
programadores podem chamar/reutilizar a partir dos programas que eles estejam
construindo).
O programador utiliza os elementos da biblioteca de classes, por exemplo, para
não ter que escrever uma grande quantidade de código para lidar com
operações de programação de baixo nível (lidar com o hardware) muito comuns,
como ler dados digitados via teclado e apresentar mensagens na tela.
Outro exemplo simples é o uso de código já pronto para calcular o seno, cosseno
ou o valor da tangente de um ângulo. E muitas outras possibilidades.
Os códigos para o .NET Framework podem ser criados em um ambiente
disponibilizado pela Microsoft para facilitar o desenvolvimento de projetos que
utilizam o .NET Framework. Esse ambiente é chamado Microsoft Visual Studio e
possui várias versões.
- 2 -
No Visual Studio podemos utilizar as
linguagens C# (que será utilizada em
nosso curso), Visual Basic, C++, etc.
É comum dizer que o Visual Studio é um
IDE (Integrated Development
Environment /Ambiente de
Desenvolvimento Integrado) por reunir
várias ferramentas de apoio ao
desenvolvimento (construção)
de software que facilitam muito o
trabalho dos programadores. Na verdade, o Visual Studio permite que o
programador se concentre na parte inteligente do trabalho, ou seja, na solução.
Geralmente os IDEs facilitam a técnica de RAD (Rapid Application Development /
Desenvolvimento Rápido de Aplicativos) que visa a maior produtividade dos
desenvolvedores/programadores (visa agilizar o desenvolvimento).
Obs.: É possível instalar apenas o .NET Framework (não o Visual Studio) e usar
um editor de texto como o notepad ou notepad++ para digitar o código e
salva-lo com a extensão “.cs” no nome do arquivo.
A seguir, será preciso usar o programa “csc.exe”, que acompanha o .NET
Framework, para compilar o código (arquivo .cs) e gerar o programa
executável (arquivo .exe) correspondente.
Exemplo de comando para compilação de um arquivo de código chamado
“meucodigo”: csc meucodigo.cs (não tralharemos deste modo).
Neste curso usaremos o IDE Visual Studio, uma ferramenta profissional.
Maiores detalhes da Plataforma .NET serão vistos mais adiante.
- 3 -
2. Por enquanto usaremos o “Prompt de Comando”
C# pode ser usado para criar aplicativos (programas) que possuam entrada e
exibam a saída do processamento no console. Esses aplicativos são ideais para
aprender o desenvolvimento C# porque a interface do usuário é muito simples.
Assim, estaremos nos concentrando naquilo que é mais importante neste início:
A lógica da solução.
Deixaremos os elementos de um ambiente gráfico para mais tarde.
Visão de uma janela Prompt de Comando
3. Primeiro programa em C# - Conhecendo o IDE básico do Visual Studio
3.1. Execute os passos seguintes para criar o código.
a. Abra o Visual Studio for Windows Desktop.
b. No menu FILE (ARQUIVO) escolha NEW PROJECT (NOVO PROJETO).
c. No painel à esquerda clique em VISUAL C#.
d. No painel central clique em CONSOLE APPLICATION.
e. Na caixa LOCATION você deve indicar o local/pasta onde o projeto será salvo.
Sugerimos salvar os seus projetos em um pendrive (quando o computador do
laboratório reinicia, todos os dados são apagados). Você pode digitar ou clicar
no botão BROWSE para localizar o local/pasta (pode criar uma nova) onde o
projeto será salvo.
f. Na caixa NAME digite um nome para o projeto. Digite o nome que desejar, PJ1,
por exemplo.
g. Verifique se a caixa de seleção “Create Directory For Solution” está marcada.
h. Clique em OK.
- 4 -
O Visual Studio cria o projeto com um código básico sobre o qual você trabalhará.
Note o painel Solution Explorer. Ele exibe os nomes dos arquivos associados ao
projeto. Por enquanto, falaremos apenas sobre o arquivo Program.cs
Program.cs – É o arquivo do código-fonte do C#. É o conteúdo deste arquivo
que está aparecendo no quadro de edição de código (código básico). É neste
arquivo que você escreverá seu código.
i. Coloque o cursor logo após a chave de abertura no local onde seu código será
escrito (veja na figura acima).
static void Main(string[] args)
{
j. Crie uma nova linha pressionando ENTER.
k. Na nova linha digite a palavra Console.
Obs.: “Console” fornece acesso à exibição de mensagens na janela e leitura de
dados (entradas) a partir do teclado.
l. Digite um ponto (.) logo após a palavra Console.
m. Note a lista que aparece. Digite wri até que WriteLine esteja selecionado e então
pressione ENTER (se preferir role para baixo a lista, selecione WriteLine e pressione
ENTER).
Seu código
entrará aqui
- 5 -
n. Digite um parêntese de abertura “(“. O de fechamento “)” deve aparecer
automaticamente.
o. Mova o cursor de modo que ele fique entre os parênteses (caso necessário) e
digite uma frase qualquer. Ela deve estar entre aspas. Veja o exemplo abaixo.
static void Main(string[] args)
{ Console.WriteLine("Olá Alunos!")
}
p. Toda linha de comando deve terminar com “;” insira.
static void Main(string[] args)
{ Console.WriteLine("Olá Alunos!");
}
3.2. Execute os passos seguintes para salvar, compilar e executar o aplicativo dentro
do Visual Studio.
a. Clique no menu BUILD e, a seguir, em BUILD SOLUTION ( atalho <F7> ).
Essa ação compila o código (gera o executável).
Na parte inferior aparece a janela Output (resultado da compilação). Se não
houver erro aparecerá, entre outras, a seguinte mensagem:
========== Build: 1 succeeded, 0 failed
Se houver erros no código, as mensagens correspondentes aparecerão na
janela Error List. Para exemplificar, veja a mensagem que aparecerá nesta
janela caso você esqueça de incluir o “;” no final da linha:
- 6 -
Obs.:
Às vezes, um único erro pode causar várias linhas informando erros de
compilação.
É nesta janela (Error List) que você receberá auxilio para descobrir o seu erro.
Analise as mensagens atentamente!
b. A seguir, clique no menu DEBUG e, a seguir, em START WITHOUT DEBUGGING
(atalho Ctrl + F5).
Note que a janela de console é aberta e o programa é executado! A mensagem
que você escreveu no código é exibida.
Obs.: O programa espera o usuário pressionar uma tecla. Esta mensagem
“Pressione qualquer tecla para continuar...” ou “Press any key to continue” é
gerada pelo Visual Studio automaticamente.
c. Pressione uma tecla qualquer para retornar ao ambiente de programação do
Visual Studio.
d. Agora clique no menu DEBUG e, a seguir, em START DEBUGGING (atalho F5 ou
clique em START).
O que aconteceu de diferente?
O que isso significa?
Desafio:
Resolva com Console.ReadKey();
- 7 -
Conceitos e Comandos – Aprendizagem Prática
4. Dados, Expressões Aritméticas e Expressões Lógicas.
Os algoritmos e os programas manipulam dados. Os dados manipulados podem ser
dos seguintes tipos: numéricos, caracteres (literais) ou lógicos.
Durante a execução de um algoritmo ou programa, é necessário guardar os dados
que estão sendo ou serão manipulados. Para guardar os dados usamos
identificadores, que servem de rótulo (nome) para os dados. Além disso, os dados
manipulados por um algoritmo ou programa podem ser variáveis (mudam) ou
constantes (não mudam), conforme veremos mais adiante.
Um algoritmo também manipula expressões aritméticas e expressões lógicas.
Uma expressão aritmética resulta em um valor numérico (resultado de um cálculo)
e uma expressão lógica sempre resulta em V (verdadeiro) ou F (falso).
As expressões lógicas utilizam os operadores lógicos (“e”, “ou”, “não”) e os
operadores relacionais ( = , >, < , <>). Estudaremos tudo isso a seguir.
5. Tipos de Dados
De modo geral e bem resumido, os dados podem ser dos seguintes tipos:
Inteiro – São os dados numéricos que pertençam ao conjunto dos números inteiros
relativos (negativos, nulo (zero) ou positivos);
Real – São os dados numéricos que pertençam ao conjunto dos números reais
(negativos, nulo ou positivos);
Caractere (Literal / Alfanumérico) – São os dados formados por um conjunto de
caracteres, ou seja, formados por números (0 ... 9), alfabéticos (A ... Z, a ... z) e
especiais (#, ?, !, @, ...);
Lógico (Booleanos) – São os dados que podem assumir os valores verdadeiro (true)
ou falso (false). Geralmente utilizado para dados que podem assumir, no algoritmo
o no programa, apenas duas situações possíveis;
Exercício: Determine qual é o tipo de dado (também chamado de tipo primitivo de
informação) presente (em itálico) nas sentenças a seguir:
a) Ele tem 15 irmãos.
b) A porta pode estar aberta ou fechada.
c) Ela tem 1,73 metro de altura.
d) O nome do vencedor é Clube de Regatas do Flamengo.
- 8 -
Tipos de Dados em C# - São chamados Tipos Primitivos em C# (Maior Variedade)
Além dos tipos primitivos, o C# também possui o tipo específico para armazenar
textos (cadeia de caractere / literal / alfanumérico):
string Pode guardar qualquer texto delimitado por aspas duplas.
Qual o motivo para
tanta variedade?
Não poderia usar
apenas decimal, string e
bool ?
- 9 -
6. Um Dado, de qualquer tipo, pode ser Constante ou Variável
Constantes
Um dado constante é aquele cujo valor (numérico, caractere ou lógico)
permanecerá o mesmo do início ao fim de qualquer execução do algoritmo ou
programa.
Para diferenciar os dados constantes de tipo caractere dos outros tipos, iremos
delimitá-los por um par de aspas (“ “).
Exemplos de dados constantes: “Não Fume” ; 3,141592 (este é o valor de π)
Variáveis
Um dado (de qualquer tipo) em um algoritmo ou programa é classificado como
variável quando tem a possibilidade de ser diferente (variar) a cada execução do
algoritmo.
Exemplos: a cotação do dólar; o índice da inflação; o peso de uma pessoa; etc.
7. Como é no computador?
Algoritmos e programas recebem dados que precisam ser armazenados no
computador para serem utilizados no processamento. Este armazenamento é feito
na memória (memória principal - RAM).
Uma variável representa um local da memória do computador (um endereço)
que armazena um dado
Para facilitar a construção do algoritmo e a programação, este endereço de
memória recebe um nome (um rótulo) que chamamos, em geral, de Identificador.
Memória Principal (RAM)
Exemplos de áreas (espaços) reservadas na memória para
armazenamento dos dados
idade
nome
- 10 -
Identificadores
Conforme já dissemos, os identificadores servem para rotular (dar nome / identificar),
no algoritmo e no programa, os dados variáveis (e também os dados constantes).
Um identificador:
- Deve iniciar por um caractere alfabético ou o caractere sublinhado ( _ );
- Não deve possuir caracteres especiais (#, ?, !, @, $, +, - , /, ...) nem espaços
em branco;
- Não pode ser uma palavra reservada, ou seja, palavras que pertençam a
uma linguagem de programação (true, false, if, while, etc).
Exercício: Dentre as 24 células abaixo, marque aquelas com identificador inválido:
Alpha X AWQ P&A Nota/2 FGTS DVD 2oLugar
A:B TOTAL AWQ* X-Y 5X Notas_LP1 Media Arit ABC
Dia/Mês #55 55# Rua B52 P{0} “aluno” (x)
- 11 -
8. Como criar/declarar Variáveis no C#
Devemos dizer seu tipo (inteiro, texto ou real, por exemplo) e, além disso, qual é o
nome que usaremos para referenciá-la no texto do programa.
Exemplo em C#:
int numeroDaConta;
No computador:
Memória
9. Como atribuir valores a uma Variável no C#
Por exemplo, se estivéssemos interessados em guardar o valor 1 na variável
numeroDaConta que declaramos anteriormente:
Exemplo em C#:
numeroDaConta = 1;
Lê-se “numeroDaConta recebe 1”.
Quando, no momento da declaração da variável, sabemos qual será seu
valor, podemos utilizar a seguinte sintaxe para declarar e, simultaneamente,
atribuir o valor para a variável:
int numeroDaConta = 1;
TIPO INTEIRO
IDENTIFICADOR
(NOME da VARIÁVEL)
“;” SEMPRE OBRIGATÓRIO
numeroDaConta
Em algoritmo:
Inteiro numeroDaConta 1
Em algoritmo:
numeroDaConta 1
- 12 -
No computador:
Memória
10. Como solicitar ao Usuário um Dado de Entrada e como exibir uma
Mensagem de Saída
Os algoritmos e os programas precisam ser “alimentados” com os dados a serem
processados conforme a mente de um programador imaginou ser necessário para
resolver um problema ou alcançar um resultado desejado. Isso é feito através de
comandos de Entrada.
Geralmente, também precisamos apresentar os resultados do processamento, isso
é feito através de comandos de Saída.
Os comandos de Entrada são utilizados para receber dados digitados pelo usuário
e que serão armazenados em variáveis
os comandos de Saída servem para apresentar mensagens para o usuário
Exemplo em C#:
Solicitando que o usuário informe o número da conta de banco e guardando este
número na variável numeroDaConta:
int numeroDaConta;
Console.WriteLine("Informe o número da conta");
numeroDaConta = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("O número informado é " + numeroDaConta);
Console.ReadKey();
1
numeroDaConta
Linha 2
Linha 3
Linha 4 Linha 5
Linha 1
- 13 -
Explicações:
Linha 1 – Cria a variável numeroDaConta. Ela é do tipo inteiro (int).
Linha 2 – Apresenta no console uma linha com a mensagem indicada entre aspas.
Linha 3 – Recebe (lê) um dado com vários caracteres informado via teclado
(comando Console.ReadLine();), converte este dado para o tipo inteiro
(comando Convert.ToInt16) e o atribui (guarda) na variável
numeroDaConta.
Linha 4 – Apresenta no console uma linha com a mensagem indicada entre aspas
e também apresenta o número da conta (que foi guardado na variável
numeroDaConta).
Obs.: o operador/símbolo “+” indica CONCATENAÇÃO (junta o texto entre
aspas com o valor guardado na variável numeroDaConta).
Linha 5 – Este comando aguarda o pressionamento de uma tecla. Aqui serve
apenas para que a janela de console não feche (o programa não
termine) até que o usuário pressione uma tecla (geralmente o Enter).
Exercícios:
1) O que acontece com o código em vermelho? int pi = 3.14
a. O código compila, e “pi” guarda o número 3.
b. O código compila, e “pi” guarda 3.14 (inteiros podem guardar casas
decimais).
c. O código não compila, pois 3.14 não “cabe” dentro de um inteiro.
Em algoritmo (comandos):
Inteiro numeroDaConta;
ESCREVA(“Informe o número da conta”)
LEIA(numeroDaConta)
ESCREVA(“O número informado é “ + numeroDaConta)
- 14 -
2) Faça no VS-C# um programa que cria 2 variáveis, uma contendo a sua idade e
a outra contendo a idade de um amigo. Apresente duas mensagens informando
as idades.
Exemplo: A minha idade é 16
A idade do meu amigo é 17
3) Faça no VS-C# um programa que cria 3 variáveis, recebe
do usuário as notas de 3 provas, calcula a média aritmética
destas notas e apresenta uma mensagem informando o
valor da média.
4) Faça no VS-C# um programa que receba do usuário o
salário de um operário e um percentual de aumento. A
seguir, o programa deve calcular e mostrar o valor do
aumento que o operário receberá.
Dica: Para um salário de 5000 e percentual 10.
O Aumento será calculado por 5000 * 10 / 100
5) Altere o programa anterior para que ele apresente também o novo salário do
operário.
Um algoritmo ou programa é uma
SOLUÇÃO GERAL!
- 15 -
11. Armazenando Texto em Variáveis
Sabemos que no tipo string, podemos guardar qualquer valor que seja delimitado
por aspas duplas. O comando que realiza esta tarefa é:
string mensagem = "Minha Mensagem";
Podemos juntar o valor de duas ou mais variáveis do tipo string utilizando o operador
+ da linguagem.
A soma de strings é uma operação conhecida como concatenação. Exemplo:
string nome = "José";
string sobreNome = "Maria";
Console.WriteLine("O nome completo é " + nome + " " + sobrenome);
Ou
string nome = "José";
string sobreNome = "Maria";
string nomeCompleto = nome + " " + sobrenome;
Console.WriteLine("O nome completo é " + nomeCompleto);
Qual o motivo
deste espaço
antes das aspas?
Qual o motivo
deste espaço
entre aspas?
- 16 -
Exercícios:
1) Faça no VS-C# um programa que cria 2 variáveis, uma contendo a sua idade e
a outra contendo a idade de um amigo. Apresente uma só mensagem
informando as duas idades.
Exemplo: A minha idade é 16. A idade do meu amigo é 17
2) Faça no VS-C# um programa que recebe o nome (tipo cadeia de caracteres /
string) e a idade (tipo inteiro / int) de duas pessoas.
A seguir, o programa deve apresentar uma mensagem do tipo:
Exemplo: José tem 34 anos e Marta tem 29.
- 17 -
12. Documentando o código através de comentários
Quando queremos documentar o significado de algum comando existente em um
programa C#, devemos utilizar comentários.
Para fazer um comentário de uma única linha, use // (tudo que estiver depois do //
é considerado comentário, ou seja, não será considerado pelo compilador da
linguagem e não será ‘executado’).
Exemplo:
double parcela = 500.0; // parcela é o valor que será pago mensalmente.
Quando precisamos escrever diversas linhas de comentários para, por exemplo,
documentar um código complexo existente no programa, utilizamos o comentário
de múltiplas linhas que é inicializado por um /* e terminado pelo */. Tudo que estiver
entre a abertura e o fechamento do comentário é ignorado pelo compilador da
linguagem.
Exemplo:
/*
Esse é um comentário de várias linhas,
esta segunda linha também será ignorada.
*/
- 18 -
13. Noções Sobre Name Spaces (Espaço de Nomes) - namespaces
Em LP1, o conceito de namespaces será apresentado de modo bem simplificado,
apenas para que você tenha noção da função das linhas que aparecem,
automaticamente, no início dos códigos quando criamos um novo projeto.
As ferramentas do .NET Framework estão divididas entre vários namespaces. Pense
os namespaces como pastas do Windows, criadas para organizar os arquivos.
Você já deve ter notado, no início dos códigos/programas, as linhas com a palavra
chave “using” (usando). Elas indicam os namespaces que estarão anexados ao seu
código.
Esses namespaces (adicionados automaticamente pelo IDE para facilitar o nosso
trabalho) contém as ferramentas que, certamente, serão necessárias ao seu tipo de
programa.
Obs.: O programador pode incluir outros namespaces aos programas.
Exemplo: A linha abaixo esteve presente em todos os nossos códigos.
using System;
De modo simplificado, o namespace System contém as ferramentas
que nos permitem fazer leitura (ReadLine, por exemplo) e gravação
(WriteLine, por exemplo) na janela de Console.
O .NET Framework tem mais de oitenta namespaces, cada um deles
contém uma grande quantidade de ferramentas.
A declaração de uso de namespaces (usar diretiva) no início dos
códigos (using System, por exemplo) não é obrigatória, entretanto, os
comandos ReadLine e WriteLine, por exemplo, deveriam indicar o nome
do espaço (namespace) onde estas ferramentas estão.
Exemplo:
using System;
Console.WriteLine("Informe o número da conta");
numeroDaConta = Convert.ToInt16(Console.ReadLine());
Ou (sem namespace declarado / SEM DIRETIVA):
System.Console.WriteLine("Informe o número da conta");
numeroDaConta = Convert.ToInt16(System.Console.ReadLine());
Usando DIRETIVA