Alfamídia Programação: Desenvolvendo com C#



Documentos relacionados
Professor: Douglas Sousa Cursos de Computação

Introdução ao C# . Visão geral do.net Framework

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Programando em C# Orientado a Objetos. By: Maromo

Prof. Esp. Adriano Carvalho

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Orientação a Objetos

Trabalho Prático Nº1 Introdução ao C#.NET

Linguagens de. Aula 02. Profa Cristiane Koehler

Fundament n os s da platafo f rm r a. NE N T André Menegassi

JSP - ORIENTADO A OBJETOS

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Conceitos de Linguagens de Programação

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Introdução a Java. Hélder Nunes

CURSO DE PROGRAMAÇÃO EM JAVA

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Orientação a Objetos

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

2 Orientação a objetos na prática

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Organização de programas em Python. Vanessa Braganholo

Componentes da linguagem C++

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Programação de Computadores - I. Profª Beatriz Profº Israel

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Organização de programas em Java. Vanessa Braganholo

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Começando com Ruby on

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Introdução à Programação

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

É uma das linguagens de programação que fazem parte da Plataforma.NET (em inglês: dotnet) criada pela Microsoft (Microsoft.NET).

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

NOVIDADES DO JAVA PARA PROGRAMADORES C

Algoritmos e Programação Estruturada

3 Classes e instanciação de objectos (em Java)

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Introdução à Linguagem

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Roteiro 1: Dados, variáveis, operadores e precedência

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Desenvolvimento OO com Java Orientação a objetos básica

AMBIENTE DE PROGRAMAÇÃO PYTHON

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

Criando um script simples

INF 1005 Programação I

Dadas a base e a altura de um triangulo, determinar sua área.

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

AULA Uma linguagem de programação orientada a objetos

Linguagens de Programação Aula 10

Lição 9 Trabalhando com bibliotecas de classes

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Sintaxe Básica de Java Parte 1

NetBeans. Conhecendo um pouco da IDE

DEFINIÇÃO DE MÉTODOS

O Primeiro Programa em Visual Studio.net

DESENVOLVIMENTO DE SOFTWARE AULA 1

Introdução a lógica de programação. Aula 02: Linguagens de Programação e Introdução ao Visual C# Express

Noções sobre Objetos e Classes

Prof. Esp. Adriano Carvalho

Lógica de Programação

Java. Marcio de Carvalho Victorino

Computação II Orientação a Objetos

Java 2 Standard Edition Como criar classes e objetos

Linguagem de Programação III

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto

ASP.NET 2.0 e PHP. Autor: Glauber de Almeida e Juarez Fernandes

DESENVOLVIMENTO DE SOFTWARE II. Aula 07 A linguagem de programação C# e sua sintaxe

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

FBV - Linguagem de Programação II. Um pouco sobre Java

Aspectos técnicos do desenvolvimento baseado em componentes

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Parte I Princípios básicos do Microsoft.NET Framework

Programação Orientada a Objetos

Resumo da Matéria de Linguagem de Programação. Linguagem C

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Projeto de Software Orientado a Objeto

Conceitos Básicos de C

Transcrição:

Alfamídia Programação: Desenvolvendo com C#

Todos os direitos reservados para Alfamídia Prow AVISO DE RESPONSABILIDADE As informações contidas neste material de treinamento são distribuídas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implícita. Embora todas as precauções tenham sido tomadas na preparação deste material, a Alfamídia Prow não tem qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito à responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instruções contidas neste material ou pelo software de computador e produtos de hardware aqui descritos. 10/2013 Alfamídia Prow http://www.alfamidia.com.br 1

UNIDADE 1 LINGUAGENS DE PROGRAMAÇÃO 3 POR QUE C#? 3 UNIDADE 2 A LINGUAGEM C# 5 INTRODUÇÃO 5 AS CARACTERÍSTICAS DO C# 5 A ESTRUTURA BÁSICA DE UM PROGRAMA 6 O CABEÇALHO DO PROGRAMA 6 A DECLARAÇÃO DE UMA CLASSE 6 O MÉTODO MAIN( ) 6 INTERAGINDO COM O CONSOLE 8 FORMATANDO A SAÍDA PADRÃO 9 RECEBENDO PARÂMETROS NA LINHA DE COMANDO 9 VARIÁVEIS 10 2

