REGISTROS. Um dos pontos mais importantes para a solução de problemas são as Estruturas De Dados ou Agregados

Documentos relacionados
Tipo m= matriz [ l i1 : l s1, l i2 : l s2 ] <tipo básico> m: mat

Registros Profa Jacqueline 1

ALGORITMOS + PASCAL. Estruturas de dados Heterogêneas

Algoritmos e Estruturas de Dados. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras PURO

CCO 016 Fundamentos de Programação

ESTRUTURAS COMPOSTAS. REGISTROS (Struct) Introdução à Ciência da Computação I Simone Senger Souza

ESTRUTURAS COMPOSTAS REGISTRO. Slides de autoria de Rosely Sanches e Simone Senger de Souza

ESTRUTURAS COMPOSTAS. REGISTROS (Struct) Introdução à Ciência da Computação I Simone Senger Souza

Rosane Minghim e Guilherme P. Telles

4ª Série de Exercícios Variáveis Compostas Homogêneas 1. Faça um algoritmo que leia, via teclado, 10 valores do tipo inteiro e os guarde na memória.

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

CA II Variável Composta

Programação de Computadores

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

O nome da variável é utilizado para identificação (para carga e posterior uso). Porém, são necessárias algumas regras para nomear essa variável:

Aula 10: Introdução a Vetores e Matrizes

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Matrizes. Para começar... Matrizes. Matrizes

Algoritmos e Programação I

Lógica de Programação e Algoritmos

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Introdução à Programação. Vetores. Prof. José Honorato F. Nunes

CAPÍTULO VIII. Variáveis Indexadas: Vetores e Matrizes CAPÍTULO VIII VARIÁVEIS INDEXADAS VARIÁVEIS INDEXADAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

Aula 06 Introdução à Programação Matrizes

GEQ Prof. Paulo R. Coelho. Lista para prova

Algoritmos. Conceitos e Comandos

UNIDADE 4 ESTRUTURAS DE CONTROLE

Vetores Unimensionais

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

CCO 016 / COM 110 Fundamentos de Programação

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Estrutura de Dados. Struct (Registro) Lais Farias Alves

CADERNO DE EXERCÍCIOS ALGORITMOS

Matrizes (Vetores Bidimensionais)

PROGRAMAÇÃO A. Matrizes

Variáveis Indexadas Unidimensionais (Vetores)

Exercícios V1 = V2 = V1 = V2 =

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

Universidade Veiga de Almeida Algoritmos e Linguagem I

Lista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números

Lógica de Programação Módulo I Prof.: Ricardo Lokchin. Fazer os exercícios abaixo na Linguagem C ou em ALGORITMOS.

Programação Estruturada Aula VisualG

Noções de algoritmos - Aula 1

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Fundamentos de Programação

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

Estruturas de Controle de Fluxo

Resolva os exercícios utilizando a linguagem de programação C

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores

Lista de Exercícios 5

VETORES Motivação AULA 19

Algoritmos. Prof. Jonatas Bastos Site:

Agregado Homogêneo e Heterogêneo

Introdução a programação Controle de Fluxo

ALGORITMO. Professor: RODRIGO GOBBI TIPOS DE DADOS E INSTRUÇÕES PRIMITIVAS

Algoritmos e Programação

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Agregado Homogêneo e Heterogêneo. Agregado Homogêneo. Agregado Homogêneo 28/11/2015

Variáveis Compostas Homogêneas Vetores

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Introdução a programação Vetores

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

INF 1620 P1-13/09/02 Questão 1 Nome:

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

Estruturas. Estruturas. Estruturas. Estruturas. Estruturas. Algoritmos e Lógica de Programação. Estruturas. Uniões Enumerações CANSI

Introdução a programação Visão geral

Estruturas Compostas Matriz

UNIFEI - UNIVERSIDADE FEDERAL DE ITAJUBÁ MATEMÁTICA

n1, /,n2, =,res n1, n2, res: real res <- n1 / n2 Digite o Dividendo: n2<>0 Digite o Divisor: verdadeiro falso

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

MCG126 Programação de Computadores II

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Algoritmos- continuação

Programação Básica. Estrutura de um algoritmo

Exercícios: Vetores e Matrizes

Registros, Vetores e Matrizes

