sábado, 30 de janeiro de 2010

Leitura e escrita de valores.

Continuando a ultima parte, vamos a seguinte situação.
No programa da sorveteria que fizemos, nós atribuimos valores para a quantidade e o valor de cada sorvete. Porém, e se o usuário quisesse indicar esses valores e o programador não o soubesse? Isso seria um problema, porém, vamos conhecer a função que efetua a leitura de valores através do teclado.

Essa função é a função scanf.

suponhamos que tenhamos criado a variável a. como nesse ex:

int a;

e agora o usuário (e não o programador) queira atribuir um valor a essa variavel "a".
Para fazermos isso, utilizaremos a função scanf que funciona desse modo:

scanf("%d",&a);


obs importante: para usuários windows, quando utilizarem a função scanf, não importa o número de vezes que usarem, coloquem 2 getchar(); ao invés de apenas 1, como estavamos fazendo.

você deve estar se perguntando, mas o que é %d?
%d indica que estamos querendo ler um número Decimal, como o próprio "d" já diz.
Após isso, fechamos as aspas e colocamos um virgula e agora, indicaremos que a variável que receberá esse valor lido do teclado, é a variavel "a".
Para isso escrevemos &a indicando que o valor lido do teclado, irá ser armazenado no endereço (por isso o uso do &) de onde a variável "a" se localiza.

de modo análogo, se quisessemos ler um número real do teclado, utilizariamos %f que indica número de ponto flutuante. como no ex:

float b;

scanf("%f",&b);

Ou seja, caso quisessemos ler 5 números inteiros, fariamos:

int a;
int b;
int c;
int d;
int e;

scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);

certo? simm, certo, porém, a funçao scanf tem alguns truques para facilitar a nossa vida.

ao invés de 5 scanfs. poderiamos utilizar:

scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);


Isso faria a leitura de 5 números inteiros do teclado.
Outro macete que podemos utilizar é ao invés de escrevemos:

int a;
int b;
int c;
e assim por diante..

escrevermos:

int a,b,c;

isso concerteza diminuirá o número de linhas do seu código e até pode facilitar o entendimento.

Agora, como imprimir o valor dessas variáveis na tela?

Para isso, utilizaremos a nossa conhecida função printf.

Similar a função scanf, podemos escrever:

printf("%d", a);

veja que, a única diferença é que não utilizamos o &, como na função scanf.
Como na função scanf, podemos escrever:

printf("%d %d %d %d %d",a,b,c,d,e);

isso imprimirá o valor das variaveis a,b,c,d,e na tela.
Além disso, você pode normalmente continuar escrevendo textos na função printf, como no exemplo:

printf("variavel a=%d variavel b=%d variavel c=%d variavel d=%d variavel e=%d",a,b,c,d,e);

Após o entendimento total dos métodos de leitura e escrita, acredito que já consigam criar programinhas para solucionarem algum tipo de problema.

Agora, tente por criar um programinha que resolva o seguinte problema:

1) Faça um programa que leia 3 números inteiros e calculo a multiplicacao deles.
2) Resolva o problema do sorvete proposto no tutorial passado de forma que a quantidade e o valor de cada sorvete seja dado pelo usuário.

até mais.

sexta-feira, 29 de janeiro de 2010

Variáveis

Supondo que temos a seguinte operação:

c=a+b+10

dado que a=5 e b=5.

simples, certo? a conta ficaria:

c=5+5+10
c=20

Pois é bem assim que a coisa funciona em programação.
Como na matemática, podemos criar variáveis que armazenam valores e podem efetuar determinado cálculo para nós.
Apenas uma diferença:

c=a*b;

No dia-a-dia, geralmente utilizamos o ponto para denotarmos multiplicação, porém, em programação, utilizamos o símbolo *

c=a/b;

indica divisao.

c=a+b;

indica soma.

c=a-b;

indica subtração.


Por ora, vamos conversar sobre alguns tipos de variáveis.

Variáveis do tipo int:

Variáveis do tipo int, como o próprio nome já diz, são utilizadas para armazenar valores do tipo inteiro.

como por exemplo:

int a= 5;

nessa declaração, estamos atribuindo a variável "a", o valor 5.
Simples, não?
Agora você poderia estar se perguntando, o que aconteceria se eu colocasse:

