Você está na página 1de 67

Vdeo Aulas de Algoritmos e Lgica de programao

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema:
Mostrar o nome de 3 pessoas

Algoritmo mostra_nome
Inicio
Mostre O nome da pessoa Neri;
Mostre O nome da pessoa Lisi;
Mostre O nome da pessoa Giulia;
Ou
Mostre Os nomes so:Neri, Lisi e Giulia;
Fim.

Teste de Mesa
O nome da pessoa Neri
O nome da pessoa Lisi
O nome da pessoa Giulia

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:
Calcular a media de 2 notas e mostrar essa mdia

Algoritmo media;
var nota1, nota2, calc_media de Real;
Inicio
nota1 5; //nota1 recebe o valor de 5
nota2 7;
calc_media (nota1 + nota2) / 2;
Mostrar A mdia +calc_media;
Fim.
Teste de Mesa:
nota1 = 5
nota2 = 7
media = (5 + 7) / 2 = 6
A Mdia 6

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br

INICIO

Nota1, Nota2

Media
(nota1+nota2)/2

Media

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:
Ler duas notas, calcular a media e mostrar essa mdia
Algoritmo media;
var nota1, nota2, calc_media de Real;
Inicio
Mostrar Digite a primeira nota;
Ler(nota1); //nota1 recebe o valor de 5
Mostrar Digite a segunda nota;
Ler(nota2);
calc_media (nota1 + nota2) / 2;
Mostrar A mdia +calc_media;
Mostrar .......Final do Sistema ....;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Tipos de Dados. Problema:

Ler o nome de uma pessoa, a sua idade e o seu salrio, e mostrar essas informaes;
Algoritmo tipos_dados;
var idade de Inteiro;
salario de Real;
nome de caracter;
Inicio
Mostrar Digite o nome;
Ler(nome);
Mostrar digite a idade;
Ler(idade);
Mostrar digite o salrio;
Ler(salrio);
mostrar O nome +nome;
mostrar A idade +idade
mostrar O salrio +salrio;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: (Operadores Matemticos)
Ler 2 nmeros, efetuar as 4 operaes matemticas e mostrar
os resultados.
Algoritmo operaes;
var num1, num2, soma, multiplicacao, divisao, subtracao de real;
Inicio
Algoritmo operaes;
num1 10;
var num1, num2, soma, multiplicacao, divisao, subtracao de real;
num2 5;
Inicio
soma num1 + num2;
Mostrar Digite o numero 1.:;
multiplicacao num1 * num2;
Ler(num1)
divisao num / num2;
Mostrar Digite o numero 2.:;
subtracao num1 num2;
Ler(num2);
mostrar A multiplicacao = +multiplicacao;soma num1 + num2;
mostrar A divisao = +divisao;
multiplicacao num1 * num2;
mostrar A Subtracao = +subtracao;
divisao num / num2;
mostrar A soma =+soma;
subtracao num1 num2;
Fim.
mostrar A multiplicacao = +multiplicacao;
mostrar A divisao = +divisao;
mostrar A Subtracao = +subtracao;
mostrar A soma =+soma;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Duas variveis (A e B) possuem valores distintos (A:=5 e B:= 10), Crie um
algoritmo que armazene esses dois valores nessas duas variveis, e efetue a troca dos valores de
forma que a varivel A passe a possuir o valor da varivel B e que a varivel B passe a possuir
o valor da varivel A. Por fim, apresentar os valores trocado;

Algoritmo operaes;
Var A, B, Auxiliar de Inteiro;
Inicio
A 5;
B 10;
Auxiliar A;
A B;
B Auxiliar;
Mostre B = +B;
Mostre A = +A;
Fim.

Teste de Mesa
A=10
B=5
Auxiliar=5
B=5
A = 10

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: O custo ao consumidor de um carro novo, a soma do custo de fbrica com
a percentagem do revendedor e com o custo dos impostos (aplicados ao custo de fbrica).
Supondo que a percentagem do revendedor seja de 25% do custo de fbrica e que os
impostos custam 45 % do custo de fbrica, faa um algoritmo que leia o valor de custo de
fbrica e determine o preo final do automvel (custo ao consumidor).
Algoritmo automovel;
Var custo_fabrica, perc_revendedor, impostos, preco_final de real;
Inicio
Mostrar Digite o valor do custo de fabrica deste automvel.: ;
Ler(custo_fabrica); //custo_fabrica 40000;
perc_revendedor (25 * custo_fabrica) / 100;
impostos (45 * custo_fabrica) / 100;
preco_final custo_fabrica + perc_revendedor + impostos;
mostrar Custo de Fbrica ..........: +custo_fabrica;
mostrar Percentual revendedor .: +perc_revendedor;
mostrar impostos .........................: +impostos;
mostrar O preo Final ..............: +preco_final;
Fim.

Teste de Mesa
custo_fabrica = 20000
perc_revendedor = (25 * 20000) / 100 = 5000
impostos = (45 * 20000) / 100 = 9000
preco_final = 20000 + 5000 + 9000 = 34000

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: O sistema de avaliao de determinada disciplina, composto por trs
provas. A primeira prova tem peso 2, a Segunda tem peso 3 e a terceira prova tem
peso 5. Faa um algoritmo para calcular a mdia final de um aluno desta disciplina.
Algoritmo avaliacao;
Var prova1, prova2, prova3, media de numrico; //numrico = real
Inicio
Mostrar digite a nota1;
Ler(prova1);
Mostrar digite a nota2;
Ler(prova2);
Mostrar digite a nota3;
Ler(prova3);
Prova1 prova1 * 2 /10;
Prova2 prova2 * 3 /10;
Prova3 prova3 * 5 /10;
Media (prova1 + prova2 + prova3);
Mostrar A media final = +media;
Fim.

Teste de Mesa
Prova1 = 6 --------- 6 * 2 / 10 = 1,2
Prova2 = 8 --------- 8 * 3 /10 = 2,4
Prova3 = 4 ---------- 4 * 5 / 10 = 2,0
Media = (1.2 + 2.4 + 2) / 3 = 5.6
A media final = 5.6

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
1. Problema: Um cliente de um banco tem um saldo positivo de R$ 500,00. Fazer
um algoritmo que leia um cheque que entrou e calcule o saldo, mostrando
(escrevendo) o saldo na tela.
Algoritmo saldo;
Var valor_saldo, cheque_entrou de numrico; //numrico = real
Inicio
Valor_Saldo 500;
Mostrar digite o valor do cheque que entrou;
Ler(cheque_entrou);
Saldo = 500 ---500-200=300
Valor_saldo valor_saldo cheque_entrou;
Cheque_entrou=200
Mostrar O saldo atual = +valor_saldo;
O saldo atual = 300
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema.:Uma Empresa de vendas de softwares paga a seu vendedor um fixo de R$
800,00 por ms, mais uma comisso de 15% pelo seu valor de vendas no ms. Faa
uma algoritmo que leia o valor da venda e determine o salrio total do funcionrio.
Mostre as informaes que voc achar necessrio.
Algoritmo vendas;
Var fixo, comissao, vendas_mes, salario_total de numrico; //numrico = real
Inicio
Fixo 800;
Mostrar Digite o valor da venda no ms;
Fixo = 800
Ler(vendas_mes);
Comissao = (500 * 15) /100 = 75
Comisso (vendas_mes * 15) / 100;
vendas_mes = 500
Salrio_total fixo + comissao;
salario_total = 800 + 75 = 875
Mostrar O salrio fixo = +fixo;
Mostrar o valor de comissao = +comissao;
Mostrar o salrio total = +salario_total;
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema.: Uma Empresa de desenvolvimento de softwares paga a seu vendedor um
fixo de R$ 500,00 por ms, mais um bnus de R$ 50,00 por sistema vendido. Faa
uma algoritmo que leia quantos softwares o funcionrio vendeu e determine o salrio
total do funcionrio. Mostre as informaes que voc achar necessrio.

