Sei sulla pagina 1di 16

ARTHUR LIMA

APONTAMENTOS EM LINGUAGEM C
1 FERRAMENTAS NECESSRIAS PARA PROGRAMAR EM C:
- Compilador - converte seu cdigo para cdigo de mquina;
- Debugger - faz o debugging, ou seja, checa se h erros no seu cdigo;
- Editor de texto

2 CODE::BLOCS
2.1 Viso Geral
Exemplo primrio:

Resultado aps execuo:

2.2 Comentando cdigos em C - Usando // e /* */


No que as linhas que comeam com // foram totalmente ignoradas:
int main()
{
//O seguinte trecho mostra uma mensagem na tela
//Essas linhas comentadas no iro aparecer na tela
printf("Meu primeiro programa - C Progressivo!\n");
}

Integrated
Development
Enviroment - IDE
(ambiente de
desenvolvimento
integrado)

Tudo o que voc quer ver comentando coloca entre /* e */, e tudo que ser dentro
ser ignorado:
int main()
{
/* tudo aqui ser ignorado - tudo aqui ser ignorado - tudo aqui ser ignorado - tudo aqui
ser ignorado - tudo aqui ser ignorado - tudo aqui ser ignorado - tudo aqui ser ignorado tudo aqui ser ignorado - tudo aqui ser ignorado - */
printf("Meu primeiro programa - C Progressivo!\n");
}

