Programação em C-Cópia PDF
Programação em C-Cópia PDF
Programação em C-Cópia PDF
Função main ()
Estrutura de um programa
Aula 1
Sofia Cerqueira
1.1. História da Linguagem C/C++
O C é uma linguagem de programação procedimental,
isto é, consiste em representar a solução em forma de
uma série de ações/procedimentos que são executados
sequencialmente para produzir a solução.
#include <math.h>
1.2 Estrutura de um programa em C++
getchar();
23
1.5.1 Variáveis
Suponha-se que é pedido a uma determinada pessoa
para memorizar o número 5 e depois o número 2.
24
1.5.1 Variáveis
25
1.5.1 Variáveis
Uma variável é uma posição na memória do
computador, que é reservada para armazenar os dados
que o algoritmo vai manipular.
26
1.5.1 Variáveis
27
1.5.1 Variáveis
•Um arquivo com 15 gavetas que podem armazenar os
documentos de diferentes pessoas.
28
1.5.1 Variáveis
•E há gavetas que não foram reservadas, ou seja, estão livres
para serem reservadas quando necessário.
29
1.5.1 Variáveis
As variáveis devem ser declaradas no algoritmo antes
de serem utilizadas.
30
1.5.1 Variáveis
O identificador permite referir de forma única uma
variável enquanto que tipo de dados é útil para a
optimização do código pois diferentes tipos de dados
requerem quantidade distintas de memória.
31
1.5.1 Variáveis
Podem-se utilizar números e letras maiúsculas ou
minúsculas.
Não se deve utilizar caracteres especiais, à exceção do
underscore ( _ ).
O primeiro caracter deve ser sempre letra ou
sublinhado, mas nunca um número.
Não deve utilizar acentos gráficos, til ou cedilha.
32
1.5.1 Variáveis
Além dos símbolos, não é permitido espaço em branco.
Não se devem utilizar as palavras reservadas da
linguagem
33
1.5.1 Variáveis
Observações:
35
1.5.1 Variáveis
Exercício: Identifique, justificando, os identificadores inválidos.
a) nome1
b) 1nome
c) ano_de_nascimento
d) Ano de nascimento
e) Salario
f) nota_aluno
g) @salário$
h) qtd_dias
i) enum
j) remédio
36
1.5.2 Tipo de dados
Aquando da declaração de uma variável, o compilador
da linguagem C++ necessita, por uma questão de
optimização de código, de saber qual o tipo da referida
variável de forma a reservar em memória apenas o
espaço estritamente necessário.
37
1.5.2 Tipo de dados
Note–se que a memória do computador esta
organizada em bytes, sendo que um byte é a unidade
mínima para atribuição de memória. Com um byte é
possível armazenar:
38
1.5.2 Tipo de dados
No entanto, em muitas situações será necessário
armazenar valores superiores à capacidade de um byte,
para este efeito existem outros tipos de dados.
39
1.5.2 Tipo de dados
40
1.5.3 Declaração de variáveis
41
1.5.3 Declaração de variáveis
42
1.5.3 Declaração de variáveis
Ou seja, para declarar uma variável, devemos proceder
da seguinte forma:
<tipo_da_variável> <nome_da_variável>
ou:
<tipo_da_variável> <lista_de_variáveis>
43
1.5.3 Declaração de variáveis
Já a sintaxe subjacente à declaração/iniciação de uma
ou mais variáveis é:
44
1.5.4 Constantes
Uma constante é qualquer identificador que tem um
valor fixo, portanto que não pode ser alterada durante
a execução do programa. Num programa em C++
podem coexitir três tipos de constantes:
Literais;
Definidas;
Declaradas.
45
1.5.4.1 Literais
Um literal é uma qualquer identificador com o valor fixo e
podem ser divididos em: números inteiros, números reais,
caracteres e cadeias de caracteres
Números inteiros
São constantes numéricas que identificam números na
base decimal. Note-se que para expressar uma constante
numérica não é necessário escrever aspas(") ou qualquer
outro carater especial.
1776
707
-203
46
1.5.4.1 Literais
Números Reais
Expressam números com décimas e/ou expoente.
Podem incluir um ponto decimal, o carater e (que
expressa "10 elevado a X", onde X é um valor inteiro) ou
ambos.
Notação Valor
3.14159 3.14159
6.022e23 6:022 ×1023
1.6e-19 1:6 ×10-19
2
1.41421356237309504
3.0 3:0
47
1.5.4.1 Literais
Números Reais
Estas são cinco formas válidas de representar números
reais em C++. Respectivamente, o valor de π, o número
de Avogadro, a carga eléctrica de um electrão
(extremamente pequena), raiz de dois e o numero três
expresso como decimal;
48
1.5.4.1 Literais
Caracteres e strings
Também existem constantes não numéricas, como a seguir
se exemplifica:
’z’
’p’
"Olá Mundo!"
"Como estás?"
50
1.5.4.2 Definidas
Para além dos literais existem constantes que podem
ser declaradas pelo programador, podendo ser
definidas através de uma directiva de pré-
processamento #define ou através da palavra–chave
const
51
1.5.4.2 Definidas
Como já foi referido anteriormente o pré–processador
única e simplesmente actua sobre o código (texto) e
neste caso substituí todas as ocorrências no código da
constante pelo seu valor. Por esta razão estas
constantes são designadas de macros.
52
1.5.4.2 Definidas
53
1.5.4.2 Definidas
A utilização de macros tem duas vantagens:
54
1.5.4.3 Declaradas
Através da palavra–chave const é possível declarar
constantes de um determinado tipo de dados,
conforme a seguir se exemplifica:
int a=sizeof(char);
56
1.5.4.3 Declaradas
Conversão de tipos de dados (instrução cast) – A conversão de
dados consiste em converter dados de um tipo noutro tipo de
dados. Por exemplo:
int i;
float f = 3.14;
i = (int) f;
instruções de sequência;
instruções de decisão;
instruções de repetição.
58
1.6 Estruturas de controlo
59
1.6.1 Instruções de Sequência
As instruções de sequência são instruções atómicas
(simples) permitem a leitura/escrita de dados, bem
como o cálculo e atribuição de valores. Todas as
instruções são executadas pela ordem apresentada no
programa.
60
1.6.1 Instruções de Sequência
#include<iostream.h> – A directiva de pré-processador
promove a inclusão da instrução system("pause");
Exemplos:
%d inteiro decimal
int i, j;
%f float
float x;
char c; %lf double
scanf("%d", &i); %c char
scanf("%d %f", &j, &x); %s string
scanf("%c", &c);
scanf("%s", &nome);
62
1.6.1 Instruções de Sequência
valorDolar=valorEuro*taxa; – Esta linha de código
realiza duas operações, a operação de multiplicação
valorEuro*taxa; e a operação de atribuição do cálculo à
variável valorDolar;
63
1.6.1.1 Operadores aritméticos
O operador de atribuição serve para atribuir o
resultado de uma expressão a uma variável. Conforme
exemplo seguinte:
a=5;
A linha de código anterior atribuí o valor 5 à variável a.
A parte esquerda do operador = é conhecida como
lvalue (left value) e a parte direita como rvalue (lado
direito). rvalue é uma expressão (e.g., uma variável,
uma constante, uma operação ou qualquer
combinação destes elementos) enquanto que o lvalue é
o nome de uma variável;
64
1.6.1.1 Operadores aritméticos
A operação de atribuição é realizada da direita para a
esquerda e nunca o inverso.
De seguida são apresentados alguns exemplos
Exemplo Resultado
a=10;
b=4; O valor da variável c será 10
c=a;
a=10;
b=4;
O valor da variável a será 60 ( 4*(10+5) )
c=5;
a=b*(c + a);
b=c=a=0; O valor das variáveis a, b e c será 0
65
1.6.1.1 Operadores aritméticos
C++ define os seguintes operadores aritméticos
simples. No exemplo seguinte os operadores considerem-
se as variáveis a e b com valores, 13 e 5, respectivamente.
66
1.6.1.1 Operadores aritméticos
O C++ fornece igualmente os seguintes operadores
aritméticos compostos
69
1.6.1.1 Operadores aritméticos
No caso do operador de incremento usado como
prefixo (++a;) o valor é incrementado e depois a
expressão é avaliada e portanto o valor incrementado é
considerado na expressão.
No caso operador de incremento ser usado como sufixo
(a++;), o valor da variável é incrementado após a
avaliação da expressão.
Exemplo Resultado
b=3; O valor final de a será 4
e o de b também
a=++b;
b=3; O valor final de a será 3
e o de b 4
a=b++; 70
1.6.1.2 Operadores relacionais
A tabela apresenta os operadores relacionais do C++.
Os operadores relacionais avaliam a comparação entre
duas expressões. O resultado dessa comparação é um
valor do tipo bool que pode ser true ou false,
obviamente de acordo com o resultado da comparação.
Símbolo Significado
< menor que
> maior que
≤ menor ou igual que
≥ maior ou igual que
== igual
!= diferente 71
1.6.1.2 Operadores relacionais
Na tabela apresenta-se alguns exemplos da utilização
dos operadores relacionais nos quais se consideram os
valores a=5; b=6; c=7;.
Exemplo Resultado
(7==5) falso
(a!=b) verdade
(a<=7) verdade
((a*b)>=c) verdade
72
1.6.1.2 Operadores lógicos
A tabela apresenta os operadores lógicos da linguagem
C++
O resultado das operações com os operadores lógicos
também é verdade ou falso.
Símbolo Significado
&& conjunção
|| disjunção
! negação
73
1.6.1.2 Operadores lógicos
O operador !, colocado à esquerda da expressão,
inverte o valor lógico da mesma. Isto é, se a expressão é
verdadeira passa a falsa e vice–versa.
Exemplo Resultado
((5==5) & & (3>6)) Falso
((5==5) || (3>6)) Verdade
!(5==5) Falso
!verdade Falso
74
1.6.1.2 Operadores lógicos
Tabelas de verdade: conjunção, disjunção e negação
a b a && b a b a || b
0 0 0 0 0 0 a !a
0 1 0 0 1 1 0 1
1 0 0 1 0 1 1 0
1 1 1 1 1 1
75
Funções Matemáticas
Função Exemplo Comentário
ceil ceil(x) Arredonda o número 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 número real 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 à potência y
sin sin(x) Seno de x
sqrt sqrt(x) Raiz quadrada de x
tan tan(x) Tangente de x
#include <math.h>
76
Exercícios
1. Calcular índice de massa corpórea (IMC)
O índice de massa corpórea (IMC) de um indivíduo é obtido dividindo-
se o seu peso (em Kg) por sua altura (em m) ao quadrado. Assim, por
exemplo, uma pessoa de 1,67m e pesando 55kg tem IMC igual a 20,14, já
que:
77
Exercícios
2. Converter horas, minutos e segundos
Escreva um programa que a partir de um determinado
número de segundos calcula o número de horas,
minutos e segundos correspondentes. Conforme o
seguinte exemplo:
8053s = 2h + 14m + 13s
3. Teorema de Pitágoras
Escreva um programa para determinar a hipotenusa de
um triângulo rectângulo, dados os catetos.
78
Exercícios
3. Converter temperaturas
Escreva um programa que a partir de uma temperatura
expressa em graus Fahrenheit (tempF), calcule a
temperatura expressa em graus Celsius (tempC). A
conversão pode ser realizada de acordo com a fórmula:
9 temp C
temp F 32
5
79