Unidade 1 Linguagens de Programação Dentre as linguagens que suportam.net podemos citar: APL BooClarion COBOL Component Pascal C# C++ F# Eifel Forth Fortran Haskell Java Jscript J# Lua Mercury Mondrian Oberon Object Pascal / Delphi Language Oz Pascal Perl PowerBuilder PowerShell Python RPG Ruby Scheme SmallTalk Standard ML Visual Basic Conforme descrito acima, todas essas linguagens têm de aderir às especificações CLS e CTS para poderem ser compatíveis com.net. Por que C#? O C# (C Sharp) é uma linguagem de programação desenvolvida pela Microsoft que é completamente suportada pela plataforma.net Framework, abrange o poder e a versatilidade do Visual Basic, a força e a criatividade do C++ e a inteligência do Javascript para validações. Além disso, por ser derivado de C++ e C e por possuir uma grande semelhança com a linguagem de programação Java, permitindo que desenvolvedores destas linguagens pudessem se adaptar com facilidade ao C#. É justo dizer que o C# é a linguagem de referência do.net pelas seguintes razões: Foi feita a partir do zero para funcionar na nova plataforma, sem preocupações de compatibilidade com código já existente; O compilador C# foi o primeiro a ser desenvolvido; A maior parte das classes do.net Framework e até mesmo o compilador JScript foram desenvolvidos em C#. Outra vantagem na utilização de C# é programação orientada a objeto, não possíveis em C e em Visual Basic. 3

O recurso do ambiente Windows e o seu desenvolvimento é muito semelhante com aplicações desktop. Assim, alguns dos controles que somente eram encontrados em componentes são agora nativos. Tratar erros também se tornou muito fácil, por meio do Exception, o próprio C# identifica e trata o erro. O C# tem várias características em comum com o Java: Modelo de orientação a objetos baseado em herança simples de classes com um ancestral comum; Herança múltipla de interfaces ; Gerenciamento de memória automático com coletor de lixo ; Tipagem forte; Rodam em um ambiente gerenciado, no qual a segurança e integridade das operações efetuadas pelos programas podem ser garantidas; Amplo suporte a reflections, um recurso também conhecido como informação de tipos em tempo de execução. E alguns problemas do Java corrigidos pelo C#: Os programas na arquitetura.net são sempre compilados, ao passo que em Java eles são normalmente interpretados. O C# tem structs, um tipo barato para ser usado em situações onde o custo de uma classe como alocação de memória e coleta de lixo não seriam justificados. Um exemplo clássico é a representação de uma coordenada no plano (dois inteiros: X, Y). O C# tem enumerações, mais ou menos como versões mais recentes do C++ ou o próprio Pascal. A enumeração é ótima para representar uma lista de possibilidades. Linguagens como C ou Basic costumam usar inteiros nestas situações. O problema com os inteiros é que você pode associar uma constante relativa a um contexto em outro, sem fazer sentido. No C# as enumerações são fortemente tipadas e incompatíveis com outras enumerações. O Java costuma usar strings nestas situações. As strings além de não serem tipadas (você pode atribuir qualquer sequência de caracteres a uma string) têm um custo em termos de performance bastante alto. Existe passagem de parâmetros por referência, na verdade de duas formas: ref significa a passagem por referência tradicional; out significa uma referência apenas de saída. Também, uma boa razão para programar em C# é o recurso ao belíssimo ambiente que nos fornece o Microsoft Visual Studio, que é um programa muito versátil e capaz. Hoje em dia, também, já existem versões Express (não pagas) para que qualquer pessoa possa desenvolver aplicações profissionais tanto em C#, como em VB e ASP por exemplo. 4

Unidade 2 A linguagem C# Introdução C# é uma linguagem de programação orientada a objetos criada pela Microsoft, faz parte da sua plataforma.net. A empresa baseou C# nas linguagens C++ e Java, e ela é considerada a linguagem símbolo do.net, por ter sido criada praticamente do zero para funcionar na nova plataforma, sem preocupações de compatibilidade com código existente. O compilador C# foi o primeiro a ser desenvolvido, e a maior parte das classes da plataforma foram desenvolvidas nesta linguagem. As características do C# Dentre as características essenciais do C# podemos citar: 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. Gera código gerenciado: assim como o ambiente.net é gerenciado, assim também o é C#. 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. 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. 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. 5