Algoritmo vendas2;
Var fixo, bonus, qtd_softw_vend, salario_total de numrico; //numrico = real
Inicio
Fixo 500;
Mostrar Digite quantidade software vendido;
Fixo = 500
Ler(qtd_softw_vend);
Bonus = 3 * 50 = 150
bonus qtd_softw_vend * 50;
qtd_softw_vend = 3
Salrio_total fixo + bonus;
salario_total = 500 + 150 = 650
Mostrar O salrio fixo = +fixo;
Mostrar o valor de bonus = +bonus;
O salrio fixo = 500
Mostrar o salrio total = +salario_total;
O valor de bonus = 150
Fim.
O salrio total = 650

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Crie um algoritmo para calcular o salrio lquido de um funcionrio, considerando que seu
salrio bruto, incide um desconto de 9% em inss para a previdncia. O algoritmo deve
mostrar o nome do funcionrio, o seu salrio bruto, o valor de desconto de inss e o seu
salrio lquido.(dica.: Voc dever pedir (ler) o nome do funcionrio e o valor do salrio
bruto)
Algoritmo salario;
Var salario_liquido, salario_bruto, inss de numrico; //(Real)
Nome de Caracter;
Inicio
Mostrar Digite o nome do funcionrio;
PASSO A PASSO
Ler(nome);
Mostrar Digite o valor do salario bruto;
Salario_liquido = 2000 180 = 1820
Ler(salario_bruto);
Salario_bruto = 2000
Inss (salario_bruto * 9) / 100;
Inss = (2000 * 9) /100 = 180
Salario_liquido salario_bruto inss;
Nome = Neri
Mostrar O salario bruto = +salario_bruto;
O salario bruto = 2000
Mostrar O desconto de inss = +inss;
O desconto de inss = 180
Mostrar O salario liquido = +salario_liquido; O salario liquido = 1820
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Considerando que para um consrcio, sabe-se o nmero total de prestaes, a
quantidade de prestaes pagas e o valor atual da prestao, escreva um algoritmo que
determine o total pago pelo consorciado e o saldo devedor.
Algoritmo consorcio;
Var valor_prest, total_pago, saldo_devedor de Real;
total_prest, qtd_prest_pagas de Inteiro;
Inicio
mostre Digite o total das prestacoes.: ;
ler(Total_prest);
mostre digite a quantidade de prestacoes pagas;
ler(qtd_prest_pagas);
mostre digite o valor de cada prestacao;
ler(valor_prest);
total_pago qtd_prest_pagas * valor_prest;
saldo_devedor valor_prest * (total_prest - qtd_prest_pagas);
mostre O total pago = +total_pago;
mostre O saldo devedor =+saldo_devedor;
Fim.

