Upload
pilar
View
5
Download
0
Embed Size (px)
DESCRIPTION
aplicações informaticas b
Citation preview
INTRODUÇÃO INTRODUÇÃO
ÀÀ
PROGRAMAÇÃOPROGRAMAÇÃO
ALGORITMO
Algoritmo é um conjunto finito de regras com uma sequência de operações para resolver um tipo de problema específico.
Características básicas de um algoritmo:•Ter fim;•Não dar margem à dupla interpretação (não ambíguo);•Capacidade de receber dados de entrada do mundo exterior;•Poder gerar informações de saída para o mundo externo ao ambiente do algoritmo;•Ser efectivo (todas as etapas específicas no algoritmo devem ser alcançáveis em tempo finito).
FORMAS DE REPRESENTAÇÃO DO ALGORITMO
DESCRIÇÃO NARRATIVA, faz-se o uso do português para descrever algoritmos.
Exemplo: Receita de bolo:Providencie manteiga, ovos, 2 Kg de massa, etc.Misture os ingredientesDespeje a mistura na fôrma de boloLeve a fôrma ao fornoEspere 20 minutosRetire a fôrma do fornoDeixe arrefecerProve
VANTAGENS:
• Está escrito em português;
DESVANTAGENS:
• imprecisão;• pouca confiabilidade (a imprecisão acarreta a desconfiança);• extensão (normalmente, escreve-se muito para dizer pouca coisa).
FLUXOGRAMA, utilização de símbolos gráficos para representar FLUXOGRAMA, utilização de símbolos gráficos para representar algoritmos.algoritmos.
No fluxograma existem símbolos padronizados parainício, entrada de dados, cálculos, saída de dados, fim.
Cálculo Decisão Entrada Saída início / Fim
início
NUM
Dobro = NUM * 2
DOBRO
Fim
EXEMPLO EXPLICAÇÃO
Início do algoritmo
Entrada do Número
Cálculo do dobro do número
Apresentação do resultado
Fim do algoritmo
VANTAGENS:
• Uma das ferramentas mais conhecidas;• Figuras dizem muito mais que palavras;• Padrão mundial.
DESVANTAGENS:
• Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;• Complica-se à medida que o algoritmo cresce.
LINGUAGEM ALGORÍTMICA, consiste na definição de uma pseudolinguagem (pseudocódigo), cujos comandos são em português para representar algoritmos em português.
EXEMPLO: Algoritmo CALCULA_DOBRO
NUM,DOBRO : inteiroinícioLeia NUMDOBRO 2 * NUMEscreva DOBROFim
VANTAGENS:• Usa o português como base;• Pode-se definir quais e como os dados vão estar estruturados;• Passagem quase imediata do algoritmo para uma linguagem de programação qualquer
DESVANTAGENS:• Exige a definição de uma linguagem não real para trabalho;• Não padronizado.
Exercício
Imagine um problema que deveria ser resolvido por um robot.Escreva numa folha o que pretende, sendo o mais claro possível.Entregue a folha a um colega e peça-lhe que elabore o respectivo algoritmo e que escreva noutra folha as dúvidas que surgirem sobre o problema a resolver.Depois de esclarecidas as dúvidas refaçam o algoritmo inicial.Classifiquem os dois algoritmos quanto à qualidade.
Linguagens de Programação
• As linguagens de programação são conjuntos de palavras utilizadas na escrita de programas, de acordo com o léxico próprio sujeito a uma determinada estrutura e, na maior parte das vezes, vocacionadas para uma particular área de assuntos.
A única linguagem que o computador realmente entende designa-se por linguagem máquina e tem por base zeros e uns (sistema binário), representativos da passagem de corrente de baixa e alta tensão pelo cabo de alimentação do computador.
• Linguagem máquina Linguagem orientada para as máquinas cujas instruções podem ser
directamente utilizadas pelo computador.
PROGRAMA
• Conjunto de instruções com uma sequencia lógica e previamente estabelecida que permite a execução de tarefas pelo computador
Classificação de Linguagens
• As linguagens de programação podem ser classificadas como, linguagens de alto e de baixo nível, de acordo com a proximidade que têm ou não das linguagens humanas, as linguagens de baixo nível são as que se encontram orientadas para a máquina (computador), enquanto que as linguagens de alto nível não reflectem a estrutura de nenhum computador em particular.
• ASSEMBLY – Baixo, médio nível – L. máquina e assembler
Desenvolvimento de sistemas.
• ALGOL, APL, C, COBOL, BASIC, FORTRAN, PASCAL – Alto nível – L. comerciais
Programas de gestão e comercio
Trabalhos académicos e investigação científica.
EXERCÍCIOS
• 1. O que entende por programa?
• 2. Qual a única linguagem que o computador entende?
• 3. Enumere algumas linguagens de programação conhecidas?
• 4. Que entende por linguagens de alto nível?
INTERPRETADORES e COMPILADORES
• INTERPRETADORES e COMPILADORES
Software para tradução de programas escritos em linguagens de programação evoluídas para linguagem máquina ou assembly.
INTERPRETADORES – Traduz instrução por instrução, á medida que o programa vai sendo lido e executado. Fica assim dependente do software dessa interpretação.
COMPILADORES – Traduz a globalidade das instruções de alto nível para um programa em código máquina. Poderá ser executado autonoma e independentemente do software que fez a compilação.
INTERPRETADORES e COMPILADORES
• A principal diferença entre interpretadores e compiladores é o facto dos interpretadores traduzirem linha a linha qualquer programa escrito numa dada linguagem de programação para linguagem máquina, de forma a que o computador possa entender qual o objectivo do programa. Enquanto que os compiladores efectuam uma tradução total do programa original, gerando um outro programa escrito em linguagem máquina e pronto a ser utilizado pelo computador em qualquer ocasião.
PROCESSO DE COMPILAÇÃO
• No processo de compilação, o programa original, escrito numa qualquer linguagem de programação evoluída, é designado de PROGRAMA FONTE. Este programa fonte é posteriormente submetido ao processo de compilação, com o auxilio de um compilador que gera um programa correspondente, escrito numa linguagem máquina ou assembly e designado por PROGRAMA OBJECTO. A este ultimo é adicionada uma rotina que proporciona a independência do programa relativamente ao compilador, gerando-se deste modo um PROGRAMA dito EXECUTÁVEL.
• PROGRAMAS FONTES – São guardados em ficheiros com extensão BAS, PAS, C…
• PROGRAMAS OBJECTO - São guardados em ficheiros com extensão OBJ.
• PROGRAMAS EXECUTÁVEIS - São guardados em ficheiros com extensão EXE
EXERCÍCIOS
• 1. Qual a diferença entre interpretador e compilador?
• 2. Em que consiste o processo de compilação?
• 3. O que entende por programa fonte, programa objecto e programa executável.
• 4. Qual a extensão dos ficheiros utilizados e gerados num processo de compilação?
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
• Os computadores são formados por circuitos digitais
• A informação e os dados são codificados em zeros e uns (linguagem máquina)
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
bit - unidade mínima de informação com que os sistemas informáticos trabalham
Binary Digit
BIT
(0 1)
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
• Sistema de numeração binária utiliza combinações dos dígitos 0 e 1
• Toda a informação que circula dentro de um sistema informático é organizada em grupos de bits
• Os mais frequentes são os múltiplos de 8 bits: 8, 16, 32, etc.
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
• BYTE – BinarY TErm Os bytes são os agrupamentos de bits mais usados nos sistemas informáticos.
Um byte é um agrupamento de oito bits.
Representam informação seja esta relativa a números, caracteres, instruções de código máquina ou outro tipo de dados.
1 0 1 0 0 1 0 1
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
• 1 Byte 8 bits 256 combinações possíveis
• No sistema binário (0 e 1), para determinar o número de combinações com n bits, basta calcular 2n
• Exemplos:
- 1 bit 21=2 combinações possíveis (0 e 1)
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
2 bit 22=4 combinações possíveis
0 0
0 1
1 0
1 1
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
3 bit 23=8 combinações possíveis
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
4 bit 24=16 combinações
possíveis
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
. . . .
1 1 1 1
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
DECIMAL
0 1 2 3 4 5 6 7 8 9
BINÁRIO
0 1
SISTEMAS DE NUMERAÇÃO BINÁRIA E SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMALDECIMAL
Conversão de decimal para binário Efectuar divisões sucessivas por 2 até se obter o quociente 1 Em seguida forma-se o numero binário com 1 do quociente,
seguido de todos os restos obtidos nas divisões, mas tomados por ordem inversa.
Exemplo:
20 2
0 10 2
0 5 2
1 2 2
0 1
20(10) = 10100(2)
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMALConversão de binário para decimal
• Começando a ler o número da direita para a esquerda: - Primeiro digito representa a potência de base 2 e expoente 0; - Segundo digito representa a potência de base 2 e expoente 1; - Terceiro digito representa a potência de base 2 e expoente 2; - nésimo digito representa a potência de base 2 e expoente n-1;
• Somar as multiplicações parciais efectuadas entre o dígito e a potência a ele atribuída
SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL
Conversão de binário para decimal
Exemplo:
10100(2) = 20(10)
1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 0 x 20
16 + 0 + 4 + 0 + 0 = 20(10)
UNIDADE MÍNIMA DE INFORMAÇÃO
Binary Digit
BIT0 1
1 byte - 8 bits
1 Kbyte - 1024 bytes
1 Mbyte - 1024 Kbytes
1 Gbyte - 1024 Mbytes
1 Tbyte - 1024 Gbytes
EXERCÍCIOS• Efectue as seguintes conversões, apresentando todos os cálculos.
1. De decimal para binário:
a) 49(10)………?(2)
b) 58(10)………?(2)
c) 31(10)………?(2)
d) 37(10)………?(2)
2. De binário para decimal:
a) 111011(2)………?(10)
b) 101011(2)………?(10)
c) 10101(2)………?(10)
d) 100111(2)………?(10)
3. Hexadecimal para binário:
a) 49(16)………?(2)
b) 58(16)………?(2)
c) 1BC(16)………?(2)
d) A2D (16)………?(2)
ESTRUTURA DE DADOS= STRUCTURE OF DATAESTRUTURA DE DADOS= STRUCTURE OF DATA
TIPO DE DADOS
SIMPLES ESTRUTURADOS
DEFINIDOS PELO UTILIZADOR
ENUMERADOS
SUBCONJUNTOS
PADRÃO
INTEIRO
REAL
CARACTER
LÓGICO OU BOOLEANO
ESTÁTICOS DINÂMICOS
VECTOR/MATRIZ
REGISTO
FICHEIRO
CONJUNTO
LISTAS
PILHAS
ÁRVORES
GRAFOS
DADOS SIMPLES, são dados em que cada variável opera apenas com um determinado valor de cada vez;
DADOS ESTRUTURADOS, são dados em que é possível agrupar um conjunto de dados numa mesma variável.
CONJUNTO ENUMERADO, é aquele em que se indicam todos os elementos que o constituem;
Exemplos: CORES=(Verde, Vermelho, Azul, Amarelo, Ciano) DIADASEMANA=(Segunda, Terça, Quarta, Quinta, sexta, Sábado; Domingo)
SUBCONJUNTOS OU INTERVALOS, são dados em que se define um intervalo, com base num conjunto de ordinais. Indica-se o primeiro e o último elemento.
Exemplos: Inteiropequeno = 1..100; Letramaiuscula = ‘A’..’Z’ Diadetrabalho = Segunda..Sexta
Conjunto de dados Ordinais, corresponde a conjuntos de elementos enumeráveis e ordenáveis. (qual a ordem de cada elemento dentro do respectivo conjunto)
INTEIROS: -32768, +32767
REAL: comporta números com casas decimais, por isso deverá ser formatado o resultado de uma variável do tipo REAL;
CARACTERES = CHAR, são letras, algarismos, e caracteres especiais.
LÓGICO OU BOOLEANO: Verdadeiro(V) ou Falso(F)
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Elementos e estruturas fundamentais usados em programação:
•Dados•Instruções básicas•Expressões•Estruturas de controlo•Subprogramas
•Dados, base da informação, são usados num programa sob a forma de constantes e variáveis.
Em programação as constantes e as variáveis estão associados a identificadores.
Identificadores, são nomes que se atribuem a constantes e a variáveis com que se opera dentro de um programa.
•Regras para definir os identificadores:•Não incluírem espaços entre as palavras•Pode usar o “underscore”•Não conterem outros caracteres para além das letras do alfabeto e dos dígitos decimais•Não podem usar caracteres acentuados•Não começar por um dígito decimal
Exemplos de identificadores( de variáveis ou de constantes) Q, Quantidade, Quant, Num, Numero, x2, Taxa_anual. …..
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Constantes: são valores que se mantêm inalterados dentro de um programa.
Variáveis: são entidades que podem assumir diferentes valores ao longo da execução do programa.
Nota:
Palavras reservadas, são palavras de utilização restrita da linguagem; o programador não pode criar variáveis
e constantes com estas palavras.
STRINGSTRING
STRING ou CADEIA DE CARACTERES, é um tipo variável para facilitar a leitura e escrita
de palavras e frases usadas em programas.
STRING, é uma sequência de caracteres envolvida por apóstrofos.
Exemplos:
‘Rua D. Manuel I, nº 25’
‘AntóniomPedro’
‘46734’
‘Verde’
‘Continua S/N ? ‘
STRINGSTRING
OPERAÇÕES POSSÍVEIS COM DADOS DO TIPO STRING:
•CONCATENAÇÃO
•COMPARAÇÃO
CONCATENAÇÃO DE STRINGS:
X, Y, Z Identificadores do tipo string
X=‘Bom ’Y=‘dia’Z=X+Y
Resultado de Z é: ‘Bom dia’
Nme, Apelido1, Apelido2:String
Nome=‘António ’
Apelido1=‘Santos ‘
Apelido2=‘Costa’
Concatenação: Nome+Apelido1+Apelido2
‘António santos Costa’
STRINGSTRING
COMPARAÇÃO DE STRINGS:
As operações de comparação são realizadas através dos operadores relacionais:
=, <>, <, >, >=, <=, tomando como resultado possível um dos dois valores TRUE ou FALSE.
Nas operações de comparação de strings são utilizados os critérios:
• De ordem alfabética
• De quantidade de caracteres
• Do valor do código (ASCII) * “ American Standard Code for Information Interchange”
"Código Padrão Americano para o Intercâmbio de Informação”)
Nota: A tabela código ASCII, surgiu nos anos 60, devido à necessidade de criar um padrão que fosse utilizado por todosos computadores, tornando mais fácil a comunicação entre eles e a troca de dados.
OPERAÇÃO RESULTADO
‘Livro’ < ‘Livros’ True
‘Revista’ > ‘Livro’ True
‘livro’ = ‘Livro’ True
´Lápis’ > ‘Livro’ False
‘Lapiseira’ < ‘Livro’ True
‘Verde’ > ‘Encarnado’ True
‘Verde’ > ‘Vermelho’ False
‘gato’ <> ‘GATO’ False
STRINGSTRING
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Os dados são a base de informação, podemos apresentá-los em:
Dados alfanuméricos Dados numéricosJosé 2Rua Gil Vicente, 12 – 3º Esq -57Jornalista 32295Verde 6,(3)16º E 2.34E+5
Os dados são classificados quanto ao tipo ou natureza da informação de que são base. Assim os dados numéricos podem ser inteiros, reais,..(ver diapositivo 30))
Podemos constituir grupos de dados dentro do universo dos tipos de dados, aos quais se atribui um nome, que se designa por Identificador.
Identificador dado
Nome Rui
Nome Sara
Idade 23
Idade 24
Rui e Sara constituem um pequeno grupo de dados, cujo identificador é nome)
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
(Cada tipo de dados tem operações de acordo com a sua natureza)
Operadores para dados Inteiros
Adição +
Subtracção -
Multiplicação *
Divisão /
Divisão Truncada DIV
Resto da Divisão MOD
Nota: A divisão de dois números inteiros poderá apresentar como resultado um valor real. O mesmo não ocorre com as demais operações possíveis com dados inteiros.
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exemplo:
Dados: 5 e 7
OPERAÇÃO RESULTADO
7 + 5 12
7 - 5 2
7 * 5 35
7 / 5 1.4 (Real)
7 DIV 5 1 (quociente)
7 MOD 5 2 (Resto da divisão de 7 por 5)
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Operadores para dados Reais
Adição +
Subtracção -
Multiplicação *
Divisão /
Nota: O resultado de operações reais é sempre real.
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exemplo:
Dados: 2.453 e 4 (Real)
OPERAÇÃO RESULTADO
4 + 2.453 6.453
4 - 2.453 1.547
4 * 2.453 9.812
4 / 2.453 1.6306183
Operadores Relacionais
Igual =
Diferente <>
Menor <
Menor ou igual <=
Maior >
Maior ou igual >=
Nota: O resultado de operações relacionais toma apenas um de dois valores: Verdadeiro ou Falso. Qualquer tipo de dados pode ser sujeito a operações relacionais.
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
OPERAÇÃO RESULTADO
10 = 4 Falso
10 <> 4 Verdadeiro
10 < 4 Falso
10 <= 4 Falso
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exemplo:
Dados: 4 e 10
Operadores Lógicos ou Booleanos
Negação Not (não)
Conjunção And (E)
Disjunção OR (ou)
Nota: O resultado de operações lógicas ou booleanas toma apenas um de dois valores: Verdadeiro ou Falso. Qualquer tipo de dados pode ser sujeito a operações lógicas.
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exemplo:
Dados: 3 e 5
OPERAÇAO RESULTADO
> 3 AND < 5 Verdadeiro
< 3 AND > 5 Falso
< 3 OR > 5 Verdadeiro
10 <= 4 Falso
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
EXPRESSÕES, são conjuntos de variáveis, constantes e operadores, (passíveis de tratamento computorizado).
2ab+3c 2*a*b+3*c
2(a+b) 2*(a+b)
- 4ac - 4*a*c / 2*b 2b
Para programação
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
PRIORIDADE DOS OPERADORES ARITMÉTICOS
Em programação são considerados três níveis na hierarquia dos operadores aritméticos.
Nível 1 - Parênteses
Nível 2 – Multiplicação e Divisão, Div e Mod
Nível 3 - Adição e Subtração
(a prioridade é mais alta quanto menor o nível de hierarquia)
PRIORIDADE DOS OPERADORES LÓGICOS
Nível 1 - NOT (NÃO)
Nível 2 – AND (E)
Nível 3 - OR (OU)
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exemplos:
A expressão 2*4+1 está sujeita a diferente interpretação comparativamente à expressão 2*(4+1)
8+1=9 2*5=10
-b+b2-4ac numerador 2a denominador
(primeiro evidencia-se o numerador do denominador, recorrendo à utilização de parênteses)
(-b+b2-4ac) / (2a)
(-b+b2-4ac) / (2*a)
(-b+(b*b)-(4*a*c))
(-b+(b*b)-(4*a*c)) / (2*a)
Nota: se houver uma sequência de operadores de igual prioridade, a execução será na
ordem que aparecem as operações.
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
8/(4*2) <> 8/4*2
8/8 = 1 2*2 = 4
3*4/2 = 3*(4/2)
12/2= 6 3*2 = 6
A expressão:
(A > 2) AND NOT (A>20) (A>2) AND (NOT(A>20)
Na expressão:
(X=0) OR (X>=2) AND (X<=5)
Será resolvido primeiro o AND
(X=0) OR [(X>=2) AND (X<=5)]
Comparar as expressões
ESTRUTURA DE DADOS = STRUCTURE OF DATAESTRUTURA DE DADOS = STRUCTURE OF DATA
Exercício:
Para os valores: a=10; b=12; c=13; d=10, resolva as seguintes expressões:
1. [(a>b) OR (a<c)] AND [(a=c) OR (a>=b)] R:
2. [(a>=b) OR (a<d)] AND [(a>=d) AND (C>D)] R:
3. NOT(a=c) AND (c>b)
NOT F AND V
V AND V
V
A=12; B=13; C=5; D=15
Not[(a<b OR c<d AND d<c) AND (a>b OR c>b)]
NOT[(12<13 OR 5<15 AND 15<5) AND (12>13 OR 5>13)]
NOT [ V OR V AND F) AND ( F OR F)]
NOT [( V OR F ) AND F ]
NOT ( V AND F)
NOT F
V
Pseudocódigo
• Os algoritmos podem ser descritos em uma linguagem chamada pseudocódigo.
A pseudolinguagem pode ser visto como a tentativa de fundir a expressividade da linguagem natural e o rigor lógico de esquemas como o fluxograma.
A pseudolinguagem permite a descrição do algoritmo de uma forma linear, fácil de ler e fácil de compreender.
Pseudocódigo
• Cabeçalho– É dado o nome ao algoritmo. Começa com a palavra
“PROGRAMA".• Declarações
– Descrição das variáveis usadas.• Corpo
– Contém a sequência dos passos (ações) do algoritmo.Inicia-se com a palavra "Início“ e termina com a palavra "Fim".
• Comentários– Cada passo do algoritmo pode iniciar com um comentário entre
dois parênteses rectos/chavetas. Estes comentários dão uma breve descrição do passo ou dum grupo de passos seguintes.
– Os comentários são uma parte importante do algoritmo.Eles servem para tornar a leitura, do algoritmo, mais fácil e clara.
ESTRUTURAS DE CONTROLO
As estruturas de controlo são de vital importância, na elaboração de programas organizados, flexíveis, que permitem ser alterados com facilidade.
ESTRUTURAS DE CONTROLO
SEQUENCIALDECISÃO
OUSELEÇÃO
REPETIÇÃO OU
CICLOS
ESTRUTURA SEQUENCIAL
É a estrutura de controlo mais simples e consiste na execução das instruções pela sequência definida.
Início…
A 20;
B A + 2;
C A / B;
…Fim.
A 20
B A + 2
C A / B
Início
Fim
…
…
O que fazemos com a Estrutura Sequencial?
Problemas simples e limitados: leitura de valores, atribuição de valores, cálculos e escrever resultados.
Exercício
1.Pretende-se obter a soma de dois valores 10 e 15.
a) Elabore o algoritmo em pseudocódigo ( dê um nome ao programa e declare as variáveis);
b) Faça a representação em fluxograma.
RESOLUÇÃO EM PSEUDOCÓDIGO
Programa soma _dois_valores_dados;
Constantes
Valor1=10;valor2=15;
Variáveis
Soma: Inteiro;
Início
Soma Valor1 + Valor2;
Escrever(‘ A soma dos valores dados é :’, Soma);
Fim.
Início
Escrever(Soma)
fim
Soma Valor1 + Valor2
Valor1 = 10
Valor2 = 15
FLUXOGRAMA
1.1 Pretende-se obter a soma de dois valores quaisquer, lidos a partir do teclado.
a) Elabore o algoritmo em pseudocódigo( dê um nome ao programa e declare as variáveis;)
b) Faça a representação em fluxograma.
RESOLUÇÃO EM PSEUDOCÓDIGO
Programa soma_dois_valores_quaisquer;
Variáveis
Valor1,Valor2,Soma: Inteiro;
Início
Escrever(‘ digite o primeiro valor ’);
Ler(Valor1);
Escrever(‘ digite outro valor ’);
Ler(Valor2);
Soma Valor1+Valor2;
Escrever(‘ O resultado é:’, Soma);
Fim.
Início
Escrever(Soma)
fim
Ler Valor1
Escrever(‘digite o primeiro valor’)
Soma Valor1 + Valor2
Ler Valor2
Ler(Valor1)
Ler(Valor2)
Escrever(‘digite outro valor’)
Soma Valor1 + Valor2
Escrever(‘O resultado é:’, Soma)
fim
InícioFLUXOGRAMA
ESTRUTURAS de DECISÃO OU SELEÇÃO ou CONDICIONAL
Para problemas mais complexos é importante que possamos decidir se uma instrução ou grupos de instruções devem ou não ser executadas, dependendo de um valor ou de uma expressão.
ESTRUTURAS de DECISÃO ou SELEÇÃO ou CONDICIONAL,São estruturas de controlo usadas para a resolução de algoritmos complexos.
ESTRUTURAS de DECISÃO ou SELEÇÃO ou CONDICIONAL
BASEADAS NUMA CONDIÇÃO
Se … Então … Senão
DE ESCOLHA MÚLTIPLA
Caso …
Estrutura SE,
Permite a seleção entre duas alternativas, dependendo de uma dada condição ou expressão
Início
Condição
Instrução se a condição For verdadeira
Instrução se a condiçãoFor falsa
Fim
N
S
SE condição ENTÃO
Início
Instrução 1
… Instrução n
Fim
SENÃO
Início
Instrução 1
… Instrução n
Fim
Bloco executado se a condição for verdadeira
Bloco executado se a condição for falsa
Estrutura SEEstrutura SE
Nota: Se um dos blocos incluir mais do que uma instrução, é necessário delimitá-los com as instruções de início e fim.
Estrutura SEEstrutura SE
A estrutura SE pode ser definida das seguintes formas:
1.SE … ENTÃO
2.SE … ENTÃO … SENÃO
Se a estrutura estiver definida da forma SE … ENTÃO , ao ser avaliada a
condição ou expressão. Se o valor for verdadeiro, é executado bloco de
instruções. Se o valor da condição for falso, o bloco de instruções não é
executado.
Caso a estrutura esteja definida da forma SE … ENTÃO … SENÃO, ao ser
avaliada a condição ou expressão. Se o valor for verdadeiro, é executado
apenas o primeiro bloco de instruções. Se o valor da condição for falso, é
executado apenas o segundo bloco de instruções.
Estrutura SEEstrutura SE
Exemplos
1.Ler um valor e enviar para o ecrã uma mensagem se o valor for negativo.
a)Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b)Represente em fluxograma.
2. Pretende-se saber qual o maior de dois valores introduzidos a partir do teclado.
a)Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b)Represente em fluxograma.
Estrutura SEEstrutura SE
Pseudocódigo
Mensagem;
Variáveis
Num: Inteiro;
Início
Escrever(‘ digite o número’);
Ler(Num);
Se Num < 0 Então
Escrever(‘mensagem’);
Fim.
1. Resolução
Estrutura SEEstrutura SE
Início
Ler Num
Escrever Mensagem
Num < 0
fim
N
S
Fluxograma
Estrutura SEEstrutura SE
2. Resolução
Pseudocódigo
Mensagem;
Variáveis
Num1,Num2: Inteiro;
Início
Escrever(‘ digite o número’);
Ler(Num1);
Escrever(‘ digite o número’);
Ler(Num2);
Se Num1 > Num2 Então
Escrever(Num1) *
Senão
Escrever(Num2);
Fim.
Nota: *
Não pomos o ;(ponto e vírgula) na instrução
Escrever(Num1) porque é a instrução antes da cláusula senão.
Quer dizer que não existe mais nenhuma instrução ligada à cláusula então.
Estrutura SEEstrutura SE
Fluxograma
Início
Ler Num2
Escrever Num1
Num 1>
Num2
fim
N
S
Ler Num1
Escrever Num2
Estrutura SEEstrutura SE
Exemplos
3. Escreva o resultado da divisão de 4 por um valor lido a partir do teclado, mas se esse valor for igual a zero(0) então escrever divisão não admitida .
(constante)
a)Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b)Represente em fluxograma.
3.1. Alterar o exercício 3 de maneira que o 4 seja uma variável.
4. Se o José arranjar um capacete, então a Rita leva-o de mota, senão vai de autocarro.
a)Represente em pseudocódigo.
b) Represente em fluxograma.
Programa divisao;
Variáveis
Valor: Inteiro;
Resultado: Real;
Início
Escrever(‘ digite o valor para a divisão’);
Ler(Valor);
Se valor = 0 Então
Escrever(‘ Divisão não admitida’)
Senão
Início
Resultado 4 / Valor;
Escrever(Resultado) ;
Fim;
Fim-se;
Fim.
Estrutura SEEstrutura SE
3. Resolução
Pseudocódigo
Estrutura SEEstrutura SE
Fluxograma
Início
Escrever Divisão não
admitida
Valor= 0
fim
N
S
Ler Valor
Escrever Resultado
Resultado 4 / Valor;
Programa divisao;
Variáveis
Valor, Valor1: Inteiro;
Resultado: Real;
Início
Escrever(‘ digite o valor para o divisor’);
Ler(Valor);
Escrever(‘ digite o valor para o dividendo’);
Ler(valor1)
Se valor = 0 Então
Escrever(‘ Divisão não admitida’)
Senão
Início
Resultado Valor1 / Valor;
Escrever(Resultado) ;
Fim;
Fim-se;
Fim.
3.1. Resolução
Estrutura SEEstrutura SE
Pseudocódigo
Fluxograma
Início
Escrever Divisão não
admitida
Valor= 0
fim
N
S
Ler Valor
Escrever Resultado
Resultado Valor / Valor1
Ler Valor1
Estrutura SEEstrutura SE
4. Resolução
Pseudocódigo
Programa capacete;
Início
Se O José arranjar um capacete Então
Escrever(‘ Vai de mota’)
Senão
Escrever(‘Vai de autocarro’) ;
Fim-se;
Fim.
Fluxograma
Início
Escrever Vai de mota
Arranjar um capacete
fim
N
S
EscreverVai de autocarro
Estrutura SEEstrutura SE
Exemplos
5. Elabore(faça) o algoritmo que escreva o maior de três(3) números, introduzidos a partir do teclado.
a)Represente em pseudocódigo. (declare o nome do programa e as variáveis).
(b) Represente em fluxograma.
5.1. Alterar o exercício 5 de maneira que escreva o menor.
a)Represente em pseudocódigo.
b) Represente em fluxograma.
Programa Maior_de_Tres_Numeros;
Variáveis
Num1,Num2,Num3: Inteiro;
Início
Escrever(‘ digite número’);
Ler(Num1);
Escrever(‘ digite número’);
Ler(Num2);
Escrever(‘ digite número’);
Ler(Num3);
Se (Num1 > Num2) E * (Num1 > Num3) Então
Escrever(‘ O maior é : ’, Num1)
Senão
Se (Num2 > Num1) e (Num2 > Num3) Então
Escrever(‘ O maior é : ’, Num2)
Senão
Escrever(‘ O maior é : ’, Num3)
Fim-se;
Fim-se;
Fim.
Estrutura SEEstrutura SE
5. Resolução Pseudocódigo
Início
Ler Num2
Escrever Num1
fim
N
S
Ler Num1
Escrever Num2
Ler Num2
(Num 1>
Num2)
(Num 1>
Num3)
E(Num 2
> Num1)
(Num 2>
Num3)E
S
N
Escrever Num3
Fluxograma
*Se (IF) (Num1 > Num2) E (AND) (Num1 > Num3) Então
(Num1 > Num2)
V OU F
(Num1 > Num3)
V OU F
OPERADOR E = OPERADOR AND
OPERANDO 1 OPERADOR OPERANDO 2 RESULTADO
V (TRUE) AND (E) V V
V AND (E) F F
F (FALSE) AND (E) V F
F AND (E) F F
V =TRUE F = FALSE
EXERCÍCIOS
6. Elabore(faça) o algoritmo que calcule e escreva a área de um quadrado. O valor é introduzido a partir do teclado, o valor tem que ser maior que zero, senão, tem como output(saída) as seguintes instruções: - O valor é zero ou negativo.- Solução com a estrutura repetir.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
7. Elabore(faça) o algoritmo que calcule e escreva a área de um rectângulo. Os valores são introduzidos a partir do teclado, valores esses maiores que zero, senão tem como saída as instruções do exercício 6.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
Estrutura SEEstrutura SE
Programa Area_dum_quadrado;
Variáveis
valor, Area: Real;
Início
Escrever(‘ digite o valor dos lados’);
Ler(valor);
Se (valor <= 0) Então
Início
Escrever(‘ O valor é zero ou negativo’);
Escrever(‘Solução com a estrutura repetir’);
Fim
Senão
Inicio
Area valor * valor;
Escrever(‘ A área do quadrado é : ’, Area:2:2,’m2’);
Fim;
Fim-se;
Fim.
Estrutura SEEstrutura SE
6. a. ResoluçãoPseudocódigo
Programa Area_dum_retangulo;
Variáveis
largura, comprimento, Area: Real;
Início
Escrever(‘ digite o valor da largura’);
Ler(largura);
Escrever(‘ digite o valor do comprimento’);
Ler(comprimento);
Se (largura > 0) And (comprimento > 0) Então
Início
area largura * comprimento;
Escrever('A área do rectângulo é : ', Area:2:2,' ','m2' ');
Fim
Senão
Início
Escrever(‘ O valor é zero ou negativo’);
Escrever(‘Solução com a estrutura repetir’);
Fim;
Fim-se;
Fim.
6. b. Resolução Pseudocódigo
(Nota: Se, a seguir ao primeiro valor lido.) Na estrutura Repetir
Program Nome; Cabeçalho
Const
Inicio=100;
Fim=999; Zona declarativa
Var
i,j:Integer;
Begin
i:=Inicio;
j:=Fim; Zona Operativa
Write(i,j);
End.
Estrutura de um Programa Pascal:
DE ESCOLHA MÚLTIPLA
Caso …
ESTRUTURAS de DECISÃO ou SELECÇÃO ou CONDICIONAL
BASEADAS NUMA CONDIÇÃO
Se … Então … Senão
DE ESCOLHA MÚLTIPLA
Caso seletor DECASE Seletor OF
Estrutura CASO
Estrutura CASO
• A estrutura CASO permite a escolha entre várias alternativas;
• É seleccionada uma instrução ou bloco de instruções com base no
valor de uma expressão designada SELECTOR;
(pode obter-se o mesmo resultado utilizando a estrutura SE encadeada, mas poderia conduzir a instruções difíceis de compreender)
• Tal como a estrutura SE a cláusula SENÃO não é obrigatória,
também se um dos blocos incluir mais do que uma instrução é
necessário delimitá-los com as instruções de início e fim;
CASO selector de
valor1: ínício
instrução1
… instruçãon
fim
… valorn: início
instrução1
… instruçãon
fim
SENÃO início
instrução1
… instruçãon
fimfim
Estrutura CASOEstrutura CASO
Estrutura CASOEstrutura CASO
Início
selector
Opção 1 Opção 2 … Opção n
…
Fim
EXERCÍCIOS
Estrutura CASOEstrutura CASO
8. Introduza um valor compreendido ente 1 e 6, correspondente aos meses do
primeiro semestre do ano, e que pretendíamos apresentar no ecrã, por extenso, o
mês correspondente. Se o valor cair fora deste intervalo, escrever valor não
admitido.
a.Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b.Represente em fluxograma.
c.Represente o mesmo problema, mas com a utilização da estrutura de Ses
encadeados.
a. Em pseudocódigo.
b. Em fluxograma.
9. Para o exercício nº 8, apresentar no ecrã, por extenso: o mês correspondente;
ano 2010 . Se o valor cair fora deste intervalo, escrever as instruções :valor não
admitido ; era um valor entre 1 e 6.
8. a. Resolução Pseudocódigo
Estrutura CASOEstrutura CASO
Programa Escrever_mes;
Variáveis
valor:inteiro;
Início
Escrever(‘Digite valor entre 1 e 6’);
Ler(valor);
Caso valor de
1 : Escrever(‘Janeiro’);
2 : Escrever(‘Fevereiro’);
3 : Escrever(‘Março’);
4 : Escrever(‘Abril’);
5 : Escrever(‘Maio’);
6 : Escrever(‘Junho’)
Senão
Escrever(‘Valor não permitido’);
fim;
Fim.
Início
Valor
Fim
Estrutura CASOEstrutura CASO
8.b. Fluxograma
Ler Valor
Escrever‘Janeiro’
1
Escrever ‘Fevereiro'
Escrever‘Março’
Escrever‘Abri’
Escrever‘Maio’
Escrever‘Junho’
2 3 4 5 6
Escrever‘Valor não admitido’
8.c. Pseudocódigo com Ses encadeados
Programa Escrever_mes;Variáveis Valor:inteiro;Início Esccrever(‘Digite valor entre 1 e 6’); Ler(Valor); Se Valor = 1 Então Escrever(‘Janeiro’); Senão Se Valor = 2 Então Escrever(‘Fevereiro’); Senão Se Valor = 3 Então Escrever(‘Março); Senão Se Valor = 4 Então Escrever(‘Abril); Senão Se Valor = 5 Então Escrever(‘Maio’); Senão Se Valor = 6 Então Escrever(‘Junho) Senão
Escrever(‘Valor não admitido’) fim.se fim.se Fim.se
fim.se fim.se fim.seFim.
8.c. Fluxograma com Ses encadeados
início
Valor =1
Ler valor
Valor =5
Valor =3
Valor =2
Valor =4
Escrever ‘Janeiro’
Escrever ‘Abril’
Escrever ‘Fevereiro’ Escrever
‘Março’Escrever
‘Maio’
Escrever ‘Valor não admitido’’
Escrever ‘Junho’
Valor =6
Fim
S
N
SS
SS
N
N
NN
S
N
Programa Escrever_mes;Variáveis valor:inteiro;Início Escrever(‘Digite valor entre 1 e 6’); Ler(valor); Caso valor de
1 : início Escrever(‘Janeiro’); Escrever(‘Ano 2010’); fim;2 : Início Escrever(‘Fevereiro’); Escrever(‘Ano 2010’); fim;3 : Início Escrever(‘Março’); Escrever(‘Ano 2010’); fim;4 : Início Escrever(‘Abril’); Escrever(‘Ano 2010’); fim;5 : Início Escrever(‘Maio’); Escrever(‘Ano 2010’); fim;6 : Início Escrever(‘Junho’); Escrever(‘Ano 2010’); fimSenão Início Escrever(‘Valor não permitido’); Escrever(‘Era um valor entre 1 e 6’); fim;
fim;
Fim.
9. a. Resolução pseudocódigo Estrutura CASOEstrutura CASO
É possível definir intervalos para os valores assumidos pelo selector.
Exemplo...
Início
Escrever(‘digite um número’);
Ler(num);
Caso num of
1 .. 100 : escrever(‘ Número compreendido de 1 a 100’);
101 .. 200 : escrever(‘ Número compreendido de 101 a 200’);
201 .. 500 : escrever(‘ Número compreendido de 201 a 500’);
fim;
Fim.
Estrutura CASOEstrutura CASO
Estrutura CASOEstrutura CASO
É possível definir intervalos para os valores, assumidos pelo selector, do tipo caracter, neste caso é necessário delimitá-los por dois apóstrofos(plicas), por exemplo ‘A’.
Exemplo...
Início
Escrever(‘digite um caracter’);
Ler(caracter);
Caso caracter de
‘A’ .. ‘D’ : escrever(‘ ABCD’);
‘E’ .. ‘H’ : escrever(‘ EFGH’);
‘I’ .. ‘K’ : escrever(‘ IJLK’);
fim;
Fim.
As estruturas que estudámos possibilitam-nos elaborar algoritmos em que
podemos escolher as instruções a serem executadas. No entanto, cada
instrução só é executada uma única vez. Mas, por vezes, é necessário
REPETIR uma instrução ou bloco de instruções.
• ESTRUTURAS DE REPETIÇÃO OU CICLOS
• UM CICLO é constituído por uma sequência de instruções – CORPO DO
CICLO – e por uma ESTRUTURA QUE CONTROLA a execução dessas
instruções, especificando o NÚMERO DE VEZES que o corpo do ciclo é
executado.
• As instruções incluídas no corpo do ciclo podem ser executadas qualquer
número de vezes(ou nenhuma vez), mas esse número tem de ser finito.
Estruturas de Repetição ou CiclosEstruturas de Repetição ou Ciclos
UTILIZANDO UM CONTADOR(USING AN ACCOUNTANT)
PARA … ATÉ … FAZER(FOR… TO … DO)
ESTRUTURAS de REPETIÇÃO ou CICLOS
(STRUCTURES of REPETITION or CYCLES)
BASEADAS NUMA CONDIÇÃO
(BASED IN A CONDITION)
ENQUANTO se verificar uma dada condição
(WHILE to verify one given condition)
ENQUANTO … FAZER(WHILE … DO)
ATÉ se verificar uma dada condição
(UNTIL if verifying one given condition)
REPETIR … ATÉ(REPEAT … UNTIL)
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
ESTRUTURAS BASEADAS NUMA CONDIÇÃO
ESTRUTURA ENQUANTO… STRUCTURE WHILE
ENQUANTO condição FAZER
Início
instrução1
… Corpo do Ciclo
instruçãon
fim
(Body of the Cycle)
(WHILE condition TO MAKE) (WHILE condition DO)
Estrutura ENQUANTOEstrutura ENQUANTO
Condição/ Expressão
N
S
Instrução 1
…
Instrução n
Estrutura ENQUANTOEstrutura ENQUANTO
A estrutura ENQUANTO possibilita repetir a execução de uma ou várias instruções,
enquanto uma determinada condição/expressão, do tipo lógico, tiver valor verdadeiro.
Dois aspectos a salientar na estrutura ENQUANTO:
• O corpo do ciclo pode não ser executado nenhuma vez, caso o valor da
condição/expressão seja falso, porque a condição/expressão é verificada antes de iniciar o
ciclo.
• Normalmente não é possível determinar, à partida, o número de vezes que o corpo do
ciclo é executado, porque o valor da condição que valida o fim do ciclo é alterado durante a
execução desse ciclo, não se sabendo que valor lhe vai ser atribuído.
•Nota: Enquanto o valor da condição for verdadeiro executa o ciclo, mas é necessário
alterar o valor durante a execução do ciclo, para que o ciclo termine, caso contrário, o ciclo
entra em loop infinito.
The structure WHILE it makes possible to repeat the execution of one or some instructions, while one determined condition/expression, of the logical type, will have true value.
Two aspects to point out in the structure WHILE:
• The body of the cycle can not be executed no time, in case that the value of the condition/expression is false, because the condition/expression is verified before initiating the cycle.
• Normally it is not possible to determine, to the departure, the number of times that the body of the cycle is executed, because the value of the condition that validates the end of the cycle is modified during the execution of this cycle, if not knowing that value goes to it to be attributed.
• Note: While the value of the condition will be true executes the cycle, but it is necessary to modify the value during the execution of the cycle, so that the cycle finishes, in case that contrary, the cycle enters in infinite Loop.
STRUCTURE WHILE STRUCTURE WHILE
Estrutura ENQUANTOEstrutura ENQUANTO
Exemplo:
Início Escrever(‘digite um número’); Ler(Numero); Enquanto Numero > 0 Fazer Inicio Escrever(‘O número é maior que zero’); Escrever(‘outro número’); Ler(Numero); Fim;Fim.
NOTA: Como se pode observar, o corpo do ciclo é executado enquanto o valor da variável Numero for maior que zero.Mas não possível dizer qual o número de vezes que o corpo do ciclo é executado: tanto pode ser nenhuma como uma infinidade de vezes.
NOTE: As if it can observe, the body of the cycle is executed while the value of the variable number will be greater that zero(>0). But not possible to say which the number of times that the body of the cycle is executed: as much can be none as a infinity of times.
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
10. Elabore(faça) o algoritmo que calcule e escreva a área de um quadrado. O valor é
introduzido a partir do teclado, valide o valor até ser maior que zero. O output(saída) tem as
seguintes instruções:
- O valor para o lado do quadrado é: ( apresentar o valor da variável).
- O resultado da área do quadrado.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
10. The algorithm elaborates (it makes) that calculates and writes the area of a square. The
value is introduced from the keyboard, validates the value until being bigger that zero.
Output (exit) has the following instructions:
- The value for the side of the square is: (to present the value of the variable).
-The result of the area of the square.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
EXERCÍCIOS
Programa Area_dum_quadrado;
Variáveis
Lado, Area: Real;
Início
Escrever(‘ digite o valor dos lados’);
Ler(Lado);
Enquanto (Lado <= 0) Fazer
Início
Escrever(‘ digite outro valor para o lado’);
Ler(Lado);
Fim;
Area Lado * Lado;
Escrever(‘ o valor para lado do quadrado é : ’, Lado:2:2);
Escrever(‘ O resultado da área do quadrado é : ’, Area:2:2,’m2’);
Fim.
10. a. Resolução Pseudocódigo
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
Início
Escrever ‘outro valor para o lado’
Lado<= 0
fim
N
S
Ler Lado
Escrever ‘ o valor para lado do quadrado é : ’, Lado
Area Lado * Lado
Ler Lado
Escrever ‘O resultado da área do
quadrado é : ’, Area:2:2, ‘m2’
Fluxograma
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
10. b. Resolução
Escrever‘ digite o valor dos lados’
11. Elabore(faça) o algoritmo que calcule e escreva a área de um retângulo . Os
valores são introduzidos a partir do teclado, valide os valores até serem maior que
zero. O output(saída) tem as seguintes instruções:
-O valor para o lado doretângulo é: ( apresentar o valor da variável).
-O valor para ocomprimento retângulo é:( apresentar o valor da variável).
- O resultado da área do retângulo.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
Program Area_dum_retangulo;
Var Lado, comprimento, Area: Real;
Begin Writeln('digite o valor da largura'); Read(largura); While Largura<=0 Do Begin Writeln('digite um valor maior que zero para a largura'); Read(Largura); end;
Writeln('digite o valor do comprimento'); Read(comprimento); While comprimento<=0 Do Begin Writeln('digite um valor maior que zero para o comprimento'); Read(comprimento); end;
Writeln(‘ o valor para o lado do retângulo é : ’, Lado:2:2); Writeln(‘ o valor para o comprimento do retângulo é : ’, Comprimento:2:2); Area:=largura * comprimento; Writeln('A área do rectângulo é : ', Area:2:2,' ','m2'); End.
11. Elabore(faça) o algoritmo que mostre no ecrã, os números compreendidos entre 20 e 200
incluindo estes.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
11. It elaborates (it makes) the algorithm that it shows in ecrã, the numbers understood
between 20 and 200 including these.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
EXERCÍCIOS
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
Programa Escrever_mumeros_inteiros;
Variáveis
Numero: Inteiro;
Início
Numero 20;
Enquanto (Numero <= 200) Fazer
Início
Escrever(Numero);
Numero Numero + 1; *
Fim;
Fim.
11. a. Resolução Pseudocódigo
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
*NOTA: Estamos a incrementar a variável Numero, para alterar o valor da variável , até a condição ser falsa.
* NOTE: We are to develop the variable Numero, to modify the value of the variable, until the condition to be false.
Exercício:
Não escrever os números mas a soma destes inteiros.
Not to write the numbers but the addition of these integers numbers.
Program Escrever_mumeros_inteiros ;
Var Numero: Integer;
Begin Clrscr;
Numero:=20; While (Numero <= 200) Do
Begin Write(Numero,' '); Numero:=Numero + 1; End; Readln
End.
Programa Escrever_soma_mumeros_inteiros;
Variáveis
Numero, Soma: Inteiro;
Início
Soma 0; *
Numero 20;
Enquanto (Numero <= 200) Fazer
Início
Soma Soma + Numero;
Numero Numero + 1;
Fim;
Escrever(‘ A soma dos inteiros entre 20 e 200 é : ‘, Soma);
Fim.
*NOTA: Estamos a atribuir 0 à variável Soma, para ter a certeza que tem de início o valor zero.
*NOTA: We are to attribute 0 to the variable Soma, to have the certainty that starts with value zero.
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
11. a. (alterado) Resolução Pseudocódigo
(modified)
Início
Escrever ‘Numero’
Numero<=
200
fim
N
S
Fluxograma
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
11. b. Resolução
Numero 20
Numero Numero + 1
Soma Soma + Numero
Início
Numero<=
200
fim
N
S
Escrever ‘ A soma dos inteiros entre
20 e 200 é : ‘, Soma
Fluxograma
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
11. b. (alterado) Resolução
Numero 20
Numero Numero + 1
Soma 0
Estrutura REPETIR = STRUCTURE REPEAT Estrutura REPETIR = STRUCTURE REPEAT
A estrutura REPETIR possibilita repetir a execução de uma ou várias instruções, até
que uma determinada condição/expressão, do tipo lógico, tenha valor verdadeiro.
A salientar na estrutura REPETIR:
• O corpo do ciclo é executado pelo menos uma vez, porque, só depois das instruções do
ciclo serem executadas é que é verificada a condição/expressão. Se o valor for falso, o
corpo do ciclo é de novo executado e apenas termina quando o valor for verdadeiro.
• Normalmente não é possível determinar, à partida, o número de vezes que o corpo do
ciclo é executado, porque o valor da condição que valida o fim do ciclo é alterado durante a
execução desse ciclo, não se sabendo que valor lhe vai ser atribuído.
• Quando se utiliza a estrutura repetir não é necessário delimitar o corpo do ciclo.
Estrutura REPETIREstrutura REPETIR
Condição/ Expressão
N
S
Instrução 1
…
Instrução n
REPETIR (repeat)
instrução1
… Corpo do Ciclo
instruçãon
ATÉ Condição
(until)
(Body of the Cycle)
Estrutura REPETIREstrutura REPETIR
12. Elabore o algoritmo que, lê continuamente números a partir do teclado, até que seja
digitado o valor 1.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
12. The algorithm elaborates that, reads numbers from the keyboard continuously, until value
1 is typed.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
13. Calcular a soma de cinco valores lidos a partir do teclado.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
13. To calculate the addition of five values read from the keyboard.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
Estrutura REPETIREstrutura REPETIR
Programa Ler_numeros;
Variáveis
Numero: Inteiro;
Início
Repetir
Escrever(‘Digite Numero’);
Ler(Numero);
Até Numero = 1;
Fim.
12. a. Resolução Pseudocódigo
Estrutura REPETIREstrutura REPETIR
Numero = 1
N
S
Início
Escrever(‘Digite Número’)
Ler Numero
Fim
Fluxograma12. b. Resolução
Estrutura REPETIREstrutura REPETIR
Programa Soma_Cinco_Valores;
Variáveis
Numero, Soma,Contador: Inteiro;
Início
Contador 1;
Soma 0;
Repetir
Escrever(‘Digite Numero’);
Ler(Numero)
Soma Soma + Numero;
Contador Contador + 1;
Até Contador > 5;
Escrever(‘ O resultado da soma dos cinco números é :’, Soma)
Fim.
13. a. ResoluçãoPseudocódigo
Contador 1
Estrutura REPETIREstrutura REPETIR
Contador>5
N
S
Início
Escrever(‘Digite Número’)
Ler Numero
Fluxograma13. b. Resolução
Soma Soma + Numero
Contador Contador + 1
Soma 0
Escrever(Soma)
Fim
A estrutura PARA é utilizada para efectuar ciclos incondicionais, (ao contrário das
outras estruturas).
A salientar na estrutura PARA:
• Antes do corpo do ciclo ser executado já se sabe qual o número de vezes que este irá ser
executado, (ao contrário das outras estruturas de repetição).
• A execução das instruções, do corpo do ciclo, é controlada por uma variável – variável de
controlo, que tem de ser do tipo enumerável. O corpo do ciclo é executado para uma
sequência de valores da variável de controlo
(Incondicional = Que não está sujeito a qualquer condição ou restrição; independente de quaisquer limitações; que deve
executar-se em quaisquer condições
Enumerável = Que se pode enumerar; contar um a um; sequência de valores.)
Estrutura PARAEstrutura PARA
• Quando o computador encontra a estrutura PARA, inicializa a variável de
controlo com o primeiro valor da sequência, de seguida executa as instruções
incluídas no ciclo e depois actualiza a variável de controlo com o próximo valor
da sequência. A execução do ciclo termina com o último valor da sequência.
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
ESTRUTURA PARA
Pseudocódigo
PARA Variável ValorInicial ATÉ ValorFinal FAZER
Início
instrução1
… Corpo do Ciclo
instruçãon
Fim
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Fluxograma
Varável ValorInicial Até ValorFinal
Instrução 1
…
Instrução n
14. Elabore o algoritmo que mostre no ecrã, os números inteiros compreendidos entre 20 e
200, incluídos.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
14. The algorithm elaborates that it shows in ecrã, the numbers between 20 and 200, enclosed
ones.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
15. Calcular e escrever a soma dos trinta primeiros números inteiros.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
15. To calculate and to write the addition of the thirty first numbers..
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Programa Escrever_Numeros;
Variáveis
Numero: Inteiro;
Início
Para Numero 20 Até 200 Fazer
Escrever(numero);
Fim.
14. a. ResoluçãoPseudocódigo
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Numero 20 Até 200 Fazer
Fluxograma
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
14. b. Resolução
Início
Escrever( Número)
Fim
Programa Soma_Trinta_Inteiros;
Variáveis
Numero, Soma: Inteiro;
Início
Soma 0;
Para Numero 1 Até 30 Fazer
Início
Soma Soma + Numero;
fim;
Escrever(‘ O resultado da soma dos trinta números é :’, Soma);
Fim.
15. a. ResoluçãoPseudocódigo
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Numero 1 Até 30 Fazer
Início
Soma Soma + Numero
Soma 0
Escrever(Soma)
Fim
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
15. b. Resolução Fluxograma
Program Tabuada_dez;
Var
resultado, numero, tabuada: integer;
Begin
Writeln('qual a tabuada');
Read(tabuada);
Writeln;
Writeln;
Writeln('A tabuada do ', tabuada);
Writeln;
Writeln;
for numero :=1 to 10 Do
Begin
resultado:=tabuada * numero;
Writeln(tabuada, '*', numero,'=',resultado);
end;
End.
Elabore o programa que calcule a tabuada de um número.
16. Para o exercício 15 a, utilizar as estruturas Enquanto e Repetir.
a. Represente em pseudocódigo. (declare o nome do programa e as variáveis).
b. Represente em fluxograma.
16. For exercise 15, to use the structures While and Repeat.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR
Programa Escrever_soma_trinta_inteiros;
Variáveis
Numero, Soma: Inteiro;
Início
Soma 0;
Numero 1;
Enquanto (Numero <= 30) Fazer
Início
Soma Soma + Numero;
Numero Numero + 1;
Fim;
Escrever(‘ A soma dos inteiros entre 1 e 30 é : ‘, Soma);
Fim.
Estrutura ENQUANTO = STRUCTURE WHILE Estrutura ENQUANTO = STRUCTURE WHILE
16. a. Resolução Pseudocódigo
Programa Soma_trinta_inteiros;
Variáveis
Numero, Soma: Inteiro;
Início
Numero 1;
Soma 0;
Repetir
Soma Soma + Numero;
Numero Numero + 1;
Até Numero > 30;
Escrever(‘ O resultado da soma dos primeiros trinta números é :’, Soma)
Fim.
Estrutura REPETIR = STRUCTURE REPEAT Estrutura REPETIR = STRUCTURE REPEAT
16. a. Resolução Pseudocódigo
Faça um algoritmo para ler a base e a altura de 50 triângulos e imprimir a sua área.
Em pseudocódigo:
Programa Triangulo;
Variaveis
Contador: Inteiro;
Base, Altura, Area :Real;
Inicio
Contador ← 1;
Enquanto Contador < 51 fazer
Início
Escreva(‘Digite a base’); Leia (Base Escreva(‘Digite a altura); Leia (Altura) Area ← (Base * Altura)/2; Escreva( Area); Contador ← Contador + 1; FimFim.
Numa linguagem estruturada, como o Pascal*, os programas estruturados têm duas partes principais diferenciadas:
Identificação do Programa
Parte Declarativa – Cabeçalho
Identificação de dados
(Onde se declaram os tipos de dados: constantes, variáveis, que se pretendem utilizar no
corpo das instruções do programa)
Parte Operativa – Corpo geral do programa, as instruções com que se pretende concretizar
as operações e atingir os objectivos visados.
* Pascal – É uma linguagem de programação especialmente concebida para facilitar a escrita
de programas estruturados.
Linguagem EstruturadaLinguagem Estruturada
Estrutura de um Programa Pascal:
Program Nome;
Const
Inicio=100;
Fim=999; Zona declarativa
Var
i,j:Integer;
Letra:char;
Begin
i:=Inicio;
j:=Fim; Zona Operativa
Write(i,j);
End.
Linguagem EstruturadaLinguagem Estruturada
Em PascalProgram triangulo;
var Base, altura,area:real; contador:integer;
begin
clrscr;
contador:=1;
while contador < 51 do
begin
writeln('Digite a Base');
read(base);
writeln('Digite a Altura');
read(altura);
area:=(base*altura)/2;
write('Esta é a area do triangulo ');
writeln (area);
contador:=contador+1; end;end.
Algoritmo Salário
Uma empresa tem para um determinado funcionário uma ficha contendo o nome,
número de horas trabalhadas e o nº de dependentes do funcionário.
Considere que:
a) A empresa paga 20 euros por hora e 100 euros por dependente.
Sobre o salário são feito descontos de 11% para a Seg. Social e 20% para IRS.
Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de
dependentes do funcionário.
No final pretende-se, que escreva o nome do funcionário, o salário bruto e o salário
líquido.
a)Faça o algoritmo em pseudocódigo.
b)Faça em pascal.
c)Altere o algoritmo para cinco funcionários.
Em pseudocódigo
Programa salario;variaveisNome:string;Numdep:inteiro;numhora, salliq, salbruto, DescontoI, DescontoR:real;
Inicio Escrever(‘Nome’); Ler(nome); Escrever(‘Número de horas); Ler(horas) Escrever(‘Número de dependentes’); Ler(numdep);
salbruto← (12 * horas) + (40 * dependente) {DescontoI ← (salariob*0,11) DescontoR ← (salariob*0,20)}
{salliq ← (salariob - DescontoI, DescontoR)}
Salliq ← Salbruto-((Salbruto*0.11)+(Salbruto*0.20));
Escrever(nome);Escrever(salbruto:2:2);Escrever(salliq:2:2);
Fim.
Program Salario;
Var
Nome:String;
Numhora, Salbruto, Salliq:Real;
Numdep:Integer;
Begin
Clrscr;
Writeln ('Digite O Nome do Funcionário:');
Read (Nome);
Writeln;
Writeln ('Numero De Horas Trabalhadas:');
Read (Numhora);
Writeln;
Writeln ('E Numero de Dependentes:');
Read (Numdep);
Writeln;
Salbruto:=(20*Numhora)+(100*Numdep);
Salliq:=Salbruto-((Salbruto*0.11)+(Salbruto*0.20));
Write (Nome);
Writeln;
Writeln('Salário Bruto:',Salbruto:2:2);
Writeln ('Salário Liquido:‘,Salliq:2:2);
Readln;
End.
Em Pascal
EXERCÍCIO - SALÁRIO
Uma empresa tem para um determinado funcionário uma ficha contendo o nome,
número de horas trabalhadas.
Considere que:
A empresa paga 20 euros por hora e 150 euros de bonus.
Faça um algoritmo para ler o Nome e número de horas.
No final pretende-se, que escreva o nome do funcionário e o ordenado
a)Faça o algoritmo em pseudocódigo.
b)Faça em pascal.
Nota:Se não trabalhou não tem vencimento. Se trabalhou mais de 110 horas tem o bónus de 150
Program Vencimento;Const Bonus=150; Hora=20;Var N_horas:Integer; Ordenado:Real; Nome:Sring;Begin clrscr; Writeln(‘Digite o nome do funcionário’); Read(Nome); Writeln('Digite o número de horas'); Readln(N_horas);
If N_horas>0 Then Begin Ordenado:=N_horas*Hora;
If N_horas>110 Then Begin
Ordenado:=Ordenado+Bonus; Writeln(Ordenado:8:2); end Else Writeln(Ordenado:8:2); end
Else Writeln (' sem vencimenmto'); Writeln(Nome); Readln
End.
EXERCÍCIO – HABITANTES
Dado o número de habitantes de uma aldeia, elabore o pseudocódigo que calcule e escreva a percentagem de mulheres e de homens.
PSEUDOCÓDIGO - HABITANTES
Programa Perc_habitantes_aldeia;
Var
NumHabitantes, NumMulheres, NumHomens: Inteiro;
PercMulheres, PercHomens: Real;
Início
Escrever(‘Qual o número de habitantes da aldeia);
Ler(NumHabitantes);
Escrever(‘Qual o número de mulheres’);
Ler(NumMulheres);
Escrever(‘Qual o número de homens’);
Ler(NumHomens);
PercMulheres := NumMulheres / NumHabitantes* 100;
PercHomens := NumHomens /Num Habitantes * 100;
Escrever(‘ A percentagem de mulheres é: ‘ , PercMulheres);
Escrever(‘ A percentagem de homens é: ‘ , PercHomens);
Fim.
EXERCÍCIO APOSTAR
Supomos que nos são atribuídas 100 unidades monetárias para fazer apostas num jogo.
O jogo consiste no seguinte: de cada vez que se fizer uma jogada, o programa gera aleatoriamente um
valor que pode ser 0(zero) ou 1(um);
Se o valor obtido for 0(zero), o jogador perde o que apostar;
Se for 1(um) ganha um valor igual ao da sua aposta.
O programa deve perguntar quanto queremos apostar e fazê-lo dentro de um ciclo que dure enquanto o
número de jogadas não ultrapassar 10 e enquanto tivemos dinheiro.
Não podem ser aceites apostas superiores ao dinheiro em cada momento.
a) Em Pascal
Program apostar; Var disponivel, aposta, aleatorio, contador:Integer; Begin disponivel:=100; contador:=0; While (disponivel>0) and (contador<10) do Begin Writeln('Quanto aposta'); Writeln; Readln(aposta); If aposta<=disponivel then Begin randomize; aleatorio:=random(2);
If aleatorio=1 then Begin Writeln('ganhou'); disponivel:=disponivel+aposta; end else begin Writeln('Perdeu'); disponivel:=disponivel-aposta; end; contador:=contador+1;
end; Writeln; Writeln('Dinheiro no momento é: ',disponivel); Writeln; end; Readln; End.
randomize; aleatorio:=random(2);
Program Cores ;Uses Crt;Var Cor:Integer;Begin Clrscr; cor:=0; Repeat Textcolor(cor); Writeln('PASCAL'); Cor:=Cor+1; Until cor>15; readln;End.
Program Nome;
Uses
CRT;
Const
A=10;
Var
Z : Integer;
Begin
Clrscr;
Z := 2*A;
Writeln(‘Olá, Bom Dia!’);
Writeln;
Writeln(‘O valor de Z é:’, Z);
Readln;
End.
Estrutura de um Programa Pascal
Zona Declarativa
Zona Operativa
Se A=10.5, o Z tem que ser declarado como Real.