Prévia do material em texto
1
Prof. Luis Nícolas de Amorim Trigo
nicolas.trigo@ifsertao-pe.edu.br
ProgramaPrograma çção Estruturadaão Estruturada
Linguagem C
Fundamentos da Linguagem
2
SumSum ááriorio
• Estrutura Básica
• Bibliotecas Básicas
• Tipos de Dados Básicos
• Variáveis/Declaração de
Variáveis
• Palavras Reservadas
• Constantes
• Expressões
• Operadores
• Comando de Atribuição
• Conversão de Tipos
• Comandos de Entrada e
Saída
• Formatações Numéricas
2
3
Estrutura BEstrutura B áásicasica
• A função main() é a parte
principal de qualquer
programa de linguagem C.
• Todo programa em C é uma
função.
• Execução inicial.
• Com o uso do padrão ANSI,
retorna um número inteiro e
que poderá ter ou não
parâmetros de entrada.
• O corpo ou as declarações
de uma função devem estar
dentro das “{“ “}”.
int main(){
;
}
4
Bibliotecas bBibliotecas b áásicassicas
• São um conjunto de
funções compiladas em
arquivos com a extensão
“.lib”.
• Essas bibliotecas oferecem
diversas funções.
• Para usar uma determinada
função de uma das
bibliotecas, inclui no código-
fonte uma referência para a
biblioteca.
• Esta referência é feita
através da diretiva
#include .
• Exemplo:
#include
• No momento da
compilação, a biblioteca é
incluída no lugar da diretiva.
3
5
Bibliotecas bBibliotecas b áásicassicas
• stdio.h � Standard Input Output. Funções básicas de
entrada e saída. Dispõe as funções printf e scanf.
• stdlib.h � Standard Library Functions. Funções
envolvendo alocação de memória. Necessário para o
uso de system() .
• String.h �Funções de manipulação de strings.
• ctype.h �Funções de teste e tratamento de caracteres.
• conio.h �Funções de manipulação de caracteres na
tela.
• math.h �Funções matemática.
6
Tipos de Dados BTipos de Dados B áásicossicos
• A linguagem C possui diversos tipos de
dados, onde os tipos mais comuns são:
– int
– float
– char
4
7
intint
• Tipo inteiro
– int � 16, 32, 64 bits.
– short int � mínimo de
16 e não pode ser
menor que int.
– long int � mínimo de
32 bits.
– long long int �
mínimo de 64 bits.
8
charchar
• Ocupa 1 byte e
armazena caracteres.
• Com vetores do tipo
char é possível
armazenar strings
(cadeia de
caracteres).
5
9
floatfloat
• Armazena números
com ponto flutuante
de precisão simples,
ou seja, casas
decimais.
10
doubledouble
• Armazena números
com ponto flutuante
de dupla precisão.
• Normalmente o dobro
do tamanho do float.
6
11
Tipos de Dados no Padrão ANSITipos de Dados no Padrão ANSI
0 a 4.294.967.2954unsigned int
-2.147.483.648 a
2.147.483.647
4int
-127 a 1271signed char
0 a 2551unsigned char
-127 a 1271char
Faixa MínimaTamanho
em bytes
Tipo
12
Tipos de Dados no Padrão ANSITipos de Dados no Padrão ANSI
Dez dígitos de precisão10long double
Dez dígitos de precisão8double
Seis dígitos de precisão4float
0 a 4.294.967.2954unsigned long int
-2.147.483.648 a 2.147.483.6474signed long int
-2.147.483.648 a 2.147.483.6474long int
-32.768 a 32.7672signed short int
0 a 65.5352unsigned short int
-32.768 a 32.7672short int
-2.147.483.648 a 2.147.483.6474
Faixa Mínima
Tamanho de
Bytes
Tipo
7
13
Tipos de Dados no Padrão ANSITipos de Dados no Padrão ANSI
• São acompanhados por modificadores na
declaração de variáveis.
• Um modificador é usado para alterar o
significado de um tipo básico para adaptá-lo às
necessidades.
• Os modificadores short e long influenciam no
tamanho usado para representar o valor.
• Os modificadores signed , que indica se o tipo
será usado para representar os valores
negativos e positivos; e unsigned , somente
valores positivos.
14
VariVari ááveisveis
• Uma variável é um
espaço na memória do
computador que deve ser
nomeado para ser
referenciado.
• Variáveis devem ser
criadas para ser usadas.
• Existem 2 tipos de
variáveis:
– Local � funciona
apenas dentro da
função onde a mesma
foi declarada.
– Global � é declarada
fora da função, logo
abaixo das diretivas
#include e pode ser
usada em qualquer
função no programa.
8
15
DeclaraDeclara çção de Varião de Vari ááveisveis
• Identifica o tipo de dado, o nome vinculado ao conteúdo.
• A vírgula é usado como separador das variáveis.
• Sintaxe
tipo nomevariavel;
tipo nomevar1, nomevar2, ..., nomevarN;
• Exemplos
int numero;
float valor;
...
float nota1, nota2, nota3;
16
DeclaraDeclara çção de Varião de Vari ááveisveis
• Inicializar uma variável corresponde a atribuição
de valor a mesma.
• C não garante inicialização automática.
• C é “case sensitive”.
• A variável SOMA é diferente de soma.
• Nome de variável inicia com letra e pode ser
continuada com letras, números e/ou
sublinhado.
• Não pode usar palavras reservadas nos nomes
das variáveis.
9
17
Palavras ReservadasPalavras Reservadas
–whilevoidunsigneduniontypedef
switchstructstaticsizeofshortreturn
registerlongintifgotofor
floatexternenumelsedoubledo
defaultcontinuecharcasebreakauto
18
ConstantesConstantes
• Corresponde a um local de armazenamento de dados que
não muda seu valor durante a execução do programa.
• Existem 2 formas para declarar constantes:
– Usando #define
– Usando const
Usa #define após as
diretivas #include.
•Sintaxe
#define nome valor
•Exemplo
#define pi 3.1415
Usa const.
• Sintaxe
const tipo var = valor;
• Exemplo
const float pi = 3.1415;
10
19
ExpressõesExpressões
• Quando a operação obtém um resultado
falso � 0.
• Quando a operação obtém um resultado
verdadeiro � 1.
20
Operadores RelacionaisOperadores Relacionais
• Exemplo
5 =
Maior do que>
AçãoOperador
11
21
Operadores LOperadores L óógicosgicos
• Exemplo
(5invertida\\
Aspa simples\’
Aspa dupla\”
Emite um sinal sonoro\a
Retrocesso do cursor para o início da linha\r
Retrocesso do cursor em um caractere\b
Tabulação horizontal\t
Salto de página\f
Quebra de linha\n
DescriçãoOperador
15
29
Operador Operador sizeofsizeof
• Retorna o número de bytes ocupados pelo operando.
• Pode ser usado para variáveis ou tipos genéricos de dados.
• Exemplos:
sizeof(float); // retorna 4, pois é o número de
// bytes equivalente ao tipo de
// dado float.
char str[] = “valor”;
sizeof(str); // retorna 6, 5 caracteres mais
// o caractere nulo, que indica
// o final da seqüência de caracteres .
30
Operadores de ConversãoOperadores de Conversão
• O printf() também possibilita a
apresentação de valores e resultados,
além das mensagens escritas.
• Para isso é necessário o uso de
operador de conversão.
• Este operador permite a concatenação
dos valores dos argumentos com as
mensagens.
• Exemplo
Exibe na tela o símbolo %%%
Número inteiro representado
na base hexadecimal
%x
Ponteiro%p
Seqüência de Caracteres%s
Número inteiro (int).%i
Número real (float)%f
Número real (double)%lf
Caractere (char)%c
Número decimal natural
(unsigned int)
%u
Número inteiro (int).%d
DescriçãoOp.
#include
int main(){
int num = 1;
printf(“Total: %d”,num);
getch();
return 0;
} �
16
31
Operador de EndereOperador de Endere ççoo
• Símbolo &
• Indica a referência ou o endereço da variável.
• É através do endereço que o valor da variável
será atualizado após a leitura do dado.
32
Comando de EntradaComando de Entrada
• O comando de entrada promove a leitura de dados por
parte do computador, via teclado, fornecido por um ser
humano ou elemento que possa proporcionar tal dado.
• Este comando é scanf() .
• Sintaxe
scanf(“operador de conversão”, &variável);
• Cada variável a ser lida deve ser precedida pelo
caractere &, que indica o seu endereço.
• No caso da seqüência de caracteres (%s), o operador
de endereço & não será usado.
17
33
Comandos de Entrada e SaComandos de Entrada e Sa íídada
• Os ‘comandos’ printf() e scanf() , na
verdade, são funções definidas na
biblioteca stdio .
• As funções acima trabalham com
sequencia de caracteres, que tem a
capacidade de converter os caracteres em
outros tipos de dados e vice-versa.
• Esta ação ocorre por causa dos
Operadores de Conversão.
34
FormataFormata çções Numões Num ééricasricas
Ponto flutuante com pelo menos seis caracteres e dois após a
casa decimal.
%6.2f
Ponto flutuante com pelo menos seis caracteres%6f
Um número do tipo float sem nenhuma casa decimal.%.f
Um número do tipo float com duas casas decimais.%.2f
Formata um inteiro com pelo menos seis caracteres.%6d
Escreve um inteiro na tela, preenchendo com zeros à
esquerda para que ocupe casas na tela.
Ex.: printf(“%04d”, 10); //exibirá 0010
%0d
Escreve um inteiro na tela, preenchendo com espaços à
esquerda para que ocupe casas na tela.
Ex.: printf(“%4d”, 10); //exibirá 10
%d
DescriçãoFormatação
float num = 12.345678
printf("%6.2f",num);
_12.34
18
35
Usando system(Usando system( ““ pausepause ”” ) ou ) ou getchgetch ()()
• Quando executamos os algoritmos não dá tempo ver o
resultado na tela antes de fechar.
• Para incluir uma parada em pontos estratégicos da execução
de um algoritmo, podemos usar o comandos:
system(“pause”)
• Na verdade a função system() possibilita a execução de
comandos do MS-DOS, onde só pode ser usado em
ambiente Windows.
• Pode usar system(“cls”) para limpar a tela.
• Para solucionar o problema de Portabilidade (diferentes
S.O.’s) existe outro comando a ser usado:
getch()
36
ComentComent ááriosrios
• A finalidade de um comentário é de proporcionar ao
programador um forma de deixar informações junto ao
código-fonte sem interferir no processo de compilação.
• O compilador irá desprezar todo comentário que estiver
junto ao código-fonte.
• Para comentar apenas uma linha, usa o //
• Exemplo: //printf(“Total: %d”,num);
• Para comentar várias linhas de forma seqüencial, usa o
/*..*/
• Exemplo: /* scanf(“%d”,&num);
printf(“Total: %d”,num); */
19
37
Bons vBons v íícios de programacios de programa ççãoão
• Nomes dos programas com
significado e salvo em
pastas referente ao
assunto.
• Nomes das variáveis e das
constantes que identifiquem
as suas funções.
• Sempre que abrir chaves
“{}” ou parênteses “()”,
procure fechá-los
imediatamente e, em
seguida, insira os dados
entre eles.
• Sempre inicialize as
variáveis que serão
utilizadas no código.
• Sempre utilize a identação,
este procedimento além de
organizar o código-fonte,
também facilitará a leitura
do mesmo, identificando
dependências e possíveis
erros.
• Comente o código-fonte,
isso facilita a identificação
da rotina.
• Faça backup de todo
código-fonte.
38
ExercExerc íício 1 de 3cio 1 de 3
1. Faça um algoritmo que receba um número inteiro e mostre
o seu antecessor e o seu sucessor.
2. Monte um algoritmo que leia dois números reais (float) e
imprima a média aritmética com a mensagem: “Média: ”
antes do resultado e com uma casa decimal.
3. Elabore um algoritmo que leia o valor de um produto e
imprimir o novo valor, tendo em vista o desconto também
informado.
4. Escrever um algoritmo que leia o seu salário fixo e o total
de vendas efetuadas por ele no mês (em dinheiro).
Sabendo que este vendedor ganha 15% de comissão sobre
suas vendas efetuadas, informar o salário no final do mês.
5. Criar um algoritmo que calcule e imprima a área de um
triângulo, sendo que os dados de entrada fornecidos pelo
usuário:
triangulo ���� (base * altura) / 2
20
39
ExercExerc íício 2 de 3cio 2 de 3
6. Faça um algoritmo que leia um valor em Celsius (C) e
converta para Fahrenheit (F) e Kelvin (K).
F – 32 = C = K – 273
180 100 100
7. O custo ao consumidor de um carro novo é a soma do
custo de fábrica com a percentagem do distribuidor e dos
impostos (aplicados, primeiro os impostos sobre o custo de
fábrica, e depois a percentagem do distribuidor sobre o
resultado). Supondo que a percentagem do distribuidor seja
de 28% e os impostos 45%. Elabore um algoritmo que leia
o custo de fábrica de um carro, calcule e mostre o valor do
carro na concessionária.
40
ExercExerc íício 3 de 3cio 3 de 3
8. Escrever um algoritmo para determinar o consumo médio
de um automóvel sendo fornecida a distância total
percorrida pelo automóvel e o total de combustível gasto.
9. Elaborar um algoritmo que efetue a apresentação do valor
da conversão em real (R$) de um valor lido em dólar (US$).
O algoritmo deverá solicitar o valor da cotação do dólar e
também a quantidade de dólares disponíveis com o
usuário.
10. Faca um algoritmo que receba um valor que foi depositado
e exiba o valor com rendimento apos um mês. Considere
fixo o juro da poupança em 0,70% a.m.
11. A Loja “Descontão ” está vendendo seus produtos em 5
(cinco) prestações sem juros. Faça um algoritmo que
receba um valor de uma compra e mostre o valor das
prestações