Algoritmos e Estrutura de Dados I Matriz

Fundamentos de Programação 1

LINGUAGEM C: ARRAY: VETORES E MATRIZES

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

Vetores Unimensionais

Programação Procedimental

Programação Estruturada

Algoritmos e Técnicas - Vetores e Registros. Vetores

Linguagem C. Programação Estruturada. Estrutura de Dados Heterogêneos. Prof. Luis Nícolas de Amorim Trigo

CCO 016 / COM 110 Fundamentos de Programação

Linguagem C: Introdução

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PROFESSOR EDUARDO PARETO

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

12 - Dados Estruturados Vetores, Matrizes e Strings

Transcrição:

REGISTROS 1 Um dos pontos mais importantes para a solução de problemas são as Estruturas De Dados ou Agregados Estrutura de Dados conjunto de dados relacionados entre si, agrupados na memória principal ou secundária Se fosse para guardar na memória as notas de cada um dos 100 alunos de uma turma, pelo que sabemos até agora, necessitaríamos de 100 variáveis diferentes NOTA 1, NOTA 2,, NOTA 100 Observou-se que somente foi possível trabalhar com um (único) tipo de dado por vetor No momento em que se precisar trabalhar com dois (ou mais ) tipos de dados diferentes, é necessário a utilização de mais vetores ou matrizes A utilização da principal estrutura de dados, o REGISTRO, consiste em trabalhar vários dados de tipos diferentes ( OS CAMPOS ) em uma mesma estrutura Por esta razão, este tipo de dado é considerado HETEROGENEO Para se informar o nome de um aluno e de suas quatro notas, isto nos obrigaria a utilizar dois vetores: um para armazenar os nomes dos alunos e o outro para conter as notas ( os valores armazenados em ambos são de tipos diferentes) A utilização de registros vem a facilitar esta representação: Layout do formato de um registro com seus campos Cadastro de Notas NOME:: 1 ª NOTA: 2 ª NOTA: 3 ª NOTA: 4 ª NOTA Desta maneira, o REGISTRO está formado pelos campos: NOME, 1 ª NOTA,,4 ª NOTA, e poderia ser chamado de ALUNO Selecionar e guardar os dados de um determinado funcionário (na memória) precisaríamos de tantas variáveis quantos campos houverem no formulário de cadastro preenchido O tempo para manipular tais dados será muito maior se não se dispuser de uma forma simplificada de acessar e manipular Daí vem os REGISTROS

2 Registros : (RECORD): Agregados heterogêneos ou variáveis compostas heterogêneas: São conjuntos de informações relacionadas entre si, que podem ser referenciadas como uma unidade ( o Registro) e que, normalmente, são conjuntos de informações (campos) de tipos diferentes Ao contrário das variáveis já estudadas, uma variável do tipo registro, quando definida pode ocupar muitas posições da memória principal, que ficam reservadas para o uso Logo, ao se definir uma variável do tipo registro, deve-se definir também quais serão as partes componentes desta variável (os campos) por exemplo: NOME, IDADE, SEXO, ALTURA junto com o seu tipo básico Um registro poderá ter tantos campos quanto o analista deseje Para facilitar recomenda-se um máximo de 10 campos por registro Quando for necessário estruturas de dados maiores pode-se utilizar registros previamente definidos dentro de outros registros Declaração de Registros: Tipo r = registro {Descrição dos campos e seus tipos} r = REG; Tomando como exemplo a proposta de se criar um (único) registro denominado ALUNO, caracterizado anteriormente: tipo r = registro texto: NOME real: NOTA1; real: NOTA2; real: NOTA3; real: NOTA4; r = ALUNO Observe que é especificado um ÚNICO registro denominado ALUNO, o qual é um conjunto de dados heterogeneos ( um campo tipo texto e quatro tipo real ) Desta forma é possível guardar em uma mesma estrutura vários tipos diferentes de dados Pode-se também dizer que este tipo de registro é um vetor, pois tem-se a variável ALUNO como um vetor cujos índices são: NOME, NOTA1,, NOTA4 tipo r = registro caracter: NOME real: SALARIO inteiro: IDADE lógico: SEXO r = REG; Isto significa: Um modelo(r) de um registro e a criação de uma área de memória denominada REG capaz de conter 4 campos de tipos diferentes; ou seja:

