Introdução à programação
Computadores e programação I
Linguagens de programação
Introdução ao C
© M@nso 2003
Introdução à programação
Sumário

Execução de programas


interpretadores, compiladores
Linguagem

Manipulação de informação



Operadores


entrada e saída de dados
Selecção de instruções



aritméticos, lógicos
Leitura e escrita


Variáveis
tipos de dados
Instrução if
Instrução Switch
Erros em programação
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Interpretação de Programas
interpretador
Programa que
converte as
instruções da
linguagem de
alto nível em
instruções
máquina e as
executa.
Basic, Java, Portugol
© M@nso 2004
Introdução à programação
Computadores e programação I
Compilação de programas
Compilador (compiler)
Programa que
converte as
instruções da
linguagem de alto
nível em instruções
máquina formando
um programa objecto
Ligador (linker)
Programa que reúne
todos os programas
objecto e faz um
programa executável
C,C++, Pascal
© M@nso 2004
Programas
Executados pelo
sistema operativo
Introdução à programação
Computadores e programação I
Introdução à linguagem C
© M@nso 2003
Introdução à programação
Computadores e programação I
Porquê C++


É a base de linguagens de programação modernas
É um investimento



È uma linguagem genérica


Serve para vários fins
É disciplinadora


Linguagem estandardizada
Muitos programas escritos em C / C++
Programar com método
É eficiente

Existem bons compiladores
© M@nso 2004
Introdução à programação
Computadores e programação I
Ola mundo

#include <stdio.h>


int main(int argc, char* argv[])


Definição de um bloco de instruções
printf("ola mundo");


Função principal
{}


Biblioteca de funções de entrada e saida de dados
escrever
return 0;

Retorno do programa
Olá mundo
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("ola mundo");
return 0;
}
© M@nso 2004
Introdução à programação
Computadores e programação I
Algoritmos computacionais

Acções de um algoritmo computacional

Manipular dados




Receber dados
Guardar dados
Imprimir dados
Executar instruções




Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação
Computadores e programação I
Tipos de dados em C

Simples

Numéricos





inteiros
reais
Caracter
Lógico
Compostos



variável
D0
11100 11100
Variáveis


Matrizes
Estruturas
Uniões


D0
Um nome
Um Tipo
Um só valor
A0
D0
0100 0001
© M@nso 2004
A
variável
lógico
Nome da variável
0100 0001
Nome da variável
0100 0001
100 0001
caracter
0100 0001
0100 0001
0100 0001
C
variável
VERDADEIRO
inteiro
50 00
Real
100 0001
-3,14156
Introdução à programação
Computadores e programação I
Declaração de variáveis
Tipo_de_dado nome_da_variável;
 Tipo_de_dado nome_da_variável = valor_inicial;
• Tipo_de_dado nome_da_variável1, nome_da_variável2, . . .;

Exemplos
int soma;
float saldo = 0.0;
doule x, y, z;
NOTA
A declaração das variáveis deve ser feita
antes da sua utilização
© M@nso 2004
Introdução à programação
Computadores e programação I
Regras dos nomes de variáveis





Pode ser constituído por letras do alfabeto por dígitos e pelo
caracter _ (underscore)
O primeiro caracter não pode ser um dígito
As letras maiúsculas e minúsculas representam caracteres
diferentes
Não pode ter o nome de uma palavra reservado da
linguagem
Deve ser descritivo daquilo que armazena


Caso tenha mais que uma palavra utilizar o caracter _ para unir as
palavras ou capitular as iniciais
Não é aconselhado



A utilização de caracteres acentuados
Começar por _
Ter apenas letras maiúsculas
© M@nso 2004
Introdução à programação
Palavras reservadas do C
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Atribuição de Valores – operador =
variavel = expressão;
Exemplos
soma = 10 ;
saldo = soma + 1;
area = lado1 * lado2;
NOTA
O operado = é o operador de atribuição e significa que a
variável passa a ter um novo valor (<- no portugol)
==
O operador
(igual) é o operador de comparação e
devolve verdadeiro ou falso ( = no portugol)
© M@nso 2004
Introdução à programação
Computadores e programação I
Atribuição de valores

Valores na Base:

Decimal

numeração normal


2
63
83
Octal

