Você está na página 1de 35

Fundamentos de Computação

Conceitos básicos da linguagem C/C++

Prof. Rudinei Martins de Oliveira - rudmart@gmail.com

Aula baseada no material do Prof. Marcos A. Pereira (FEG/UNESP) e


Prof. Antônio Augusto Chaves (UNIFESP)

1 / 35
A função main()

Todo programa escrito na linguagem C possui um estrutura básica,


sobre a qual são adicionadas as instruções e comandos que se deseja
que o programa execute
int main()
{
comandos_que_voce_quer_usar;
return 0;
A função
} main()

main()
É a principal função de um programa
Ela sempre deve existir
Marca o inı́cio da execução do programa

Sintaxe básica:
main ( )
2 / 35
• Os símbolos /* e */ indicam o começo e o fim de um comentário.
Algumas
• Os símbolosnotas importantes
{ e } indicam (MUITO
o começo e o fim IMPORTANTES)
de uma função.
• Os símbolos " e " indicam o começo e o fim de uma string.
• Todo comando deve ser encerrado com o símbolo ; (ponto‐e‐vírgula).

/* Programa Hello, world! */

#include <stdio.h>

int main()
{
printf("Hello, world!\n");
return(0);
}

Os símbolos /* e */ indicam o começo e o fim de um comentário


PC‐I © MAP’2009 Conceitos básicos da linguagem C 5
Os símbolos { e } indicam o começo e o fim de uma função
Os símbolos “ e ” indicam o começo e o fim de uma string
Todo comando deve ser encerrado com o símbolo ; (ponto-e-vírgula)

3 / 35
Principais bibliotecas da linguagem C
Principais bibliotecas da linguagem C
A linguagem C possui um conjunto mínimo de instruções, visando a criação
A linguagem
de programas C possui um
executáveis deconjunto
tamanhomínimo de instruções,
pequeno. A adição devisando
novas a
criação de programas executáveis de tamanho pequeno. A adição de
funcionalidades é feita através da inclusão de bibliotecas, que contêm
novas funcionalidades é feita através da inclusão de bibliotecas, que
classes de funções específicas para o tratamento de dados desejado.
contêm classes de funções específicas para o tratamento de dados

#include <stdio.h> // para a função printf()


#include <stdlib.h> // para a função system()

int main()
{
printf("Primeiro programa em C!");
system("PAUSE");
return(0);
}

A inclusão de bibliotecas
A inclusão devem
de bibliotecas serser
devem as primeiras instruções
as primeiras de de
instruções umum
programa emem
programa C. C
PC‐I © MAP’2009 Conceitos básicos da linguagem C 5

4 / 35
Principais bibliotecas da linguagem C

stdio.h: biblioteca padrão de funções de entrada e saída de dados

stdlib.h: biblioteca padrão de funções para conversão de tipos,


alocação de memória e comandos para o sistema operacional

math.h: biblioteca de funções matemáticas

time.h: biblioteca de funções para manipulação de dada e hora

ctype.h: biblioteca de funções para manipulação de caracteres

string.h: biblioteca padrão para manipulação de cadeias de caracteres

conio.h: biblioteca para manipulação do cursor na tela

5 / 35
Tipos primitivos da linguagem C

A linguagem C realiza operações sobre dois tipos de dados:


numéricos e não-numéricos

Os dados numéricos podem ser de 3 tipos distintos:


int: para representar valores inteiros
float: para representar valores de ponto flutuante
double: para representar valores de ponto flutuante de precisão
dupla
O tipo char permite manipular dados não-numéricos (caracteres
como letras, dígitos ou outro símbolo gráfico)

6 / 35
A tabela ASCII padrão
A tabela ASCII padrão

PC‐I © MAP’2009 Conceitos básicos da linguagem C 58

7 / 35
Tipos e valores
Tipos e valores
Os valores admissíveis para cada tipo primitivo podem ser alterados com o
Os valores
uso dos admissíveis
modificadores para cada
unsigned, tipo primitivo
short e long. podem ser alterados
com o uso dos modificadores unsigned, short e long

