Inteiro Os dados do tipo inteiro são quantidades numéricas inteiras. Os dados deste tipo podem ser constantes, variáveis, funções e expressões.

Documentos relacionados
1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

Linguagem Computacional

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

Aula 10: Introdução a Vetores e Matrizes

Métodos de Programação I Ana Maria de Almeida

ALGORITMOS + PASCAL. Estruturas de dados Heterogêneas

Exercícios: Vetores e Matrizes

Variáveis Tipos de Dados

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:

TÉCNICO DE INFORMÁTICA - SISTEMAS

Engenharia Civil e Engenharia Básica Programação de Computadores Wedson Quintanilha da Silva

Métodos de Programação I Ana Maria de Almeida

Registros Profa Jacqueline 1

Programação Introdução

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

VETORES Motivação AULA 19

Lógica de Programação e Algoritmos

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

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

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

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

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Linguagem de programação: Pascal

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

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

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Estruturas Compostas Matriz

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

ESTRUTURA CONDICIONAL E SELEÇÃO

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Módulo 3 Subprogramas

Vetores Unimensionais

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

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

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Linguagem Pascal. Prof. Jonatas Bastos Site:

Capítulo V : Um Tipo Estruturado de Dados: o array

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Computação e Programação (2007/2008-1º Semestre)

1. [VETOR][SALA] Cálculo da média aritmética de 10 valores armazenados em um vetor.

Variáveis Compostas. Vanessa Braganholo

AMBIENTE DE PROGRAMAÇÃO PYTHON II

5ª Lista de Exercícios de Programação I

Linguagens de Programação. Tipos. Carlos Bazilio

Registros, Vetores e Matrizes

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Organização de programas em Pascal

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

Linguagem de Programação Pascal - Introdução

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Exemplos de programação em PASCAL

Variáveis Compostas Homogêneas Vetores

REVISÕES DA SESSÃO ANTERIOR

SEBENTA INTRODUÇÃO Á ALGORITMIA

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

ALGORITMOS E ESTRUTURA DE DADOS

Aula 4: Introdução à Linguagem C++

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

ESTRUTURAS DE REPETIÇÃO - PARTE 1

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

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Universidade Veiga de Almeida Algoritmos e Linguagem I

Pseudocódigo e Visualg

Introdução aos Algoritmos

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Algoritmos e Programação I

1/24 FICHEIROS DE TEXTO

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

Sumário. Ficheiros. Ficheiros

Computação e Programação Exame Época de recurso

Algoritmos II prof. Daniel Oliveira

Introdução à Programação. Strings

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

LINGUAGEM DE PROGRAMAÇÃO

Folha Prática Tipos de dados estruturados (vetores e marizes) 1. Tipos de dados estruturados (vetores e matrizes)

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Ficha 1 Noções de sequência e decisão em algoritmia

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Algoritmos. Prof. Jonatas Bastos Site:

Agregado Homogêneo e Heterogêneo

Prof. Jorge Cavalcanti

Disciplina de Algoritmos e Programação. Vetor e Matriz

Variáveis, Tipos de Dados e Operadores

Capítulo 7 Matriz. Roteiro

Introdução aos Algoritmos

Fundamentos de TI. Aula07_Representação de dados pelo Computador.doc 1

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Transcrição:

Inteiro Os dados do tipo inteiro são quantidades numéricas inteiras. Os dados deste tipo podem ser constantes, variáveis, funções e expressões. Real Idêntico ao anterior, as quantidades em vez de numéricas são reais. Carácter Os caracteres disponíveis encontram-se na tabela ASCII ( American Standard Code for Information Interchange ). Apêndice B Tabela ASCII. String Muitas linguagens de programação disponibilizam o tipo string (cadeia de caracteres letras, algarismos e caracteres especiais, vulgarmente delimitados por apóstrofos).

O número máximo de caracteres possíveis de incluir numa string é 255 na maior parte das linguagens. Operações com strings: Concatenação (+) nome1 Ana ; nome2 Maria ; Escrever (nome1+nome2) O resultado será: Ana Maria. Comparação Comparação resultado caderno > cadernos falso caderno > livro falso ana = ANA verdadeiro Critérios utilizados na comparação: 1. ordem alfabética; 2. quantidade de caracteres. Booleano Apenas podem assumir dois valores: verdadeiro (true) e falso (false).

