Вы находитесь на странице: 1из 13

Prática de Programação

Prof. Alexandre Mignon


(amignon@uninove.br)

NOTAS DE AULA #01

Sumário
• Introdução a Linguagem C
• O Pré-Processador C
• Variáveis e Constantes
• Operadores
– Aritméticos
– Relacionais
– Lógicos

2
Introdução a Linguagem C
• A linguagem C foi primeiramente criada por Dennis M. Ritchie
e Ken Thompson no laboratório Bell em 1972.
– A definição está contida no livro The C Programming Language
• C é uma linguagem utilizada como ferramenta na
programação de qualquer tipo de sistema
– Ex: sistemas operacionais, planilhas eletrônicas, processadores de
texto, gerenciadores de banco de dados, processadores gráficos,
sistemas de transmissão de dados, para solução de problemas de
engenharia ou física, etc.
– O sistema operacional UNIX é desenvolvido e C.

Introdução a Linguagem C
• A linguagem C foi desenhada para que o usuário possa
planejar programas estruturados e modulares.
– O resultado é um programa mais legível e documentado.
– Os programas em C tendem a ser bastante compactos e de execução
rápida.
• Programas em C podem ser desenvolvidos em partes
separadas por pessoas distintas e depois unidos num produto
final, o que significa que bibliotecas de funções podem ser
criadas ou usadas sem realmente conhecer o código de cada
uma delas.

4
Estrutura Básica de um Programa em C
• Um programa em C consiste em uma ou várias “funções”.
• Forma geral da função main:
int main () {
return 0;
}
• Os parênteses após o nome indicam que esta é uma função.
– A função “main” é utilizada para indicar a função que inicia o programa.
• Toda função C deve ser iniciada por uma chave de abertura, {, e
encerrada por uma chave de fechamento, };
• A função main() deve existir em algum lugar do seu programa e
marca o ponto de início da execução do programa.
– Se um programa for constituído de uma única função esta será main()

O Pré-Processador C
• O pré-processador C é um programa que examina o
programa-fonte em C e executa certas modificações nele,
baseado em instruções chamadas diretivas.
• O pré-processador faz parte do compilador e pode ser
considerado uma linguagem dentro da linguagem C. Ele é
executado automaticamente antes da compilação. Diretivas
do pré-processador seriam instruções desta linguagem.
• Instruções para o pré-processador devem fazer parte do texto
que criamos, mas não farão parte do programa que
compilamos, pois são retiradas do texto pelo compilador
antes da compilação