3 REG: real inteiro NOME SALÁRIO IDADE SEXO caracter lógico Ex: Como seria descrito em NPC o diagrama abaixo: FUNC NOME ENDEREÇO RUA NRO CEP CIDADE ESTADO SALARIO Tipo r = registro ender: ENDEREÇO; texto: CIDADE; caracter: ESTADO; real: SALARIO; r = FUNC; Observe que o tipo ender ainda não foi definido (não é tipo básico); Logo a definição está incompleta; Definindo o novo tipo: Tipo ender = registro caracter: RUA; inteiro: NRO; inteiro: CEP; ender é um registro embutido no registro r; Atribuição de valores: FUNC NOME Delúbio Soares ; FUNC ENDEREÇO RUA Palácio do Planalto ; FUNC ENDEREÇO NRO 171; FUNC ENDEREÇO CEP 171171171; FUNC CIDADE Brasília ; FUNC ESTADO DF ; FUNC SALARIO 1,00; OBS: O uso do ponto ( ) indica que esta variável FUNC possui campos, e que NOME é um deles; OBS: As operações realizadas sobre uma variável REGISTRO, são as mesmas de uma variável comum

4 A única diferença é que devemos indicar o NOME DA VARIÁVEL seguido de um ponto ( ) e logo após segue-se o NOME DO CAMPO A partir da definição de um registro como um novo tipo derivado, poderemos definir quantas variáveis desejarmos desse novo tipo, no grupo de variáveis de nossas declarações Ex: Var REGALUNO: RALUNO; REGCAD: RFUNC, MELHOR FUNC; REGALUNO: RALUNOA, RALUNOB Tipo r = registro{armazena os dados de um aluno} caracter: SEXO; texto: CIDADE; real:média; r = REGALUNO; LEITURA DE REGISTROS Criar um (único) registro denominado ALUNO, caracterizado anteriormente: tipo r = registro texto: NOME real: NOTA1; real: NOTA2; real: NOTA3; real: NOTA4; r = ALUNO Inicio Leia (ALUNONOME); Leia (ALUNONOTA1); Leia (ALUNONOTA2); Leia (ALUNONOTA3); Leia (ALUNONOTA4); imprima (ALUNONOME); imprima (ALUNONOTA1); imprima (ALUNONOTA2); imprima (ALUNONOTA3); imprima (ALUNONOTA4);

5 VETORES DE REGISTRO Layout do formato de um registro com seus campos Cadastro de Notas Escolares NOME: NOTAS 1 2 4 Observe que foi delineado um vetor chamado NOTAS com quatro índices, um para cada nota A declaração de tal registro com seu respectivo vetor seria então: tipo r = registro; Texto: NOME; ns: NOTAS; Fim registro; r = ALUNO; tipo ns = vetor[ 1 : 4 ] real; Cada elemento de um vetor poderá ser um registro ao invés de uma variável de um tipo básico qualquer Com isso o vetor não deixa de ser ainda uma estrutura homogênea, Por que cada elemento do vetor é do tipo igual ao outro Exemplo de um vetor de registros: VTURMA 1 2 100 Nome Sexo Cidade Media Obs: Alguns autores chamam os vetores de registros de tabela

Escrevendo a estrutura acima em portugol: 6 Tipo v = vetor [ 1 : 100] r; v = VTURMA; Tipo r = registro; Texto: NOME; Caractere: SEXO; Texto: CIDADE; Real: MEDIA; Fim registro; r = REGALUNO; Cada elemento do vetor contém os dados de um aluno de uma turma constituída de 100 alunos (dimensão do vetor) Seja o registro abaixo: (pág 115 G Lage - ) REGPAG Nome CPF Identidade Horas de Trabalho 1 2 3 4 5 6 Salário FGTS 1,1 1,2 Horas Trabalhadas em cada Semestre; (vetor); FGTS nos trimestres (matriz) 2,1 2,2 Em Portugol: tipo rp = registro; inteiro: CPF, IDENTIDADE; ht: HORAS TRABALHADAS; real: SALARIO; fgts: FGTSNOTRIMESTRE; rp = REGPAG; tipo ht = vetor [ 1 : 6 ] real; tipo fgts = matriz [ 1 : 2, 1 : 2 ] real;