Vetores ou Matrizes Unidimensionais Um vetor ou array/quadro unidimensional pode ser pensado como uma lista de dados, todos do mesmo tipo, que são coletivamente referidos pelo mesmo nome (identificador). Cada elemento do vetor pode ser acedido individualmente indicando o nome do vetor e o índice, colocado entre parêntesis retos. Pascal declaração de um vector VAR identificador: array[1..n] of tipo_de_dados; Considere a seguinte lista:... lista[1] lista[2] lista[3] lista[n] Os elementos individuais do vetor são lista[1], lista[2], lista[3] até lista[n].

Admitamos que com a variável A pretendemos representar uma coleção de 5 valores que designamos por A[1], A[2], A[3], A[4] e A[5]. Consideremos o seguinte: 1. inteiro A[5] 2. A[1] 3; A[2] 8; 3. A[4] A[2]; i 2; 4. A[i+1] A[1]; 5. A[i+3] A[1]*A[i] A instrução da linha 1 serve para declarar um vetor, A, com 5 inteiros. A[]: 1 2 3 4 5 Na linha 2 coloca-se 3 e 8 na primeira e segunda posição de A (A[1] e A[2]) respetivamente. A[]: 1 2 3 4 5 3 8 Na linha 3 A[4] passa a ter o valor de A[2] e i passa a ser 2. 1 2 3 4 5 A[]: 3 8 8 i: 2 Na linha 4 A[i+1], isto é, A[3] passa a ser igual a A[1] 1 2 3 4 5 A[]: 3 8 3 8 i: 2 Finalmente, na linha 5, A[5] passa a ser 3*8 A[]: 1 2 3 4 5 3 8 3 8 24

Considere o seguinte problema: Calcular a média de idades de n pessoas. Isto é trivial! Até porque este algoritmo já está resolvido... E o desvio de cada idade em relação à média? E agora?! No algoritmo anterior as idades não eram guardadas, por isso, não é possível calcular o desvio, a não ser que se peça novamente as idades! Mas que aborrecido para o utilizador! Solução: Guardar as idades num vetor! inicio soma 0; Escrever ( Quantas pessoas? ); Ler (n); Para i 1 até n fazer inicio Escrever ( Introduza a idade,i ); Ler (idade[i]); soma soma + idade[i]; fim; media soma/n; Para i 1 até n fazer inicio desvio media - idade[i]; Escrever ( O desvio da idade, i, é, desvio); fim; fim

Matrizes Bidimensionais Uma matriz, ou array, bidimensional pode ser pensada como uma tabela de dados, todos do mesmo tipo, que são coletivamente referidos pelo mesmo nome (identificador). Cada elemento da matriz pode ser acedido individualmente indicando o nome da matriz e os índices (da linha e da coluna), colocados entre parêntesis retos. Nas matrizes o 1º índice representa as linhas 2º índice representa as colunas. Pascal declaração de uma matriz bidimensional VAR identificador: array[1..n, 1..m] of tipo_de_dados; Suponha que tabela é uma matriz de duas dimensões contendo m linhas e n colunas. Os elementos individuais da matriz seriam então: tabela[1,1], tabela[1,2], tabela[1,3],..., tabela[1,n], tabela[2,1],..., tabela[2,n],..., tabela[m,1], tabela[m,2],..., tabela[m,n]. Considere a figura: Tabela[1,1] Tabela[1,2] Tabela[1,3] Tabela[2,1] Tabela[2,2] Tabela[2,3]...... Tabela[1,n] Tabela[2,n]... Tabela[m,1] Tabela[m,2] Tabela[m,3]... Tabela[m,n] Observação: O índice de uma variável indexada pode começar em 1(um) ou em 0 (zero) dependendo da linguagem utilizada.

As aplicações que envolvem o uso de matrizes bidimensionais requerem ciclos encaixados (ou laços embutidos), um ciclo para cada dimensão. Uma aplicação orientada para o processamento dos elementos de uma matriz bidimensional poderá fazer o uso de dois ciclos, um dentro do outro. Como é possível preencher os elementos de uma matriz (bidimensional)? Existem duas formas de o fazer: Preencher por linha Fixa-se a linha e percorre-se as colunas. Preencher por coluna Fixa-se a coluna e percorre-se as linhas.

