segunda-feira, 26 de março de 2012

Aplicação do MOD e DIV

Olá pessoal, vamos atualizar nosso blog? :-)

Depois de um longo período sem postagens novas resolvi liberar 2 novos assuntos para o pessoal que está quebrando a cabeça com os comandos MOD e  DIV.

Vamos tratar primeiramente do comando MOD. O que seria o comando MOD? Para que usamos? Onde usá-lo? Vamos descobrir aqui agora!

Quando fazemos uma divisão temos o quociente e o resto, o comando MOD realiza a divisão do numero e retorna o resto dessa divisão, abaixo temos as propriedades de uma conta de divisão:


No exemplo acima o MOD seria igual a 0 (zero). Mais como isso ficaria em um algoritmo?:
variavel <--- 20 MOD 2

OK entendi o que o MOD faz e como ele faz, mas quando devemos usá-lo?

O MOD pode ter aplicação nos seguintes problemas:
  • Saber se um número x é múltiplo de um número y
  • Quebrar um número por casas decimais
  • Saber se número x é par ou ímpar
Beleza pessoal, sabemos que o MOD retorna o resto da divisão inteira de um numero, mais e o DIV? O que o comando DIV faz? Para que serve? Onde usamos?
O comando DIV vai nos retornar o quociente da divisão, exemplo:
variavel <--- 20 DIV 2

O valor retornado pelo comando acima é 10, a aplicação do DIV é saber o valor da divisão entre dois números, nada muito além disso mesmo!

Bom pessoal, post encerrado e até a próxima. Podem deixar comentários como dúvidas, sugestões. Flw!!!

sexta-feira, 16 de março de 2012

Qual a diferença entre C e C++

Olá pessoal, hoje vamos entender de vez qual a diferença entre a linguagem C e a linguagem C++.

Muita gente acha que C e C++ são a mesma coisa, que se eu estou programando em C teoricamente eu estou programando em C++ e vice-versa. Pessoal isso não é verdade.

O que é de fato verdade é que o C++ é equivalente a linguagem C + o paradigma de orientação a objetos, ou seja, é um C turbinado. Isso não quer dizer que você vai pegar um código em C e ele vai conseguir rodar perfeitamente em um projeto C++ e pior ainda, é você pegar um código C++ e tentar executar em um projeto C.

Por isso quando criamos um novo projeto, temos que ficar atentos ao tipo de linguagem que definimos. Todo código em C++ tem a extensão (*.cpp), e todo código em C tem a extensão (*.c).

Abaixo alguns exemplos de possíveis erros que podem vir a acontecer, caso o código seja de uma linguagem e o tipo do projeto seja de outro:

CÓDIGO C - PROJETO C++
/*
 *não dá erro de compilação, mais não serve para nada porque o c++ não
 *reconhece essas bibliotecas 
 */
#include <stdio.h> 
#include <stdlib.h> 

int main()
{
    getche(); //erro, porque getche() não é um comando interno de C++
    getch(); //erro, porque getch() não é um comando interno de C++
} 

CÓDIGO C++ - PROJETO C
//erro c não contem a biblioteca <iostream>
#include <iostream>  

int main()
{
    cout << "Blog programando"; //C não reconhece o comando cout    
}

Bom pessoal, aqui termina mais um post. Espero que vocês tenham entendido qual a diferença entre C e C++, e que possam a partir de agora criar projetos de acordo com a linguagem.

Dúvidas, sugestões e informações lembre-se de deixar um comentário. :)

segunda-feira, 5 de março de 2012

Funções em C              ----------->                    Parte.2

