0% acharam este documento útil (0 voto)
17 visualizações55 páginas

Algoritmia Final

O documento aborda metodologias de programação, destacando a diferença entre linguagem natural e linguagem formal, além de apresentar conceitos de algoritmos, fluxogramas e estruturas de controle. Ele inclui exemplos práticos de algoritmos em Pascal, variáveis, operadores e estruturas de repetição. Também são apresentados exercícios para aplicar os conceitos discutidos, como cálculo de IMC e operações matemáticas.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
17 visualizações55 páginas

Algoritmia Final

O documento aborda metodologias de programação, destacando a diferença entre linguagem natural e linguagem formal, além de apresentar conceitos de algoritmos, fluxogramas e estruturas de controle. Ele inclui exemplos práticos de algoritmos em Pascal, variáveis, operadores e estruturas de repetição. Também são apresentados exercícios para aplicar os conceitos discutidos, como cálculo de IMC e operações matemáticas.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 55

Metodologias de Programação

Algoritmos
Linguagem natural versus
linguagem formal
É a linguagem falada ou escrita,
Linguagem natural como o português

Linguagem definida artificialmente, a


partir de um conjunto pré-
determinado de símbolos ou alfabeto
com um objetivo definido.

Linguagem formal
Tudo é um algoritmo
Resultado
BOLO DE CHOCOLATE
INGREDIENTES
1 chávena chá de óleo
2 chávena de chá de açúcar
4 ovos
DADOS
2 chávena de chá de farinha de trigo com fermento
125 g de chocolate em pó

Cobertura DE
ENTRADA
1 lata de leite condensado
3 colheres de chocolate em pó
1 lata de creme de leite
1 colher de manteiga

PREPARAÇÃO

Processamento
Misture os ingredientes e coloque-os numa forma untada
com manteiga. Leve ao forno e, por último, faça a cobertura.
Algoritmo • Conjunto ordenado de ações que
conduzem à solução de um problema.

• Formulação do
Conceção algoritmo.

• Utilização do
algoritmo numa
Implementação linguagem de
programação.
Linguagem e formas de representação das
instruções indicadas nos algoritmos
Fluxogramas

Linguagem e formas de representação das


instruções indicadas nos algoritmos
Exemplo
de um
Fluxogram
a
Operações básicas de um
algoritmo

Operações Instruções Programa


• Leitura ou • Ler (Num1); • Read (num1);
input • soma num1+num2; • Soma := num1 + num2;
• Atribuição • Writeln (soma); • Writeln ( ‘A soma é ‘ ,
• Escrita ou soma);
output
Instruções, variaveis e
operadores
Início

Variaveis Area, Comp, Larg : Inteiros ;


Ler(comp,larg)
Início

Ler (comp, Larg); Leitura Area<comp*larg


Area Comp * Larg Atribuição
Writeln (Area); Escrita

Fim Escrever(Area)

Fim
Exercício1
inicio

Algoritmo troca_valores;
Variáveis a, b, c: lógico; a <-true

Inicio
a  true; b <- false

b  false;
c <-a
c  a;
a  b; a <- b

b  c;
Escrever (a, b); b <- c

Fim
Escreve (a,b)

fim

Exercício2:
Apresente sob a forma de fluxograma.
Linguagem
Pascal

Estrutura representativa da estrutura de escrita de um programa em Pascal


• O primeiro carater é sempre uma
Variáveis letra
Critérios • Não pode ter espaços em branco
para
É uma entidade que construir • As palavras reservadas da
uma linguagem de programação não
pode assumir variável podem ser atribuídas
• Carateres não permitidos: ?, *, !, ç,
vários/diferentes
é, ã, etc.
valores ao longo da
execução de um
programa.
Lucro, custo: inteiro;
Declaração e atribuição
Nome : string;
Tipos de variáveis
caracteres Caracteres, elementos da tabela ASCII Char

Texto Cadeias de caracteres ou texto String

Inteiros (10; 2000) Reais


Numéricos (1.5; 0.125)
Integer ou Real

Alfanuméricos Ex: Hoje é dia 30

Lógicos Verdadeiro ou Falso Boolean


Dados Tipo de variável
Variáveis
Nome
Número
Morada
Telefone
Peso
Altura
Código postal
Idade
Clube futebol
Género char
-19
“25 de abril”
“-500”
3,05x105
True
EXERCÍCIO 3
Elabore um algoritmo que some
dois números e multiplique o
resultado pelo primeiro número.
Sintaxe e declaração de
variáveis
Sintaxe Exemplo
Var peso, altura: real;
Var <id1,id2, …>:<Tipo de dados>; soma: integer;
nome: string;
Sintaxe e declaração de
Constantes
Sintaxe Exemplo
Const PI: 3.1415926;
Const <id>:<valor>;
a=3;

