Você está na página 1de 77

Introdução à programação Computadores e programação I

Linguagens de programação

Introdução ao C

© M@nso 2003
Introdução à programação Computadores e programação I

Sumário
 Execução de programas
 interpretadores, compiladores
 Linguagem
 Manipulação de informação
 Variáveis
 tipos de dados
 Operadores
 aritméticos, lógicos
 Leitura e escrita
 entrada e saída de dados
 Selecção de instruções
 Instrução if
 Instrução Switch
 Erros em programação

© M@nso 2004
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 Programas


Executados pelo
sistema operativo
© M@nso 2004
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
 Linguagem estandardizada
 Muitos programas escritos em C / C++
 È uma linguagem genérica
 Serve para vários fins
 É disciplinadora
 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>
 Biblioteca de funções de entrada e saida de dados
 int main(int argc, char* argv[])
 Função principal
 {}
 Definição de um bloco de instruções
 printf("ola mundo");
 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 D0
variável
 Numéricos
 inteiros 11100 11100
 reais
 Caracter
Lógico Variáveis D0 variável caracter


Compostos
0100 0001 A

 Um nome
Matrizes
Um Tipo

 variável
Estruturas lógico
D0

 Uniões  Um só valor 0100 0001 VERDADEIRO

Nome da variável
A0 inteiro
0100 0001 0100 0001 50 00

C Nome da variável Real

0100 0001 0100 0001 100 0001 100 0001 -3,14156


© M@nso 2004
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 Computadores e programação I

Palavras reservadas do C

© M@nso 2004
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
 0 2 63 83
 Octal
 Começam por 0 (zero)
 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
 1 bit para representar o sinal
 unsigned – apenas números positivos
 Tamanho
 short – menor dimensão em bytes
 2 bytes
 long – maior dimensão em bytes
 4 bytes NOTA
 Exemplos por defeito os inteiros
 unsigned short int x; são:
 signed short int y; •signed
 unsigned long int total; •16 bits
 long int votos; •short
 int nota; •32 bits
•long

© M@nso 2004
Introdução à programação Computadores e programação I

Alcance dos inteiros

© M@nso 2004
Introdução à programação Computadores e programação I

exemplos
 Nota final da disciplina de IP
 unsigned short int nota;
 unsigned short nota;
 Soma das notas das disciplinas de uma aluno
 unsigned short int somaNotas;
 unsigned short somaNotas;
 Número de segundos de vida de uma pessoa
 unsigned long int numMinutos;
 unsigned long numMinutos;
 Diferença entre o número de segundos de duas pessoas
 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
base mantissa
 Tipo 2.8 10
 float NOTA
 double Os números armazenados em
 Representação virgula flutuante podem
 Base e Mantissa comportar um erro de
arredondamento resultante da
 notação sua representação
 Notação corrente
 1.23 .23 0.23 1. 1.0
 Notação científica
 1.2E10 1.23e-15 Exemplo
 Modificadores float raio = .50;
long double taxa = 5E-2 ;
 long

© M@nso 2004
Introdução à programação Computadores e programação I

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
Introdução à programação Computadores e programação I

Caracteres (char)
 Ocupam um byte Caracteres especiais
 256 caracteres disponíveis
 Representados por um número
\a Sinal sonoro
 Tabela ASCII \n New line
 Atribuição \r Carriage return
 Utilização do caracter plica (‘)
 char sexo = ‘m’;
\v Vertical tabulation
 char enter =‘\n’ \t Horizontal
 Utilização directa do código ASCII tabulation
 char letra = 98;
\\ Caracter \
 Modificadores
\’ Caracter ‘
 signed
 unsigned \” Caracter “
\b Backspace
\0xff Caracter 0xff ASCII
© M@nso 2004
Introdução à programação Computadores e programação I

Tabela ASCII

Exemplo
char sexo;

Sexo = ‘M’;

Sexo = 77;

© M@nso 2004
Introdução à programação Computadores e programação I

Definição de tipos - Enumerações


 Definição de nomes para valores
 Cores , Dias da semana , Meses, etc.

segunda

domingo
sabado
quarta

quinta

sexta
terça
Nome

Valor -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

enum semana{ segunda=2, terca=3,


quarta=4, quinta=5,
sexta=6, sabado=7,
Exemplo domingo=8 };
enum semana teoricaIP, praticaIP;
teoricaIP = segunda;
praticaIP = teoricaIP +1 ;
© M@nso 2004
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
 false (valor zero)
 true (um ou qualquer outro valor)
VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO

VERDADEIRO
Nome FALSO

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;
 definicao de uma variável do tipo int32

© M@nso 2004
Introdução à programação Computadores e programação I

Tipos de dados do c++ Builder

tamanho
tipo (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 1.18 10^-38 < |X| < 3.40 10^38

double 64 2.23 10^-308 < |X| < 1.79 10^308

long double 80 3.37 10^-4932 < |X| < 1.18 10^4932

© M@nso 2004
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  u
 caracter  sem sinal
 s  l
 cadeia de caracteres  grande
 d  h
 inteiro  pequeno
 f  o
 real no formato numérico  octal
 e  x
 real no formato cientifico  Hexadecimal
%c Caracter char
%s cadeias de caracteres char[]

%d numero decimal int


%hd numero decimal pequeno (short) short int
%ld numero decimal grande (long) long int
%u numero decimal sem sinal unsigned int
%hd numero decimal sem sinal pequeno unsigned short int
%ld numero decimal grande sem sinal unsigned long int
%o numero decimal em octal int
%x numero decimal em hexadecimal int

%e numero real no formato cientifico ( 1.2e45) float


%le numero real no formato cientifico grande (long) double
%f numero real no formato numérico float
%lf
© M@nso 2004 numero real double
Introdução à programação Computadores e programação I

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
Introdução à programação Computadores e programação I

Ficheiros gerados

© 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

Operadores

© M@nso 2003
Introdução à programação Computadores e programação I

Inteiros
 Operadores unários


 - (sinal)
Operadores binários 25 2
 + (Soma)


- (Subtracção)
/ (Divisão inteira)
05 12
% (Módulo)

Exemplo
1
25 - 2 = 23 -3 - 2 = -5
NOTA
25 / 2 = 12 25 + 2 = 27 Qualquer
25 % 2 = 1 25 * 2 = 50
operação entre
inteiros devolve
© M@nso 2004
um inteiro
Introdução à programação Computadores e programação I

Operadores unários – Pós fixo


 Operadores unários Nota Nota
 ++ (incremento) X++ X--
 -- (decremento) X = X+1 X = X-1

Nota Nota x y
y = x++ y = x-- 3

y=x y=x expressão


x = x+1 x = x-1 y = x++;

x y
4 3
© M@nso 2004
Introdução à programação Computadores e programação I

Operadores unários – Pré fixo


 Operadores unários Nota Nota
 ++ (incremento) ++X --X
 -- (decremento) X = X+1 X = X-1

Nota Nota x y
y = ++x y = --x 3

x = x+1 x = x-1 expressão


y=x y=x y = --x;

x y
2 2
© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit


 Manipulam directamente a representação binária dos
números
 e (and) E 0 1 OU 0 1
& 
0 0 0 0 0 1
 ou (or)
 |
1 0 1 1 1 1
 ou exclusivo (Xor) Multiplicação Soma
Lógica Lógica
 ^
 Deslocamento à esquerda xor 0 1
 <<
 Deslocamento à direita 0 0 1
 >> 1 1 0
diferença
Lógica
0 0 0 0 0 1 1 0

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit - OR


OU 0 1
x y z 0 0 1
91 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 y z
91 128 219

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit - AND

E 0 1
x y z 0 0 0
90 20 1 0 1
Multiplicação
Lógica
expressão
z=x&y; 128

0
64

1
32

0
16

1 1
8 4

0
2

1
1

0 90

0 0 0 1 0 1 0 0 20
x y z &
0 0 0 1 0 0 0 0 16
90 20 16

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit - XOR

xor 0 1
x y z
0 0 1
90 20 1 1 0
diferença
expressão Lógica

z=x^y; 0 1 0 1 1 0 1 0 90

0 0 0 1 0 1 0 0 20
^
x y z
0 1 0 0 1 1 1 0 78
90 20 78

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit - Deslocamento

0 0 0 1 0 1 0 0 20
x y << 2
20
0 1 0 1 0 0 0 0 80

expressão
y = x << 2;
x y •Algoritmo
•deslocam-se os bites para a esquerda
20 80 •os últimos bites perdem-se
•introduzem-se zeros no inicio

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores bit a bit - Deslocamento

0 0 0 1 0 1 0 0 20
>>2
x y
20 0 0 0 0 0 1 0 1 5

expressão
y = x >> 2;
x y
•Algoritmo
20 5 •deslocam-se os bites para a direita
•os primeiros bites perdem-se
•introduzem-se zeros no fim
© M@nso 2004
Introdução à programação Computadores e programação I

Operadores sobre reais


 Aritméticos
 multiplicação
 divisão
 soma
 subtracção

C Nome da variável Real

0100 0001 0100 0001 100 0001 100 0001 -3,14156

mantissa expoente

© M@nso 2004
Introdução à programação Computadores e programação I

Operadores compostos

+= , -=,%=, *=, /=, >>=, <<=, &=, |=, ^=

variável Operador= expressão


Variavel = variavel operador expressão
exemplos exemplos exemplos
X+= 3; x/=y; X*= 3;
X = X+3; x = x /y; X = X*3;

exemplos
X|= y;
X = X | y;
© M@nso 2004
Introdução à programação Computadores e programação I

Operadores sobre lógicos


 RELACIONAIS  LÒGICOS
 Maior  Conjunção
 >  &&
 Menor  Disjunção
 <  ||
 Igual  Negação
 ==  !
 Maior ou igual
 >=
 Menor ou igual
 <=
 Diferente
 !=
© M@nso 2004
Introdução à programação Computadores e programação I

Associatividade
z r matriculado teste
x y
false false
2 1 4 1

 Associatividade  Associatividade
esquerda=> direita direita => esquerda
 x+y+z  r =x + y + z
 7
 3 + z
 r=7
 7
 teste = !matriculado
 z/x*y
 teste = true
 2 * z
 x = -z
 2
 x=-4

© M@nso 2004
Introdução à programação Computadores e programação I

Prioridade dos operadores


Operadores 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
© 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

Exercícios
 Construa um programa que Inicio

calcule a área de um
rectangulo Ler lado1

Programa Área do rectângulo Ler lado2


#include <stdio.h>
int main(int argc, char* argv[])
{ Area := lado1*lado2
double Lado1, lado2, area;
scanf(“%lf”, &lado1);
scanf(“%lf”, &lado2);
area = lado1 * lado2;
printf(“ area = %lf ”, area); Escrever Area

}
fim

© M@nso 2004
Introdução à programação Computadores e programação I

Exercícios
 Construa um programa que leia a Inicio
nota teórica e a nota prática e
imprima a nota final (não
arredondada) da disciplina de IP Ler nTeorica

Nota de IP Ler nPratica


#include <stdio.h>
int main(int argc, char* argv[])
nFinal =
{ nTeorica*0.6 +
float nTeorica, nPratica, nFinal; nPratica * 0.4
printf(“ introduza a nota teórica :“);
scanf(“%f”, &nTeorica);
printf(“ introduza a nota prática:“);
Escrever nFinal
scanf(“%f”, &nPratica);
nFinal = nTeorica * 0.6 + nPratica * 0.4;
printf(“A nota final e: %f “,nFinal);
} fim

© M@nso 2004
Introdução à programação Computadores e programação I

Selecção de intruções

© M@nso 2003
Introdução à programação Computadores e programação I

Selecção Simples
Linguagem estruturada

...
C++
Se <condição> então
Fluxograma If (condição)
Instruções
{
fim_se
intrução;
V
Condição intrução;
Exemplo
intrução;
Se x > 0 então
...
escrever “numero:” Bloco de
Instruções }
ler numero
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
Ler totalFactura
A empresa X faz um
desconto de 15% em
todas as facturas cujo totalFactura v
total ultrapasse 1000 >10000
euros. Construa um totalFactura =
programa que receba o totalFactura *0.85
total da factura e
imprima o valor a
pagar

totalFactura

Fim

© M@nso 2004
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[])
{
NOTA
float totalFactura; Se o bloco
scanf(“%f”, &totalFactura); tiver apenas
if( totalFactura > 1000.0) uma
{
instrução
totalFactura*= 0.85;
} podem omitir-
se as
printf(“ %f “, totalFactura); chavetas
}

