sexta-feira, 29 de abril de 2011

Respostas Printf e Scanf

É só copiar e colar no codeblocks


Exercício 1


#include “stdio.h”


#include “stdlib.h”


int main()


{



float x,y,z;


//com eu disse 3 numeros e nao 3 numeros inteiros vou declarar como float


printf("Digite 3 numeros \n");


//digite enter apos cada numero digitado


scanf("%f%f%f",&x,&y,&z);


printf("Os numeros digitados sao\n %2.f\n %2.f\n %2.f\n",x,y,z);


return 0;


}



Exercício 2



#include “stdio.h”


#include “stdlib.h”


int main()


{


//o numero entre colchetes e opcional dependendo do tamanho do


//nome a ser escrito


char nome[10];


printf("Digite seu nome\n");


scanf("%s",&nome);


printf("seu nome e %s",nome);


return 0;


}


Exercício 3



#include “stdio.h”


#include “stdlib.h”



int main()


{


//o numero entre colchetes e opcional dependendo do tamanho do


//nome a ser escrito


char nome[10],sobrenome[10];


printf("Digite seu primeiro e segundo nome\n");


scanf("%s%s",&nome,&sobrenome);


printf("seu nome completo e %s %s",nome,sobrenome);


return 0;


}


O que é um compilador????

O que é um compilador?


Um compilador é um programa de computador (ou um grupo de programas) que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto.


Resumindo,ele pega tudo que você escreveu no codeblocks e traduz para o computador.O computador não entende a palavra “programa”,mas sim um conjunto de digitos binarios tipo “0100110001100” que ele possa entender e se necessario armazenar em disco.


Um exemplo simples é uma cozinheira fazendo um bolo.


Ela pega ovos,farinha,fermento,agua faz aquela mistureba e leva ao forno alguns minutos e pronto.O bolo esta pronto pra comer.


Você não vai comer nada cru neh??Então,o forno faz o papel do compilador,ele reune tudo e transforma em algo que você possa comer.O compilador pega tudo que você digitou e transforma em algo que o computador possa entender.


Espero ter sido claro!


quinta-feira, 28 de abril de 2011

Como fazer um algoritmo??


Como fazer um algoritmo?


Se você da de cara com um problema do tipo,escreva um algoritmo que leia 3 números e imprima a média e não tem nem idéia de como começar.Vixi é porque o bicho tá pegando pro seu lado.


Um dos motivos é pelo fato de você não estar acostumado, pois se eu te pedisse a soma de (1 + 2 + 3)/3 você saberia fazer.Outro motivo é porque você não está estudando ou esta estudando de uma forma incorreta.Não praticar é um erro terrível na programação pois só praticando você aprende onde você está errando.


Se você não sabe nada de algoritmos, nada mesmo,pegue o texto tutorial do codblocks e printf e scanf tudo aqui no blog mesmo pra você ter pelo menos uma idéia de onde começar.


Para aprendermos a criar algoritmos não basta estudar ou copiar algoritmos, para se aprender como manipular situações e codificá-las em forma de algoritmo precisamos de escrever e criar algoritmos, pegar exercícios, e praticar.



Beleza,você acha que é um bicho de sete cabeças pelo fato de estar em inglês,ter variáveis,um monte de chavinhas e pelo fato de não servir pra porra nenhuma na sua vida.


Bem isso em partes pode ser verdade,mas testa também a sua capacidade de enfrentar situações novas com desafios e uma coisa que as empresas presam muito que é sua capacidade de aprendizado,que pode ser mais lento ou mais rápido.


Chega de papo furado pois o que interessa aqui é fazer um algoritmo.


Imagine você numa padaria sentado e você dá de cara com 2 garrafas e um pote.Uma das garrafas está escrito café e na outra leite,no pote está escrito açúcar.


Repare que tudo está dentro de algo ou melhor está armazenado em algo.Pois é isso são variáveis,coisas que armazenam outras coisas.Para poder tomar seu café então você Precisa de outra coisa tipo uma xícara ou um copo que inicialmente está vazio.Então você coloca café,um pouco de leite e uma quantidade média de açúcar e pronto,sua xícara não está mais vazia,sua variável que antes estava vazia agora esta cheia de café com leite.Ai você toma tudo e der repente te dá uma sede danada,você lava o copo e enche ele de água.O copo que antes tinha café com leite agora tem água,esse é o motivo da variável ter esse nome,pois o seu conteúdo pode variar.


Quando você lê um programa você tem que pensar em como ele vai funcionar e a primeira coisa que você deve pensar são quantas variáveis você vai usar.


