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

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

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

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

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

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

Agregado Homogêneo e Heterogêneo

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

Lógica de Programação e Algoritmos

ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS

Linguagem Computacional

Aula 10: Introdução a Vetores e Matrizes

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

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

Aula Anterior. Decomposição algorítmica (continuação)

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

Vetores Unimensionais

VARIÁVEIS INDEXADAS VETORES E MATRIZES

Estruturas Compostas Matriz

Fundamentos de Programação 1

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

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

Elementos básicos das linguagens de programação

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)

VARIÁVEIS INDEXADAS VETORES E MATRIZES

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

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

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Linguagem Pascal. Prof. Jonatas Bastos Site:

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO A. Matrizes

Ciência da Computação

Exercícios. Resposta: a) var valor: real; i: integer. b)

ALGORITMOS E ESTRUTURA DE DADOS

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

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

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

FACCAT Sistemas de Informação. Estruturas de Dados

Programação de Computadores II

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

Ficha de Trabalho N.º5 Soluções Propostas

Vetores Unimensionais

Vetores Unimensionais

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Variáveis Compostas Homogêneas Vetores

Matrizes (Vetores Bidimensionais)

ALGORITMOS + PASCAL MATRIZES COM MAIS DE UMA DIMENSAO OU VETORES

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

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

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

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

Programação: Vetores

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

Variáveis Indexadas Unidimensionais (Vetores)

Dados Estruturados Vetores e Matrizes. SCC120 - Introdução à Ciência de Computação

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

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.

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

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

Modularização. Prof. Antonio Almeida de Barros Junior

TÉCNICO DE INFORMÁTICA - SISTEMAS

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

LISTA DE EXERCÍCIOS: 1ª Unidade

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Variáveis Tipos de Dados

Lista 13. Program Pzim ; var dez : array [ ] of real; i:integer; Begin //lê 10 valores for i:= 1 to 10 do readln(dez[i]); //calcula

Aquecimento. program math2 integer:: x,num1 write(*,*)"digite dois números read(*,*) x,num1 write(*,*)"a soma é",x+y end program math2

Lógica de Programação, Algoritmos e Estruturas de Dados

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 4 Strings. Prof. Sandra Pais Soares

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

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:

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

Algoritmos Computacionais

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

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

Aula 3: Algoritmos: Formalização e Construção

Computação I. Prof. Miguel Elias Mitre Campista.

Introdução. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo

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

Uma matriz m x n é um quadro de elementos dispostos em m linhas e n colunas. Os valores de m e n são sempre positivos e inteiros.

Algoritmos. Conceitos e Comandos

INF1005: Programação 1. Matrizes. 06/06/10 (c) Paula Rodrigues 1

Conceitos Básicos de Algoritmos

Linguagem de programação: Pascal

Algoritmos e Programação

Lógica de Programação I. Gilson de Souza Carvalho

Programação de Computadores:

CCO 016 / COM 110 Fundamentos de Programação

Algoritmos. Prof. Jonatas Bastos Site:

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

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

Estruturas de Repetição

Estruturas Homogêneas Vetores e Matrizes. Givanaldo Rocha

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

Aulas Anteriores. Detalhes da linguagem de programação

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Algoritmo e Programação Matemática

Notas de Aula de Algoritmos e Programação de Computadores

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

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

Transcrição:

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

Exercícios Variáveis compostas homogêneas Multidimensionais (matrizes e outras abstrações)

Manipulação de Strings e caracteres Problema Contar o número de ocorrências de uma palavra em uma frase Solução Pode-se percorrer cada posição da variável do tipo String e, a partir da posição corrente, extrair uma sub-string com o mesmo comprimento da palavra buscada comparando cada sub-string extraída com a palavra buscada. A cada igualdade, conta-se uma ocorrência da palavra buscada.

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Solução Exemplo: Contar o número de ocorrências da palavra ana na frase Joana e fabiana gostam muito de banana Começando na posição da frase teremos:

Manipulação de Strings e caracteres Solução Exemplo: Contar o número de ocorrências da palavra ana na frase Joana e fabiana gostam muito de banana Começando na posição da frase teremos: Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: JOA Sub-cadeia é igual?: Falso

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: OAN Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: += Palavra buscada: ANA Sub-cadeia extraída: ANA Sub-cadeia é igual?: Verdadeiro Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: NA Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: A E Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: E Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: E F Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Solução Omitindo alguns passos da simulação da execução, vamos direto à posição Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual:xx Tamanho da palavra: Tamanho da frase: Contador: X Palavra buscada: ANA Sub-cadeia extraída:??? Sub-cadeia é igual?: XXX

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: BAN Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: += Palavra buscada: ANA Sub-cadeia extraída: ANA Sub-cadeia é igual?: Verdadeiro Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: NAN Sub-cadeia é igual?: Falso Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: Tamanho da palavra: Tamanho da frase: Contador: += Palavra buscada: ANA Sub-cadeia extraída: ANA Sub-cadeia é igual?: Verdadeiro Solução

