Você está na página 1de 39

Universidade Eduardo Mondlane

Faculdade de Engenharia
Departamento De Engenharia Mecânica

Exercícios resolvidos de informática


Lógica de Programação

Nhaca, Ozorio de Brito Luís

Maputo, 22 de Novembro de 2019


Parte 1
Variáveis simples

1. Impressão de Dados de um estudante

VisualG
Algoritmo "Dados_Estudante"
//1. Impressão de Dados de um estudante
Var
Nome, curso: caracter
idade, nivel: Inteiro
Inicio
Escreva("Nome do Estudante: ")
leia(nome)
Escreva("Idade do estudante: ")
leia(idade)
Escreva("Nivel academico: ")
leia(nivel)
Escreva("Curso: ")
leia(curso)
Escreval("")
Escreval("============================")
Escreval("Nome: ", nome)
Escreval("Idade: ", idade, " Anos")
Escreval("Nivel Academico: ", nivel, "o Ano")
Escreval("Curso: Engenharia ", curso)
Fimalgoritmo
2. Impressão da Soma de dois números
VisualG
Algoritmo "Soma_Numeros"
//2. Impressão da Soma de dois números A e B;
Var
a, b, c: real
Inicio
Escreva("Valor de a: ")
leia(a)
Escreva("Valor de b: ")
leia(b)
c <- a+b
Escreval("===============")
Escreval(a," + ", b, " = ", c)
Fimalgoritmo

3. Impressão da Média de dois números


VisualG
Algoritmo "Media"
//3. Impressão da Media de dois números A e B.
a, b, c: Real
Inicio
Escreva("Valor de a: ")
leia(a)
Escreva("Valor de b: ")
leia(b)
Escreval("===============")
c <- (a+b)/2
Escreval("Media: ", c)
Fimalgoritmo

4. Impressão da solução duma equação linear.


VisualG
Algoritmo "Equacao_Linear"
//4. Impressão da solução duma equação linear.
Var
a, b: Inteiro
x: real
Inicio
Escreva("Valor de a: ")
leia(a)
Escreva("Valor de b: ")
leia(b)
Escreval("")
Escreval("========================")
se a=0 entao
Escreval("A equacao nao tem solucao em IR")
senao
x<-(-b/a)
Escreval( a,"x + ", b, " = ",0)
Escreval("<=>",a,"x = ",-b)
Escreval("<=> x = ",x:2:2 )
FimSe
Fimalgoritmo
5. Ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo.
VisualG
Algoritmo "Area_TRiangulo"
//1. Ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo.
Var
b, h: inteiro
a: real
Inicio
Escreva("Base do triangulo: ")
leia(b)
Escreva("Altura do Triangulo: ")
leia(h)
Escreval("")
Escreval("======================")
a<- (b*h)/2
Escreval("Area do triangulo: ", a)
Fimalgoritmo

6. Dada a Equação AX2 + BX + C=0, imprimir X1 e X2 (Observar todas as condições).


VisualG
Algoritmo "Equacao_Quad"
//2. Dada a Equação AX2 + BX + C=0, imprimir X1 e X2 (Observar todas as condições).
Var
a, b, c: inteiro
x1, x2, del: real

Inicio
Escreva("Valor de a: ")
leia(a)
Escreva("Valor de b: ")
leia(b)
Escreva("Valor de c: ")
leia(c)
Escreval("")
Escreval("===========================================")
Escreval(" Equacao ")
Escreval("")
//Representacao da Equacao
Escreval(" ",a,"x^2 + ",b,"x + ",c," = ",0)
Escreval("")
//Calculo do delta
del <- b^2 - 4*a*c
x1 <- (-b + (del)^(1/2))/(2*a)
x2 <- (-b - (del)^(1/2))/(2*a)
//Estrutura de decisao

Se del<0 entao
Escreval("A Equacao nao tem solucao em IR")
Senao
Escreval("===========================================")
Escreval(" Delta ")
Escreval("")
Escreval(" Delta = ",b,"^2 - 4.",a,".",c)
Escreval(" Delta = ", del)
Escreval("")
Escreval("===========================================")
Escreval(" Raizes ")
Escreval("")
Se del>0 entao
Escreval(" X' = ", x1)
Escreval(" X'' = ", x2)
Senao
Escreval(" X' = X'' = ", x1)
FimSe
FimSe