2.2 Bibliotecas
2.2.1 O que e para que serve #include <stdio.h>?
Precisamos dizer ao compilador o que vamos usar, e para fazer isso, usamos o
'#include', que chamado de diretiva e em seguida escrevemos o nome da
biblioteca. No caso, vamos usar a biblioteca 'stdio.h' (O std de 'stdio' de standard
(padro) e o io de Input/Output (entrada e sada).
2.3 Funes
2.3.1 O que e para que serve int main() { }?
O main() a funo principal. Sempre que compilamos um cdigo em C, seu incio
se dar atravs dessa funo. O cdigo da funo tudo aquilo que fica entre as
chaves: {}
2.3.2 O que e para que serve printf("Digite o seu texto aqui!\n");?
O que nossa funo printf() faz imprimir uma mensagem na tela. Essa mensagem
chamada de String. Se colocar uma frase sem as aspas duplas, obter um erro,
pois a funo printf feita para receber e exibir uma string. Destaque-se que o \n o
new line, adicionando uma linha em branco.
2.3.3 O que e para que serve scanf("%_", &variavel);?

O scanf("%_", &variavel); guarda um dado fornecido pelo usurio.


Exemplo para nmero inteiro:
#include <stdio.h>
int main()
{
int numero;
printf("Digite um numero: ");
scanf("%d", &numero);
printf("O numero digitado foi: %d", numero);
}

Exemplo de operao matemtica com nmero inteiro:


#include <stdio.h>
int main()
{
int num1, num2, resultado;
printf("Digite um numero: ");
scanf("%d", &num1);
printf("Digite outro numero: ");
scanf("%d", &num2);
resultado = num1 + num2;
printf("%d + %d = %d", num1,num2,resultado);
}

Exemplo de operao matemtica com float:


#include <stdio.h>
int main()
{
float num1, num2, resultado;
printf("Digite um numero: ");
scanf("%f", &num1);
printf("Digite outro numero: ");
scanf("%f", &num2);
resultado = num1 * num2;
printf("%.1f + %.1f = %.2f", num1,num2,resultado);
}

Exemplo de insero de caracteres:


#include <stdio.h>
int main()
{
int caractere;
printf("Digite um caractere: ");
scanf("%c", &caractere);
printf("O numero digitado foi: %c", caractere);
}

Todavia existe um forma melhor de guardar caracteres, a getchar(). (get -> pegar;
char -> caractere).
#include <stdio.h>
int main()
{
char letra;
printf("Insira um caractere: ");
letra = getchar();
printf("Voc digitou: '%c'", letra);
}

Quando se deseja guardar dois caracteres, deve-se colocar um espao aps o


segundo scanf para que o enter aps a insero do primeiro caracter no seja
considerado um caractere. Esse simples espao um comando para o C
desconsiderar o enter, tab ou espao em branco
#include <stdio.h>
int main()
{
char letra1, letra2;
printf("Insira um caractere: ");
scanf("%c",&letra1);
printf("Insira outro caractere: ");
scanf(" %c",&letra2);

Aqui tem um

espao
printf("Voc digitou: '%c' e '%c'", letra1, letra2);
}

Caso no queria usar o espao entre " e o %c na scanf, limpar o buffer aps cada
scanf(), getchar()...

Para limpar o buffer em Windows, use: fflush(stdin)


Para limpar o buffer em Linux, use: __fpurge(stdin)
#include <stdio.h>
int main()
{
char letra1, letra2;
printf("Insira um caractere: ");
scanf("%c", &letra1);
fflush(stdin);
__fpurge(stdin);
printf("Insira outro caractere: ");
scanf("%c", &letra2);
printf("Voc digitou: '%c' e '%c'", letra1, letra2);
}

3 DECLARAES
3.1 Como declarar variveis inteiras na linguagem C?
Variveis so os nomes que vamos dar a determinado bloco de memria. Sempre
que voc quiser usar um dado (um nmero, um caractere, um texto etc) na
linguagem C, voc precisar declarar uma varivel.
Para declarar uma varivel inteira fazemos:
int nome_de_sua_variavel;

3.1.1 Como imprimir um nmero inteiro na tela?


Para imprimir o valor de uma varivel na funo printf, faz-se o seguinte:
Dentro do printf, entre as aspas duplas, os nmeros so representados por: %d, e
aps o fechamento das aspas, colocamos uma vrgula e o real valor da varivel que
representada por %d.

Exemplo 1:
#include <stdio.h> \* incluindo a biblioteca*\
int main()
{
printf("Eu tenho %d anos", 18); \*imprimindo a varivel*\
}

Exemplo 2:
#include <stdio.h> \* incluindo a biblioteca*\
int main()
{
int uf_de_origem; \*declarando a varivel uf_de_origem*\
printf("O valor da varivel uf_de_origem eh %d", uf_de_origem); \*imprimindo a varivel*\
}

No exemplo 2 apareceu um nmero totalmente aleatrio. Por qu? Porque no foi


dado valor varivel. E como se faz isso? Usando o smbolo de igualdade '='. A
inicializao pode ocorrer de duas formas:
1. Junto com a declarao da varivel:
int idade = 18;

2. Depois da declarao, em qualquer lugar do programa (aps a varivel ter sido


declarada):
int idade;
...
idade = 18;

Teremos ento:
#include <stdio.h> \* incluindo a biblioteca*\
int main()
{
int uf_de_origem = 18; \*declarando a varivel uf_de_origem*\
printf("O valor da varivel uf_de_origem eh %d", uf_de_origem); \*imprimindo a varivel*\
}

Nesse caso foi dado o valor 18 para a varvel uf_de_origem, logo este dado que
ser impresso no printf.

3.1.2 Modificadores do tipo inteiro em C: short e long


A diferena entre os inteiros e modificadores est na faixa de valores armazenadas.
Um inteiro de 1 byte (char) armazena do nmero -128 a +127
Um inteiro de 2 bytes armazena do nmero -32 768 a +32 767
Um inteiro de 4 bytes armazena do nmero -2 147 483 648 a +2 147 483 647
Um inteiro de 8 bytes armazena do nmero -9 223 372 036 854 775 808 a +9 223 372 036
854 775 807

'short' em ingls, significa curto e 'long', longo. Colocando uma dessas palavras
antes da 'int', voc definir um tamanho e uma faixa de valores para suas variveis.
Por exemplo, se criar a varivel inteira 'numero' como short, dever fazer:
short int numero;

De modo anlogo para uma varivel com o modificador 'long':


long int numero;

3.2 Como declarar os tipos float e double - nmeros decimais (ou reais) em C?
Os tipos float e double so especialmente feitos para trabalho com nmeros reais
(decimais). O que difere float do double apenas a preciso.
Exemplo:
float pi;
double juros;
pi = 3.14;
juros = 1.32101;

Importante:

a) Na linguagem de programao C, usamos o PONTO (.), e no a vrgula para


separar a parte inteira da decimal.
b) Quando fazemos uma operao matemtica de UM DECIMAL COM
INTEIRO, obteremos sempre um decimal. Assim, o resultado dessa
operao dever sempre ser armazenado em um float ou em um double.
3.2.1 Como imprimir um nmero decimal (float ou double) na tela?
Para imprimir o valor de uma varivel na funo printf, faz-se o seguinte:
Dentro do printf, entre as aspas duplas, os nmeros decimais (float ou double) so
representados por: %f, e aps o fechamento das aspas, colocamos uma vrgula e o
real valor da varivel que representada por %f.
Exemplo:
#include <stdio.h>
int main()
{
float pi = 3.14;
double piDouble = 3.1415926535897932384626433832795;
printf("Valor de pi %f\n", pi );
printf("Valor de pi mais preciso %f\n", piDouble );
}