Tamanho Intervalo mínimo


Tipo
(bytes) Início Fim
char 1 –128 127
unsigned char 1 0 255
short int 2 –32768 32767
unsigned short int 2 0 65535
int 4 –2147483648 2147483647
unsigned int 4 0 4294967295
float 4 ±3.4 E–38 ±3.4 E+38
double 8 ±1.7 E–308 ±1.7 E+308
long double 10 ±3.4 E–4932 ±3.4 E+4932

PC‐I © MAP’2009 Conceitos básicos da linguagem C 59

8 / 35
Constantes e variáveis

Constantes e variáveis
Em
Emlinguagens de programação
linguagens de alto
de programação denível, os dados
alto nível, os podem
dados ser de duas
podem ser de
naturezas: constantes
duas naturezas: ou variáveis
constantes ou variáveis

Constantes
Assumem um único valor, do início ao fim da execução do programa, não podendo
ser alterado por nenhum comando ou função.

Variáveis
Assumem um valor inicial, que pode ser alterado por alguma função ou comando
durante a execução do programa.

PC‐I © MAP’2009 Conceitos básicos da linguagem C 60

9 / 35
mazenamento de dados
Armazenamento de dados

dados manipulados por um programa são armazenados na memória


Os dados manipulados por um programa são armazenados na
ncipal (RAM), ocupando um endereço específico do início ao fim da
memória principal (RAM), ocupando um endereço específico do início
ecução ao
de fim
umdaprograma.
execução de um programa.

Memória
endereços

0xFF08
0xFF09
0xFF10
0xFF11
0xFF12
0xFF13

MAP’2009 Conceitos básicos da linguagem C


10 / 35
Declaração

A Declaração
declaração é um comando que associa o nome de uma constante
ou de uma variável a um determinado endereço de memória.
Memória
endereços
0xC907
0xC908
0xC909
0xC910
0xC911
int main() 0xC912
{
const int i = 5;
Memória
int j; endereços
0xAD14
...
0xAD15
return(0); 0xAD16
} 0xAD17
0xAD18
0xAD19

PC‐I © MAP’2009 Conceitos básicos da linguagem C 62

11 / 35
Regras #0 e #1 sobre constantes e variáveis
Regras #0 e #1 das variáveis

Declaração prévia
Toda variável deve ser declarada antes de ser usada

Declaração única
O nome da variável deve ser único

R. Sfair (FEG) PC - Aula 10 16 de maio de 2008 18 / 30

12 / 35
Nomes de constantes e variáveis

Para definir o nome de uma constante ou variável pode-se


utilizar uma combinação de:
letras (maiúsculas e minúsculas)
dígitos (0 a 9), desde que o primeiro caractere não seja um dígito
caractere ‘_’ (sublinha)

Apenas os 31 primeiros caracteres de um identificador são


significativos, havendo diferença entre letras maiúsculas e
minúsculas

13 / 35
Palavras reservadas da linguagem C

As seguintes palavras não podem ser utilizadas para denominar


entidades (constantes, variáveis, estruturas, funções etc.) criadas pelo
programador:
Armazenamento
auto, extern, register, static
Tipagem
char, const, double, enum, float, int, long,
short, signed, struct, typedef, union, unsigned,
void, volatile
Controle de execução
break, continue, goto, return
Comandos de seleção
case, default, else, if, switch
Comandos de iteração
do, for, while
Função
sizeof()

14 / 35
Atribuindo valores à variáveis

Atribuindo valores à variáveis


A atribuição é um comando utilizado para modificar o valor de uma
variável
A atribuição é um comando utilizado para modificar o valor de uma
variável.
int main()
{
char c;
int i;
float x;

c = '5'; // lê-se: a variável c recebe o caratere 5.


i = 5; // lê-se: a variável i recebe o valor inteiro 5.
x = 5.0; // lê-se: a variável x recebe o valor de ponto flutuante 5.
...
return(0);
}

Atenção
• o sinal de atribuição (=) não significa igualdade.
• a atribuição sempre atua da direita para a esquerda.