Exemplo usando a estrutura de dados matriz bidimensional Suponhamos as seguintes variáveis tabela: matriz inteira de duas dimensões (n linhas e m colunas); l: contador do número da linha; c: contador do número da coluna. Se pretendermos: Preencher a matriz por linha: Para l 1 até n fazer Para c 1 até m fazer inicio Escrever ( Qual o valor da matriz para a coluna,c, e linha,l); Ler tabela[l,c]; fim Preencher a matriz por coluna: Para c 1 até m fazer Para l 1 até n fazer inicio Escrever ( Qual o valor da matriz para a coluna,c, e linha,l); Ler tabela[l,c]; fim

Exercícios 1. Introduza 10 inteiros para um vetor e calcular a sua soma. 2. Escreva um algoritmo que, após ler n valores A[1], A[2],..., A[n], desloque os primeiros n-1 valores uma posição para a direita e escreva o vetor resultante; por exemplo, se o vetor era: -1 8 4-6 11 passa a ser: -1-1 8 4-6

3. Escreva um algoritmo semelhante ao anterior mas que desloque os elementos para a esquerda. 4. Introduza 10 inteiros, negativos e positivos, num vetor. De seguida examine cada valor do vetor e escreva no ecrã os negativos e a respetiva posição (índice). 5. Registe num vetor, 5 idades. De seguida efetue as seguintes operações: Calcule a média das idades; Indique as idades que tiveram valores acima da média; Indique a menor e a maior idade. 6. Escreva um algoritmo que após ler 6 inteiros para 2 vetores (A e B) calcule a soma e insira num outro vetor (C). Escreva o vetor resultante; por exemplo, se A: 1 3 5 2 4 7 B: -2 4 3 1 5 8 C: -1 7 8 3 9 15 7. Leia 10 inteiros para um vetor e crie um novo vetor somente com os pares do primeiro. Escreva o vetor resultante; por exemplo, se A: 2 3 5 2 4 7 B: 2 2 4 8. Registe os preços de 10 artigos e em seguida atualize esses mesmos preços sabendo que todos sofrem um aumento de n%.

9. Considere os seguintes dados: 3, 2, 1, 5, 29, 6, 40, 3, 1, 2, 12, 31. Preencha a matriz A (3 linhas e 4 colunas), após cada uma das seguintes operações: I Para i 1 até 3 fazer Para j 1 até 4 fazer Ler(A[i,j]); II Para j 1 até 4 fazer Ler(A[i,j]); Para i 1 até 3 fazer 10. A empresa de tapetes L&A tem dez empregadas e pretende um programa que registe o número de tapetes feitos por dia (em cinco dias da semana) por cada uma das empregadas. Pretende também, registar o total de tapetes feitos por cada empregada na semana. Os dados registados devem ser guardados para o cálculo da média de tapetes feitos na semana. A empresa pretende, ainda, saber qual a empregada que executou mais tapetes e em que dia da semana. a) Faça um estudo das estruturas de dados necessárias à resolução do problema; b) Elabore um algoritmo considerando o seguinte: Registo de valores; Total de tapetes feitos por cada empregada; Cálculo da média de tapetes feitos por dia na semana; Empregada que executou o maior número de tapetes. 11. Dada a matriz A, quadrada de n por n, pretende-se um algoritmo que preencha uma matriz B, transposta de A, ou seja, troque as linhas com as colunas.

Tipo de dados estruturados cujos elementos constituintes não necessitam de ser idênticos (do mesmo tipo como acontecia nos arrays). Os elementos individuais designam-se por campos do registo. A principal diferença entre uma matriz e um registo é que, enquanto uma matriz agrupa um conjunto de dados do mesmo tipo, um registo pode conjugar diferentes tipos de dados na mesma estrutura. Pascal A definição de um registo pode ser feita directamente como variável ou como tipo: a) Exemplo de definição de um registo directamente como variável: Var aluno: record nome:string; telefone: string[10]; morada:string; idade:integer; end; Sintaxe: Var <identificador>: Record <lista de campos> End;