Fimalgoritmo
7. Receba 2 números e mostre o maior deles.
Algoritmo "Comparacao"
//3. Receba 2 números e mostre o maior deles.
Var
n1, n2: Real
Inicio
Escreva("Introduz o primeiro Numero: ")
leia(n1)
Escreva("Introduz o segundo Numero: ")
leia(n2)
Escreval("")
Escreval("=========================================")
Se n1>n2 entao
Escreval("O numero ", n1, "e maior que ", n2)
Senao
Se n1<n2 entao
Escreval("O numero ", n2, " e maior que ", n1)
Senao
Escreval("Os Numeros Sao iguais.")
FimSe
FimSe
Fimalgoritmo

8. Receba 3 números e imprime-nos em ordem crescente.


Algoritmo "Ordem"
//4. Receba 3 números e imprime-nos em ordem crescente.
Var
n1, n2, n3: real
Inicio
Escreva("Introduz o primeiro Numero: ")
leia(n1)
Escreva("Introduz o segundo Numero: ")
leia(n2)
Escreva("Introduz o terceiro Numero: ")
leia(n3)
Escreval("")
Escreval("================================")

Se (n1>n2) e (n1>n3) e (n2>n3) entao


Escreval("Ordem Crescente: ", n1,">",n2,">",n3)
Senao
Se (n1>n2) e (n1>n3) e (n3>n2) entao
Escreval("Ordem Crescente: ", n1,">",n3,">",n2)
Senao
Se (n1<n2) e (n1>n3) e (n3>n2) entao
Escreval("Ordem Crescente: ", n2,">",n3,">",n1)
Senao
Se (n3>n2) e (n1<n2) e (n3>n2) entao
Escreval("Ordem Crescente: ", n3,">",n2,">",n1)
Senao
Se (n1<n2) e (n1>n3) e (n3<n2) entao
Escreval("Ordem Crescente: ", n2,">",n1,">",n3)
Senao
Escreval("Ordem Crescente: ", n3,">",n1,">",n2)
FimSe
FimSe
FimSe
FimSe
FimSe
Fimalgoritmo

9. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos
impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de
fábrica). Leia o nome do automóvel e o preço de fábrica e imprima o nome do automóvel
e o preço final.

Algoritmo "Venda_Automovel"
//5. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos
//impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de
//fábrica). Leia o nome do automóvel e o preço de fábrica e imprima o nome do automóvel
//e o preço final
Var
pf, pt: real
nome: caracter
Inicio
Escreva("Nome do Automovel: ")
leia(nome)
Escreva("Preco da Fabrica: ")
leia(pf)
pt <- pf + 0.45*pf + 0.28*pf
Escreval("")
Escreval("==========================")
Escreval("")
Escreval("Nome do Automovel: ", nome)
Escreval("Preco final: ", pt, "MT")
Fimalgoritmo

10. Leia 3 números inteiros e imprima o menor deles. (Opcao 1)


Algoritmo "Menor_NUmero"
//6. Leia 3 números inteiros e imprima o menor deles.
Var
n1, n2, n3: real
Inicio
Escreva("Introduz o primeiro Numero: ")
leia(n1)
Escreva("Introduz o segundo Numero: ")
leia(n2)
Escreva("Introduz o terceiro Numero: ")
leia(n3)
Escreval("")
Se (n1<n2) e (n1<n3) entao
Escreva("O menor numero e: ", n1)
Senao
Se (n2<n1) e (n2<n3) entao
Escreva("O menor numero e: ", n2)
Senao
Escreva("O menor numero e: ", n3)
FimSe
FimSe
Fimalgoritmo
------------------------------------------------------------------------------------------------
Opcao 2.
Algoritmo "Menor_Numero"
//6. Leia 3 números inteiros e imprima o menor deles.
Var
c, i, n: inteiro

Inicio
c<-1000
Para i de 1 ate 3 faca
Escreva(i,"o Numero: ")
leia(n)
Se n<c entao
c<-n
FimSe
FimPara
Escreval("O menor numero digitado e: ", c)
Fimalgoritmo

