1. Curso: Manutenção e Suporte em Informática
Disciplina: Linguagem de Programação
Professor: Mauro Jansen
Linguagem C
Introdução, Tipos, variáveis, expressões
e estruturas de controle
2. Introdução à linguagem C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
2
3. Histórico
Criada na década de 70 por Denis Ritchie
(Bell Labs)
Objetivo: ser uma linguagem mais fácil que
o Assembler mas que permitisse grande
controle sobre o hardware, para a
programação do sistema Unix
Influência das linguagens BCPL e B
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
3
4. Características
Genérica: usada para a criação de
programas para diversas áreas
Ex: aplicativos, sistemas operacionais,
automação industrial, engenharia, física,
química, etc.
Linguagem “mista”: tem características de
linguagem de alto e baixo nível
Induz a uma boa estruturação de
programas
Influenciou várias outras linguagens
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
4
5. Características
É “case sensitive”: minúsculas e maiúsculas
fazem diferença
Variável “nome” é diferente de “Nome”
É compilada (gera arq.executável)
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
5
6. O pré-processador
Parte do compilador C que trata alguns
textos (comandos) do código-fonte antes
da tradução em código executável
Esses comandos são as diretivas do préprocessador. Ex:
#define
#include
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
6
7. Diretivas do pré-processador
#define: define um identificador e uma
sequência de caracteres que será
substituída pelo identificador no códigofonte. Ex:
Em todo o código fonte, PI
#define PI 3.1415
será substituído por
3.1415
#include: inclui um cabeçalho ou outro
arquivo-fonte no ponto onde está a
Inclui o arquivo “stdio.h”
diretiva. Ex:
(definições padrões para
#include <stdio.h>
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
entrada e saída de dados)
no programa-fonte
7
8. Estrutura básica de um programa
em C
#Include <biblioteca1.h>
#Include <biblioteca2.h>
...
Void main()
{
<Declaração de variáveis>
...
<comandos>
...
}
Inclusão de arquivo de
bibliotecas de comandos
Função main(): é
obrigatória. É a primeira
função chamada quando
o programa é iniciado
Delimitadores de inicio e fim de
bloco de comandos
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
8
9. Comentários
Comentários são úteis para documentar o
programa, e devem ser sempre usados
Existe dois modos:
Posição livre: usa-se o comando //
Várias linhas: usa-se o comando /* */
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
9
10. Palavras reservadas
São os comandos e funções próprias do
vocabulário da linguagem. Ex.:
auto, break, case, char, const, continue,
default, do, double, else, enum, extern, float,
for, goto, if, int, long, register, struct, switch,
typedef, union, unsigned, void, volatile, while,
etc.
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
10
11. Exemplo de programa em C
/*
Programa: calcular a média entre duas notas
Autor...: prof.Mauro
*/
#Include <stdio.h>
Void main()
{
float nota1,nota2;
// declaração de variáveis
printf(“Digite a primeira nota: “);
scanf(“%f”,¬a1);
printf(“Digite a segunda nota: “);
scanf(“%f”,¬a2)
printf(“A média é: %f”,(nota1+nota2)/2);
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
11
12. Comando de saída: printf
Sintaxe:
printf(<string de controle>,<lista de argumentos>)
Mensagem (string) com códigos de
controle embutidos na mesma
Códigos de controle:
Valores que serão substituídos na
mensagem, no lugar de cada código de
controle iniciado por %
Código
Formato
Código
Formato
%d
Inteiro com sinal
%X
Hexadecimal
%f
Float (número real)
%o
Octal
%c
Caractere
%E
Notação científica
%s
String
%p
Ponteiro
%u
Inteiro sem sinal
n salta
linha
Exemplos:
printf(“O valor de PI é %f”,3.1415);
printf(“Meu nome é %s e eu tenho %d anosn”,”João”,18);
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
12
13. Comando de entrada: scanf
Sintaxe:
scanf(<string de controle>,<lista de argumentos>)
códigos de controle que identificarão o
tipo de dado a ser digitado pelo usuário
Variável(is) que receberá(ão) os dados,
precedida(s) pelo sinal &
Exemplo:
#Include <stdio.h>
Void main()
{
char c;
float n;
printf(“Digite uma letra: “);
scanf(“%c”,&c);
printf(“Digite um valor real: “);
scanf(“%f”,&n);
printf(“Letra: %c , número: %f”,c,f);
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
13
14. Tipos de dados, constantes,
variáveis, operadores e
expressões em C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
14
15. Tipos de dados
A linguagem C tem os tipos básicos
Char (caractere), Int (inteiro), float (real),
double (real)
E modificadores de tipo, que vêm antes do
tipo e podem ser combinados:
Unsigned: sem sinal
Signed: com sinal (padrão)
Short: menor precisão (padrão)
Long: maior precisão
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
15
16. Tipos de dados
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
16
17. Constantes e variáveis
Constante: porção de dados que não muda seu
valor durante a execução do programa.
Exemplos: 23, ‘X’, “Linguagem C”, 1.234
Constantes não precisam de nome, mas podemos
nomeá-las usando a diretiva #define. Ex: #define PI
3.1415
Variável: porções de dados que podem mudar
seu valor durante a execução do programa
Uma variável precisa ter um nome e tipo e precisa ser
declarada e inicializada
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
17
18. Constantes de barra invertida
São códigos que iniciam com uma barra invertida que
representam uma constante tipo caractere dentro de
strings, como no comando printf. Veja alguns:
Código
Significado
Muito usado no
printf para saltar
para próxima linha
n
Nova linha (new line)
”
Aspas
’
Apóstrofo
0
Nulo
Barra invertida
t
Tabulação horizontal
a
Sinal sonoro (beep)
N
Constante octal (N é o valor da constante)
xN
Constante hexadecimal (N é o valor da constante)
Prof. Mauro Jansen
19. Regras para nomes de variáveis
Começar com letra ou sublinhado (_)
Caracteres seguintes podem ser letras,
números ou sublinhado
Não pode ser palavra reservada ou função
Maiúsculas e minúsculas fazem diferença
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
19
20. Declaração e inicialização de
variáveis
A declaração é feita da seguinte forma:
<tipo de dado> <lista de variáveis>;
Obs: Na linguagem C não há uma seção
específica para declaração de variáveis
Exemplos:
char ch,letra;
long cont;
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
20
21. Declaração e inicialização de
variáveis
Inicialização: podemos atribuir valor no
momento da declaração ou depois, usando
o operador de atribuição “=“ :
Char ch=‘D’;
Int num=123;
num=10;
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
21
22. Operadores aritméticos
Usados em operações matemáticas
Operador
Ação
+
Soma
-
Subtração ou troca de sinal
*
Multiplicação
/
Divisão
%
Resto da divisão
++
Incrementa valor de uma variável
--
Decrementa valor de uma variável
+=
Atribuição com soma
-=
Atribuição com subtração
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
22
23. Operadores relacionais
Usados em comparações entre valores
Operador
>
>=
<
Significado
Maior
Maior ou igual
Menor
<=
Menor ou igual
==
Igual
!=
Diferente
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
23
24. Operadores lógicos
Usados em expressões lógicas compostas
Operador
Significado
&&
Operador E. Retorna verdadeiro se
ambos valores forem verdadeiros
||
Operador OU. Retorna verdadeiro se
pelo menos um for verdadeiro
!
Operador NÃO. Retorna o contrário do
valor informado.
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
24
25. Exemplo com operadores e
expressões
#Include <stdio.h>
Void main()
{
int a,b,c,d;
a=10;
b=22;
c=30;
d=40;
printf(“a+b = %d”,a+b);
// soma a e b
printf(“a-b = %d”,a-b);
// subtrai b de a
printf(“b%%a = %d”,b%a);
// resto da divisão de b por a
a++;
// incrementa a (mesmo que a=a+1)
b--;
// decrementa b (mesmo que b=b-1)
c+=a;
// soma a em c
(mesmo que c=c+a)
d-=b;
// soma e em d
(mesmo que d=d+b)
printf(“a=%d, b=%d, c=%d, d=%d”,a,b,c,d);
}
OBS: No próximo bloco veremos exemplos com
operadores relacionais Linguagem de Programação
e lógicos
Prof. Mauro Jansen
Linguagem C – parte 1
25
26. Estruturas de controle e
fluxo em C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
26
27. Estrutura condicional if
Equivalente em pseudocódigo: se-senão-fimse
Sintaxe:
If(<condição>)
<bloco de comandos>
[else
<bloco de comandos 2>]
Se a condição for verdadeira, executa bloco de
comandos 1, senão executa bloco de comandos 2
OBS: Um bloco de comando composto por
mais de um comando deve iniciar com { e
terminar com }
O bloco do else é Linguagem de Programação
opcional
Prof. Mauro Jansen
Linguagem C – parte 1
27
28. Estrutura condicional if (se) Exemplo
/*
Programa: calcular a média e mostrar situação
*/
#Include <stdio.h>
Void main()
{
float nota1,nota2,media; // declaração de variáveis
printf(“Digite a primeira nota: “);
scanf(“%f”,¬a1);
printf(“Digite a segunda nota: “);
scanf(“%f”,¬a2);
media=(nota1+nota2)/2;
printf(“A média é: %f n”,media);
if(media>=7)
printf(“Você está aprovado.n”);
else
printf(“Você está de recuperação.n”);
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
28
29. Estrutura condicional switch-case
Equivalente pseudocódigo: escolha
Sintaxe:
Switch (<variável>)
{
case <constante1>:
<declaração1>;
break;
case <constante2>:
<declaração2>;
break;
case <constante_n>:
<declaraçãoN>;
break;
default:
<declaração default>
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
29
30. Estrutura condicional switch-case
Exemplo
#Include <stdio.h>
void main()
{
float n1,n2;
char op;
printf(“Digite um número: “);
scanf(“%f”,&n1);
printf(“Digite a operação (+,-,* ou /): “);
scanf(“%c”,&op);
printf(“Digite outro número: “);
scanf(“%f”,&n2);
switch (op)
{
case ‘+’: printf(“Soma=%f”,n1+n2);
break;
case ‘-’: printf(“Soma=%f”,n1-n2);
break;
case ‘*’: printf(“Soma=%f”,n1*n2);
break;
case ‘/’: printf(“Soma=%f”,n1/n2);
break;
default: printf(“Você digitou uma operação inválida!”)
}
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
30
31. Operador ternário
Operador que permite simplificar tomadas
de decisão simples
Sintaxe:
<expressão1> ? <expressão2> : <expressão3>
Exemplo:
Equivale a:
max=(a>b) ? a : b;
If (a>b)
max=a;
Else
max=b;
Prof. Mauro Jansen
32. Estrutura de repetição for
Equivalente pseudocódigo: para - fimpara
É a repetição contada. Sintaxe:
for(<inicialização>;<condição>;<incremento>)
<bloco de comandos>
Inicialização: expressão de inicialização. Ex:
n=0
Condição: expressão condição para continuar a
repetição. Ex: n<=10
Incremento: expressão de incremento. Ex:
n++
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
32
33. Estrutura de repetição for
exemplo:
Programa para contar de 1 a 100:
#include <stdio.h>
{
int n;
for(n=1 ; n<=100 ; n++)
{
printf("Contando: %dn",n);
}
}
Prof. Mauro Jansen
34. Estrutura de repetição while
Equivalente pseudocódigo: enquanto–faça-fimenquanto
Sintaxe:
while(<condição>)
<bloco de comandos>
Inicia e repete o bloco de comandos
enquanto a condição for verdadeira
É a repetição com teste no início
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
34
35. Estrutura de repetição while
Exemplo:
Soma quantidade indeterminada de números
#include <stdio.h>
int main()
{
float n=1,soma=0;
while (n!=0) {
printf("Digite um numero (zero=fim):");
scanf("%f",&n);
soma+=n;
}
printf("A soma dos numeros digitados é: %f",soma);
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
35
36. Estrutura de repetição do..while
Equivalente pseudocódigo: repita - até
Sintaxe:
do
<bloco de comandos>
While(<condição>);
Executa o bloco de comando e repete
enquanto a condição for verdadeira
É a repetição com teste no final
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
36
37. Estrutura de repetição do..while
Exemplo:
Mesmo anterior, agora com do..while:
#include <stdio.h>
{
float n=0,soma=0;
do {
printf("Digite um numero (zero=fim):");
scanf("%f",&n);
soma+=n;
} while (n!=0);
printf("A soma dos numeros digitados é: %fn",soma);
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
37
38. Comandos que afetam as
estruturas de repetição
Comando break: interrompe a repetição,
continuando após o bloco de comandos a
ser repetido
Comando continue: interrompe apenas a
repetição atual, voltando ao início do laço
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
38
39. Atividades no DevC++
PRÁTICA, muita PRÁTICA:
Testar os exemplos dos slides
Testar os exemplos da apostila
Resolver exercícios da apostila
Resolver as atividades da semana
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
39