A estrutura básica de um programa O pequeno trecho de código a seguir implementa o clássico programa Olá mundo : using System; class AppPontoNet static void Main( ) // escrevendo no console Console.WriteLine("Olá mundo em C#"); Console.ReadLine( ); O cabeçalho do programa A primeira linha do nosso programa, que escreve no console Olá mundo em C#, contém a informação do namespace System, que contém as classes primitivas necessárias para ter acesso ao console do ambiente.net. Para incluir um namespace em C#, utilizamos à cláusula using seguida do nome do namespace. A declaração de uma classe O C# requer que toda a lógica do programa esteja contida em classes. Após a declaração da classe usando a palavra reservada class, temos o seu respectivo identificador. Para quem não está familiarizado com o conceito de classe, apenas adiantamos que uma classe é um tipo abstrato de dados que no paradigma de programação orientada a objetos é usado para representar objetos do mundo real. No exemplo acima, temos uma classe que contém apenas o método Main( ) e não recebe nenhum parâmetro. O Método Main( ) Todo programa C# deve ter uma classe que defina o método Main( ), que deve ser declarado como estático usando o modificador static, que diz ao runtime que o método pode ser chamado sem que a classe seja instanciada. É através desse modificador que o runtime sabe qual será o ponto de entrada do programa no ambiente Win32, para poder passar o controle ao runtime.net. O M maiúsculo do método Main é obrigatório, e seu valor de retorno void significa que o método não retorna nenhum valor quando é chamado. Algumas variantes do método Main( ) // Main recebe parâmetros na linha de comando via o array // args 6

static void Main(string[ ] args) // corpo do método // Main tem como valor de retorno um tipo int static int Main( ) // corpo do método A forma do método Main( ) a ser usada vai depender dos seguintes fatores: O programa vai receber parâmetros na linha de comando? Então esses parâmetros serão armazenados no array args. Quando o programa é finalizado, é necessário retornar algum valor ao sistema? Então o valor de retorno será do tipo int. Um programa escrito em C# pode ter mais de uma classe que implementa o método Main( ). Nesse caso, deverá ser especificado em tempo de compilação em qual classe se encontra o método Main( ), que deverá ser chamado pelo runtime quando a aplicação for executada. Exemplo: using System; class class1 static void Main( ) Console.WriteLine("Método Main( ) da classe 1"); class class2 static void Main( ) Console.WriteLine("Método Main( ) da classe 2"); O resultado da compilação deste programa é: Class1.cs(6): Program 'C:\My Documents\Visual Studio Projects\twoMainMet\obj\Debug\twoMainMet.exe' has more than one entry point defined: 'class1.main( )' Class1.cs(15): Program 'C:\My Documents\Visual Studio Projects\twoMainMet\obj\Debug\twoMainMet.exe' has more than one entry point defined: 'class2.main( )' Dentro do ambiente de desenvolvimento VS.NET proceda da seguinte forma para resolver esse problema: 7

1. Clique no menu Project e selecione a opção <Projeto> Properties (onde <Projeto> é o nome do projeto em questão). 2. Clique na aba Application. 3. Modifique a propriedade Startup Object, selecionando a classe que contém o método Main( ) que você deseja que seja chamado pelo Runtime quando a aplicação for executada. 4. Clique em Ok e compile a aplicação de novo. Alguns últimos detalhes adicionais Blocos de código são agrupados entre chaves. Cada linha de código é separada por ponto-e-vírgula. Os comentários de linha simples começam com duas barras //. Comentários em bloco são feitos usando os terminadores /* (de início) e */ (de fim). /* Este é um comentário de bloco Segue o mesmo estilo de C/C++ */ // este é um comentário de linha simples O C# é sensível ao contexto, portanto int e INT são duas coisas diferentes. int é uma palavra reservada que é um alias do tipo System.Int32. INT poderia ser um identificador, entretanto não é recomendado usar como identificadores de variáveis o nome de um tipo ou palavra reservada como no exemplo citado. Sempre declare uma classe onde todos os aspectos inerentes à inicialização da aplicação serão implementados, e obviamente, que conterá o método Main( ) também. Interagindo com o Console Toda linguagem de programação oferece meios de interagir com o console, para ler ou escrever na entrada (geralmente o teclado) e saída padrão (normalmente o vídeo em modo texto).em C#, temos uma classe chamada Console no namespace System, a qual oferece uma série de métodos para interagir com a entrada e saída padrão. Vejamos alguns exemplos: public class stdinout static void Main( ) char c; string str; // Escreve no console sem retorno de carro Console.Write("Digite seu nome: "); // Lê uma string do console. <Enter> para concluir str = Console.ReadLine( ); // Escreve no console sem retorno de carro Console.Write("Digite uma vogal e tecle <Enter>:"; // Lê do console um caractere simples. 8