------------------------------------------------------------------------------------------------
11. Receba três notas de um aluno, calcule e mostre a média aritmética de Frequência
(MF) e o resultado (Excluido, Admitido, Dispensado), conforme os critérios:
(a) MF< 10: Excluido
(b) 10<=MF<14 : Admitido
(c) MF>=14: Dispensado
Algoritmo "Media"
//7. Receba três notas de um aluno, calcule e mostre a média aritmética de Frequência (MF)
e
//o resultado (Excluido, Admitido, Dispensado), conforme os critérios:
//(a) MF< 10: Excluido
//(b) 10<=MF<14 : Admitido
Var
i: inteiro
n, MF, c: real
Inicio
Para i de 1 ate 3 faca
Escreva("Nota ",i,": ")
leia(n)
c<-c+n
FimPara
Escreval("")
Escreval("=================")
MF<-(c)/3
Escreval("Media: ", MF)
Se MF<10 entao
Escreval("REPROVADO")
Senao
Se (MF>=14) e (MF<=20) entao
Escreval("DISPENSADO")
Senao
Escreval("ADMITIDO PARA O EXAME")
FimSe
FimSe
Fimalgoritmo

12. Imprime os primeiros 100 números naturais.


Algoritmo "Primeiros_Cem"
//8. Imprime os primeiros 100 números naturais.
Var
i: Inteiro
Inicio
Para i de 1 ate 100 faca
Escreva(i," ")
FimPara
Fimalgoritmo

13. Verifica se um dado número é par ou impar.


Algoritmo "Par_Impar"
//9. Verifica se um dado número é par ou impar.
Var
n: inteiro
Inicio
Escreva("Introduz um Numero: ")
leia(n)
Se n%2=0 entao
Escreva("O numero e par")
Senao
Escreva("O Numero e Impar")
FimSe
Fimalgoritmo
14. Imprime a soma dos primeiros 20 números naturais.
Algoritmo "Soma_Vinte"
//10. Imprime a soma dos primeiros 20 números naturais.
Var
s, i: inteiro
inicio
s<-0
Para i de 1 ate 20 faca
s<-s+i
FimPara
Escreva("Soma: ", s)
Fimalgoritmo

15. Imprime os primeiros 20 números primos.


Algoritmo "Primos_Numeros"
//11. Imprime os primeiros 20 números primos.
Var
i, j, C, k : inteiro
Inicio
Para i de 1 ate 72 faca
C<-0
Para j de 1 ate i faca
Se i%j = 0 entao
C<-C+1
Senao
FimSe
FimPara
Se C=2 entao
k<-k+1
Escreval(k,"-",i," E numero Primo")
FimSe
FimPara
Fimalgoritmo

16. Imprime os primeiros 100 termos duma Progressão Aritmética cujo primeiro termo
a1=3 e a razão d=2.
Algoritmo "Primeiros_PA"
//12. Imprime os primeiros 100 termos duma Progressão Aritmética
// cujo primeiro termo a1=3
//e a razão d=2.
Var
i, n: inteiro
Inicio
n<-3
Para i de 1 ate 100 faca
Escreva(n," ")
n<-n+2
FimPara
Fimalgoritmo

17. Imprime os primeiros 100 termos da série de Fibonacci (1,1,2,3,5, … an-1 + an-2)

Algoritmo "Fibonacci"
//13. Imprime os primeiros 100 termos da série de
//Fibonacci (1,1,2,3,5, … an-1 + an-2)
Var
F1, F2,Fn, i: inteiro
Inicio
F1<-1
Escreva(F1," ")
F2<-1
Escreva(F2," ")
Para i de 1 ate 88 faca
Fn<-F1+F2
Escreva(Fn," ")
F1<-F2
F2<-Fn
FimPara
Fimalgoritmo
Parte 2
Variáveis compostas unidimensionais(Vectores) & Variáveis compostas
bidimensionais (Matrizes) & Subprogramas(Rotinas)

1. EXERCICIO 1;
Algoritmo "posicao_10"
//EXERCICIO 1;
Var
A: vetor [1..10] de inteiro
i: inteiro
Inicio
Para i de 1 ate 10 faca
Escreva("A[",i,"]: ")
leia(A[i])
FimPara
Escreval("")
Para i de 1 ate 10 faca
Se A[i]=10 Entao
Escreval (i,"o -Posicao")
FimSe
FimPara
Fimalgoritmo

2. EXERCICIO 2
algoritmo "SUBSTITUICAO_1"
//EXERCICIO 2
var
X: vetor [1..10] de inteiro
i: inteiro
inicio
Para i de 1 ate 10 faca
Escreva("X[",i,"]: ")
leia(X[i])
FimPara
Escreval("")
Para i de 1 ate 10 faca
Se X[i]=0 entao
X[i]<-1
FimSe
FimPara
Para i de 1 ate 10 faca
Escreva(X[i]," ")
FimPara
fimalgoritmo