© M@nso 2004
Introdução à programação Computadores e programação I

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
Introdução à programação Computadores e programação I

Selecção em Alternativa

Linguagem estruturada Fluxograma


C++
...
Se <condição> entao F V if (condição)
Instruções Condição {
Senao intrução1;
Instruções ...
Fim_se
Instruções
Instruções }
else
Exemplo
{
Se numero>0 então intrução2;
escreve “positivo”
...
Senão
}
escreve “negativo”
Fim_se

© M@nso 2004
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 1 1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
2
3
25 2
0 0 0 0 0 1 0 0 4
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
5
6
05 12
0 0 0 0 0 0 0 1 1
&
0 0 0 0 0 0 0 X
© M@nso 2004
Introdução à programação Computadores e programação I

Selecção Simples (exemplo)


Programa par ou impar
Inicio
main()
{
int numero; Ler n
printf( “ numero :”);
scanf(“%d”,&numero);
if( numero % 2 == 0) F V

printf(“ O numero é par”); n%2=0


else
printf(“ o número é impar”);
Impar
} Par

25 2
Fim
05 12
1
© M@nso 2004
Introdução à programação Computadores e programação I

Selecção encadeada

Exercício
s
V1 > v2 e n
V1 > v3
Construa um
programa que
imprima o maior
de três número Maior=v1 n
s
introduzido pelo V2>v3
utilizador

