Buscar

Aula 03 Estrutura de linguagem

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 99 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 99 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 99 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Desenvolvimento de Software
Estrutura de Linguagem - C#
Prof. Henrique Mota
mota.henrique@gmail.com
http://www.henriquemota.com.br
 
Linguagens de programação
 
Introdução
• Orientação a objetos é um modelo de programação 
ou paradigma de programação. É um conjunto de 
idéias, conceitos e abstrações que servem como um 
guia para construir um software.
• A linguagem de programação é utilizada para definir 
formalmente todas as partes de um sistema e como 
essas partes se relacionam.
• Conhecimento em OO é uma condição importante 
para o desenvolvimento de sistemas na maioria das 
linguagens de mercado.
 
A Linguagem C#
 
Características
• Simplicidade: os projetistas de C# costumam dizer 
que essa linguagem é tão poderosa quanto o C++ e 
tão simples quanto o Visual Basic.
• Completamente orientada a objetos: em C#, qualquer 
variável tem de fazer parte de uma classe.
• Fortemente tipada: isso ajudará a evitar erros por 
manipulação imprópria de tipos, atribuições incorretas 
etc.
 
Características
• Gera código gerenciado: paradoxo da plataforma 
.NET,
• Tudo é um objeto: System.Object é a classe base de 
todo o sistema de tipos de C#.
• Controle de versões: cada assembly gerado, seja 
como EXE ou DLL, tem informação sobre a versão do 
código, permitindo a coexistência de dois assemblies 
homônimos, mas de versões diferentes no mesmo 
ambiente.
 
Características
• Suporte a código legado: o C# pode interagir com 
código legado de objetos COM e DLLs escritas em 
uma linguagem não gerenciada.
• Flexibilidade: se o desenvolvedor precisar usar 
ponteiros, o C# permite, mas ao custo de desenvolver 
código não gerenciado, chamado ”unsafe”.
 
Características
• Linguagem gerenciada: os programas desenvolvidos 
em C# executam num ambiente gerenciado, o que 
significa que todo o gerenciamento de memória é 
feito pelo runtime via o GC (Garbage Collector), e não 
diretamente pelo programador, reduzindo as chances 
de cometer erros comuns a linguagens de 
programação onde o gerenciamento da memória é 
feito diretamente pelo programador.
 
C# (CSharp)
• Linguagem de Programação muito utilizada no 
mercado de trabalho.
• Códigos de programas escritos em C# são colocados 
em arquivos com a extensão “.cs”.
 
C# (CSharp)
• Não é necessário entender todo esse código fonte. O 
importante é saber que todo programa escrito em C# 
para executar precisa ter o método especial Main.
• Esse código fonte precisa ser traduzido para um 
executável para que um computador possa executá-
lo. Essa “tradução” é realizada por um compilador da 
linguagem C#.
• Suponha que o código acima seja colocado no 
arquivo OlaMundo.cs. O compilador padrão de C# 
(csc) pode ser utilizado para compilar esse arquivo. 
 
 
 
Método Main
• Para executar um programa C#, é necessário definir 
um método especial para ser o ponto de entrada do 
programa, ou seja, para ser o primeiro método a ser 
chamado quando o programa for executado. 
• O método Main precisa ser static e seu tipo de 
retorno pode ser void ou int. 
• Ele também pode declarar parâmetros para receber 
os argumentos passados pela linha de comando e 
deve ser inserido em uma classe C#. 
 
Static, Void
Algumas variações do método Main
 
Método Main
• Os parâmetros do método Main são passados pela 
linha de comando e podem ser manipulados dentro 
do programa. 
• O exemplo a seguir imprime cada parâmetro recebido 
em uma linha diferente. 
 
Método Main
• Os parâmetros do método Main são passados pela 
linha de comando e podem ser manipulados dentro 
do programa. 
• O exemplo a seguir imprime cada parâmetro recebido 
em uma linha diferente. 
 