3. ORDEM CONTRARIA
algoritmo "Ordem_contraria"
//ORDEM CONTRARIA
var
A: vetor [1..10] de inteiro
i: inteiro
inicio
Para i de 1 ate 10 faca
Escreva("A[",i,"]: ")
leia(A[i])
FimPara
Escreval("")

//Opcional
i<-10
// Enquanto i>=1 faca
// Escreva(A[i]," ")
//i<-i-1
// FimEnquanto
Para i de 10 ate 1 passo -1 faca
Escreva(A[i]," ")
FimPara
Fimalgoritmo

4. MENOR NUMERO
algoritmo "menor_numero"
//MENOR NUMERO
var
N: vetor [1..20] de inteiro
i,c, k: inteiro
inicio
c<-10
Para i de 1 ate 20 Faca
Escreva("N[",i,"]: ")
leia(N[i])
Se N[i]<c Entao
c<-N[i]
k<-i
FimSe
FimPara
Escreval("O menor elemento de N e: ", c," E a sua posica e: ", k)
Fimalgoritmo
5. Escrever um algoritmo que lê um vetor N(20) e o escreve. Troque, a seguir, o 1*
elemento com o último, o 2* com o penúltimo, etc até o 10* com o 11* e escreva o
vetor N assim modificado.

algoritmo "TROCA_NUMEROS"
//5. Escrever um algoritmo que lê um vetor N(20) e o escreve. Troque, a seguir,
// o 1* elemento
//com o último, o 2* com o penúltimo, etc até o 10* com o 11* e escreva
// o vetor N assim
//modificado.
var
N: vetor [1..20] de inteiro
i: inteiro
inicio
Para i de 1 ate 20 Faca
Escreva("N[",i,"]: ")
leia(N[i])
FimPara
Para i de 1 ate 20 faca
Escreva(N[i]," ")
FimPara
Escreval("")
EScreval("")
Para i de 20 ate 11 passo -1 faca
N[21-i]<-N[i]
Escreva(N[21-i]," ")
FimPara
Fimalgoritmo
6. Escreva um algoritmo que gera os 10 primeiros números primos acima de 100 e os
armazena em um vetor X(10) escrevendo, no final, o vetor X.
algoritmo "Dez_primos"
//6. Escreva um algoritmo que gera os 10 primeiros números primos acima
//de 100 e os armazena em um vetor X(10) escrevendo, no final, o vetor X.
Var
X: vetor [1..10] de inteiro
i, c, j, n: inteiro
inicio
c<-0
i<-100
n<-10
Enquanto (n<=10) Faca
c<-0
Para j de 1 ate i faca
Se i%j=0 entao
c<-c+1
FimSe
FimPara
Se c=2 entao
X[n]<-i
Escreva(X[n]," ")
n<-n-1
Se n=0 entao
Interrompa
FimSe
FimSe
i<-i+1
FimEnquanto
Fimalgoritmo
7.
8. . Escrever um algoritmo para armazenar valores inteiros em uma matriz (5,6). A
seguir, calcular a média dos valores pares contidos na matriz e escrever seu
conteúdo.
algoritmo "Soma_Pares"
//8. Escrever um algoritmo para armazenar valores inteiros em uma matriz (5,6). A seguir,
//calcular a média dos valores pares contidos na matriz e escrever seu conteúdo.
var
M: vetor[1..5, 1..6] de inteiro
i,j,k,c: inteiro
me: real
inicio
k<-0
c<-0
Para i de 1 ate 5 faca
Para j de 1 ate 6 faca
Escreva("M[",i,",",j,"]: ")
leia(M[i,j])
FimPara
FimPara
Escreval("")
Para i de 1 ate 5 faca
Para j de 1 ate 6 faca
Se M[i,j]%2=0 entao
//NAo necessario
Escreva(M[i,j])
//---------------
c<-c+M[i,j]
k<-k+1
FimSe
FimPara
Escreval("")
FimPara

me<-c/k
Escreval("Media dos Numero pares: ", me)
Escreval("")
Para i de 1 ate 5 faca
Para j de 1 ate 6 faca
Escreva(M[i,j])
FimPara
Escreval("")
FimPara
fimalgoritmo