Maior=v2 Maior=v3

© M@nso 2004
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
Inicio
Inicio

solicite ao não
ecivil
ecivil

sim
utilizador a letra não
sim
ecivil=s
ecivil=s
Estado = Solteiro

correspondente ao
Estado = Solteiro
ecivil=c
ecivil=c
Estado = casado
Estado = casado

estado civil (S C D
não sim
ecivil=d
ecivil=d

V ) e imprima por
Estado =divorciado
Estado =divorciado

nao sim
ecivil=v
ecivil=v

extenso o mesmo Estado = viuvo


Estado = viuvo

ou erro no caso de Estado = ERRO


Estado = ERRO

não ser um Fim


Fim
estado

caractér válido

© M@nso 2004
Introdução à programação Computadores e programação I

Exercício
Estado civil
main()
{
char ECivil;
scanf(“%c”,&ECivil);
Inicio
if( ECivil ==‘S’) Inicio

printf( “ Solteiro”); ecivil


ecivil

não
else não
ecivil=s
ecivil=s
sim

if (ECivil ==‘C’ ) ecivil=c


ecivil=c
sim Estado = Solteiro
Estado = Solteiro

printf(“ Casado”); não


ecivil=d
sim
Estado = casado
Estado = casado

ecivil=d
else Estado =divorciado
Estado =divorciado
sim
if ( ECivil == ‘D) nao
ecivil=v
ecivil=v

printf(“Divorciado”); Estado = ERRO


Estado = viuvo
Estado = viuvo

else
Estado = ERRO

if(ECivil == ‘V’) estado Fim


Fim

printf(“Viuvo”);
else
printf(“ERRO”);
}

© M@nso 2004
Introdução à programação Computadores e programação I

Selecção Múltipla

switch
switch ( expressão) Inicio
Inicio

{ ecivil
ecivil
case constante1 :
intruções; ecivil
ss cc …
… defeito
defeito
ecivil
break;
case constante2 : Estado = solteiro
Estado = solteiro
Estado = casado
Estado = casado
Estado = …
Estado = …
Estado = ERRO
Estado = ERRO

intruções;
break;

... estado
case constanten :
intruções; Fim
Fim

break;
default:
intruções;

}
© M@nso 2004
Introdução à programação Computadores e programação I

Exercício Estado civil


#include <iostream.h>
main(){
char ECivil;
scanf(“%c”,&ECivil);
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”);
}
}
© M@nso 2004
Introdução à programação Computadores e programação I

Exercício

Estado civil
switch ( ECivil)
{ NOTA
... A escolha termina:
case ‘d’ :
case ‘D’ : •quando chegar ao fim
printf( “Divorciado”);
break; •quando encontrar a
... instrução break
}

© M@nso 2004
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 Computadores e programação I

Erros

© M@nso 2003
Introdução à programação Computadores e programação I

Erros programas
 Erros de especificação
 Não compreendemos o problema
 Erros Lógicos
 O algoritmo está errado
 Erros de sintaxe
 O algoritmo está mal programado
 Erros de ligação
 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

sim
ecivil=s

não Estado = Solteiro

não sim
ecivil=c

Estado = casado
Estado = casado

estado

Fim
© M@nso 2004
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 Computadores e programação I

Conclusão

© M@nso 2003
Introdução à programação Computadores e programação I

Construção de programas
 Especificação do problema
 Compreender o problema
 Desenvolvimento do algoritmo
 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
 programar
 Tradução do programa para linguagem
máquina
 Compilar e linkar
 Executar o programa
 testar
© M@nso 2004

Você também pode gostar