Faça um programa que leia 3 números e imprima a média deles.


Bem pensando da mesma forma,se o programa vai ler 3 números então eu preciso de 3 variáveis,e para a media eu preciso de uma quarta variável que é onde será armazenado o resultado final.


Da mesma forma que na padaria cafe,leite,açucar e sua xicara onde ficara armazenado o conjunto dos 3


Ficaria assim


Int a,b,c; // três números


Media = (a+b+c)/3;


Esse tem que ser seu pensamento inicial,é daí que partimos o resto fica por sua imaginação e leitura dos textos anteriores sobre a linguagem C.

Printf e Scanf

Hoje vou falar sobre os comandos printf e scanf que são os comandos de entrada e saída de dados. Primeiro vou falar um pouquinho sobre dados.Dados são informações organizadas e inteligíveis.Quando falamos de entrada de dados,falamos de informações que o computador vai entender.Um exemplo prático é quando colocamos um pendrive no computador,ele vai ler as informações e te mostrar na tela(que é o dispositivo de saída).Vai te mostrar fotos,musicas e etc. que são conjuntos de bits(dígitos binários) que formam dados que geram informações organizadas que podem ser interpretadas pelo Windows media player no caso de músicas ou o Word no caso de documentos.




Exemplos:




Dispositivos de entrada:




· Teclado




· Drive de cd/DVD




· Mouse




· Drive de disquete




Dispositivos de saída:




· Drive de cd-rom




· Monitor




· Caixas de Som




Concluindo, tudo que você entende são dados(no caso da música ou texto estiver em japonês fica difícil de entender,mas nada que um bom tradutor não resolva!)




O programa




Quando você se depara com um problema você deve ter um pensamento organizado, coeso (falei bonito ein!) e estruturado.




Como assim???




Imagine que sua mãe peça para você ir na padaria,você sem perceber traça logo a trajetória e vai,chegando la você pede por exemplo 5 pães,a atendente coloca os pães no saco,você paga e pronto,retorna com os pães pra casa.




Agora imagine onde esse problema de ir pegar pãezinhos pode dar erro.




· Ser assaltado no caminho (hahaha),esquece isso!




· Você esqueceu onde é a padaria.




· Você está sem dinheiro




· Você não sabe quantos pães comprar




· Você não sabe quanto é o preço do pão e quantos pães vai poder comprar




Bem antes de você ir na padaria você deveria ter pensado nisso tudo.




Imagine a situação, você chega na padaria,para de frente para o balcão e fica olhando pra cara da atendente.O que ela pensa?




· Você é mudo!




· Você é louco!




· Você é um psicopata!




No mundo das linguagens de computador tudo funciona perfeitamente como no caso da padaria,até no caso do assalto.O computador não é burro mas é lógico,ele funciona com informações passadas por você e faz o que você pede.




No caso da padaria você tem que dizer quantos pães você quer para que ela possa te entregar X pães.




No seu programa isso vai funcionar da mesma forma. O comando printf serve para você exprimir algo para alguém, no caso o usuário.




Exemplos: Digite 3 números,digite 3 palavras,de a resposta em float.




O printf está relacionado a você pedir informações e depois retornar a resposta ou advertência no caso do usuário ter digitado algo errado,ou o que você quiser dizer para o usuário.




Agora vamos nos colocar no lugar da balconista(eu não queria,espero que ninguém que esteja lendo isso trabalhe em padarias,sempre lembro da piadinha de queimar a rosca do padeiro hahaha),voltando,se você não disser para ela quantos pães você quer ela não poderá te entregar nada,pois ela não sabe quantos você quer.




A balconista está fazendo o papel do computador,você tem que dizer quantos pães você quer logo depois do printf(“Digite a quantidade de pães”); e ela vai fazer um scanf e ela saberá quantos pães poderá colocar na embalagem e te retornar os pães return pães.




Imagine que você é a função principal main(),chama a função balconista e ela te retorna a quantidade de pães.




Isso é um conceito de função externa,acho que andei um pouquinho mas tudo bem,vamos precisar desse conceito mais tarde.




Vamos falar um pouco de variáveis.




Variável como o próprio nome já diz ,ela pode variar o valor.Você pode colocar um pão na embalagem como 10,isso se couber.já percebeu que ela pega o saquinho menor quando você pede 3 pães e um maior quando você pede 10,então,isso é um tipo de variável pré definida pelo usuário pois você tem que saber com quantas unidades irá trabalhar.




Tipo de Variável




Algo muito importante é o tipo da variável,você não chega em uma padaria e pede uma correia de fusca,ou pede pra ela colocar na embalagem um tijolo.O tipo de dado tem que ser coerente e compatível.