Teste de Mesa
total_prest = 20
qtd_prest_pagas = 5
valor_prest = 200
total_pago= 5 * 200 = 1000
saldo_devedor=200*(20-5)=3000
O total pago = 1000
O saldo devedor = 3000

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Analisando a frmula " Prestao = valor + (valor * (taxa/100) * tempo)", crie um
algoritmo para efetuar o clculo do valor de uma prestao em atraso. (Voc dever ler o VALOR
da prestao, a TAXA de juros imposta pelo banco, e o nmero de dias em ATRASO.
Algoritmo prestacao;
Var prestacao, valor_prest, taxa de Real;
Dias_atraso de Inteiro;
Inicio
Mostre Digite o valor da prestacao;
Ler(valor_prest);
Mostre digite a taxa de juros;
Ler(taxa);
Mostre digite o numero de dias em atraso;
Ler(dias_atraso);

Teste de Mesa
Prestacao=200+(200*(2/100)*10=240
valor_prest = 200
taxa=2
Dias_atraso=10
O valor corrigido da prestacao = 240

prestacao valor_prest + (valor_prest * (taxa/100)*dias_atraso);


Mostre O valor corrigido da prestacao = +prestacao;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Crie 2 variveis (A e B) e leia 1 valor para cada um deles. Disponibilize eles de
forma crescente.

Algoritmo crescenteAB;
Var a,b de inteiro;
Inicio
Mostre digite o valor para A
Ler(a)
Mostre digite o valor para B
Ler(b)
Se A > B entao
Mostre Em ordem crescente + B + +A
Senao
Mostre Em ordem crescente + A + +B
Fim.

Teste de Mesa
A= 2
B =7
Em ordem crescente 2 - 7

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Crie 2 variveis (A e B) e leia 1 valor para cada um deles. Disponibilize eles de
forma crescente.
INICIO

A, B

A>B

Em ordem crescente +
B + +A

Em ordem
crescente + A +
+B

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: O sistema de avaliao de determinada disciplina, composto por trs
provas. A primeira prova tem peso 2, a Segunda tem peso 3 e a terceira prova tem
peso 5. Faa um algoritmo para calcular a mdia final de um aluno desta disciplina.
Caso a media seja maior ou igual a 6 mostre APROVADO, se a media for entre 4 e 6,
mostre em RECUPERAO, e se for menor do que 4 mostre REPROVADO.
Algoritmo avaliacao;
Var prova1, prova2, prova3, media de numrico; //numrico = real
Inicio
Mostrar digite a nota1;
Ler(prova1);
Mostrar digite a nota2;
Ler(prova2);
Prova1 = 6 --------6 * 2 / 10 = 1,2
Prova2 = 8 --------8 * 3digite
/10 = 2,4 a nota3;
Mostrar
Prova3 = 4 ---------- 4 * 5 / 10 = 2,0
Media = (1.2Ler(prova3);
+ 2.4 + 2) / 3 = 5.6
5.6prova1 * 2 /10;
RecuperacaoProva1
com media
Prova2 prova2 * 3 /10;
Prova3 prova3 * 5 /10;
Media (prova1 + prova2 + prova3);
Se media >= 6 entao
Mostrar Aprovado com media +media;
Se media >= 4 entao
Mostrar recuperacao com media +media;
Senao
Mostrar Reprovado com media +media;
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

Prova1, prova2,
prova3

Prova1 prova1 * 2 /10;


Prova2 prova2 * 3 /10;
Prova3 prova3 * 5 /10;
Media (prova1 + prova2 + prova3);

Media >=6

Aprovado com media


+media;
MEDIA >= 4

recuperacao com
media +media;

Reprovado com
media +media;

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Uma loja oferece para os seus clientes, um determinado desconto de acordo com o
valor da compra efetuada. O desconto de 10%, se o valor da compra for at R$200.00, 15% se for
maior que R$ 200 e menor ou igual a R$ 500,00 e 20% se for acima de R$ 500,00. Crie um algoritmo
que leia o nome do cliente e o valor da compra. Mostre ao final o nome do cliente, o valor da compra,
o percentual de desconto e o seu valor e valor total a pagar deste cliente.
Algoritmo compra_desconto;
Var valor_compra, valor_desconto, valor_pagar de real;
Valor_compra = 300
Desconto de inteiro;
Valor_desconto = (300 * 15) / 100 = 45
Nome de caracter;
Valor_pagar = 300 45 = 255
Inicio
Desconto = 15
Mostrar digite o nome do cliente;
Ler(nome);
Nome = Neri Neitzke
Mostrar digite o valor da compra;
Nome do Cliente .: Neri Neitzke
Ler(valor_compra);
Valor da Compra .: 300
Se valor_compra <= 200 entao
O percentual desc .: 15
Desconto 10;
Valor do desconto .: 45
Senao se valor_compra <= 500 entao
Valor a pagar .: 255
Desconto 15;
Senao
Desconto 20;
Faa Valor_desconto (valor_compra * desconto) / 100;
Faa valor_pagar valor_compra valor_desconto;
Mostre Nome do Cliente .: +nome;
Mostre Valor da Compra .: +valor_compra;
Mostre O percentual de desc: +desconto;
Mostre Valor do desconto .: +valor_desconto;
Mostre Valor a pagar .: + valor_pagar;
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

Nome,
valor_compra

V
Valor_compra <= 200

Valor_compra
<= 500

V
Desconto 10

F
Desconto 15

Desconto 20

Valor_desconto (valor_compra *
desconto) / 100;
valor_pagar valor_compra
desconto;

Mostre Nome do Cliente .: +nome;


Mostre Valor da Compra .: +valor_compra;
Mostre O percentual de desc: +desconto;
Mostre Valor do desconto .: +valor_desconto;
Mostre Valor a pagar .: + valor_pagar;

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Uma loja oferece para os seus clientes, um determinado desconto de acordo com o
valor da compra efetuada. O desconto de 10%, se o valor da compra for at R$200.00, 15% se for
maior que R$ 200 e menor ou igual a R$ 500,00 e 20% se for acima de R$ 500,00. Crie um algoritmo
que leia o nome do cliente e o valor da compra. Mostre ao final o nome do cliente, o valor da compra,
o valor do desconto e valor total a pagar deste cliente.
Algoritmo compra_desconto1;
Var valor_compra, valor_desconto, valor_pagar de real;
Nome de caracter;
Inicio
Mostrar digite o nome do cliente;
Ler(nome);
Mostrar digite o valor da compra;
Ler(valor_compra);
Se valor_compra <= 200 entao
Valor_desconto (valor_compra * 10) / 100;
Senao se valor_compra <= 500 entao
Valor_desconto (valor_compra * 15) / 100;
Senao
Valor_desconto (valor_compra * 20) / 100;
Faa valor_pagar valor_compra valor_desconto;
Mostre Nome do Cliente .: +nome;
Mostre Valor da Compra .: +valor_compra;
Mostre Valor do desconto .: +valor_desconto;
Mostre Valor a pagar .: + valor_pagar;
Fim.

Teste de Mesa
Valor_compra = 300
Valor_desconto = (300 * 15) / 100 = 45
Valor_pagar = 300 45 = 255
Nome = Neri Neitzke
Nome do Cliente .: Neri Neitzke
Valor da Compra .: 300
Valor do desconto .: 45
Valor a pagar .: 255

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

Nome,
valor_compra

V
Valor_compra <= 200

Valor_compra
<= 500

Valor_desconto
(valor_compra * 10) /
100;

F
Valor_desconto
(valor_compra * 15) /
100;
Valor_desconto
(valor_compra * 20) /
100;

valor_pagar valor_compra
desconto;

Mostre Nome do Cliente .: +nome;


Mostre Valor da Compra .: +valor_compra;
Mostre Valor do desconto .: +valor_desconto;
Mostre Valor a pagar .: + valor_pagar;

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Fazer um algoritmo que leia o saldo inicial de cliente do banco e leia
tambm um cheque que entrou e ANALISE se o cheque poder ser descontado ou no ,
j que este cliente no possui limite. Se o cheque no poder ser descontado, mostre
essa informao, caso contrrio, desconte o cheque e informe o saldo na tela.
Algoritmo saldo_se;
Var valor_saldo, cheque_entrou de numrico; //numrico = real
Inicio
Mostre Digite o saldo inicial .: ;
Ler(valor_saldo); //Valor_Saldo 500;
Mostrar digite o valor do cheque que entrou;
Ler(cheque_entrou);
Se cheque_entrou <= valor_saldo entao
Valor_saldo valor_saldo cheque_entrou;
valor_saldo =
Mostrar seu novo saldo .: +valor_saldo;
cheque_entrou =
Senao
Mostrar este cheque no pode ser descontado;
Mostrar seu saldo continua +valor_saldo;
Fim_se
Fim.

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

valor_saldo,
cheque_entrou

cheque_entrou
<= valor_saldo

Valor_saldo
valor_saldo
cheque_entrou

este cheque no pode ser


descontado;
seu saldo continua
+valor_saldo;

seu novo saldo .:


+valor_saldo;

Fim

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Fazer um algoritmo que analize 3 valores inteiros
(atravs das variveis n1, n2 e n3), e informa qual o maior e qual
o menor deles.
Algoritmo maior_menor;
Var n1, n2, n3 de inteiro;
Inicio
Mostre digite o valor para n1;
Ler(n1);
Mostre digite o valor para n2;
Ler(n2);
Mostre digite o valor para n3;
Ler(n3);
Se (n1 >= n2) e (n1 >= n3) entao
Mostre o maior o .: +n1;
Senao Se (n2 >= n1) e (n2 >= n3) entao
Mostre o maior o .: +n2;
Senao
Mostre o maior o .: +n3;

Teste de Mesa

N1 = 10
N2 = 10
N3 = 20

O MAIOR
20<= n3) entao
Se (n1 <=
n2)O
e (n1
Mostre o
O MENOR
menor
O 10 o .: +n1;
Senao Se (n2 <= n1) e (n2 <= n3) entao
Mostre o menor o .: +n2;
Senao
Mostre o menor o .: +n3;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Fazer um algoritmo que analize 3 valores inteiros
(atravs das variveis n1, n2 e n3), e informa qual o maior e qual
o menor deles.
Algoritmo maior_menor;
Var n1, n2, n3 de inteiro;
Inicio
Mostre digite o valor para n1;
Ler(n1);
Mostre digite o valor para n2;
Ler(n2);
Mostre digite o valor para n3;
Ler(n3);
Se (n1 >= n2) e (n1 >= n3) entao
inicio
Mostre o maior o .: +n1;
Se (n2 <= n3) entao
Mostre o menor o .: +n2;
Senao
Mostre o menor o .: +n3;
Fim_se
Senao Se (n2 >= n1) e (n2 >= n3) entao
inicio
Mostre o maior o .: +n2;
Se (n1 <= n3) entao
Mostre o menor o .: +n1;
Senao
Mostre o menor o .: +n3;
Fim_se
Senao
inicio
Mostre o maior o .: +n3;
Se (n2 <= n1) entao
Mostre o menor o .: +n2;
Senao
Mostre o menor o .: +n1;
Fim_se
Fim

Teste de Mesa

N1 = 15
N2 = 10
N3 = 20

O MAIOR O 20
O MENOR O 10

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

n1, n2, n3

(n1 >= n2) e


(n1 >= n3)

o maior o .: +n2;

(n2 >= n1) e


(n2 >= n3

o maior o .: +n1;

n1 <= n3

n2 <= n3

o menor o .:
+n1;

o maior o .: +n3;
F

o menor o .:
+n2;

o menor o .:
+n3;

o menor o .:
+n1;

o menor o .: +n3;

Fim

n2 <= n1

V
o menor o .:
+n2;

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Crie um algoritmo que leia trs valores le,ld,li e verifique se eles podem

ser os
comprimentos dos lados de um tringulo, e se forem, verificar se um tringulo equiltero, issceles ou
escaleno. Se eles no formarem um tringulo, escrever a mensagem "No um tringulo".
Antes da elaborao do algoritmo, torna-se necessria a reviso de algumas propriedades e definies.
Propriedade - O comprimento de cada lado de um tringulo menor do que a soma dos comprimentos dos
outros dois lados, fora desta condio as medidas no so consideradas de um tringulo.
Definio 1 - Chama-se tringulo equiltero os que tem os comprimentos dos trs lados iguais,
Definio 2 - Chama-se tringulo issceles ao tringulo que tem os comprimentos de dois lados guais.
Definio 3 - Chama-se tringulo escaleno ao tringulo que tem os comprimentos dos trs lados diferentes.
Algoritmo triangulo;
Var le, ld, li de real;
Inicio
Mostre digite o comprimento de LE.:
Ler(le);
Mostre digite o comprimento de LD.:
Ler(ld);
Mostre digite o comprimento de LI.:
Ler(li);
Se (li < (le + ld)) e (le < (ld + li)) e (ld < (li + le)) entao
Se (le = ld) e (le = li) entao
Mostrar triangulo equilatero;
Senao se ((li = ld) ou (li = le) ou (le = ld)) then
Mostrar triangulo isosceles;
Senao
// se ((ld <> le) e (ld <> li) e (li <> le)) entao
Mostrar triangulo escaleno;
Senao
Mostre no um triangulo;

Fim

Teste de Mesa
Le = 20
Ld = 15
Li = 15

Triangulo isosceles

15

20

15

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

le, ld, li

((li < (le + ld) e (le < (ld + li) e


(ld < (li + le))

triangulo equiltero

no um triangulo;

(le = ld) e (le


= li)

F
tringulo escaleno

((li = ld) ou (li = le) ou


(le = ld))

Fim

triangulo
isosceles;

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler 3 valores INTEIROS para as variveis A, B, C.
Apresentar os valores dispostos em ordem crescente.
Algoritmo abc_crescente;
Var a, b, c de inteiro;
Inicio
Mostre digite o valor para A.:;
Ler(a);
Mostre digite o valor para B.:;
Ler(b);
Mostre digite o valor para C.:;
Ler(c);
Se (A <=B) e (A <= C) entao
Se (B <= C) entao
Mostre Em ordem crescente ficou.: +A+-+B+-+C;
Senao
Mostre Em ordem crescente ficou.: +A+-+C+-+B;
fim_se
fim_se
Senao Se (B <=A) e (B <= C) entao
Se (A<= C) entao
Mostre Em ordem crescente ficou.: +B+-+A+-+C;
Senao
Mostre Em ordem crescente ficou.: +B+-+C+-+A;
fim_se
fim_se
senao
Se (A <= B) entao
Mostre Em ordem crescente ficou.: +C+-+A+-+B;
Senao
Mostre Em ordem crescente ficou.: +C+-+B+-+A;
fim_se
fim_se

Fim

Teste de Mesa
A=9
B=6
C=7
Ordem 6 7 9

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Fluxograma do exercco anterior.
INICIO

A, b, c

(A <=B) e (A <= C)

Em ordem crescente ficou.: V


+C+-+A+-+B

B <= C
V

Em ordem crescente
ficou.: +A+-+B+-+C

Em ordem crescente
ficou.: +A+-+C+-+B

A <= B

(B <=A) e (B
<= C)

Em ordem crescente ficou.:


+C+-+B+-+A

Em ordem crescente ficou.: F


+B+-+C+-+A

Fim

A<= C

V
Em ordem crescente
ficou.:
+B+-+A+-+C

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler para uma varivel INTEIRA um nmero de 1
a 12 e mostrar o nome do ms correspondente. Caso o ms
no existir, mostrar essa informao.
Algoritmo mes_se;
Var mes de inteiro;
Inicio
Mostrar digite o ms de 1 a 11 ;
Ler(ms);
Se (mes = 1) ento Mostrar Janeiro;
Senao Se (mes = 2) ento Mostrar Fevereiro;
Senao Se (mes = 3) ento Mostrar Marco;
Senao Se (mes = 4) ento Mostrar Abril;
Senao Se (mes = 5) ento Mostrar Maio;
Senao Se (mes = 6) ento Mostrar Junho;
Senao Se (mes = 7) ento Mostrar Julho;
Senao Se (mes = 8) ento Mostrar Agosto;
Senao Se (mes = 9) ento Mostrar Setembro;
Senao Se (mes = 10) ento Mostrar Outubro;
Senao Se (mes = 11) ento Mostrar Novembro;
Senao Se (mes = 12) ento Mostrar Dezembro;
Senao Esse ms no existe;
Fim

Teste de Mesa
Ms = 2
Fevereiro

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler para uma varivel INTEIRA um nmero de 1
a 12 e mostrar o nome do ms correspondente. Caso o ms
no existir, mostrar essa informao.
Algoritmo mes_case;
Var mes de inteiro;
Inicio
Mostrar digite o ms de 1 a 11 ;
Ler(ms);
Caso ms seja
1: Mostrar Janeiro;
2: Mostrar Fevereiro;
3: Mostrar Marco;
4: Mostrar Abril;
5: Mostrar Maio;
6: Mostrar Junho;
7: Mostrar Julho;
8: Mostrar Agosto;
9: Mostrar Setembro;
10: Mostrar Outubro;
11: Mostrar Novembro;
12: Mostrar Dezembro;
Senao modtrsr Esse ms no existe;
Fim_caso
Fim

Teste de Mesa
Ms = 2
Fevereiro

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler uma varivel de numero inteiro e mostre se ele
par ou se ele impar.
Algoritmo par_impar;
Var numero de inteiro;
Inicio
Mostre digite um numero qualquer;
Ler(numero);
Se (numero mod 2 = 0) entao
Mostre esse numero par;
Senao
Mostre esse numero no par;
Fim

Teste de Mesa

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler uma varivel de numero inteiro e mostrar a
tabuada desse nmero.
Algoritmo tabuada;
Var numero de inteiro;
Inicio
Mostre digite um nmero para a tabuada;
Ler(numero);
Mostre numero + x 1 = +(numero * 1);
Mostre numero + x 2 = +(numero * 2);
Mostre numero + x 3 = +(numero * 3);
Mostre numero + x 4 = +(numero * 4);
Mostre numero + x 5 = +(numero * 5);
Mostre numero + x 6 = +(numero * 6);
Mostre numero + x 7 = +(numero * 7);
Mostre numero + x 8 = +(numero * 8);
Mostre numero + x 9 = +(numero * 9);
Fim

Teste de Mesa
6x1=6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
.....

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Ler uma varivel de numero inteiro e mostrar a
tabuada desse nmero. Usando o lao de repetio Para
Algoritmo tabuada_para;
Var numero, i de inteiro;
Inicio
Mostre digite um nmero para a tabuada;
Ler(numero);
Para i de 1 at 9 passo 1 faa
Mostre numero + x + i + = +(numero * i);
Fim
//outras maneiras de fazer esse lao
Para i 1 at 9 faa
Para i = 1 at 9 faa
Para i = 1 at 9 passo 1 faa

Teste de Mesa
Numero = 4
I = 1,2,3,4,5,6,7,8,9,10
4x1=4
4x2=8
4 x 3 = 12
....
4 x 9 = 36

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Ler uma varivel de numero inteiro e mostrar a
tabuada desse nmero. Usando o lao de repetio enquanto
Algoritmo tabuada_enquanto;
Var numero, i de inteiro;
Inicio
Mostre digite um nmero para a tabuada;
Ler(numero);
I 1;
Enquanto(i <= 9)
inicio
Mostre numero + x + i + = +(numero * i);
i++; // igual ao i=i+1
Fim_enquanto
Fim

Teste de Mesa
Numero = 7
I=1
7x1=7
7x1=7
7x1=7
7x1=7
7x1=7
7x1=7

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Ler uma varivel de numero inteiro e mostrar a
tabuada desse nmero. Usando o lao de repetio repita
Algoritmo tabuada_repita;
Var numero, i de inteiro;
Inicio
Mostre digite um nmero para a tabuada;
Ler(numero);
I 15;
Repita
Inicio
Mostre numero + x + i + = +(numero * i);
I++; //i=i+1
Fim
At que (i > 9); // Enquanto(i <= 9)
Fim

Teste de Mesa
Numero = 9
I = 15
9 x 15 = 135

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Faa um algoritmo que gere a seguinte srie: 10,
20, 30, 40, ..... 980, 990, 1000.
Algoritmo serie_para;
Var i de inteiro;
Inicio
Para i de 10 at 1000 passo 10 faa
Mostrar i;
Fim

Teste de Mesa
I=10, 20
10, 20, 30, 40

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:Ler a nota de 10 alunos, calcular a media e mostrar
essa mdia.
Algoritmo media_para;
var nota, calc_media, soma_notas de Real;
i de inteiro;
Teste de Mesa
Inicio
Soma_notas 0;
Para i de 1 at 10 faa
inicio
Mostrar Digite a +i+ de 10 notas;
Ler(nota);
Soma_notas soma_notas + nota;
Fim_para
calc_media soma_notas / 10;
Mostrar A mdia +calc_media;
Mostrar .......Final do Sistema ....;

Fim.

Nota=7,8,6
Calc_media = 9
Soma_notas=90
I=10

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:Ler a nota de 10 alunos, calcular a media e mostrar
essa mdia. Aceitar somente notas de 0 a 10.
Algoritmo media_para;
var nota, calc_media, soma_notas de Real;
i de inteiro;
Teste de Mesa
Inicio
Soma_notas 0;

Nota=7,8,6
Calc_media = 9
Soma_notas=90
I=10

Para i de 1 at 10 faa
inicio
Mostrar Digite a +i+ de 10 notas;
Ler(nota);
Se ((nota >=0) e (nota <= 10)) entao
Soma_notas soma_notas + nota;
Senao
Inicio
Mostrar Nota Invalida, digite apenas notas de 0 a 10);
i=i-1;
fim_se
Fim_para
calc_media soma_notas / 10;
Mostrar A mdia +calc_media;
Mostrar .......Final do Sistema ....;

Fim.

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Mostre os 10 primeiros nmeros pares.
Algoritmo pares_10;
Var numero, conta_pares de inteiro;
Inicio
Conta_pares 0;
Numero 1;
enquanto(conta_pares < 10)
Inicio_enquanto
Se (numero mod 2 = 0) entao
Inicio_se
Numero=1,2,3
Mostre o numero +numero+ = par;
Conta_pares=1
Conta_pares conta_pares + 1;
Fim_se
Numero numero + 1;
Fim_enquanto
Fim

Teste de Mesa

O numero 2 .: par

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Ler dois nmeros (inicial e final). Escreva quantos
nmero pares e quantos numeros impares encontran-se entre
os dois nmeros fornecidos pelo usurio.

Algoritmo par_impar_conta;
Var numero_inicial, numero_final, numeros_pares, numeros_impares,i de inteiro;
Inicio
Numeros_pares 0;
Numeros_impares 0;
Numeros_pares=0,1,2
Mostre Digite o nmero inicial.: ;
Numeros_impares=0,1,2,3
Ler(numero_inicial);
Numero_inicial=23
I numero_inicial;
Numero_final=27
Mostre Digite o nmero final.: ;
I = 23,24,25,26,27,28
Ler(numero_final);
Enquanto(i <= numero_final) faa
Inicio_enquanto
Se (i mod 2 = 0) entao
Numeros_pares Numeros_pares + 1;
Senao
Numeros_impares Numeros_impares + 1;

Teste de Mesa

Entre o numero 23 e o
numero 27 existem 2
pares e 3 impares

i i + 1;
Fim_enquanto
Mostrar Entre o numero +numero_inicial+ e o numero +numero_final+ existem
+numeros_pares+ pares e +numeros_impares+ impares;
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Ler dois nmeros (inicial e final, o numero final
no pode ser menor do que o numero inicial). Escreva quantos
nmero pares e quantos numeros impares encontran-se entre
os dois nmeros fornecidos pelo usurio.

Teste de Mesa

Algoritmo par_impar_conta;
Var numero_inicial, numero_final, numeros_pares, numeros_impares,i de inteiro;
Numeros_pares=0,1,2
Inicio
Numeros_impares=0,1,2,3
Numeros_pares 0;
Numero_inicial=23
Numeros_impares 0;
Numero_final=27
numero_final 0;
I = 23,24,25,26,27,28
Mostre Digite o nmero inicial.: ;
Ler(numero_inicial);
I numero_inicial;
Repita
Inicio_repita
Mostre Digite o nmero final maior que o inicial.: ;
Ler(numero_final);
Se (numero_final < numero_inicial) entao
Mostrar Nmero final invlido, deve ser maior do que o inicial)
Final_repita
At que(numero_final >= numero_inicial);
Enquanto(i <= numero_final) faa
Inicio_enquanto
Se (i mod 2 = 0) entao
Numeros_pares Numeros_pares + 1;
Senao
Numeros_impares Numeros_impares + 1;

Entre o numero 23 e o
numero 27 existem 2
pares e 3 impares

i i + 1;
Fim_enquanto
Mostrar Entre o numero +numero_inicial+ e o numero +numero_final+ existem
+numeros_pares+ pares e +numeros_impares+ impares;
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br

Problema: Crie um algoritmo que leia um numero inteiro, e


diga se ele um numero primo ou no.
Algoritmo primo;
Var numero,contador,i de inteiro;
Inicio
Contador 0;
I 2;
Mostrar Digite um nmero .: ;
Ler(numero);
Enquanto(i < (numero/2))
Inicio_enquanto
Se (numero mod i = 0)
Contador Contador +1;
I I + 1;
Fim_enquanto
Se contador > 0 entao
Mostrar O numero +numero+ no primo;
Senao
Mostrar O numero +numero+ primo;
Fim

Teste de Mesa
Contador = 0
I = 2,
Numero = 5
O numero 5 primo

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo que leia um numero inteiro, e
diga se ele um numero primo ou no.

Algoritmo primo_logico;
Var numero,i de inteiro;
Num_primo de logico; // verdadeiro ou falso -> boolean
Inicio
Num_primo verdadeiro;
I 2;
Mostrar Digite um nmero .: ;
Ler(numero);
Enquanto((i < (numero/2) e (num_primo = verdadeiro)) faa
Inicio_enquanto
Se (numero mod i = 0)
Num_primo falso;
I I + 1;
Fim_enquanto
Se Num_primo = falso entao
Mostrar O numero +numero+ no primo;
Senao
Mostrar O numero +numero+ primo;
Fim

Teste de Mesa

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo que mostre os 10 primeiros
nmeros primos.
Algoritmo primo_10;
Var contador, numero,i de inteiro;
num_primo de logico;
begin
numero 1;
contador 0;
enquanto (contador < 10) faa
inicio
num_primo verdadeiro;
numero numero + 1;
I 2;
enquanto((i <= (numero/2)) e (num_primo = verdadeiro)) faa
inicio
se (numero mod i = 0) entao
inicio
num_primo falso;
fim
I I + 1;
Fim_segundo_enquanto;
se num_primo = verdadeiro then
inicio
contador contador + 1;
escreva(O numero +numero+ e o +contador+. numero primo');
fim
fim_primeiro_enquanto;
fim.

Teste de Mesa

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Mostrar os 10 primeiros numeros da sequencia
Fibonacci. Ex: 1 1 2 3 5 8 13 21 34 55 89 .....
Algoritmo fibonacci;
Var i, num_anterior, num_atual, novo_numero de inteiro;
Inicio
Num_anterior 0;
Num_atual 1;
Mostre o 1. numero fibonaccci 1;
Para i de 2 at 10 faa
Inicio
Novo_numero num_atual + num_anterior;
Num_anterior num_atual;
Num_atual novo_numero;
Mostre o +i+. numero fibonaccci +novo_numero;
Fim;
Fim

Teste de Mesa
Num_anterior=0,1,1,2,3,5
Num_atual=1,1,2,3,5,8
Novo_numero=1,2,3,5,8
I=2,3,4,5,6
O 1. numero fibonacci 1
O 2. numero fibonacci 1
O 3. numero fibonacci 2
O 4. numero fibonacci 3
O 5. numero fibonacci 5
O 6. numero fibonacci 8
................

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br

Problema:Ler a nota de 5 alunos, calcular a media e mostrar


essa mdia e mostrar tambm quantos alunos ficaram com a
sua nota igual ou acima da mdia.
Algoritmo media_media;
var nota1, nota2, nota3, nota4, nota5, calc_media, soma_notas de real;
contador de inteiro;

inicio
contador 0;
mostrar digite a 1. nota.: ;
ler(nota1);
mostrar digite a 2. nota.: ;
ler(nota2);
mostrar digite a 3. nota.: ;
ler(nota3);
mostrar digite a 4. nota.: ;
ler(nota4);
mostrar digite a 5. nota.: ;
ler(nota5);

soma_notas nota1 + nota2 + nota3 + nota4 + nota5;

Teste de Mesa
nota1=6
nota2=4
nota3 =9
nota4 =5
nota5 =7
soma_notas=31
calc_media= 31/5=6.2
contador = 0,1,2

calc_media soma_notas / 5;
se (nota1 > calc_media) entao
contador contador + 1;
se (nota2 > calc_media) entao
contador contador + 1;
se (nota3 > calc_media) entao
contador contador + 1;
se (nota4 > calc_media) entao
contador contador + 1;
se (nota5 > calc_media) entao
contador contador + 1;
mostrar a mdia +calc_media;
mostrar contador + alunos ficaram com a nota acima da media;
mostrar .......final do sistema ....;

A media 6.2
2 alunos ficaram com
a nota acima da
media

Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:Ler a nota de 5 alunos, calcular a media e mostrar
essa mdia e mostrar tambm quantos alunos ficaram com a
sua nota igual ou acima da mdia. (usando vetores)
Algoritmo media_media_vetor;
var notas:vetor [1..5] de real;
calc_media, soma_notas de real;
contador de inteiro;

inicio
contador 0;
//notas[1] 5;
//notas[2] 9;
//notas[3] 7;
//notas[4] 3;
//notas[5] 6;
mostrar digite a 1. nota.: ;
ler(notas[1]);
mostrar digite a 2. nota.: ;
ler(notas[2]);
mostrar digite a 3. nota.: ;
ler(notas[3]);
mostrar digite a 4. nota.: ;
ler(notas[4]);
mostrar digite a 5. nota.: ;
ler(notas[5]);
soma_notas
notas[1]+notas[2]+notas[3]+notas[4]+ notas[5];

Teste de Mesa
Notas (no pascal)
Posio 1 2 3
valor
5 9 7

5
6

Calc_media=30/5=6
Soma_notas=5+9+7+3+6 = 30

Contador=0,1,2,3
Notas (no C e no Java)
Posio 0 1 2 3 4
valor
5 9 7 3 6

calc_media soma_notas / 5;
se (notas[1] >= calc_media) entao
contador contador + 1;
se (notas[2] >= calc_media) entao
contador contador + 1;
se (notas[3] >= calc_media) entao
contador contador + 1;
se (notas[4] >= calc_media) entao
contador contador + 1;
se (notas[5] >= calc_media) entao
contador contador + 1;
mostrar a mdia +calc_media;
mostrar contador + alunos ficaram com a nota acima da media;
mostrar .......final do sistema ....;

Fim.

4
3

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema:Ler a nota de 5 alunos, calcular a media e mostrar
essa mdia e mostrar tambm quantos alunos ficaram com a
sua nota igual ou acima da mdia. (usando vetores)
Algoritmo media_media_vetor_correto;
var notas:vetor [1..5] de real;
calc_media, soma_notas de real;
i, contador de inteiro;

inicio
soma_notas 0;
contador 0;
para i de 1 at 5 faa
inicio_para
mostrar digite a +i+. nota.: ;
ler(notas[i]);
soma_notas soma_notas + notas[i];

fim_para
calc_media soma_notas / 5;
para i de 1 at 5 faa
inicio_para
se (notas[i] >= calc_media) entao
contador contador + 1;
fim_para
mostrar a mdia +calc_media;
mostrar contador + alunos ficaram com
nota acima da media;
mostrar .......final do sistema ....;

Fim.

Teste de Mesa
Notas (no pascal)
Posio 1 2 3 4
valor
8 5 7 9
Calc_media=36/5=7.2

5
7

Soma_notas=0,8,13,20,29,36

Contador=0,1,2
I = 1,2,3,4,5,6,1,2,3,4,5,6
Notas (no C e no Java)
Posio 0 1 2 3 4
valor
A media 7.2
2 alunos ficaram com a nota
acima da media

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: Fazer um algoritmo que analize 10 valores inteiros
informa qual o maior e qual o menor deles.
Algoritmo maior_menor_vetor;
Var maior_menor:vetor [1..10] de
I, maior, menor de inteiro;
Inicio
Maior 0;
Menor 99999;
Maior_menor[] {2,3,7,8,5,9,1,0,6,4};
Para i de 1 at 10 passo 1 faa
Inicio
Se maior_menor[i] > maior entao
maior maior_menor[i];
se maior_menor[i] < menor entao
menor maior_menor[i];
fim
Mostre o maior valor .: +maior;
Mostre o menor valor .: +menor;
Fim.

inteiro;

Teste de Mesa
Maior_menor
P 1 2 3 4 5 6 7 8 9 10
V 2 3 7 8 5 9 1 0 6 4
Maior=0,2,3,7
Menor=99999,2
I=1,2,3,4 ...........

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo que leia um vetor de 5
elementos. Calcule e mostre a soma desses elementos, a media,
quantos elementos so iguais ou maiores do que a mdia, o
percentual dos elementos que so maiores ou iguais a media e
mostrar quantos desses elementos so positivos e quantos so
negativos.
Algoritmo complexo_vetor ;
Var vetor5 :vetor

[1..5] de inteiro;
Media, soma, perc_maior de real;
I, iguais_maior, , qtd_pos, qtd_neg de inteiro;

Inicio

Media 0;
Soma 0;
iguais_maior 0;
perc_maior 0;
qtd_pos 0;
qtd_neg 0;
vetor5[ ] {9,3,7,8,5};
Para i de 1 at 5 passo 1 faa
Soma soma + vetor5[i];
Media soma / 5;
Para i de 1 at 5 passo 1 faa
inicio
Se vetor5[i] > media entao

iguais_maior = iguais_maior + 1;
se vetor5[i] >= 0 entao
qtd_pos qtd_pos + 1;
senao
qtd_neg qtd_neg + 1;
fim
perc_maior (iguais_maior * 100) / 5;
mostrar A soma foi .: +soma;
mostrar a media foi .: +media;
mostrar perc_maior+% so maiores ou iguais a mdia;
mostrar iguais_maior +so iguais ou maiores do que a media;
mostrar qtd_pos + so positivos;
mostrar qtd_neg + so negativos;
Fim.

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo lendo um vetor A de 3
elementos do tipo inteiro. Mostre esses elementos do vetor A.
Reordene os elementos em ordem crescente, atualize o vetor A
com os elementos na ordem crescente e mostre novamente o
vetor A.
Algoritmo vetor_crescente;
Var A:vetor [1..3] de inteiro;
i, j, aux de inteiro;
Inicio

A[ ] {9,3,7};
Mostrar O valor de A[1] =+A[1];
Mostrar O valor de A[2] =+A[2];
Mostrar O valor de A[3] =+A[3];
Para j de 1 at 2 passo 1 faa
Para i de 1 at 2 passo 1 faa
Se A[i] > A[i+1] entao
Inicio_se
Aux A[i];
A[i] A[i+1];
A[i+1] aux;
Fim_se;

Mostrar O valor de A[1] =+A[1];


Mostrar O valor de A[2] =+A[2];
Mostrar O valor de A[3] =+A[3];
Fim

Teste de Mesa
A = Vetor
Posicao 1
2
3
valor
50 21 14
Posicao 1 2
valor
14 21
I=1,2,3,1,2,3
Aux=50,50,21
J=1,2,3

3
50

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo lendo um vetor A de 15
elementos do tipo inteiro. Mostre esses elementos do vetor A.
Reordene os elementos em ordem crescente, atualize o vetor A
com os elementos na ordem crescente e mostre novamente o
vetor A.
Algoritmo vetor_crescente_15;
Var A:vetor [1..15] de inteiro;
i, j, aux de inteiro;
Inicio

A[ ] {9,3,7,6,21,50,45,36,2,8,7,9,42,32,18};
Para i de 1 at 15 faa
Mostrar O valor Original de A[+i+] =+A[i];
Para j de 1 at 14 passo 1 faa
Para i de 1 at 14 passo 1 faa
Se A[i] > A[i+1] entao
Inicio_se
Aux A[i];
A[i] A[i+1];
A[i+1] aux;
Fim_se;

Para i de 1 at 15 faa
Mostrar O valor atualizado de A[+i+] =+A[i];
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo lendo um vetor A de 15
elementos do tipo inteiro. Mostre esses elementos do vetor A.
Reordene os elementos em ordem decrescente, atualize o vetor
A com os elementos na ordem decrescente e mostre
novamente o vetor A.
Algoritmo vetor_decrescente_15;
Var A:vetor [1..15] de inteiro;
i, j, aux de inteiro;
Inicio

A[ ] {9,3,7,6,21,50,45,36,2,8,7,9,42,32,18};
Para i de 1 at 15 faa
Mostrar O valor Original de A[+i+] =+A[i];
Para j de 1 at 14 passo 1 faa
Para i de 1 at 14 passo 1 faa
Se A[i] < A[i+1] entao
Inicio_se
Aux A[i];
A[i] A[i+1];
A[i+1] aux;
Fim_se;

Para i de 1 at 15 faa
Mostrar O valor atualizado de A[+i+] =+A[i];
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo lendo dois vetores (A e B) de 5
elementos cada do tipo inteiro, liste os elementos destes dois
vetores. Faa com que os elementos do vetor A passem para o
vetor B, e os elementos do vetor B passem para o vetor A.
Mostre os 2 vetores atualizados.
Algoritmo vetores_troca_5;
Var A,B, C:vetor [1..5] de inteiro;
I de inteiro;
Inicio

A[ ] {9,3,7,6,21};
B[ ] {50,45,36,2,14};
Para i de 1 at 5 faa
inicio
Mostrar O valor Original de A[+i+] =+A[i];
Mostrar O valor Original de B[+i+] =+A[i];
Fim;
Para i de 1 at 5 passo 1 faa
Inicio_se
C[i] A[i];
A[i] B[i];
B[i C[i];
Fim_se;

Para i de 1 at 5 faa
inicio
Mostrar O valor Atualizado de A[+i+] =+A[i];
Mostrar O valor Atualizado de B[+i+] =+A[i];
Fim;
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo que gere uma matriz
exerc_matriz 3x3, inserir dados nos elementos dessa matriz,
por fim, mostre os dados contidos na matriz.
Algoritmo matriz_3x3;
Teste de Mesa
Var exerc_matriz:matriz [1..3,1..3] de inteiro;

Exerc_matriz
C1 C2 C3
Para l de 1 at 3 faa
L1 6
9
7
Para c de 1 at 3 faa
L2 6
6
7
Inicio
Mostrar Digite valor para exerc_matriz[+l+,+c+].:
L3 5
3 ;7
Ler(exerc_matriz[l,c]);
L=1,2
Fim;
C=1,2,3,4,1
Para l de 1 at 3 faa

l, c de inteiro;
Inicio

Para c de 1 at 3 faa
Mostrar O valor de exerc_matriz[+l+,+c+].: +exerc_matriz[l,c];
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie um algoritmo que gere uma matriz
exerc_matriz 3x3, inserir dados nos elementos dessa matriz,
por fim, mostre os dados contidos na matriz e mostre qual o
maior e qual o menor valor da matriz.
Algoritmo matriz_maior_menor;
Var exerc_matriz:matriz [1..3,1..3] de inteiro;
l,

c, maior, menor de inteiro;

Inicio
Maior 0; menor 99999;

Para l de 1 at 3 faa
Para c de 1 at 3 faa
Inicio
Mostrar Digite valor para exerc_matriz[+l+,+c+].: ;
Ler(exerc_matriz[l,c]);
Fim;
Para l de 1 at 3 faa
Para c de 1 at 3 faa
Inicio_para
Mostrar O valor de exerc_matriz[+l+,+c+].: +exerc_matriz[l,c];

Se exerc_matriz[l,c] > maior entao


maior exerc_matriz[l,c];
Se exerc_matriz[l,c] < menor entao
menor exerc_matriz[l,c];
Fim_para
Mostrar O maior valor da matriz .: +maior;
Mostrar O menor valor da matriz .: +menor;
Fim

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Problema: Crie uma matriz 4x4 chamada Mat4 e leia os valores para

todos os

elementos da matriz e :
1) mostre essa matriz;
2) Calcule a soma dos elementos e mostre a soma;
3) calcule e mostre a mdia dos elementos da matriz;
4) mostre os elementos da diagonal principal;
5) que mostre os elementos da diagonal secundria;
6) mostre os elementos da linha 3;
7) mostre os elementos da Coluna 2;
8) calcule e mostre quantos elementos so nmeros maiores que a mdia (e mostre esses
elementos);
9) mostre em que posio se encontra o maior e o menor elemento da matriz;
10) crie uma segunda matriz MatNeri de 4x4 e armazene o contedo de cada elemento da
matriz multiplicado por 2, mostre os elementos dessa nova matriz;
11) Que mostre os elementos pares e Impares da matriz, e dizer tambm quantos so pares e
quantos so impares;
12) Crie um vetor chamado Vetor_neri que contenha os elementos da 2 linha e mostre este
vetor

