Rápida introdução a linguagem C
Uma pequena e rápida introdução a linguagem c
Rápida introdução a linguagem C.
Ela é curta porque o objetivo é suprir o mínimo para você poder praticar os exercícios de lógica de programação.
Se você chegou até esta página por vias externas, veja o índice de lógica da programação para entender melhor a proposta.
Vamos experimentar a linguagem C através do Linux.
Primeiro programa
O programa inicia-rá no bloco da função main
.
int main() {
..seu código
..seu código
..seu código
}
Como main
é uma função, ela deve sempre retornar algo. Por isso acrescentaremos return 0;
.
int main() {
..seu código;
..seu código;
..seu código;
return 0;
}
E esse “algo” é do tipo inteiro int main() {...
.
Poderíamos escrever um programa para imprimir “Primeiro programa”
int main (){
printf ("Primeiro programa\n");
return 0;
}
Mas printf()
é uma função, de onde vem essa função?
Vem do cabeçalho stdio
, que é a abreviação de “standar I/O” (input/output).
#include <stdio.h>
int main (){
printf ("Primeiro programa\n");
return 0;
}
Digite o código acima em um editor de texto qualquer e depois compile/rode.
Você deve saber como compilar o código no terminal.
Variáveis
A linguagem C é “Case Sensitive”, isto é, maiúsculas e minúsculas fazem diferença.
Se declararmos uma variável com o nome soma
ela será diferente de Soma
, SOMA
, SoMa
ou sOmA
.
Os seguintes nomes são válidos: minhaVariavel
, minha_variavel
e var1
.
Os seguintes nomes são inválidos: minha-variavel
e 2var
.
Variáveis são espaços alocados na memória do computador.
Tipos
A linguagem C possui diversos tipos, mas para começar basta:
Tipo | Tamanho (bit) | Extensão (range) |
---|---|---|
char | 8 | 0 a 255 |
int | 16 | -32.768 a 32.767 |
float | 32 | 3.4e-38 a 3.4e+38 |
double | 64 | 1.7e-308 a 1.7e+308 |
void | 0 |
O tipo char
comporta apenas caracteres.
O tipo int
comporta os números inteiros.
Os tipos float
e double
comportam números reais, só que o double
é de maior precisão. Também chamamos de
“ponto flutuante” e “ponto flutuante de dupla precisão”, respectivamente.
Cada tipo de dados possui uma extensão (range) diferente e ocupa um determinado espaço na memória. Inicialmente, isso não é algo com que devemos nôs preocupar.
Declarando Variáveis
Variáveis devem ser declaradas antes do uso. Normalmente, fazemos isso no começo do código.
int main () {
float valorFracionado , saldo , salarioMinimo;
char letra , ultimaLetra;
int entrada1 , entrada2, entrada3;
}
Também podemos declarar e inicializar variáveis.
int main () {
float saldo = 0.0
char letra = "a";
int entrada1 = 9;
}
Operadores…
Artiméticos
Com os operadores artiméticos podemos realizar cálculos matemáticos.
Símbolo | Significado |
---|---|
+ | adição |
- | subtração |
* | multiplicação |
/ | divisão |
% | resto da divisão (módulo) |
A precedência de operadores é como se segue:
*
/
%
(esquerda para a direita)+
-
(esquerda para a direita)
Mas com a ajuda do parênteses ()
podemos alterar a precedência.
Relacionais
Com os operadores relacionais podemos montar expressões para tomada de decisão.
O resultado de uma expressão é sempre verdadeiro (true) ou falso (false), normalmente colocamos as expressões entre parênteses.
Exemplo:
(100 == 100) // true
(150 == 10) // false
Símbolo | Significado |
---|---|
> | maior que |
>= | maior OU igual a |
< | menor que |
<= | menor OU igual a |
== | igual a |
!= | diferente de |
Lógicos
Com os opradores lógicos podemos montar expressões mais elaboradas, por exemplo:
(valor1 > valor2) && (valor2 > valor3) // (valor1 maior que valor2) E (valor2 maior que valor3)
Símbolo | Significado |
---|---|
&& | E (and) |
|| | OU (or) |
! | negação (not) |
Produzindo saída de dados
Saída
Para implementar a “saída” utilizamos a função printf()
, ela depende do arquivo cabeçalho stdio.h
.
#include <stdio.h>
int main (){
printf ("Hello, world!\n");
return 0;
}
A função depende dos operadores de formatação listados abaixo.
Tipo | Formato | descrição |
---|---|---|
char | %c | caraceter |
int | %d | inteiro |
float | %f | ponto flutuante (reais) |
char[] | %s | cadeia de caracteres (string) |
Ela (a função) aceita n parâmetros, sendo que o primeiro é sua string (cadeia de caracteres) e os demais dependerão da quantidade de varíaveis utilizadas “dentro” string. Veja a figura abaixo para entender melhor.
Exemplos:
printf ("%s \n", "A string"); // "A string"
printf ("%s e um exemplo","Este") // "Este e um exemplo"
printf ("Um caractere %c e um inteiro %d",'D',120) // "Um caractere D e um inteiro 120"
printf ("%f",40.345) // "40.345"
O operador %%
é um escape para o caracter "%"
, veja exemplos:
printf ("Teste %% %%") // "Teste % %"
printf ("%s%d%%","Juros de ",10) // "Juros de 10%"
Entrada
Já a entrada de dados fica por conta da função scanf()
.
Ela depedende do mesmo arquivo cabeçalho stdio.h
e tem o funcionamento muito parecido com a printf()
.
Os operadores de formatação são os mesmos dos de saída.
Veja um exemplo básico:
#include <stdio.h>
int main()
{
int numero;
printf("Digite um numero: ");
scanf("%d", &numero);
printf("O numero digitado foi: %d", numero);
}
Ao utilizar a função scanf()
, repare que a acrescentamos o operador unário &
antes do nome da variável:
scanf("%d", &numero);