Você está na página 1de 13

Linguagens de Programação

2009/2010

Variáveis, tipos de dados e


expressões em C#

LP 2009/20010
ajtavares@ipca.pt

Agenda:
 Variáveis e memória
 Rigidez de tipos
 Constantes
 Tipos de dados primitivos
 Tipo de dados String
 Interatividade
 Expressões e Operadores
 Expressões de controlo de fluxo
 Expressões condicionais
 Expressões de selecção de alternativa
 Expressões de repetição
 Aninhamento de expressões de controlo de fluxo
 Exemplos
LP 2009/20010
2
ajtavares@ipca.pt

1
1- Variáveis e Memória
 Uma variável é uma área de memória que armazena valores de um
determinado tipo – é identificada por um nome e tem um tipo

 Operações que podem ser efectuadas sobre variáveis


 Utilização do seu valor ( x + 1 )
 Atribuição de um valor novo ( x = 5)

 O tipo da variável indica os valores que esta pode conter e as


operações em que pode participar

 C# é uma linguagem fortemente tipada


 todas as variáveis têm obrigatoriamente um tipo
 Os argumentos das operações também têm obrigatoriamente um tipo

LP 2009/20010
3
ajtavares@ipca.pt

1- Variáveis e Memória
Declaração de variável:
tipoDaVariavel nomeDaVariavel = valorInicial;
tipoDaVariavel nomeDaVariavel;

Exemplos: int contador = 10;


char letra;

 Os valores (dados) que uma variável contém ao longo da sua


existência são de um só tipo
 A declaração de uma variável tem a indicação do tipo de dados que
vai conter
 Se atribuir à variável um valor que não pertence ao tipo especificado
é obtido um erro de compilação

LP 2009/20010
4
ajtavares@ipca.pt

2
1- Variáveis e Memória
Operação de atribuição ( = )
variável = expressão;

Exemplos: contador = 0;
letra = ‘a’;
contador = contador + 10;

 Num dado instante uma variável apenas tem um valor


 A operação de atribuição altera o conteúdo da variável para um novo
valor. O valor anteriormente contido na variável é perdido

LP 2009/20010
5
ajtavares@ipca.pt

2- Constantes
Operação de atribuição ( = )
const tipoDaConstante nomeDaConstante = valor;

Exemplos: const double iva = 0.17;


const letra = ‘a’;
const int dezena = 10;

 Igual a uma variável mas o seu conteúdo não pode ser alterado
através da operação de atribuição

LP 2009/20010
6
ajtavares@ipca.pt

3
3- Tipos de dados Primitivos
Tipo Intervalo Tamanho
sbyte -128 to 127 Assinado inteiro de 8 bits

byte 0 a 255 Inteiro de 8 bits sem sinal

char U + 0000 para FFFF + U Caracter Unicode de 16 bits

short -32,768 to 32,767 Assinado inteiro de 16 bits

ushort 0 a 65.535 Inteiro de 16 bits sem sinal

int -2,147,483,648 to 2,147,483,647 Assinado inteiro de 32 bits

uint 0 a 4.294.967.295 Inteiro de 32 bits sem sinal


-9,223,372,036,854,775,808 to
long Assinado inteiro de 64 bits
9,223,372,036,854,775,807
ulong 0 a 18.446.744.073.709.551.615 Inteiro de 64 bits sem sinal

float ±1.5e−45 para ±3.4e38 7 dígitos

double ±5.0e−324 para ±1.7e308 15 e 16 dígitos

bool true ou false

decimal ±1.0 × 10−28 para ±7.9 × 1028 dígitos significativos 28-29

LP 2009/20010
7
ajtavares@ipca.pt

3- Tipos de dados Primitivos


Tipo Valor padrão Exemplos
sbyte 0 sbyte sByte1 = 127;

byte 0 byte x = 10, y = 20, max=255;

char ‘\0’ char letra = ‘b’, cr = ‘\n’;

short 0 short x = 32767;