Começam por 0 (zero)


0
00
02
077
0123
Hexadecimal

Começam por 0x (zero xis)

0x0
0x2
0x3f 0x53
atribuição do valor doze a x
X = 12;
X = 014;
X = 0xC;
© M@nso 2004
Introdução à programação
Computadores e programação I
Inteiros - int

Sinal

signed – positivos e negativos



unsigned – apenas números positivos
Tamanho

short – menor dimensão em bytes


2 bytes
long – maior dimensão em bytes


1 bit para representar o sinal
4 bytes
Exemplos





unsigned short int x;
signed short int y;
unsigned long int total;
long int votos;
int nota;
© M@nso 2004
NOTA
por defeito os inteiros
são:
•signed
•16 bits
•short
•32 bits
•long
Introdução à programação
Alcance dos inteiros
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
exemplos

Nota final da disciplina de IP



Soma das notas das disciplinas de uma aluno




unsigned long int numMinutos;
unsigned long numMinutos;
Diferença entre o número de segundos de duas pessoas



unsigned short int somaNotas;
unsigned short somaNotas;
Número de segundos de vida de uma pessoa


unsigned short int nota;
unsigned short nota;
signed long difSegundos;
long difsegundos;
Diferença entre o número de anos de duas pessoas


signed short int difAnos;
short difAnos;
© M@nso 2004
Introdução à programação
Computadores e programação I
Números Reais

Tipo



float
double
Base e Mantissa
Notação corrente


1.2E10
Modificadores

.23
Os números armazenados em
virgula flutuante podem
comportar um erro de
arredondamento resultante da
sua representação
0.23
1.
1.0
Notação científica


1.23
10
NOTA
notação

mantissa
2.8
Representação


base
long
© M@nso 2004
1.23e-15
Exemplo
float raio = .50;
long double taxa = 5E-2 ;
Introdução à programação
Erro nos Números Reais
NOTA
Os números armazenados em
virgula flutuante podem
comportar um erro de
arredondamento resultante da
sua representação
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Caracteres (char)

Ocupam um byte


Representados por um número


Tabela ASCII
Atribuição



256 caracteres disponíveis
Utilização do caracter plica (‘)
 char sexo = ‘m’;
 char enter =‘\n’
Utilização directa do código ASCII
 char letra = 98;
Modificadores


signed
unsigned
© M@nso 2004
Caracteres especiais
\a
\n
\r
Sinal sonoro
New line
Carriage return
\v
\t
Vertical tabulation
Horizontal
tabulation
Caracter \
\\
\’
\”
\b
\0xff
Caracter ‘
Caracter “
Backspace
Caracter 0xff ASCII
Introdução à programação
Tabela ASCII
Exemplo
char sexo;
Sexo = ‘M’;
Sexo = 77;
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Definição de tipos - Enumerações
Definição de nomes para valores
-1
0
1
domingo
-2
sabado
-3
sexta
Valor
quinta
Nome
quarta
Cores , Dias da semana , Meses, etc.
terça

segunda

2
3
4
5
6
7
8
enum semana{ segunda=2, terca=3,
Exemplo
enum semana
quarta=4, quinta=5,
sexta=6, sabado=7,
domingo=8 };
teoricaIP, praticaIP;
teoricaIP = segunda;
praticaIP = teoricaIP +1 ;
© M@nso 2004
9
10
Introdução à programação
Computadores e programação I
Definição de tipos - Enumerações
enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n};
novo_tipo nome_variavel = nome_x;
enum Cores {verde= 0 , amarelo = 1, vermelho =2 };
enum Cores semaforo = verde;
enum logica {falso, verdadeiro };
enum logica condicao=verdadeiro;
NOTAS
•Quando omitimos o valor a enumeração
toma o valor da anterior mais uma unidade.
• Por defeito começam em zero
© M@nso 2004
Introdução à programação
Computadores e programação I
Valores lógicos (bool)
Dois valores definidos
Nome
VERDADEIRO
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO

false (valor zero)
true (um ou qualquer outro valor)
VERDADEIRO

VERDADEIRO

Valor
-3
-2
-1
0
1
2
3
4
5
6
7
8
Exemplo
bool aprovado, trabEstudante;
aprovador = true;
trabEstudante = false;
© M@nso 2004
Introdução à programação
Computadores e programação I
Definição de tipos - Typedef