Algoritmo matriz_12questoes;

Var Mat4:matriz [1..4,1..4] de inteiro;


MatNeri:matriz [1..4,1..4] de inteiro;
Vetor_neri:vetor[1..4] de inteiro;
l, c, maior, menor,soma, media, com_media, conta_pares, conta_impares de
inteiro;
elem_vert,elem_sec, elem_l3, elem_c2, mostra_com_media, pos_maior, pos_menor,
mostra_pares, mostra_impares, vetNeri de caracter;
Inicio
Maior 0; menor 99999; soma 0; com_media 0; conta_pares 0;
conta_impares 0;
elem_vert ; elem_sec ; elem_l3 ; elem_c2 ; mostra_com_media ;
pos_maior ;pos_menor ; mostra_pares ; mostra_impares ;
vetNeri ;

Para l de 1 at 4 faa
Para c de 1 at 4 faa
Inicio
Mostrar Digite valor para Mat4[+l+,+c+].: ;
Ler(mat4[l,c]);
Soma soma + mat4[l,c];
Fim;
Media soma / 16;
Para l de 1 at 4 faa
Para c de 1 at 4 faa
Inicio_para
Mostrar O valor de mat4[+l+,+c+].: +mat4[l,c];
Se l = c entao Elem_vert elem_vert + mat4[l,c];
Se c = (5-l) entao Elem_sec elem_sec + mat4[l,c];
Se l = 3 entao Elem_l3 elem_l3 + mat4[l,c];
Se c = 2 entao Elem_c2 elem_c2 + mat4[l,c];
Se mat4[l,c] >= media entao
inicio
com_media com_media + 1;
mostra_com_media mostra_com_media + mat4[l,c];
fim;