9. Escrever um algoritmo para ler uma matriz (7,4) contendo valores inteiros (supor
que os valores são distintos). Escrever o menor valor da matriz e sua posição.
algoritmo "Menor_Numero"
//9. Escrever um algoritmo para ler uma matriz (7,4) contendo valores inteiros (supor que os
//valores são distintos). Escrever o menor valor da matriz e sua posição.
var
M: vetor [1..7, 1..4] de inteiro
i,j,ii,jj,c: inteiro
inicio
c<-0
para i de 1 ate 7 faca
Para j de 1 ate 4 faca
Escreva("M[",i,",",j,"]: ")
leia(M[i,j])
Se M[i,j]>c entao
c<-M[i,j]
FimSe
FimPara
FimPara
Escreval("")
para i de 1 ate 7 faca
Para j de 1 ate 4 faca
Se M[i,j]<c entao
c<-M[i,j]
ii<-i
jj<-j
FimSe
FimPara
FimPara
Escreva("O menor numero e: ", c, " e esta na posicao M[",ii,",",jj,"]")
Fimalgoritmo

10. Escreva um algoritmo que lê uma matriz M(5,5) e calcula as somas:


a) da linha 4 de M.
b) da coluna 2 de M.
c) da diagonal principal.
d) da diagonal secundária.
e) de todos os elementos da matriz.
f) Escreva estas somas e a matriz.
algoritmo "Somas_"
//10. Escreva um algoritmo que lê uma matriz M(5,5) e calcula as somas:
//a) da linha 4 de M.
//b) da coluna 2 de M.
//c) da diagonal principal.
//d) da diagonal secundária.
//e) de todos os elementos da matriz.
//f) Escreva estas somas e a matriz.
var
M: vetor [1..5, 1..5] de inteiro
i,j,sl, sc, sdp, sm: inteiro
inicio
sl<-0
sdp<-0
sc<-0
sm<-0
Para i de 1 ate 5 faca
Para j de 1 ate 5 faca
Escreva("M[",i,",",j,"]: ")
leia(M[i,j])
FimPara
FimPara

LimpaTela

Para i de 1 ate 5 Faca


Para j de 1 ate 5 Faca

//Aline a)
Se i=5 entao
sl<-sl+M[i,j]
FimSe

//Aline b)
Se j=2 entao
sc<-sc+M[i,j]
FimSe
//Alinea c)
Se i=j entao
sdp<-sdp+M[i,j]
FimSe
//Alinea d)
//Facam......

//Alinea e)

sm<-sm+M[i,j]
FimPara
FimPara

//Alinea f)
Para i de 1 ate 5 faca
Para j de 1 ate 5 faca
Escreva(M[i,j])
FimPara
Escreval("")
FimPara
Escreval("")
Escreval("Soma da Linha: ", sl)
Escreval("Soma da coluna: ", sc)
Escreval("Soma da diagonal principal: ", sdp)
Escreval("Soma da Matriz: ", sm)
Fimalgoritmo
11. Escrever um algoritmo que lê uma matriz M(5,5) e cria 2 vetores SL(5), SC(5) que
contenham respectivamente as somas dos valores nas linhas e nas colunas de M.
Escrever a matriz e os vetores criados.
algoritmo "Soma_LInhas_Colunas"
//11. Escrever um algoritmo que lê uma matriz M(5,5) e cria 2 vetores SL(5),
// SC(5) que
//contenham respectivamente as somas dos valores nas linhas
//e nas colunas de M. Escrever
//a matriz e os vetores criados.
var
M: vetor [1..5, 1..5] de inteiro
Vl: vetor [1..5] de inteiro
Vc: vetor [1..5] de inteiro
i, j, Sl, Sc: inteiro
inicio
Para i de 1 ate 5 faca
Para j de 1 ate 5 faca
Escreva("M[",i,",",j,"]: ")
leia(M[i,j])
FimPara
FimPara
LimpaTela
EScreval("")
Para i de 1 ate 5 faca
Para j de 1 ate 5 faca
Escreva(M[i,j])
FimPara
Escreval("")
FimPara
EScreval("")
Para i de 1 ate 5 faca
Sl<-0
Para j de 1 ate 5 faca
Sl<-Sl+M[i,j]
Vc[j]<-Vc[j]+M[i,j]
FimPara
Vl[i]<-Sl
FimPara
Escreva("SL[i]=[")
Para i de 1 ate 5 faca
Escreva(Vl[i]," ")
FimPara
Escreva("]")
Escreval("")
Escreva("SC[j]=[")
Para j de 1 ate 5 faca
Escreva(Vc[j]," ")
FimPara
Escreva("]")
Fimalgoritmo