Exercício
(OlaMundo.exe)
 
Variáveis
 
Variáveis e memória
• Um dos recursos fundamentais que a maioria das 
Linguagens de Programação oferece é o de criação e 
utilização de variáveis. 
• A função de uma variável é permitir que um programa 
armazene e manipule dados na memória RAM do 
computador.
• Uma variável é uma área de memória, associada a 
um nome, que pode armazenar valores de um 
determinado tipo.
 
Variáveis e memória
• Um tipo de dado define um conjunto de valores e um 
conjunto de operações.
• Uma variável de um certo tipo T pode conter, num 
dado instante, um valor pertencente ao tipo T. 
 
Rigidez de tipos
• C# é uma linguagem com rigidez de tipos (em inglês 
strongly typed).
“um valor pertencente a um determinado tipo só 
pode ser usado como argumento em operações 
que preveem operações desse tipo.”
 
Declaração de variáveis
• Em C#, as variáveis devem ser declaradas para que 
possam ser utilizadas. 
• A declaração de uma variável envolve definir um 
nome único e um tipo de valor. 
• As variáveis são acessadas pelos nomes e 
armazenam valores compatíveis com o seu tipo.
 
Declaração de variáveis
Declaração de variáveis: tipo 
seguido de seu nome
 
Declaração, inicialização e uso
• Toda variável deve ser inicializada antes de ser 
utilizada pela primeira vez. 
• Se isso não for realizado ocorrerá um erro de 
compilação.
• A inicialização é realizada através do operador de 
atribuição “=”. 
• Esse operador guarda um valor na variável, ou 
melhor, no espaço de memória reservado para a 
variável.
 
Declaração, inicialização e uso
Declaração de variáveis: operador 
“=” inicializa o valor da variável.
 
Ainda sobre declarações
• A declaração de uma variável pode ser feita em 
qualquer linha de um bloco. Não é necessário 
declarar todas as variáveis no começo do bloco.
Declaração de variável em 
qualquer parte do bloco de 
instruções
 
Declaração, inicialização e uso
O comando de atribuição é usado para alterar o valor 
de uma variável.
Sua forma:
variável = expressão;
Exemplos:
x = z + 10;
z = z + 1;
b = true;
Uma declaração da forma
 int x = 10;
é na verdade a combinação de uma 
declaração de variável com uma 
atribuição.
 
Escopo da variável
• Toda variável pode ser utilizada dentro do bloco no 
qual ela foi declarada após a linha da sua 
inicialização.
• Não é permitido declarar duas variáveis com o 
mesmo nome dentro de um mesmo bloco. Isso 
ocasionará um erro de compilação.
 
Escopo da variável
• Dentro de um bloco é possível abrir um sub-bloco. As 
variáveis declaradas antes do sub-bloco podem ser 
acessadas também no sub-bloco.
Sub-bloco definido e acessando 
valores da varável “numero”
 
Escopo da variável
• Porém, variáveis declaradas em sub-blocos não 
podem ser acessadas do “bloco pai” nem de outro 
sub-bloco do “bloco pai”.
 
Escopo da variável
• Dentro de sub-blocos diferentes de um mesmo bloco 
é permitido declarar variáveis com nomes iguais.
 
Exercício
(Declaração de variáveis)
 
Tipos de dados
 
Tipos de dados
• Como toda linguagem de programação, C# apresenta 
seu grupo de tipos de dados básico.
• Esses tipos são conhecidos como “primitivos” ou 
“fundamentais” por serem suportados diretamente 
pelo compilador.
• São utilizados durante a codificação na definição de 
variáveis, parâmetros e até mesmo em comparações.
 