Supondo que voc queira que seja exibido 6 casas decimais ao invs de usar '%f'
coloque: '%.7f'.
3.2.2 Como imprimir nmeros na forma exponencial em C?
Podemos inicializar uma varivel da seguinte maneira:
float numero = xEy;

Isso significa: x vezes 10 elevado a y = x * 10^y


Ou seja, 1E6 = 1 vezes 10^6 = 1 milho
float numero = xE-y

Significa: x vezes 10 elevado a -y = x * 10^(-y)


Por exemplo: 2E-3 = 2 vezes 10^(-3) = 0.002
3.3 Como declarar o tipo char em C?
Para armazenar caracteres vamos usar um tipo especial de dados, o char (de
character - caractere, em ingls). O tipo char serve para armazenar UM, e somente
UM, caractere.
Para declarar, usamos a seguinte sintaxe:
char nomeDaVariavel;

Inicializando variveis char em C: Para guardar uma letra no seu char, temos que
fazer uma operao especial: sempre colocar o caractere entre aspas simples.
Por exemplo, para guardar a letra C, escrevemos:
char letra = 'C';

3.3.1 Como imprimir caracteres e textos na tela?


Assim como usamos %d para mostrar inteiros, %f para float e double, vamos usar
um smbolo especial para caracteres: %c.
Exemplo:
#include <stdio.h>
int main()
{
char letra0='C', letra1=' ', letra2='P', letra3='r', letra4='o', letra5='g',
letra6='r', letra7='e', letra8='s', letra9='i', letra10='v',letra11='o', letra12='\n';
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c",letra0,letra1,letra2,letra3,letra4,
letra5,letra6,letra7,letra8,letra8,letra9,letra10,letra11,letra12);
}

4 OPERAOES MATEMTICAS EM C
4.1 Smbolos matemticos em C
Os smbolos so os seguintes:
Soma: +
Subtrao: Multiplicao: *
Diviso: /
Mdulo ou resto da diviso: %
#include <stdio.h>
int main()
{
float num1, num2, sum, sub, mult, div;
printf("Digite o primeiro numero: " );
scanf("%f", &num1);
printf("Digite o segundo numero: " );
scanf("%f", &num2);
//Soma
sum = num1 + num2;
//Subtrao
sub = num1 - num2;
//Multiplicaao
mult = num1 * num2;
//Diviso
div = num1/num2;
printf("%.2f + %.2f = %.2f\n", num1, num2, sum);
printf("%.2f - %.2f = %.2f\n", num1, num2, sub);
printf("%.2f * %.2f = %.2f\n", num1, num2, mult);
printf("%.2f / %.2f = %.2f\n", num1, num2, div);
}

4.2 Precedncia dos operadores matemticos em C


Ordem de precedncia:
1. Mdulo ou resto da diviso: %

2.
3.
4.
5.

Diviso: /
Multiplicao: *
Subtrao: Soma: +

Pode utilizar os parnteses para definir a precedncia, tornando visvel a regra


acima ou alterando-a. Logo 2*2-1=3 ou (2*2)-1=3 e 2*(2-1)=2.
Contador = 0;
Contador = Contador + 1.
Ou
Contador += 1. (atalho)
Valores lgicos: true ou false, 1 ou 0
4.3 Operadores Lgicos E (&&), OU (||) e de Negao (!)

5 TESTES E LAOS
5.1 O que , para que serve e como usar o teste condicional IF em C?
O 'if', em ingls, quer dizer 'se', no sentido de condio.
Exemplo de cdigo: Condio sempre verdadeira
#include <stdio.h>
int main()
{
if(1)
{
printf("Esse teste condicional verdadeiro");
}
}

Exemplo de cdigo: Condio sempre falsa


#include <stdio.h>
int main()
{
if(0)
{
printf("Esse teste condicional falsa");
}
}

5.2 O que , para que serve e como usar o ELSE em C?


