INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Preview:

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.