b) Exemplo de definição de um registo como tipo: Type pessoa= record nome:string; telefone: string[10]; morada:string; idade:integer; end; Sintaxe: Type <identificador> = Record <lista de campos> End; Diferença entre Var e Type: Um registo definido como variável (Var) funciona apenas para uma única variável; Um registo definido como Type, serve para definir várias variáveis desse mesmo tipo. Exemplo: Type pessoa= record nome:string; telefone: string[10]; morada:string; idade:integer; end; Var aluno, a1,a2:pessoa; As variáveis aluno, a1 e a2 são registos que têm os mesmos campos definidos no tipo pessoa. Para fazer uma atribuição de valores aos campos da variável aluno há duas maneiras possíveis de o fazer: 1. Designação conjunta do identificador do registo e do campo visado Sintaxe: <identificador do registo>.<identificador do campo> Exemplo: aluno.nome:= Ana Guedes ; read(aluno.idade); write( Idade do aluno é, aluno.idade);

2. Por intermédio do operador with O operador with permite indicar uma vez o identificador do registo e em seguida trabalhar apenas com os identificadores dos campos. Exemplo: With aluno do Begin writeln( Quais os dados do aluno? ); writeln ( Nome: ); readln(nome); writeln( Morada: ); readln(morada); writeln( Telefone: ); readln(telefone); writeln( Idade: ); readln(idade); End;

Exercícios 1. Elabore um algoritmo que: Permita a leitura dos dados relativos a 15 empregados de uma empresa. Os dados são os seguintes: nome morada telefone categoria sexo idade Permita a listagem de todos os nomes existentes. Indique a idade do empregado mais velho. Indique o número de empregados do sexo masculino.

Todas as estruturas de dados, que vimos até aqui, são voláteis, ou seja, elas contêm valores apenas enquanto o programa está a correr. Suponhamos que queremos elaborar um programa que registe os aniversários dos nossos melhores amigos. É evidente que a estrutura de dados que aprendemos anteriormente (Registo) é útil. Mas não chega! É necessário guardar em memória secundária os dados. Ficheiro é um tipo de dados estruturado que permite fazer isso mesmo. Os principais tipos de ficheiros com que podemos trabalhar são: ficheiros de texto ficheiros de tipos definidos pelo utilizador

Ficheiros de texto Contem informação em formato de caracteres ASCII. Ficheiros de tipos definidos pelo utilizador O ficheiro está organizado sob uma determinada forma. Podem ser ficheiros de inteiros ou reais, de caracteres ou de strings, de arrays, de registos, etc. Mas todos do mesmo tipo, como acontecia nas estruturas de dados do tipo array. Pascal Declaração de ficheiros Texto Sintaxe Var <identificador>: text; Dados Sintaxe Var <identificador>: FILE OF tipo; Exemplo: Type conta=record cliente:string; clientesaldo:real END; VAR clientes: FILE OF conta; Ficheiro de registos do tipo conta.

Associação de uma variável com o nome de ficheiro Sintaxe Assign(<variável de ficheiro>,<nome de ficheiro>) Abertura de um ficheiro já existente Sintaxe Reset(<variável de ficheiro>) Criação de um novo ficheiro Sintaxe Rewrite(<variável de ficheiro>) Escrever/Ler informação para um ficheiro Sintaxe Write(ln)/Read(ln)(<variável de ficheiro>,<dados>) Fechar um ficheiro Sintaxe Close(<variável de ficheiro>) Acrescentar informação num ficheiro do tipo texto Sintaxe Assign(<variável de ficheiro>, <nome de ficheiro>); Append(<variável de ficheiro>); Teste de fim de ficheiro/fim de linha Sintaxe Eof/Eoln(<variável de ficheiro>)

Um conjunto é uma coleção de elementos simples relativos a um assunto concreto. Os elementos de um conjunto podem ser do tipo real, inteiro, booleano, carácter ou string. Construção dum conjunto: Identificador:[elemento 1, elemento 2,..., elemento n ] Exemplos: Cores:[azul, verde, preto, vermelho, amarelo, castanho, rosa] Animais: [rato, vaca, ovelha, porco, cão, pintainho] Formas: [quadrado, elipse, paralelogramo, losango, retângulo, triângulo, circunferência] Inteiros10: 1..10

Pascal Sintaxe: Type elementos base = (dado 1, dado 2,..., dado n ); ou Type elementos base = dado 1..dado n ; conjunto = SET OF elementos base; Var nome do conjunto: conjunto; Exemplo: Type medidas = (pequeno, medio, grande); medidascamisa = SET OF medidas; Var mangacurta, mangacomprida: medidascamisa;