Você está na página 1de 35

Programação de Computadores I

Engenharia de Computação

2018/1

CEFET-MG

Prof. Anisio Lacerda


Conteúdo da aula
 Anatomia de um programa em C
 Variáveis: conceito, nomes, tipos
 Nomes de identificadores
 Tipos de dados básicos
 Operações com variáveis de acordo com o tipo
 Comandos de entrada e saída
 Formatação de saída: impressão de dados
Estrutura de um programa e da programação
 Programa: sequência de código organizada
 estruturado em partes: módulos, funções, subrotinas
 podem ter de poucas a milhões de linhas de código

 etapas da programação
 edição do programa: editor de texto
 compilação
 transformação do programa fonte em programa executável
 feito pelo compilador: programa
 execução: feita pelo usuário usando o programa executável
Escrita de um programa em C
 Programa mínimo em C

int main ( ){ }

 observações

a função main( ) é obrigatória

todas as funções em C tem parênteses ( )

main é uma palavra reservada da linguagem
 a linguagem C distingue letras maiúsculas e minúsculas
 Main é diferente de main, mAin, maIn, MAin, maiN, MAIN
 todas as palavras reservadas da linguagem são escritas com letras
minúsculas
 em geral, um programa em C é todo escrito com minúsculas, a
menos de certos tipos de definição
Programa "Hello World" em C

#include <stdio.h>
int main ( ) {
printf("Hello, World!");
}

versão em português:

#include <stdio.h>
int main ( ) {
printf("Olá, mundo!");
}
Variáveis
 Conceito de variável pode ser expresso de diversas formas
 variável: armazena valores que podem variar
 equivale aos utensílios utilizados para armazenar os alimentos
quando fazemos uma receita
 os dados (valores numéricos) que o programa utiliza
 precisam ser armazenados na memória do computador
antes de serem processados pela CPU: o lugar para
isso são as variáveis
 Memória do computador
 sequência grande e numerada de bytes
 cada byte possui um endereço
 cada variável ocupa um conjunto de bytes na memória
 o número de bytes depende do tipo da variável
Memória do computador e variáveis

Numeração
dos bytes

variável f
ocupa 4 bytes
e tem valor
igual a 3.14
Variáveis


como a memória é muito grande e pode possuir bilhões de bytes (109
bytes) é difícil programar usando os endereços de memória

 por isso há o conceito de nome de variável: para facilitar a


programação, que é feita por pessoas
 variável: nome que damos a uma posição de memória para que ela
armazene algum valor que queremos armazenar

 nome da variável é associado ao seu endereço na memória pelo


compilador e pelo sistema operacional
Nomes de variáveis e identificadores
 identificadores: nomes que o programador vai escolher para o
programa
 inclui nomes de variáveis, funções, constantes, etc.
 regras para escolher os nomes de identificadores
 deve ser constituído por letras do alfabeto maiúsculas ou minúsculas,
dígitos (0 a 9) e o caractere underscore _
 o primeiro caractere não pode ser um dígito
 é desaconselhável uso do _ como primeiro caractere
 maiúsculas e minúsculas são caracteres diferentes
 palavras reservadas da linguagem não podem ser usadas
 não usar caracteres acentuados: á, ã, é, á, ó
 muitos compiladores não aceitam
Nomes de variáveis e identificadores

 Exemplos:
Ver mais
int idade; //ok exemplos no
livro
int Num_Cliente; //ok
float x; //ok
float 5x; //erro: inicia com dígito
double porcento%; //erro:caractere inválido %
char sim?nao; //erro: caractere inválido ?
int _alfa; //correto, porém desaconselhável
char letra, Letra; //duas variáveis diferentes
correto, porém desaconselhável
Nomes de variáveis e identificadores