Se mat4[l,c] > maior entao Pos_maior mat4[+l+,+c+];


Se mat4[l,c] < menor entao Pos_menor mat4[+l+,+c+];
MatNeri[l,c] Mat4[l,c] * 2;
Se mat4[l,c] mod 2 = 0 ento
Inicio
Conta_pares conta_pares + 1;
Mostra_pares mostra_pares + mat4[l,c];
Fim
Senao Inicio
Conta_impares conta_impares + 1;

Mostra_impares mostra_impares + mat4[l,c];


Fim
Se l = 2 ento
inicio
Vetor_neri[c] mat4[l,c];
VetNeri vetNeri + mat4[l,c];
Fim;
Fim_para
Mostrar A soma dos elementos da matriz .: +soma;
Mostrar A media dos valores da matriz .: +media;
Mostrar Elementos da diagonal principal .: +Elem_vert;
Mostrar Elementos da diagonal secundaria .: +Elem_sec;
Mostrar Elementos da linha 3 .: +Elem_l3;
Mostrar Elementos da Coluna 2 .: +Elem_c2;
Mostrar com_media elementos atingiram a media, eles so.: +mostra_com_media;
Mostrar o maior valor est em +pos_maior+ e o menor valor est em +pos_menor;

Para l de 1 at 4 faa
Para c de 1 at 4 faa
inicio
Mostrar O valor de matNeri[+l+,+c+].: +matNeri[l,c];
Fim;
Mostrar conta_pares+ so pares, so eles .: +mostra_pares;
Mostrar conta_impares+ so impares, so eles .: +mostra_impares;
Mostrar O Vetor_neri possui os elementos.: +vetNeri;
End.

