Vous êtes sur la page 1sur 40

Mdulo 1

Introduo Programao e Algoritmia

PSI 1 ano

Tipos de dados em

TGPSI - Paulo Reis - Agrupamento de Escolas da Batalha

variveis
Declarao:

<tipo> nome = <inicializao>;


Escopo da variveis:
 Globais: podem ser usadas em qualquer lugar do

programa;
 Locais: podem ser usadas apenas na funo onde foi
declarada.

Regras para definio de variveis:


 O nome de uma varivel deve iniciar com uma letra ou com o caractere
underscore (_).
 O nome de uma varivel no pode ser uma palavra reservada da linguagem C.
 Ter em ateno que a linguagem C case sensitive (maisculas so diferentes
de minsculas)
 Lembrar de sempre iniciar uma varivel.
3

#include <stdio.h>
#include <stdlib.h>
int a, b = 10; // Variveis globais
void f(char c) {
double d = 10.0; // Varivel local
int i = a; // Varivel local
}
int main() {
int i = b;
return 0;
}

// Varivel local
4

constantes
So valores que so mantidos fixos pelo compilador.
Constantes so o oposto das variveis, apesar de
trabalharem da mesma forma.
As variveis tm esse nome exatamente porque
podemos mudar o seu valor durante a execuo do
programa.
J as constantes so dados gravados em memria que
de forma alguma podemos alterar seu valor.

#define tipo A;
#define numero 56;

constantes de barra invertida


Cdigo

Significado

\b
\f
\t
\n
\
\
\0
\\
\a
\N
\xN

Retrocesso (backspace)
Alimentao de formulrio (form feed)
Tabulao Horizontal (tab)
Nova Linha
Aspas
Apstrofo
Nulo
Barra Invertida
Sinal Sonoro (Beep)
Constante Octal (N o valor da constante)
6

Constante Hexadecimal (N o valor da constante)

declaraes
num Algoritmo:

na Linguagem C:

#include <stdio.h>

Var n1, n2, n3, media: real

main()
{
double n1, n2, n3, media;

}
7

declaraes
Declaraes servem para descrever as variveis e os
seus tipos.
Os nomes das variveis devem conter apenas letras,
dgitos e o smbolo undescore (_).
Os principais tipos em C so: int, float, double e char.
Exemplos:

int n;
int quantidade_valores;
float x, y, somaValores;
char sexo;
char nome[40];
8

tipos de dados em C

tipos de dados em C
So as formas que utilizamos para representar dados na
linguagem.
4 tipos bsicos e um especial:

char, int, float, double


void
4 modificadores bsicos:

signed, unsigned, long, short


 Os 4 modificadores podem ser aplicados ao tipo int
 O modificador long apenas pode ser aplicado ao double
 O signed e unsigned no aplicado ao char

10

tipos de dados em C

11

int
O tipo de dado int (inteiro) serve para armazenar
valores numricos inteiros (sem parte fracionria)
positivos e negativos.
Existem vrios tipos de inteiros, cada um de tamanho diferente
(dependendo do sistema operacional e/ou arquitetura do
processador):

 int, pode possuir 16 bits, 32 bits ou 64 bits


 short int, deve possuir tamanho de no mnimo 16 bits e no
pode ser maior que int
 long int, deve possuir tamanho mnimo de 32 bits
 long long int, deve possuir tamanho mnimo de 64 bits

12

int
Ex: para declarar uma varivel com o nome quadrado
do tipo inteiro deveramos utilizar a seguinte instruo:
int quadrado;
Operaes possveis: soma (+), subtrao (-),
multiplicao (*), diviso inteira (/) e resto da diviso
inteira (%).
 Como devolvido sempre um inteiro, por exemplo, a
operao 21/4 devolver 5 e no 5,25.
 A operao 21%4 ir devolver o resto da diviso de 21 por 4,
ou seja 1.
13

float, double
O tipos de dado float e double servem para armazenar
nmeros de ponto flutuante, i.e., com casas decimais.
A diferena entre uma varivel float e double o
nmero de bytes que reserva para armazenar o valor
(a dimenso do float 4 bytes e do double 8 bytes).

14

float, double
representado por uma parte inteira e outra decimal
separadas por um ponto.
float Pi = 3.1415;
double erro = 0.00000002;
float total = 0.2;

Operaes possveis: soma (+), subtrao (-), multiplicao (*),


