© m@nso 2003 introdução à programaçãocomputadores e programação i manipulação de...
TRANSCRIPT
© M@nso 2003
Introdução à programação Computadores e programação I
Manipulação de Manipulação de informaçãoinformação
Algoritmos computacionais
Introdução à programação Computadores e programação I
© M@nso 2003
SumárioSumário Algoritmos não computacionais Algoritmos computacionais Computador simplificado
Linguagem assembler Programas em assembler
Bases de Numeração Números binários Programas em linguagem máquina
Linguagem estruturada Variáveis Operadores aritméticos Leitura e escrita Funções
© M@nso 2003
Introdução à programação Computadores e programação I
Algoritmos não Algoritmos não computacionaiscomputacionais
Introdução à programação Computadores e programação I
© M@nso 2003
Algoritmos não computacionaisAlgoritmos não computacionais Missionários e canibais
Algoritmo Escrito numa folha de papel
A4 A5 Duas folhas
Letra manuscrita Possivelmente ilegível
Intruções Numeradas Com marcas Com desenhos
Intruções ambíguas Vai para A Rema para A Navega para A Atravessa o rio
Executor Aluno
Inteligente
Introdução à programação Computadores e programação I
© M@nso 2003
Componentes dos algoritmosComponentes dos algoritmos Dados
Nº de missionários no lado A Nº de missionários no lado B Nº de canibais no lado A Nº de canibais no lado B Posição do Barco
Situação inicial (0,0,0) / (3,3,1)
Situação final (3,3,1) / (0,0,0)
Instruções Embarcar
Missionário Canibal
Desembarcar Missionário Canibal
Atravessar o rio
As instruções As instruções manipulam os dadosmanipulam os dados
(1,1,1) / (2,2,0)
(1,0,0) / (3,2,1)
Introdução à programação Computadores e programação I
© M@nso 2003
Algoritmos não computacionaisAlgoritmos não computacionais
Formato ambíguo
Instruções ambíguas Definição das instruções disponíveis Escritos em linguagem natural
Passível de várias interpretações
Executado por pessoas Entendem a linguagem natural Inteligentes e conseguem resolver ambiguidades Estão inseridas no contexto do problema Conseguem adivinhar passos intermédios
© M@nso 2003
Introdução à programação Computadores e programação I
Algoritmos Algoritmos computacionaiscomputacionais
Programação do computadorSIMPLEX
Introdução à programação Computadores e programação I
© M@nso 2003
Computador SimplexComputador Simplex
Introdução à programação Computadores e programação I
© M@nso 2003
Computador SimplificadoComputador Simplificado Memória
Endereço Local físico da memória
Conteúdo Intruções
Mov Cop
Dados 10 20
Vazias Processador sequencial
1. Executa uma instrução2. Passa para a instrução
seguinte
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3D
C10 20
1
COP
B
STOP
2 30
AMOV
Introdução à programação Computadores e programação I
© M@nso 2003
Intruções do processadorIntruções do processador Acções do computador SIMPLEX
Manipular dados Ler Atribuir Copiar Imprimir
Executar instruções Fazer operações aritméticas
Somar , Subtrair, Multiplicar, dividir Fazer operações lógicas
> , = , < Escolha entre várias instruções.
SE Repetir um conjunto de instruções
Saltar
Definir a sintaxe da linguagemDefinir a sintaxe da linguagem
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3D
C10 20
1
COP
B
STOP
2 30
AMOV
Introdução à programação Computadores e programação I
© M@nso 2003
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3D
C10 20
1
COP
B
STOP
2 30
AMOV
Sintaxe da linguagem (assemblex)Sintaxe da linguagem (assemblex)• Nº Mnemômica Descrição• 1 LER Ei Ler a entrada para Ei
• LER c0• 2 COP Ei Ej Copiar conteúdo de Ei para Ej
• COP C0 C2 • 3 ATR Ei Val Atribuir a Ei o valor Val
• ATR C2 3.14• 4 IMP Ei Imprimir Ei
• IMP C0• 5 SOM Ei Ej Ek Somar Ei e Ej e guardar em Ek
• SOM C0 C1 C2• 6 SUB Ei Ej Ek Subtrair Ei por Ej e guardar em Ek
• SUB C0 C1 C2• 7 MUL Ei Ej Ek Multiplicar Ei e Ej e guardar em Ek
• MUL C0 C1 C2• 8 DIV Ei Ej Ek Dividir Ei por Ej e guardar em Ek
• DIV C0 C1 C2• 9 SLT Ei Saltar para a célula Ei
• SLT AO• 10 SE Ei > Ej Ek Se Ei maior que Ej, saltar para Ek
• SE C0 > C1 A0• 11 SE Ei < Ej Ek Se Ei menor que Ej, saltar para Ek
• SE C0 < C1 A0• 12 SE Ei = Ej Ek Se Ei igual Ej, saltar para Ek
• SE C0 = C1 A0• 13 FIM Parar a execução das instruções
Introdução à programação Computadores e programação I
© M@nso 2003
Exemplo de um programaExemplo de um programa Calcular a área do
rectangulo Algoritmo
Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
Ler C1
FIM
Ler C0 MUL C0 C1 C3 IMP C3 AssemblexAssemblex
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Lado 1
Lado 2
Introdução à programação Computadores e programação I
© M@nso 2003
Execução de um programaExecução de um programa
ProgramaPrograma
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
20010
20
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
Ler C1
FIM
Ler C0 MUL C0 C1 C3 IMP C3
10 20 200
Introdução à programação Computadores e programação I
© M@nso 2003
Nova Execução de um programaNova Execução de um programa
ProgramaPrograma
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
505
10
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
Ler C1
FIM
Ler C0 MUL C0 C1 C3 IMP C3
5 10 50
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Calcular a nota Final da disciplina de IP dada a nota prática e a nota teórica Algoritmo
Ler nota prática Ler nota teórica nota final
nota prática 40% nota teórica 60%
Imprimir nota final
• Nº INSTRUÇÃO• 1 LER Ei• 2 COP Ei Ej• 3 ATR Ei Val• 4 IMP Ei• 5 SOM Ei Ej Ek• 6 SUB Ei Ej Ek• 7 MUL Ei Ej Ek• 8 DIV Ei Ej Ek• 9 SLT Ei• 10 SE Ei > Ej Ek• 11 SE Ei < Ej Ek• 12 SE Ei = Ej Ek• 14 FIM
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
E0 E1 E2 E3
F0 F1 F2 F3F
E
D
0 1 2 3
A
B
C
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
E0 E1 E2 E3
F0 F1 F2 F3F
E
D
0 1 2 3
A
B
C
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
AssemblexAssemblex
Ler D0Ler D0Ler D1Ler D1ATR D2 0.4ATR D2 0.4ATR D3 0.6ATR D3 0.6MUL D0 D2 E0MUL D0 D2 E0MUL D1 D3 E1MUL D1 D3 E1SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM
Ler D0Ler D0Ler D1Ler D1ATR D2 0.4ATR D2 0.4ATR D3 0.6ATR D3 0.6MUL D0 D2 E0MUL D0 D2 E0MUL D1 D3 E1MUL D1 D3 E1SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
E0 E1 E2 E3
F0 F1 F2 F3F
E
D
0 1 2 3
A
B
C
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
E0 E1 E2 E3
F0 F1 F2 F3F
E
D
0 1 2 3
A
B
C
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
A0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
E0 E1 E2 E3
F0 F1 F2 F3F
E4 12 16
D10 20 0,4 0,6
CFIM
ATR D3 0.6
BMUL D0 D2 E0 MUL D1 D3 E1 SOM E0 E1 E2 IMP E2
ALer D0 Ler D1 ATR D2 0.4
0 1 2 3
16
10
20
© M@nso 2003
Introdução à programação Computadores e programação I
Bases de NumeraçãoBases de Numeração
Transformar instruções, dados e endereços em números
Introdução à programação Computadores e programação I
© M@nso 2003
Computador digitalComputador digital O computador para processar e armazenar informação utiliza a
linguagem binária Converter para binário
Instruções – número da instrução Endereços – endereços sequenciais Dados - são sempre numeros
Linguagem binária Bit = digito binário Pode assumir dos valores
0 diferença de potencial baixo Ausência de energia Campo magnético negativo buraco
1 diferença de potencial Alto presença de energia Campo magnético positrivo Sem buraco
AssemblexAssemblex
Ler D0Ler D1ATR D3 0.4ATR E0 0.6MUL D0 D3 E1MUL D1 E0 E2SOM E1 E2 E3IMP E3FIM
Ler D0Ler D0Ler D1Ler D1ATR D3 0.4ATR D3 0.4ATR E0 0.6ATR E0 0.6MUL D0 D3 E1MUL D0 D3 E1MUL D1 E0 E2MUL D1 E0 E2SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM
AssemblexAssemblex
Ler D0Ler D1ATR D3 0.4ATR E0 0.6MUL D0 D3 E1MUL D1 E0 E2SOM E1 E2 E3IMP E3FIM
Ler D0Ler D0Ler D1Ler D1ATR D3 0.4ATR D3 0.4ATR E0 0.6ATR E0 0.6MUL D0 D3 E1MUL D0 D3 E1MUL D1 E0 E2MUL D1 E0 E2SOM E1 E2 E3SOM E1 E2 E3IMP E3IMP E3FIMFIM
Introdução à programação Computadores e programação I
© M@nso 2003
Representação digitalRepresentação digital
AcesaAcesa
ApagadaApagada
4 estados
Bit
2 estados •Acesa•Apagada
Dois Bits
Introdução à programação Computadores e programação I
© M@nso 2003
Representação digital da informação Representação digital da informação (byte)(byte)
1 bit 2bits 3 bits 4 bits 0 1
00 01 10 11
000 001 010 011 100 101 110 111
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
1 BYTE1 BYTE
2288= 256= 256 Estados Estados diferentesdiferentes
n bites representam 2n bites representam 2n n estadosestados
1 byte = 8 bits
Unidade fundamental de
informação
Introdução à programação Computadores e programação I
© M@nso 2003
Conversão de decimal para Conversão de decimal para bináriobinário
94 2
0 47 2
1 23 2
1 11 2
1 5 2
1 2 2
0 1 2
1 0 2
0 0
0 1 0 1 1 1 1 0
8 bits=
8 divisões
Introdução à programação Computadores e programação I
© M@nso 2003
Conversão de binário para Conversão de binário para decimal decimal
0 *27 + 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 1*21 + 0 = 94
32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 4101
1 BYTE1 BYTE
2 BYTES2 BYTES
0 1 0 1 1 1 1 0128 64 32 16 8 4 2 1
0 64 0 16 8 4 2 0 94
Conversor de Bases
Introdução à programação Computadores e programação I
© M@nso 2003
OverflowOverflow
Ocorre quando a número a armazenar excede a capacidade de armazenamento
Dá origem a erros Exemplo de armazenamento num byte
Numero a armazenar 400 Número armazenado 144400 2
0 200 2
0 100 2
0 50 2
0 25 2
1 12 2
0 6 2
0 3 2
1 1
1 0 0 1 0 0 0 0128 64 32 16 8 4 2 1
128 0 0 16 0 0 0 0 144
Conversor de Bases
Introdução à programação Computadores e programação I
© M@nso 2003
Representação binária de números Representação binária de números negativos negativos
Algoritmo para conversão de números negativos para binário Subtrair uma unidade ao número positivo Fazer a conversão para binário Inverter os bits - 70
69 2
1 34 2
0 17 2
1 8 2
0 4 2
0 2 2
0 1 2
1 0 2
0 0
0 1 0 0 0 1 0 164 32 16 8 4 2 1
1 0 1 1 1 0 1 0 - 70sinal Número Negativo
Conversor de Bases
Introdução à programação Computadores e programação I
© M@nso 2003
Representação binária de números Representação binária de números negativos negativos
Valor decimal
Representação binária
Valor decimal
Representação binária
0 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 -2 1 1 1 1 1 1 1 0 2 0 0 0 0 0 0 1 0 -3 1 1 1 1 1 1 0 1 3 0 0 0 0 0 0 1 1 -4 1 1 1 1 1 1 0 0 4 0 0 0 0 0 1 0 0 -5 1 1 1 1 1 0 1 1 5 0 0 0 0 0 1 0 1 -6 1 1 1 1 1 0 1 0 6 0 0 0 0 0 1 1 0 -7 1 1 1 1 1 0 0 1 7 0 0 0 0 0 1 1 1 -8 1 1 1 1 1 0 0 0
Introdução à programação Computadores e programação I
© M@nso 2003
Representação de números reaisRepresentação de números reais Parte decimal,parte fraccionária
120,35 Parte decimal
Número inteiro Parte fraccionária
Número inteiro Notação científica
1,2035 E 2 IEEE Standard 754 Floating Point Numbers
Mantissa Parte decimal
Número inteiro (1) Parte fraccionária
Representação fraccionária do número inteiro (0,2035) Expoente
Número inteiro (2) Sinal (0)
Introdução à programação Computadores e programação I
© M@nso 2003
Representação de números reaisRepresentação de números reais
Introdução à programação Computadores e programação I
© M@nso 2003
Conversão de caracteresConversão de caracteres
Tabela ASCII NULL – 0 Espaço – 32 Zero – 48 A – 65 a - 97 Á – 143 á - 160
Introdução à programação Computadores e programação I
© M@nso 2003
Conversão de InstruçõesConversão de Instruções
Endereços de memória
0 0000 1 0001 2 0010 3 0011
40100
50101
60110
70111
81000
91001
101010
111011
121100
131101
141110
151111
2 310
A
D
C
B
Introdução à programação Computadores e programação I
© M@nso 2003
Conversão de InstruçõesConversão de Instruções
Endereços de memória Instruções
Nº Mnemômica Binário Par. 1 Par. 2 Par. 31 LER Ei 0000 XXXX
2 COP Ei Ej 0001 XXXX YYYY
3 ATR Ei Val 0010 XXXX YYYY
4 IMP Ei 0011 XXXX
5 SOM Ei Ej Ek 0100 XXXX YYYY ZZZZ
6 SUB Ei Ej Ek 0101 XXXX YYYY ZZZZ
7 MUL Ei Ej Ek 0110 XXXX YYYY ZZZZ
8 DIV Ei Ej Ek 0111 XXXX YYYY ZZZZ
9 SLT Ei 1000 XXXX
10 SE Ei > Ej Ek 1001 XXXX YYYY ZZZZ
11 SE Ei < Ej Ek 1010 XXXX YYYY ZZZZ
12 SE Ei = Ej Ek 1011 XXXX YYYY ZZZZ
13 IMP Ei 1100 XXXX
14 FIM 1101
Endereços de memória
0 0000 1 0001 2 0010 3 0011
40100
50101
60110
70111
81000
91001
101010
111011
121100
131101
141110
151111
2 310
A
D
C
B
Introdução à programação Computadores e programação I
© M@nso 2003
Programa em linguagem máquinaPrograma em linguagem máquinaA0 A1 A2 A3
B0 B1 B2 B3
C0 C1 C2 C3
D0 D1 D2 D3
10 20 200
IMP C3
FIM
Ler C0 Ler C1 SOM C0 C1 C3 AssemblerAssembler
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Nº Mnemômica Binário Par. 1 Par. 2 Par. 31 LER Ei 0000 XXXX
2 COP Ei Ej 0001 XXXX YYYY
3 ATR Ei Val 0010 XXXX YYYY
4 IMP Ei 0011 XXXX
5 SOM Ei Ej Ek 0100 XXXX YYYY ZZZZ
6 SUB Ei Ej Ek 0101 XXXX YYYY ZZZZ
7 MUL Ei Ej Ek 0110 XXXX YYYY ZZZZ
8 DIV Ei Ej Ek 0111 XXXX YYYY ZZZZ
9 SLT Ei 1000 XXXX
10 SE Ei > Ej Ek 1001 XXXX YYYY ZZZZ
11 SE Ei < Ej Ek 1010 XXXX YYYY ZZZZ
12 SE Ei = Ej Ek 1011 XXXX YYYY ZZZZ
13 IMP Ei 1100 XXXX
14 FIM 1101
Endereços de memória
Linguagem máquinaLinguagem máquina
0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110
0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
101010
111011
121100
131101
141110
151111
D
C0010 0011 0110
0110 0100 0101 0110 0011 0110
B110
0 1 2 3
A0000 0100 0000 0101
Introdução à programação Computadores e programação I
© M@nso 2003
Representação física dos dadosRepresentação física dos dados Memória
Níveis de tensão Maior tensão corresponde a 1 Menor tensão corresponde a 0
Disco ou fita magnética Inversão da orientação do campo magnético numa camada
de oxido de ferro Orientação positiva corresponde a 1 Orientação negativacorresponde a 0
Discos ópticos (CD , DVD) Pequenos buracos queimados pelo lases num filme de
telúrio Buraco corresponde a 1 Sem buraco correspinde a 0
© M@nso 2003
Introdução à programação Computadores e programação I
Linguagens de alto nívelLinguagens de alto nível
Linguagem estruturada
Introdução à programação Computadores e programação I
© M@nso 2003
Substituição de endereços por Substituição de endereços por nomesnomes
Calcular a área do rectângulo
Algoritmo Ler lado 1 Ler lado 2 Area = lado1 * lado 2 Imprimir area
AssemblerAssembler
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Ler C0Ler C0Ler C1Ler C1MUL C0 C1 C2MUL C0 C1 C2IMP C2IMP C2FIMFIM
Linguagem de alto nívelLinguagem de alto nível
Ler lado1Ler lado1Ler lado2Ler lado2area <- lado1 * lado2area <- lado1 * lado2Escrever areaEscrever area
Ler lado1Ler lado1Ler lado2Ler lado2area <- lado1 * lado2area <- lado1 * lado2Escrever areaEscrever area
A0 A1 A2 A3
B0 B1 B2 B3
C0lado1
C1lado2
C2area
C3
D0 D1 D2 D3
C10 20 200
B
1
Ler lado2
0
ALer lado1
Area = lado1 * lado2
Imprime area
2 3
D
Linguagem máquinaLinguagem máquina
0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110
0000 01000000 01000000 01010000 01010110 0100 0101 0110 0100 0101 011001100011 0110 0011 0110 01100110
Introdução à programação Computadores e programação I
© M@nso 2003
Tipos de dadosTipos de dados
Inteiro Real Caracter Texto Lógico
Variáveis Um nome Um Tipo Um só valor
AssemblerAssembler
Ler C0Ler C0Ler C0Ler C0
Linguagem de alto nívelLinguagem de alto nível
Ler lado1Ler lado1Ler lado1Ler lado1
D0logico repetente
FALSO0
D0inteiro Idade
650100 00010
real PI
650100 0001001110010
D0 caracter sexo
M0100 0001
máquinamáquina
0000 01010000 01010000 01010000 0101
Introdução à programação Computadores e programação I
© M@nso 2003
Tipos de dadosTipos de dados
Introdução à programação Computadores e programação I
© M@nso 2003
Declaração de variáveisDeclaração de variáveis
Onde ? Antes da sua utilização
Porquê? Para o compilador reservar um espaço de
memória Como ?
Definir utilizando a instrução variavel Variavel tipo nome Variavel tipo nome1, nome2, …
Omitindo a instrução variavel tipo nome tipo nome1, nome2, …
ExemplosExemplos
Variavel inteiro ladoVariavel inteiro ladoVariavelVariavel real lado1 , lado2real lado1 , lado2Caracter sexoCaracter sexoLogico repetente, Logico repetente, trabalhadortrabalhador
Variavel inteiro ladoVariavel inteiro ladoVariavelVariavel real lado1 , lado2real lado1 , lado2Caracter sexoCaracter sexoLogico repetente, Logico repetente, trabalhadortrabalhador
Introdução à programação Computadores e programação I
© M@nso 2003
Regras dos nomes de variáveisRegras 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
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Quais dos seguintes nomes são nomes válidos de variáveis? idade Num_Cliente A1b2c3 7dias Vinte% Sim?não _alfa Variavel Nome Principal Cliente NomePrincipalCliente Nome_Principal_Cliente
Introdução à programação Computadores e programação I
© M@nso 2003
Ler e escrever Ler e escrever
Instrução ler Utilização
Ler nome_da_variável
Instrução escrever Utilização
escrever nome_da_variável escrever “texto” escrever “texto” , nome_da_variável escrever nome_da_variável, “texto” , . . . . .
Separar os elementos por virgulas
Introdução à programação Computadores e programação I
© M@nso 2003
Exemplo de Ler e escrever Exemplo de Ler e escrever
Programa Ola MundoPrograma Ola Mundo
inicioinicio escrever "ola mundo"escrever "ola mundo"fimfim
inicioinicio escrever "ola mundo"escrever "ola mundo"fimfim
Programa cordialPrograma cordial
inicioinicio Texto nomeTexto nome escrever " Qual o seu nome"escrever " Qual o seu nome" ler nomeler nome escrever "Benvindo " , nomeescrever "Benvindo " , nomefimfim
inicioinicio Texto nomeTexto nome escrever " Qual o seu nome"escrever " Qual o seu nome" ler nomeler nome escrever "Benvindo " , nomeescrever "Benvindo " , nomefimfim
Introdução à programação Computadores e programação I
© M@nso 2003
Atribuição de Valores – operador <-Atribuição de Valores – operador <-
NOTANOTA
O operador = (igual) é o operador de comparação e devolve verdadeiro ou falso
O operado <- é o operador de atribuição e significa que a variável passa a ter um novo valor
O operador = (igual) é o operador de comparação e devolve verdadeiro ou falso
O operado <- é o operador de atribuição e significa que a variável passa a ter um novo valor
ExemplosExemplos
Soma Soma <-<- 10 10
saldo saldo <-<- soma + 1soma + 1
area area <- <- lado1 * lado2lado1 * lado2
Soma Soma <-<- 10 10
saldo saldo <-<- soma + 1soma + 1
area area <- <- lado1 * lado2lado1 * lado2
variavel <- expressão
Introdução à programação Computadores e programação I
© M@nso 2003
Operadores AritméticosOperadores Aritméticos
Variáveis numéricas Unários
- (menos) Binários
+ (adição) - (subtracção) * (multiplicação) / (divisão) ^(potenciação)
Variáveis Texto Binário
+ ( concatenação)
Prioridade dos operadores Prioridade 1
^ Prioridade 2
* /
Prioridade 3 + -
Os parêntesis alteram a prioridade
Introdução à programação Computadores e programação I
© M@nso 2003
Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais
Distancia entre dois pontos
Matemática
Computacional D <-<- ( (x1 – x2)^2 + (y1 – y2) ^2 ) ^0.5
2 22 )21()21( yyxxd
(x1,y1)
(x2,y2)
Introdução à programação Computadores e programação I
© M@nso 2003
Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais
Zeros de uma equação de segundo grau
Matemática
Computacional X1 <- ( -b + ( b^2 – 4*a*c) ^0.5 )/ ( 2 *
a) X2 <- ( -b - ( b^2 – 4*a*c) ^0.5 ) / ( 2 *
a)
Introdução à programação Computadores e programação I
© M@nso 2003
Expressões Expressões matemáticas/Computacionaismatemáticas/Computacionais
Fórmula Matemática
Expressão Computacional X <- (2*3.14*R^2 -5)/ ((3.14*R)/6)^(1/3) + (4/3)*
3.14*R^3
3
3
2
3
4
6
52R
R
Rx
Introdução à programação Computadores e programação I
© M@nso 2003
Área do rectanguloÁrea do rectangulo
Programa Área do rectânguloPrograma Área do rectângulo
inicioinicio real lado1, lado2, areareal lado1, lado2, area escrever "introduza o lado 1"escrever "introduza o lado 1" ler lado1ler lado1 escrever "Introduza o lado 2"escrever "Introduza o lado 2" ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever " A área é " , areaescrever " A área é " , areafimfim
inicioinicio real lado1, lado2, areareal lado1, lado2, area escrever "introduza o lado 1"escrever "introduza o lado 1" ler lado1ler lado1 escrever "Introduza o lado 2"escrever "Introduza o lado 2" ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever " A área é " , areaescrever " A área é " , areafimfim
Introdução à programação Computadores e programação I
© M@nso 2003
Exemplo de ConcatenaçãoExemplo de Concatenação
Programa cordialPrograma cordial
inicioinicio Texto nome, apelido, nome_completoTexto nome, apelido, nome_completo escrever "Qual o seu primeiro nome"escrever "Qual o seu primeiro nome" ler nomeler nome escrever "Qual o seu apelido"escrever "Qual o seu apelido" ler apelidoler apelido nome_completo <- nome + " " + apelidonome_completo <- nome + " " + apelido escrever "Benvindo " , nome_completoescrever "Benvindo " , nome_completofimfim
inicioinicio Texto nome, apelido, nome_completoTexto nome, apelido, nome_completo escrever "Qual o seu primeiro nome"escrever "Qual o seu primeiro nome" ler nomeler nome escrever "Qual o seu apelido"escrever "Qual o seu apelido" ler apelidoler apelido nome_completo <- nome + " " + apelidonome_completo <- nome + " " + apelido escrever "Benvindo " , nome_completoescrever "Benvindo " , nome_completofimfim
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Construa um programa que calcule a área e o perímetro de um círculo
RPerimetro 2
2RArea
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Construa um programa que calcule a área e o volume de um paralelepípedo
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Construa um programa que calcule a distância de um ponto à origem num plano 2D
Introdução à programação Computadores e programação I
© M@nso 2003
ExercícioExercício
Construa um programa que calcule o tempo de trabalho de um trabalhador dado a hora de entrada e a hora de saída.
08:30:00Entrada
13:00:10Saída
4:30:10Tempo detrabalho