Manipulação de Strings e caracteres Contar o número de ocorrências de uma palavra em uma frase J O A N A E F A B I A N A G O S T A M M U I T O D E B A N A N A Posição atual: =(-+)=FIM Tamanho da palavra: Tamanho da frase: Contador: Palavra buscada: ANA Sub-cadeia extraída: ANA Sub-cadeia é igual?: Verdadeiro Solução

Manipulação de Strings e caracteres program contapalavras; var frase,palavra,segmento: string; i,conta:integer; begin write('digite a frase: '); readln(frase); write('digite a palavra a ser contada na frase: '); readln(palavra); conta:=; Contar o número de ocorrências de uma palavra em uma frase if length(frase)>=length(palavra) then {se a frase for maior ou igual a palavra - processar} begin for i:= to length(frase)-length(palavra)+ do begin segmento:=copy(frase,i,length(palavra)); if segmento=palavra then inc(conta); end; writeln('numero de ocorrencias = ',conta); end {if frase>=palavra} else writeln('a frase deve possuir ao menos o mesmo numero de caracteres que a palavra'); end.

Matrizes Definiremos uma matriz, sem perda de generalidade, como uma tabela de m x n símbolos que representam valores de algum domínio. As linhas horizontais de uma matriz são chamadas linhas, e as linhas verticais são chamadas colunas.

Matrizes Uma matriz com m linhas e n colunas é chamada de uma matriz m -por- n (escreve-se m x n) e m e n são chamadas de suas dimensões, tipo ou ordem.

Matrizes Um elemento de uma matriz A que está na i- ésima linha e na j-ésima coluna é chamado de elemento i,j ou (i,j)-ésimo elemento de A. Ele é escrito como a i,j ou a[i,j].

Matrizes Uma matriz onde uma de suas dimensões é igual a é geralmente chamada de vetor. Uma matriz n (uma linha e n colunas) é chamada de vetor linha ou matriz linha, e uma matriz m (uma coluna e m linhas) é chamada de vetor coluna ou matriz coluna.

Matrizes Nas linguagens de programação, os elementos da matriz podem estar indexados a partir de (Fortran, MATLAB, R, etc) ou a partir de (C e seus dialetos). Por exemplo, o elemento a(,) em Fortran corresponde ao elemento a[][] em C. No pascal, pode-se utilizar qualquer faixa contínua de valores ordinais (caracteres, números inteiros) como índices das matrizes (da mesma forma que ocorre com os vetores)

Matrizes Uma matriz é útil para modelar dados que serão usados por exemplo para armazenar tabelas, fazer cálculos matemáticos como resolução de sistemas lineares e transformações lineares, fazer desenhos, etc.

Matrizes Aplicações Exemplo de aplicação: Suponha que desejamos guardar no computador uma lista de alunos com suas respetivas notas em todas as disciplinas cursadas durante o ano.

Matrizes Aplicações Exemplo de aplicação: Por exemplo a seguinte tabela mostra a lista de alunos e as notas em disciplinas. Notas por disciplina Média Disciplinas Nomes Joãozinho........ Dorinha,,,,,,,, Luizinho,,,,,,,, Mariazinha,,,,,,,, Pedrinho,,,,,,,, Marquinho,,,,,,,,

Matrizes Aplicações Gostaríamos de fazer um programa para armazenar essa tabela no computador e depois poder calcular a média de todas as notas de todos os alunos. Para saber o desempenho da turma poderíamos calcular a média das médias.

Matrizes Aplicações Para começar vamos pensar apenas em como armazenar as notas na memoria do computador. Para isso vamos utilizar uma matriz. Em Pascal, uma matriz é definida de maneira muito similar a um vetor, usando a seguinte sintaxe: <variável> : array [LI d..ls d,li d..ls d ] of <tipo>; Onde LI = limite inferior LS = Limite superior d denota a dimensão (linhas) e d a dimensão (colunas)

Matrizes Aplicações Para a codificação de nosso problema de notas de alunos, a declaração será: Var notas : array [..,..] of real; Onde o número indica o número máximo de linhas da matriz e o número indica o número máximo de colunas. Se não soubermos com antecedência qual será o tamanho de nossa matriz podemos reservar um número grande como foi feito com vetores.