ushort 0 ushort myShort = 65535;

int 0 int i = 123;

uint 0 uint myUint = 4294967290;

long 0L long long1 = 4294967296;

ulong 0

float 0.0F float x = 3.5f;

double 0.0D double valor = 0.5;

bool false

decimal 0.0M decimal myMoney = 300.5m;

LP 2009/20010
8
ajtavares@ipca.pt

4
4- Tipo de dados String
String: sequência de caracteres
string nomeVar;

Exemplos: string nomeVar = “Isto e uma string”;


string outraVar = “Outra string...?”;
nomeVar = “Inicio\tFim\n Nova linha”;
//experimentar esta

LP 2009/20010
9
ajtavares@ipca.pt

5- Interactividade
Leitura de valores através da consola
 O resultado da operação é sempre uma string que terá de ser
convertida para posterior utilização

string linha = Console.ReadLine();


char letra = Console.Read();

int x = Int32.Parse(linha);
int y = Int.Parse(linha); //errado não existe Int
int z = int.Parse(linha);
int w = int.Parse(Console.ReadLine());

string nome = “Tavares” + linha; // concatenação de strings

LP 2009/20010
10
ajtavares@ipca.pt

5
5- Interactividade
Escrita de valores para a consola
 O valor parâmetro terá de ser sempre uma string ….

string linha = Console.ReadLine();


Console.WriteLine(linha);

int x = 10;
string nome = “Tavares” + linha; // concatenação de strings
Console.WriteLine(nome);
Console.WriteLine(“Isto é um numero…” + x);

Console.Write(“primeiro={0} segundo={1}”, x, nome);


Console.Write(“primeiro=“ + x + ”segundo=”, nome);

LP 2009/20010
11
ajtavares@ipca.pt

5- Expressões e Operadores
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

 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,
caso exista empate, elas são realizadas da esquerda para a direita.

 Parênteses são utilizados para alterar a ordem de cálculo das


operações - (a+b)*c é diferente de a+(b*c)

LP 2009/20010
12
ajtavares@ipca.pt

6
5- Expressões e Operadores
Exemplos:
 6/2/3 é calculado como (6/2)/3
neste caso a associatividade é à esquerda

LP 2009/20010
13
ajtavares@ipca.pt

5- Expressões e Operadores
Principais Operadores em ordem de precedência:

LP 2009/20010
14
ajtavares@ipca.pt

7
5- Expressões e Operadores
Operadores de atribuição combinados:
 O operador de atribuição pode ser combinado com outros operadores
aritméticos
 Estes operadores têm associatividade à direita

Operador Significado
= Atribuição simples
+= Atribuição com adição
-= Atribuição com subtração
*= Atribuição c/ multiplicação
/= Atribuição c/ divisão
%= Atribuição do resto

Testar Variantes: =+ =-

LP 2009/20010
15
ajtavares@ipca.pt

5- Expressões e Operadores
Operadores relacionais
 Comparação entre valores do mesmo tipo;
 O resultado será sempre do tipo lógico (true,false);
 têm menor prioridade que os operadores aritméticos

Operador Significado Exemplos


> Maior que a>b, 4>3, c>3
< Menor que 2*a>b*2
!= Diferente de a+b!=c ou (a+b)!=c
== Igual a a==0
<= Menor ou igual a b*a<=0
>= Maior ou igual a a>=b

LP 2009/20010
16
ajtavares@ipca.pt

8
5- Expressões e Operadores
Operadores lógicos
 Utilizados no processo de tomada de decisão e controles de repetição
 O resultado será sempre do tipo lógico (true,false);
 têm menor prioridade que os operadores aritméticos

Operador Significado

&& conjunção (E) de proposições

|| disjunção (OU) de proposições

! negação (NOT) de proposições

^ negação (NOT) de proposições

 Proposição é qualquer elemento que possa produzir um valor lógico


(variável lógica, expressão relacional ou expressão lógica);