Definição de nomes para tipos

typedef tipo_de_dado novo_nome_do_tipo ;

Exemplos

typedef unsigned long int int32;


definição de um novo tipo chamado int32
int32 somatorio;

© M@nso 2004
definicao de uma variável do tipo int32
Introdução à programação
Computadores e programação I
Tipos de dados do c++ Builder
tamanho
(bits)
Mínimo
Máximo
unsigned char
8
0
255
char
8
-128
127
short int
16
-32,768
32,767
unsigned int
32
0
4,294,967,295
int
32
-2,147483648
2,147,483,647
unsigned long
32
0
4,294,967,295
enum
32
-2,147483648
2,147,483,647
long
32
-2,147483648
2,147,483,647
float
32
double
64
long double
80
tipo
© M@nso 2004
1.18
2.23
3.37
10^-38 < |X| < 3.40
10^-308 < |X| < 1.79
10^-4932 < |X| < 1.18
10^38
10^308
10^4932
Introdução à programação
Computadores e programação I
Exercícos

Defina variáveis em C para manipular









A média das notas de um ano lectivo
O salário de um trabalhador
O número de alunos de um país
O saldo de uma conta bancária
Número de dias entre duas datas
O sexo de um aluno
Factor rhesus do sangue (+ e -)
A situação de uma aluno relativo à aprovação
A situação de uma aluno relativo á matrícula.
© M@nso 2004
Introdução à programação
Computadores e programação I
Entrada e saída de dados
© M@nso 2003
Introdução à programação
Computadores e programação I
Entrada e saida de dados

scanf


Entrada de dados pelo teclado
printf

Saída de dado para a consola

scanf(“string de formato”, &variavel , &variavel ,…);