PC‐I © MAP’2009 Conceitos básicos da linguagem C 66

15 / 35
Atribuindo valores à variáveis

Atribuindo valores à variáveis

A atribuição é um comando destrutivo, ou seja, o valor anteriormente


A atribuição é pela
armazenado um comando
variáveldestrutivo,
à esquerdaou seja, o valor anteriormente
do símbolo = será substituído
armazenado
pelo valor dapela variável àvariável
constante, esquerdaou
doexpressão
símbolo = será substituído
no lado direito.pelo
valor da constante, variável ou expressão no lado direito.
int main()
{
const int i = 0;
int j;

j = i; // j armazena o valor 0.
j = i + 1; // agora j armazena o resultado da expressão i + 1.
j = j + 1; // o valor atual de j é somado com 1 e armazenado novamente
// em j.
...
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C 67

16 / 35
Operadores aritméticos
Operadores aritméticos

A precedência
A precedência dasdas operações
operações aritméticas
aritméticas em em C obedece
C obedece às regras
às regras
estabelecidas pela Álgebra. Os operadores com mesmo nível de de
estabelecidas pela Álgebra. Os operadores com mesmo nível
precedência
precedência sãosão avaliados
avaliados pelopelo compilador
compilador da esquerda
da esquerda parapara a direita.
a direita.

Símbolo Operação Resultado Precedência


+ adição soma dos argumentos baixa
– subtração diferença dos argumentos baixa
* multiplicação produto dos argumentos média
/ divisão quociente dos argumentos média
% módulo resto da divisão inteira média
++ incremento adiciona 1 ao operando alta
–– decremento subtrai 1 do operando alta

A precedência das operações pode ser modificada com o uso de


A precedência das operações pode ser modificada com o uso de
parênteses.
parênteses.
PC‐I © MAP’2009 Conceitos básicos da linguagem C 68

17 / 35
Expressões aritméticas
Expressões aritméticas
Calcular o perímetro e o volume de uma esfera de raio r = 3.
Calcular o perímetro e o volume de uma esfera de raio r = 3.
4πr22.
PP ==4πr
V = 434 πr33
V = πr
3
int main()
{
const float PI = 3.14159;
float r = 3;
float p, v;

p = 4*PI*r*r;
v = (4.0/3.0)*PI*r*r*r;

return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C 69


18 / 35
Propriedadesdos
Propriedades dos operadores
operadores aritméticos
aritméticos
O símbolo “-” também define o operador unário que altera o sinal da
O símbolo "–" também define o operador unário que altera o sinal da
constante, variável ou expressão que o suceder.
constante, variável ou expressão que o sucede.
int i = 3, j, k;

j = -i; // j armazena o valor -3


k = -(i * j); // k armazena o valor 9

O resultado da operação de divisão depende do tipo dos operandos na


expressão.
O resultado da operação de divisão depende do tipo dos operandos na
expressão.
int i = 3, j = 2;
float x, y, z;

x = i;
y = j;
z = x/y; // x armazena o valor 1.5
z = x/j; // x armazena o valor 1.5
z = i/y; // x armazena o valor 1.5
z = i/j; // x armazena o valor 1.0

PC‐I © MAP’2009 Conceitos básicos da linguagem C 70

19 / 35
Operadores de incremento e decremento

Operadores
São utilizadosde incremento
para adicionar ouesubtrair
decremento
1 unidade de uma variável
inteira
São utilizados para adicionar ou subtrair 1 unidade de uma variável inteira.
i++; // equivale ao comando i = i + 1;
j--; // equivale ao comando j = j – 1;

Notação pré‐fixa
O valor da variável é atualizado antes de ser utilizado na expressão.

i = 3;
j = (++i); // i assume o valor 4, j assume o valor de i

Notação pós‐fixa
O valor da variável é atualizado depois de ser utilizado na expressão.

i = 3;
j = (i++); // j assume o valor de i, i assume o valor 4

PC‐I © MAP’2009 Conceitos básicos da linguagem C 71

20 / 35
A função printf()

Função de E/S (ou I/O), ( Entrada/Saída ) ou (Input/Output)


Serve para imprimir algo na tela do computador
Equivalente a caixa de exibição de um fluxograma

Sintaxe básica:
printf(“expressão de controle”, lista de argumentos);

“expressão de controle”: mensagem que será exibida na tela, caracteres


especiais de exibição e códigos de formatação dos argumentos
lista de argumentos: constantes, variáveis e expressões que serão exibidas na
tela, de acordo com os formatos estabelecidos pela “expressão de controle”

21 / 35
Códigos para a função printf()
Códigos para a função printf()
Servem para controle e formatação dos campos de exibição em tela
Servem para controle e formatação dos campos de exibição em tela.
Código Exibição
Caractere Ação
%c caractere simples
\n nova linha
%s cadeia de caracteres
\t tabulação
%d número inteiro
\b retrocesso (backspace)
%u inteiro sem sinal
\f novo formulário
%f numero de ponto
\a alerta (sinal sonoro) flutuante
\r início da linha %e notação científica
\0 caractere nulo %o representação octal
\" exibe o caractere " %x representação
\\ exibe o caractere \ hexadecimal
%% caractere %

PC‐I © MAP’2009 Conceitos básicos da linguagem C 74

22 / 35
Uso da função printf()
Uso da função printf()
Exibir uma mensagem:
printf("Bom dia!");

Exibir uma mensagem e pular duas linhas:


printf("Bom dia!\n\n");

Exibir o valor de uma variável inteira:


printf("%d", j);

Exibir o valor de uma variável inteira e uma variável real:


printf("%d %f", j, x);

Exibir mensagens e valores de variáveis:


printf("Valor de j = %d\nValor de x = %f\n", j, x);

PC‐I © MAP’2009 Conceitos básicos da linguagem C 7

23 / 35
A função printf() - Exemplo
A função printf()

Exibir um caractere de diversas formas diferentes


Exemplo: Exibir um caractere de diversas formas diferentes.
#include <stdio.h>
#include <stdlib.h>

int main()
{
char a = 'A';

printf("CAR: %c\nDEC: %d\nOCT: %o\nHEX: %x\n", a, a, a, a);


system("PAUSE");
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C

24 / 35
A função puts()
A função puts()

É utilizada apenas para exibir mensagens na tela


A utilizada
•É mensagem apenas para
a ser exibirdeverá
exibida mensagens na tela.entre aspas
ser escrita
•A mensagem a ser exibida deverá ser escrita entre aspas.
Após a exibição da mensagem, a função puts() muda de linha
•Após a exibição da mensagem, a função puts() muda de linha
automaticamente
automaticamente.
int main()
{
puts("Digite sua opcao:");
puts("[1] Consultar");
puts("[2] Incluir");
puts("[3] Atualizar");
puts("[4] Excluir");
puts("[5] Encerrar");
printf("-> ");
...
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C 77

25 / 35
A função scanf()

Função de E/S (ou I/O)


Serve para ler um valor informado através do teclado
Equivalente a caixa de leitura de um fluxograma

Sintaxe básica:
scanf(“expressão de controle”, lista de argumentos);

Diferentemente da função printf(), a “expressão de controle” da função scanf()


contém apenas os códigos de formatação dos dados a serem lidos.
A lista de argumentos é composta pelos nomes das variáveis que serão lidas,
precedidas pelo símbolo & (endereço), de acordo com a ordem estabelecida
pela “expressão de controle”.

26 / 35
UsoUso
dada
função
funçãoscanf()
scanf()

Ler o valor de uma variável inteira:


scanf("%d", &j);

Ler o valor de duas variáveis inteiras:


scanf("%d %d", &i, &j);

Ler o valor de uma variável real e uma variável inteira:


scanf(” %f %d", &x, &j);

Na função scanf(), é imprescindível o uso do símbolo de endereço &


Naantes
função
do scanf(), é imprescindível o uso do símbolo de
nome da variável.
endereço & antes do nome da variável
Não confunda esse uso de & com o operador lógico and, que se
escreve && em C.
PC‐I © MAP’2009 Conceitos básicos da linguagem C

27 / 35
Uso combinado printf() e scanf()
Uso combinado printf() e scanf()

AA função
função scanf()
scanf()nãonão
devedeve
ser utilizada para exibir
ser utilizada paramensagens.
exibir mensagens

Isto não funciona!!!


scanf("Entre com o valor de i = %d", &i);

Isto sim, funciona!!!


printf("Entre com o valor de i = ");
scanf("%d", &i);

PC‐I © MAP’2009 Conceitos básicos da linguagem C 8

28 / 35
Exemplo

Exibir o valor correspondente em graus fahrenheit de uma temperatura


em graus celsius informada pelo usuário, tal que
grausF = (9 ∗ grausC + 160)/5

29 / 35
Exemplo
Exemplo
Exibir o valor correspondente em graus fahrenheit de uma temperatura
em ograus
Exibir valorcelsius informada pelo
correspondente usuário,
em graus tal que de uma temperatura em
fahrenheit
grausF = (9 ∗ grausC + 160)/5
graus celsius informada pelo usuário.
#include <stdio.h>
#include <stdlib.h>

int main()
{
float grausC, grausF;

printf("Informe a temperatura em graus celsius: ");


scanf("%f", &grausC);
grausF = (9*grausC + 160)/5;
printf("Temperatura em graus fahrenheit: %.1f\n", grausF);
system("PAUSE");
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C


30 / 35
Funções nativas de entrada e saída
Funções nativas de entrada e saída

• getchar(): lê
getchar(): lê um
umcaractere
caractereatéatéque
quea atecla
tecla <ENTER>
<ENTER> sejaseja
pressionada. Se
pressionada. Se mais de
mais de um caractere for um caractere
digitado, apenasfor odigitado,
primeiroapenas o primeiro
caractere será
caractere seráe considerado
considerado e odescartado.
o restante será restante será descartado

#include <stdio.h>
#include <stdlib.h>

int main()
{
char a;

printf(
printf("Digite um caractere: ");
);
a = getchar(); // armazena a entrada até pressionar <ENTER>
printf( ”Caractere digitado: %c\n", a);
system("PAUSE");
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C 82

31 / 35
Funções nativas
Funções nativasdedeentrada
entradaeesaída
saída

putchar(): Exibe na tela o caractere passado como argumento, a


•partir
putchar(): Exibe na tela o caractere passado como argumento, a part
da posição atual do cursor
da posição atual do cursor.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
char a;

printf(
printf("Digite uma letra minuscula: ");
);
a = getchar();
putchar( toupper(a) );
putchar('\n')
system("PAUSE");
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C

32 / 35
Funções nativas de entrada e saída

getche(): Lê um caractere do teclado sem pressionar <ENTER> e


mostra o que foi digitado

33 / 35
Funções nativas de entrada e saída
Funções nativas de entrada e saída

getch(): Lê um caractere do teclado sem pressionar <ENTER> e


• getch(): Lê um caractere do teclado sem pressionar <ENTER> e não
não mostra o que foi digitado
mostra o que foi digitado.
#include <stdio.h>
#include <stdlib.h>

int main()
{
char a;

printf("Digite um caractere: ");


a = getch();
printf("\nO caractere digitado foi %c.\n", a);
system("PAUSE");
return(0);
}

PC‐I © MAP’2009 Conceitos básicos da linguagem C

34 / 35
Funções de manipulação de caracteres

char a;
isalpha(a): testa se o caractere é uma letra
isdigit(a): testa se o caractere é um algarismo
isespace(a): testa se é o caractere espaço ‘ ’
islower(a): testa se é uma letra minúscula
isupper(a): testa se é uma letra maiúscula
tolower(a): converte o caractere para minúscula
toupper(a): converte o caractere para maiúscula

Estas funções estão definidas na biblioteca <ctype.h>

35 / 35

Você também pode gostar