Pesquisar no blog:

quarta-feira, 14 de novembro de 2012

Linguagem C: Tipos de dados

TIPO
BYTES
ESCALA
char
1
-128 a 127
int
2
-32768 a 32767
float
4
3.4E-38 a 3.4E+38
double
8
1.7E-308 a 1.7E+308
void
0
0
long / long int
4
-2.147.483.647 a 2.147.483.647
unsigned char
1
0 a 255
unsigned int
2
0 a 65535
unsigned long
4
0 a 4.294.967.294

char: variável para armazenar caractere (letra).Ela pode ser considerada um tipo numérico, pois os caracteres são reconhecidos por numerações referente a tabela ASCII.
Exemplo:
main()
{
char ch1 = 'G', ch2 = 'H', ch3 = 'W';
printf("Minhas iniciais sao: %c%c%c", ch1, ch2, ch3);
getch();
}
Em C para imprimir as variáveis do tipo "char" devemos utilizar o "%c" (caractere). Neste caso, foi adicionado 3 "espaços" para imprimir as variáveis "%c%c%c". Esses "espaços" podem ser colocados em qualquer parte do texto. Eles serão buscados na ordem em que digitamos as variáveis depois do texto, ou seja, primeiro é impresso o ch1, em segundo o ch2 e por ultimo o ch3.

int: armazena valores numéricos do tipo inteiro.
Exemplo:
main()
{
int ano = 1988, idade = 23;
printf("Minha idade e' %d. Eu nasci no ano %d.", idade, ano);
getch();
}
Para tipos inteiros usamos o "%d" (Decimal) para reservar sua posição.

float: armazena valores numéricos do tipo fracionário (real).
Exemplo:
main()
{
float peso = 75.530, altura = 1.72;
printf("Meu pego e' %.3f. E minha altura e' %.2f.", peso, altura);
getch();
}
Para tipos de pontos flutuante usamos o "%f" (float/flutuante) para reservar sua posição.

double: armazena valores numéricos do tipo fracionário (real). A diferença de double para float é o seu espaço reservado em memória (4 bytes), que permite a entrada de números com alta precição.
Exemplo:
main()
{
double t = 0.041792653589361;
printf("t =  %.15lf", t);
getch();
}
Para tipos de dupla precisão usamos o "%lf" (long float) para reservar sua posição.

void: define um tipo “vazio”. Parece estranho e talvez difícil de imaginar seu uso. Mais em C um bom exemplo é seu uso para criar funções que não retornam valores.
Exemplo:
void sair() //função para sair ou voltar para tela inicial.
{
    printf("\n\nPara sair pressione ESC e para voltar pressione qualquer tecla.\n");
    char sair = getch();
    if(sair != 27) //se usuário não precionar ESC o programa é chamado novamente.
        main();
    return 0;
}

main()
{
printf("Essa mensagem sera' repetida se voce nao pressionar ESC");
sair();
}

long / long int: armazena valores numéricos do tipo inteiro. A diferença de long int para int é o seu espaço reservado em memória (4 bytes), que permite a entrada de números  muito maiores como visto na escala da tabela acima.
Exemplo:
main()
{
long int t = 2035893612;
printf("t =  %ld", t);
getch();
}

unsigned char: tem o mesmo tamanho do tipo char, mais não permite armazenar valores negativos.

unsigned int: tem o mesmo tamanho do tipo int, mais não permite armazenar valores negativos.

unsigned long: tem o mesmo tamanho do tipo long, mais não permite armazenar valores negativos.


segunda-feira, 17 de setembro de 2012

Estrutura do código em Linguagem de programação C

C é uma linguagem do tipo estruturada. Isso quer dizer que, normalmente, sua leitura é feita de forma linear.
Segundo o site http://www.tiobe.com C é atualmente (setembro de 2012) a linguagem de programação mais utilizada mundialmente, (isso não quer dizer que é a que tem mais mercado de trabalho ou que seja a melhor).
C é já sofreu bastante implementações e foi utilizada como base para várias outras linguagens. Entre elas:
  • C++
  • JAVA
  • C# (C Sharp)
