Linguagem C Introdução
Derzu Omaia 2014
Derzu Omaia - 2014
Linguagem C
Características que tornaram o C uma das mais populares linguagens de programação:
Compilada; Estruturada (sequência, decisão, interação); Padronizada; Pequeno tamanho da sua definição; Procedural - Subdivisão do código e grande utilização de funções; Alguma conversão automática entre tipos de dados (ao contrário do Pascal);
2
Derzu Omaia - 2014
Linguagem C
Características que tornaram o C uma das mais populares linguagens de programação:
Utilização fácil e extensa de ponteiros para acessar memória, vectores, estruturas e funções; A possibilidade de usar construções de alto nível; A possibilidade de utilizar operadores de baixo nível; A produção de código executável eficiente; É considerada uma linguagem de nível médio; É “case sensitive”.
3
Derzu Omaia - 2014
Linguagem C
+
+
+
C +
Padr達o
+
+
A SUA !! GTK
Socket Library
Banco de Dados
Derzu Omaia - 2014
Linguagem C Estruturada; Orientada a função; Modo texto; Regras iniciais para o desenvolvimento de um programa em C:
Possuir pelo menos uma função; Possuir uma e apenas uma função chamada main() (principal); O programa iniciará a partir do início da função main(); 5
Derzu Omaia - 2014
Linguagem C
Regras iniciais para o desenvolvimento de um programa em C: Toda função é iniciada por { e finalizada por } Exemplo:
int main() { // Algoritmo } 6
Derzu Omaia - 2014
Linguagem C
Comentários Ajuda
na legibilidade Comentário de Linha: // comentário Comentário de bloco: /* comentário comentário */
7
Derzu Omaia - 2014
Linguagem C
Funções de Entrada e Saída: Saída:
printf(), puts();
Entrada:
scanf(), getchar();
São
definidas na biblioteca stdio.h
8
Derzu Omaia - 2014
Linguagem C
Função Print Format ou, printf():
Assinatura:
int printf(const char *format, lista_variaveis);
Primeiro Programa em C: #include <stdio.h> int main() { printf("Meu primeiro programa em C\n"); printf("testando"); }
9
Derzu Omaia - 2014
Linguagem C
Função Put String ou, puts():
Assinatura:
int puts(char * s);
Primeiro Programa em C: #include <stdio.h> int main() { puts("Meu primeiro programa em C"); }
10
Derzu Omaia - 2014
Linguagem C
printf()
Serve para exibir qualquer tipo de dado; Mais indicado para todos os casos. Não muda de linha;
puts():
Exibe apenas dados de texto; Pula uma linha; Não exibe variáveis numéricas; 11
Derzu Omaia - 2014
Linguagem C Palavras chave; Tipos de Dados; Variáveis; Constantes; Operadores; Instruções.
12
Derzu Omaia - 2014
Linguagem C ď Ž
Palavras reservadas:
auto break case char const continue default do
double else enum extern float for goto if
int struct long switch register typedef return union short unsigned signed void sizeof volatile static while 13
Derzu Omaia - 2014
Linguagem C
Tipos de dados primitivos: char:
um byte que armazena o código de um caractere do conjunto de caracteres local, também pode armazenar números inteiros.
int:
um número inteiro
float:
um número real com precisão simples
double:
um número real com precisão dupla
lógico?:
C não possui tipo lógico específico. Entretanto, qualquer tipo pode representar um valor lógico, onde 0 significa falso, e 1 verdadeiro.
14
Derzu Omaia - 2014
Linguagem C
Tipo primitivo char: Caracteres A B C D E F ... Z a b c d e f ... z Alfabéticos: Dígitos: 0 1 2 3 4 5 6 7 8 9 Caracteres : ; . , ( ) [ ] { } ? ! @ # $ % & * _ - = ’ ” Especiais: | \ < > /
Obs: O espaço é considerado caracter especial.
Devem ser utilizados entre aspas simples. Ex.: 'c', '2', '@' 15
Derzu Omaia - 2014
Linguagem C ď Ž
Tabela ASCII (American Standard Code for Information Interchange):
16
Derzu Omaia - 2014
Linguagem C
Modificadores de Tipos:
alteram algumas características dos tipos básicos para adequá-los a necessidades específicas;
Modificadores:
signed: indica número com sinal (inteiros e caracteres) unsigned: número apenas positivo (inteiros e caracteres) long: aumenta abrangência (inteiros e reais) short: reduz a abrangência (inteiros) 17
Derzu Omaia - 2014
Linguagem C
Precisão dos tipos: Tipo
Tamanho (Bytes)
Abrangência
char
1
-128
127
unsigned char
1
0
255
int
4
-2.147.483.648
2.147.483.647
unsigned int
4
0
4.294.967.295
short int
2
-32768
32767
long int
4
-2.147.483.648
2.147.483.647
unsigned long int
4
0
4.294.967.295
float
4
± 3,4·10-38
± 3,4·1038
double
8
± 1,7·10-308
± 1,7·10308
long double
10
± 3,4·10-4932
± 3,4·104932
18
Derzu Omaia - 2014
Variáveis
Entidade que armazena ou representa algum dado; Todo dado a ser armazenado na memória de um computador deve ser previamente identificado, ou seja, primeiro é necessário saber o seu tipo para depois fazer o seu armazenamento adequado. O nome de uma variável é utilizado para sua identificação. Posição na memória do computador 19
Derzu Omaia - 2014
Linguagem C
Variáveis:
Palavras reservadas não podem ser nomes de variáveis; Na formação do identificador só podem ser utilizados: dígitos, letras (tanto maiúsculas quanto minúsculas) e o caractere de sublinha ( _ ); O identificador deve começar sempre com uma letra ou caractere de sublinha; Apenas os 31 primeiros caracteres são considerados; Case sesitive, ou sensível a caixa: Nome != nome != NOME
20
Derzu Omaia - 2014
Linguagem C
Nome de variáveis:
Corretos:
Incorretos:
Contador
1contador
Teste23
oi!gente
Alto_Paraiso
Alto..Paraíso
__sizeint
_size-int
21
Derzu Omaia - 2014
Linguagem C
Declaração de variáveis: Tipo_variável
lista_de_variaveis;
Exemplos: int
x, y, z; float f; unsigned int u; long double df; char c = 'A'; // variavel definida e iniciada
Pode ser declarado em qualquer parte do código; Recomenda-se
no início da função.
22
Derzu Omaia - 2014
Linguagem C Máscaras de formatação Símbolo de por cento seguido de uma letra:
%c %d %u %f %lf %e %x %s
Caractere Inteiros com sinal Inteiros sem sinal Números float Números double Notação científica Números em hexadecimal Cadeia de caracteres (strings)
23
Derzu Omaia - 2014
printf()
Exemplo: int
i = 10; float r = 7.1234; #include <stdio.h> int main() { int i = 10; float r = 7.1234; printf("Inteiro: %d, Real: %f \n", i, r); }
Saída:
Inteiro: 10, Real: 7.123400
24
Derzu Omaia - 2014
printf()
Exemplo: int
i = 10; float r = 7.1234; Invertendo: #include <stdio.h> int main() { int i = 10; float r = 7.1234; printf("Inteiro: %d, Real: %f \n", r, i); }
Saída
– Comportamento inesperado:
Inteiro: -1610612736, Real: 0.000000
25
Derzu Omaia - 2014
printf() Caracteres de Controle Barra invertida seguido caractere:
bip \b backspace \n nova linha \r return \t tabulação horizontal \’ apóstrofe \” aspas \\ barra invertida
de
um
\a
26
Derzu Omaia - 2014
Linguagem C Leitura de variáveis: Função Scan Format ou, scanf():
Lê
dados da entrada (teclado) e os armazena em uma variável. Assinatura:
int scanf(char * format, lista_variaveis);
A
variável a ser lida deve ser colocada como parâmetro da função, e deve ser passado o endereço dessa variável. 27
Derzu Omaia - 2014
scanf()
Lê qualquer tipo de dado primitivo; Utiliza um texto formatado como mascara de leitura; Utiliza o endereço das variáveis como parâmetro. #include <stdio.h> int main() { // declaracao das variaveis int numero; printf("Entre com um valor:"); scanf("%d", &numero); }
28
Derzu Omaia - 2014
Linguagem C
scanf() e printf(): Exemplo: #include <stdio.h> int main() { // declaracao das variaveis int numero; printf("Entre com um valor:"); scanf("%d", &numero); getchar(); printf("O numero digitado foi %d", numero); getchar(); }
29
Derzu Omaia - 2014
scanf()
Utilizando duas chamadas:
variáveis,
em
duas
#include <stdio.h> int main() { int numero; float nota; printf("digite um valor\n"); scanf("%d", &numero); getchar(); printf("digite a media\n"); scanf("%f", &nota); getchar(); }
30
Derzu Omaia - 2014
scanf()
Várias variáveis de tipos diferentes ou iguais podem ser lidas de uma vez só. #include <stdio.h> int main() { int numero; float nota; printf("digite um numero e uma nota:\n"); scanf("%d %f", &numero, &nota); }
31
Derzu Omaia - 2014
Linguagem C Leitura de variáveis: Função Get Char ou, getchar():
Lê
um caractere (apenas 1) da entrada e o armazena em uma variável. Não lê números. Assinatura:
A
int getchar(void);
variável a ser lida deve receber o retorno da função. Pode ser utilizada apenas para bloquear o 32 fluxo de execução do programa.
Derzu Omaia - 2014
Linguagem C
Função getchar(): Exemplo: #include <stdio.h> int main() { // declaracao das variaveis char caractere; printf("Entre com um valor:"); caractere = getchar(); }
33
Derzu Omaia - 2014
Linguagem C Leitura de variáveis: Função Get String ou, gets():
Lê
texto/string, ou seja, um conjunto de caracteres de uma vez só. Não lê números. Assinatura:
A
int gets(char * s);
variável a ser lida parâmetro da função.
deve
ser
o 34
Derzu Omaia - 2014
Linguagem C
Função gets(): Exemplo: #include <stdio.h> int main() { // declaracao das variaveis char nome[50]; printf("Entre com um valor:"); gets(nome); }
35
Derzu Omaia - 2014
Linguagem C
Constantes: É um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Armazena um valor constante na memória; Pode assumir qualquer tipo; Pré-processado antes da compilação. Não tem tipo 36
Derzu Omaia - 2014
Linguagem C
Declaração de constantes: #define
nome_contante valor
Exemplos: #define
PI 3.14159265 #define valorMedia 7.0 Pode ser declarado em qualquer parte do código Recomenda-se no início do algoritmo, fora das funções. 37
Derzu Omaia - 2014
Operadores
Definição: Símbolo
de uma operação que se efetua sobre uma variável ou função.
Tipos: Atribuição; Aritméticos; Relacionais; Lógicos; Outros... 38
Derzu Omaia - 2014
Operadores
Atribuição: Atribui
o valor da direita à variável da esquerda; Binário; Representado pelo símbolo = Ex: x = 14; x = nota1 + nota2; x = y = z = 0; 39
Derzu Omaia - 2014
Operadores
Atribuição: +=
x += 2; <=> x = x+2; = x = 2; <=> x = x2; *= x *= 2; <=> x = x*2; /= x /= 2; <=> x = x/2; 40
Derzu Omaia - 2014
Operadores Aritméticos Tabela de operadores aritméticos: Operador Operação Categoria Prioridade
+ ++ -/ * % +
Manutenção do sinal
Unário
1
Inversão do sinal
Unário
1
Incremento
Unário
1
Decremento
Unário
1
Divisão
Binário
2
Multiplicação
Binário
2
Binário
2
Binário
3
Binário
3
Módulo da (resto) Subtração Adição
divisão
41
Derzu Omaia - 2014
Operadores Aritméticos
Precedência (Prioridade): Alta/baixa
ou Maior/menor; Parênteses altera.
Associatividade: À
esquerda: da esquerda para a direita À direita: da direita para a esquerda
42
Derzu Omaia - 2014
Operadores Aritméticos
Precedência e associatividade: 1) 2) 3) 4) 5)
X X X X X
= = = = =
1+2; 10+5.0/2; 1+2*2; 1+2.0/2*2; 2*3+1-5*2
43
Derzu Omaia - 2014
Operadores Aritméticos
Precedência e associatividade: 1) X = 1+2; X==3 2) X = 10+5/2; X==12.5 3) X = 1+2*2; X==5 4) X = 1+2/2*2; X==3 ou X==1.5 5) X = 2*3+1-5*2 X==-3
44
Derzu Omaia - 2014
Operadores Relacionais
Compara duas expressões e/ou variáveis; Binários; Retornam 1 ou 0;
Matemática
Símbolo
Significado
Exemplo
=
==
igual a
x == y
≠
!=
diferente de
x != y
>
>
maior que
x>y
<
<
menor que
x<y
≥
>=
maior ou igual que
x >= y
≤
<=
menor ou igual que
x <= y
45
Derzu Omaia - 2014
Operadores Lógicos
Compara duas expressões e/ou variáveis; Binários; Retornam 1 ou 0 (verdadeiro ou falso); Símbolo
Significado
Exemplo
&&
e
x && y
||
ou
x || y
!
não
!y
46
Derzu Omaia - 2014
Operadores LĂłgicos ď Ž
Tabela verdade geral: A
B
A && B
A || B
!A
!B
F
F
F
F
V
V
F
V
F
V
V
F
V
F
F
V
F
V
V
V
V
V
F
F
47
Derzu Omaia - 2014
Operadores de bits
Utilizados para manipulação de bits: “ Símbolo Significado Exemplo &
e
x&y
|
ou
x|y
^
xor (ou exclusivo)
^x
>>
deslocamento direito
x >> 1
<<
deslocamento esquerda
x << 1
~
complemento (inverte)
~x
48