Sistema de Tipos do C#
Object
StringString
ArrayArray T[]T[]
enum Tenum T
ValueTypeValueType
class Tclass T
intint
shortshort
bytebyte
charchar
floatfloat
decimaldecimal
longlong
uintuint
ulongulong
sbytesbyte
ushortushort
boolbool
doubledouble
EnumEnum
struct Tstruct T
 
 
Tipo inteiro
C# oferece diversos tipos de inteiros. Cada um deles é 
definido por:
– uma gama de valores
– uma representação interna
O desenvolvedor tem a opção de decidir qual o tipo 
será usado em função da necessidade de sua 
aplicação.
 
Tipo booleano
• O tipo booleano, em C# chamado de bool, é usado 
em geral para operações lógicas.
• Os valores possíveis para uma variável desse tipo 
são true e false.
 
Categorias de tipos de dados
Em C#, podemos apresentar 02 categorias:
• Tipos valor: armazenam dados em memória 
enquanto. 
Ex.: int x =10;
• Tipos referência: armazenam uma referência, 
o endereço, para o valor atual. 
Ex.: int x = newint(10);
 
Conversão de tipo
Conversões de tipos de dados é uma situação comum 
em programação. Devemos considerar:
• Os tipos de menor faixa são convertidos para os de 
maior faixa. Por exemplo, o tipo int pode ser 
convertido para: long, float, double ou decimal.
• A conversão dos tipos de ponto flutuante (float, 
double) para decimal causa erro.
• A conversão entre os tipos com sinal e sem sinal de 
valores inteiros com o mesmo tamanho causa erro. 
Por exemplo, entre o tipo int e unit.
 
Tabela de conversão automática
 
O objeto “Convert”
• Em C# temos o objeto Convert que é́ usado para 
converter um tipo de dado em outro.
• Os tipos de dados suportados são: Boolean, Char, 
SByte, Byte, Int16, Int32, Int64, Uint16, UInt32, 
UInt64, Single, Double, Decimal, DateTime e String.
Int numero = System.Convert.ToInt32 
(decimal);
 
Exercício
(Conversão de tipos de dados)
 
Operadores
 
Operadores
• Para manipular os valores das variáveis, podemos 
aplicar os operadores da linguagem. Há diversos 
tipos de operadores. 
 
Aritméticos
Para realizar as operações matemáticas podemos 
aplicar os operadores: 
• + (soma), 
• - (subtração), 
• * (multiplicação), 
• / (divisão) e 
• % (módulo).
 
Igualdade e desigualdade
Para verificar se o valor armazenado em uma variável é 
igual ou diferente a um determinado valor ou ao valor 
de outra variável, devem ser utilizados os operadores:
• == (igual) e 
• != (diferente).
Esses operadores devolvem valores do tipo bool (true 
ou false).
 
Relacionais
As variáveis numéricas podem ser comparadas com o 
intuito de descobrir a ordem ou a relação numérica dos 
seus valores. Os operadores relacionais são:
• > (maior que),
• < (menor que), 
• >= (maior ou igual a) e 
• <= (menor ou igual a). 
Esses operadores devolvem valores do tipo bool (true 
ou false).
 
Relacionais
 
Lógicos
Para verificar várias condições é possível aplicar os 
operadores lógicos: 
• && (e) e 
• || (ou).
 
Expressões
• Uma expressão é uma combinação de operandos e 
operadores.
• Expressões em C# são semelhantes às expressões 
usadas em outras linguagens como C ou Pascal.
 
Expressões
• No caso de operações encadeadas, como em a+b*c 
o cálculo da expressão é feito de acordo com a 
precedência entre os operadores.
• Parênteses podem ser utilizados para alterar a ordem 
de cálculo das operações.
• Exemplos:
(a+b)*c e a+(b*c)
 
Expressões
No caso de encadeamento de operações com a mesma 
precedência, a linguagem define o modo de associatividade (à 
esquerda ou à direita). 
Os operadores aritméticos em C# têm associatividade à 
esquerda.
Exemplo:
6/2/3 é calculado como (6/2)/3 pois neste caso a 
associatividade é à esquerda.
Em C#, apenas os operadores de atribuição (= *= /= %= += -= 
<<= >>= &= ^= |=) e o operador ternário (? :), têm associatividade 
à direita. 
 
