Академический Документы
Профессиональный Документы
Культура Документы
Conceitos Bsicos
Hlio Vilas
Braga Junho de 2014
Indce
Cap 1.
ALGORITMIA ............................................................................................................................................4
Hlio Vilas
Pgina 2
Hlio Vilas
Pgina 3
CAP 1. ALGORITMIA
1.1. O que um Algoritmo?
Definio: Algoritmo a palavra usada para designar o conjunto de fases de pormenor por que
preciso passar para chegar soluo de um problema (do Latim Algorithmu).
Em Informtica o seu significado similar, i.e., Algoritmo o conjunto ordenado de passos (ou
instrues) para a resoluo sequencial de um problema.
Um computador uma mquina sequencial (executa instrues sequencialmente), pois s inicia a
execuo de uma instruo aps ter terminado a anterior, assim, um algoritmo pode ser visto como a
descrio numa linguagem quase natural (chamada linguagem algortmica, pseudocdigo ou ainda
Portugus estruturado) da sequncia de instrues a ser executada pelo computador para a resoluo
de um problema.
Dado um problema, a sua resoluo num computador ser objeto de um conjunto de fases at se obter
a soluo final. Podemos considerar as trs fases seguintes:
1-
2-
3-
Nota:
Sendo o mbito deste curso a formao de tcnicos de informtica, cujas funes podero ser, entre outras, a
de programador, ser importante realar que um programador tem como funo resolver problemas que lhe
so propostos (i.. a prestao de um servio).
Nesta tica, a especificidade da implementao de um problema dever ser transparente para o utilizador final
pois a ele s interessam a entrada de dados (input) e a sada de resultados (output) devendo estas operaes
ser suficientemente claras e objetivas.
Hlio Vilas
Pgina 4
Exemplo:
Problema: Dados os valores de dois operandos, calcular a sua soma.
Na anlise do problema constatamos que o utilizador do programa ter que introduzir os dois valores
(quaisquer) dos operandos (entrada de dados) dos quais pretende obter a soma, o computador assimila
esses valores e realiza as operaes necessrias ao clculo do resultado.
Note-se que no enunciado no feita qualquer referncia sada de resultados, no entanto esta ter
que existir para que o resultado da operao possa ser visualizado pelo utilizador.
Aplicando o mtodo top-down o problema fica com o
Algoritmo Soma
1 [Entrada de dados]
seguinte especto:
ser
implementadas
diretamente
em
2 [Clculos]
Clculo da soma;
3 [Apresentao de resultados]
Apresentao da soma ao utilizador;
4 [Terminar]
Sair (do programa);
Hlio Vilas
Pgina 5
As constantes podem ser escritas sob a forma de valores diretos ou associadas a identificadores. As
variveis so sempre associadas a identificadores (que por sua vez esto associados a tipos de dados).
Os identificadores so nomes que se atribuem a constantes, variveis ou outros elementos usados
dentro de um programa.
Nota:
De uma forma simplista, uma varivel, pode ser vista como um recetculo onde armazenado um dado valor.
Hlio Vilas
Pgina 6
Exemplos:
Identificadores Vlidos
Identificadores Invlidos
nome
Joo
Var
Max_Min
W52
B3#C
Begin
EB110
soma
!cont
Va lor1
Contador
idade
Read
3soma
Tipos de Dados
Simples
Em Pascal
1- Inteiro
- Integer
-32768 a 32 767
2- Real
- Real
2,9E-39 a 1,7E38
3- Carcter
- Char
4- Booleano (Lgico)
- Boolean
Cadeia de Caracteres
Estruturados
Gama de Valores
String
1- Matriz ou Vetor
- Array
2- Registo
- Record
3- Conjunto
- Set
4- Ficheiro
- File
A gama de valores em cada tipo de dados pode ainda variar consoante a linguagem de programao
utilizada.
Exemplos
325 Inteiro
a Carcter
-3457 Inteiro
Carcter (espao)
Falso Lgico
2,45E12 Real
2,3*10E-3 Invlido
Hlio Vilas
Pgina 7
4 de Cadeias de Caracteres;
3 Lgicos;
5 Funcionais.
Operador
Multiplicao (asterisco)
Adio
Subtrao
DIV
Resto da Diviso
MOD
As operaes entre dados do tipo inteiro apresentam resultados inteiros exceo da diviso de dois
inteiros cujo resultado pode ser um real. Os resultados de operaes entre valores reais so sempre
valores reais.
Operador
Igual
Diferente
<>
Menor
<
Menor ou igual
<=
Maior
>
Maior ou igual
>=
Todos os tipos de dados podem ser sujeitos a operaes relacionais (ou de comparao), o resultado
assume sempre um de dois valores possveis: verdadeiro (V) ou Falso (F).
Hlio Vilas
Pgina 8
Operador
Negao
NOT
Conjuno (e lgico)
AND
OR
Tal como nas operaes relacionais, o resultado das operaes lgicas assume sempre um de dois
valores possveis: verdadeiro (V) ou Falso (F).
Operador
Concatenao
Todos os Relacionais
Exemplos
Infor + mtica = Informtica
Al + ca + chofra = Alcachofra
Ol < Oi (Falso)
Nota:
Nas operaes de comparao de cadeias de caracteres so utilizados os seguintes critrios:
1 a ordem alfabtica, 2 a quantidade de caracteres e 3 valor do cdigo ASCII (apenas em
algumas linguagens de programao).
Operador
Quadrado (Square)
SQR( )
SQRT( )
ABS( )
Seno
SIN( )
CONCAT( )
Pgina 9
em programao
3(2a+b2)
3c 2a
3*(2*a+b*b)/(3*c-2*a)
Mais Alta
Mais Baixa
Not
(Operadores Unrios)
Div
Or
<>
<
Mod
>
<=
And
>=
Hlio Vilas
Pgina 10
~a
Propriedade da negao:
~(~(a)) = a
ab
os smbolos: e
Propriedades da Conjuno:
i) a b = b a (Comutativa)
ii) (a b) c = a (b c) (Associativa)
v) a a = a (Idempotncia)
a+b
os smbolos: + e V
Hlio Vilas
Pgina 11
Propriedades da Disjuno:
i) a + b = b + a (Comutativa)
ii) (a + b) + c = a + (b + c) (Associativa)
v) a + a = a (Idempotncia)
Hlio Vilas
Pgina 12
Obs. As funes Ler e Escrever podem manipular um conjunto de uma ou mais variveis (separadas
por vrgulas) tal como se pode ver nas instrues seguintes:
Ler(a)
Ler(b, c)
Escrever(a, b)
Escreve(valor de, c)
1 [Entrada de dados]
Escrever(Primeiro operando:)
nmeros)
Ler(Op1)
usando
as instrues algortmicas
Escrever(Segundo operando:)
down.
Ler(Op2)
2 [Clculo da Soma]
Nota:
3 [Apresentao de Resultados]
Escrever(A Soma :, Soma)
4 [Terminar]
Sair
Hlio Vilas
Pgina 13
Op1
Op2
Soma
15
23
38
Sada
A Soma : 38
No passo 1 foram lidos os valores dos operandos, no passo 2 e na coluna correspondente foi colocado o
carcter para designar que os valores dos operandos se mantm, ou seja, se pretendesse-mos usar
alguma dessas variveis noutra operao o valor seria o que foi atribudo no passo 1. O passo 4, Sair,
no registado na traagem.
Hlio Vilas
Pgina 14
1.8. Fluxogramas
Os Fluxogramas, tambm chamados de diagramas de fluxo, so uma representao grfica de um
algoritmo, descrevendo-o de forma simples e fcil de entender. Esta representao, que utiliza um
conjunto de smbolos, conhecida universalmente, tambm uma das mais antigas e mais utilizadas
embora o seu uso tenha diminudo significativamente com o aparecimento das linguagens de
programao estruturadas.
No desenho de fluxogramas usa-se um conjunto de smbolos dos quais se apresentam apenas os
principais (com interesse a este nvel):
Funo
Smbolo
Incio
Retorno .................................................................................
Retorno
Entrada e Sada de dados .....................................................
Escrever(Primeiro operando:)
Ler(Op1)
Escrever(Segundo operando:)
Ler(Op2)
2 Entrada de dados
3 Processamento
4 Sada de resultados
Fim
5 Fim do fluxograma
Nota:
Repare que no 2 smbolo podiam omitir-se as
instrues Escrever(), ficariam s as instrues
Ler(Op1) e Ler(Op2).
Hlio Vilas
Pgina 15
Falso
8,7345E22
- 2345
3.500$00
45340
18 > 14,5
15 <= -27
23 Div 4
3,437 = 422
7*4
7(ab2 +1)
52 x 2ab
(x-2)2
ab2
a+b2
Algoritmo;
b)
Mtodo Top-Down;
b)
Para um aluno, dadas as notas dos trs perodos calcular a mdia final do ano;
c)
d)
e)
f)
g)
Calcular a rea do trapzio dadas as medidas das bases e a altura (rea = (B + b)/2 x h);
Hlio Vilas
Pgina 16
Estruturas
Condicionais
De
Controlo
Dupla
Mltipla
Repetitivas
(ou Cclicas)
Se ... Ento
Se ... Ento
Seno
Caso ... Seja
Repetir ... At
Enquanto ... Fazer
Para ... Fazer
Inicio
Aco 1
Aco n
Exemplos deste tipo de estrutura so todos os algoritmos vistos at aqui dado que
todas as instrues so executadas sequencialmente.
Hlio Vilas
Fim
Pgina 17
F
Cond
V
Aco 1
Aco n
...
Se (cond) Ento
Inicio
Aco1
...
Aco n
Fim
Se (cond) Ento
Ao
...
...
Nota:
Repare na utilizao dos delimitadores incio e fim quando a estrutura engloba um conjunto de aes
a realizar, situao comum a todas as estruturas exceo da Repetir At(cond).
Exemplo: dados dois nmeros calcular o maior.
Algoritmo Maior
1- [Leitura de dados]
Escrever(Primeiro nmero:)
Ler(a)
Escrever(Segundo nmero:)
Ler(b)
Se (a < b) Ento
Escrever(O maior :, b)
Se (a = b) Ento
Escrever(Os nmeros so iguais)
3- [Terminar]
Sair
Hlio Vilas
Pgina 18
Uma Instruo
Cond
V
...
Se (cond) Ento
Inicio
Aco1
Aco n
Fim
Seno
Inicio
Aco i
Aco x
Fim
...
...
Aco 1
Aco i
Aco n
Aco x
Conjunto de Instrues
Se (cond) Ento
Aco1
Seno
Aco x
...
1- [Leitura de dados]
Escrever(Qual o nmero:)
Ler(x)
2- [Verificao do sinal]
3- [Terminar]
Se (a = 0) Ento
Escrever(O nmero zero)
Sair
Hlio Vilas
Pgina 19
Embora no contemplado por alguns autores ser importante realar que esta estrutura pode conter
um clusula Seno que ser executada quando o valor da varivel no coincidir com nenhum dos n
valores (constantes) possveis.
apresentado em seguida o fluxograma genrico desta estrutura bem como o algoritmo com e sem a
clusula Seno.
Algoritmo (Sintaxe)
Sem Seno
Var
=1
S1
=2
S2
=n
Sn
Seno
Sx
Com Seno
Caso (Var) Seja
1: S1
1: S1
2: S2
2: S2
n: Sn
n: Sn
Seno Sx
fim
fim
Var uma varivel e S1, S2, Sn e Sx representam uma instruo ou conjunto de instrues.
A estrutura Caso embora no use delimitador incio necessita ter delimitador fim.
Exemplo: Ler um dia da semana de 1 a 7 e apresentar o respetivo nome.
Algoritmo Dias
1- [Leitura de dados]
5: Escrever(Quinta)
6: Escrever(Sexta)
7: Escrever(Sbado)
Seno
Escrever(Dia Errado!!!)
fim
Escrever(Qual o dia:)
Ler(dia)
2- [Apresentao do nome do dia]
Caso (dia) Seja
1: Escrever(Domingo)
2: Escrever(Segunda)
3: Escrever(Tera)
4: Escrever(Quarta)
3- [Terminar]
Sair
Hlio Vilas
Pgina 20
Uma Instruo
Cond
V
Aco 1
Conjunto de Instrues
...
Enq (cond) Fazer
...
Inicio
Aco1
Aco n
Aco n
Fim
...
...
Exemplo: Dado um inteiro positivo, calcular a soma de todos os nmeros at esse nmero.
Algoritmo SomaSeq
1- [Inicializaes]
Soma 0
I1
2- [Leitura do nmero]
Escrever(Um nmero positivo:)
Ler(N)
3- [Clculo da Soma]
Enq (I < N) Fazer
Incio
Soma Soma + I
I I +1
fim
4- [Apresentao da Soma]
Escrever(A Soma :, Soma)
5- [Terminar]
Sair
Hlio Vilas
Pgina 21
...
...
Repetir
Repetir
Aco n
Conjunto de Instrues
Aco1
Aco1
Aco n
At (cond)
Cond
F
At (cond)
...
...
Nota:
Esta estrutura mesmo quando engloba um conjunto de aes no usa incio e fim.
Exemplo1: Dada uma sequncia de n inteiros positivos, calcular o mximo e a sua posio.
Algoritmo MaxSeq
1- [Inicializaes]
Max 0
I1
2- [Leitura do n de elementos da sequncia]
Repetir
Escrever(N de elementos da seq:)
Ler(N)
At (N > 0)
3- [Leitura da seq. e clculo do mximo]
Repetir
Repetir
Escrever(I, elemento:)
Ler(x)
At (x > 0)
Hlio Vilas
Pgina 22
Repare na necessidade de inicializar o mximo com um valor suficientemente pequeno de forma que o
primeiro nmero lido (positivo) seja superior a ele.
Vejamos outro exemplo, usando agora as estruturas repetir e enquanto com o Fluxograma respetivo:
Exemplo2: Ler um inteiro positivo e escrever os seus algarismos por ordem inversa.
(Ex. 123 > algarismos: 3, 2 e 1).
Algoritmo DaAlgarismos
Fluxograma
1- [Leitura do nmero]
Incio
Repetir
Escrever(Qual o nmero:)
Ler(x)
Ler(x)
At (x > 0)
F
V
V
x>0
x>0
incio
Resto x Mod 10
Resto x Mod 10
Escrever(Resto)
x x Div 10
fim
Escrever(Resto)
3- [Terminar]
x x Div 10
Sair
Fim
Ainda o mesmo exemplo mas transformando o nmero num outro escrito por ordem inversa dos seus
algarismos
Hlio Vilas
Pgina 23
Algoritmo InvNum
1- [Inicializaes]
Inv 0
2- [Leitura do nmero]
Repetir
Escrever(Qual o nmero:)
Ler(x)
4- [Apresentao do n invertido]
Escrever(O n invertido :, Inv)
At (x > 0)
5- [Terminar]
Sair
Algoritmo (Sintaxe)
i 1
at n
V
Aco 1
Uma Instruo
...
Para i 1 at n Fazer
Aco1
Aco n
...
Conjunto de Instrues
...
Para i 1 at n Fazer
Incio
Aco1
Aco n
fim
...
Nota:
Para i 1 at n Fazer, deve ler-se: para i igual a (ou, a tomar o valor) 1 at n fazer.
Hlio Vilas
Pgina 24
Toda a estrutura Para .. Fazer pode ser convertida numa Enq .. Fazer. O inverso s verdadeiro se a
condio de sada da estrutura Enq .. Fazer for expressa por uma varivel numrica de incremento
constante (unitrio). Caso se transforme uma estrutura Para .. Fazer numa Enq .. Fazer necessrio
inicializar a varivel de controlo e efetuar o incremento.
Exemplo: Dado um inteiro positivo, calcular a soma de todos os nmeros de 1 at esse nmero.
Algoritmo SomaSeq
3- [Clculo da Soma]
Para i 1 at x Fazer
Soma Soma + I
1- [Inicializaes]
Soma 0
2- [Leitura do nmero]
4- [Apresentao da Soma]
Repetir
Escrever(Um nmero positivo:)
Ler(x)
At (x > 1)
Obs. Este exerccio foi resolvido atrs quando da apresentao da estrutura Enq .. Fazer.
Traagem do algoritmo anterior. Valores 0, -1 e 5.
Passo
Iterao
Soma
0
-1
5
1
2
1
2
3
1
2
3
4
1
2
3
4
1
3
6
10
15
Sada
A Soma : 15
Caso a varivel de controlo de um ciclo comece em 1 com incrementos unitrios verificamos que o
valor da varivel coincide com o valor da iterao parecendo esta coluna desnecessria, isto porm,
nem sempre acontece.
Hlio Vilas
Pgina 25
1-
Dados trs nmeros calcular o maior (se forem iguais deve avisar para esse facto);
2-
Dados dois operandos e uma operao (+, -, / e *) implementar uma calculadora de quatro
operaes (0/n = Erro, sugesto: estrutura caso ... seja);
3-
4-
5-
Dada uma sequncia de n nmeros inteiros contar o nmero de zeros, pares e mpares;
6-
7-
8-
9-
10 -
Hlio Vilas
n.
Pgina 26
Pascal
1- Matriz ou Vetor
1- Array
2- Cadeia de Caracteres
3- Registo
4- Conjunto
5- Ficheiro
2- String
3- Record
4- Set
5- File
O tipo cadeia de caracteres pode tambm ser considerado um tipo de dados estruturados pois um
construdo custa de um conjunto de dados do tipo carcter (1 a 255 caracteres ASCII).
Neste captulo vo ser abordados apenas os tipos Matriz e Cadeia de Caracteres (os restantes sero
abordados no Captulo 5 e seguintes)
Hlio Vilas
Pgina 27
Entende-se por vetor, um array unidimensional que constitudo por uma lista de dados ordenados
segundo um ndice, ndice esse que identifica o nmero de ordem ou posio que cada elemento ocupa
na lista.
O seu armazenamento na memria do computador feito em posies ordenadas e adjacentes,
podendo assim, cada elemento ser considerado como uma varivel simples atribuda a uma posio de
memria.
Exemplo: Vejamos o array Num de n posies.
7
15
-2
...
22
Num[1]
Num[2]
Num[3]
Num[...]
Num[n]
Por exemplo: o valor do array Num na posio 2 referenciado como Num[2] e igual a 15.
-2
...
-11
Num[1]
Num[2]
Num[3]
Num[...]
Num[n]
2. Leitura/Escrita
Escrever(Insira o 5 elemento do Array:)
Ler(Num[5]); Na posio 5 do array ficar armazenado o valor introduzido pelo utilizador.
Escrever (Num[1]) apresentar no monitor o valor: 7
Escrever (Num[2]) apresentar no monitor o valor: 15
3. Atualizao: insero, alterao e eliminao de elementos
As operaes de insero, alterao e eliminao podem ser efetuadas atravs da leitura ou
atribuio de valores s posies do array.
4. Pesquisa de um elemento
Hlio Vilas
Pgina 28
Algoritmo Pesquisa
1- [Inicializaes]
Enc Falso
k1
2- [Leitura do Array]
Para i 1 at n Fazer
incio
Escrever(i, elemento:)
Ler(A[i])
fim
Iteraes j
Iteraes i
Escrever(Elemento a pesquisar:)
Ler(x)
4- [Pesquisa]
Enq (( ~ Enc) ( k <= n)) Fazer
incio
Se (x = A[k]) Ento
incio
Enc Verdadeiro
Pos k
fim
kk+1
fim
-2
150
18
92
-2
150
18
92
-2
150
18
92
-2
18
150
92
-2
18
92
150
Pgina 29
A[1,1]
A[1,2]
A[1,3]
A[1,4]
...
A[1,m]
A[2,1]
A[2,2]
A[2,3]
A[2,4]
...
A[2,m]
A[3,1]
A[3,2]
A[3,3]
A[3,4]
...
A[3,m]
A[4,1]
A[4,2]
A[4,3]
A[4,4]
...
A[4,m]
...
...
...
...
...
...
A[n,1]
A[n,2]
A[n,3]
A[n,4]
...
A[n,m]
-5
14
18
X[2,1]= 2 X[2,2]= 0
-1
Hlio Vilas
Pgina 30
Algoritmo SomaMat
1- [Leitura das Matrizes A e B]
Para i 1 at n Fazer
Para j 1 at m Fazer
incio
Escrever(Elemento a,i,j,: )
Ler(A[i,j])
fim
Para i 1 at n Fazer
Para j 1 at m Fazer
incio
Escrever(Elemento b,i,j,: )
Ler(B[i,j])
fim
2- [Clculo da matriz C]
Para i 1 at n Fazer
Para j 1 at m Fazer
C[i,j] A[i,j] + B[i,j]
3- [Apresentao da matriz C]
Para i 1 at n Fazer
Para j 1 at m Fazer
Escrever(C[i,j])
4- [Terminar]
Sair
Nota:
As
matrizes
bidimensionais
so
sempre
temos
dois
ciclos
Para..Fazer
encaixado.
O ciclo exterior percorre a matriz por linhas
(de 1 at n).
O ciclo interior percorre todos os elementos de
uma linha (que igual ao nmero de colunas).
A Multiplicao de Matrizes poder ser tema de um trabalho prtico a implementar mais tarde em
linguagem Pascal.
Note que, para multiplicar duas matrizes condio necessria que o nmero de colunas da
primeira matriz seja igual ao nmero de linhas da segunda, i.., se tivermos as matrizes:
Anxm e Bpxm pela multiplicao A x B iremos obter a matriz Cnxm. Poder considerar 100
como valor limite para linhas e colunas (uma matriz A100x100 de inteiros ocupa 20.000 Bytes
de memria)
Hlio Vilas
Pgina 31
O tipo String no um tipo standard, est contemplado no Turbo Pascal mas no Pascal Padro
designa-se porque Packed Array, tendo no entanto algumas diferenas.
Caracteres da Tabela ASCII:
Alfabticos (a, b, c, ..., z, A, B, ..., Z);
Numricos (0,1,2,3, ..., 9);
Especiais (+, -, %, $, #, &, ..., <, >, ...);
De Controlo (no se escrevem ou imprimem non printable mas desempenham funes
especiais, por exemplo: 7 Bell, 10 Line Feed, 13 Carriage Return, 27 - Escape).
Hlio Vilas
Pgina 32
Obs. Note que o carcter A (ascii 65) diferente do carcter a (ascii 97).
5 - Concatenao +
Esta operao consiste em reunir duas ou mais cadeias de caracteres numa s, conservando,
no entanto, a ordem dos caracteres no interior de cada uma. O operador atua como um
operador aritmtico adicionando a segunda cadeia primeira de forma adjacente.
A Bora l, B estudar, C TLP,
SA++B++C
Escrever(S);
daria como resultado: Bora l estudar TLP
6 - Extrao de parte(s) de uma cadeia Sub( )
Sub(cadeia, incio, comprimento) d a subcadeia da cadeia de caracteres comeando na
posio incio e com o comprimento estabelecido. Exemplos:
Sub(Algoritmo,1,5); daria como resultado: Algor
Sub(Algoritmo,3,4); daria como resultado: gori
7 - Pesquisa Pos( )
Pos(cadeia1, cadeia2) pesquisa a cadeia2 na cadeia1 e d resultado 0 se no encontrar ou
diferente de zero que ser a posio de incio da cadeia2.
Pos(Algoritmo, algor); daria como resultado: 0
Pos(Algoritmo, Algor); daria como resultado: 1
Pos(O Manel e Maria foram festa, x); daria como resultado: 0
Pos(O Manel e Maria foram festa, foram); daria como resultado: 17
Hlio Vilas
Pgina 33
8 - Insero Inserir( )
Inserir(cadeia1, posio, cadeia2) insere a cadeia2 na cadeia1 a partir da posio especificada.
Inserir(Quem tolo,5, d tudo o que tem ); resultado: Quem d tudo que tem tolo
Inserir(Hoje cinema, 5, vou ao ); resultado: Hoje vou ao cinema
9 - Eliminao Apagar( )
Apagar(cadeia, posio, comprimento) apaga o comprimento de caracteres na cadeia a partir
da posio especificada.
Apagar(Penso, logo existo!!,11,7); daria o resultado: Penso, logo!!
10 - Converso Valor( ) e Cadeia( )
Valor(cadeia) converte a cadeia para um valor; em pascal Val(s, v, c);
Cadeia(nmero) converte o nmero numa cadeia; em pascal Str(v, s);
Sendo: s string; v Value; c - code;
Exemplos:
Valor(1234) transforma a string 1234 no valor 1234;
Cadeia(456) transforma o nmero 456 na string 456
Seria razoavelmente desagradvel elaborar um algoritmo (programa) para lidar com entrada/sada de
dados deste tipo fazendo o processamento carcter a carcter, seno vejamos um problema exemplo:
Ler os nomes e idades de n alunos de uma turma e orden-los por ordem ascendente de nome.
Hlio Vilas
Pgina 34
Algoritmo NomeIdade
(ordenao Ascendente)
incio
Repetir
nome).
exigiria
um
algoritmo
IdadAux Idade[i]
Idade[i] Idade[j]
Idade[j] IdadAux
fim
Para i 1 at n Fazer
Escrever(Nome[i],..........., Idade[i])
5- [Terminar]
Sair
Existe ainda um outro tipo de vetores, os vetores de registos, que sero analisados mais frente neste
Manual quando da apresentao do tipo de dados Registo.
Hlio Vilas
Pgina 35
Ler um vetor de 20 elementos e um valor a pesquisar nesse vetor. Efetuar a pesquisa e avisar o
utilizador se o elemento existe ou no no vetor e a sua posio.
2-
Ler o total de vendas mensal (em unidades monetrias) de duas lojas durante seis meses e
verificar qual das lojas teve maior volume de vendas nesse semestre.
3-
Dada uma sequncia de n nmeros calcular: o mximo, o mnimo, a diferena entre o mximo e o
mnimo. Dever ainda contar as ocorrncias de elementos da sequncia iguais a essa diferena;
4-
5-
Ler um texto de no mximo 200 caracteres (palavras separadas por um espao) e contar o
nmero de palavras, de vogais e espaos.
6-
Dados dois vetores V1[] e V2[] com 20 elementos cada, adicionar os elementos de ndice impar
colocando o resultado da operao num terceiro vetor Res[]. Caso o ndice seja par, a operao a
realizar deve ser a subtrao.
7-
Ler os nomes dos 20 alunos de uma turma e as notas dos trs perodos e calcular a mdia final
dando indicao sobre o resultado final, aprovado ou reprovado. Um aluno ter como resultado
aprovado se a mdia for maior ou igual a 9.45.
Hlio Vilas
Pgina 36