= “significa recebe”




Embalagem = pães




Garrafa = cachaça




Sua prova = 0




Variável inteira = 10




E por ai vai.




Essa foi uma explicação básica dos comandos printf e scanf de uma forma mais vulgar,logo abaixo você vai encontrar informações de sites respeitáveis como a Wikipédia ou UFMG que trata de uma forma mais técnica a programação.Leia com atenção e preste atenção nos símbolos,ponto e virgula,e abre e fecha aspas e etc.




Leia tudo e no final vou colocar diversos exemplos para o treino dessas duas funções,lembrando que sem elas você não faz nada,nada mesmo em C.Lembrando de novo que para a leitura desse texto é altamente aconselhável que você leia o texto anterior chamado “tutorial do codeblocks”,que explica em detalhes a estrutura de programação além de explicar cada comando um a um com detalhes.




Boa leitura.







Introdução




Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Muitas linguagens de programação exigem que os programas contenham declarações que especifiquem de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.







Tipos de Dados




Tipos Básicos:




Os dados podem assumir cinco tipos básicos em C que são:







  • char: Caracter: O valor armazenado é um caractere. Caracateres geralmente são armazenados em códigos (usualmente o código ASCII).



  • int: Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado normalmente depende da máquina em que o programa está rodando.



  • float: Número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais.



  • double: Número em ponto flutuante de precisão dupla



  • void: Este tipo serve para indicar que um resultado não tem um tipo definido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos tipos anteriores.






printf




A função printf() tem a seguinte forma geral:




printf (string_de_controle,lista_de_argumentos);




Teremos, na string de controle, uma descrição de tudo que a função vai colocar na tela. A string de controle mostra não apenas os caracteres que devem ser colocados na tela, mas também quais as variáveis e suas respectivas posições. Isto é feito usando-se os códigos de controle, que usam a notação %. Na string de controle indicamos quais, de qual tipo e em que posição estão as variáveis a serem apresentadas. É muito importante que, para cada código de controle, tenhamos um argumento na lista de argumentos. Apresentamos agora alguns dos códigos %:






































































Código




Significado




%d




Inteiro




%f




Float




%c




Caractere




%s




String




%%




Coloca na tela um %







Resumo:Quando você der de cara com o símbolo de % você saberá que ele está puxando um valor de variável de algum lugar.




scanf




O formato geral da função scanf() é:




scanf (string-de-controle,lista-de-argumentos);




Usando a função scanf() podemos pedir dados ao usuário.







Bem se você sobrevivei a leitura até aqui significa que está mesmo com vontade de aprender ou PRECISANDO DE NOTA(eu vou ficar com esse segundo).




Vamos aos exemplos.




Todo programa vai começar com




#include ”stdio.h”




Obs:se você for um cara meio boiolado e perceber que eu estou usando aspas ao invés de símbolo de maior e menor na frente do nome da biblioteca saiba que não faz diferença alguma para o compilador.Todos os dois casos são validos mas o blog não está aceitando o símbolo de maior e menor então vai aspas mesmo pois funciona.




Já colocamos a biblioteca que os comandos de entrada e saída precisam agora vamos para a próxima parte.




O corpo principal.




Olhe para você (quando estiver no banho!),você está peladão ou peladona,você está sem nada então só a o corpo.A blusa,calsa,sapato são apenas acessórios,no programa funciona da mesma forma,temos o corpo principal com a função main e o resto são acessórios.




Você não começa dos pés e termina na cabeça,então a função começa e termina com chaves.




Int main()




{




}




Agora vamos declarar para que o usuário digite alguma coisa.




Obs:alguma coisa implica em qualquer coisa,então o valor não poderá ser inteiro ou ponto flutuante,pois se o Mané do usuário resolver digitar que comprou uma blusa nova o programa da pau na hora,é a mesma coisa que tentar colocar um elefante dentro de um fusca,é totalmente imcompativel.




Vou escolher char




Char x [50];




Isso significa que o usuário terá 50 espaços para digitar




Agora vamos pedir para o usuário digitar alguma coisa




Printf(“Digite alguma coisa”);




Scanf(“%c”,&x);




Pronto o usuário digitou alguma coisa e isso foi atribuído a X.




O símbolo & está puxando o valor que está em %c e atribuindo a ele o seu valor.




Printf(“o que voce digitou foi: %s ”,x);




A única coisa que não vai ser considerada como literal quando estiver entre aspas é o que tiver % na frente que vai puxar um valor de variável que estiver depois do fechamento da aspa e virgula em seguida.