int a=5.5;

Antes de eu dizer, só um pequeno detalhe, na computação, quando estamos escrevendo números "quebrados", ao invés da vírgula que estamos acostumados a utilizar no dia-a-dia , utilizamos o ponto. ex: ao invés de escrevermos 5,5 .. escrevemos 5.5

continuando..

o que aconteceria se colocassemos:
int a=5.5;

bom, nesse caso, a própria linguagem C, o número seria truncado, ou seja, a parte fracionaria seria jogada fora, no caso, 0.5 seria ignorado e o variável "a" assumiria o valor 5.

resumindo..
int a=5.5;

acarretaria na mesma declaração que
int a=5;

pois a parte quebrada do número no primeiro caso seria ignorada.

Variáveis do tipo float:

As variáveis do tipo float, conhecidas como variáveis de ponto flutuante, nada mais é que as variáveis que armazenam números reais.
ou seja, se quisessemos armazenar o 5.5, usariamos uma variável do tipo float. ex:

float a= 5.5;
float b= 10.333;


Vamos a um breve treinamento:

Suponha que Alice, tenha uma sorveteria e cada sorvete com 1 bola custe R$1.00 real e sorvetes com 2 bolas custem R$1,50.
Pedro, que gosta muito de sorvete, foi até a sorveteria e comprou 5 sorvetes com 1 bola e 3 sorvetes com 2 bolas. Quanto Pedro gastou?

Olhando para os dados, podemos facilmente determinar de "cabeça" quanto Pedro gastou, porém, vamos fazer um código em C para resolver esse problema.

Porém, antes de resolvermos, vamos aprender uma coisinha:

Geralmente, criamos códigos com centanas de milhares de linhas e para não nos perdermos no código ou para facilitarmos o compreendimento do código por outra pessoa, nós utilizamos os famosos comentários.
Um comentários se inicializa por /* e se finaliza por */
Vamos a um exemplo para ficar mais claro:

#include<stdio.h>

int main(void){

/* Esse é um código na linguagem C */

printf("Código com comentarios\n");

getchar();
return 0;
}

Se vocês tentarem executar esse código, perceberam que o que está escrito dentro de /* */ foi ignorado pelo seu programa e apenas a linha "Codigo com comentarios" foi impressa.
Ou seja, podemos utilizar esses comentários para descrevermos o que estamos fazendo em uma determinada parte do código.

Mas bom, voltando ao problema da sorveteria, vamos solucioná-lo.

#include<stdio.h>

int main(void){

int umabola=1; /* Preço do sorvete de uma bola */
float duasbolas=1.5; /* Preço do sorvete de duas bolas. */

/*Veja que utilizamos uma variável do tipo int e outra do tipo float, pois o preço do sorvete de 1 bola era um numero inteiro.. e o de duas bolas era um número real. */

int quantidadeumabola= 5; /* Quantidade comprada do sorvete de uma bola */
int quantidadeduasbolas= 3; /*Quantidade comprada do sorvete de duas bolas */
float precototal; /*variavel criada para armazenar o preco total pago por Pedro */

/* Veja que não inizializamos a variavel precototal, pois ainda não sabemos o preço que Pedro gastou.. Agora.. Como fariamos em matemática, escrevemos: */

precototal= quantidadeumabola*umabola + quantidadeduasbolas*duasbolas;

/* Simples, não? Multiplicamos a quantidade de sorvetes de uma bola pelo preço do sorvete de uma bola e somamos com a quantidade de sorvetes de duas bolas multiplicada com o preço do sorvete de duas bolas */

/*Após esse calculo, o valor 9.5 (que é o preco que Pedro pagou) foi armazenado na variavel precototal */

getchar();
return 0;
}

Agora você deve estar se perguntando.. "Mas como eu faço pra imprimir esse valor na tela?"

No próximo mini tutorial estarei demonstrando como se realizamos a escrita e a leitura de valores na tela.

até mais.

quinta-feira, 28 de janeiro de 2010

Bom, acredito que me apresentar e me conhecerem não foi o motivo de terem vindo a esse blog, então, vamos por a mão na massa ;p

Primeiramente, tentarei escrever mini-aulas sobre a linguagem de programação C.
Existem diversas outras linguagens de programação, como C++, Python, Java, Cobol e por ai vai, porém, acredito que para iniciarmos, a linguagem C seja a mais utilizada nos meios acadêmicos.

