• Nenhum resultado encontrado

CCT0416 PROGRAMAÇÃO I

N/A
N/A
Protected

Academic year: 2021

Share "CCT0416 PROGRAMAÇÃO I"

Copied!
37
0
0

Texto

(1)

CCT0416

PROGRAMAÇÃO I

Prof. Henrique Mota

(2)

Ementa

• Paradigma de programação orientado a objeto; • Estruturação de programas com orientação a

objetos; • Exceções; • Coleções.

(3)

Objetivos

Geral

Aplicar o paradigma de programação orientado a objeto aplicado à linguagem C#.

Específicos

Aplicar os conceitos de orientação a objetos na criação e análise de programas em C#;

Tratar erros através da captura de exceções; Criar listas e realizar manipulações em listas.

(4)

Conteúdo

Unidade I - Introdução à linguagem de programação

• Características da linguagem C# • Plataforma .NET (.NET Core) • Ambiente de programação

• Tipos de dados

• Constantes e variáveis • Operadores e expressões

• Comandos de controle de fluxo

• Entrada e Saída de dados via console • Conversão de tipos

(5)

Conteúdo

Unidade II - Conceitos de orientação a objetos

• Classes e objetos (atributos, métodos,

encapsulamento, sobrecarga de métodos, métodos e atributos estáticos, classes pré-definidas: Math e

String, vetor, relacionamento entre objetos) • Herança e polimorfismo

• Classe abstrata • Interface

(6)

Conteúdo

Unidade III – Tratamento de exceções

• Hierarquia de classes

• Como capturar exceções • Uso de throws e throw

(7)

Conteúdo

Unidade IV – Coleções • Introdução • ArrayList • Classes Wrapper • Generics

(8)

Unidade I - Introdução a

linguagem de

programação

Características da linguagem C#; Plataforma .NET (.NET Core); Ambiente de programação; Tipos de dados; Constantes e variáveis; Operadores e expressões; Comandos de controle de fluxo; Entrada e Saída de dados via console; Conversão de tipos.

(9)

Características da linguagem C#

• Linguagem de programação simples, moderna, orientada a objeto e fortemente tipada.

• Tem suas raízes na família de linguagens C.

• Linguagem orientada a objeto, mas inclui ainda suporte para programação orientada a componentes.

• Possui vários recursos para construção de aplicativos robustos: coletor de lixo, tratamento de exceção, design

fortemente tipado, etc.

• Possui sistema de tipos unificado: todos os tipos,

incluindo tipos primitivos (int, double, etc.) herdam de um único tipo raiz (object).

(10)
(11)

Olá mundo