12. Escrever um algoritmo que lê duas matrizes N1(4,6) e N2(4,6) e cria:


a) Uma matriz M1 que seja a soma de N1 e N2
b) Uma matriz M2 que seja a diferença de N1 com N2
Escrever as matrizes lidas e calculadas.
algoritmo "Matrizes_Soma_Diferenca"
//12. Escrever um algoritmo que lê duas matrizes N1(4,6) e N2(4,6) e cria:
//a) Uma matriz M1 que seja a soma de N1 e N2
//b) Uma matriz M2 que seja a diferença de N1 com N2
//Escrever as matrizes lidas e calculadas.
var
N1: vetor [1..4, 1..6] de inteiro
N2: vetor [1..4, 1..6] de inteiro
M1: vetor [1..4, 1..6] de inteiro
M2: vetor [1..4, 1..6] de inteiro
i,j: inteiro
inicio
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva("N1[",i,",",j,"]: ")
leia(N1[i,j])
FimPara
FimPara

LimpaTela
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva("N2[",i,",",j,"]: ")
leia(N2[i,j])
FimPara
FimPara
LimpaTela
//Alinea a)
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
M1[i,j]<-N1[i,j]+N2[i,j]
FimPara
FimPara

//Alinea b)
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
M2[i,j]<-N1[i,j]-N2[i,j]
FimPara
FimPara
Escreval("Matriz N1")
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva(N1[i,j])
FimPara
Escreval("")
FimPara
Escreval("")
Escreval("Matriz N2")
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva(N2[i,j])
FimPara
Escreval("")
FimPara
Escreval("")
Escreval("Matriz M1")
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva(M1[i,j])
FimPara
Escreval("")
FimPara

Escreval("")
Escreval("Matriz M2")
Para i de 1 ate 4 faca
Para j de 1 ate 6 faca
Escreva(M2[i,j])
FimPara
Escreval("")
FimPara
Fimalgoritmo

13. Escrever um algoritmo que lê uma matriz M(6,6) e calcula as somas das partes
sombreadas. Escrever a matriz M e as somas calculadas.
algoritmo "Partes_Sombreadas"
//13. Escrever um algoritmo que lê uma matriz M(6,6) e calcula as somas das
// partes sombreadas.
//Escrever a matriz M e as somas calculadas.
var
M: vetor [1..6, 1..6] de inteiro
i,j, Sa, Sb, Sc, Sd, See, Sf, Sh, Sg: inteiro
inicio

Para i de 1 ate 6 faca


Para j de 1 ate 6 faca
Escreva("M[",i,",",j,"]: ")
leia(M[i,j])
FimPara
FimPara
LimPatela
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
EScreva(M[i,j])
FimPara
Escreval("")
FimPara
Escreval("")
Escreval("")
//Alinea a)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se (i<j) entao
Escreva(M[i,j])
Sa<-Sa+M[i,j]
FimSe
FimPara
Escreval("")
FimPara

Escreval("Soma A: ", Sa)