Constantes – são identificadores para designar valores que não variam ao longo
da execução do programa.
Sintaxe e exemplos de
atribuição de valores a variáveis

Sintaxe Exemplo
quantidade:=10;
<id>:=<valor>;
Soma:=n1+n2+n3;

Instrução de atribuição– associar um determinado valor a uma variável.


Em pascal utiliza-se o sinal := que é o operador de atribuição.
Operadores Aritméticos relacionais e
lógicos

Operador Significado

NOT Negação

AND E (conjunção)

OR OU (disjunção)

XOR OU exclusivo
Resumo
Exercício
Elabore um algoritmo que permita calcular
o Índice de Massa Corporal (IMC) sabendo
que:
IMC = peso/ (altura*altura)
Funções pré definidas
 ABS – Devolve o valor absoluto de um
número, um número sem sinal
 SQR – quadrado de um número
 SQRT – raiz quadrada de um número
 Pi – número pi=3,14
 ROUND(x) – Arredonda o valor x para o
inteiro mais próximo
 TRUNC(x) – (elimina a parte decimal)
Estruturas de controlo
Estruturas IF
•Com base numa condição
de decisão •Com base num seletor
CASE
ou seleção

Estrutura de REPEAT …UNTIL


•Com base numa condição
repetição de •Com base num contador
WHILE…DO

ciclos FOR…DO
Estruturas de decisão –
IF Sintaxe
Program exames;
Var Nota1:real;
IF<condição> Then
Begin
<bloco de instruções> Writeln (‘Qual a nota do 1º exame?’);
[else
<bloco de instruções>] readln (Nota1);

If Nota1>=10 Then Writeln (‘Aprovado’)


end
Else
Writeln (‘Reprovado’);

End.
Fluxograma

Ler nota

F
If
nota>=10

Escrever Escrever
“Aprovado” “Reprovado”
Estrutura Dados dois valores, este algoritmo determina e imprime o
maior.
de
seleção ALGORITMO maior;
composta VARIÁVEIS valor1, valor2: inteiro;
(IF) INÍCIO
Caracterizada pela LER (valor1, valor2);
avaliação de uma SE valor1 > valor2 ENTÃO
condição e se a ESCREVER (‘O maior valor é ‘, valor1);
condição é verdadeira, SENÃO
efetua uma sequência
ESCREVER (‘O maior valor é ‘, valor2);
de ações, se a condição
FIM;
é falsa efetua outra
FIM.
série de ações.
Estruturas de seleção Case…Of
Integer ou char Var Nota : Integer;

Begin
Case <variavel> of Writeln(‘Qual a nota númerica’);
<valor1> : <instrução1>; readln (Nota);
<valor2> : <instrução2>;
Case Nota of
…..
0,1,2,3,4,5,6,7,8,9 : writeln (‘Mediocre’);
<valorN> : <instruçãoN>;
10..13 : Writeln (‘Suficiente’);
[Else :<instruçãoZ>]
14..20 : Writeln (‘Bom’);
FimSelecionar
end Else Writeln (‘Nota inválida’);

end;

End.
início

LER(nota)

CASO
Nota =

Escrever
0,1,2,3,4 “Medíocre”

5,6,7,8 Escrever “Mau”

Nenhuma das Escrever “Nota


hipóteses Inválida”

fim
Dado um dia da semana de 1 a 7, este algoritmo imprime o nome do dia
correspondente.
Estrutura
de ALGORITMO diasemana;
VARIÁVEL dia: inteiro;
seleção INÍCIO
múltipla ESCREVER (‘Insira um nº inteiro de 1 a 7’);
LER(dia);
(CASO) CASO dia
Caracterizada pela INÍCIO

avaliação de uma 1: ESCREVER (‘Segunda-feira’);


2: ESCREVER (‘Terça-feira’);
condição que pode ter
3: ESCREVER (‘Quarta-feira’);
como resultados N
4: ESCREVER (‘Quinta-feira’);
valores distintos, 5: ESCREVER (‘Sexta-feira’);
seguindo-se a execução 6: ESCREVER (‘Sábado’);
de uma das N sequências 7: ESCREVER (‘Domingo’);
de ações SENÃO ESCREVER (´Inseriu um número errado´);

correspondentes. FIM;
FIM.
(Pseudocódigo e
Fluxograma) que
determina o dia da
semana (escrito por
extenso) de acordo com
o valor inserido (entre 1
e 7).
Estrutura de seleção
CASE
Elabore um algoritmo que permita atribuir uma
classificação, em conformidade com nível
numérico fornecido.
[0-4] – Mau
[5-9] - Medíocre
[10-13] - suficiente
[14-17] - Bom
[18-20] – Muito Bom
Estrutura de seleção
CASE
Elabore um algoritmo que peça ao
utilizador a introdução de 2 números e
a operação que pretende fazer(+,-,*,/)
e mostre no ecrã o resultado dessa
operação.
Estruturas de repetição
ou ciclos
Processa uma sequência de instruções, tantas vezes quantas as
estabelecidas pela condição a que está sujeita.