Matrizes Aplicações Para manter a informação completa da tabela no computador, poderíamos armazenar também os nomes dos alunos em um vetor de String e as médias dos alunos num vetor de números reais. O próximo slide mostra o código fonte de um programa que faz a leitura das notas dos alunos, calcula as medias, guarda num vetor e exibe os resultados na tela do computador.

Matrizes Aplicações Program Turma; Var notas: array [..,..] of real; Media: array [..] of real; Soma: real; i,j: integer; Begin {Entrada de Dados} For i:= to do Begin For j:= to do Begin {ler as notas dos alunos em cada disciplina} Read (notas[i,j]); End; End; {Processamento dos Dados} For i:= to do Begin Soma:=; For j:= to do Begin {somar as notas do aluno i} Soma:=Soma + notas[i,j] End; Media[i]:=Soma/; End; {Saída de Resultados} soma:=; For i:= to do Begin Writeln( A media do aluno ',i,' : ',Media[i]); soma:=soma+media[i]; End; writeln( A media da turma e : ',soma/); End.

Matrizes Aplicações Soma de duas matrizes: Dadas duas matrizes A e B, determinar a soma de A e B. A soma de duas matrizes é bastante simples, apenas deve-se somar os elementos correspondentes de cada matriz e o resultado pode ser armazenado em uma outra matriz.

Matrizes Aplicações Exemplo de soma de duas matrizes A e B de dimensões x: A B C + =

Matrizes Aplicações Solução: Para cada linha i e coluna j o elemento da matriz resultante será calculado como: C[i,j] A[i,j] + B[i,j]; Logo, deve-se elaborar um programa que: Leia as dimensões das matrizes Leia as matrizes Calcule a matriz soma conforme a expressão acima. Exiba o resultado

Matrizes Aplicações A primeira entrada são as dimensões da matriz. Para poder somar duas matrizes, elas devem ter as mesmas dimensões.

Matrizes Aplicações Os elementos de cada linha devem ser digitados deixando um espaço, como mostra o seguinte exemplo: Exemplo de entrada: digite a dimensão das matrizes: digite os elementos da matriz A: digite os elementos da matriz B:

Matrizes Aplicações Program soma_matrizes; Var A,B,C: array[..,..] of integer; i,j: integer; M,N: integer; Begin Writeln('digite as dimensoes das matrizes:'); Readln(M,N); Writeln('digite os elementos da matriz A:'); For i:= to M do Begin For j:= to N do Begin Read(A[i,j]); End; Readln; end; Writeln('digite os elementos da matriz B:'); For i:= to M do Begin For j:= to N do Begin Read(B[i,j]); End; Readln; end; {calcular a soma de A + B} For i:= to M do Begin For j:= to N do Begin C[i,j]:=A[i,j]+B[i,j]; End; End; {imprimir o resultado} Writeln('O resultado da soma de A+B:'); For i:= to M do Begin For j:= to N do Begin Write(C[i,j],' '); {deixar espaço entre números} End; Writeln; { quebra linha } End; End.

Matrizes Aplicações Produto matricial Matematicamente, o produto de duas matrizes é definido somente quando o número de colunas da primeira matriz é igual ao número de linhas da segunda matriz. Dessa forma, se A é uma matriz mxn e B é uma matriz nxp, então seu produto é uma matriz mxp definida como AB (ou por A B).

Matrizes Aplicações Produto matricial O produto é dado por: n (AB) i,j = a i,r b rj = a i, b,j + a i, b,j + a i, b,j +... + a i,n b n,j r=

Matrizes Aplicações Produto matricial Na figura abaixo é ilustrado como calcular o elemento (,) e o elemento (,) de AB se A é uma matriz, e B é uma matriz (AB), = a,r b r, = a, b, + a, b, r= (AB), = a,r b r, = a, b, + a, b, r=

Referências FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Algoritmos estruturados. ed, Ed. LTC,. ISBN:. GUIMARÃES, A. M.; LAGES, N. A. C.; Algoritmos e estruturas de dados. ed, Ed. LTC,. ISBN:. FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Pascal estruturado. ed, Ed. LTC,. ISBN:. Velloso, F. C.; Informática: Conceitos Básicos. ed, Ed. Campus,. ISBN:. http://www.hkbu.edu.hk/~bba_ism/ism/index.htm http://pt.wikipedia.org/wiki/matriz_%matem%c%atica% Ajuda do turbo pascal.