LP 2009/20010
17
ajtavares@ipca.pt

6- Controlo de Fluxo
Expressões de controlo de fluxo
 Permitem alterar o fluxo de execução de um programa

 O fluxo de execução é por defeito sequencial

Tipos:
 Expressões condicionais
 Expressões de selecção de alternativa
 Expressões de repetição com base numa condição
 Expressões de repetição com base num contador
 Quebra de Ciclos

LP 2009/20010
18
ajtavares@ipca.pt

9
6- Controlo de Fluxo
Expressões condicionais (IF-THEN)
 o bloco de instruções (ou a instrução) é executada se a condição
lógica for verdadeira

if (<condição>)
{
<bloco de instruções>
}

if (<condição>) <instrução>;

LP 2009/20010
19
ajtavares@ipca.pt

6- Controlo de Fluxo
Expressões condicionais (IF-THEN-ELSE)
 se condição lógica for verdadeira é executado o primeiro bloco de
instruções (ou a instrução) senão é executado o segundo bloco

if (<condição>)
{
<primeiro bloco de instruções>
}
else
{
<segundo bloco de instruções>
}

if (<condição>) <instrução>; else <segunda instrução>;

LP 2009/20010
20
ajtavares@ipca.pt

10
6- Controlo de Fluxo
Expressões de selecção de alternativa (switch)
 É executado um bloco de instruções de acordo com o valor de uma
variável
switch (<variável>)
{
case <valor>:
<bloco de instruções>
break;

case <valor>:
<bloco de instruções>
break;

default:
<bloco de instruções>
break;
}

LP 2009/20010
21
ajtavares@ipca.pt

6- Controlo de Fluxo
Expressões de repetição com base numa condição
 É executado um bloco de instruções de acordo com o valor de uma
variável
 Primeiro é testada a condição, só se esta for verdadeira o bloco de
instruções é executado

while (<condição>)
{
<bloco de instruções>
}

IMP: primeiro testa e depois executa

LP 2009/20010
22
ajtavares@ipca.pt

11
6- Controlo de Fluxo
Expressões de repetição com base numa condição
 É executado um bloco de instruções de acordo com o valor de uma
variável
 Primeiro é executado o bloco de instruções, depois é testada a
condição, se esta for verdadeira o bloco volta a ser repetido

do IMP: primeiro executa e depois testa


{
<bloco de instruções>
}
while (<condição>);

LP 2009/20010
23
ajtavares@ipca.pt

6- Controlo de Fluxo
Expressões de repetição com base num contador
 É executado um bloco de instruções de acordo com o incremento de
uma variável enquanto uma condição for verdadeira
 Primeiro são executadas as operações sobre a variável de controlo, e
só depois é executado o bloco de instruções

for (<inicialização>; <condição>; <actualização>;)


{
<bloco de instruções>
}

LP 2009/20010
24
ajtavares@ipca.pt

12
6- Controlo de Fluxo
Quebra de ciclos - break
 Em qualquer bloco de instruções numa expressão de repetição o
comando break termina o ciclo
 O seu uso leva a uma Programação pouco estruturada

for (<inicialização>; <condição>; <actualização>;)


{
<bloco de instruções>
if(<outra_condicao>) break;
}
IMP: proibido usar com excepção do switch

LP 2009/20010
25
ajtavares@ipca.pt

6- Controlo de Fluxo
Aninhamento de estruturas de controlo de fluxo
 Uma expressão de repetição é no seu todo um comando como
outro qualquer
 Pode fazer parte de um qualquer bloco de instruções
 As combinações podem ser as mais variadas, tendo apenas de
respeitar este principio de que esta expressão é um comando como
outro qualquer

for (<inicia_var1>; <condição1>; <actualiza_var1>;)


{
for (<inicia_var2>; <condição2>; <actualiza_var2>;)
{
<bloco de instruções>
}
}

LP 2009/20010
26
ajtavares@ipca.pt

13

Você também pode gostar