Fala galera, na parte.1 do Post "Funções", vimos como é que fazemos para montar funções que não possuim retorno, ou as chamadas funções VOID. Agora vamos aprender como montar uma função que retorna algo para quem a chama. Por exemplo, poderiamos ter o seguinte código para calcular a média aritmética de um aluno da sala de ADS:
#include <stdio.h> 
int main() {
     
    float nota1, nota2, nota3, media;
    printf("Informe as notas do aluno Xis\n:");    
    scanf("%f%f%f", &nota1, &nota2, &nota3);
    media = (nota1 + nota2 + nota3) / 3;
    printf("\n\nMédia do aluno: %f", media);
        /*           * Acho que vc deve estar de perguntando, cade o system("PAUSE");?      * Eu estou programando no sistema Operacional Linux na ferramenta Geany          * A tela trava sozinha, mais vc que está com o Windows e usando o Dev C++          * Lembre-se do #include <stdlib.h> e system("pause"); =D      */          return 0; }

Mas e se eu quiser montar uma função para calcular essa média? Sabemos que com funções o código fica mais elegante e bem mais legível. Vamos ilustrar uma possível aplicação para essse problema:
#include <stdio.h> 

//tipo da função deve ser o mesmo que ela retorna por exemplo: 
//se a função retornar 1 então teremos: 
//int calculaMedia(float n1, float n2, float n3) 

float calculaMedia(float n1, float n2, float n3) {     
    float pokemon;     
    pokemon = (n1 + n2 + n3) / 3;        
    return pokemon; 

} 

int main() {  
   
    float nota1, nota2, nota3, media;     

    printf("Informe as notas do aluno Xis\n:");     
    scanf("%f%f%f", &nota1, &nota2, &nota3);     

    media = calculaMedia(nota1, nota2, nota3);

    //chamada da função, passando os valores solicitados por ela
    //variavel media armazena o resultado que a função retorna     
    
    printf("\n\nMédia do aluno: %f", media);     

    /*
     * Acho que vc deve estar de perguntando, cade o system("PAUSE");?      
     * Eu estou programando no sistema Operacional Linux na ferramenta Geany      
     * A tela trava sozinha, mais vc que está com o Windows e usando o Dev C++      
     * Lembre-se do #include <stdlib.h> e system("pause"); =D */   

     return 0; 
}  

No começo não faz muito sentindo o uso da função, já que o código pode ser todo escrito no corpo do MAIN e podemos escrever blocos de códigos utilizando a programação PORCEDURAL (goto e labels). Mais com o tempo você perceberá a vantagem de se dividir o código em pedaços distintos.  Bom pessoal, aula de funções parte.2 já era. Resta a parte.3 para fecharmos com chave de ouro. A parte três detalhará melhor a passagem de valores entre as funções (parâmetros / argumentos), vamos fazer também funções chamarem outras funções.
Até a próxima. Vlw =D

Funções em C              ----------->                    Parte.1

Funções são usadas para criar pequenos pedaços de códigos separados do programa principal. Em C/C++, tudo, na verdade, é uma função. INT MAIN (VOID) é uma função, por exemplo.
Exceto a função MAIN, todas as outras funções são secundárias, o que significa que elas podem existir ou não.
Então, qual a vantagem de fazermos uma função?
Funções são importantes porque elas retornam valores, ajudam a fragmentar o código em partes menores - mais fáceis de lidar - e ainda por cima podem ser utilizadas mais de uma vez no mesmo programa, poupando preciosos minutos de programação e inúmeras linhas de código.

Criando funções sem argumentos

Em C/C++ as funções podem ter ou não argumentos. Primeiramente, veremos as funções sem argumentos.
Funções são como variáveis que guardam inúmeras linhas de código. Se não prototipadas*, elas devem ser escritas antes da função MAIN, afim de serem compiladas primeiro para poderem ser utilizadas pela função main.

Post sobre prototipagem.