Operadores
Principais operadores, em ordem decrescente de 
precedência
Categoria Operadores Associatividade
Unário + - ! esquerda
Multiplicativo * / % esquerda
Aditivo + - esquerda
Relacional < = > >= <= == is esquerda
Igualdade == != esquerda
'and' (bool) && esquerda
'ou' (bool) || esquerda
 
Operadores combinados
O operador de atribuição pode ser combinado com 
outros operadores aritméticos.
 a op= exp; é equivalente a a = a op (exp);
Exemplos:
a += b; equivalente a a = a + b;
a -= 2; equivalente a a = a - 2;
a *= 1+1; equivalente a a = a * (1+1);
a %= b*c+d; equivalente a a = a % (b*c+d);
 
Auto-incremento e auto-decremento
Numa expressão, os operadores ++ e -- podem ser 
usados antes ou depois da variável:
– se usado após a variável, o incremento será feito depois de 
usar o valor da variável na expressão
– se usado antes da variável, o incremento será feito antes 
do uso do valor na expressão
Exemplos:
a = a/i++; equivalente a a = a/i; i = i+1;
b = --k*2; equivalente a k=k-1; b = k*2;
 
Exercício
(Operadores)
 
Comandos
 
Seleção
• Os comandos de seleção são utilizados na escolha 
de uma possibilidade entre uma ou mais possíveis.
• Os comandos if e switch fazem parte deste grupo.
 
Comando if
• O comando if utiliza uma expressão, ou expressões, 
booleana para executar um comando ou um bloco de 
comandos. 
• A cláusula else é opcional na utilização do if, no 
entanto, seu uso é comum em decisões com duas ou 
mais opções.
 
Comando if
Situação 01 (sem o uso do else)
Situação 02 (com o uso do else)
 
Comando if
• Toda expressão do comando if deve ser embutida em 
parênteses () e possui o conceito de curto-circuito 
(short-circuit). 
• Isto quer dizer que se uma expressão composta por 
And (&&), fornecer na sua primeira análise um valor 
booleano false (falso), as restantes não serão 
analisadas. 
• Este conceito é válido para todas expressões 
booleanas.
 
Comando if
Assim como outros comandos. O if também pode ser 
encontrado na forma aninhada.
 
Comando if
O comando if com a cláusula else única pode ser 
encontrado em sua forma reduzida com operador 
ternário representado por interrogação (?:).
E chamado de operador ternário por possuir 3 
expressões: a primeira refere-se a condição boolena, a 
segunda se a condição é verdadeira e a terceira se a 
condição é falsa.
 
Comando swicth
• O comando switch utiliza o valor de uma determina 
expressão contra uma lista de valores constantes 
para execução de um ou mais comandos.
• Os valor constante é tratado através da cláusula case 
e este pode ser numérico, caracter ou string.
• A cláusula default é utilizada para qualquer caso não 
interceptado pelo case.
 
Comando switch
 
Comando switch
Uma ou mais cláusulas case podem ser encontradas 
seguidamente quando mais do que uma opção é 
permitida para um comando ou bloco de comandos.
 
Comando switch
A cláusula break é utilizada para separar os blocos do 
switch e garante que o bloco seja executado somente 
até determinado ponto.
 
Interação e Loop
• Conhecidos como laço ou loop, os comandos de 
iteração executam repetidamente um comando ou 
bloco de comandos, a partir de uma determinada 
condição. 
• Esta condição pode ser pré-definida ou com final em 
aberto. 
• Em C#, fazem parte dos comandos de iteração: while, 
do, for e foreach.
 
Comando for
• O comando for possui 3 declarações opcionais, 
separadas por ponto e vírgula(;), dentro dos 
parênteses: 
• inicialização, 
• condição de interação,
• e a iteração. 
• Em cada parâmetro, mais de uma expressão pode 
ser encontrada separada por vírgula.
 