c = (char)console.read( ); // Escreve uma linha em branco Console.WriteLine( ); // Escreve uma string no console Console.WriteLine("Seu nome é: 0", str); // Escreve 1 caractere com ToString( ) para converter Console.WriteLine("Sua vogal: 0", c.tostring( )); Console.ReadLine( ); Como você pode ver no exemplo acima, para escrever no console usamos os métodos: Console.Write( ), para escrever uma string sem retorno de carro; Console.WriteLine( ), para escrever uma string com retorno de carro. Essa string pode ser parametrizada, o que significa que o conteúdo de variáveis pode ser mostrado no console. As variáveis a serem mostradas começam a partir do segundo parâmetro e são separadas por vírgula. Na string do primeiro parâmetro elas são representadas por números inteiros, a começar por zero, encerrados entre terminadores de início e de fim. Exemplo: Console.WriteLine("var1: 0, var2: 1, var3: 2", var1, var2, var3); Para ler dados da entrada padrão, usamos os seguintes métodos: Read( ), para ler um caractere simples; ReadLine( ) para ler uma linha completa, conforme mostrado no exemplo acima. Formatando a saída padrão A formatação da saída padrão é feita usando os chamados caracteres de escape Vejamos um exemplo: // \t = TAB // \n = quebra de linha e retorno de carro (CR LF) Console.WriteLine( "var1: 0 \t var2: 1\t var3: 2\n", var1, var2, var3); \n Insere uma nova linha \t TAB \a Dispara o som de um alarme sonoro simples \b Apaga o caractere anterior da string que está sendo escrita no console (backspace) \r Insere um retorno de carro \0 Caractere NULL (nulo) Recebendo parâmetros na linha de comando 9

Para receber parâmetros na linha de comando, ou seja, na chamada de um programa quando digitamos o nome do executável no prompt da linha de comando do DOS (como ScanDisk /All /AutoFix, por exemplo), o método Main( ) precisa ser declarado da seguinte forma: // não retorna nenhum valor ao sistema static void Main(string[ ] args) ou, // retorna um valor do tipo int ao sistema static int Main(string[ ] args) O parâmetro args é um array de strings que recebe os parâmetros passados quando a aplicação é chamada na linha de comando. A seguir mostramos uma das formas da varrer os parâmetros recebidos: foreach (string cmd in args) int i = 0; Console.WriteLine("Par 0: 1", i, cmd); i++; Para saber o número de argumentos que foram passados, usamos a propriedade Length do array args da seguinte forma: numargs = args.length; Quando na linha de comando são recebidos parâmetros numéricos, estes devem ser convertidos de string para o tipo numérico respectivo usando a classe Convert. Exemplo: Convert.ToInt32(varString) Variáveis Em C#, todas as variáveis são declaradas dentro do escopo de uma classe e podem ser dos seguintes tipos: Locais: são declaradas no escopo de um método, indexador ou evento e não possuem modificadores de acesso. A sua declaração se limita ao tipo seguido do identificador da variável. Atributos de uma classe ou campos da classe: a variável é declarada como membro de uma classe. A declaração deve ser efetuada como se segue: [Modificador de acesso] [tipo atributo] <tipo da variável> <identificador> 10

Exemplo: public class App public int varint; static void Main( ) int varlocal; Tabela de tipos por valor inclusos em C#: C# Type Valores possíveis de se armazenar bool Verdadeiro ou Falso (Valores booleanos) byte 0 a 255 (8 bits) sbyte -128 a 127 (8 bits) char Um caractere (16 bits) decimal ±1.0 10 28 a ±7.9 1028 (128 bits) double ±5.0 10 324 a ±1.7 10308 (64 bits) float ±1.5 10 45 a ±3.4 1038 (32 bits) int -2,147,483,648 a 2,147,483,647 (32 bits) uint 0 a 4,294,967,295 (32 bits) long 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits) ulong 0 a 18,446,744,073,709,551,615 (64 bits) object Por ser o tipo base de todos os outros tipos, pode armazenar qualquer tipo. short -32,768 a 32,767 (16 bits) ushort 0 a 65,535 (16 bits) string Sequência de caracteres (16 bits por caractere) 11