scanf(“%f", &altura);

scanf(“%d", &idade);

scanf(“%f %d", &altura, &idade);

printf(“string de formato”, variavel , variavel ,…);



printf(“ a altura é %f :", altura);
printf(“ a idade é %d :", idade);
printf(“\n altura: %f idade :%d \n", altura, idade);
© M@nso 2004
Introdução à programação
Computadores e programação I
Formato de dados (I/O)

c


s


d


f


e


caracter
u
sem sinal

cadeia de caracteres



inteiro
l
h
grande
pequeno

real no formato numérico
real no formato cientifico

o


x

octal
Hexadecimal
%c
%s
Caracter
cadeias de caracteres
char
char[]
%d
%hd
%ld
%u
%hd
%ld
%o
%x
numero decimal
numero decimal pequeno (short)
numero decimal grande (long)
numero decimal sem sinal
numero decimal sem sinal pequeno
numero decimal grande sem sinal
numero decimal em octal
numero decimal em hexadecimal
int
short int
long int
unsigned int
unsigned short int
unsigned long int
int
int
numero real no formato cientifico ( 1.2e45)
numero real no formato cientifico grande (long)
numero real no formato numérico
numero real
float
double
float
double
%e
%le
%f
%lf
© M@nso 2004
Introdução à programação
Programa gentil
Exemplo
#include <stdio.h>
int main(int argc, char* argv[])
{
int idade;
printf(“qual a sua idade:”);
scanf(“ %d ” , &idade);
printf(“parabens, voce tem %d anos“, idade);
}
© M@nso 2004
Computadores e programação I
Introdução à programação
Ficheiros gerados
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Algoritmos computacionais

Acções de um algoritmo computacional

Manipular dados




Receber dados
Guardar dados
Imprimir dados
Executar instruções




Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação
Operadores
© M@nso 2003
Computadores e programação I
Introdução à programação
Computadores e programação I
Inteiros

Operadores unários


- (sinal)
Operadores binários




+ (Soma)
- (Subtracção)
/ (Divisão inteira)
% (Módulo)
Exemplo
25 - 2 = 23
25 / 2 = 12
25 % 2 = 1
© M@nso 2004
-3
- 2 = -5
25 + 2 = 27
25 * 2 = 50
25 2
05 12
1
NOTA
Qualquer
operação entre
inteiros devolve
um inteiro
Introdução à programação
Computadores e programação I
Operadores unários – Pós fixo

Operadores unários


++ (incremento)
-- (decremento)
Nota
y = x++
Nota
y = x--
y=x
x = x+1
y=x
x = x-1
Nota
X++
X = X+1
Nota
X-X = X-1
x
3
expressão
y = x++;
x
4
© M@nso 2004
y
y
3
Introdução à programação
Computadores e programação I
Operadores unários – Pré fixo

Operadores unários


++ (incremento)
-- (decremento)
Nota
y = ++x
Nota
y = --x
x = x+1
y=x
x = x-1
y=x
Nota
++X
X = X+1
Nota
--X
X = X-1
x
3
expressão
y = --x;
x
2
© M@nso 2004
y
y
2
Introdução à programação
Computadores e programação I
Operadores bit a bit

Manipulam directamente a representação binária dos
números
E 0 1
OU 0 1
 e (and)
&
0 0 0
0 0 1


ou (or)


ou exclusivo (Xor)


0
^
<<
0
1
>>
0
© M@nso 2004
0
0
0
1
1
1
1
0
1
Soma
Lógica
xor
Deslocamento à direita

0
Multiplicação
Lógica
Deslocamento à esquerda


1
|
0
0
1
diferença
Lógica
1
1
0
1
Introdução à programação
Computadores e programação I
Operadores bit a bit - OR
x
91
y
OU 0
0 0
1 1
z
128
1
1
1
Soma
Lógica
expressão
z=x|y;
0
1
0
1
1
0
1
1
91
1
0
0
0
0
0
0
0
128
1
1
0
1
1
0
1
1
219
|
x
91
© M@nso 2004
y
z
128
219
Introdução à programação
Computadores e programação I
Operadores bit a bit - AND
x
90
y
20
E
0
1
z
0
0
0
1
0
1
Multiplicação
Lógica
expressão
z=x&y;
x
90
© M@nso 2004
y
20
z
16
128
64
32
16
8
4
2
1
0
1
0
1
1
0
1
0
90
0
0
0
1
0
1
0
0
20
0
0
0
1
0
0
0
0
16
&
Introdução à programação
Computadores e programação I
Operadores bit a bit - XOR
0
0
0
1
1
1
1
0
xor
x
90
y
20
z
diferença
Lógica
expressão
z=x^y;
x
90
© M@nso 2004
y
20
z
78
0
1
0
1
1
0
1
0
90
0
0
0
1
0
1
0
0
20
0
1
0
0
1
1
1
0
78
^
Introdução à programação
Computadores e programação I
Operadores bit a bit - Deslocamento
x
20
y
0
0
0
1
0
1
0
0
20
0
1
0
1
0
0
0
0
80
<< 2
expressão
y = x << 2;
x
20
© M@nso 2004
y
80
•Algoritmo
•deslocam-se os bites para a esquerda
•os últimos bites perdem-se
•introduzem-se zeros no inicio
Introdução à programação
Computadores e programação I
Operadores bit a bit - Deslocamento
x
20
y
0
0
0
1
0
1
0
0
20
0
0
0
0
0
1
0
1
5
>>2
expressão
y = x >> 2;
x
20
© M@nso 2004
y
5
•Algoritmo
•deslocam-se os bites para a direita
•os primeiros bites perdem-se
•introduzem-se zeros no fim
Introdução à programação
Computadores e programação I
Operadores sobre reais

Aritméticos




multiplicação
divisão
soma
subtracção
Nome da variável
C
0100 0001
0100 0001
mantissa
© M@nso 2004
100 0001
Real
100 0001
expoente
-3,14156
Introdução à programação
Computadores e programação I
Operadores compostos
+= , -=,%=, *=, /=, >>=, <<=, &=, |=, ^=
variável Operador= expressão
Variavel = variavel operador expressão
exemplos
X+= 3;
X = X+3;
exemplos
X|= y;
X = X | y;
© M@nso 2004
exemplos
exemplos
x/=y;
x = x /y;
X*= 3;
X = X*3;
Introdução à programação
Computadores e programação I
Operadores sobre lógicos

RELACIONAIS

Maior





>=
Menor ou igual


==
Maior ou igual

<=
Diferente


!=
© M@nso 2004
Conjunção


<
Igual

LÒGICOS
>
Menor


Disjunção


&&
||
Negação

!
Introdução à programação
Computadores e programação I
Associatividade
x
2

y
1
z
4
Associatividade
esquerda=> direita


x+y+z
 3 + z
 7
z/x*y
 2 * z
 2
© M@nso 2004
matriculado
r
1

false
teste
false
Associatividade
direita => esquerda

r =x + y + z



r=7
teste = !matriculado


7
teste = true
x = -z

x=-4
Introdução à programação
Computadores e programação I
Prioridade dos operadores
Operadores
()
! - ++ -*/%
+<< >>
< <= > >=
== !=
&
^
|
&&
||
?:
= += -= *= /= %= &= ^= |= <<= >>=
© M@nso 2004
Associatividade
esquerda para a direita
direita para a esquerda
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
esquerda para a direita
direita para a esquerda
direita para a esquerda
Introdução à programação
Computadores e programação I
Algoritmos computacionais

Acções de um algoritmo computacional

Manipular dados




Receber dados
Guardar dados
Imprimir dados
Executar instruções




Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação
Computadores e programação I
Exercícios

Construa um programa que
calcule a área de um
rectangulo
Programa Área do rectângulo
#include <stdio.h>
int main(int argc, char* argv[])
{
double Lado1, lado2, area;
scanf(“%lf”, &lado1);
scanf(“%lf”, &lado2);
area = lado1 * lado2;
printf(“ area = %lf ”, area);
Inicio
Ler lado1
Ler lado2
Area := lado1*lado2
Escrever Area
}
fim
© M@nso 2004
Introdução à programação
Computadores e programação I
Exercícios

Construa um programa que leia a
nota teórica e a nota prática e
imprima a nota final (não
arredondada) da disciplina de IP
Nota de IP
#include <stdio.h>
int main(int argc, char* argv[])
{
float nTeorica, nPratica, nFinal;
printf(“ introduza a nota teórica :“);
scanf(“%f”, &nTeorica);
printf(“ introduza a nota prática:“);
scanf(“%f”, &nPratica);
nFinal = nTeorica * 0.6 + nPratica * 0.4;
printf(“A nota final e: %f “,nFinal);
}
© M@nso 2004
Inicio
Ler nTeorica
Ler nPratica
nFinal =
nTeorica*0.6 +
nPratica * 0.4
Escrever nFinal
fim
Introdução à programação
Selecção de intruções
© M@nso 2003
Computadores e programação I
Introdução à programação
Computadores e programação I
Selecção Simples
Linguagem estruturada
C++
...
Se <condição> então
Instruções
Fluxograma
fim_se
Exemplo
Condição
V
Se x > 0 então
escrever “numero:”
ler numero
Bloco de
Instruções
If (condição)
{
intrução;
intrução;
intrução;
...
}
fim_se
Um “Bloco de instruções” é limitado
por chavetas { }
© M@nso 2004
Introdução à programação
Computadores e programação I
Selecção Simples (exemplo)
Inicio
Exemplo
A empresa X faz um
desconto de 15% em
todas as facturas cujo
total ultrapasse 1000
euros. Construa um
programa que receba o
total da factura e
imprima o valor a
pagar
Ler totalFactura
totalFactura
>10000
totalFactura =
totalFactura *0.85
totalFactura
Fim
© M@nso 2004
v
Introdução à programação
Computadores e programação I
Selecção Simples (exemplo)
Calculo do total da factura
#include <stdio.h>
int main(int argc, char* argv[])
{
float totalFactura;
scanf(“%f”, &totalFactura);
if( totalFactura > 1000.0)
{
totalFactura*= 0.85;
}
}
© M@nso 2004
printf(“ %f “, totalFactura);
NOTA
Se o bloco
tiver apenas
uma
instrução
podem omitirse as
chavetas
Introdução à programação
Visibilidade das variáveis
int main(int argc, char* argv[])
{
float totalFactura;
sacanf(“ %f “, &totalFactura);
if( totalFactura > 1000){
double desconto = totalFactura* 0.85;
totalFactura -= desconto;
}
}
printf(“%f”, totalFactura);
return 0;
Visibilidade das variáveis:
•Desde que são declaradas
•Até final do bloco
© M@nso 2004
Computadores e programação I
Introdução à programação
Computadores e programação I
Selecção em Alternativa
Linguagem estruturada
Fluxograma
...
Se <condição> entao
Instruções
V
F
Condição
Senao
Instruções
Fim_se
Exemplo
Se numero>0 então
escreve “positivo”
Senão
escreve “negativo”
Fim_se
© M@nso 2004
Instruções
Instruções
C++
if (condição)
{
intrução1;
...
}
else
{
intrução2;
...
}
Introdução à programação
Computadores e programação I
Selecção em Alternativa (exemplo)
Exercício
Construa um programa que imprima “Par” ou
“Impar” consoante o número introduzido pelo
utilizador o é ou não.
&
128
64
32
16
8
4
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
X
© M@nso 2004
0
1
2
3
4
5
6
25 2
05 12
1
Introdução à programação
Computadores e programação I
Selecção Simples (exemplo)
Programa par ou impar
Inicio
main()
{
int numero;
printf( “ numero :”);
scanf(“%d”,&numero);
if( numero % 2 == 0)
printf(“ O numero é par”);
else
printf(“ o número é impar”);
Ler n
V
F
n%2=0
Impar
}
25 2
05 12
1
© M@nso 2004
Par
Fim
Introdução à programação
Computadores e programação I
Selecção encadeada
Exercício
Construa um
programa que
imprima o maior
de três número
introduzido pelo
utilizador
s
Maior=v1
n
V1 > v2 e
V1 > v3
V2>v3
Maior=v2
© M@nso 2004
n
s
Maior=v3
Introdução à programação
Computadores e programação I
Selecção encadeada (exemplo)
Programa maior de três
int main(int argc, char* argv[])
{
int v1, v2; v3;
int maior;
scanf(“ %d %d %d “, &v1, &v2, &v3);
if( v1 > v2 && v1 > v3)
maior= v1;
else
{
if( v2 > v3)
maior= v2;
else
maior=v3;
}
printf(“ O maior é %d :”, maior);
return 0;
}
© M@nso 2004
Introdução à programação
Computadores e programação I
Exercício
Contrua um
programa que
solicite ao
utilizador a letra
correspondente ao
estado civil (S C D
V ) e imprima por
extenso o mesmo
ou erro no caso de
não ser um
caractér válido
© M@nso 2004
Inicio
Inicio
ecivil
ecivil
não
ecivil=s
ecivil=s
não
ecivil=c
ecivil=c
não
nao
sim
ecivil=d
ecivil=d
ecivil=v
ecivil=v
sim
sim
sim
Estado = Solteiro
Estado = Solteiro
Estado = casado
Estado = casado
Estado =divorciado
Estado =divorciado
Estado = viuvo
Estado = viuvo
Estado = ERRO
Estado = ERRO
estado
Fim
Fim
Introdução à programação
Computadores e programação I
Exercício
Estado civil
main()
{
char ECivil;
scanf(“%c”,&ECivil);
if( ECivil ==‘S’)
printf( “ Solteiro”);
else
if (ECivil ==‘C’ )
printf(“ Casado”);
else
if ( ECivil == ‘D)
printf(“Divorciado”);
else
if(ECivil == ‘V’)
printf(“Viuvo”);
else
printf(“ERRO”);
}
© M@nso 2004
Inicio
Inicio
ecivil
ecivil
não
ecivil=s
ecivil=s
não
ecivil=c
ecivil=c
não
nao
sim
ecivil=d
ecivil=d
ecivil=v
ecivil=v
sim
sim
sim
Estado = Solteiro
Estado = Solteiro
Estado = casado
Estado = casado
Estado =divorciado
Estado =divorciado
Estado = viuvo
Estado = viuvo
Estado = ERRO
Estado = ERRO
estado
Fim
Fim
Introdução à programação
Computadores e programação I
Selecção Múltipla
switch
switch ( expressão)
{
case constante1 :
intruções;
break;
case constante2 :
intruções;
break;
...
case constanten :
intruções;
break;
default:
intruções;
}
© M@nso 2004
Inicio
Inicio
ecivil
ecivil
ecivil
ecivil
ss
Estado = solteiro
Estado = solteiro
estado
Fim
Fim
cc
Estado = casado
Estado = casado
…
…
Estado = …
Estado = …
defeito
defeito
Estado = ERRO
Estado = ERRO
Introdução à programação
Exercício
Estado civil
#include <iostream.h>
main(){
char ECivil;
scanf(“%c”,&ECivil);
}
© M@nso 2004
switch ( ECivil)
{
case ‘S’ :
printf( “solteiro”);
break;
case ‘C’ :
printf(“casado”);
break;
case ‘D’ :
printf(“Divorciado”);
break;
case ‘V’ :
printf(“Viuvo”);
break;
default :
printf(“ERRO”);
}
Computadores e programação I
Introdução à programação
Computadores e programação I
Exercício
Estado civil
switch ( ECivil)
{
...
case ‘d’ :
case ‘D’ :
printf( “Divorciado”);
}
...
© M@nso 2004
break;
NOTA
A escolha termina:
•quando chegar ao fim
•quando encontrar a
instrução break
Introdução à programação
Computadores e programação I
Exercícios



Construa um programa que indique se dois
números introduzidos pelo utilizador são múltiplos
um do outro.
Construa um programa que calcule as raízes de
uma equação de 2º grau.
Altere o programa anterior para calcular as raízes
reais e imaginárias.
© M@nso 2004
Introdução à programação
Erros
© M@nso 2003
Computadores e programação I
Introdução à programação
Computadores e programação I
Erros programas

Erros de especificação


Erros Lógicos


O algoritmo está mal programado
Erros de ligação


O algoritmo está errado
Erros de sintaxe


Não compreendemos o problema
Bibliotecas referenciadas que não existem
Erros de execução

Dados mal introduzidos
Os erros são a base da experiência.
© M@nso 2004
Introdução à programação
Computadores e programação I
Erros de especificação

Construir um programa que as calcule
as interacções do spin de um electrão
num campo gravitacional desconhecido
dado o número de mesões e fermiões
pertencentes ao meio.
© M@nso 2004
Introdução à programação
Computadores e programação I
Erros Lógicos

Inicio
Solteiro casado ou erro
ecivil
ecivil=s
sim
não
Estado = Solteiro
não
sim
ecivil=c
Estado = casado
Estado = casado
estado
© M@nso 2004
Fim
Introdução à programação
Computadores e programação I
Erros de sintaxe mais comuns

Escrita ambígua
if(m == 0)
if(n == 0)
printf("m e n são zero.“);
else
printf("m não é zero.“);
© M@nso 2004
Introdução à programação
Computadores e programação I
Erros de sintaxe mais comuns

Esquecer as chavetas
int main(int argc, char* argv[])
{
float totalFactura;
sacanf(“ %f “, &totalFactura);
if( totalFactura > 1000)
double desconto = totalFactura* 0.85;
totalFactura -= desconto;
}
printf(“%f”, totalFactura);
return 0;
© M@nso 2004
Introdução à programação
Computadores e programação I
Erros de sintaxe mais comuns

Colocar um ; a seguir ao if ou else
int main(int argc, char* argv[])
{
float totalFactura;
sacanf(“ %f “, &totalFactura);
if( totalFactura > 1000)
{
;
double desconto = totalFactura* 0.85;
totalFactura -= desconto;
}
}
printf(“%f”, totalFactura);
return 0;
© M@nso 2004
Introdução à programação
Computadores e programação I
Erros de sintaxe mais comuns

Esquecer o break; no ciclo switch
Estado civil
switch ( ECivil)
{
case ‘S’ :
printf( “solteiro”);
case ‘C’ :
printf(“casado”);
case ‘D’ :
printf(“Divorciado”);
case ‘V’ :
printf(“Viuvo”);
default :
printf(“ERRO”);
}
© M@nso 2004
Introdução à programação
Conclusão
© M@nso 2003
Computadores e programação I
Introdução à programação
Computadores e programação I
Construção de programas

Especificação do problema


Desenvolvimento do algoritmo


programar
Tradução do programa para linguagem
máquina


Especificar as entradas, saídas e uma forma de
transformar as entradas em saídas
Tradução do algoritmo para uma linguagem
de programação


Compreender o problema
Compilar e linkar
Executar o programa

testar
© M@nso 2004
Download

ppt