Comando for
 
Comando foreach
• O comando foreach enumera os elementos de uma 
coleção.
 
Comando do e while
• Os comandos do e while tem características 
semelhantes. Ambos executam condicionalmente um 
comando ou bloco de comandos. 
• No entanto, o comando do pode ser executado uma 
ou mais vezes e o comando while pode ser 
executado nenhuma ou mais vezes, isto ocorre 
porque a expressão condicional do comando do é́ 
encontrada no final do bloco.
 
Comando do e while
 
Exercício
(Comandos)
 
Vetores e matrizes
 
Vetores e matrizes
• C# oferece diversos mecanismos para a 
criação de novos tipos de dados a partir 
de tipos já existentes. 
• Um desses mecanismos é o que permite 
a construção de vetores e matrizes.
• Suponha que o sistema de uma loja 
virtual precisa armazenar os preços dos 
produtos que ela comercializa. 
 
Vetores e matrizes
• Não seria nada prático declarar para cada produto 
uma variável que armazena o preço do mesmo. 
• Para isso, é possível utilizar as estruturas chamadas 
Arrays (vetores).
• Um array é uma estrutura que armazena um ou mais 
valores de um determinado tipo. 
 
Vetores e matrizes
• A variável preços armazena uma referência de um 
array criado na memória RAM do computador. 
• Na memória, o espaço ocupado por esse array está 
dividido em 100 “pedaços” iguais numerados de 0 até 
99. 
• Cada “pedaço” pode armazenar um valor do tipo 
double.
• Quando um array é criado, as posições dele são 
inicializadas com os valores default.
 
Vetores e matrizesAcessar posições fora do intervalo de índices de um array gera um 
erro de execução. No momento da criação de um array, os seus 
valores podem ser definidos.
 
Declaração de um vetor
Um exemplo:
int[] v = new int[10];
– v é declarado com um vetor de inteiros
– a expressão new int[10] cria efetivamente um vetor de 
inteiros, de tamanho 10.
– o comando de atribuição associa o vetor criado ao vetor v.
 
Declaração de um vetor
• Tendo declarado a variável int[] v, esta pode ser 
associada a qualquer vetor de inteiros. Um exemplo:
...
int[] v10 = new int[10];
int[] v20 = new int[20];
int i = x+10/16;
int[] v;
...
switch(i) {
case 10: v = v10; break;
case 20: v = v20; break;
default: v = new int[i]; break;
}
 ...
 
Lista de valores
• Um vetor também ser pode ser criado a partir de 
uma lista de valores entre { e } e separados por 
vírgula. 
• Exemplos:
int[] primos = { 2,3,5,7,11,13,17,19 };
char[] dd = { 'd','s','t','q','q','s','s'};
string[] meses = {"jan","fev","mar","abr" };
 
Acesso aos elementos
• Tendo criado um vetor, o acesso aos seus elementos 
é feito a partir da sua posição, ou índice, no vetor.
• Se um vetor tem N elementos, os índices dos seus 
elementos vão variar entre 0 e N-1.
• O índice para acesso ao elementos deve ser um valor 
inteiro entre 0 e N-1, definido por uma expressão.
 
Um exemplo
...
int[] f = new int[10];
f[0] = 0; f[1] = 1;
for( int i = 2; i < 10; i++ ) 
f[i] = f[i-1]+f[i-2];
...
 
Outro exemplo
public static void Main(string[] args){
int[] primos = { 2,3,5,7,11,13,17,19,23,29,31 };
int[] somas = new int[11];
for(int i = 0; i < 11; i++){
somas[i] = 0;
for(int j = 0; j <= i; j++) 
somas[i] += primos[j];
}
Console.Write("somas:",somas);
for(int i = 0; i < 11; i++) 
Console.Write(" {0}",somas[i]);
Console.WriteLine();
}
 