Prof Neri A. Neitzke Ulbra - www.informaticon.com.br


Crie um algoritmo que leia para um cadastro de cliente, o seu nome, sua
idade e o seu salrio. E por fim, mostre os valores.
Algoritmo cadastro_cliente;
Tipo cadastro = registro
Nome de caracter;
Idade de inteiro;
Salario de real;
Fim;
Var dados_cliente, dados_funcionario de cadastro;
Inicio
Mostre Digite o nome do cliente;
Ler(dados_cliente.nome);
Mostre Digite a idade do cliente;
Ler(dados_cliente.idade);
Mostre Digite o salrio do cliente;
Ler(dados_cliente.salario);
Mostre O nome do cliente .: +dados_cliente.nome;
Mostre A idade do cliente .: +dados_cliente.idade;
Mostre O salario do cliente .: +dados_cliente.salario;
Mostre Digite o nome do funcionario;
Ler(dados_funcionario.nome);
Mostre Digite a idade do Funcionario;
Ler(dados_funcioanrio.idade);
Mostre Digite o salrio do Funcionario;
Ler(dados_funcionario.salario);
Mostre O nome do funcionario .: +dados_funcionario.nome;
Mostre A idade do funcionario .: +dados_funcionario.idade;
Mostre O salario do funcionario .: +dados_funcionario.salario;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: subalgoritmos - modularizao
Ler 2 nmeros, efetuar as 4 operaes matemticas e mostrar
os resultados.
Algoritmo operaes_subalgoritmos;
var num1, num2, soma, multiplicacao, divisao, subtracao de real;
procedimento leitura
inicio
Mostrar Digite o numero 1.:;
Ler(num1)
Mostrar Digite o numero 2.:;
Ler(num2);
Fim
Procedimento calculos
Inicio
soma num1 + num2;
multiplicacao num1 * num2;
divisao num / num2;
subtracao num1 num2;
fim
procedimento imprimir
inicio
mostrar A multiplicacao = +multiplicacao;
mostrar A divisao = +divisao;
mostrar A Subtracao = +subtracao;
mostrar A soma =+soma;
fim;
Inicio
Leitura;
Calculos;
Imprimir;
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: subalgoritmos modularizao procedimentos c/
parmetros
Ler 2 nmeros, efetuar as 4 operaes matemticas e mostrar
os resultados.
Algoritmo operaes_subalgoritmos_parametros;
var num1, num2, soma, multiplicacao, divisao, subtracao de real;
procedimento leitura
inicio
Mostrar Digite o numero 1.:;
Ler(num1)
Mostrar Digite o numero 2.:;
Ler(num2);
Fim
procedimento calculos(pn1, pn2 de real)
Inicio
soma pn1 + pn22;
multiplicacao pn2 * pn22;
divisao pn1 / pn2;
subtracao pn1 pn2;
fim
procedimento imprimir(mult, div, sub, som)
inicio
mostrar A multiplicacao = +mult;
mostrar A divisao = +div;
mostrar A Subtracao = +sub;
mostrar A soma =+som;
fim;
Inicio
Leitura;
Calculos(num1, num2);
Imprimir(multiplicacao,divisao, subtracao, soma);
Fim.