Como haviamos dito, funções são como variáveis. Então, criamos uma função indicando o tipo de retorno (saída) que será int, float, etc...Nomeamos a função (valem as mesma regras das variáveis, ex.: Não começa nomes de funções com número) e terminamos colocando entre parênteses os argumentos. Como nossas primeiras funções não terão argumentos entre parênteses usaremos VOID (do inglês VAZIO). Todo o código da função deve estar dentro de um bloco de instrução ( { } ), mesmo que haja apenas uma linha.
Obs.: Não se usa ponto-e-vírgula no final da criação da função.

Como a na função que usaremos não retornará nenhum valor porque a única coisa que ela faz é mostrar uma mensagem na tela. Ela terá o tipo de retorno vazio também - void.
Após a função ser criada, basta chamarmos a função dentro da função principal MAIN.
Para chamá-la, apenas digitamos o nome da função e entre parênteses colocamos seus argumentos. Como esta função não tem argumentos, simplesmente colocamos nada entre os parêntese.

#include <stdio.h>

void pokemon(void)
{
    printf("\n\nEu programo usando função, goto é para os fracos =D");
    return;
}

int main()
{
    printf("\nEu sou uma função primaria, portanto sou eu quem é executada primeiro");    
    pokemon(); //chamada da função
    printf("\n\nEu sou o main portanto eu encerro o programa");
    /*
     * Acho que vc deve estar se perguntando, cade o system("PAUSE");?
     * Eu estou programando no sistema Operacional Linux na ferramenta Geany
     * A tela trava sozinha, mais vc que está com o Windows e usando o Dev C++
     * Lembre-se do #include <stdlib.h> e system("pause"); =D
     */
    return 0;
}
Bom pessoal parte 1, encerrada aqui vimos como programar utilizando funções que não recebem argumento (parâmetros) e que não retornão nada para quem os chamou. No próximo Post vamos aprender a fazer funções que retornam valores para quem a chama e posteriormente, aprenderemos como trabalhar com passagem de parâmetros (argumentos) por funções.
Até mais pessoal...

Usando goto e labels em C

Os rótulos (labels) e saltos (goto) são lembranças da época em que a programação era totalmente procedural. Esta forma de programar não é mais praticada, mas ainda há como fazer.

Primeiramente marcamos uma linha do código com um rótulo (também conhecido como label) e toda vez que quisermos voltar ou seguir até tal linha apenas indicamos onde o programa deve seguir.

Em C / C++ para indicarmos um rótulo (label) escrevemos um nome no local que desejamos marcar. Para ir até este local usamos o comando GOTO.

O rótulo (label) é indicado pelo uso de dois pontos (:) no final da linha.

GOTO é um comando como qualquer outro. Portanto, deve-se terminar a linha com um ponto-e-vírgula (;).

Exemplo:

rotulo :

código

goto rotulo;

#include <stdio.h>

int main()
{
    int nro;
    
    inicio:
    printf("\nInforme um numero par: ");
    scanf("%d", &nro);
    
    if(nro % 2 == 1)
    {
        goto inicio;
    }
    else
    {
        goto final;
    }
    
    final:
    printf("\n\n Fim da execução do programa");
    return 0;
}

Como podemos ver, isso era utilizado antigamente na programação. Hoje em dia, utilizamos outras formas para programar como paradigmas conhecidos como Orientação a Objeto e Orientação a Eventos, ou ainda estrutural que se utiliza de funções para realizar as tarefas. Programação com funções é o assunto do nosso próximo Post.

quarta-feira, 29 de fevereiro de 2012

Comparando textos em C

Olá pessoal, hoje vamos aprender a comparar textos na linguagem C. Digamos que você está desenvolvendo em programa e precisa fazer uma verificação em uma variavel que armazena um texto. Como você montaria um algoritmo para resolveria esse problema?

Seria algo como:
Se desenho_animado = "pokemon" Então
     //logica para capturar pokemon