Cuidados com a escolha dos nomes dos identificadores


 o nome deve ser descritivo do conteúdo que ele armazena!
 Ex: double fatura; char resposta; int fatorial; float salario;
 Não: double x; char a; int sdfg; float wxyz;

 o nome não deve ser escrito todo em letras maiúsculas


 característica reservada para as CONSTANTES em C (convenção)


escrever de forma a facilitar a leitura:
nomeclienteprincipal
NomeClientePrincipal
nome_cliente_principal
Nome_Cliente_Principal
Tipos de dados básicos
 a linguagem C implementa 4 tipos de dados básicos
 cada compilador é livre para escolher tamanhos (bytes) adequados de
acordo com seu próprio hardware
 as variáveis e expressões podem assumir um destes tipos:

Tamanho
Tipo Valor
(bytes)
um caractere (ou um
char 1
inteiro pequeno)
o número de
bytes
int 4 um número inteiro depende da
arquitetura do
número pequeno em computador
float 4
ponto flutuante

número grande em
double 8
ponto flutuante
Modificadores de Tipos
 São palavras que alteram o significado de um tipo base, definindo um
novo tipo derivado => especifica as características da variável

As palavras são: short, long, signed, unsigned
 Exemplos: tipos comuns modificados => tipos derivados

short int
long int
signed char
signed int
signed short int
signed long int
unsigned char
unsigned int
unsigned short int
unsigned long int
Faixa de valores para as variáveis

Tipo Num de bits Formato para leitura Menor valor Maior valor
com scanf

char 8 %c -128 127


unsigned char 8 %c 0 255
signed char 8 %c -128 127
int 16 %d -32.768 32.767
unsigned int 16 %u 0 65.535
signed int 16 %i -32.768 32.767
short int 16 %hi -32.768 32.767
unsigned short int 16 %hu 0 65.535
signed short int 16 %hi -32.768 32.767
long int 32 %li -2.147.483.648 2.147.483.647
signed long int 32 %li -2.147.483.648 2.147.483.647
unsigned long int 32 %lu 0 4.294.967.295
float 32 %f 3,4E-38 3.4E+38
double 64 %lf 1,7E-308 1,7E+308
long double 80 %Lf 3,4E-4932 3,4E+4932

Tipos básicos em verde


Valores para uma máquina de 16 bits
Declaração e inicialização de variáveis

 toda variável precisa ser declarada antes de ser usada



formato da declaração
tipo da variável nome da variável;
 exemplos:
int contador;
char c;
float pi;

 a variável representa um espaço na memória; ao ser declarada, ela é


associada a um espaço que contém 0s e 1s;
 assim, ela conterá qualquer valor (que pode ser um lixo de memória)
desde a sua declaração
Operações com tipo int

 atribuição
 para atribuir um valor a uma variável, utilizamos a operação de
atribuição

sintaxe: variável = expressão;

exemplos:
int num;
num = -17;
int numero = -17;
int n1 =3, n2 = 5;
int a = 10, b, c, d = 123; //4 variáveis
int valor = num;
a = b = c = d = 5; //atribuições múltiplas

atribuições múltiplas são feitas da direita para a esquerda


Operações com tipo int, float e double

 operações com números inteiros e em ponto flutuante



operadores binários: + - * /

operadores unários: ++ --

resto da divisão inteira (módulo) %
 qualquer operação entre inteiros resulta em um inteiro
 Exemplo:
 21 / 4 retorna 5 int b = 21/4;
 21%4 módulo retorna 1 int c = 21%4;

módulo 21 4 Valor da
divisão inteira
1 5
Operadores de incremento e decremento

 operador unário ++ soma uma unidade à variável


 operador unário -- subtrai uma unidade à variável
 exemplos:
x++; //equivalente a x = x+1;
x--; //equivalente a x = x – 1;
 estes operadores podem ser pré-fixados ou pós-fixados
x = 23; y = x++; // resulta em y =23 e x = 24
x = 23; y = ++x; //resulta em y = x = 24

 Pré-fixado: primeiro incrementa, depois usa o valor na expressão



