178
INTRODUÇÃO INTRODUÇÃO À À PROGRAMAÇÃO PROGRAMAÇÃO

INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

  • Upload
    pilar

  • View
    5

  • Download
    0

Embed Size (px)

DESCRIPTION

aplicações informaticas b

Citation preview

Page 1: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

INTRODUÇÃO INTRODUÇÃO

ÀÀ

PROGRAMAÇÃOPROGRAMAÇÃO

Page 2: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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).

Page 3: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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).

Page 4: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 5: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 6: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 7: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 8: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

PROGRAMA

• Conjunto de instruções com uma sequencia lógica e previamente estabelecida que permite a execução de tarefas pelo computador

Page 9: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 10: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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?

Page 11: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 12: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 13: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 14: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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?

Page 15: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 16: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 17: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 18: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 19: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 20: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

SISTEMAS DE NUMERAÇÃO BINÁRIA E DECIMAL

2 bit 22=4 combinações possíveis

0 0

0 1

1 0

1 1

Page 21: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 22: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 23: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 24: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 25: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 26: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 27: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 28: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 29: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 30: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 31: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 32: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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. …..

Page 33: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 34: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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 ? ‘

Page 35: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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’

Page 36: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 37: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 38: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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))

Page 39: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 40: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 41: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 42: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 43: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 44: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 45: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 46: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 47: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 48: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 49: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 50: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 51: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 52: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 53: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

A=12; B=13; C=5; D=15

Not[(a<b OR c<d AND d<c) AND (a>b OR c>b)]

Page 54: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 55: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 56: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 57: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 58: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 59: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

O que fazemos com a Estrutura Sequencial?

Problemas simples e limitados: leitura de valores, atribuição de valores, cálculos e escrever resultados.

Page 60: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 61: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 62: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Início

Escrever(Soma)

fim

Soma Valor1 + Valor2

Valor1 = 10

Valor2 = 15

FLUXOGRAMA

Page 63: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 64: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 65: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 66: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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 …

Page 67: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 68: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 69: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 70: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 71: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 72: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura SEEstrutura SE

Início

Ler Num

Escrever Mensagem

Num < 0

fim

N

S

Fluxograma

Page 73: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 74: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 75: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura SEEstrutura SE

Fluxograma

Início

Ler Num2

Escrever Num1

Num 1>

Num2

fim

N

S

Ler Num1

Escrever Num2

Page 76: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 77: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 78: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura SEEstrutura SE

Fluxograma

Início

Escrever Divisão não

admitida

Valor= 0

fim

N

S

Ler Valor

Escrever Resultado

Resultado 4 / Valor;

Page 79: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 80: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Fluxograma

Início

Escrever Divisão não

admitida

Valor= 0

fim

N

S

Ler Valor

Escrever Resultado

Resultado Valor / Valor1

Ler Valor1

Page 81: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 82: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Fluxograma

Início

Escrever Vai de mota

Arranjar um capacete

fim

N

S

EscreverVai de autocarro

Page 83: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 84: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 85: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 86: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

*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

Page 87: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 88: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 89: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 90: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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:

Page 91: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 92: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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;

Page 93: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 94: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura CASOEstrutura CASO

Início

selector

Opção 1 Opção 2 … Opção n

Fim

Page 95: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 96: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 97: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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’

Page 98: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 99: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 100: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 101: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

É 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

Page 102: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 103: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 104: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 105: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 106: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura ENQUANTOEstrutura ENQUANTO

Condição/ Expressão

N

S

Instrução 1

Instrução n

Page 107: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 108: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 109: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 110: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 111: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 112: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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’

Page 113: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 114: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 115: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 116: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 117: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Program Escrever_mumeros_inteiros ;

Var Numero: Integer;

Begin Clrscr;

Numero:=20; While (Numero <= 200) Do

Begin Write(Numero,' '); Numero:=Numero + 1; End; Readln

End.

Page 118: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 119: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 120: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 121: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 122: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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)

Page 123: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 124: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 125: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura REPETIREstrutura REPETIR

Numero = 1

N

S

Início

Escrever(‘Digite Número’)

Ler Numero

Fim

Fluxograma12. b. Resolução

Page 126: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 127: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 128: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 129: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

• 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

Page 130: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 131: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR

Fluxograma

Varável ValorInicial Até ValorFinal

Instrução 1

Instrução n

Page 132: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 133: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 134: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Numero 20 Até 200 Fazer

Fluxograma

Estrutura PARA = STRUCTURE FOR Estrutura PARA = STRUCTURE FOR

14. b. Resolução

Início

Escrever( Número)

Fim

Page 135: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 136: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 137: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 138: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 139: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 140: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 141: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 142: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 143: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 144: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 145: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 146: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 147: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 148: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 149: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 150: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 151: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 152: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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

Page 153: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 154: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

randomize; aleatorio:=random(2);

Page 155: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

Program Cores ;Uses Crt;Var Cor:Integer;Begin Clrscr; cor:=0; Repeat Textcolor(cor); Writeln('PASCAL'); Cor:=Cor+1; Until cor>15; readln;End.

Page 156: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015

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.

Page 157: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 158: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 159: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 160: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 161: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 162: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 163: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 164: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 165: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 166: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 167: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 168: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 169: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 170: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 171: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 172: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 173: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 174: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 175: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 176: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 177: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015
Page 178: INTRODUÇÃO_À_PROGRAMAÇÃO_2014_2015