Para começarmos, para os utilizadores do windows, sugiro baixarem o famoso Dev-C++ através desse link: http://www.baixaki.com.br/download/dev-c-.htm
E para os que utilizam linux, abram o terminal, e baixem o pacote g++ com o comando: apt-get install g++
Após baixarem pelo apt-get, sugiro também o download do programa Emacs, acredito que um apt-get install emacs também resolva o problema.


Windows: Com o dev-c++ aberto, pressiona ctrl+n ou vá no menu Arquivo/Novo/Arquivo Fonte.
Linux: Com o emacs, pressione ctrl+x + ctrl+f e digite o nome do programa, pressione enter e vamos começar.

Após isso, digitem o seguinte código:

#include<stdio.h>

int main(void){

printf("voce esta programando");

return 0;
}


A primeira linha: #include<stdio.h> é o que chamamos de adicionando uma "biblioteca", no caso da biblioteca stdio.h, dentro dela contém funções necessárias para rodarmos um programa simples, como leitura e escrita de valores na tela, entre outras funções importantes.

A segunda linha: int main(void){ é onde o nosso programa começa.
Veja que, precisamos seguir a sintaxe corretamente, nunca se esqueçam de colocar "{" após o int main(void)

terceira linha: printf("voce esta programando"); é aqui onde ocorre a escrita desse texto na tela, a função printf tem esse papel, escrever alguma coisa na tela.
No caso, estamos escrevendo voce esta programando. A função printf tem essa sintaxe:
printf("texto");
Novamente, prestem bem atenção na sintaxe, veja que o texto que você está escrevendo tem que estar rodeado por chaves e nunca se esqueçam do ponto e virgula.

quarta linha: return 0; não é interessante para nós por enquanto.

quinta linha: } se lembrarem, tinhamos escrito int main(void){ assinalando que estavamos iniciando o nosso programa, então, apenas fechamos as chaves, assinalando que estamos terminando o nosso programa.

Caso você esteja usando o dev-c++, pressione F9 e veja o que acontece..
segundos depois..

"Ah, uma janelinha abriu rapidamente e sumiu... =(("

Sim, isso mesmo. Isso acontece pois o terminal do windows abriu, executou seu programa, imprimiu o texto, mesmo que super rapidamente e você não tenha visto e como a execução do seu programa terminou, a janelinha também se fechou.
Para evitarmos isso, adicionaremos em cima do comando return(0); o comando:
getchar();

ficando o código desse modo:

#include<stdio.h>

int main(void){

printf("voce esta programando");

getchar();
return 0;
}

A função getchar(); faz com que o computador fique esperando o usuário pressionar um enter ou digitar alguma coisa, assim, podemos manter a janelinha ativa, até que pressionemos alguma tecla como o enter.
Usuários linux não precisam do comando getchar(); pois seu terminal é fixo.
Caso esteja usando linux e queira executar seu programa, vá no terminal e digite:
gcc nomedoprogramaquevoceescolheu.c
./a.out

Obs: caso tenha aparecido alguma mensagem de erro quando você pressionou F9 no dev-c++ ou digitou gcc nomedoprogramaquevoceescolheu.c verifiquem novamente o código pois vocês devem ter digitado alguma coisa errada, ou esqueceram alguma coisa.


Bom, espero que todos tenham conseguido passar para essa segunda parte, vamos a outra programinha simples:

#include<stdio.h>

int main(void){

printf("oi tudo bem?\n");
printf("uhnn.. talvez");

getchar();
return(0);

}

Bem similar ao anterior, não?
Estamos chamando a função printf duas vezes, na primeira, imprimimos:
oi tudo bem?

Uma observação fica por conta desse \n que utilizamos, veja que ele não apareceu na saída, isso acontece pois quando utilizamos \n, estamos sinalizando para pular uma linha. Agora, no segundo printf, escrevemos na tela:
uhnn.. talvez

ficando:
oi tudo bem?
uhn.. talvez

veja que, caso não tivemos colocado o \n como nesse ex:

printf("oi tudo bem?");
printf("uhn..talvez");

a saída seria:

oi tudobem?uhn..talvez

por isso a importância do \n

até a próxima.