Escolar Documentos
Profissional Documentos
Cultura Documentos
TÉCNICAS E LINGUAGENS DE
PROGRAMAÇÃO - 11ºANO
ANO LECTIVO 2004/2005
TLP - 11ºANO 1
2 - Tipos de Dados Básicos
Tipos de Dados em C
Variáveis
Atribuição
Inteiros, Reais e Caracteres
Operadores Numéricos
Leitura e escrita de variáveis e expressões
Formatos de leitura e escrita
Caracteres vs. Inteiros
Alguns erros comuns
TLP - 11ºANO 2
Tipos de dados
Os tipos de dados são apenas 4:
char - apenas 1 caracter alfanumérico
TLP - 11ºANO 3
Variáveis
TLP - 11ºANO 4
Variáveis
Exemplos:
main()
{
declaração de variáveis
instrução1;
instrução2;
}
TLP - 11ºANO 6
Nomes de Variáveis
O nome de uma variável pode ser constituído por
letras do alfabeto (minúsculas ou maiúsculas), dígitos
(0,...9) e pelo caracter underscore (_).
O 1º caracter não pode ser um dígito. Terá que ser
uma letra ou caracter underscore. Este último é
desaconselhado como primeira letra de uma variável.
Maiúsculas e minúsculas representam caracteres
diferentes logo variáveis diferentes.
Uma variável não pode ter por nome uma palavra
reservada da própria linguagem.
Não é aconselhado o uso de caracteres acentuados (â,
õ, à, é, etc) no nome das variáveis, pois a maioria dos
compiladores não os aceita como caracteres
admissíveis.
TLP - 11ºANO 7
Nome de Variáveis(Cuidados a seguir)
O nome da variável deve descrever o que ela
armazena.
Ex: xxx,yyy vs. Id_Cliente, num_factura
TLP - 11ºANO 8
Atribuição
Sempre que uma variável é declarada, estamos a
solicitar ao compilador espaço em memória para a
armazenar.
No caso do inteiro o espaço que lhe é reservado é de 2
Bytes.
Nota – Uma variável que é declarada fica sempre com
um valor, o qual resulta do estado aleatório dos Bits
que a constituem.
A atribuição de valores em C é realizada através do
sinal =, sendo a variável a alterar SEMPRE colocada do
lado esquerdo da atribuição e o valor a atribuir do lado
direito.
Sintaxe: variável = expressão;
Ex.: Para colocar o valor –17 na variável num faz-se:
int num; /* declaração da variável num */
num=-17; /* num passa a ter valor –17 */
TLP - 11ºANO 9
Atribuição
Nota – Uma variável pode ser automaticamente inicializada
quando se faz a sua declaração.
TLP - 11ºANO 10
Atribuição
Ex: a = 5;
b = 5;
c = 5;
d = 5;
ou então a = b = c = d = 5;
TLP - 11ºANO 11
Inteiros - int
TLP - 11ºANO 12
Inteiros - int
Operações sobre inteiros
É possível realizar um conjunto de operações sobre os
inteiros, em que o resultado é sempre um valor inteiro:
TLP - 11ºANO 13
Inteiros - int
Operações sobre inteiros
NOTA: Qualquer operação entre inteiros devolve um
inteiro.
21 4
1 5
TLP - 11ºANO 14
Inteiros - int
Como escrever os inteiros no ecrã?
#include<stdio.h>
main()
{
int num = 123;
printf (“O valor de num = %d e o valor seguinte
= %d\n”, num, num+1);
}
TLP - 11ºANO 15
Comentário do exercício
Pode ler-se no programa anterior que a declaração
da variável num do tipo int é automaticamente
inicializada com o valor 123.
Nós queremos escrever no ecrã a seguinte string:
"o valor de num=123 e o valor seguinte =124"
TLP - 11ºANO 16
Inteiros - int
Da mesma forma que existe a função printf para
escrita de valores, existe uma função correspondente
para a leitura de valores scanf.
Exemplo:
#include<stdio.h>
main()
{
int num ;
printf(“Introduza um Nº: ”);
scanf(“ %d”, &num);
Printf(“O n.º introduzido foi %d\n”, num);
}
TLP - 11ºANO 17
Função scanf
A função scanf ( leitura formatada) funciona de
forma semelhante à função printf. Uma vez que ela
foi implementada para a leitura de valores, a string
inicial deve conter apenas o formato das variáveis
que queremos ler.
scanf(“%d”, &num);
TLP - 11ºANO 18
Função scanf
NOTA: Para qualquer variável do tipo int, char,
float ou double utilizando a função scanf, tem que
preceder cada variável de um & (“E” comercial).
Caso não o faça, a execução do programa poderá
ter resultados inesperados.
TLP - 11ºANO 20
Sumário
18/10/2004
Caracteres.
Exercícios.
TLP - 11ºANO 21
Inteiros e Variações
TLP - 11ºANO 22
Inteiros e Variações
Exemplo:
Escrever um programa que indique o
número de Bytes que ocupa um inteiro.
#include <stdio.h>
main()
{
printf ("O tamanho em Bytes de um
inteiro = %d\n”, sizeof(int));
}
TLP - 11ºANO 23
Exercício sizeof
Escreva um programa que indique qual o número de
Bytes que ocupam todos os tipos básicos em C:
#include <stdio.h>
main()
{
printf ("O tamanho em Bytes de um inteiro=%d
\n”,sizeof(int));
printf ("O tamanho em Bytes de um char=%d
\n”,sizeof(char));
printf ("O tamanho em Bytes de um float=%d
\n”,sizeof(float));
printf ("O tamanho em Bytes de um double=%d
\n”,sizeof(double));
}
(int=2; char=1;TLPfloat=4;
- 11ºANO
double=8) 24
Inteiros e Variações
Na declaração de um inteiro podem ser utilizados 4
prefixos distintos:
TLP - 11ºANO 25
Inteiros e Variações
TLP - 11ºANO 26
Resolução:
#include <stdio.h>
main()
{
short int idade; /* ou short idade */
int montante;
long int n_conta; /* ou long n_conta*/
unsigned 2 0 65 535
short int
unsigned 4 0 4 294 967 295
long int
TLP - 11ºANO 29
Reais – float e double
As var. tipo float e double são utilizadas para
armazenar valores numéricos com parte fraccionária
(reais ou de virgula flutuante)
Parte decimal
Parte inteira ponto
TLP - 11ºANO 30
Calcular o quadrado
A forma mais conhecida de calcular o quadrado de um
número é multiplicar o número por si próprio
(x*x)=x2
pow (x,2)
TLP - 11ºANO 31
Exercício com expoente
Escrever um programa que faça a conversão de toneladas para
quilos e gramas, escrevendo em notação tradicional (aaaa.bb) e
notação cientifica (aaaE± bb).
#include <stdio.h>
main()
{
float quilos=1.0E3; /*uma tonelada são 1000 quilos*/
double gramas=1.0E6; /*uma tonelada são1.000.000 gramas*/
float n_toneladas;
printf ("Quantas toneladas comprou: ");
scanf ("%f",&n_toneladas);
printf ("N.º de quilos = %f = %e\n",n_toneladas*quilos,
n_toneladas*quilos);
printf ("N.º de gramas = %f = %E\n",n_toneladas*gramas,
n_toneladas*gramas);
}
TLP - 11ºANO 32
Explicação do programa:
TLP - 11ºANO 33
Caracteres - char
O tipo char permite armazenar UM ÚNICO
CARACTER.
TLP - 11ºANO 34
Caracteres - char
A declaração de uma variável do tipo char segue a
sintaxe já conhecida:
char var1,var2,var3;
TLP - 11ºANO 35
Exercícios com char
#include <stdio.h>
#include <stdio.h>
main() main()
{ {
printf ("%clá mu%cdo char ch;
%c", 'O',‘n','\n'); printf ("Introduza um
caracter: ");
}
scanf (“%c",&ch);
Resultado printf ("O caracter
Olá mundo inserido foi
'%c'\n",ch);
$(cursor na nova linha)
}
Resultado
Escreva um programa que Introduza um caracter: A
leia um caracter e a seguir O caracter inserido foi 'A'
o escreva no ecrã. $
TLP - 11ºANO 36
Exercício com char
Escreva um programa que solicite, através da função
scanf, um caracter ao utilizador e em seguida solicite
outro. Por fim, mostre os dois caracteres.
#include <stdio.h>
main()
{
char ch1,ch2;
printf ("Introduza um caracter: ");
scanf ("%c",&ch1);
printf ("Introduza outro caracter: ");
scanf (“%c",&ch2);
printf ("Os caracteres introduzidos foram '%c' e
'%c'\n",ch1,ch2);
}
TLP - 11ºANO 37
Exercício com char
Resultado:
Introduza um caracter: a
Introduza outro caracter: Os caracteres
introduzidos foram 'a' e '
'
Como resolver este problema?
TLP - 11ºANO 38
Sumário
25/10/2004
Exercícios.
TLP - 11ºANO 39
Função getchar()
A leitura de caracteres pode ser realizada sem ter de
recorrer à função scanf.
TLP - 11ºANO 40
Exercício com getchar()
getchar() vs scanf()
#include <stdio.h>
main() A utilização da função
{ getchar() evita a presença do
char ch; formato de leitura (%c).
printf ("Introduza um O scanf é uma função
caracter: "); genérica de leitura
ch = getchar(); O getchar é uma função
especificamente para a
printf ("O caracter inserido leitura de caracteres.
foi '%c'\n",ch);
Como a variável não é
} passada como parâmetro à
função getchar, não precisa
de ser precedida pelo &.
TLP - 11ºANO 41
Caracteres e Inteiros
Na Linguagem C os caracteres são valores inteiros
guardados num único Byte.
Todas as operações realizadas com inteiros são também
aplicadas ao tipo char.
Depois de declarada a var char ch;
Há várias formas de colocar o caracter 'A' nesta variável:
ch= 'A'; /*Formato tradicional*/
ch= 65; /*Caracter cujo código ASCII é 65*/
TLP - 11ºANO 42
Exemplo
#include <stdio.h>
main()
{
char ch;
printf ("Introduza um caracter: ");
scanf ("%c",&ch);
printf ("O caracter '%c' tem o ASCII nº %d\n", ch, ch);
}
Resultado:
Introduza um caracter: a
O caracter 'a' tem o ASCII nº97
$
TLP - 11ºANO 43
Explicação
Declara-se uma var. tipo char. Faz-se a sua leitura
através da função scanf.
TLP - 11ºANO 44
(Casting)
Sempre que se tem numa var. um valor de um
determinado tipo e se quer modificar o tipo dessa var.,
para outro tipo (maior ou menor), é possível indicar
qual o tipo pretendido colocando-o entre ( ) antes do
valor.
TLP - 11ºANO 45
Exercício
TLP - 11ºANO 46
Resolução
#include <stdio.h>
main()
{
int num;
printf ("Introduza um número inteiro: ");
scanf ("%d",&num);
printf("Foi introduzido %d cujo caracter = '%c'\n", num, (char)num);
printf ("O caracter seguinte = '%c' tem o ASCII nº %d\n”, (char)
(num+1), num+1);
}
Resultado:
Introduza um número inteiro: 67
Foi introduzido 67 cujo caracter='C'
O caracter seguinte é 'D' tem o ASCII nº 68
TLP - 11ºANO 47
Formatos de Leitura e Escrita Resumo:
Tipo Formato Observações
char %c Um único caracter
int %d ou %i Um inteiro (Base decimal)
int %o Um inteiro (Base octal)
int %x ou %X Um inteiro (Base hexa)
short int %hd Um short inteiro (Base decimal)
long int %ld Um long inteiro(Base decimal)
unsigned short int %hu short inteiro positivo
unsigned int %u inteiro positivo
unsigned long int %lu long inteiro positivo
float %f ou %e ou
%E
double %f ou %e ou
%E TLP - 11ºANO 48
Resumo
O C tem 4 tipos de dados básicos – char, int, float e
double
A atribuição de valores a uma var. é realizada através
do sinal =
Podem ser realizadas atribuições encadeadas (a=b=c=2).
Neste caso estas são realizadas da direita para a
esquerda pois uma atribuição devolve sempre o valor
atribuído.
Uma variável pode ser inicializada assim que é
declarada, colocando o sinal atribuição seguido do valor
atribuir (Ex: int a = 234;).
O nome de uma variável deverá sempre representar a
informação que ela contém.
TLP - 11ºANO 49
Resumo (cont.)
Qualquer operação entre inteiros devolve sempre um
resultado inteiro. As operações mais comuns são a
soma(+), subtracção(-), multiplicação(*),divisão
inteira(/) e o resto da divisão inteira (% também
conhecida por módulo).
Podem ser utilizadas as operações anteriores com
reais, à excepção do módulo (%).
A leitura e a escrita de valores pode realizar-se através
das funções scanf e printf respectivamente, utilizando
os formatos adequados a cada tipo %d – int, %f – float
e double e %c – char.
No caso do scanf, cada variável deverá ser precedida de
um &.
TLP - 11ºANO 50
Resumo (cont.)
O tipo int permite algumas pequenas variações, quer
no tamanho quer na forma, através dos prefixos
short, long, signed e unsigned.
O tipo char permite as variações signed(-128 - 127) e
unsigned (0 - 255).
Sempre que seja necessário converter uma expressão
a um determinado tipo utiliza-se o casting (tipo)
Não se deve realizar a leitura de variáveis de um
determinado tipo, usando formato de leitura que não
corresponde a esse tipo.
Função getchar() é uma função especificamente
dedicada à leitura de caracteres.
TLP - 11ºANO 51