A palavra 'else' em ingls quer dizer 'ou', e ela est totalmente ligada ao IF, que j
estudamos. Se IF significa 'se' e o ELSE significa 'ou', voc pode pensar e concluir
para que serve o ELSE? O ELSE s existe na presena do IF e s aparece depois
que o IF aparecer. A caracterstica principal do ELSE que ele no recebe nenhuma
condio (ou seja, no tem parntesis depois do ELSE, como tem no IF). Na
verdade ele recebe uma condio, que implcita. A condio dele contrria do IF.
A sintaxe dessa importantssima dupla a seguinte:
if ( condio )
{
//se a condio

//for verdadeira
//esse cdigo rodar
}
else
{
//caso a condio
//seja FALSA
// esse cdigo que rodar
}

Ou seja, se a condio retornar um valor lgico VERDADEIRO, o IF rodar. Porm,


caso a condio retorne um valor lgico FALSO, o ELSE que rodar.
5.3 Fazendo testes e comparaes
5.3.1 O operador de igualdade em C: ==
Se quisermos comparar uma varivel x com uma varivel y fazemos: x == y.
Ademais uma pergunta (comparao) sempre retorna um valor booleano (TRUE ou
FALSE).
Exemplo:
#include <stdio.h>
int main(void)
{
int resultado;
printf("Quanto eh 1 + 1? ");
scanf("%d",&resultado);
if(resultado == 2)
{
printf("Parabens, voce nao usa drogas\n");
}
else
{
printf("Amigo, pare de fumar isso...\n");
}
}

5.3.2 Os operadores: >, <, >=, <=


Se quisermos saber se uma varivel x maior que uma varivel y fazemos: x > y.

Exemplo:
#include <stdio.h>
int main(void)
{
int idade;
printf("Digite sua idade: ");
scanf("%d",&idade);
if(idade > 17)
{
printf("Voce eh de maior, pode entrar! \n");
}
else
{
printf("Sinto muito, voce nao pode entrar\n");
}
}

O mesmo de aplica aos operadores <, >=, <=.


5.3.3 O operador diferente de em C: !=
Se quisermos saber se uma varivel x diferente de uma varivel y fazemos: x != y.
Exemplo:
#include <stdio.h>
int main(void)
{
int numero;
printf("Adivinha a senha, entre 1 e 10: ");
scanf("%d",&numero);
if(numero != 7)
{
printf("Errado! Saia da Matrix!\n");
}
else
{
printf("Parabens, voce entrou no sistema\n");
}
}

5.3.4 O operador mdulo ou resto da diviso em C: %

Resto da diviso o valor que sobra/resta da diviso para que o quociente


permanea inteiro. O smbolo de resto da diviso %. Veja, o que est em vermelho
o resto inteiro da diviso:
5 % 2 = 2*2 + 1
7 % 3 = 3*2 + 1
7 % 4 = 1*4 + 3
Exemplo, verificando se o numero impar ou par atravs do resto:
#include <stdio.h>
int main(void)
{
int numero;
printf("Digite um inteiro: ");
scanf("%d",&numero);
if( (numero % 2) == 0)
{
printf("Eh par\n");
}
else
{
printf("Nao eh par\n");
}
}

Observao: Qual a diferena entre: x = 1 e x == 1? A resposta simples: no


primeiro exemplo estamos atribuindo, no segundo estamos comparando.
5.3.5 Operadores de Incremento (++) e Decremento (--)
5.3.5.1 Somando e Subtraindo variveis em C
O incremento em uma unidade quer dizer: a = a + 1.
O decremento em uma unidade quer dizer: a = a - 1.
Exemplo:
#include <stdio.h>

int main()
{
int a=1;
printf("a = %d\n", a);
a = a + 1;
printf("a = %d\n", a);
}

Explicao: Quando fazemos a = porque vamos atribuir um valor ao 'a', um novo


valor, INDEPENDENTE do que ele tinha antes. E qual o valor que vamos atribuir? 'a
+ 1'! Ou seja, o 'a' vai ser agora o seu antigo valor mais 1! O mesmo se aplica ao
decremento a - 1.
Porm, chato ou da preguia ficar escrevendo a=a+1 e a=a-1 o tempo inteiro.
Ento, inventaram atalhos para isso!
a = a + 1 pode ser representado por a++ ou ++a
a = a - 1 pode ser representado por a-- ou --a
Exemplo:
#include <stdio.h>
int main()
{
int a=1,
b=1;
printf("Valor inicial de a = %d\n", a);
printf("Valor inicial de b = %d\n", b);
printf("\nIncrementando: a++\n");
a++;
printf("Decrementando: b--\n");
b--;
printf("\nAgora a = %d\n", a);
printf("Agora b = %d\n",b);
}

Potrebbero piacerti anche