Valor inicial de um vetor
• A criação de um vetor através de new apenas 
aloca a memória necessária para o vetor, sem 
definir um valor inicial para o mesmo.
• O valor inicial de um vetor pode ser definido 
através de uma tupla da forma
{ valor, valor, ... , valor }
• O número de valores na tupla e o seu tipo 
devem ser compatíveis com o vetor.
 
Um exemplo
...
int[] p = { 2,3,5,7,11, 13 };
int[] s = { p[0]+p[1], p[2]+p[3],p[4]+p[5] };
string[] dias = { 
 "seg","ter","qua","qui",
 "sex","sab","dom“
};
...
 
Arrays multidimensionais
• É possível criar arrays de várias dimensões.
• Isso permite a criação de estruturas para armazenar 
os valores de uma tabela.
 
Percorrendo arrays
• Os arrays podem ser facilmente preenchidos 
utilizando o comando while ou o for.
 
Percorrendo arrays
• A quantidade de elementos em cada dimensão dos 
arrays pode ser obtida através do método getLength. 
• A quantidade de elementos em todas as dimensões 
pode ser obtida através da propriedade Length.
 
Propriedades e Métodos
• obj.Length → Tamanho do vetor
• Array.IndexOf(Array vetor, object value) → Procura a 
primeira ocorrência de valor em um vetor
• Array.LastIndexOf(Array vetor, object value) → 
Procura a última ocorrência de valor em um vetor
• Array.Sort(Array vetor) → Ordena o vetor 
crescentemente
• Array.Reverse(Array vetor) → Ordena o vetor 
decrescentemente
 
Tamanho de um vetor
...
 for(int m = 0; m < dias_mes.Length; m++){
 gastos[m] = new float[dias_mes[m]];
 for(int d = 0; d < gastos[m].Length; d++)
 gastos[m][d] = 0.0F;
}
 ...
 
Recomendações da MS
• Evite usar “_” (underline)
• Não crie variáveis com o mesmo nome alterando 
somente entre maiúsculas e minúsculas
• Utilize nome de varáveis com minúsculas
• Evite utilizar todas as letras maiúsculas (normalmente 
utilizado para definir constantes)
• Utilize notação camelCasing
• Em classes, métodos, propriedades, enumeradores, 
interfaces, constantes, campos somente leitura e 
namespaces use notação PascalCasing
 
Exercícios
 
Exercícios
• Faça um programa que imprima na tela a mensagem 
“Bom Dia” 100 vezes.
• Imprima na tela os números de 1 até 100.
• Faça um programa que percorra todos os número de 
1 até 100. Para os números ímpares deve ser 
impresso um “*” e para os números pares deve ser 
impresso dois “**”.
• Faça um programa que percorra todos os número de 
1 até 100. Para os números múltiplos de 4 imprima a 
palavra “PI” e para os outros imprima o próprio 
número.
 
Exercícios
• Crie um programa que imprima na tela um triângulo 
de “*” de 5 linhas. 
• Crie um programa que imprima na tela vários 
triângulos de “*” de 5 linhas. 
• A série fibonacci é uma sequência de números. O 
primeiro elemento da série é 0 e o segundo é 1. Os 
outros elementos são calculados somando os dois 
antecessores. Crie um programa para imprimir os 30 
primeiros números da série de fibonacci.
 
Exercícios
• Crie um programa que imprima na tela os argumentos 
passados na linha de comando para o método MAIN.
• Faça um programa que ordene o array de strings 
recebido na linha de comando.
• Faça um programa que calcule a média dos 
elementos recebidos na linha de comando.
• Crie um programa que encontre o maior número entre 
os valores passados na linha de comando.
Exercícios
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	C# Type System
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83
	Slide 84
	Slide 85
	Slide 86
	Slide 87
	Slide 88
	Slide 89
	Slide 90
	Slide 91
	Slide 92
	Slide 93
	Slide 94
	Slide 95
	Slide 96
	Slide 97
	Slide 98
	Slide 99

Outros materiais