Escreval("")
Escreval("")
//Alinea b)
// Para i de 1 ate 6 faca
//Para j de 1 ate 6 faca
//Se ((i<j ) ou (i>j) ou (i=j)) e (i+j<7)entao
//Escreva(M[i,j])
//Sb<-Sb+M[i,j]
//FimSe
//FimPara
// Escreval("")
//FimPara
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se i>j entao
Escreva(M[i,j])
Sb<-Sb+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma B: ", Sb)
Escreval("")
Escreval("")
//Alinea c)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se (i<j) e (i+j<7) entao
Escreva(M[i,j])
Sc<-Sc+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma C: ", Sc)
Escreval("")
Escreval("")
//Alinea d)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se (i>j) e (i+j<7) entao
Escreva(M[i,j])
Sd<-Sd+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma D: ", Sd)
Escreval("")
Escreval("")
//Alinea e)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se ((i>j) e (i+j<7)) ou ((i<j) e (i+j>7)) entao
Escreva(M[i,j])
See<-See+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma E: ", See)
Escreval("")
Escreval("")
//Alinea f)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se ((i<j) e (i+j<7)) ou ((i>j) e (i+j>7)) entao
Escreva(M[i,j])
Sf<-Sf+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma F: ", Sf)
Escreval("")
Escreval("")
//Alinea g)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se ((i<j ) e (i+j<7)) ou ((i>j) e (i+j<7)) entao
Escreva(M[i,j])
Sg<-Sg+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma G: ", Sg)
Escreval("")
Escreval("")
//Alinea h)
Para i de 1 ate 6 faca
Para j de 1 ate 6 faca
Se (i>j) e (i+j<>7) entao
Escreva(M[i,j])
Sh<-Sh+M[i,j]
FimSe
FimPara
Escreval("")
FimPara
Escreval("Soma H: ", Sh)
fimalgoritmo
14. Escrever um algoritmo que recebe um numero inteiro do utilizador e de seguida
imprime a mensagem “É par” se o numero introduzido for par ou “É impar” caso
contrário. Utilizar uma função que retorna um valor lógico para indicar se o valor recebido
é par ou não.

algoritmo "Funcao_Par_Impar"
//14. Escrever um algoritmo que recebe um numero inteiro do utilizador e de
//seguida imprime a
//mensagem “É par” se o numero introduzido for par ou “É impar” caso
//contrário.
//- Utilizar uma função que retorna um valor lógico para indicar se o
//valor recebido é par ou
//não.
var
n: inteiro
s: logico
Funcao parImpar(a: inteiro): logico
var
k: logico
Inicio
k<-(a%2=0)
retorne k
FimFuncao

inicio
Escreva("Introduz um numero: ")
leia(n)

Se n%2=0 entao
Escreval("E PAR")
Senao
Escreval("E IMPAR")
FimSe
s<-parImpar(n)
Escreval("")
Escreval("Valor logico: ",s)
fimalgoritmo

14. Escreva um algoritmo que lê um número não determinado de valores m, todos


inteiros e positivos, um valor de cada vez, e, se m<10 utiliza um subalgoritmo do
tipo função que calcula o fatorial de m, e caso contrário, utiliza um subalgoritmo
do tipo função para obter o número de divisores de m (quantos divisores o m
possui). Escrever cada m lido e seu fatorial ou seu número de divisores com uma
mensagem adequada". Neste caso, temos um programa principal e dois
subalgoritmos.

algoritmo "Funcao_Fat_Divisores"
//15. Escreva um algoritmo que lê um número não determinado de valores m,
//todos inteiros e
//positivos, um valor de cada vez, e, se m<10 utiliza um subalgoritmo do tipo
//função que
//calcula o fatorial de m, e caso contrário, utiliza um subalgoritmo do tipo
//função para obter
//o número de divisores de m (quantos divisores o m possui). Escrever cada m
//lido e seu
//fatorial ou seu número de divisores com uma mensagem adequada". Neste caso,
//temos um
//programa principal e dois subalgoritmos.
var
m, Re: inteiro
Res: Caracter

//FUCAO PARA O CALCULO DE FATORIAL DE (m<10)


Funcao calcFatorial(a: inteiro): inteiro
Var
k, i: inteiro
Inicio
k<-1
Para i de 1 ate a faca
k<-k*i
FimPara
retorne k
FimFuncao

//FUNCAO PARA A CONTAGEM DE DIVISORES DO NUMERO m>=10


Funcao calcDivisores (a: inteiro): inteiro
Var
i, cd: inteiro
Inicio
Para i de 1 ate a faca
Se a%i=0 entao
cd<-cd+1
Senao
FimSe
FimPara
retorne cd
FimFuncao

//PROGRAMA PRINCIPAL
inicio
Res<-"S"
Enquanto (Res<>"N") faca
LimpaTela
Escreva("Digite um Numero: ")
leia(m)
Se m<10 entao
Re<-calcFatorial(m)
Escreval(m,"! = ",Re)
Senao
Re<-calcDivisores(m)
Escreval("Divisores de ",m, " sao: ",Re)
FimSe
Escreval("Deseja continuar?[S/N]")
leia(Res)
FimEnquanto
fimalgoritmo

Para ajuda, contacte:


Tel1: +258 844783011
Tel2: +258 825244151
email: ozoriodebrito123@gmail.com

Você também pode gostar