Para entender a estrutura básica para um programa em C vamos utilizar um programa simples
main()
{
printf("Hello world!");
getch();
}
Para compilar o código foi utilizado o Dev-C++ da Bloodshed Software (http://www.bloodshed.net/devcpp.html, Acesso em 17/09/2012).

Vamos a estrutura:
  • main()

Esta é a forma mais simples de se abrir uma função. E por regra, a função principal deve ser chamada de main.

  • { }

Todo corpo da função deve ficar entre as chaves. Ela delimita o inicio ({) e o fim (}) da função (programa).

  • printf("Hello world!");

printf é a principal função de saída do C. Todo o texto que deseja imprimir na tela deve ficar entre aspas, é possível ainda imprimir variáveis com o printf. Tanto os texto quanto as variáveis de saída devem ficar dentro dos parenteses.

  • getch();

É uma função simples para esperar uma tecla do usuário. Só foi utilizada neste caso para que o programa fique parado. Sem ela o programa apareceria e fecharia sozinho.

Mais detalhes sobre o "main" e seus argumentos:

Existem várias outras formas de se abrir a função main, por exemplo:
  • int main()
  • int main(void)
Porém o mais completo é:
int main(int argc, char *argv[])
Observe que entre os parenteses da função main foram declaradas duas variáveis. A variável argc do tipo inteiro e a variável argv do tipo caracter (o simbolo de asterisco na frente da variável indica que ela é uma variável ponteiro).
argc é de "Argument Counter" e serve para contar quantos argumentos o usuário passou para o programa.
argv: é de "Argumente Vector" e serve para armazenar os argumentos digitados pelo usuário.
Para ficar mais claro o uso deles faça o seguinte teste:
int main(int argc, char *argv[])
{
   int i;
   /* apresenta todos argumentos a partir de argv[0] */
   for(i = 0; i <= argc; i++)
      {
      printf("%s \n\n", argv[i]);
      }
   /* imprimi a quantidade de argumentos */
   printf("\nNumero de argumentos: %d",argc); 
   //O número de argumentos será 4, pois o argc[0] armazena o nome do programa.
   getch();
   return 0;
}
Salvar como argumento.c e compilar o programa acima e executa-lo através da linha de comando (MS-DOS no windows).
Exemplo:

Repare que o meu programa foi armazenado em C:\, por isso utilizei o comando cd C:\ antes de executa-lo.
Logo após executei o meu programa "argumentos.exe" e na sua frente coloquei alguns argumento apenas para teste, o resultado foi:
argumentos.exe

George

aaa

bbb

ccc

<null>

O primeiro argumento (argv[0]) sempre será o nome do programa.
O 4 posteriores (George, aaa, bbb, ccc) foram digitados pelo usuário.
E o ultimo é referente ao caractere "/0" (null ou nulo). Toda matriz de caracteres em C termina com ele.

sexta-feira, 24 de agosto de 2012

Tabela de precedência de Operadores JAVA

Tipos de operadores


•Operadores lógicos
•Operadores relacionais (comparação)
•Operadores aritméticos
•Operador de incremento e decremento
•Operadores aritméticos de atribuição
•Operadores unários
•Operadores de nível de bit

Significado de Precedência: 
s.f. Antecedência no tempo, na ordem ou no lugar. Direito de preceder; preferência.



Tabela de precedência – Operadores JAVA
+ - ~ ! ++ -- Operadores unários, Operador lógico (NOT) e Operadores de incremento e decremento.
* / % Multiplicação, divisão e módulo (aritméticos).
+ - Adição e subtração (aritméticos).
<< >> Deslocamento a esquerda e deslocamento a direita.
< <= > >= Menor que, menor igual a, maior que e maior igual a (relacionais).
== != Igual a e diferente de.
& Operador lógico E (AND) bit a bit.
^ Ou exclusivo (Exclusive OR) XOR.
| Operador lógico OU (OR) bit a bit.
&& E (AND) (Lógico).
|| OU (OR) (Lógico).
= += -= *= /= %= Aritméticos de atribuição.


Lógicos e relacionais:

São utilizados em testes e condições
Lógicos: && (AND)
|| (OR)
! (NOT)
^ (EXCLUSIVE OR)
Relacionais: == (igual a)
!= (diferente de)
< (menor que)
> (maior que)
<= (menor igual a)
>= (maior igual a)



Exemplo de uso 1:
((a >= b) || (c >= b))
Leitura:
A maior igual a b OU c maior igual a b

Exemplo de uso 2:
((a == b) && (c != d))
Leitura:
a igual a b E c diferente de d


Aritméticos:


São utilizados em testes e condições

Aritméticos:
+ (Adição)
-  (Subtração)
*  (Multiplicação)
/  (Divisão)
% (módulo) 




Exemplo de uso 1:
3 + 5 * 2 – 1
Resultado: 12

Exemplo de uso 2:
Exemplo de uso 2:
10 – 2 *3 + 10 % 3
Resultado: 5

Incremento e decremento:

São utilizados para incrementar 1 ou decrementar 1 (um).

Incremento e decremento
++ (incremento)
--  (decremento)

Exemplo de uso:
a++ (valor de a incrementado em 1)
b-- (valor de b decrementado em 1)



Considerando o valor de a = 2 e b = 2:
a++ = 3
b-- = 1

Podemos ainda usar esses operadores a frente da variável:
++a
Nesse caso a variável seria incrementada logo no primeiro uso.

OBS: os operadores de incremento e decremento só podem ser utilizados com variáveis.


Aritméticos de atribuição:

São utilizados para escrever um código mais compacto.

Aritméticos de atribuição
=
+=
-=
*=
/=
%=

Exemplo de uso:
a +=  5
Equivale a:
a = a + 5
Para os outros operadores segue a mesma regra



Deve-se tomar cuidado com o uso desse operador, pois sua precedência é baixa.
Por exemplo:
a *= 2 + 1
Equivale a:
a = a * (2 + 1)


Referências bibliográficas:SANTOS, Rafael. Campus - Introdução à Programação Orientada a Objetos Usando Java 
González ,Victorino Blanco. http://www.criarweb.com/artigos/643.php. Acesso em: 18/08/2012