• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

[tutorial] Linguagem C estruturada - Um Primeiro Programa

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Linguagem C estruturada - Um Primeiro Programa


Para começar a programar, deve-se testar códigos e alterá-los de forma a compreender seu funcionamento e conseqüentemente aprender a lógica. Este primeiro código que vou mostrar é um simples programa que solicita ao usuário digitar números na tela e o programa vai exibi-lo sequencialmente conforme foi digitado.
Segue o código, copie-o para seu compilador e teste-o, altere-o conforme a necessidade e vá verificando que é possível com este simples programa criar outros códigos mais complexos.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int v[4], i, cont1, cont2, cont3;

for(i=0; i<4; i++)
{
printf("Digite um valor: ");
scanf("%i",&v);

}

printf("\nSequencia Digitada: ");
for(i=0; i<4; i++) printf("%i ", v);

cont1 = cont2 = cont3 = 0;

printf("\n\nSequencia ao contrario: ");
for(i=3; i>=0; i--){
printf("%i", v);
if(v>=0)
if(v%2==0) cont1++;
else cont3++;
if(v<0) cont2++;
}

system("pause");
}
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Linguagem C estruturada, parte 2 - Sistema Numérico Binário

O sistema binário é um sistema de numeração posicional em que todas as quantidades se representam utilizando como base o número dois, com o que se dispõe das cifras: zero e um (0 e 1).

Os com****dores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural é o sistema binário (aceso, apagado). Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booleana. Em com****ção, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits é chamado de nibble.

O sistema binário é base para a Álgebra booleana que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda eletrônica digital e com****ção está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos eletrônicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de com****dores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc) sob este formato.

Operações com números binários

Binários a decimais

Dado um número N, binário, para expressá-lo em decimal, deve-se escrever cada número que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. Uma posição à esquerda da vírgula representa uma potência positiva e à direita uma potência negativa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado.

Exemplo:

1011

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11

Portanto, 1011 é 11 em decimal.

Decimais em binários

Decimais Inteiros em binários

Dado um número decimal inteiro, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando o resto da divisão inteira:

12 (decimal) → binário

12 / 2 = 6 + 0

6 / 2 = 3 + 0

3 / 2 = 1 + 1

1 / 2 = 0 + 1

12 decimal = 1100 binário

Obs: Os números devem ser lidos de baixo para cima: 1100 é 12 em binário.

Decimais Fracionários em binários

Exemplo:

0.562510

Multiplica-se a parte fracionária por 2 sucessivamente, até que ela seja igual a zero ou cheguemos na precisão desejada.

0.5625 x 2 = 1 + 0.1250

0.1250 x 2 = 0 + 0.2500

0.2500 x 2 = 0 + 0.5000

0.5000 x 2 = 1 + 0.0000 ← Nesta linha a fração zerou, finalizamos a conversão.

Anotando a seqüência na ordem de cima para baixo, temos:

1001

Portanto 0.562510 = 0.10012

Para ilustrar este processo, a fração decimal 0.90625 é convertida no seu equivalente binário.

O processo de multiplicação continua até que zera, ou a precisão desejada é obtida. Os inteiros são então coletados.




multiplicações
inteiro


0

0,90625 X 2 = 1,8125 = 0,8125
1

0,81250 X 2 = 1,6250 = 0,6250
1

0,62500 X 2 = 1,2500 = 0,2500
1

0,25000 X 2 = 0,5000 = 0,5000
0

0,50000 X 2 = 1,0000 = 1
1


O número 0.111012 = 0.9062510.

O processo inicia com um zero seguido dos resultados dos números multiplicados.

Exemplo de inteiro com fracionário:

14,37510
Operações
resto
Resultados parciais

14 ÷ 2 = 7
0


7 ÷ 2 = 3
1


3 ÷ 2 = 1
1


1 ÷ 2 = 0
1
1410 = 11102


inteiro


0,375 X 2 = 0,750
0


0,750 X 2 = 1,500
1


0,500 X 2 = 1,000
1
0,37510 = 0,0112

Resultado geral
14,37510 = 1110.0112

No entanto é mais comum nunca zerarmos a fração seguinte da multiplicação. Neste caso, devemos parar as multiplicações quando atingirmos uma certa precisão desejada.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Linguagem C estruturada, parte 3 - Sistema Numérico Hexadecimal

O hexadecimal é um outro sistema numérico que é normalmente usado com microprocessadores. Ele permite fácil conversão ao sistema numérico binário. Devido a isso, e também devido ao fato que a notação hexadecimal simplifica a manipulação de dados. Tal qual o nome diz, hexadecimal tem base 1610. Ele usa os dígitos 0 até 9 e as letras A até F.

As letras são usadas pois é necessário representar 1610 valores diferentes com um simples dígito para cada valor. Portanto, as letras de A até F são usadas para representar os valores numéricos de 1010 até 1510.

Os números iniciais entre os sistemas decimal e hexadecimal são de valores iguais, 010 = 016 ; 310 = 316 ; 910 = 916.

Para números maiores que 9, as relações seguintes existem:
1010 = A16 ; 1110 = B16 ; 1210 = C16 ; 1310 = D16 ; 1410 = E16 e 1510 = F16.