Pós-fixado: primeiro usa o valor na expressão, depois incrementa
Operadores combinados com a atribuição

• As operações de incremento (++) e decremento (--) são


exemplos de operações combinadas com a atribuição

• Na linguagem C, sempre que for necessário escrever


uma operação de atribuição da forma

variavel = variavel operador expressao;


poderemos combinar as operações. Exemplos:

x = x + 5; x += 5;
x = x – (a + b); x -= (a + b);
x = x * (a – b); x *= (a – b);
x = x / (x + 1); x /= (x + 1);
Exercício

Calcule o resultado de cada variável após a execução das


seguintes operações:

int x,y,z;

x = y = 10;

z = ++x;

x = -x;

y++;

z = z + x + y;
Variáveis do tipo char
 são representadas pela linguagem como inteiros de 8 bits (um byte)
 por isso, podem ser vistas também como inteiros
 cada caractere tem o valor inteiro de sua posição na tabela de
caracteres ASCII

#include <stdio.h>
int main () {
char Ch;
Ch='D';
printf ("%c",Ch); //char D
printf ("%d",Ch); //int 68
}
Variáveis do tipo char

#include <stdio.h>
int main () {

char Ch;
scanf("%c", &Ch);
printf ("Voce pressionou a tecla %c",Ch);
}

