Arquivo do Fórum Nintendo Blast

Olá visitante/usuário! Nós estamos em processo de migração e deixaremos este Fórum em breve.

A migração é para termos mais liberdade e para podermos ter um Fórum melhor! Se você ainda não é cadastrado neste Fórum e nem no novo, clique aqui e cadastre-se já no Novo Fórum!

Se você já possui uma conta aqui, clique aqui e saiba como migrar para o Novo Fórum Nintendo Blast!
Arquivo do Fórum Nintendo Blast

    Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Compartilhe

    Votação

    1

    [ 12 ]
    86% [86%] 
    [ 2 ]
    14% [14%] 

    Total dos votos: 14
    avatar
    KSPS
    K♥S>>PS
    K♥S>>PS

    Karma Karma : 2170
    Posts Posts : 5319

    Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por KSPS em Sex 25 Abr 2014, 15:11

    Obs.:
    Mesmo que já saiba programar em outra linguagem, tente pelo menos os desafios.




    APRENDENDO A PROGRAMAR




    Capítulo 2
    Variáveis e InOut



    ************************************************************************************************************

    Olá!

    Como vão vocês?

    O capítulo de hoje será pesado, mas valerá a pena!

    Hoje, serão discutidas as Variáveis e Funções In/Out (entrada/saída).




    Pré-requisitos:
    Ter concluído o Capítulo 1 desta saga!

    ************************************************************************************************************
    ************************************************************************************************************
    ************************************************************************************************************




    printf() e #include


    Como funciona a execução de um arquivo C

    Basicamente, ele procura a main (nome dado a função que inicia o programa). A partir disto, ele lê linha por linha (e volta, dependendo da função que for usar) e segue as instruções do programa.

    Vamos olhar algumas regras:


     Exclamation Sempre quando você abre uma chave "{", você deve fechá-la. O que tiver dentro dela faz parte daquilo.

    Exemplo:
    Código:
    int main {
    ...
    Seu algoritmo aqui...
    ...
    }

     Exclamation Sempre que terminar sua instrução (ou linha), coloque o PONTO-E-VIRGULA ";".
    Caso você esqueça, o programa poderá avisar erro em uma linha que não está errada.


     Exclamation Parênteses servem para receber valores. Mais pra frente vocês verão isto.


    Atentamos a estrutura básica dos programas C:

    Código:
    #include <stdio.h>
    #include<stdlib.h>
    #include<math.h>

    int main(){
        int b = 14;    
        printf("Hello NintendoBlast!\n");
        printf("O numero b vale %d:\n", b);

            return 0;
    }

    Por enquanto, vamos usar o esqueleto acima como base:

    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    O símbolo # com a palavra include diz para o processador:

    "Olha, quero usar bibliotecas com comandos já pré-definidos!"
    enquanto o stdlib.h, math.h ou stdio.h


    A princípio, nem sempre precisamos usar as três. Mas a modo de algoritmo, vamos deixá-las quietinhas ali.
    Significa que utilizaremos uma biblioteca para usarmos os comandos de entrada e saida do programa. Caso queira saber mais sobre elas, google it!

    Código:
    int main(){
        int b = 14;    
        printf("Hello NintendoBlast!\n");
        printf("O numero b vale %d:\n", b);

            return 0;
    }

    O int main() é o principal do nosso aplicativo.

    A palavra main evidencia que ele é o principal, o int antes dele serve para controle: se o programa parar sem chegar no return 0 (ou System("PAUSE"), caso use o dev), o sistema acusará um erro de execução.

    printf("Hello NintendoBlast!\n");
    Significa que na tela de execução (que será uma tela escura), será exibida a frase Hello NintendoBlast!


    o "\n", ao final, significa "Pule uma linha, seu programa burro". Nunca esqueçam do \n ao final de uma frase.

    o printf, em si, significa IMPRIMEFDP, ou seja, ele "imprimirá" na tela o que estiver entre aquelas aspas.

       printf("O numero b vale %d:\n", b);


    O caso acima imprimirá o valor de b.

    Utilizamos o %d dentro das aspas para falar para o programa que ele receberá o primeiro valor imediatamente da variável do lado de fora das aspas. Neste caso, ele olhará para aquele b de bonito ali e procurará na memória. Como a variável b é do tipo int, então usamos o %d. Se fosse do tipo float, utilizaríamos o %f.

    Caso queira saber o valor de dois valores, por exemplo, poderíamos escrever assim:
       printf("O numero b vale %d, o numero a vale %f, e voce deve escolher o Charmander:\n", b, a);
    Supondo que a variável "a" é um float. 

    Em seguida, vamos ver que diabos são int e float.

    Caso queira verificar o exemplo abaixo, basta seguir o esqueleto já mostrado:

    Código:

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


    int main(){

    AQUI VOCÊ FAZ SEU CÓDIGO, OU COLA OS EXEMPLOS ABAIXO. PELO MENOS POR ENQUANTO.[/color][/b][/i][/font]

    return 0;
    }


    COMO EXECUTAR UM PROGRAMA NO CODE::BLOCKS


    1. Abra o Code::Blocks;


    2. Selecione File > New > Empty File ou então pressione, no teclado, CTRL + SHIFT + N;


    3. Selecione File > Save File ou pressione, no teclado, CTRL + S;


    4. Salve o arquivo com qualquer nome, mas a extensão deve ser .c;


    5. Programe ou copie um dos códigos mostrados aqui para estudar;


    6. Selecione Build > Build and Run ou pressione F9;


    7. Abrirá uma tela parecida com o MSDOS para mostrar a execução do programa.




    Variáveis
    Variaveis são "locais" onde armazenamos valores. Toda variavel é
    caracterizada por um nome, que a identi fica em um programa, e por um
    tipo, que determina o que pode ser armazenado naquela variável.

    Ein?
    Calma, vou explicar:

    Basicamente, a variável será o tipo e o nome de algo que iremos trabalhar. Se quisermos trabalhar com um número, o número terá seu tipo e nome, por exemplo.
    Para números, temos vários tipos e variações destes tipos, mas vamos trabalhar com os primitivos Inteiros e Ponto Flutuante.



    Inteiros
    Inteiros são variáveis que não são "quebradas". Normalmente usada para definir quantidades. Sua representação é int.

    Estrutura de um inteiro:

    int X;
    // O int representa o tipo, enquanto o X representa um nome para ser identificada.
    // Este nome pode ter quantas letras quiser, só não pode ser um nome de funções do sistema (Exemplo: não pode chamar uma variável int de int, float, ou outros comandos que aprender).





    Exemplos:
    Código:
    int a;
    a = 14;

    Então a variável a vale 14.

    Código:
    int a = 14;
    a = 14 + 5;

    Então a variável a vale 19.

    Código:
    int a = 14;
    int s = 15;
    int d;

    d = a + s;

    Então a variável d vale 29.



    Você usou +? Então dá pra somar variáveis??
    SIMMM!!
    Dá para somar variáveis =)
    Não só somar, dá para somar, multiplicar, dividir... mas ainda não é hora. Concentre-se somente se entendeu ou não o que é um int.


    Pontos Flutuantes
    Este nome é bizarro, mas é o que foi traduzido o float.
    float é como se fosse os números reais no geral, mas é usado quando precisamos de valores "quebrados", como medidas, dinheiro, peso, etc.


    Estrutura de um float:

    float X;

    // O float representa o tipo, enquanto o X representa um nome para ser identificada.
    // Este nome pode ter quantas letras quiser, só não pode ser um nome de funções do sistema (Exemplo: não pode chamar uma variável int de int, float, ou outros comandos que aprender).


    Exemplos:
    Código:
    float a;
    a = 14.0;

    Então a variável a vale 14.

    Código:
    float a = 14;
    a = 14.0 + 5.2;

    Então a variável a vale 19.2.

    Código:
    float a = 14;
    float s = 15.14;
    float d;

    d = a + s;

    Então a variável d vale 29.14.

    Mas se é a mesma estrutura que um inteiro, porque a diferença?
    As informações relativas às variáveis estarão no apêndice, caso queira saber mais (mas não é necessário, pelo menos, para as atividades).

    AGORA SOU O MANJADOR DAS VARIÁVEIS
    Não, perae!! Agora veremos as operações!

    OPERAÇÔES

    Regras:
    1. Não se divide por 0;
    2. Não pode relacionar float com int nas operações;
    3. Nunca esqueça de definir um valor para cada variável que você usar, senão o sistema pode usar o valor de algum outro programa que está executando no seu computador;
    4. NUNCA ESQUEÇA O PONTO-E-VIRGULA NO FINAL ";".


    SOMA/SUBTRAÇÃO

    Código:
    int a = 0;
    int b = 1;
    int c;
    c = a + b;

    Código:
    float aa = 0.0;
    float bb = 1.1;
    float cc;
    cc = aa - bb;


    Então c valerá 1 e cc valerá -1.1.

    MULTIPLICAÇÃO/DIVISÃO
    Código:
    int a = 0;
    int b = 1;
    int c;
    c = a * b;

    Código:
    float aa = 11.0;
    float bb = 1.1;
    float cc;
    cc = aa / bb;

    Repare que o * representa multiplicação e o / representa divisão.
    c valerá 0 e cc valerá 10.0.



    POTENCIAÇÃO E RESTO DE DIVISÃO
    Código:
    int a = 2;
    int b = 3;
    int c;
    int d;
    c = a ^ b;
    d = b % a;

    No exemplo acima, c valerá 8 e d valerá 1. 
    A operação de potenciação usa-se o ^.
    A operação de resto de divisão usa-se o %.



    PRECEDÊNCIA


    Código:
    int a = 14;

    a = (a + (6 + a)/10)*2;

    A Regra dos parênteses também vale para C.
    É a mesma regra que usamos ao fazer contas, aprendida no ensino fundamental. Portanto, o resultado será:
    (a + (6 + a)/10)*2 =
    (14 + (6 + 14)/10)*2 =
    (14 + (20)/10)*2 =
    (14 + 2)*2 =
    (16)*2 =
    32.




    Macetes:
    1. Na soma, o mais usual é usarmos menos variáveis possíveis.
    Código:
    int a = 4;
    int b = 5;
    b = b + a;

    //O mesmo vale para float.

    COMO ASSIM, B = B+A. VC ERROU KSPS SEU TROUXA!"

    É que em programação, quando usamos b = b + a, na verdade, estamos falando assim para o programa:

    Querido b. Você vai receber a soma de você mesmo com a.

    Portanto, o resultado de b após a operação será 9.

    2. Contador.

    Código:
    int i = 1;
    i++;

    O i++ é a mesma coisa que escrever i = i + 1. Entretanto o usual é escrevermos i++ por mais praticidade e para indicar para quem for ler o nosso código que se trata de um "soma 1".





    Agora, a hora que todos esperavam... Vamos ver o negócio funcionando??







    MAS ANTES




    Vamos verificar o funcionamento do scanf() e dos comentários.



    scanf()
    O scanf é a função que recebe o que você digitar.
    Basicamente, a regra é usar o %d para int, e o %f para float, colocando, do lado de fora das aspas, o nome da variável precedida pelo &.

    Exemplo:

    Programa para calcular média de três algorismos.

    Código:
    int main()
    {
        int a;
        int b;
        int c;
        int media;
        printf("Insira os valores das notas: \n");
        scanf ("%d %d %d", &a, &b, &c);
        media = a+b+c;
        media = media/3;
        printf("A media sera %d\n", media);

        return 0;
    }

    Se mandar rodar o programa acima, ele exibirá pra você colocar as notas. ASsim, você coloca cada nota separada por espaço, e no final da terceira dá enter.
    Desta forma, ele calcula a média arredondada sem casas após a vírgula, já que trata-se de um int.


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


    Repare que o %d serve para receber cada variável, e ele aplicará cada valor em cada uma das variáveis que estão após as aspas, em ordem.

    Portanto, para usar um scanf, usamos os parênteses, dentro das aspas coloca o %d ou %f quantas vezes quiser. Mas ao fechar as aspas, tem que colocar a vírgula e cada uma das variáveis, com o & (de Sandy & Junior).





    Lembram do printf? Vamos tomar mais um cuidado ao usá-lo, com float:




    Código:
    int main()
    {
        float a;
        float b;
        float c;
        float media;
        printf("Insira os valores das notas: \n");
        scanf ("%f %f %f", &a, &b, &c);
        media = a+b+c;
        media = media/3;
        printf("A media sera %f\n", media);

        return 0;
    }

    Repare que é o mesmo programa que calcula a média aritmética de três notas.
    Entretanto, ao executá-lo, verá que não haverá arredondamento e o valor a ser exibido terá várias casas após a vírgula, dependendo do tipo do seu processador.
    Para controlarmos isto, utilizamos a seguinte metodologia:

    printf("A media sera %f\n", media);
    Forma sem arredondamento



    printf("A media sera %.2f\n", media);
    Arredondamento com duas casas após a vírgula


    printf("A media sera %.0f\n", media);
    Arrendondamento sem casas após a vírgula


    Portanto, colocamos .X entre o % e o f, com X sendo o valor de casas após a vírgula.




    COMENTÁRIOS


    Para comentar um código, ou seja, deixar anotações em seu código, existem duas formas:

    1. //Você pode usar duas barras "//" e escrever o que quiser a frente.
    2. /* Você pode usar uma barra com asterístico "/*" e escrever o que quiser por linhas. Para fechar o comentário, usamos */.

    Este recurso é muito útil quando outro irá ler seu código. Essencial em um grupo de programadores.














    AEEEEEEEEEEW AGORA SIM!!! VAMOS PRATICAR! 
    VAMOS ENTÃO!



    *********************************************************************************************************************



    Exercícios de fixação.

    1. Por que em todo início do código tem que ter o #include para funcionar? 
    Spoiler:
    O include é essencial para que o compilador saiba de onde o programador irá usar as funções a ser usadas.

    2. Qual a diferença entre int e float?

    3. Como que eu uso o printf para int e float?

    4. Como uso o printf para escrever frases?

    5. Como uso o scanf?

    6. Como faço multiplicação, soma, divisão, subtração, potenciação e resto de divisão?

    7. Como funciona os parênteses em uma equação?




    Exercícios de programação



    A. Faça um programa que calcule a soma de três valores digitados.



    B. Faça um programa que calcule o resto de divisão de 10 por qualquer valor que for digitado.



    C. Faça um programa que execute a seguinte equação:
    (X + Y)(X - Y) * 14;
    Com X e Y sendo valores digitados pelo usuário.



    D. Faça um programa que imprime o nome do homem mais bonito do fórum.


    E. Em uma determinada escola, existem 4 provas no ano, cada nota valendo de 0 a 10:
    Primeira prova com peso 1;
    Segunda prova com peso 2;
    Terceira prova com peso 3;
    Quarta prova com peso 7.

    Se os valores das 4 provas serão digitados pelo usuário, faça um algoritmo que calcula a média das notas nesta escola.
    Use arredondamento com duas casas após a vírgula.




    Exercícios de programação mais elaborados



    KSPS1
    UNICAMP/2012
    Faça um programa que troque o valor de duas variáveis digitadas, utilizando somente duas variáveis.




    KSPS2

    UNICAMP/2012
    Um banco tem as seguintes notas de dinheiro disponíveis:
    100, 50, 20, 10, 1.
    Faça um programa em que o usuário digite o valor desejado, e seja mostrado na tela quantas notas de cada dinheiro serão entregues ao usuário, utilizando menos cédulas possíveis.






    ************************************************************************************

    Boa sorte, pessoal!

    Qualquer dúvida ou erro, estamos a disposição.


    Última edição por KSPS em Sex 05 Set 2014, 09:29, editado 5 vez(es)
    avatar
    lukazz
    Veterano Nv.MÁX
    Veterano Nv.MÁX

    Karma Karma : 586
    Posts Posts : 2426

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por lukazz em Sex 25 Abr 2014, 16:40

    to fazendo aqui os exercicios! mas me surgiu uma duvida, no exercicio c. o resultado ta sempre dando 0, é pra ser assim mesmo? EDIT esquece, ja vi na onde fiz a cagadinha kkkk o/
    avatar
    KSPS
    K♥S>>PS
    K♥S>>PS

    Karma Karma : 2170
    Posts Posts : 5319

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por KSPS em Sex 25 Abr 2014, 18:04

    @lukazz escreveu:to fazendo aqui os exercicios! mas me surgiu uma duvida, no exercicio c. o resultado ta sempre dando 0, é pra ser assim mesmo? EDIT esquece, ja vi na onde fiz a cagadinha kkkk o/

    ksksks
    que massa

    Ainda bem que você conseguiu!

    Qualquer coisa, poste ae!

    Vlw mano! Estou realmente feliz por ver que você conseguiu!
    avatar
    Convidado
    Convidado

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Convidado em Sex 25 Abr 2014, 19:55

    Sério,sem me fingir,não to intendendo nada!
    Você usa termos "complexos",e as "piadinhas" estão atrapalhando minha compreensão...
    avatar
    KSPS
    K♥S>>PS
    K♥S>>PS

    Karma Karma : 2170
    Posts Posts : 5319

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por KSPS em Sex 25 Abr 2014, 20:38

    Entendo
    Por favor, aponte todas suas duvidas e os trechos que eu dou uma reexplicada.
    Me perdoe se nao fui bem claro, mas nao quero que alguem fique sem aprender.
    Alias, eh bom que eu aprimoro a didática ^^
    avatar
    Diogo Almeida
    Membro Nv.31
    Membro Nv.31

    Karma Karma : 69
    Posts Posts : 333

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Diogo Almeida em Sex 25 Abr 2014, 20:57

    Código do Programa:

    #include
    #include
    #include
    int main(){
    int Valor=0;
    int Resto1=0;
    int Resto2=0;
    int Resto3=0;
    int Resto4=0;
    int Resto5=0;
    int Cedulas1=0;
    int Cedulas2=0;
    int Cedulas3=0;
    int Cedulas4=0;
    int Cedulas5=0;
    printf("\n Informe o valor a ser sacado: \n ");
    scanf("%d", &Valor);
    if(Valor >= 100);
        {
        Resto1 = Valor%100;
        Cedulas1 = (Valor-Resto1)/100;
        if(Resto1 >= 50 && Resto1 <= 99);
            {
            Resto2 = Resto1%50;
            Cedulas2 = (Resto1-Resto2)/50;
            if(Resto2 >= 20 && Resto2 <= 49);
                {
                Resto3 = Resto2%20;
                Cedulas3 = (Resto2-Resto3)/20;
                if(Resto3 >= 10 && Resto3 <= 19);
                    {
                    Resto4 = Resto3%10;
                    Cedulas4 = (Resto3-Resto4)/10;
                    if(Resto4 >= 1 && Resto4 <= 9);
                        {
                        Resto5 = Resto4%1;
                        Cedulas5 = Resto4-Resto5;
                        }
                    }
                }
            }
        }
    printf("\n Voce Recebera: \n %d Notas de R$100 \n %d Notas de R$50 \n %d Notas de R$20 \n %d Notas de R$10 \n %d Notas de R$1 \n", Cedulas1, Cedulas2, Cedulas3, Cedulas4, Cedulas5);
    return 0;
    }

    Tu pode me informar, porque este programa está funcionando sem estar completo?
    avatar
    Convidado
    Convidado

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Convidado em Sex 25 Abr 2014, 21:07

    Primeiramente,tudo que eu faço nesse programa da errado.
    Se eu copio seu código do "Hello N blast" funciona.
    Mas se eu digito,idêntico,ele não funciona.
    Chequei tudo,e sempre diz pra usar ";" depois do "}".
    Já tentei usar,não deu.
    Estou desesperado.
    avatar
    anmani
    Veterano Nv.35
    Veterano Nv.35

    Karma Karma : 191
    Posts Posts : 1404

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por anmani em Sex 25 Abr 2014, 21:09

    Count Bleck escreveu:Primeiramente,tudo que eu faço nesse programa da errado.
    Se eu copio seu código do "Hello N blast" funciona.
    Mas se eu digito,idêntico,ele não funciona.
    Chequei tudo,e sempre diz pra usar ";" depois do "}".
    Já tentei usar,não deu.
    Estou desesperado.

    copia o código aqui para ver como está.
    avatar
    nicolas.mazur
    Iniciante Nv.1
    Iniciante Nv.1

    Karma Karma : 0
    Posts Posts : 1

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por nicolas.mazur em Sex 25 Abr 2014, 21:29

    vale lembrar que o int só pode ser um numero entre -32768 a 32767 (ou algo assim), as vezes o cara quer fazer conta colocando números aleatórios no teclado e fica com muitos dígitos, nesse caso daria erro no programa
    fica aí a dica pra quem for fazer o programa a com int e quiser fazer somas com números enormes ehueuheuhehue
    avatar
    Convidado
    Convidado

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Convidado em Sex 25 Abr 2014, 21:32

    "int main () {
        printf ("hello");
        return 0;

    }"
    Está correto?
    avatar
    Diogo Almeida
    Membro Nv.31
    Membro Nv.31

    Karma Karma : 69
    Posts Posts : 333

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Diogo Almeida em Sex 25 Abr 2014, 21:36

    Count Bleck escreveu:"int main () {
        printf ("hello");
        return 0;

    }"
    Está correto?
    Tu colocou esta parte?
    Código:
    #include <stdio.h>
    #include<stdlib.h>
    #include<math.h>
    avatar
    Convidado
    Convidado

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Convidado em Sex 25 Abr 2014, 21:38

    Ah é,foi isso
    valew,nem tinha notado que não tinha colocado.
    avatar
    Marcio1000
    Veterano Nv.MÁX
    Veterano Nv.MÁX

    Karma Karma : 1523
    Posts Posts : 8022

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Marcio1000 em Sex 25 Abr 2014, 22:24

    Ótimo topico, já estou dando uma brincada aqui.

    Vc vai futuramente passar o Lua (uma linguagem huehue br) também?
    avatar
    JonathanAlis
    Veterano Nv.MÁX
    Veterano Nv.MÁX

    Karma Karma : 1336
    Posts Posts : 2517

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por JonathanAlis em Sex 25 Abr 2014, 23:01

    Fiz os desafios. Gostei.
    O 1 foi difícil, mas saiu. só não sei se funciona pra todos os possíveis números.
    avatar
    Crono
    Veterano Nv.3
    Veterano Nv.3

    Karma Karma : 99
    Posts Posts : 460

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Crono em Sex 25 Abr 2014, 23:26

    Alguém sabe porque meu exercício C sempre dá 1 independente dos valores que eu dê para X e Y? o código está assim:

    int main()
    { int x = 5;
      int y = 4;
     (x + y)*(x - y)*14;
    }

    Conteúdo patrocinado

    Re: Aprendendo a Programar - Capítulo 2 - Variáveis, Entradas e Saídas!

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qua 13 Dez 2017, 07:27