Vdeo Aulas de Algoritmos e Lgica de programao


Prof Neri A. Neitzke Ulbra - www.informaticon.com.br
Problema: subalgoritmos modularizao FUNES
Ler 2 nmeros, efetuar as 4 operaes matemticas e mostrar
os resultados.
Algoritmo subalgoritmos_funcoes;
var num1, num2, soma, multiplicacao, divisao, subtracao de real;
procedimento leitura
inicio
Mostrar Digite o numero 1.:;
Ler(num1)
Mostrar Digite o numero 2.:;
Ler(num2);
Fim
funo somar(pn1, pn2 de real) de real;
Inicio
soma pn1 + pn22;
retorna soma;
fim
funo multiplicar(pn1, pn2 de real) de real;
Inicio
multiplicacao pn1 * pn22;
retorna multiplicacao;
fim
funo dividir(pn1, pn2 de real) de real;
Inicio
divisao pn1 / pn22;
retorna divisao;
fim
funo subtrair(pn1, pn2 de real) de real;
Inicio
subtracao pn1 - pn22;
retorna subtracao;
fim
Inicio
Leitura;
Mostre A soma .: + somar(num1, num2);
Mostre A multiplicacao .: + multiplicar(num1, num2);
Mostre A subtrao .: + subtrair(num1, num2);
Mostre A diviso .: + dividir(num1, num2);
Fim.

Você também pode gostar