Mais o poblema é passar isso para a linguagem C, já que no C o sinal de igual (=) significa atribuir.
Em C, quando queremos comparar duas variáveis utilizamos a função strcmp, strcmpi. As duas fazem parte da biblioteca <string.h>, e para serem utilizadas a biblioteca <string.h> deve ser incluida ( #include <nome da biblioteca> ).

Como usar as funções para comparar

A linguagem C não retorna algo como verdadeiro (true) ou falso (false), como em muitas outras linguagens de programação. Em C, verdadeiro é representado pelo número 0 , enquanto falso é representado pelo número 1. Quando usamos a função strcmp ou strcmpi ela percorre letra por letra as duas palavras comparando-as e o retorno da função é de: 0 para palavras iguais ou 1 para palavras diferentes .

Exemplo:

strcmp("picachu","pikachu"); //a função retorna 1
strcmp("pikachu","pikachu"); //a função retorna 0

Se a função retorna um número , temos que guardar esse número para sabermos qual foi o resultado da comparação, não é mesmo? Para fazer essa comparação podemos declarar uma variável que armazenará o número retornado pela função, ou comparar o retorno da função diretamente no comando if.

Exemplos:

int resultado;
resultado = strcmp("picachu","pikachu");

if (resultado ==  0
{
        printf("As palavras são iguais");
}
else
{
        printf("As palavras são diferentes");
}

ou

if(strcmp == 0)
{
         printf("As palavras são iguais");
}
else
{
         printf("As palavras são diferentes");
}

Qual a diferença entre strcmp e strcmpi?


A diferença entre o strcmp  e strcmpi, é que o strcmp diferencia letras maiusculas de letras minusculas, já o strcmpi não.

Exemplo:

strcmp("pikachu","PIKACHU"); //a função retorna 1, ou seja, não é igual
strcmpi("pikachu","PIKACHU"); //a função retorna 0, ou seja, é igual

NOTA: Não esqueçam de incluir a biblioteca no inicio do programa. 

Bom pessoal, por hoje é só... ate´ a próxima.

terça-feira, 28 de fevereiro de 2012

Como declarar variáveis e constantes em C

Olá pessoal, hoje vamos aprender como declarar variáveis e constantes em C.
Já sabemos que variáveis são pequenos pedaços alocados na memória do computador para guardar informações que mudam no decorrer do programa, e sabemos também que constantes são pequenos pedaços alocados na do memória do computador para guardar informações que NÃO mudam no decorrer do programa, certo?
Agora vamos então dar mais um passo aprendendo a declarar variáveis e constantes em nossos programas C.

Declarando variáveis em C:

Para declarar variáriaveis em C,  segue a sintaxe:
tipo_da_variavel nome_da_variavel ; //nunca se esqueça de colocar ponto e vírgula

int idade;
float peso;
double pesoDoJoSuares;                      Tipos mais usados
char sexo;


Declarando constantes em C

Para declarar constantes em C, segue a seguinte sintaxe:
#define nome_da_contante  valor_a_ser_armazenado

Exemplo:

#include <stdio.h>
#include <stdlib.h>
/*
 * A Declaração de constantes tem que ser antes do int main()*/
#define idade 17 //dado do tipo inteiro
#define nome "guilherme" //dado do tipo char
#define altura 1.63 //dado do tipo float ou double
#define sexo 'M' //dado do tipo char

int main() {
//barra-invertida + n = \n, faz uma quebra de linha, ou seja, pula linha
    printf("\nNome: %s", nome);
    printf("\nIdade: %d", idade);
    printf("\nAltura: %f", altura);
    printf("\nSexo: %c", sexo);
    system("PAUSE");
return 0;
}

Faça esse exemplo em seu computador e veja o que acontece...
Bom pessoal, por hoje é só, e já sabem dúvidas, sugestões deixem um comentário. ;p
Vlw, e até a próxima!!!

Para que servem as bibliotecas <stdio.h> e <stdlib.h>

Olá pessoal, hoje vamos entender para que servem as bibliotecas que importamos para o programa C.

Com certeza a primeira coisa que você se perguntou quando viu um código C na sua frente, foi para que servem #include<stdio.h> e #include<stdlib.h>? o que elas fazem?
 
Elas são bibliotecas que agrupam um conjunto de funções que facilitam a nossa vida na hora de programar, isso mesmo as funções printf e scanf não são propriamente do C, elas fazem parte de uma biblioteca que está inclusa no C, então podemos dizer que as funções printf e scanf são de uma biblioteca que pode ser inclusa no C. Utilizando a palavra chave #include <nome da biblioteca>.

A biblioteca que contém o printf e scanf é a <stdio.h>, se repararmos o nome dessa biblioteca, veremos que seu nome é bem sugestivo ao seu propósito: stdio.h (i/o input/output) entrada e saída. Já que printf faz a saída do programa, ou seja, exibe algo para o usuário, e o scanf faz a leitura dos dados, ou seja, recebe a entrada do teclado.

Então se a biblioteca <stdio.h> não for incluida no cabeçario do nosso programa não tem como usarmos as funções que estão contidas dentro dela. Faça um teste, experimente apagar a linha: #include<stdio.h>,  e compile seu programa. Veja o que acontece.

Beleza, a biblioteca <stdio.h>, cuida da parte de entrada e saida de dados, mas e a <stdlib.h> para que ela seve? A biblioteca <stdlib.h> funciona como um emulador da prompt do sistema operacional que você está programando, caso seja Windows ele emula todos os comandos do DOS, se você estiver programando no Linux, quem será emulado é o Terminal. 

Essa biblioteca é muito inteiressante, pois com apenas algumas linhas de comando você consegue acessar pastas, mover diretorios, executar programas, fuder com a HD e tudo o que um programador metido a hacker gosta de fazer =D.

Aqui um exemplo de como é legal brincar com a biblioteca <stdlib.h>:

#include <stdlib.h>

int main() {
    system("calc");
    system("pause");
    return 0;
}


O que aconteceu ... legal né? Isso é só o começo de um montão de coisa que você pode fazer utilizando o system.


Ainda resta uma dúvida. Só existem essas bibliotecas em C ? É claro que não pessoal, existem muitas outras bibliotecas que são especificas para cada situação. Existem bibliotecas para trabalhar com contas matemáticas, bibliotecas para manipular textos, para manipular a formatação de exibição dos dados e uma infinidade de outras coisas ai. A melhor coisa a ser feita é uma pesquisa rápida pelo Google.

Bele pessoal?, dúvidas, sugestões não esqueçam deixem seus comentários. Valeu e até a próxima.

Pseudocodigos agora se transformam em palavras chave

Olá pessoal, hoje vamos aprender como implementar os pseudocodigos na linguagem de programação C.

Os pseudocodigos são palavras reservados do nosso algoritmo, são através deles que conseguimos fazer nossos algoritmos funcionarem. Quando queremos exibir alguma mensagem na tela usamos o pseudocodigo ESCREVA, quando queremos ler algo utilizamos o pseudocodigo LEIA e assim por diante.

Mais como fazemos isso na linguagem C? Abaixo temos uma lista de todos ou quase todos os pseudocodigos aprendidos em aula, transformados em palavras chave da linguagem C:

PSEUDOCODIGO------------------------------------------C
escreva ""---------------------------------printf("algum texto");
leia variavel------------------------------scanf("%d", &variavel);
algoritmo----------------------------------int main() {
fim_algoritmo------------------------------}
var a, b: inteiro--------------------------int a, b;
var c, d: real-----------------------------float c, d;
a <- 10------------------------------------a = 10;

É isso ai pessoal, para dúvidas e sugestões deixem um comentário ai... vlw e até a próxima!!!

Novidade!!! Agora vamos ter canal no Youtube =D

Fala pessoal tudo beleza, estou sumido a correria está forte por aqui. Estou querendo dar um start em um projeto antigo que vem desde o temp...