7 Se fosse 30 funcionários: tipo vf = vetor [ 1 : 30 ] rp; vf: VFUNC; tipo rp = registro; inteiro: CPF, IDENTIDADE; ht: HORASTRABALHDAS; real: SALARIO; fgts: FGTSNOTRIMESTRE; rp = REGPAG; tipo ht = vetor [ 1 : 6 ] real; tipo fgts = matriz [ 1 : 2, 1 : 2 ] real; A atribuição de valores poderia ser: REGPAG HORASTRABALHADAS [1] 6,40; REGPAG HORASTRABALHADAS [6] 7,25; REGPAG FGTSNOTRIMESTRE [1,1] 267,80; Etc O que significa a definição abaixo: tipo v = vetor [1:100] r ; v: CADASTRO; tipo r = registro inteiro: CPF; ender: ENDEREÇO; real: SALARIO; caracter: SEXO; r = REGCAD SOLUÇÃO: vetor de registros onde cada elemento do vetor contem os dados de um funcionário de uma empresa com 100 funcionários

8 NOME CPF ENDEREÇO SALÁRIO SEXO Exemplos utilizando Registros, vetores e matrizes tipo r = registro ender: ENDEREÇO; inteiro: CPF; lógico: SEXO; ht: HORASTRAB; inteiro: DATANAS; lógico: TEMDEPENDENTES; tipo ht = vetor [ 1 : 3 ] inteiro; tipo ender = registro texto: RUA, AV; inteiro: NRO, CEP; r = FUNCIONÁRIO Criar os registros para o lay-out abaixo, considerando oito alunos, e escrever um algoritmo em npc para ler e imprimir, os nomes e as notas de cada aluno Layout do formato de um registro com seus campos Cadastro de Notas Escolares NOME: NOTAS 1 2 4

9 tipo v = vetor [ 1 : 8 ] r; tipo r = registro; nt: NOTA; v = ALUNO; tipo nt = vetor [ 1 : 4 ] real; inteiro: I, J; para J de 1 ate 8 faça leia ( ALUNO [ J ] NOME ); imprima ( ALUNO [ J ] NOME ); fim para; fim para I de 1 ate 4 faça leia ( ALUNO [ J ] NOTA [ I ] ); imprima ( ALUNO [ J ] NOTA[I] ); fim para; Observe que o looping da variável J controla o número de alunos da turma, no caso 8, e o looping da variável I controla o número de notas, até 4 por aluno Para movimentação de mais um na variável J existem quatro movimentações na variável I Dada a tabela abaixo: CÓDIGO NOME 001000 ALFAIATE 001050 MEDICO 198050 CONTADOR 199000 DENTISTA Escrever um algoritmo que dado o CÓDIGO DA PROFISSÃO (fornecido em cartão) o mesmo emita o NOME da profissão Criar um looping para executar as operações de consulta enquanto o operador desejar

Algoritmo: PROFISSÃO Inicio 10 tipo t = vetor [ 1 : 100 ] reg t: TABELA; tipo reg = registro; inteiro: CÓDIGO; texto: PROFISSÃO ( ou NOME); reg: PROFISSÃO; inteiro: CODIGODESEJADO, I; leia (TABELA); { carregando a tabela fornecida } leia (CODIGODESEJADO); { código para o qual se deseja saber qual a profissão } para I de 1 até 100 faça se TABELA [ I ] CODIGO = CODIGODESEJADO então imprima ( TABELA [ I ] NOME ); abandone; fim se; fim para; fim PROFISSÃO Dada a tabela abaixo: CÓDIGO NOME SALÁRIO 001000 ALFAIATE R$ 1500,00 001050 MEDICO R$ 7200,00 198050 CONTADOR R$ 2800,00 199000 DENTISTA R$ 7200,00 Escrever um algoritmo que dado o CÓDIGO DA PROFISSÃO (fornecido em cartão) o mesmo emita o NOME da profissão e o salário correspondente Algoritmo: PROFISSÃO

