Buscar

02 - PSEUDOCODIGO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMOS E PROGRAMAÇÃO
Métodos de Representação de Algoritmos
Prof. Victoria Souto
E-mail : victoria.souto@gmail.com
Métodos de Representação de Algoritmos
Fluxograma  Representação gráfica de um algoritmo, este tipo de representação é mais concisa que a representação textual.
Pseudocódigo  Representação textual de um algoritmo, este tipo de representação permite a transcrição do algoritmo para qualquer linguagem de programação. 
Fluxograma
 Simbologia Básica:
Início / Fim
Entrada
Saída
Decisão
Cálculo
Fluxograma
Início
A
Soma
Soma = A + B
B
Fim
Início do Algoritmo
Entra com o primeiro número
Entra com o segundo número
Realiza a soma dos números
Apresenta o resultado
Fim do Algoritmo
 EXEMPLO: Realizar a soma de dois números.
4
Pseudocódigo/Português Estruturado
Através da utilização de pseudocódigo a transcrição para qualquer linguagem de programação é quase direta.
A técnica textual de representação de um algoritmo denominada Pseudocódigo também é conhecida como Português Estruturado.
O Português Estruturado é baseada em uma PDL (Program Design Language), que é uma linguagem genérica na qual é possível representar um algoritmo de forma semelhante à das linguagens de programação.
Regras do Português Estruturado
As palavras reservadas pela linguagem são escritas em negrito e não podem ser utilizadas como identificadores de variáveis. Dentre as palavras reservadas pode-se citar: INTEIRO, CARACTERE, REAL, VAR, LOGICO, INICIO, LEIA, ESCREVA...
Para tornar um algoritmo claro é importante que cada linha apresente um comentário (utilizado para indicar comentário “//”) com a descrição do código.
Utilizar tabulação para escrever um código, para torná-lo mais claro e de fácil visualização.
Regras do Português Estruturado
TIPOS DE DADOS:
Inteiro: Define dados numéricos, as quais podem ser positivos ou negativos pertencentes ao conjunto de números inteiros, ou seja, sem cada decimais.
Real: Define dados numéricos, as quais podem ser positivos ou negativos pertencentes ao conjunto de números reais, ou seja, incluindo valores fracionários.
Lógico: Define dados do tipo booleano, ou seja, verdadeiro ou falso.
Caractere: Define dados representados por sequências de valores delimitadas por aspas, formadas por letras, números e símbolos.
 Dados do Tipo Inteiro:
 Dados do Tipo Real:
 Dados do Tipo Caractere:
 Dados do Tipo Lógico:
35
0
-56
0
234
-10
35
0
-56
35.5
0.2
-9.90
“Teste”
“-90”
“50.8”
“CINCO”
“100”
“50.8”
.Verdadeiro.
.Falso.
0
1
Exemplos
Regras do Português Estruturado
 VARIÁVEIS
 Elemento de dado cujo valor pode ser modificado ao longo de sua execução. 
 Uma variável representa uma posição na memória de um computador previamente identificado, ou seja, primeiro é necessário saber o seu tipo para depois fazer o seu armazenamento adequado.
 Uma variável pode ser declarada da seguinte forma:
Tipo:
Inteiro
Caractere
Real
Lógico
tipo nome_variável
O primeiro caractere de identificação do nome da variável dever ser, obrigatoriamente, alfabético e os demais podem ser alfanuméricos;
Não podem existir espaços em branco no nome de variáveis, para nomes compostos se utiliza o caractere de separação “_” UNDERLINE;
Um variável não pode ser definida com o mesmo nome de uma palavra que represente os comandos de uma linguagem de programação de computadores.
Regras para Criar Nomes de Variáveis
 EXEMPLOS:
Nomes Válidos:
Nomes Inválidos:
ENDEREÇO
N_USUARIO
CIDADE3
21BRASIL
N$USUARIO
END*A-6
Regras do Português Estruturado
Regras do Português Estruturado
 CONSTANTES
 Uma constante é uma grandeza numérica usada normalmente numa expressão aritmética ou matemática, que define um valor de equilíbrio que se mantém inalterado, independentemente das variáveis envolvidas na operação a ser realizada.
 Valores fixos, tais como números. Estes valores não podem ser alterados pelas instruções do algoritmo, ou seja, é um espaço de memória cujo valor não deve ser alterado durante a execução do programa.
Regras do Português Estruturado
 OPERADORES ARITMÉTICOS
 Apresentam-se como as ferramentas responsáveis pelo estabelecimento das operações matemáticas a serem realizadas em um computador.
 Os Operadores Aritméticos podem ser classificados como:
UNÁRIOS: Atuam na inversão do estado de um valor numérico.
 (positivo  negativo e negativo  positivo).
 BINÁRIOS: São utilizados em operações matemáticas.
 (exponenciação, divisão, subtração, adição e multiplicação).
 OPERADORES ARITMÉTICOS
	A tabela abaixo apresenta os operadores aritméticos segundo a ordem padrão de prioridade matemática em que as operações aritméticas são realizadas.
Para alterar a ordem de prioridade apresentada na tabela acima utilize PARÊNTESES.
Regras do Português Estruturado
 OPERADORES RELACIONAIS
A tabela abaixo apresenta os Operadores Relacionais, os quais representam as relações que os valores podem ter um com os outros.
Regras do Português Estruturado
Regras do Português Estruturado
 OPERADORES LÓGICOS
Os operadores lógicos, referem-se às maneiras como as relações podem ser conectadas. A tabela abaixo apresenta três operadores lógicos, através dos quais é possível obter outros operadores lógicos existentes.
A tabela abaixo apresenta a tabela verdade dos três operadores lógicos apresentados acima.
Regras do Português Estruturado
 ENTRADA DE DADOS:
leia (<lista de variáveis>)
Para a operação de entrada de dados é respeitada a ordem da lista de variáveis, da esquerda para direita.
 SAÍDA DE DADOS:
escreva (<lista de variáveis>)
escreval (<lista de variáveis>)
escreval  imprime a variável na tela e o cursor vai para uma nova linha.
 OPERADOR DE ATRIBUIÇÃO:
nome_variável  3
Exemplo:
 Leia 3 valores inteiros do teclado e escreva na tela a soma dos dois primeiros e a multiplicação entre os dois últimos números.
Exemplo:
 Leia 2 valores inteiros (X,Y) do teclado e escreva na tela o resultado da divisão destes dois valores (D = X/Y).
E se Y fosse 0 ???
Exemplo:
Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. 
PARA RESOLVER ESTE PROBLEMA TORNA-SE NECESSÁRIO UTILIZAR OS RECURSOS DE TOMADA DE DECISÃO.
Algoritmo:
Ler dois valores incógnitos (estabelecer as variáveis X e Y);
Testa se o valor de Y é diferente de 0, caso sim efetua a divisão de X e Y e escreve o resultado D na tela;
Estruturas de Controle
 DESVIO CONDICIONAL SIMPLES:
Utiliza a instrução se...então...fimse, a qual apresenta a seguinte sintaxe em português estruturado.
se (<condição>) então
	<instruções para condição verdadeira>
fimse
<instruções para condição falsa ou após ser verdadeira>
Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. 
EXEMPLO:
var
 X,Y: inteiro
 D: real
inicio
leia(X,Y)
se (Y <> 0) então
 D  X/Y
 escreve(“Divisão”, D)
fimse
fim_algoritmo
20
Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. 
EXEMPLO:
Y = 0
Y = 4
Estruturas de Controle
 DESVIO CONDICIONAL COMPOSO:
Utiliza a instrução se...então...senão...fimse, a qual apresenta a seguinte sintaxe em português estruturado.
se (<condição>) então
	<instruções para condição verdadeira>
senão
	<instruções para condição falsa>
fimse
Somente após a execução de uma das possibilidades anteriores é que o programa executará as instruções existentes após fimse
EXEMPLO: Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela, caso contrário escreva na tela a seguinte mensagem, “Valor de Y=0”. 
Estruturas de Controle
 DESVIOS CONDICIONAIS ENCADEADOS:
Utiliza instruções do tipo se...então...senão...fimse encadeadas, a idéia desta estrutura de controle sugere a possibilidade de usaruma condição dentro de outra condição, levando a uma estrutura encadeada. 
se (<condição1>) então
	se (<condição2>) então
		<instruções para condição2 verdadeira, porém condição1 falsa>
	senão
		<instruções para condição1 e condição2 falsa>
	fimse
senão
	se (<condição3>) então
		<instruções para condição3 verdadeira, porém condição1 falsa>
	senão
		<instruções para condição1 e condição3 falsa>
	fimse
fimse
Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deve receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000, o reajuste deverá ser de 5%. 
EXEMPLO:
programa REAJUSTAR_SALARIO
var
 NOVO_SALARIO, SALARIO: real
inicio
 leia (SALARIO)
 se (SALARIO < 500) então
	NOVO_SALARIO  SALARIO * 1.15
 senão
	se (SALARIO <= 1000) então
	 NOVO_SALARIO  SALARIO * 1.10
	senão
	 NOVO_SALARIO  SALARIO * 1.05
	fimse
	escreva (“Valor Calculado,” NOVO_SALARIO)
fim
SALARIO < 500
Reajuste de 15%
SALARIO >= 500
SALARIO <= 1000
Reajuste de 10%
SALARIO > 1000
Reajuste de 5%
Operadores Lógicos
Necessidade de trabalhar com mais de uma condição dentro de uma única decisão;
Testes lógicos múltiplos;
Necessidade de utilizar mais de uma condição para uma mesma tomada de decisão.
 OPERADOR LÓGICO: .e.
 OPERADOR LÓGICO: .ou.
 OPERADOR LÓGICO: .não.
se (<condição1>) .e. (<condição2>) então
	<instruções executas se condição1 e condição2 verdadeiras>
fimse
se (<condição1>) .ou. (<condição2>) então
	<instruções executas se condição1 e condição2 verdadeiras>
fimse
se (<condição1>) .não. (<condição2>) então
	<instruções executas se condição1 e condição2 verdadeiras>
fimse
EXEMPLO: Ler três valores para os lados de um triangulo, considerando lados como: A, B e C. Verificar se os lados fornecidos formam realmente um triângulo, e se for esta condição verdadeira, deve ser indicado qual tipo de triângulo foi formado: isósceles, escaleno ou equilátero.
 Condição para a existência de um triângulo:
 Para que se possa construir um triângulo é necessário que a medida de qualquer um dos lados seja menor que a soma das medidas dos outros dois
 Tipos de Triângulos:
TRIÂNGULO EQUILÁTERO
TRIÂNGULO ISÓCELES
TRIÂNGULO ESCALENO
29
Malhas de Repetição
Utilizadas quando é necessário repetir um trecho de programa um determinado número de vezes.
Os laços também são chamados loppings ou malhas de repetição.
Tipos de Estruturas de Malhas de Repetição:
 Estrutura Enquanto;
 Estrutura Repita;
 Estrutura Para.
Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes.
programa LE_VALOR
var
 A, B : inteiro
inicio
 leia A
 B  A * 2
 escreva B 
 leia A
 B  A * 2
 escreva B 
 leia A
 B  A * 2
 escreva B 
fim
Estrutura ENQUANTO
Realiza um teste lógico no início do laço, verificando se é permitido executar o trecho de instruções subordinado a esse laço.
Conjunto de instruções:
		 enquanto...faça...fim_enquanto
 Executa um determinado conjunto de instruções enquanto a condição verificada for verdadeira. No momento em que a condição se torna, falsa, o processamento da rotina é desviado para fora do laço.
Se a condição for falsa logo no início, as instruções contidas no laço são ignoradas.
Estrutura ENQUANTO
Sintaxe:
enquanto (condição1) faça
	<instruções para condição1 verdadeira>
fimenquanto
<instruções para condição1 falsa>
Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes.
Realiza um teste lógico no final do laço.
O laço será executado pelo menos uma vez.
Utiliza o conjunto de instruções:
repita...até...que
 A estrutura REPITA tem seu funcionamento em sentido contrário a ENQUANTO, pois sempre processa um conjunto de instruções no mínimo uma vez até que a condição seja verdadeira.
Se a condição for falsa, o laço continua. 
Se a condição for verdadeira, o laço será encerrado.
Estrutura REPITA
Estrutura REPITA
Sintaxe:
repita
	<instruções caso seja a primeira execução ou condição1 falsa>
até_que (condição1)
<instruções para condição1 verdadeira>
Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes.
Exemplo: Leia dois valores, cont e A, se cont menor que 3, multiplique A por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência até que seja digitado uma valor para cont maior que 3.
Utilizada para laços que possuem um número finito de execuções.
Conjunto de Instruções:
para...de...até...passo...faça...fim_para
 Esta estrutura tem seu funcionamento controlado por uma variável denominada contador. Sendo assim, pode executar um determinado conjunto de instruções um certo número de vezes.
Estrutura PARA
Estrutura PARA
Sintaxe:
para <variável> de <inicio> até <fim> passo <incremento> faça
	<instruções>
fim_para
Exemplo: Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, colocá-lo na variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes.
Exercícios:
Elaborar um programa que apresente no final o somatório dos valores pares existentes na fixa de 1 até 500.
Elaborar um programa que apresente os resultados da soma e da média aritmética dos valores pares situados na faixa numérica de 50 a 70.
Elaborar um programa que apresente no final o somatório dos valores pares existentes na fixa de 1 até 500.
Elaborar um programa que apresente os resultados da soma e da média aritmética dos valores pares situados na faixa numérica de 50 a 70.
Estrutura de Controle com Múltipla Escolha
Quando houver a necessidade de construir um programa no qual seja necessário utilizar uma sequência grande de instruções do tipo se, sejam estas uma após a outra ou mesmo encadeadas, pode ser simplificada com a utilização da instrução caso...fim_caso, que possui a seguinte sintaxe:
caso <variável>
 seja <valor1> faça <operação1>
 seja <valor2> faça <operação2>
 seja <valorN> faça <operaçãoN>
 senão <operação>
fim_caso
Em que variável seja a variável a ser controlada, valor será o conteúdo de uma variável sendo verificado e operação pode ser chamada de uma sub-rotina.
Vetores
Também recebe o nome de matriz unidimensional.
Utilizada normalmente para a criação de tabelas.
Caracteriza-se por ser definida uma única variável dimensionada com um determinado tamanho.
Sintaxe (Declaração)
VARIÁVEL: conjunto [<dimensão>] de <tipo de dado>
<dimensão> é a indicação dos valores inicial e final do tamanho do vetor.
<tipo de dado> determina se o vetor em questão irá utilizar valores reais, inteiros, lógicos ou caracteres.
Vetores
 Leitura dos Dados de uma Matriz
para i de 1 até 8 passo 1 faça
	leia MD[i]
fim_para
 Escrita dos Dados de uma Matriz
para i de 1 até 8 passo 1 faça
	escreva MD[i]
fim_para
Matrizes
O tipo mais comum de matrizes são as bidimensionais, porém existem matrizes com mais de duas dimensões, as quais são utilizadas com menos frequências.
Para manipular um vetor se utiliza uma única instrução de laço (enquanto, para ou repita). No caso de matrizes com mais dimensões deve ser usado o número de laços relativo ao tamanho de sua dimensão. Matriz Bidimensional utiliza dois laços.
Em matrizes de mais de uma dimensão os seus elementos são também manipulados de forma individualizada, sendo a referência feita sempre por meio de dois índices: o primeiro para indicar a linha e o segundo para indicar a coluna. 
Ex: M[2,3] indica que está sendo feita uma referência ao elemento armazenado na linha 2 coluna 3.
Matrizes
 Sintaxe (Declaração)VARIÁVEL: conjunto [<dimensão1>, <dimensão2>] de <tipo de dado>
 <dimensão1> e <dimensão2> são a indicação do tamanho da matriz.
 <tipo de dado> determina o tipo da matriz, a qual pode ser formada por valores reais, inteiros, lógicos ou caracteres.
EXEMPLO DE DECLARAÇÃO: 
	M: conjunto [1...8,1...4] de real
Matrizes
 Leitura dos Dados de uma Matriz
var
 NOTAS: conjunto [1..8, 1..4] de real
 i, j: inteiro
inicio
 para i de 1 até 8 passo 1 faça
 para j de 1 até 4 passo 1 faça
 leia NOTAS [i, j]
 fim_para
 fim_para
fim
Matrizes
 Escrita dos Dados de uma Matriz
var
 NOTAS: conjunto [1..8, 1..4] de real
 i, j: inteiro
inicio
 para i de 1 até 8 passo 1 faça
 para j de 1 até 4 passo 1 faça
 escreva NOTAS [i, j]
 fim_para
 fim_para
fim
Exemplo: Ler uma matriz A de duas dimensões com 6 linhas e 5 colunas. Construir uma matriz B de mesma dimensão, que deve ser formada do seguinte modo: para cada elemento par da matriz A deve ser somado 5 e de cada elemento ímpar da matriz A deve ser subtraído 4. Apresentar ao final as matrizes A e B.
Estrutura de um Registro
Também chamadas Estruturas de Dados Heterogêneas ou apenas Estruturas.
Permite trabalhar com vários dados de tipos diferentes em uma mesma estrutura.
Layout do formato de um registrocom seus campos
Cadastro de Notas Escolares
Nome ...........................: _______________
Primeira Nota .............: _______________
Segunda Nota .............:. _______________
Exemplo do layout de um registro com seus campos
Estrutura de um Registro
 Atribuição de Registros
 Os tipos registro devem ser declarados ou atribuídos antes das variáveis, pois pode ocorrer a necessidade de declarar uma variável com o tipo registro anteriormente atribuído.
 Para que seja declarado um tipo registro em português estruturado, deve ser utilizada a instrução tipo em conjunto com a instrução registro...fim_registro, conforme a sintaxe abaixo.
tipo
 <identificador> = registro
		<lista dos campos e seus tipos>
		fim_registro
var
 <variáveis> : <identificador>
57
tipo
 <identificador> = registro
		<lista dos campos e seus tipos>
		fim_registro
var
 <variáveis> : <identificador>
 Identificador é o nome do tipo registro em caracteres maiúsculos, em itálico.
 As variáveis, e listas dos campos e seus tipos é a relação de variáveis que serão usadas como campos, bem como seu tipo de estrutura de dados.
 Após a instrução var, deve ser indicada a variável tipo registro e a declaração do seu tipo de acordo com um identificador definido anteriormente.
 A instrução tipo deve ser utilizada antes da instrução var, pois ao definir um tipo de variável pode-se utilizar esse tipo definido.
Exemplo:
Criar um registro denominado ALUNO, cujos campos são NOME, NOTA1, NOTA2, NOTA3, NOTA4.
tipo
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNIO : cad_aluno
Exemplo:
Leitura de Registros.
programa LEITURA
tipo
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : cad_aluno
inicio
 leia ALUNO . NOME
 leia ALUNO . NOTA1
 leia ALUNO . NOTA2
 leia ALUNO . NOTA3
 leia ALUNO . NOTA4
fim
Exemplo:
Escrita de Registros.
programa ESCRITA
tipo
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : cad_aluno
inicio
 escreva ALUNO . NOME
 escreva ALUNO . NOTA1
 escreva ALUNO . NOTA2
 escreva ALUNO . NOTA3
 escreva ALUNO . NOTA4
fim
Estruturas com Matrizes
tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA : bimestre
		fim_ registro
 Bimestre é a especificação de um tipo de conjunto matricial de uma única dimensão com capacidade para quatro elementos.
 O tipo bimestre foi anteriormente definido, pois se caracteriza por um tipo criado.
Leitura de Registros.
programa LEITURA
Tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : cad_aluno
 I : inteiro
inicio
 leia ALUNO . NOME
 para I de 1 até 4 passo 1 faça
	leia ALUNO.NOTA[I]
 fim_para
fim
Exemplos:
Escrita de Registros.
programa LEITURA
Tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : cad_aluno
 I : inteiro
inicio
 leia ALUNO . NOME
 para I de 1 até 4 passo 1 faça
	escreva ALUNO.NOTA[I]
 fim_para
fim
Exemplos:
Matrizes de Estruturas
Considere que você deve fazer um programa que leia o nome e as quatro notas escolares de 8 alunos. 
tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA : bimestre
		fim_registro
var
 ALUNO : conjunto [1..8] de cad_aluno
 Variável de registro ALUNO, sendo esta um conjunto de oito registros do tipo cad_aluno que, por sua vez, é formado de dois tipo de dados: o nome como caractere e a nota como bimestre.
 Bimestre é um conjunto de quatro valores reais.
Exemplos:
Leitura de Registros.
programa LEITURA
Tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : conjunto[1..8] de cad_aluno
 I, J : inteiro
inicio
 para I de 1 até 8 passo 1 faça
 leia ALUNO[I] . NOME
 para J de 1 até 4 passo 1 faça
	leia ALUNO[I] . NOTA[J]
 fim_para
 fim_para
fim
Exemplos:
Escrita de Registros.
programa LEITURA
Tipo
 BIMESTRE = conjunto [1..4] de real
 CAD_ALUNO = registro
		 NOME : caractere
		 NOTA1 : real
		 NOTA2 : real
		 NOTA3 : real
		 NOTA4 : real
		fim_registro
var
 ALUNO : conjunto[1..8] de cad_aluno
 I, J : inteiro
inicio
 para I de 1 até 8 passo 1 faça
 escreva ALUNO[I] . NOME
 para J de 1 até 4 passo 1 faça
	escreva ALUNO[I] . NOTA[J]
 fim_para
 fim_para
fim
Sub-Rotinas
 Procedimentos x Funções
 Um procedimento é um bloco de programa contendo início e fim e será identificado por um nome, por meio do qual será referenciado em qualquer parte do programa principal ou do programa chamador da rotina.
 Uma função também é um bloco de programa, como são os procedimentos, contendo início e fim e identificada por um nome, pelo qual também será referenciada em qualquer parte do programa principal. A sua principal diferença está no fato de uma função retornar um determinado valor, no próprio nome da função.
Procedimentos
 Sintaxe:
procedimento <nome do procedimento>
var
 <variáveis>
início
 <instruções>
fim
Procedimentos
Utilização de Parâmetros Formais e Reais:
 Os parâmetros são um ponto de comunicação bidirecional entre uma sub-rotina e o programa principal. É possível passar valores de uma sub-rotina ou rotina chamadora a outra sub-rotina e vice-versa, utilizando parâmetros que podem ser formais ou reais. 
 Serão considerados parâmetros formais quando forem declarados por meio de variáveis juntamente com a identificação do nome da sub-rotina.
Exemplo:
procedimento CALCSOMA (A, B : inteiro)
var
 Z : inteiro
inicio
 Z  A + B
 escreva Z
fim
Procedimentos
Utilização de Parâmetros Formais e Reais:
 Serão considerados parâmetros reais quando substituírem os parâmetros formais, quando da utilização da sub-rotina por um programa principal ou por uma rotina chamadora.
Exemplo:
inicio
 leia X
 leia Y
 calcsoma (X, Y)
 leia W
 leia T
 calcsoma (W, T)
 calcsoma (8, 2)
fimToda vez que a sub-rotina CALCSOMA é chamada, utilizam-se parâmetros reais.
Procedimentos
 Passagem de Parâmetros:
 A passagem de parâmetro ocorre quando é feita uma substituição dos parâmetros formais pelos reais no momento da execução da sub-rotina. Esses parâmetros são passados por variáveis de duas formas: por valor e por referência.
 Por Valor:
 A passagem de parâmetro por valor caracteriza-se pela não-alteração do valor do parâmetro real quando o parâmetro formal é manipulado dentro da sub-rotina.
 O valor passado pelo parâmetro real é copiado para o parâmetro formal, que no caso assume o papel de variável local da sub-rotina não afeta o valor do parâmetro real correspondente, ou seja, o processamento é executado somente dentro da sub-rotina, ficando o resultado obtido “preso” na sub-rotina.
Exemplo:
 Cálculo do Fatorial:
programa FATORIAL_CALC
procedimento FATORIAL (N : inteiro)
var
 I, FAT : inteiro
inicio
 FAT  1
 para I de 1 até N passo 1 faça
	FAT  FAT * I
 fim_para
 escreva FAT
fim
var
 LIMITE : inteiro
início
 escreva “Qual fatorial: ”
 leia LIMITE
 fatorial (LIMITE)
fim
 Passagem de Parâmetros por Referência:
 A passagem de parâmetro por referência ocorre quando o parâmetro real recebe o conteúdo do parâmetro formal e após um certo processamento dentro da sub-rotina o parâmetro formal reflete no parâmetro formal implica em alteração no parâmetro real correspondente.
 A alteração efetuada é devolvida para a rotina chamadora.
 A passagem de parâmetro por referência é utilizada para que se tenha a saída de um determinado valor de dentro de uma sub-rotina.
Procedimentos
Exemplo:
 Cálculo do Fatorial:
programa FATORIAL_CALC
procedimento FATORIAL (N : inteiro, var FAT: inteiro)
var
 I : inteiro
inicio
 FAT  1
 para I de 1 até N passo 1 faça
	FAT  FAT * I
 fim_para
 escreva FAT
fim
var
 LIMITE, RETORNO : inteiro
início
 escreva “Qual fatorial: ”
 leia LIMITE
 fatorial (LIMITE, RETORNO)
 escreva RETORNO
fim
PASSAGEM DE PARÂMETRO POR REFERÊNCIA
Imprime o valor de FAT
Funções
 Sintaxe:
função <nome da função> (parâmetros) : <tipo da função>
var
 <variáveis>
início
 <instruções>
fim
<tipo da função> determina o tipo (real, inteiro, lógico ou caractere) de retorno da função.
Exemplo:
 Cálculo do Fatorial:
função FATORIAL (N : inteiro) : inteiro
var
 I, FAT : inteiro
inicio
 FAT  1
 se (N = 0) então
	FATORIAL  1
 senão
 para I de 1 até N passo 1 faça
	FAT  FAT * I
 fim_para
 FATORIAL  FAT
 fim_se
fim
Exercícios:
Calcular a área de um triângulo dada a fórmula 			A = (b*h)/2.
Calcular a média do peso de uma família de 5 pessoas.
No final da execução do fragmento de código abaixo, qual é o valor de n1, n2 e n3?
var n1,n2: inteiro
n110
n2  30
n3  n1
n1  n2
n2  n3
Exercícios:
Elabore um algoritmo que leia um número inteiro e imprima seus sucessor e seu antecessor. Por exemplo, suponha que o usuário digite o número 7, o algoritmo deverá imprimir (escrever) na tela o seu antecessor (número 6) e o seu sucessor (o número 8).
Elabore um algoritmo que leia uma temperatura em graus centígrados e apresente a convertida em graus Fahrenheit. A fórmula de conversão é: 
				F = 9/5 *C + 32
	onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.
Exercícios:
Elabore um algoritmo que leia um número e imprima uma das mensagens: é múltiplo de 3, ou, não é múltiplo de 3.
Elabore um algoritmo que leia dois números e imprima qual é maior, qual é menor, ou se são iguais.
Elabore um algoritmo que leia um número inteiro entre 1 e 12 e imprima o mês correspondente. Caso seja digitado um valor fora desse intervalo, deverá ser exibida uma mensagem informando que não existe mês com esse número.
Elabore um algoritmo que imprima todos os números de 1 até 100.
Elabore um algoritmo que imprima todos os números pares de 1 até 100.

Continue navegando