Como nos sistemas numéricos anteriores, cada posição dos dígitos de um número hexadecimal tem um peso posicional o qual determina a magnitude do número. O peso de cada posição é determinado por alguma potência do número base do sistema (neste caso, 16). O valor total do número pode ser calculado considerando os dígitos específicos e os pesos de suas posições. (a tabela mostra uma lista resumida das potências de 16). Por exemplo, o número hexadecimal E5D7,A3 pode ser escrito com notação posicional como se segue:

(E x 163) + (5 x 162) + (D x 161) + (7 x 160) + (A x 16-1) +

+ (3 x 16-2)

O valor decimal do número E5D7,A3 é determinado pela multiplicação de cada dígito pelo seu valor posicional e pela soma dos resultados.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Linguagem C estruturada, parte 1 - Sistema Numérico Decimal

O Sistema numérico ao qual estamos acostumados é o sistema numérico decimal. Este sistema foi originalmente inventado pelos matemáticos hindus aproximadamente em 400 D.C. Os árabes começaram a usar o sistema em 800 D.C. aproximadamente, quando ficou conhecido como o Sistema Numérico Arábico. Após ele ter sido introduzido na comunidade da Europa por volta de 1200 D.C., o sistema logo adquiriu o título de "sistema numérico decimal". Uma característica particular de um sistema numérico é a sua base.

A base indica o número de caracteres ou dígitos usados para representar quantidades naquele sistema numérico. O sistema numérico decimal tem base dez pois são usados os dez dígitos de 0 até 9 para representar quantidades. Quando um sistema numérico é usado onde à base não é conhecida, um índice é usado para mostrar a base.

Notação Posicional

O sistema numérico decimal é posicional ou ponderado. Isto significa que cada posição dos dígitos num número possui um peso particular o qual determina a magnitude daquele número.

Cada posição tem um peso característico determinado pela potenciação da base do sistema numérico, neste caso o número dez. Os pesos posicionais são:

100(unidades), 101(dezenas), 102(centenas), 10 3(milhar) ; etc.

Potências de 10

10 0 = 1

10 1 = 10

10 2 = 100

10 3 = 1.000

10 4 = 10.000

105 =100.000

106 =1.000.000

107 = 10.000.000

108 =100.000.000

109 =1.000.000.000

Nós determinamos o valor total de um número considerando os dígitos específicos e os pesos de suas posições. Por exemplo, o número decimal 5412 está escrito na notação habitual. Este número também pode ser escrito na notação posicional.

Para determinar o valor de um número devemos multiplicar cada dígito pelo peso de sua posição e somar os resultados.

Notação Posicional de um Número 5412 na Base 10

( 5 x 103) + ( 4 x 102) + ( 1 x 101) + ( 2 x 100 )

( 5 x 1000 ) +( 4 x 100 ) + ( 1 x 10 ) + ( 2 x 1 )

5.000 + 400 + 1 + 2 = 541210

Desenvolva estes números:

a) 9875

b)64587

c)352162

d)4511256

e)632154876

Números Fracionários

Até agora, apenas números inteiros ou números completos foram discutidos. Um inteiro é qualquer um dos números naturais, os negativos destes números, ou zero (ou seja, 0, 1, 4, 7, etc...).

Assim, um inteiro representa um número completo. Mas, é geralmente necessário expressar quantidades em termos de partes fracionárias de um número completo.

Frações decimais são números cujas posições tem pesos que são potências negativas de dez tais como:

10-1 = 1/10 = 0,1;

10-2 = 1/100 = 0,01, etc...
Potências Negativas de 10

10-1 = 0,1

10-2 = 0,01

10-3 = 0,001

10-4 = 0,0001

10-5 = 0,00001

10-6 = 0,000001

10-7 =0,0000001

10-8 =0,00000001

10-9 =0,000000001

Um ponto base (ponto decimal para números na base dez) separa a parte inteira da parte fracionária de um número. A parte inteira fica à esquerda do ponto decimal e tem os pesos posicionais de unidades, dezenas, centenas, etc. A parte fracionária do número fica à direita do ponto decimal e tem os pesos posicionais de décimos, centésimos, milésimos, etc. Para exemplificar, o número decimal 365,92 pode ser escrito com notação posicional como mostrado abaixo.

Notação Posicional de um Número 365,92 na Base 10

( 3 x 102) + ( 6 x 101) + ( 5 x 100) + ( 9 x 10-1 )( 2 x 10-2 )

( 3 x 100 ) +( 6 x 10 ) +( 5 x 1 ) +( 9 x 1/10 )( 2 x 1/100 )

300 + 60 + 5 + 0,9 + 0,02 = 365,9210

Neste exemplo, o dígito mais a esquerda (3x102) é o dígito mais significativo ou MSD ("most significant digit") pois, ele tem o maior peso na determinação do valor do número. O dígito mais a direita, chamado o dígito menos significativo ou LSD ("least significant digit") tem o menor peso na determinação do valor do número. Portanto, conforme o nome diz, o MSD é o dígito que provocará a maior variação quando seu valor for alterado. O LSD tem o menor efeito no valor total do número.

Desenvolva estes números:

a) 9875,65

b)64587,45

c)352162,845

d)4511256,652

e)632154876,32564
 
Topo