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.

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...