6
O Pré-Processador C
• Todas a diretivas do pré-processador são iniciadas com o
símbolo (#). As diretivas podem ser colocadas em qualquer
parte do programa, mas é costume serem colocadas no início
do programa, antes de main(), ou antes do começo de uma
função particular.
• Não há ponto-e-vírgula após qualquer diretiva do pré-
processador.

A Diretiva #include
• A diretiva #include causa a inclusão de um programa-fonte
em outro Ela diz ao compilador para incluir, na hora da
compilação, um arquivo especificado. Sua forma geral é:
#include “nome_do_arquivo” ou
#include <nome_do_arquivo>
• A diferença entre usar “ ” e < > é somente a ordem de procura
nos diretório pelo arquivo especificado. Se o arquivo estiver
nos caminhos de procura pré-especificados do compilador
(como é o caso do arquivo stdio.h) use < >.

8
Variáveis
• As variáveis são o aspecto fundamental de qualquer
linguagem de computador. Uma variável em C é um espaço de
memória reservado para armazenar um certo tipo de dado e
tendo um nome para referenciar o seu conteúdo.
• Uma variável é um espaço de memória que pode conter, a
cada tempo, valores diferentes.

Declaração de Variáveis
• Uma declaração de variável é uma instrução para reservar
uma quantidade de memória apropriada para armazenar o
tipo especificado.
• Uma declaração de variável consiste no nome de um tipo,
seguido do nome da variável.
• Exemplo: int num;
• Em C todas as variáveis devem ser declaradas.
• Se você tiver mais de uma variável do mesmo tipo, poderá
declará-las de uma única vez, separando seus nomes por
vírgulas.
• Exemplo: int aviao, foguete, helicoptero;

10
Nomes de Variáveis
• A escolha de nomes significativos para suas variáveis pode
ajudá-lo a entender o que o programa faz e prevenir erros.
• Pode-se usar quantos caracteres quiser para o nome de uma
variável
• O primeiro caractere deve ser obrigatoriamente uma letra ou
o caractere de sublinhar (_).
• Os demais caracteres podem ser letras, números ou
caracteres de sublinhar.
• Uma variável não pode ter o mesmo nome de uma palavra-
chave de C.
• Em C letras minúsculas e maiúsculas são diferentes
– Exemplo: PESO, Peso, peSo, peso
11

Palavras-Chaves em C
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

12
Tipos de Variáveis
• O tipo de uma variável informa a quantidade de memória, em
bytes, que esta irá ocupar e a forma como o seu conteúdo
será armazenado.

TIPO BIT BYTES ESCALA


char 8 1 -128 a 127
int 16 2 -32768 a 32767
float 32 4 3.4E-38 a 3.4E+38
double 64 8 1.7E-308 a 1.7E+308
void 0 0 sem valor

13

Modificadores de Tipos
• Com exceção de void, os tipos de dados básicos podem estar
acompanhados por modificadores na declaração de variáveis.
Os modificadores de tipos oferecidos por C são:
– long ou long int (4 bytes)
– unsigned char (de 0 a 255)
– unsigned int (de 0 a 65535)
– unsigned long
– short (2 bytes no IBM-PC)

14
Inicializando Variáveis
• É possível combinar uma declaração de variável com o
operador de atribuição para que a variável tenha um valor ao
mesmo tempo de sua declaração; é o que chamaremos de
inicialização de variáveis.
int evento = 5;
char corrida = ‘C’;
float tempo = 27.25;

15

Atribuições Múltiplas
• C permite que você atribua o mesmo valor a muitas variáveis
usando atribuições múltiplas em um único comando.

x = y = z = 10;

16
Constantes
• O qualificador const pode ser aplicado à declaração de
qualquer variável para especificar que seu valor não deve ser
mudado.
const float PI = 3.1415;
const float SALARIO_MINIMO = 350.00;

17

A Diretiva #define
• A diretiva #define pode ser usada para definir constantes
simbólicas com nomes apropriados
• Exemplo: #define PI 3.1415
• Quando o compilador encontra #define, ele substitui cada
ocorrência de PI por 3.1415
• A frase à esquerda (PI), que será procurada, é chamada
“identificador”. A frase à direita (3.1415), que será
substituída, é chamada “texto”. Um ou mais espaços separam
o identificador do texto.
• Por convenção, o identificador é escrito em letras maiúsculas.
• Só é permitido escrever um comando destas por linha.

18
Exemplo
• Programa que calcula a área de um círculo.
#include <stdio.h>
#define PI 3.1415
int main () {
float raio;
printf (“Digite o valor do raio:”);
scanf (“%f”, &raio);
float area = PI * raio * raio;
printf (“Area: %f”, area);
return 0;
}

19

Operadores Aritméticos
• C oferece 6 operadores aritméticos binários (operam sobre
dois operandos) e um operador aritmético unário (opera
sobre um operando).
• Binários
= Atribuição
+ Soma
- Subtração
* Multiplicação
/ Divisão
% Módulo (Resto da divisão inteira)
• Unário
- Menos unário (Indica a troca de sinal)
• Precedência (mais alta -> mais baixa)
- (menos unário), */%, +-
Para alterar a ordem de precedência, utilize parênteses.
20
Operadores de Incremento (++) e
Decremento (--)
• Considere os operadores abaixo que não são comuns em outras
linguagens:
++ incrementa de 1 seu operando
-- decrementa de 1 seu operando
• O operador de incremento (++) incrementa de um seu operando. Este
operador trabalha de dois modos:
– O primeiro modo é chamado pré-fixado e o operador aparece antes do nome
da variável.
– O segundo é o modo pós-fixado em que o operador aparece seguindo o nome
da variável.
• Em ambos os casos, a variável é incrementada. Porém quando ++n é
usado numa instrução, n é incrementada antes de seu valor ser usado, e
quando n++ estiver numa instrução, n é incrementada depois de seu
valor ser usado.
• Os operadores de incremento e decremento tem precedência sobre todos
os operadores aritméticos. 21

Operadores de Incremento (++) e


Decremento (--)
• Exemplo 1:
Se as seguintes linhas de programa forem executadas:
n = 5;
x = n++;
printf (“x = %d n = %d”, x, n);
a saída será: x = 5 n = 6
• Exemplo 2:
Se as seguintes linhas de programa forem executadas:
n = 5;
x = ++n;
printf (“x = %d n = %d”, x, n);
a saída será: x = 6 n = 6
22
Operadores Aritméticos de Atribuição
• Operadores Aritméticos de Atribuição
+=, -=, *=, /=, %=
• Cada um destes operadores é usado com um nome de variável à sua
esquerda e uma expressão à sua direita. A operação consiste em atribuir
um novo valor à variável que dependerá do operador e da expressão à
direita.
• Se x é uma variável, exp uma expressão e op um operador aritmético (+,
-, *, / ou %), então
x op= exp; equivale a x = (x) op (exp);
• Exemplos:
i += 2; equivale a i = i + 2;
x *= y + 1; equivale a x = x * (y + 1)
t /= 2.5; equivale a t = t / 2.5;
p %= 5; equivale a p = p % 5;
d -= 3; equivale a d = d – 3; 23

Operadores Relacionais
Símbolo Significado
== Igual a
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
!= Diferente de

• Os operadores aritméticos têm maior precedência que a dos


relacionais.

24
Operadores Lógicos

Operador Significado Precedência


! Negação – Não Lógico 1
&& Conjunção – E Lógico 2
|| Disjunção – OU Lógico 3

25

Precedência dos Operadores

Operadores Tipos
! - ++ -- unários; não lógico e menos aritmético
* / % aritméticos
+ - aritméticos
< > <= >= relacionais
== != relacionais
&& lógico E
|| lógico OU
= += -= *= /= %= aritméticos de atribuição

26