Estruturas de Controlo: Decisão Condicional Se
Estruturas de Controlo: Decisão Condicional Se
Até agora temos estado a lidar com algoritmos puramente sequenciais, isto é, as
instruções são cumpridas uma após outra até chegar ao fim do algoritmo . Nestes
algoritmos só se empregam apenas instruções simples que são: instruções de escrita e de
leitura.
Basicamente, existem dois (2) tipos de instruções: a tabela a baixo representa a sintaxe
em pseudocódigo e Fluxograma destas instruções.
1
EXEMPLO
inicio inicio
escreval("Digita uma nota maior que escreval("digita a classificação do
9") aluno de 0 a 20")
leia(nota) leia(nota)
se (nota>=9) entao se (nota<10) entao
escreval("Apto") escreval("Aluno Reprovado")
fimse senao
fimalgoritmo escreval("aluno Aprovado")
fimse
fimalgoritmo
Exercício 14- Formular um algoritmo que Exercício 15- Formular um algoritmo que
leia um valor inteiros e informa se o valor leia 2 valores inteiros e compara qual dele
digitado é par ou ímpar. é maior ou se os valores são iguais
algoritmo "SE5" algoritmo "ComparaValores"
inicio inicio
escreval("Digite o numero") escreval("Digitar 2 valores")
leia(numero) leia(a, b)
2
Exercício 16 - Formular um algoritmo Exercício 17 - Formular um algoritmo
que leia 3 valores inteiros e compara qual que leia 3 valores inteiros e compara qual
deles é maior. dele é maior ou se existe pelo menos 2
valores iguais
Algoritmo "ComparaValores" algoritmo "SE4"
Inicio inicio
escreval("Digitar 3 números inteiro") escreval("digita 3 valores ")
leia(a, b, c) leia(a, b, c)
3
Exercício 18
Construa um algoritmo da discussão da equação do segundo grau. A equação do
segundo grau apresenta-se na forma:
algoritmo "Equ2Grau"
Inicio
escreval("Digite os coeficientes a, b e c")
leia(a, b, c)
d:=b^2-4*a*c
se (a=0) entao
escreval("a nao pode ser igual a 0")
senao
se(d<0) entao
escreval("equação impossivel")
senao
se (d=0) entao
x1:=(-b)/2*a
escreval("A solução é X1=X2=",x1)
senao
x1:=(-b-raizq(d))/2*a
x2:=(-b+raizq(d))/2*a
escreval("soluçoes X1=",x1, " e ", "X2=",x2)
fimse
fimse
fimse
fimalgoritmo
4
Exercício 19
Elabora um algoritmo que leia 2 valores e calcule o resultado da operação realizada
tendo a operação escolhida identificando a partir de código digitado pelo usuário
⎯ Adição – 1
⎯ Subtrair – 2
⎯ Multiplicar – 3
⎯ Dividir – 4
algoritmo "4OpAritmetica"
var a, b: real
opera: inteiro
inicio
// Seção de Comandos
escreval("digita 2 numeros")
leia(a, b)
escreval("")
escreval(".........................................")
escreval("MENU - OPERAÇÕES")
escreval("1 - Adicionar")
escreval("2 - Subtrair")
escreval("3 - Multiplicar")
escreval("4 - Dividir")
escreval(".........................................")
escreval("")
escreval("Digita a letra que corresponde uma operração")
leia(opera)
5
ESCOLHA MÚLTIPLA: ESCOLHA CASO
Escolha múltipla ou apenas escolha caso é uma estrutura de controlo que permite, com
base de numa variável de controlo ou selector permite optar entre várias opções que uma
variável pode dispor.
Escolha <variável>
Caso <Valor 1>: <Instrução 1>
Caso <Valor 2>: <Instrução 2>
Caso <Valor 3>: <Instrução 3>
.
.
.
Caso <Valor n>: <Instrução n>
outrocaso: <Instrução>]
FimEscolha.
O fluxograma
Os termos <Valor 1>, <Valor 2>, <Valor n>, indicam valores possíveis que a variável de
controlo poderá assumir. Estes valores podem ser indicados de diversas maneiras
⎯ Valores isolados - exemplo 1,2,3 ou ‘a’,’b’,’c’, etc
⎯ Conjunto de valores neste caso os conjuntos de valores podem ser indicados:
o Por enumeração, ou seja, os vários elementos, separados por virgulas
exemplo 1,2,3; 4,5; 6,7,8,9; etc
o Por indicação de subconjunto de valores consecutivos - exemplo: 1..2 ou
‘A’..’F’ etc
Quando de indica <Instrução 1>, <Instrução 2>, etc., pode tratar-se de uma só instrução
ou de uma instrução composta, portanto um conjunto de instruções a realizar.
6
EXEMPLO
Exercício 20
Construa um algoritmo que caracteriza algumas letras do alfabeto usando a
estrutura condicional “Se” e a estrutura “Caso”, com a seguinte caracterização:
⎯ Primeiras letras: ‘a’, ‘b’
⎯ Alfabeto inglês: ‘k’, ‘w’, ‘y’
⎯ Última letra: ‘z’
⎯ Outras letras do alfabeto: restantes letrasAlgoritmo "Seleccao"
Algoritmo "Seleccao"
Var
LETRA: Caracter
Inicio
Escreval("Digita uma letra do alphabeto Português ")
Leia (LETRA)
Escolha LETRA
Caso "a","b"
Escreval("Primeiras letras")
Caso "k", "w", "y"
Escreval("Alfabeto inglês")
Caso "z"
Escreval("Última letra")
Outrocaso
Escreval("Outras letras do alfabeto Português")
Fimescolha
Fimalgoritmo
7
Exercício 21- Elabora um algoritmo que leia 2 valores e calcule o resultado da
operação realizada tendo a operação escolhida identificando a partir de código digitado
pelo usuário
Adição – 1
Subtrair –2
Multiplicar–3
Dividir–4
algoritmo "CASO2"
var a, b: real
operacao: inteiro
inicio
// Seção de Comandos
escreval("digita 2 numeros")
leia(a, b)
escreval("")
escreval(".........................................")
escreval("MENU - OPERAÇÕES")
escreval("1 - Adicionar")
escreval("2 - Subtrair")
escreval("3 - Multiplicar")
escreval("4 - Dividir")
escreval(".........................................")
escreval("")
escreval("Digita a letra que corresponde uma operração")
leia(operacao)
Escolha operacao
caso 1
escreval("a soma=", a+b)
caso 2
escreval("a diferença=",a-b)
caso 3
escreval("o produto=",a*b)
caso 4
escreval("o quaciente=",a/b)
outrocaso
escreval("caso não especifido")
fimescolha
Fimalgoritmo
8
Exercício 22
Elabora um algoritmo que leia o preço normal de um produto calcule o preço a pagar
pelo usuário tendo em conta a forma de pagamento identificando a partir de código
digitado pelo usuário
• Pagamento cash (dinheiro), recebe 10% de desconto
• Pagamento com cartão de crédito, recebe 5% de desconto
• Pagamento em duas (2) prestações, preço normal sem juro
• Pagamento em três (3) prestações, preço norma mais 10% de juro
algoritmo "CASO3"
var
produto, decisao: caracter
preco:real
inicio
escreval("Digite o nome do produto")
leia(produto)
escreval("Qual é o preço do Produto?")
leia(preco)
escreval(" ")
escreval("===========================================")
escreval("MENU DE ESCOLHA")
escreval("1=Pagamento cash com desconto de 10%")
escreval("2=Pagamento com Multicaixa com desconto de 5%")
escreval("3=Pagamento em 2 prestações sem juro")
escreval("4=Pagamento em 3 prestações com juro de 10%")
escreval("===========================================")
escolha decisao
caso "1"
escreval(" O cliente deverá pagar",preco*0.90)
caso "2"
escreval(" O cliente deverá pagar",preco*0.95)
caso "3"
escreval(" O cliente deverá pagar",preco)
caso "4"
escreval(" O cliente deverá pagar",preco+preco*0.10)
fimescolha
fimalgoritmo
9
Exercício 23
Elabora um algoritmo que leia 2 valores e calcule o resultado da operação realizada
tendo a operação escolhida identificando a partir de código digitado pelo usuário
Adição – “A”
Subtrair – “S
Multiplicar “M”
Dividir 4 – “D”
Sugestão: A partir de um menu em que são apresentadas os tipos de Operação
aritmética, o utilizador escolherá a pretendida. De seguida, ser-lhe-ão pedidos o código
referentes a operação e produzir-se-á o cálculo do valor do resultado que será
algoritmo "CASO1"
var a, b, r:real
operacao: caracter
inicio
escreval("digite 2 valores")
leia(a, b)
escreval("..................................................")
escreval("MENU - escolhe uma operação")
escreval("A - ADICIONAR")
escreval("S - SUBTRAIR")
escreval("M - MULTIPLICAR")
escreval("D - DIVIDIR")
escreval("..................................................")
leia(operacao)
escolha operacao
caso "A", "a"
r:=a+b
escreval("soma=", a+b)
caso "S", "s"
r:=a-b
escreval("diferença=",a-b)
caso "M", "m"
r:=a*b
escreval("produto=",a*b)
caso "D", "d"
escreval("quociente=",a/b)
r:=a/b
outrocaso
escreval("não especificado")
fimescolha
fimalgoritmo
10
Exercício 24:
elabora um algoritmo o que classifica um estudante em função da nota obtida na
prova a classificação sera feita em função de seguintes intervalos
1. [0 ate 4] Mau;
2. [5 ate 9] Mediocre;
3. [10 ate 13] Suficiente;
4. [14 ate 17] Bom;
5. [18 ate 20] Muito Bom;
6. Se a nota é menor que 0 ou maior que 20 invalido.
Algoritmo "Classificacao"
Var
nota: real
n: inteiro
nivel: inteiro
Inicio
EscrevaL("escreva a Classificação de 0 a 20")
Leia(nota)
n:= Int(nota)
escolha n
caso 0 ate 4
EscrevaL("Mau")
caso 5 ate 9
Escreval("Mediocre")
caso 10 ate 13
Escreval("Suficiente")
caso 14 ate 17
ESCREVAL("Bom")
caso 18 ate 20
Escreval("Muito Bom")
outrocaso
EscrevaL("Invalido")
fimescolha
Fimalgoritmo
11
ESTRUTURAS DE REPETIÇÃO OU CICLOS
São utilizadas para que uma parte de seu programa possa ser repetida n vezes sem a
necessidade de reescrevê-lo. Essas estruturas também são conhecidas como Ciclos ou
LOOP (laços).
Estruturas de Repetição executar tarefas repetitivas, existe três (3) principais opções:
⎯ para <contagem>faca
fimpara
⎯ enquanto <clausula>faca
fimenquanto
Condições de Parada
Se uma estrutura de repetição serve para executar uma determinada tarefa várias
vezes, é necessário indicar quando as repetições devem parar:
Para…Faca é mais simples e adequada para uso nos casos de um número pré-
determinado de repetições, principalmente em intervalos numéricos, contadores e outros
do gênero;
Enquanto…Faca e Repita…ate são mais adequadas para repetir até que “algo”
aconteça, algo pode ser um comando do usuário ou até se obter uma informação ou
valor esperado;
Contagem:
É usada para, por exemplo:
⎯ contabilizar o número de execuções de uma repetição;
⎯ determinar o número de vezes que um particular valor (ou ação) ocorre em uma
determinada sequência;
entre outros;
–A variável associada geralmente inicia no valor zero (elemento neutro da soma);
–Sempre que conveniente, acrescenta-se 1 ao contador.
SOMAS OU PRODUTO ACUMULATIVAS
12
São frequentes em cálculos somatórias e produtórias ou consolidações de
resultados (totais, médias, ...);
Somatório:
⎯ Geralmente são inicializadas no valor zero (elemento neutro da soma);
⎯ Sempre que apropriado, soma-se outros valores à própria variável;
Produtório:
⎯ São inicializadas usualmente com o valor um (elemento neutro da multiplicação);
⎯ Sempre quando necessário, são atualizadas com o resultado do seu valor
corrente multiplicado por um novo termo.
PARA…FAZER
Esta estrutura de repetição é controlada por uma variável chamada variável de controlo
- que parte de um determinado valor e incrementa ou decrementa até um outro
determinado valor.
As expressões <valor inicial> e <valor final> podem ser valores numéricos directos,
valores de outras variáveis ou expressões, desde que esses valores sejam números
inteiros.
13
CONTAGEM
Exercício 27- Elabora um algoritmo que Exercício 28-: Faça um algoritmo para
faz a contagem Regressiva calculo dos múltiplos de um número.
algoritmo "Contagem Regressiva"
var Algoritmo "multiplicação"
min: inteiro // Contador de minutos
seg: inteiro // Contador de segundos Var numero, quantos, i, multiplo: inteiro
inicio Inicio
escreval("10:00") escreval("introduza o número para
Para min de 9 ate 0 passo - 1 faca cálculo dos multiplos")
Para seg de 59 ate 0 passo - 1 faca leia(numero)
Escreval(min, ":" ,seg) escreval(“quantos Múltiplos deseja
fimpara calcular?”)
fimpara leia(quantos)
fimalgoritmo para i<-1 ate quantos faca
escreval(n1,"x",i ,"=",n1*i)
fimpara
Fimalgoritmo
14
Exercício 29: Faça um algoritmo que Exercício 30: Faça um algoritmo que
calcula os múltiplos e somas de um calcula os divisores de um número.
número.
Algoritmo "Tabuadas" Algoritmo "Divisores"
Var
P, H, Tab, Num:Inteiro
Inicio
Escreval ("Tabuada de: ")
Leia (Tab)
Escreval ("Até que número: ")
Leia (Num)
Para P de 1 ate Num faca
Escreval (P, " x ", Tab, " = ", P*Tab)
Fimpara
Escreval("Tabuada de: ")
Leia (Tab)
Escreval ("Até que numero: ")
Leia (Num)
Para H de 5 ate Num faca
Escreval(H, " + ", Tab, " = ", H+Tab)
Fimpara
Fimalgoritmo
15
Exercício 31: Faça um algoritmo Exercício 32: Faça um algoritmo faz o
que faz o somatório de um número. somatório de um determinado número de
valores
algoritmo " ParaSoma2" Algoritmo "ParaSoma"
var n, i, soma:inteiro
Var soma, num: real
inicio i, n: inteiro
// Seção de Comandos
soma:=0 Inicio
escreval("digita um numero") escreva("Digite o número de elementos: ")
leia(n) leia(n)
para i:=0 ate 3 faca soma <-0
soma:=soma + n para i de 1 ate n faca
escreval("soma", soma) escreva("Digite um número: ")
escreval("....................................") leia(num)
fimpara soma <-soma + num
fimalgoritmo fimpara
escreval("Total dos ", n," elementos: ",
soma)
Fimalgoritmo
16
Exercício 33: Faça um algoritmo faz o Exercício 34-: Faça um algoritmo que
somatório de um determinado número de calcula os divisores de um número.
valores e calcula a medis
algoritmo "ParaSoma1" algoritmo "Potencia"
algoritmo "Potencia"
inicio
escreval("digita o valor do número para calcular o factorial")
leia(numero)
fact:=1
17
CICLO: ENQUENTO…FAZER
CONTAGEM
var var
contar:inteiro contador: inteiro
inicio inicio
contar <-1 contador <- 10
enquanto (contar <=10)faca Enquanto (contador >= 0) faca
escreval(contar) Escreval(contador)
contar<-contar+1 contador <- contador - 1
fimenquanto FimEnquanto
escreval("terminei de contar") Escreval("Terminou a Contagem
Fimalgoritmo Regressiva")
Fimalgoritmo
18
Exercício 37: Faça um algoritmo que Exercício 38: Faça um algoritmo que faz
calcula os múltiplos de um número. o somatório de um número
Algoritmo "EnquantoMultiplo"
algoritmo "RepitaSomar"
Var n, p, multiplo:inteiro var n, soma:inteiro
Inicio inicio
// Seção de Comandos // Seção de Comandos
soma:=0
Enquanto p<=4 faca escreval("numero")
escreval("n") leia(n)
leia(n) enquanto soma<=3 faca
multiplo:= n*p soma:=soma + n
escreval(n,"X",p,"=",multiplo) escreval("soma=", soma)
p:=p+1 escreval("....................................")
Fimenquanto fimenquanto
Fimalgoritmo fimalgoritmo
19
CICLO REPETIR…ATE
Como a condição de controlo de repetição só é avaliada no final do ciclo, a instrução ou
instruções será(ão) executada(s) sempre pelo menos uma vez.
Repetir
<Instrução>
até <Condição>
CONTAGEM
Exercício 39: Faça um algoritmo que faz Exercício 40: Faça um algoritmo que
a contagem progressiva ate 10 calcula os múltiplos de um número
inicio inicio
j<-1 // Seção de Comandos
repita escreval("informe o numero da
escreval(j) tabuada")
j<-j+1 leia(x)
ate j>10 y<-1
// Seção de Comandos repita
Fimalgoritmo escreval(x,"x",y,"=",y*x)
y<-(y+1)
ate (y>12)
fimalgoritmo
20
Exercício 41- construção de algoritmo em Exercício 42- construção de algoritmo em
pseudocódigo que calcula a área de um pseudocódigo de escolha múltiplas a
retângulo repetidamente ate que se digita partir de um menu ate que se digita uma
uma condição de paragem condição de paragem
var var
comprimento, largura, area:real opcao: inteiro
resp:caracter
inicio
inicio repita
repita escreval("1 -Dizer olá!")
escreval("deseja calcular") escreval("2 –Dizer oi! ")
leia(resp) escreval("0 -Sair do programa")
se resp="S" entao leia(opcao)
escreval("Digitar o comprimento e a se(opcao= 1) entao
largura") escreval("Olá!")
leia(comprimento, largura) fimse
area<-comprimento*largura se (opcao= 2) entao
escreval("A area do rectangulo é:",area) escreval("Oi!")
escreval(":::::::::::::::::::::::::::::::::::::::::::::::") fimse
fimse ate(opcao= 0)
ate resp="N" fimalgoritmo
fimalgoritmo
21
SUBALGORITMOS OU MODULARIZAÇÃO.
A modularização nada mais é que separar em partes um determinado algoritmo. É comum,
em programação, decompor a lógica de programas complexos em programas menores e,
depois, juntá-los para compor o programa final. Essa técnica de programação é denominada
programação modular.
PROCEDIMENTO
Um procedimento é uma estrutura de programa autônoma que está incluída num algoritmo
ou programa. Nele podem ser colocados todos os elementos de um algoritmo ou programa,
como se fosse um algoritmo ou programa completo; isso é feito através de sua declaração.
Sua sintaxe
22
Algoritmo com Procedimento
Exercício 43: construção de Exercício 44 : construção de
algoritmo com procedimento de algoritmo com procedimento que
leitura calcula o dobro de um numero
Algoritmo "procedimento" algoritmo "procedimentodobro"
var
Procedimento Mensagem numero: inteiro
inicio
Escreval ("Técnicas de procedimento dobro(valor: inteiro)
programação - VisualG") var
fimprocedimento total: inteiro
inicio
Inicio total <- valor * 2
Mensagem escreva("o dobro e: ", total)
Fimalgoritmo fimprocedimento
inicio
escreva("digite um numero")
leia(numero)
dobro (numero)
fimalgoritmo
23
Exercício 45:
construção de algoritmo com 2 procedimentos um para leitura de dados e outro para
calcular o dobro de um número.
algoritmo "procedimentodobro"
var
numero: inteiro
procedimento leitura
var numero: inteiro
inicio
escreva("digite um numero")
leia(numero)
fimprocedimento
inicio
escreva("digite um numero")
leia(numero)
dobro (numero)
fimalgoritmo
24
FUNCÃO
Uma Função assim com um procedimento, é um bloco de um algoritmo ou programa, ao
qual são válidas todas as regras estudadas de programação. Sua diferença em relação a um
procedimento está no facto de retornar sempre um valor.
O valor de uma função é retornado no próprio nome da função. Quando se diz valor, devem
ser levados em conta os valores numéricos, lógicos ou literais.
Sua Sintaxe:
var <variaveis> ;
inicio
<instrucoes>;
Fimfuncao
Funcao
funcao funcao PROD(X,Y : real) : real funcao FSOMA(A, B:REAL): real
parouimpar(V:inteiro):tipo var total:real var TOTAL:REAL
inicio inicio
se (V%2=0) entao total:=X*Y inicio
retorne "par" retorne total TOTAL:=A+B
senao fimfuncao retorne TOTAL
retorne "impar" fimfuncao
fimse
fimfuncao
25
Algoritmo com função
Exercício 46: construção de Exercício 47: construção de Exercício 48: construção de
algoritmo leia um número e algoritmo leia 2 números e algoritmo leia 2 números e uma
uma função que retorna uma uma função que retorna o função que retorna a soma dos
mensagem se o número é par produto dos números números digitados.
ou ímpar digitados.
Algoritmo "parimpar" Algoritmo "funcao1" Algoritmo "funcao2"
26
Exercício 49- Procedimento e Função
Algoritmo que leia 2 notas obtidas por um aluno e no final calcula a media a partir do
procedimento para leitura de notas e a função que retorne a media.
Algoritmo "AlgRotinas"
//Procedimento
procedimento Introduz_dados
inicio
escreval("digita nota1")
leia(nota1)
escreval("digita nota2")
leia(nota2)
fimprocedimento
//Funcao
funcao R(n1, n2:real):real
Var
M:real
inicio
M:=(n1+n2)/2
retorne M
fimfuncao
Inicio
introduz_dados
media:=R(nota1,nota2)
escreva(“resultado´e.”, media)
Fimalgoritmo
27
ESTRUTURA DE DADOS OU DADOS ESTRUTURADOS
Os dados são elementos que operam num programa de computador, eles podem ser de
diferentes tipos: Dados simples e Dados estruturado
Dados simples: dados em que cada variável opera apenas com um determinado valor de
cada vez. (Inteiro, Lógico, Real, caracteres…).
Dados estruturado: Dados em que cada variável opara com um conjunto de valores, estes
dados podem ser arranjo (vectores, matrizes) e registros.
Observação: Arranjo é um tipo de dados estruturado que pode agrupar numa mesma variável
um conjunto finito de valores todos do mesmo tipo, existe Arranjo unidimensional chamada
VECTOR e arranjo multidimensional chamada de MATRIZ.
VECTOR
Um vector é um tipo estruturado que pode agrupar numa mesma variável um conjunto
finito de valores todos do mesmo tipo.
em que:
⎯ GASTOS_MES é o identificador ou nome atribuído à variável;
⎯ VECTOR indica que a variável é do tipo Vector;
⎯ [1..12] define o número de elementos da variável (12 elementos) e ao mesmo
tempo o intervalo dos seus índices, neste caso entre 1 e 12.
⎯ DE REAL indica qual o tipo de dados dos elementos do vector
28
Exercício 50: Escreva um algoritmo que Exercício 51: Escreva um algoritmo que
leia os elementos de um vector e ao final leia as notas obtidas pelos 2 estudantes
exiba o vector na 1ª e 2ª prova parcelar e ao final exiba;
a) A media dos estudantes.
algoritmo "Vector1" algoritmo "media do aluno"
inicio inicio
// Seção de Comandos escreval("===1ª PROVA PARCELAR==")
para i de 1 ate 5 faca Para contador de 1 ate 2 faca
escreval("digita elementos para o vector") escreval("digite a nota do",contador,"
leia(A[i]) ","Aluno")
fimpara leia(nota1[contador])
fimpara
escreval("====VECROR====") escreval("==2ª PROVA PARCELAR==")
para i de 1 ate 5 faca Para contador de 1 ate 2 faca
escreval("A[",i," ]", A[i]) escreval("digite a nota do",contador,"
fimpara ","Aluno")
fimalgoritmo leia(nota2[contador])
fimpara
Para contador de 1 ate 2 faca
media[contador]<-
(nota1[contador]+nota2[contador])/2
escreval("o",contador,"º","alunos obtive
seguinte media", media[contador] )
fimpara
fimalgoritmo
29
Exercício 52- Escreva um algoritmo que Exercício 53- Escreva um algoritmo que
leia os elementos de 2 vectores que são leia o número de pessoas possui 3
vector 1 e Vector 2 e ao final exiba o famílias e ao final faz a o censo das
vector 3 que corresponde ao produto do famílias que tens mais de 5 pessoas.
Vector1 e vector2
algoritmo "multilplicacaoVetores" algoritmo "VetorParaCenso"
30
MATRIZ
Uma matriz (Arranjo multidimensional) é um tipo estruturado que pode agrupar numa
mesma variável um conjunto finito de valores todos do mesmo tipo. No caso dos
vectores, temos apenas um agrupamento de elementos, cujos índices estão
compreendidos entre dois limites; nas matrizes temos dois (ou mais) elementos, cada
qual com o seu par de limites próprio.
Exercício 54- Escreva um algoritmo que Exercício 55- Escreva um algoritmo que
leia os números de uma matriz e ao final leia os números de uma matriz e ao final
exiba a matriz exiba a matriz.
algoritmo " MATRIZ2"
algoritmo "MATRIZ1" var numeros:vetor[1..3 ,1..2]de inteiro
var i,j:inteiro
matriz: vetor [1..3,1..3] de inteiro
linha, coluna:inteiro inicio
// Seção de Comandos
inicio para i<-1 ate 3 faca
// Seção de Comandos para j<-1 ate 2 faca
Escreval("Digita os elementos da Matriz") escreval("digite um valor para a posição
para linha de 1 ate 3 faca [",i,j," ]")
para coluna de 1 ate 3 faca leia( numeros [i,j])
leia(matriz[linha, coluna]) fimpara
fimpara fimpara
fimpara
Escreval("=====MATRIZ======")
Escreval("=====MATRIZ=======") para i<-1 ate 3 faca
para linha de 1 ate 3 faca para j<-1 ate 2 faca
para coluna de 1 ate 3 faca escreva(numeros[i,j]:4)
escreva(matriz [linha, coluna]:4) fimpara
fimpara escreval("")
escreval("") fimpara
fimpara fimalgoritmo
fimalgoritmo
31
Exercício 56- Escreva um algoritmo que leia os números de uma matriz e ao final
exiba a matriz.
inicio
escreval("digite um valor para a posicao[1,1]")
leia( numeros [1,1])
escreval("digite um valor para a posicao[1,2]")
leia(numeros[1,2])
escreval("digite um valor para a posicao[2,1]")
leia(numeros[2,1])
escreval("digite um valor para a posicao[2,2]")
leia(numeros[2,2])
escreval("digite um valor para a posicao[3,1]")
leia(numeros[3,1])
escreval("digite um valor para a posicao[3,2]")
leia(numeros[3,2])
Escreval("=====MATRIZ======")
para i<-1 ate 3 faca
para j<-1 ate 2 faca
escreva(numeros[i,j]:4)
fimpara
escreval("")
fimpara
fimalgoritmo
32
Exercício 57- Escreva um algoritmo que Exercício 58- Escreva um algoritmo que
leia os números inteiros de uma matriz e leia os elementos da Matriz A ao final
ao final exiba: exiba:
a) a matriz a) a Matriz. A
b) a soma dos números da matriz. b) a Matriz B que corresponde a
transposição da Matriz A.
algoritmo " SomaMatriz" algoritmo " MATRIZ3"
var var
matriz: vetor [1..3,1..3] de inteiro matA: vetor[1..2, 1..3] de real
linha, coluna, soma: inteiro matB: vetor[1..3, 1..2] de real
inicio i,j: inteiro
escrevaL("Digita os elementos da
MatrizA-----") inicio
para linha de 1 ate 3 faca // Seção de Comandos
para coluna de 1 ate 3 faca para i<-1 ate 2 faca
leia(matriz[linha, coluna]) para j<-1 ate 3 faca
fimpara escreval("digite um valor para a posição
fimpara [",i,j," ]")
leia(matA[i,j])
soma<-0 fimpara
para linha de 1 ate 3 faca fimpara
para coluna de 1 ate 3 faca escrevaL("--------------MatrizA----------")
escreva (matriz [linha, coluna]:4) para i de 1 ate 2 faca
soma<- soma + matriz [linha, coluna] para j de 1 ate 3 faca
fimpara escreva(matA[i,j]:4)
escreval("") fimpara
fimpara escrevaL("")
escreval("A soma é,", soma) fimpara
fimalgoritmo
escrevaL("-------------------------------")
escrevaL("-Transposta da MatrizA =
MatrizB----")
para j de 1 ate 3 faca
para i de 1 ate 2 faca
escreva(matB[j,i], " ")
fimpara
escrevaL(" ")
fimpara
escrevaL("----------------------------------")
fimalgoritmo
33
REGISTOS
Os registos são um outro tipo de dados estruturados que permitem agrupar elementos
de vários tipos diferentes, sob a forma de campos.
Exemplo: Registo sobre dados de um estudante definido pelo programador que inclui os
campos: Nome, Morada, Idade e Telefone.
Tipo
DADOS_PESSOA=Registro
NOME: Caracteres
MORADA: Caracteres
IDADE: Inteiro
TELEFONE: Caracteres
FimRegistro
34
Exercício 59- Elabora um algoritmo que permite registar sobre dados de um livro definido
pelo programador que inclui os campos: Nome, páginas e Preço.
Algoritmo "Livro" Algoritmo "Livro"
Tipo Tipo
livro=registro livro=registro
nome: caractere nome: caractere
pagina: inteiro pagina: inteiro
preco: real preco: real
fimregistro fimregistro
Var Var
livro: vetor[1..3] de livro livro: vetor[1..3] de livro
i:inteiro i:inteiro
Inicio Inicio
para i de 1 ate 3 faca para i de 1 ate 3 faca
escreval("digite o nome do livro") escreval("digite o nome do livro")
leia(livro[i].nome) leia(livro.nome[i])
escreval("digite a pagina") escreval("digite a pagina")
leia(livro[i].pagina) leia(livro.pagina[i])
escreval("digite o preco do livro") escreval("digite o preco do livro")
leia(livro[i].preco) leia(livro.preco[i])
fimpara fimpara
escreval(".............REGISTOS....................") escreval("......REGISTOS ................")
para i de 1 ate 3 faca para i de 1 ate 3 faca
escreval("o nome do livro é: ", livro[i].nome) escreval("o nome do livro é: ", livro.nome[i])
escreval("a pagina é:",livro[i].pagina) escreval("a pagina é:",livro.pagina[i])
escreval("o preco do livro é: ",livro[i].preco) escreval("o preco do livro é: ",livro.preco[i])
escreval(".....................................") escreval(".....................................")
Fimpara Fimpara
Fimalgoritmo Fimalgoritmo
35