Inicio 11 tipo t = vetor [ 1 : 100 ] reg t: TABELA; tipo reg = registro; inteiro: CÓDIGO; texto: PROFISSÃO ( ou NOME); real: SALARIO reg: PROFISSÃO; inteiro: CODIGODESEJADO, I; caractere: RESP: lógico: ACHA; leia (TABELA); { carregando a tabela fornecida } RESP SIM ; Enquanto RESP = SIM faca leia (CODIGODESEJADO); { código para o qual se deseja saber qual a profissão } ACHA falso; para I de 1 até 100 faça fim para; se TABELA [ I ] CODIGO = CODIGODESEJADO então ACHA verdadeiro; imprima ( TABELA [ I ] NOME, TABELA [ I ] SALÁRIO ); abandone; senão ACHA falso fim se; imprima ( DESEJA CONTINUAR A CONSULTA?, SIM OU NÃO? ); leia ( RESP ); fim enquanto; fim PROFISSÃO

12 Seja o layout abaixo que significa a quantidade de baixas (volume de vendas) de um produto por dia da semana { Lógia de Programação Forbellone pág 89 } a) Escrever um algoritmo em npc, que faça a declaração do registro de um único produto; b) Utilizando o exercício anterior, escrever um algoritmo que possa conter as baixas de 4 semanas (isto é um mês), e calcule o total de baixas de cada dia durante as quatro semanas c) Considere agora, 500 produtos diferentes; NOME: CÓDIGO: PREÇO: BAIXA 1 2 3 4 5 6 Algoritmo: VENDAS Inicio Tipo r = registro Inteiro: CÓDIGO; Real: PREÇO; caractere: NOME; nt: DIAS; Fim registro; r = PRODUTO; {dados de BAIXA do produto por dia da semana } tipo nt = vetor [ 1: 6 ] inteiro; NOME: CÓDIGO: PREÇO: 1 2 3 4 5 6 BAIXA 1 2 3 4 67

13 Algoritmo: VENDAS Inicio Tipo r = registro Inteiro: CÓDIGO; Real: PREÇO; caractere: NOME; nt: DIAS; Fim registro; r = PRODUTO; {dados de BAIXA do produto por dia da semana durante 4 semanas } tipo nt = matriz [ 1 : 4, 1: 6 ] inteiro; Suponha um ônibus com 44 lugares, numerados seqüencialmente Construir um vetor chamado ONIBUS para venda de passagens: Vetor de Registros: 1 3566 2 3567 NUMERO DA PASSAGEM: DATA: 43 44 DE: PARA: HORÁRIO: POLTRONA: IDADE: NOME PASSAGEIRO: Tipo r = registro Inteiro: NPAS, NPOLTRONA, IDADE; caractere: NOME, DATA, ORIGEM, DESTINO, HORA; Fim registro; r = ONIBUS;

14 Prob 38 pág 171 Algoritmos e Programação { Marco Medina Cristina Fertig } Registro de uma criança Criar um algoritmo em npc para fazer a carteira de saúde de uma criança que nasceu no dia 25 de dezembro de 2008 Tipo r = registro texto: NOMEPAI, NOMEMÃE; ender: ENDEREÇO; texto: CIDADE; caracter: ESTADO; inteiro: DIA, MÊS, ANO; ( DATA DSE NASCIMENTO } real: PESO; r = CARTSAUDE; tipo ender = registro texto: RUA, AV, BAIRRO; inteiro: NRO, CEP, FONE; Prob 40 - pág 179 Algoritmos e Programação { Marco Medina Cristina Fertig } Considere o layout a seguir: MATRICULA: DISCIPLINA: SEMESTRE: ANO: PERÍODO: NOME DO ALUNO: NOTAS NOTA P1 NOTA P2 MEDIA Escrever um algoritmo que leia os dados do tipo de registro acima, para uma turma de 30 alunos, calcule a média aritmética de cada aluno, e informe se o mesmo foi aprovado direto, ou se vai para a Prova final, ou se foi reprovado direto