using System; class Hello {

static void Main() {

Console.WriteLine("Hello, World"); }

(12)

Olá mundo

• O programa “Olá mundo" é usado comumente para introduzir uma linguagem de programação.

• Os códigos em C# ficam em aquivos texto com a extensão “.cs”.

• O programa pode ser compilado usando a linha de comando: csc hello.cs

• Vai produzir um assembly executável chamado

hello.exe

• Importante: o comando csc compila para o Framework e talvez não esteja disponível em todas as plataformas.

(13)

Plataforma .NET

• .NET é uma plataforma de desenvolvimento de uso geral.

• Possui vários recursos importantes: suporte a várias linguagens, modelos de programação assíncronos e simultâneos, interoperabilidade nativa, etc.

• Um aplicativo .NET é desenvolvido para e é executado em uma ou mais implementações do .NET.

• Implementações do .NET incluem: .NET Framework, .NET Core e o Mono.

(14)

Implementações do .NET

Cada implementação do .NET inclui os seguintes componentes:

• Um ou mais runtimes: o CLR para o .NET Framework, o CoreCLR e o CoreRT para o .NET Core.

• Uma biblioteca de classes: biblioteca de classes base do NET Framework, biblioteca de classes base do .NET Core.

• Opcionalmente, uma ou mais estruturas de aplicativo: ASP.NET, Windows Forms e WPF (Windows Presentation Foundation) estão incluídos no .NET Framework.

• Opcionalmente, ferramentas de desenvolvimento.

Há quatro implementações principais de .NET: .NET

(15)

Implementações do .NET

• .NET Core: implementação multiplataforma, projetado para lidar com cargas de trabalho de servidor e na

nuvem em escala. Executado em ambiente Windows, no Linux e no macOS.

• .NET Framework: implementação original do .NET

desde 2002. Otimizado para a compilação de aplicativos para ambiente Windows.

• Mono: implementação do .NET usada quando

necessário um CLR pequeno. Impulsiona aplicativos Xamarin no Android, Mac, iOS, tvOS e watchOS.

• UWP: implementação do .NET usada para criar

aplicativos Windows modernos e sensíveis ao toque, bem como software para a IoT.

(16)

Runtime .NET

O Runtime é o ambiente de execução de um programa gerenciado.

• CLR (Common Language Runtime) para o .NET Framework

• Core Common Language Runtime (CoreCLR) para o .NET Core

• .NET Native para a Plataforma Universal do Windows • O Runtime Mono

(17)
(18)

O método principal

• Um aplicativo de console do C# deve conter um método de entrada (Main) por onde a aplicação inicia e termina.

• Local onde cria-se objetos e executa outros métodos.

• Método estático que reside dentro de uma classe ou um struct.

(19)

Formas de declaração do ”Main”

static void Main() { //... }

static int Main() { //... return 0; }

static void Main(string[] args) { //... }

(20)

Estrutura de um programa C#

• Programas C# podem consistir em um ou mais arquivos.

• Cada arquivo pode conter zero ou mais namespaces. • Um namespace pode conter tipos como: classes,

estruturas, interfaces, enumerações e delegados, além de outros namespaces.

(21)

Exemplo estruturas C#

// A skeleton of a C# program using System; namespace YourNamespace { class YourClass { } struct YourStruct { } interface IYourInterface { }

delegate int YourDelegate();

enum YourEnum { }

namespace YourNestedNamespace {

struct YourStruct { }

}

class YourMainClass {

static void Main(string[] args) {

//Your program starts here...

} } }

(22)

Tipos de dados e variáveis

• Existem dois tipos de tipos de dados em C #: tipos valor e tipos referência.

• Variáveis de tipos de valores contêm diretamente seus dados, e variáveis de tipos de referência

armazenam referências aos seus dados, sendo estes últimos conhecidos como objetos.

• Com os tipos de referência, é possível que duas variáveis façam referência ao mesmo objeto e,

portanto, possivel para operações em uma variável afetarem o objeto referenciado pela outra variável.

(23)

Tipos de dados e variáveis

• Os tipos valor são divididos em: tipos simples, enum, struct e tipos nuláveis. (stack)

• Os tipos referência são divididos em: classe, interface, matrizes e delegates. (heap)

(24)

Tipos de dados e variáveis

O compilador, de maneira geral, divide a memória em duas grandes áreas: a stack (uma área bem menor) e a heap (uma área bem maior).

(25)

Tipos de dados e variáveis

stack: forma otimizada para organizar dados na memória alocados em sequência e abandonados em sequência invertida a da entrada.

heap: organização de memória mais flexível que permite o uso de qualquer área lógica disponível.

(26)

Tipos de dados e variáveis

• Os tipos inteiros dão suporte a valores de 8 bits, 16 bits, 32 bits e 64 bits com ou sem sinal.

• Os dois tipos de pontos flutuantes, float e double, são representados usando os formatos IEC-60559 com 32 bits de precisão simples e 64 bits de

precisão dupla, respectivamente.

• O tipo decimal é um tipo de dados de 128 bits adequado para cálculos financeiros e monetários. • O tipo bool do C# é usado para representar valores

(27)

Categoria Descrição

Tipos Valor

Simple types

Signed integral: sbyte, short, int, long

Unsigned integral: byte, ushort, uint, ulong Unicode characters: char

IEEE floating point: float, double High-precision decimal: decimal Boolean: bool

Enum types User-defined types of the form enum E {...} Struct types User-defined types of the form struct S {...} Nullable types Extensions of all other value types with a

null value

Tipos

Referência

Class types

Ultimate base class of all other types: object Unicode strings: string

User-defined types of the form class C {...} Interface types User-defined types of the form interface I {...} Array types Single- and multi-dimensional, for example,

int[] and int[,]

(28)

Category Bits Type Range/Precision Signed integral 8 sbyte –128...127 16 short –32,768...32,767 32 int –2,147,483,648...2,147,483,647 64 long – 9,223,372,036,854,775,808...9,223,372, 036,854,775,807 Unsigned integral 8 byte 0...255 16 ushort 0...65,535 32 uint 0...4,294,967,295 64 ulong 0...18,446,744,073,709,551,615 Floating point 32 float 1.5 × 10−45 to 3.4 × 1038, 7-digit precision 64 double 5.0 × 10−324 to 1.7 × 10308, 15-digit precision Decimal 128 decimal 1.0 × 10−28 to 7.9 × 1028, 28-digit precision

(29)

Boxing e Unboxing

using System;

class BoxingExample {

static void Main() {

int i = 123;

object o = i; // Boxing

int j = (int)o; // Unboxing

} }

(30)

Conversão de tipos

A conversão de tipos, também conhecida como Type

Casting possui dois formatos:

• Conversão do tipo implícito: realizadas por C # de forma segura, ex: conversões de tipos inteiro

menores e maiores e conversões de classes derivadas para classes base.

• Conversão de tipo explícito: explicitamente

declaradas pelos usuários que usam as funções pré-definidas.

(31)

Conversão de tipos

static void Main(string[] args) {

double d = 5673.74;

int i;

// cast double to int.

i = (int)d;

Console.WriteLine(i); Console.ReadKey();

(32)

Conversão de tipos

ToBoolean ToByte ToChar ToDateTime ToDecimal ToDouble ToInt16 ToInt32 ToInt64 ToSbyte ToSingle ToString ToType ToUInt16 ToUInt32 ToUInt64

(33)

Área do triângulo

class Rectangle

{

double length;

double width;

public void Acceptdetails() {

length = 4.5; width = 3.5; }

public double GetArea() {

return length * width; }

public void Display() {

Console.WriteLine("Length: {0}", length); Console.WriteLine("Width: {0}", width); Console.WriteLine("Area: {0}", GetArea()); }

(34)

Área do triângulo

static void Main(string[] args) {

Rectangle r = new Rectangle(); r.Acceptdetails();

r.Display();

Console.ReadKey(); }

(35)

Regras para criação de classes

• Deve começar com uma letra que pode ser seguida por uma sequência de letras, dígitos (0 - 9) ou

sublinhado.

• O primeiro caractere de um identificador não pode ser um dígito.

• Não deve conter nenhum espaço ou símbolo

incorporado, como: (? - +! @ #% ^ & * () [] {}. ; :

"'/ e \).

• Um sublinhado (_) pode ser usado. • Não pode ser uma palavra-chave C #.

(36)

abstract as base bool

break byte case catch

char checked class const

continue decimal default delegate

do double else enum

event explicit extern false

finally fixed float for

foreach goto if implicit

in in (generics) int interface

internal is lock long

namespace new null object

operator out out (generics) override

params private protected public

readonly ref return sbyte

sealed short sizeof stackalloc

static string struct switch

this throw true try

typeof uint ulong unchecked

unsafe ushort using using static

(37)

Exercício

a) Crie 3 variáveis com as idades dos seus melhores amigos e/ou familiares, em seguida pegue essas 3 idades e calcule a média delas. Exiba o resultado em uma sáida de console.

Referências

Documentos relacionados

Dragagem de aprofundamento da cota de 11,0/12,0m para 14,0m (canal interno/externo) com alargamento do canal de acesso para adequar as instalações do porto de Itajaí ao porte da

Nomeadamente ficam obrigados a exibir cartão identificativo (credenciais), fornecido pela Organização, sempre que circulem no recinto, ou pretendam aceder ao

Os autores verificaram a existência de plantas, dentro de cada população, mais tolerantes ao calor que a cultivar ‘Regina 71’ (resistente ao florescimento

Na análise dos processos de acreditação de três organismos estrangeiros (OAA, ENAC e ANAB), comparando-os com o do INMETRO, verificou-se que, nas quatro etapas principais do processo

No âmbito do Programa de Expansão e Desenvolvimento da Educação Pré-Escolar, para o ano lectivo 2005-2006, o Estado compromete-se a apoiar financeiramente as instituições em que

Através de uma análise mais detalhada de hidrogramas da microbacia A foi verificado que o escoamento direto tem duração de 12 a 15 horas, para chuvas inferiores a 30 minutos

Ao longo de nossa pesquisa, tivemos inicialmente como objetivo realizar um mapeamento da produção nacional de artigos que envolvessem a temática do

Resumindo: pode-se afirmar que a Danone, nesses anúncios, para driblar o possível entendimento de que ela continuaria a reproduzir o discurso que foi proibido pela