Captura e imprime o
caractere digitado
pelo usuário
Tabela de caracteres ASCII
Dec Char Dec Char Dec Char Dec Char
--------- --------- --------- ----------
0 NUL (null) 32 SPACE 64 @ 96 `
1 SOH (start of heading) 33 ! 65 A 97 a
2 STX (start of text) 34 " 66 B 98 b
3 ETX (end of text) 35 # 67 C 99 c
4 EOT (end of transmission) 36 $ 68 D 100 d
5 ENQ (enquiry) 37 % 69 E 101 e
6 ACK (acknowledge) 38 & 70 F 102 f
7 BEL (bell) 39 ' 71 G 103 g
8 BS (backspace) 40 ( 72 H 104 h
9 TAB (horizontal tab) 41 ) 73 I 105 i
10 LF (NL line feed, new line) 42 * 74 J 106 j
11 VT (vertical tab) 43 + 75 K 107 k
12 FF (NP form feed, new page) 44 , 76 L 108 l
13 CR (carriage return) 45 - 77 M 109 m
14 SO (shift out)
15 SI (shift in)
46 .
47 /
78 N
79 O
110 n
111 o ASCII
16 DLE (data link escape) 48 0 80 P 112 p
17 DC1 (device control 1) 49 1 81 Q 113 q
18 DC2 (device control 2) 50 2 82 R 114 r American
19 DC3 (device control 3) 51 3 83 S 115 s
20 DC4 (device control 4) 52 4 84 T 116 t Standard Code
21 NAK (negative acknowledge) 53 5 85 U 117 u
22 SYN (synchronous idle) 54 6 86 V 118 v for Information
23 ETB (end of trans. block)
24 CAN (cancel)
55 7
56 8
87 W
88 X
119 w
120 x
Interchange
25 EM (end of medium) 57 9 89 Y 121 y
26 SUB (substitute) 58 : 90 Z 122 z
27 ESC (escape) 59 ; 91 [ 123 {
28 FS (file separator) 60 < 92 \ 124 |
29 GS (group separator) 61 = 93 ] 125 }
30 RS (record separator) 62 > 94 ^ 126 ~
31 US (unit separator) 63 ? 95 _ 127 DEL

Caracteres possíveis de imprimir


Comandos de entrada e saída

 sintaxe da função printf


printf(string_de_controle,lista_de_argumentos);
 string: sequência de caracteres entre aspas duplas ” ”
 string de controle: descreve tudo o que vai ser impresso na tela
 o texto a ser impresso
 as variáveis, de quais tipos e em que posição
 o local onde o valor das variáveis será impresso é marcado com o
caractere especial %
Formatação de saída


exemplo: printf(”o valor de número é %d\n”, numero);

código Significado
%d Inteiro
%f Float O formato
depende do tipo
%c Caractere da variável a ser
impressa
%s String
%% escreve %
Exemplos
printf ("Teste %% %%"); imprime Teste % %

printf ("%f", 40.345); imprime 40.345

printf ("Um caractere %c e um inteiro %d", 'D', 120);

imprime Um caractere D e um inteiro 120

printf ("%s e um exemplo", "Este");

imprime Este e um exemplo

printf ("%s%d%%","Juros de ", 10);

imprime Juros de 10%"


Comando de leitura
 a leitura de dados digitados pelo usuário no teclado é feita pela
função scanf com sintaxe
scanf (string-de-controle, lista-de-argumentos);
 Exemplo:

scanf(“%d”, &idade);

Efeito: lê o valor de um número inteiro e o armazena na variável idade

Trecho de código:
printf (“Digite a sua idade:\n”);
scanf (“%d”, &idade);
printf(“Sua idade é: %d”, idade);
String de controle: formatos de leitura
%c caracter
%d inteiro
%e número ou notação científica
%f ponto flutuante
%o octal
%x hexadecimal
%s string (cadeia de caracteres)
%lf double
Exemplo de uso de strings de controle

#include <stdio.h>
main ( )
{
char a ;
printf ( “digite um caracter\n” );
scanf ( “ % c”, &a );
printf (“ \n %c = %d em decimal”, a, a);
printf (“%o em octal, %x em hexadecimal”, a, a);
}

Digitando m:
m = 109 em decimal, 155 em octal, 6d em hexadecimal
Caracteres especiais: constantes iniciadas por \
Código Significado
\b Retrocesso ("back")
\f Alimentação de formulário ("form feed")
\n Nova linha ("new line")
\t Tabulação horizontal ("tab")
\" Aspas
\' Apóstrofo
\0 Nulo (0 em decimal)
\\ Barra invertida
\v Tabulação vertical
\a Sinal sonoro ("beep")
\N Constante octal (N é o valor da constante)
\xN Constante hexadecimal (N é o valor da constante)
Formatando a impressão com printf

é possível estabelecer o tamanho mínimo para a impressão de um valor

#include <stdio.h>
main ( ) {
printf (“os alunos são %2d \n”, 350);
printf (“os alunos são %4d \n”, 350);
printf (“os alunos são %5d \n”, 350);
}

Saída: os alunos são 350 Define o


os alunos são 350 tamanho do
os alunos são 350 espaço de
impressão
Formatação de valores numéricos

• formatação de valores para números inteiros

• Exemplo:

Valor Formatação Valor exibido


%d 3
%5d 3
3
%01d 3
%05d 00003

32
Formatação de valores numéricos

• Especificação do formato de saída


• Exemplo: %8.3f
– significa: imprimir um valor de ponto flutuante com
oito caracteres no total e com três casas decimais

• Se for necessário, será acrescentado o caractere ‘ ‘


(espaço) à esquerda do valor para completar o
tamanho total

33
Formatação de valores numéricos
• Exemplo:

Valor Tag Valor exibido


%5.3f 3.142
pi = 3.14159
%8.3f 3.142
%5.3f 2.003
raio = 2.0031
%.6f 2.003100
%5.3f 12.586
%6.3f 12.586
%7.3f 12.586
area = 2*pi*raio
%e 1.258584e+001
%E 1.258584E+001
%12.3e 1.259e+001

34
Exercícios
 Estude os capítulos 1 e 2.
 Faça os exercícios dos capítulos 1 e 2.
 Leia o capítulo 3 para a próxima aula, isto é, ler antes da aula.

 Curso de C na Web
http://www.ead.cpdee.ufmg.br/cursos/C/c.html

Você também pode gostar