O ponto e virgula você já deve ter percebido que ele é um terminador de comandos,se ele não estiver no final da linha o codeblocks irá considerar que o comando não acabou ainda e a conseqüência disso é???ERRO no programa.




%s significa que é uma cadeia de caracteres uma string por isso o %s.




A cadeia de caracteres aceita praticamente qualquer coisa,muito usado para senhas pois pega caracteres literais,numéricos e alphanumericos tipo.




Abcd1234!@#$




Teste você mesmo!




O resultado foi




#include




int main(int argc, char *argv[])




{




char x [50];




printf("Digite alguma coisa\n");




scanf("%s",&x);




printf("o que você digitou foi %s\n",x);




return 0;




}







Como eu disse que a função sempre retorna um valor a função principal main() retorna o valor zero para o int .




Int main()




{




Return 0




}




Quando o int recebe 0 sabe que o programa terminou.




Ahh esqueci




\n serve para quebra de linha.




Exercicios:




Vamos fazer uns programas bem básicos e sugiro que você tente fazer pois a prova é escrita e a IDE codeblocks irá te mostrar onde estão os seus erros de “”,; e etc.. que são muitos comuns.




1-Faça um programa que leia e imprima 3 numeros.




2-Faça um programa que leia seu nome e imprima ele.




3-Faça um programa que leia 2 nomes e junte eles.




Respostas no próximo post




No próximo texto irei abordar operações aritméticas.




Qualquer erro é só me avisar!

quarta-feira, 27 de abril de 2011

Subrotinas pag.82

Exercício 1


Resumo:ler 2 numeros e imprimir o intervalo fechado do menor para o maior.


Resolução:exercicio usando duas variaveis e um procedimento externo.



#include “stdio.h”


#include “stdlib.h”


void intervalo(int n1,int n2)


{


int i;


int menor=n1;


int maior=n2;


if (n1>n2)


{


maior=n1;


menor=n2;


}


for(i=menor;i<=maior;i++)


{


printf("%d\n",i);


}


}


int main()


{


int num1,num2;


printf("Digite 2 numeros inteiros");


scanf("%d %d",&num1,&num2);


intervalo(num1,num2);


return 0;


}


Exercício 2


Resumo:Você irá receber um certo tempo em segundos e ira mostrar ele na tela em horas minutos e segundos.


Resolução:Este já é um exercicio um pouco mais sofisticado onde envolve uma lógica mais sofisticada.


Você recebe o tempo em segundos.


então temos que 1 segundo = 1s, 1 minuto é igual a 60s,1 hora igual a 3600.


então faremos as conversões dentro de uma função externa.


#include “stdio.h”


#include “stdlib.h”


void calcula_tempo(int tempo)


{


int horas, horas_seg, minutos, segundos;


horas_seg=3600;


horas = (tempo/horas_seg);


minutos = (tempo -(horas_seg*horas))/60;


segundos = (tempo -(horas_seg*horas)-(minutos*60));


printf("%dh : %dm :%ds \n",horas,minutos,segundos);


}


int main()


{


int i;


printf("Digite o tempo de duracao do experimento");


scanf("%d", &i);


calcula_tempo(i);


return 0


}


Exercício 3


Resumo:Recebe o raio e calcula o volume


Resolução:Aplicação direta de fórmula com variável e função externa.


#include “stdio.h”


#include “stdlib.h”


float volume(float r)


{


float v;


v=(4*3.14*(r *r*r))/3;


return v;


}


int main()


{


float raio;


float vol;


printf("Digite o raio\n");


scanf("%f",&raio);


vol=volume(raio);


printf("%2.f\n",vol);


return 0;


}


Exercício 4


Resumo:receba uma idade em ano,meses e dias e imprima a idade em dias.


Resolução:esse poderia se tornar um programa complicado se fossemos considerar o ano bissexto e meses com 28 dias,pois teriamos que fazer cálculos dos meses em matrizes e comparar quantos meses tem 28,30 e 31 dias,como não vimos os vetores ainda multiplicarei por 30 dias os meses.



#include “stdio.h”


#include “stdlib.h”



int idade_dias(int ano,int mes,int dia)


{


int total,c,b,a;


total=(ano*365)+(mes*30)+(dia*1);


return total;


}


int main()


{


int x,y,z,tot;


printf("Digite sua idade em ano,meses e dias \n");


scanf("%d %d %d",&x,&y,&z);


tot=idade_dias(x,y,z);


printf("%d ",tot);



return 0;


}



com certeza vai ter algum erro,é so me avisar!