diviso inteira (/) e resto da diviso inteira (%).
 Qualquer operao que inclua um dos operandos do tipo
float, obtm um resultado do tipo float.

 A atribuio, leitura e escrita pode ser realizada usando notao cientfica atravs de
uma base e de um expoente: 240.23 E22 = 240.23 * 1022
15

char
O tipo char permite armazenar numa varivel deste
tipo um nico caractere.
Ocupa 1 byte ( sempre utilizado um nico byte,
independentemente do tipo de computador).
char ch, varch;
 Isto significa que o programa reserva um espao de 8 bits na
memria RAM ou em registos do processador para
armazenar um valor (char de tamanho maior que 8 bits
permitido pela linguagem C, mas os casos so raros).

Com vetores do tipo char possvel criar cadeias de


carateres (strings).
16

inicializao e atribuio
 Em C as variveis podem ser inicializadas com um valor
quando so declaradas.
Exemplo:
int cont = 10;
 O operador = (i.e., igual) usado para afetar valores a
variveis.
Exemplo:
cont = 32;
letra = 'A';
17

operadores de incremento e decremento


A linguagem C apresenta ainda dois operadores no convencionais.

 Os operadores de incremento e decremento, que


possuem precedncia comparada ao - unrio e servem
para incrementar e decrementar uma unidade nos
valores armazenados nas variveis.
Exemplo:

n++;
As seguintes instrues so todas equivalentes:
a = a + 1;
a += 1;
a++;
++a;

18

formato de leitura e escrita


Linguagem C
int
long int
float
double
char
char []
*p

Formato
%d
%l
%f
%lf
%c
%s
%p

Tipo de dados
Inteiro
Inteiro longo
Real
Real (dupla preciso)
Caractere
String (cadeia de caracteres)
Apontador (pointer)

19

formato de leitura e escrita


 As variveis float e double so impressas com seis casas decimais.


Isto NO est relacionado com a preciso com que o nmero


armazenado internamente, apenas significa quantas casas decimais o
printf() usa para imprimir estes tipos de variveis.

 possvel tambm especificarmos o tamanho dos campos:

20

comando de sada
 A funo printf()
possibilita a sada de valores (sejam eles constantes, variveis
ou resultado de expresses) segundo um determinado
formato.
printf(mensagem [,lista de argumentos]);
Mensagem (string) com cdigos de
controlo embutidos na mesma

Valores que sero substitudos na


mensagem, no lugar de cada cdigo
de controlo iniciado por %

Exemplos:
printf(O valor de PI %f, 3.1415);
printf(O menu nome %s e tenho %d anos., Joo, 16);
21

comando de entrada
 A funo scanf()
Permite capturarmos valores fornecidos via teclado pelo utilizador
do programa.
scanf(cdigo de controlo,lista de argumentos);

Cdigos de controlo que


identificaro o tipo de dado
digitados pelo utilizador
Exemplo 1:
char letra;
printf(digite uma letra);
scanf( %c , &letra);

Variveis que recebero os dados,


precedidas pelo smbolo &

Exemplo 2:
float numero;
printf(digite um valor);
scanf( %f , &numero); 22

operadores aritmticos em C
Operador

+
*
/
%
++
--

Ao
Soma
Subtrao ou troca de sinal
Multiplicao
Diviso
Resto da diviso inteira
Incremento
Decremento
23

operadores relacionais em C
Operador

Relao

>
>=
<
<=
==
!=

Maior que
Maior que ou igual a
Menor que
Menor que ou igual a
Igual a
Diferente de

Os operadores relacionais do C realizam comparaes entre variveis.


24

operadores lgicos em C
Operador
&&
||
!

Funo
AND
OR
NOT

Os operadores relacionais retornam verdadeiro (1) ou falso (0).


Para fazer operaes com valores lgicos (verdadeiro e falso) temos
os operadores lgicos.
25

operadores lgicos Bit a Bit em C


Operador
&
|
^
~
>>
<<

Ao
AND Lgico
OR Lgico
XOR (OR exclusivo)
NOT
Shift Rigth
Shift Left

O C permite que se faam operaes lgicas "bit-a- bit" em


nmeros. Ou seja, neste caso, o nmero representado na sua
forma binria e as operaes so feitas em cada um dos bit.
26

operadores de atribuio em C
Operador