Algoritmo: MEDIA_ALUNOS 15 tipo t = vetor [ 1 : 30 ] reg t: ALUNO; tipo reg = registro; inteiro: MATRICULA, ANO; caractere: DISCIPLINA, SEMESTRE, PERÍODO; nt: NOTA; tipo nt = vetor [ 1 : 3 ] real; nt: NOTA; Inicio O diagrama abaixo representa o pátio de um deposito de uma empresa de construções, que armazena os seguintes materiais: cimento, areia, tubos, blocos, madeira, cal e saibro 20 cimento 00 vazio 80 saibro 40 Madeira 00 Vazio 23 blocos 00 vazio 30 Cimento 00 vazio 00 Vazio 30 Areia 25 Areia 53 Tubos 15 Blocos 45 Tubos 20 cal Em cada espaço do deposito acima estão colocados a quantidade do material e o nome correspondente Assim 30 cimento Significa que naquele local existem 30 sacos de cimento Escrever um algoritmo capaz de contar quantos elementos de cada material existe no pátio Observe que pode haver mais de um local com o mesmo material Sabe-se que os dados são fornecidos em cartão O algoritmo deve imprimir os resultados conforme o diagrama abaixo Produto Quantidade Cimento Xxxx Algoritmo: PATIOMATERIAL Inicio: Tipo p = matriz [14, 14] reg; p = PÁTIO; tipo produto = (cimento, areia, tubos, blocos, madeira, cal, saibro, vazio) tipo reg = registro; inteiro: QUANT; { significa a 1ª Coluna 20 00-00 -53 } produto: MAT; { significa a 2ª Coluna cimento vazio } tipo oc = vetor [cimento : saibro] inteiro; oc: OCMAT; inteiro: I, J; produto: INDPROD; OCMAT 0 {Inicializando o vetor OCMAT com zeros } leia (PÁTIO); Para I de 1 até 4 faça Para J de 1 até 4 faça Se PÁTIO[ I, J ] MAT < > VAZIO então

16 OCMAT [ PÁTIO[I, J] MAT] OCMAT [ PÁTIO[I, J] MAT ] + PÁTIO [I, J] QUANT; { MAT significa para só um material por vez } Fim se; Fim para; Fim para; Imprima ( PRODUTO, QUANTIDADE ); Imprima ( ======, ======= ); Para INDICAPRODUTO de cimento até saibro faça Imprima ( INDICAPRODUTO, OCORMAT [ INDICAPRODUTO ] ); Fim para; Fim PATIOMATERIAL; Vários proprietários de imóveis estão em atraso com IPTU Algoritmo: calcular e imprimir o valor da multa a ser paga, considerando que: - dados de cada imóvel : numero de registro, valor do imposto e meses em atraso, estão em cartão;- multas calculadas a partir do valor do imposto e segundo a tabela (lida a partir de cartões): Valor do imposto % por mês de atraso Cartão FLAG: NRO = 0000 Até 500 1 De 500,01 até 1800,00 2 Imprimir: NRO, VIMP, MULTA De 1801,00 até 5000,00 4 E MESESATRASO De 5001, 00 até 12000,00 7 > 12001,00 10 Efetuar a leitura das 4 notas bimestrais de 8 alunos, apresentando no final os dados dos alunos classificados por nome Obs Criamos duas variáveis: ATUAL e PROXIMO e uma terceira X para a auxiliar a troca de posições Algoritmo LEITURAORDENAÇÃO Inicio Tipo bimestre = conjunto [ 1 : 4 ] real Cad_aluno = registro; bimestre: NOTA; fim registro; var ALUNO: conjunto [ 1 : 8 ] de cad_aluno I, J, ATUAL, PROXIMO: inteiro X: cad_aluno Para J de 1 ate 8 faça Leia ( ALUNO [ J ] NOME ); Para I de 1 ate 4 faça Leia ( ALUNO [ J ] NOTA [ I ] ); Fim para

Fim para 17 { Rotina de ordenação de dados heterogêneos} para ATUAL de 1 ate 7 faça para PROXIMO de ATUAL + 1 ate 8 faça Fim se; Fim para; fim para; se ALUNO [ ATUAL ] NOME > ALUNO [ PROXIMO ] NOME então X ALUNO [ ATUAL ]; ALUNO [ ATUAL ] ALUNO [ PROXIMO ]; ALUNO [ PROXIMO ] X; Para J de 1 ate 8 faça Imprima ( ALUNO [ J ] NOME); para I de 1 ate 4 faça imprima ( ALUNO [ J ] NOTA [ I ] ); fim para; fim para; fim LEITURA ORDENAÇÃO