W Re RE
hil pe PE
at TI
e… … R…
Do ENQ
For… To…
Do Un AT
UAN
… TO… til É…
FAZE
R… … .
Estruturas de repetição ou
ciclos
Ciclos controlados por uma condição Ciclos controlados por um contador

Com base numa condição a For Cont:= V-inicial To V_final


avaliar no fim
Repeat Do
<bloco de instruções>
Until <condição> <bloco de instruções>

Com base numa condição a


avaliar no início
While <condição>
Do
<bloco de instruções>
Estruturas de repetição ou ciclos

Iteração – significa repetição, corresponde a cada


uma das vezes que o ciclo são repetidos.
Contador – é uma variável que efetua a contagem
do numero de vezes(iteração) que um ciclo é
executado.
Acumulador – é uma variável que permite efetuar
o somatório de uma serie de valores consecutiva e
cumulativamente.
Estruturas de repetição
For Cont:= V-inicial To Var i, Soma : integer;
V_final
Begin
Do
<bloco de instruções> Soma:=0;

For i:=5 to 10 do

soma:=soma +i;

writeln (soma);

End.
Estruturas de repetição
Repeat Var Valor, Soma : integer;

Begin
<bloco de instruções>
Writeln (' introduza um número e Termine com 0.');
Until <condição> soma:=0;
Repeat
Writeln ('Introduza um valor');
read(valor);

soma := soma + valor;


writeln ('Soma: ', soma);

Until valor = 0;

writeln (soma);

End.
while
Elabore um algoritmo que peça ao
utilizador que introduza vários
números, enquanto a soma desses
números for menor que 100.
Estruturas de repetição
While <condição> var valor, soma: integer;
Begin
Do soma:= 0;
while soma<100 do
<bloco de instruções>
begin

write ('introduza um valor');


read(valor);
soma:= soma + valor;

end;
write (' O valor do somatório é ' , soma);
End.
Program contanomes ; Program contanomes ;
Var conta: integer; Var nome: string;
nome: string;
Begin
Begin
conta:=0;
Writeln ('escreva o seu nome');
read(nome); Repeat
while nome<> 'Fim' Do Writeln ('escreva o seu nome e termine
Begin com a palavra FIM');
Conta :=conta + 1; read(nome);
Writeln ('escreva o seu nome');
read(nome); Until nome='FIM';
end;
End.
Writeln ('Foram digitados ' , conta, 'nomes');
End.
Estrutura Repeat e While.

Elabore um algoritmo que efetue a


soma de vários números introduzidos
pelo utilizador até que o número
introduzido seja 0(zero).
Exercício

Elabore um algoritmo e respetivo fluxograma que realize as seguintes


instruções:
Algoritmo num_2_sup;
Variaveis num, res1, res2: inteiro;
Inicio
Escrever (“Digite um numero inteiro”);
Ler (num);
res1 <- num + 1;
res2 <- res1 + 1;
Escrever (res1, res2);
Fim.
Exer 1

Elabora um algoritmo capaz


de calcular a hipotenusa de
um triângulo retângulo. Os
valores dos catetos devem
ser pedidos ao utilizador.
Ex2
Elabore um algoritmo que permita efetuar a leitura
de 3 valores inteiros e calcular o:
-triplo do primeiro valor,
-o produto do segundo valor com o terceiro e
- o quadrado do terceiro valor.
Exer 3
Construa um algoritmo que, tendo como dados de
entrada dois pontos quaisquer no plano, P(x1,y1) e
P(x2,y2), escreva a distância entre eles. A fórmula
para o cálculo é:
Ex4: Cálculo da área de
um circulo
Program areacirc ;
var A, R: real;

Begin
writeln ('Digite o raio do circulo');
read (R);
A:=3.14159*sqr(R);
Writeln ('A area da circunferencia é de ' , A);
End.
Exercício 5
Utilizando a estrutura de decisão IF,
construa um algoritmo que, determine
o maior de dois números dados.
Estrutura Repeat e While.

Elabore um algoritmo, que peça ao


utilizador que introduza um nome e só
termine o ciclo quando o utilizador
digitar a palavra FIM.
Ciclo For
Elabore um algoritmo que calcule a média de
idades de uma turma.
O número de alunos e as idades dos alunos
são introduzidos pelo utilizador.
Ciclo For
Elabore um algoritmo que calcule a
tabuada de um número N.

Você também pode gostar