=
+=
-=
*=
/=
%=

Exemplo
x=y

Ao
Atribui o valor de y a x

x += y

Equivale a x = x + y

x -= y

Equivale a x = x + y

x *= y

Equivale a x = x * y

x /= y

Equivale a x = x / y

x %= y

Equivale a x = x / y

27

Programas
exemplo

28

exemplo02.c

#include <stdio.h>
#include <stdlib.h>
main()
{
int num_1; // declaramos num_1
num_1 = 44; // atribumos o valor 44 a num_1
int num_2; // declaramos num_2
num_2 = num_1 + 20; // atribumos o valor soma a num_2
printf("\no primeiro numero : %d", num_1);
printf("\no segundo numero num_1+20: %d\n", num_2);
system("pause");
}

29

exemplo03.c

#include <stdio.h>
#include <stdlib.h>
main()
{
int
char
float
double

soma = 100;
letra = 'Z';
set1 = 23.567;
num2 = 11e+23;

printf("Varivel
printf("Varivel
printf("Varivel
printf("Varivel

inteira: %d\n", soma);


caracter: %c\n", letra);
float: %f\n", set1);
double: %e\n", num2);

system("pause");
}

30

exemplo04.c

#include <stdio.h>
#include <stdlib.h>
main()
{
int evento = 5;
char corrida = 'C';
float tempo = 27.25;
printf("\n O tempo vitorioso na eliminatoria %c ",
corrida);
printf("da competicao %d", evento);
printf(" foi %4.2f (mm.ss)\n", tempo); // v que a
linha de comando termina aqui
system("pause");

}
31

exemplo05a.c

#include <stdio.h>
#include <stdlib.h>
main()
{
char ch;
printf("---versao original do programa:\n");
printf("\tIntroduza um caractere: ");
scanf("%c",&ch);
printf("\tO caractere introduzido foi %c\n\n",ch);
system("pause");

32

exemplo05b.c

#include <stdio.h>
#include <stdlib.h>
main()
{
char ch;
printf("---segunda versao do programa anterior:\n");
printf("\tIntroduza um caractere: ");
ch = getchar();
printf("\tO caractere introduzido foi %c\n\n",ch);
system("pause");

33

funes matemticas em C
#include <math.h>
Funo

Exemplo

Comentrio

ceil

ceil(x)

Arredonda o nmero real para cima; ceil(3.2) 4

cos

cos(x)

Cosseno de x (x em radianos)

exp

exp(x)

e elevado potencia x

fabs

fabs(x)

Valor absoluto de x

floor

floor(x)

Arredonda o nmero deal para baixo; floor(3.2) 3

log

log(x)

Logaritmo natural de x

log10

log10(x)

Logaritmo decimal de x

pow

pow(x, y)

Calcula x elevado potncia y

sin

sin(x)

Seno de x

sqrt

sqrt(x)

Raiz quadrada de x

tan

tan(x)

Tangente de x

34

EXERCCIO)
Construir um programa que tendo como entrada
dois pontos quaisquer do plano P(x1,y1) e Q(x2,y2),
imprima a distncia entre eles.
A frmula da distncia :

35

 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
}

>> ver passo seguinte36


float x1, y1, x2, y2;
float distancia;
printf("\nDigite o valor de x1:");
scanf("%f",&x1);
printf("\nDigite o valor de y1:");
scanf("%f",&y1);

>> ver passo seguinte37

printf ("\nDigite o valor de x2: ");


scanf ("%f",&x2);

printf ("\nDigite o valor de y2: ");


scanf ("%f",&y2);
distancia=sqrt(pow((x2-x1),2)+pow((y2y1),2));
printf ("\nA distancia entre os pontos
P1 e P2 %.2f\n", distancia);
system("PAUSE");
}

>> visualizao completa do programa


38

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
float x1, y1, x2, y2;
float distancia;
printf ("\nDigite o valor de x1: ");
scanf ("%f",&x1);
printf ("\nDigite o valor de y1: ");
scanf ("%f",&y1);
printf ("\nDigite o valor de x2: ");
scanf ("%f",&x2);
printf ("\nDigite o valor de y2: ");
scanf ("%f",&y2);
distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
printf ("\nA distancia entre os pontos P1 e P2 %.2f\n",
distancia);
system("PAUSE");
}
39

ontinua
40

Vous aimerez peut-être aussi