Programação de Computadores
|
|
- Maria do Loreto Medina de Andrade
- 6 Há anos
- Visualizações:
Transcrição
1 Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho
2 Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo Tipos de Variáveis Operadores Estruturas de Controle Estruturas de Dados Subprogramação
3 Variáveis Em FORTRAN as variáveis que usaremos são do tipo LOGICAL Representa dois estados:.true. e.false. CHARACTER Podemos representar os caracteres convencionados na tabela ASCII, embora haja alternativa INTEGER Representamos um subconjunto dos inteiros com sinal [ , 32767] INTEGER*4 Representamos um subconjunto dos inteiros com sinal [ , ] REAL ou REAL*4 Representamos um subconjunto dos reais com aproximadamente 7 algarismos significativos [10-38, ] DOUBLE PRECISION ou REAL*8 - Representamos um subconjunto dos reais com aproximadamente 16 algarismos significativos [ , ]
4 Variáveis Em FORTRAN especificaremos as variáveis usando os caracteres do alfabeto A-Z mais os caracteres dos algarismos 0-9 Uma variável não poderá começar por um numeral FORTRAN não distingue letras maiúsculas de minúsculas O nome da variável será reconhecível até 6 caracteres Convencionalmente variáveis que começam pelas letras i, j, k, l, m e n são do tipo inteiro mas isto pode ser alterado
5 Operadores Observem a distinção entre INTEGER e REAL que apresentamos nos exemplos do uso dos operadores REAL é marcado pela existência do ponto de separação decimal. Como os computadores foram primeiramente desenvolvidos na Inglaterra e nos Estados Unidos da América, nas linguagens de computação se usa o ponto como separador decimal e não vírgula como no Brasil, Portugal, Alemanha, França, Rússia e outros países.
6 Alguns comandos úteis Comando de Leitura READ (*, *) variável1, variável2, Lê as variáveis apresentadas no dispositivo padrão de entrada, em geral o teclado Comando de escrita WRITE( *,*) variável1, variável2,... Escreve as variáveis apresentadas no dispositivo padrão de saída, em geral a tela
7 Alguns comandos úteis Comando de escrita WRITE( *,*) um texto Escreve literalmente o que for encontrado entre aspas simples
8 Alguns comandos úteis Comando de escrita WRITE( *,*) um texto Escreve literalmente o que for encontrado entre aspas simples ou WRITE( *,*) um texto aspas duplas
9 Estrutura de um programa em FORTRAN Estrutura geral PROGRAM nome declaração 1 declaração 2 comando 1 comando 2 STOP END
10 Uma nota Transgrediremos o padrão FORTRAN 77 em relação a alguns comandos No entanto, tais transgressões são comuns à maioria dos compiladores FORTRAN 77, em particular o Force (que é o recomendado aqui no curso) que foi baseado no G77 do Projeto GNU No ambiente Linux há o gfortran, descendente do G77 mas que também compila códigos em FORTRAN 95
11 Testes em FORTRAN Apresentemos uma estrutura condicional do FORTRAN que pode ser usado de várias formas i) IF (condição lógica) comando comando Exemplo: IF (x.lt. y) x = x + 1 asq = sin(x)...
12 Testes em FORTRAN Apresentemos uma estrutura condicional do FORTRAN que pode ser usado de várias formas ii) IF (condição lógica) THEN comando(s) ENDIF Exemplo: IF (x.gt. y) THEN asq = sin(x) isq = cos(y) ENDIF sisc = x...
13 Testes em FORTRAN Apresentemos uma estrutura condicional do FORTRAN que pode ser usado de várias formas iii) IF (condição lógica) THEN comando(s) ELSE comando(s) ENDIF Exemplo: IF (x.gt. y) THEN asq = sin(x) isq = cos(y) ELSE sisc = x ENDIF
14 Alguns fatos sobre computação numérica Façamos um programa: atribua a uma variável INTEGER*2 o valor Atribua a uma outra variável a variável anterior somada com 1. Imprima o resultado PROGRAM inteiro1 INTEGER*2 i, j i = j = i + 1 WRITE(*,*) j STOP END Experimente usar INTEGER*4 ou apenas INTEGER
15 Alguns fatos sobre computação numérica Façamos outro programa: atribua a uma variável REAL o valor 1/3. Atribua a uma outra variável a variável anterior multiplicada por 3. Imprima o resultado PROGRAM flutuante1 REAL x, y x = 1/3 y = 3 * x WRITE(*,*) y STOP END
16 Laços de repetição FORTRAN 77 tem um comando clássico de repetição que tem a forma DO rótulo variável = início da contagem, fim da contagem, passo da contagem comando(s) rótulo CONTINUE rótulo é um INTEGER. Tanto a variável quanto o início da contagem, o fim da contagem e o passo da contagem podem ser INTEGER ou REAL A omissão do passo de contagem suporá o uso de passo 1 Não é recomendável o uso de variáveis do tipo REAL. Isto raramente é de fato útil e tem o potencial de gerar confusões
17 Laços de repetição Usaremos um outro laço de repetição DO WHILE (condição lógica) comando(s) ENDDO o laço repetirá as operações até o ENDDO enquanto a condição lógica for verdadeira Podemos criar um laço eterno se a condição lógica for sempre.true.
18 Alguns fatos sobre computação numérica Façamos um programa: atribua a uma variável REAL o valor 0,01. Inicialize uma variável com zero e acumule nela 100 vezes. 0 valor da outra variável. Imprima o resultado. PROGRAM flutuante2 REAL x, s s = 0 x = 0.01 DO 100 i = 1, 100 s = s + x 100 CONTINUE WRITE(*,*) s STOP END
19 Alguns fatos sobre computação numérica Façamos um programa: atribua a uma variável REAL o valor 0,01. Inicialize uma variável com zero e acumule nela 100 vezes. 0 valor da outra variável. Imprima o resultado. PROGRAM flutuante2 REAL x, s s = 0 x = 0.01 DO 100 i = 1, 100 s = s + x 100 CONTINUE WRITE(*,*) s STOP END Coloque em x e some até 128
20 Mais alguns aspectos de computação numérica Calcule o valor da função exponencial no ponto x=1 usando a série de Taylor truncada em n termos que é dada por e x =1+ x 1! + x2 2! + x3 3! + + x n n! mas some a partir do termo de mais alta ordem.
21 Mais alguns aspectos de computação numérica PROGRAM e2 REAL exp INTEGER fat, i, j, n, ntermos READ(*,*) n exp = 1 DO 1 i = 1, ntermos fat = 1 DO 2 j = 1, i fat = fat * j 2 CONTINUE exp = exp + 1.0/fat 1 CONTINUE WRITE(*,*) exp STOP END
22 Mais alguns aspectos de computação numérica PROGRAM e2 REAL exp INTEGER fat, i, j, n, ntermos PROGRAM e2inv REAL exp INTEGER fat, i, j, n, ntermos READ(*,*) n exp = 1 DO 1 i = 1, ntermos fat = 1 DO 2 j = 1, i fat = fat * j 2 CONTINUE exp = exp + 1.0/fat 1 CONTINUE WRITE(*,*) exp STOP END READ(*,*) n exp = 1 DO 1 i = ntermos, 1, -1 fat = 1 DO 2 j = 1, i fat = fat * j 2 CONTINUE exp = exp + 1.0/fat 1 CONTINUE WRITE(*,*) exp STOP END
23 Mais alguns aspectos de computação numérica Como você pode constatar somar a série e=1+ 1 1! + 1 2! + 1 3! ! do termo maior em valor para o de menor valor dá um valor diferente de somarmos de menor valor para o maior
24 Funções implícitas O FORTRAN contém funções pré-definidas que correspondem em certo sentido a algumas funções matemáticas
25 Funções implícitas O FORTRAN contém funções pré-definidas que correspondem em certo sentido a algumas funções matemáticas Veremos mais tarde o conceito de funções em linguagens de programação
26 Funções implícitas Vejamos algumas da funções implícitas no FORTRAN Nome Definição Argumento Tipo de função SIN(x) Seno REAL em radianos REAL, REAL*8 ASIN(x) Arcosseno REAL REAL, REAL*8 COS(x) cosseno REAL em radianos REAL, REAL*8 ACOS(x) arcocosseno REAL REAL, REAL*8 TAN(x) tangente REAL em radianos REAL, REAL*8 ATAN(x) arcotangente REAL em radianos REAL, REAL*8 EXP(x) exponencial REAL REAL, REAL*8 LOG(x) logaritmo nepleriano REAL REAL, REAL*8 LOG10(X) logaritmo base 10 REAL RELA, REAL*8 ABS(x) valor absoluto INTEGER, REAL, INTEGER*4, REAL*8 REAL, REAL*8 SQRT(x) raiz quadrada REAL, REAL*8 REAL, REAL*8
27 Estrutura de dados Em FORTRAN 77 existem apenas arranjos (array em inglês) de variáveis que podem ser acessadas por um ou mais índices. Aqui veremos dois tipos de arranjos homogêneos (que contém o mesmo tipo de variáveis): Vetores Matrizes Embora estas estruturas de dados possam ser usadas para representar vetores e matrizes da matemática, não é correto confundir uns com os outros
28 Estrutura de dados Os vetores e as matrizes em FORTRAN podem ser de qualquer tipo de variáveis aceitas pela linguagem O vetor se distingue das matrizes por ter apenas um índice Uma matriz em FORTRAN pode ter até sete índices Os índices em FORTRAN começam sempre de 1 A declaração de vetores e matrizes se faz junto com a declaração das demais variáveis dando a especificação do tamanho em cada dimensão do vetor e/ou da matriz
29 Estrutura de dados A atribuição de valores é feita como se você qualquer outra variável desde que haja definição do índice Exemplo: a(3) = j b = v(2) O índice sempre é inteiro positivo podendo ser um INTEGER
30 Estrutura de dados Um exemplo Crie um programa FORTRAN que gere um vetor de INTEGER de até 10 elementos com suas componentes iguais ao quadrado dos índices. Ao final do processo, imprima o vetor calculado.
31 Estrutura de dados PROGRAM vetor1 INTEGER vetor(10), i, j, n READ(*,*) n DO 1 i = 1, n vetor(i) = i * i 1 CONTINUE DO 2 j = 1,n WRITE(*,*) vetor(j) 2 CONTINUE STOP END
32 Estrutura de dados Há a possibilidade de uma forma alternativa para o WRITE que pode ser útil em certas circunstâncias. Vejamos no nosso exemplo
33 Estrutura de dados PROGRAM vetor2 INTEGER vetor(10), i, j, n READ(*,*) n DO 1 i = 1, n vetor(i) = i * i 1 CONTINUE WRITE(*,*) (vetor(j), j = 1, n) STOP END
34 Estrutura de dados Execute o programa e você verá que não teremos somente um código mais compacto como também outra maneira de apresentar os dados de saída.
35 Estrutura de dados Outro exemplo Crie um programa FORTRAN que gere uma matriz mat de dois índices de INTEGER de até 3 em cada índice de forma que ao final teremos o equivalente à matriz matemática abaixo ( ) Ao final do processo imprima a matriz.
36 Estrutura de dados PROGRAM mat1 INTEGER mat(3, 3), i, j, cont cont = 1 DO 1 i = 1, 3 DO 2 j = 1, 3 mat(i, j) = cont cont = cont CONTINUE 1 CONTINUE WRITE(*,*) ((mat(i, j), j = 1, 3), i = 1, 3) STOP END
37 Estrutura de dados Observe que a saída não é o que esperaríamos da apresentação de uma matriz. Para o computador isto não tem a menor importância (de fato, computador não se importa com nada. Ele só segue o que o programador especificou) Nós é que necessitamos de ordem para compreender o que ocorre a nossa volta.
38 Estrutura de dados Outro exemplo Crie um programa FORTRAN que gere uma matriz mat de dois índices de INTEGER de até 3 em cada índice de forma que ao final teremos o equivalente à matriz matemática abaixo ( ) Ao final do processo imprima a matriz no formato acima.
39 Estrutura de dados PROGRAM mat1 INTEGER mat(3, 3), i, j, k, cont cont = 1 DO 1 i = 1, 3 DO 2 j = 1, 3 mat(i, j) = cont 2 CONTINUE cont = cont CONTINUE DO 3 i = 1, 3 WRITE(*,*) (mat(i, j), j = 1, 3) 3 CONTINUE STOP END
40 Determinar o maior elemento de um vetor Termos as informações estruturadas simplificam vários procedimentos. Lembrem-se do código de exercício no qual era pedido achar o maior de três números INTEGER?
41 Determinar o maior elemento de um vetor Termos as informações estruturadas simplificam vários procedimentos. Lembrem-se do código de exercício no qual era pedido achar o maior de três números INTEGER? Façamos a versão vetorial com o seguinte algoritmo: Dado um vetor vet com valores INTEGER Faça que o primeiro elemento do vetor seja atribuído à variável maior Teste este valor com a segunda componente do vetor. Caso ela seja maior que a da variável maior, atribua este valor à variável maior, caso não, teste a próxima componente do vetor até a última componente.
42 Determinar o maior elemento de um vetor PROGRAM maior INTEGER vet(10), i, j, n, maior vet(1) = -3 vet(2) = 1 vet(3) = 4 vet(4) = 2 vet(5) = 4 maior = vet(1) DO 1 i = 2, 5 IF (vet(i).gt.maior) maior = vet(i) 1 CONTINUE WRITE(*,*) 'O maior elemento do vetor = ', maior STOP END
43 Determinar o maior elemento de um vetor Esta versão é bem tosca mas funciona.
44 Determinar o maior elemento de um vetor Esta versão é bem tosca mas funciona. Ela também nos faz refletir sobre o Custo Computacional. Quantas operações são feitas para obtermos o resultado que desejamos?
45 Determinar o maior elemento de um vetor Esta versão é bem tosca mas funciona. Ela também nos faz refletir sobre o Custo Computacional. Quantas operações são feitas para obtermos o resultado que desejamos? Observe que aqui com um vetor com 5 elementos fazemos 4 comparações. Se fosse n elementos seriam n-1 comparações.
46 Determinar o menor elemento de um vetor Fazer uma versão para determinar o menor elemento basta mudar o teste feito dentro do laço de repetição
47 Exercício Aprimore este programa: Crie um outro código no qual você entre com os valores do vetor via teclado, imprima o vetor dado e ao final imprima o maior valor do vetor.
48 Exercício Aprimore este programa: Crie um outro código no qual você entre com os valores do vetor via teclado, imprima o vetor dado e ao final imprima o maior valor do vetor. Mais um acréscimo ao programa: crie uma filtragem na entrada de forma que não permita o número de elementos maior do que o tamanho indicado para o vetor no programa.
49 Ordenação Vamos a algo mais complexo: Faça um programa que ordene de forma crescente um vetor de INTEGER.
50 Ordenação Vamos a algo mais complexo: Faça um programa que ordene de forma crescente um vetor de INTEGER. Imprimir três valores em ordem deu um certo trabalho. E n valores?
51 Algoritmo de Seleção Apresentemos um algoritmo baseado no que já vimos O Algoritmo de Seleção Esquematizemos...
52 Ordenação por Seleção Vetor inicial (5, 1, 3, 8, 4) Procure o menor valor do vetor (já sabemos fazer isto) e troque este valor com o primeiro valor (1, 5, 3, 8, 4) Procure o menor valor do vetor a partir da segunda posição e troque este valor com o valor que se encontra na segunda posição (1, 3, 5, 8, 4) Procure o menor valor a partir da terceira posição e troque este valor com o valor que se encontra na terceira posição (1, 3, 5, 4, 8) Procure o menor valor a partir da quarta posição e troque este valor com o valor que se encontra na quarta posição (1, 3, 4, 5, 8)
53 Ordenação por Seleção Observe que podemos aproveitar o código que foi escrito para determinar o maior elemento (ou o menor elemento)
54 Ordenação por Seleção Observe que podemos aproveitar o código que foi escrito para determinar o maior elemento (ou o menor elemento) Observe ainda que não interessa o menor valor mas onde ele se encontra
55 Ordenação por Seleção PROGRAM selecao INTEGER vet(10), i, j, k, n, menor, aux vet(1) = -3 vet(2) = 1 vet(3) = 4 vet(4) = 2 vet(5) = 4 DO 1 i = 1, 4 menor = i DO 2 j = i+1, 5 IF (vet(menor).gt.vet(j)) menor = j 2 CONTINUE aux = vet(menor) vet(menor) = vet(i) vet(i) = aux 1 CONTINUE WRITE(*,*) 'Vetor ordenado', (v(k), k = 1, n) STOP END
56 Ordenação por Seleção Qual o custo computacional deste algoritmo?
57 Ordenação por Seleção Qual o custo computacional deste algoritmo? Observe que para 5 elementos procuramos fazemos 4 comparações para achar o primeiro valor, 3 comparações para achar o segundo valor, 2 para o terceiro e 1 para o quarto valor.
58 Ordenação por Seleção Qual o custo computacional deste algoritmo? Observe que para 5 elementos procuramos fazemos 4 comparações para achar o primeiro valor, 3 comparações para achar o segundo valor, 2 para o terceiro e 1 para o quarto valor. Número total de comparações: = 10
59 Ordenação por Seleção Qual o custo computacional deste algoritmo? Observe que para 5 elementos procuramos fazemos 4 comparações para achar o primeiro valor, 3 comparações para achar o segundo valor, 2 para o terceiro e 1 para o quarto valor. Número total de comparações: = 10 Se fosse n valores teríamos n -1 + n -2 + n Sabemos que n-2+n-1+n = n(n+1)/2 logo Se fossem n valores teríamos n(n-1)/2 comparações
60 Ordenação por Seleção É um algoritmo bem ruim (está entre os piores) pois se o vetor já estiver ordenado ele fará o mesmo número de comparações Quando o número de operações é proporcional ao número de elementos ao quadrado, que é como este caso, diremos que o custo computacional é quadrático.
61 Algoritmo da Bolha Vamos a algo mais complexo: Faça um programa que ordene um vetor dado usando o algoritmo da Bolha.
62 Algoritmo da Bolha Melhor deixar claro o que é o Algoritmo da Bolha com um exemplo
63 Ordenação por Bolha Vetor inicial (5, 1, 3, 8, 4) Compare os dois termos contíguos. Se estiverem fora de ordem, troque-os (1, 5, 3, 8, 4) Compare o segundo com o terceiro. Se estiverem fora de ordem, troque-os (1, 3, 5,8,4) Compare o terceiro com o quarto. Se estiverem fora de ordem, troque-os (1, 3, 5, 8, 4) Compare co terceiro com o quinto. Se estiverem fora de ordem, troque-os (1, 3, 5, 4, 8) Se tiver acontecido alguma troca, repita o processo
64 Ordenação por Bolha Vetor parcial (1, 2, 5, 4, 8) Compare os dois termos contíguos. Se estiverem fora de ordem, troque-os (1, 2, 5, 4, 8) Compare o segundo com o terceiro. Se estiverem fora de ordem, troque-os (1, 2, 5, 4,8) Compare o terceiro com o quarto. Se estiverem fora de ordem, troque-os (1, 2, 4, 5, 8) Compare co terceiro com o quinto. Se estiverem fora de ordem, troque-os (1, 2, 4, 5, 8) Se tiver acontecido alguma troca, repita o processo
65 Ordenação por Bolha Vetor parcial (1, 2, 4, 5, 8) Compare os dois termos contíguos. Se estiverem fora de ordem, troque-os (1, 2, 4, 5, 8) Compare o segundo com o terceiro. Se estiverem fora de ordem, troque-os (1, 2, 4, 5,8) Compare o terceiro com o quarto. Se estiverem fora de ordem, troque-os (1, 2, 4, 5, 8) Compare co terceiro com o quinto. Se estiverem fora de ordem, troque-os (1, 3, 4, 5, 8) Não havendo trocas, pare.
66 Ordenação por Bolha Não é difícil mostrar que no pior caso (quando o vetor está em ordem decrescente) o custo é n(n-1)/2 É fácil de ver que o número de comparações se o vetor estiver ordenado é n - 1
67 Ordenação por Bolha Não é difícil mostrar que no pior caso (quando o vetor está me ordem decrescente) o custo é n(n-1)/2 É fácil de ver que o número de comparações se o vetor estiver ordenado é n - 1 Este é um algoritmo sensível à ordenação do vetor Mas também não é um algoritmo eficiente
68 Ordenação por Bolha PROGRAM bolha LOGICAL trocou INTEGER vet(10), i, j, k, n, aux vet(1) = -3 vet(2) = 1 vet(3) = 4 vet(4) = 2 vet(5) = 4 trocou =.TRUE. DO WHILE (trocou) trocou =.FALSE. DO 1 j = 1, 4 IF (vet(j+1).lt.vet(j)) THEN aux = vet(j) vet(j) = vet(j+1) vet(j+1) = aux trocou =.TRUE. ENDIF 1 CONTINUE ENDDO WRITE(*,*) 'Vetor ordenado', (vet(k), k = 1, n) STOP END
69 Produto escalar Dado dois vetores v e u de mesmo tamanho n, ache o produto escalar entre eles.
70 Alguns exercícios Vamos agora ir por alguns programas simples que irão compor outros mais complexos
71 Produto escalar O produto escalar de dois vetores v e u de tamanho n é definido como n v u=v 1 u 1 +v 2 u 2 +v 3 u 3 + +v n u n = i=1 v i u i
72 Produto escalar PROGRAM escalar REAL v(8), u(8), pescalar INTEGER i v(1) = -3.0 v(2) = 1.0 v(3) = 4.0 u(1) = 2.0 u(2) = 5.0 u(3) = -4.0 pescalar = 0.0 DO 1 i = 1, n pescalar = pescalar + v(i) * u(i) 1 CONTINUE WRITE(*,*) 'O produto escalar dos vetores = ', pscalar STOP END
73 Produto escalar Basta olhar para a definição de produto escalar para sabermos que serão feitos n produtos e n-1 somas n v u=v 1 u 1 +v 2 u 2 +v 3 u 3 + +v n u n = i=1 v i u i O custo computacional é portanto 2n-1 operações. Diremos que o custo computacional é linear.
74 Produto de matriz por vetor O vetor u de tamanho m, que é o produto de matriz A mxn de componentes a ij pelo vetor v de tamanho n, é dado por u= A v
75 Produto de matriz por vetor O vetor u de tamanho m, que é o produto de matriz A mxn de componentes a ij pelo vetor v de tamanho n, é dado por u= A v ou em notação de componentes n u i =a i1 u 1 +a i2 u 2 +a i3 u 3 + +a u n = j=1 a ij u j
76 Produto de matriz por vetor O vetor u de tamanho m, que é o produto de matriz A mxn de componentes a ij pelo vetor v de tamanho n, é dado por u= A v ou em notação de componentes n u i =a i1 u 1 +a i2 u 2 +a i3 u 3 + +a u n = j=1 a ij u j Observem que cada componente de u é resultado do produto escalar de cada linha de A pelo vetor coluna n
77 Produto de matriz por vetor PROGRAM matrizvetor REAL v(3), u(2), a(2,3) INTEGER i, j v(1) = 1.0 v(2) = 3.0 v(3) = 2.0 a(1,1) = 2.0 a(1,2) = 1.0 a(1,3) = 2.0 a(2,1) = 2.0 a(2,2) = 4.0 a(2,3) = 2.0. DO 1 i = 1, 2 u(i) = 0.0 DO 2 j = 1, 3 u(i) = u(i) + a(i, j) * v(j) 2 CONTINUE 1 CONTINUE WRITE(*,*)(u(i), i = 1, 2) STOP END
78 Produto de matriz por vetor PROGRAM matrizvetor REAL v(3), u(2), a(2,3) INTEGER i, j v(1) = 1.0 v(2) = 3.0 v(3) = 2.0 a(1,1) = 2.0 a(1,2) = 1.0 a(1,3) = 2.0 a(2,1) = 2.0 a(2,2) = 4.0 a(2,3) = 2.0 Temos assim mais um algoritmo reaproveitado DO 1 i = 1, 2 u(i) = 0.0 DO 2 j = 1, 3 u(i) = u(i) + a(i, j) * v(j) 2 CONTINUE 1 CONTINUE WRITE(*,*)(u(i), i = 1, 2) STOP END
79 Produto escalar Observe que no caso particular de estarmos multiplicando uma matriz quadrada de dimensão nxn por um vetor de dimensão n, teremos n produtos escalares de n vetores. O custo computacional é portanto n vezes 2n-1 operações. Diremos que o custo computacional é O(n 2 ) ou quadrático.
80 Produto de matriz por matriz O a matriz C de tamanho mxn, que é o produto de matriz A mxp de componentes a ij pela matriz B de componentes b ij pxn, é dado por C=A B ou em notação de componentes p c ij =a i 1 b 1 j +a i2 b 2 j +a i 3 b 3 j + +a b nj = k=1 a ik b jk Observem que cada componente de C é resultado do produto escalar de cada linha de A por cada coluna de B.
81 Produto de matriz por vetor PROGRAM matrizmatriz REAL a(2, 3), b(3, 2), c(2, 2) INTEGER i, j, k a(1,1) = 1.0 a(1,2) = 3.0 a(1,3) = 2.0 a(2,1) = 1.0 a(2,2) = 2.0 a(2,3) = 3.0 b(1,1) = -3.0 b(1,2) = 3.0 b(2,1) = 1.0 b(2,2) = 1.0 b(3,1) = 2.0 b(3,2) = 2.0 DO 1 i = 1, 2 DO 2 j = 1, 2 c(i, j) = 0.0 DO 3 k = 1, 3 c(i, j) = c(i, j) + a(i, k) * b(k,j) 3 CONTINUE 2 CONTINUE 1 CONTINUE DO 4 i = 1, 2 WRITE(*,*)(c(i,k), k = 1, 2) 4 CONTINUE STOP END
82 Um exemplo com caracteres Para o cado especial de fazermos o produto de duas matrizes nxn, teremos n vezes n vezes 2n-1 operações ou O(n 3 ) e diremos que o custo computacional é cúbico.
83 Um exemplo com caracteres Vamos aproveitar que estamos com vetores e ordenação de valores para esclarecer mais algumas coisas sobre caracteres dentro de um computador
84 Exemplos com caracteres O tipo CHARACTER em FORTRAN reserva espaço na memória do computador e permite atribuirmos os caracteres que estão definidos na tabela ASCII e suas extensões
85 Tabela ASCII Caracteres - 1 B
86 Exemplos com caracteres Observe que temos um número inteiro associado a cada caracter. É por reconhecer o tipo da variável como CHARACTER (e se referenciar ao número associado na tabela) é que os programas que estejam executando no computador reagem a estas variáveis de forma conveniente.
87 Exemplos com caracteres As atribuições de caracteres são feitas como abaixo a = '/' b = 'B'
88 Exemplos com caracteres As atribuições de caracteres são feitas como abaixo a = '/' b = 'B' Embora o FORTRAN não distinga variáveis minúsculas de maiúsculas, a linguagem distingue o conteúdo das variáveis se são minúsculas ou maiúsculas
89 Um exemplo com caracteres PROGRAM caracter03 CHARACTER a, b, c, d, e, f WRITE(*,*) "Entre com dois caracteres separados por espaco em bra *nco" READ(*,*), a, b WRITE(*,*) " Os caracteres digitados foram ", a, " ", b c = '/' d = 'A' WRITE(*,*) " Os caracteres atribuidos foram ", c, " ", d e = b f = c WRITE(*,*) " Os caracteres atribuidos foram ", e, " ", f STOP END
90 Exemplos com caracteres Podemos fazer comparações entre caracteres nos lembrando de que as referências serão sempre os valores da tabela ASCII
91 Mais um exemplo com caracteres PROGRAM caracteres04 CHARACTER a, b WRITE(*,*) "Entre com dois caracteres separados por espaco em bra *nco" READ(*,*) a, b IF (a.le.b) THEN ELSE ENDIF STOP END WRITE(*,*), a, " e' menor que ", b WRITE(*,*), a, " e' maior que ", b
92 Exemplos com caracteres Experimente teclar algo como a letra S e a letra s e depois olhe a correspondência na tabela ASCII
93 Exemplos com caracteres Podemos também ter vetores de tipo CHARACTER e usá-los como os outros vetores
94 Exemplos com caracteres PROGRAM caracter05 CHARACTER a(5), b INTEGER i WRITE(*,*) "Entre com 5 caracteres, dando <enter> depois de cada *um" i = 1 DO WHILE (i.le.5) READ(*,*) a(i) i = i + 1 ENDDO WRITE(*,*)(a(i), i = 1, 5) STOP END
95 Cadeia de caracteres Outra maneira de reservarmos e definirmos operações com caracteres é por meio de cadeias de caracteres
96 Exemplos com cadeias de caracteres PROGRAM cadeia CHARACTER a*5, b(4)*10 WRITE(*,*) "Entre com 5 caracteres, dando <enter> depois" READ(*,*) a WRITE(*,*)a b(1) = " o pato b(2) = " o sapo b(3) = " o rato b(4) = " o gato " WRITE(*,*) (b(i), i = 1, 4) STOP END
97 Exemplos com cadeias de caracteres No entanto, há apenas um operador que pode ser usado quando trabalhamos com vetores de caracteres, o operador de concatenação // Vamos para um exemplo
98 Exemplos com cadeias de caracteres PROGRAM cadeia02 CHARACTER a*60, b(4)*10 b(1) = " o pato b(2) = " o sapo b(3) = " o rato b(4) = " o gato " a = b(1) // b(2) // b(3) // ' e ' // b(4) // "sao animais" WRITE(*,*) a STOP END
99 Cadeias de caracteres Existem ainda funções específicas para o trabalho com caracteres e cadeia de caracteres. Aqui apresentaremos três:
100 Cadeias de caracteres Existem ainda funções específicas para o trabalho com caracteres e cadeia de caracteres. Aqui apresentaremos três: c = CHAR(i) Dado um inteiro i, devolve o caracter correspondente na tabela de referência I = ICHAR(c) Dado um caracter, devolve o número correspondente na tabela de referência I = LEN(cadeia) Devolve o comprimento da cadeia de caracteres
101 Exemplos com cadeias de caracteres PROGRAM cadeia03 CHARACTER a*60, b(4)*10, letra, branco INTEGER n b(1) = " o pato b(2) = " o sapo b(3) = " o rato b(4) = " o gato " a = b(1) // b(2) // b(3) // ' e ' // b(4) // "sao animais" WRITE(*,*) a WRITE(*,*) "Comprimento de a ", LEN(a) WRITE(*,*) "Comprimento de letra ", LEN(letra) WRITE(*,*) Comprimento da cadeia, LEN(b(1) // b(2) // b(3) // *' e ' // b(4) // "sao animais") WRITE(*,*) "O numero da tabela ASCII referente a ", branco, "e' " *, ICHAR(branco), " e a ", letra, " e' ", ICHAR(letra) STOP END
102 Cadeia de caracteres Observe que LEN() não devolve o número de caracteres que inscrevemos mas o espaço total reservado para a cadeia de caracteres O caracter que representa um espaço em branco é marcado na tabela ASCII como SP Mesmo que à variável letra nada ter sido atribuído, ela obviamente ocupa espaço na memória
103 Cadeia de caracteres Apresentemos mais uma função trabalha com cadeias e subcadeias de caracteres i = INDEX(c1, c2) A função devolve a primeira posição da primeira ocorrência da subcadeia c2 na cadeia c1.
104 Cadeia de caracteres Apresentemos mais uma função trabalha com cadeias e subcadeias de caracteres i = INDEX(c1, c2) A função devolve a primeira posição da primeira ocorrência da subcadeia c2 na cadeia c1. Se o valor devolvido for zero, então a subcadeia c2 não foi encontrada em c1.
105 Cadeia de caracteres PROGRAM cadeia08 CHARACTER a*80, b*2 INTEGER i a = "Cortando uma cadeia de caracteres" b = "ma" i = INDEX(a, b) WRITE(*,*) "Cadeia de caracteres a:" WRITE(*,*) a WRITE(*,*) "O fragmento ", b, " se encontra na posicao ", i, "de a" STOP END
106 Cadeia de caracteres Mas como podemos manipular uma cadeia de caracteres?
107 Cadeia de caracteres Mas como podemos manipular uma cadeia de caracteres? O FORTRAN tem um comando que permite extrair subcadeias de cadeias de caracteres. Se c é uma cadeia de caracteres podemos extrair uma subcadeia s da seguinte forma s = c(m:n)... onde a subcadeia de c vai do m-ésimo elemento até o n-ésimo elemento de c.
108 Cadeia de caracteres Mas como podemos manipular uma cadeia de caracteres? O FORTRAN tem um comando que permite extrair subcadeias de cadeias de caracteres. Se c é uma cadeia de caracteres podemos extrair uma subcadeia s da seguinte forma s = c(m:n)... onde a subcadeia de c vai do m-ésimo elemento até o n-ésimo elemento de c. O menor valor possível é 1 e o maior valor o número de caracteres da cadeia
109 Cadeia de caracteres Vamos cortar uma cadeia de caracteres em vários pedaços
110 Cadeia de caracteres PROGRAM cadeia05 CHARACTER a*60, b(4)*10 INTEGER i a = "Cortando uma cadeia de caracteres" b(1) = a(1:8) b(2) = a(3:8) b(3) = a(10:20) b(4) = a(4:4) DO 1 i = 1,4 WRITE(*,*) b(i) 1 CONTINUE STOP END
111 Cadeia de caracteres Vamos fazer um programa que dado uma frase a mesma seja impressa sem caracteres SP (branco)
112 Cadeia de caracteres PROGRAM cadeia06 CHARACTER a*80, b(80), c(80), branco INTEGER i, j, k, n a = "Cortando uma cadeia de caracteres branco = ' ' DO 1 i = 1,80 b(i) = a(i:i) 1 CONTINUE WRITE(*,*) (b(k), k = 1, 80) k = 1 DO 2 j = 1, 80 IF (b(j).ne.branco) THEN c(k) = b(j) k = k + 1 ENDIF 2 CONTINUE WRITE(*,*) (c(k), k = 1, 80) STOP END
113 Cadeia de caracteres Você deve ter percebido que houve algo de estranho: O vetor impresso apresentou caracteres que não estavam na cadeia original Isto ocorre porque as variáveis em FORTRAN, incluindo as do tipo CHARACTER, não tem o seu conteúdo limpo Temos que limpar por nossa conta se desejamos isto.
114 Cadeia de caracteres PROGRAM cadeia06b CHARACTER a*80, b(80), c(80), branco INTEGER i, j, k, n a = "Cortando uma cadeia de caracteres branco = ' ' DO 1 i = 1,80 b(i) = a(i:i) c(i) = branco 1 CONTINUE WRITE(*,*) (b(k), k = 1, 80) k = 1 DO 2 j = 1, 80 IF (b(j).ne.branco) THEN c(k) = b(j) k = k + 1 ENDIF 2 CONTINUE WRITE(*,*) (c(k), k = 1, 80) STOP END
115 Cadeia de caracteres Dado uma cadeia de caracteres com letras minúsculas, faça um programa que ordene as letras em ordem alfabética
116 Cadeia de caracteres Dado uma cadeia de caracteres com letras minúsculas, faça um programa que ordene as letras em ordem alfabética Escolheremos o algoritmo de Seleção para ilustrar o que pode ser feito
117 Cadeia de caracteres PROGRAM cadeia07 CHARACTER a*80, b(80), aux INTEGER i, j, k, n, menor a = "Cortando uma cadeia de caracteres n = 80 DO 1 i = 1,n b(i) = a(i:i) 1 CONTINUE WRITE(*,*) (b(k), k = 1, n) DO 2 i = 1, 80 menor = i DO 3 j = i+1, n-1 IF (b(menor).gt.b(j)) menor = j 3 CONTINUE aux = b(menor) b(menor) = b(i) b(i) = aux 2 CONTINUE WRITE(*,*) (b(k), k = 1, n) STOP END
118 Cadeia de caracteres Observe que os espaços em branco aparecem antes das letras do alfabeto. Basta dar uma olhada na tabela ASCII para verificar o porque disto
119 Ampliando READ e WRITE Vamos ampliar as possibilidades de uso dos comandos de entrada e saída: READ e WRITE Ilustraremos com o WRITE WRITE (u, f) variável1, variável2, u é um inteiro que referencia o que é chamado unidade, a máquina pela qual será feita a operação de entrada/saída f é é um inteiro positivo que referencia o formato de entrada/saída como rótulo que indica a declaração FORMAT
120 Ampliando READ e WRITE READ (*, *) variável1, variável2, Significa que a unidade é o teclado e o formato segue um padrão pré-estabelecido WRITE( *,*) variável1, variável2,... Significa que a unidade é a tela e o formato segue um padrão préestabelecido
121 Ampliando READ e WRITE Criaremos foco sobre o formato mantendo as unidades de entrada/saída padrões
122 Declaração FORMAT Mostremos um fragmento de código... WRITE (*, 1000) variável1, variável2, 1000 FORMAT(...)
123 Declaração FORMAT Alguns Formatos Iw Aw X Lw Fw.d Imprima um INTEGER com w posições Imprima CHARATER com w posições Imprime um espaço em branco Imprime LOGICAL com w posições Imprima um REAL com w posições e d casas decimais Ew.d Imprima um Real com w posições e d casas decimais em notação científica / Salta uma linha
124 Declaração FORMAT Alguns Formatos Iw Aw X Lw Fw.d Imprima um INTEGER com w posições Imprima CHARATER com w posições Imprime um espaço em branco Imprime LOGICAL com w posições Imprima um REAL com w posições e d casas decimais Ew.d Imprima um Real com w posições e d casas decimais em notação científica / Salta uma linha Dentro da declaração de formato, os formatos são separados por vírgulas
125 Declaração FORMAT Se você quiser declarar várias variáveis de mesmo tipo em sequência, basta colocar um valor inteiro positivo antes da declaração de formato. 2I5 3A10 4X Indica a formatação de dois INTEGER DE 5 posições Indica a formatação de três CHARACTER de 10 posições Imprime quatro espaços em branco 2F15.7 Indica o formato de 2 REAL apresentado com 15 posições sendo 7 correspondendo ao número de casas decimais
126 Declaração FORMAT PROGRAM formato CHARACTER a*60 INTEGER i, j REAL x x = a = "Nos e todo o mundo guardamos pi" i = LEN(a) j = LEN("Nos e todo o mundo guardamos pi") WRITE(*,1000) a, x, x, i, j 1000 FORMAT(5X, A60, F15.3, 2/, E15.4, 2I5) WRITE(*, 2000) a, x, x, i, j 2000 FORMAT(" Cadeia = ", A60, "Pi = ", F15.3, /, "Pi = ", E15.4, /, " *i = ", I5, "j = ", I5 ) STOP END
127 Ampliando READ e WRITE Observe a saída e veja se compreendeu as ligações entre as formatações e o conteúdo das variáveis
PROGRAMAÇÃO DE COMPUTADORES
PROGRAMAÇÃO DE COMPUTADORES COMANDOS E FORMATOS DE ENTRADA E SAÍDA 1 COMANDOS E FORMATOS DE ENTRADA E SAÍDA Os comandos de entrada e saída, na sua forma mais simplificada, possuem a seguinte estrutura:
Leia maisGEO764 - Programação avançada em Geofísica. Controle da seqüência. Estrutura IF... THEN... ELSE. Comando IF
GEO764 - Programação avançada em Geofísica FORTRAN 90: Aula n o 2 Estruturas, Controle, Entrada/saída Intrínsecas e Básicas Controle da seqüência Estruturas de controle permitem a alteração da ordem seqüencial
Leia maisAula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:
Aula 5 5. Funções O conceito de função será o principal assunto tratado neste curso. Neste capítulo daremos algumas definições elementares, e consideraremos algumas das funções mais usadas na prática,
Leia maisAula 11: Desvios e Laços
Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam
Leia maisIntrodução ao. Script. Baltazar Tavares (Psycho Mantys) https://psychomantys.wordpress.com https://about.me/psycho_mantys
Introdução ao Script Baltazar Tavares (Psycho Mantys) https://psychomantys.wordpress.com https://about.me/psycho_mantys O que é Bash Script? O que é Bash + Script? O que é Bash? O que é Bash? Ele é um
Leia maisFundamentos de Programação. Diagrama de blocos
Fundamentos de Programação Diagrama de blocos Prof. M.Sc.: João Paulo Q. dos Santos E-mail: joao.queiroz@ifrn.edu.br Página: http://docente.ifrn.edu.br/joaoqueiroz/ O processo de desenvolvimento (programação),
Leia maisUniversidade Federal de Goiás Campus Catalão Departamento de Matemática
Universidade Federal de Goiás Campus Catalão Departamento de Matemática Disciplina: Álgebra Linear Professor: André Luiz Galdino Aluno(a): 4 a Lista de Exercícios 1. Podemos entender transformações lineares
Leia mais2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.
1) Inicializar um vetor de inteiros com números de 0 a 99 2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média 3)
Leia maisCapítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS
Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS OBJETIVOS DO CAPÍTULO Conceitos de: arquivo de saída, biblioteca, funções matemáticas intrínsecas Criar e usar arquivos para mostrar resultados da
Leia maisPrimeira Lista de Exercícios de Métodos Numéricos II Primeiro semestre de 2015
Primeira Lista de Exercícios de Métodos Numéricos II Primeiro semestre de 015 Introdução Antes de apresentar a lista, introduzirei alguns problemas já vistos em sala de aula para orientar e facilitar a
Leia maisProgramação de Computadores. Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim
Programação de Computadores Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim Roteiro da Aula de Hoje Introdução ao FORTRAN (Parte I) Organização de programas Tipos de dados Variáveis Programação
Leia maisUso de escalas logaritmicas e linearização
Uso de escalas logaritmicas e linearização Notas: Rodrigo Ramos 1 o. sem. 2015 Versão 1.0 Obs: Esse é um texto de matemática, você deve acompanhá-lo com atenção, com lápis e papel, e ir fazendo as coisas
Leia maisMétodo de ordenação - objetivos:
Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São
Leia maisFísica Experimental III
Física Experimental III Unidade 4: Circuitos simples em corrente alternada: Generalidades e circuitos resistivos http://www.if.ufrj.br/~fisexp3 agosto/26 Na Unidade anterior estudamos o comportamento de
Leia maisIntrodução ao FORTRAN (Parte I)
Programação de Computadores III Aula 7 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula
Leia maisCiclo com Contador : instrução for. for de variável := expressão to. expressão do instrução
Métodos de Programação I 2. 27 Ciclo com Contador : instrução for identificador downto for de variável := expressão to expressão do instrução UMA INSTRUÇÃO (SIMPLES OU COMPOSTA) Neste caso o ciclo é repetido
Leia maisENG1000 Introdução à Engenharia
ENG1000 Introdução à Engenharia Aula 09 Vetores e Matrizes Edirlei Soares de Lima Introdução Até agora nós temos usado variáveis simples para armazenar valores usados por nossos
Leia maisCapítulo 13. VARIÁVEIS DO TIPO REAL DUPLA
Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA OBJETIVOS DO CAPÍTULO Conceitos de: variáveis de precisão simples e dupla, variáveis do tipo real simples e dupla, mistura de variáveis do tipo inteiro com real
Leia maisConteúdo programático
Introdução à Linguagem C Conteúdo programático Introdução à Linguagem C Estrutura de Programas Variáveis, Constantes Operadores, Entrada e Saída de Dados Estruturas de Desvio Estrutura de Múltipla Escolha
Leia maisUnidade 1: O Computador
Unidade : O Computador.3 Arquitetura básica de um computador O computador é uma máquina que processa informações. É formado por um conjunto de componentes físicos (dispositivos mecânicos, magnéticos, elétricos
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia mais1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18
ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados
Leia maisOPERAÇÕES COM FRAÇÕES
OPERAÇÕES COM FRAÇÕES Adição A soma ou adição de frações requer que todas as frações envolvidas possuam o mesmo denominador. Se inicialmente todas as frações já possuírem um denominador comum, basta que
Leia maisRecorrendo à nossa imaginação podemos tentar escrever números racionais de modo semelhante: 1 2 = 1 + 3 + 32 +
1 Introdução Comecemos esta discussão fixando um número primo p. Dado um número natural m podemos escrevê-lo, de forma única, na base p. Por exemplo, se m = 15 e p = 3 temos m = 0 + 2 3 + 3 2. Podemos
Leia maisO Cálculo λ sem Tipos
Capítulo 2 O Cálculo λ sem Tipos 21 Síntaxe e Redução Por volta de 1930 o cálculo lambda sem tipos foi introduzido como uma fundação para a lógica e a matemática Embora este objectivo não tenha sido cumprido
Leia maisUNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais
UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais
Leia maisInteligência Artificial
Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?
Leia maisUTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS
UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS! Criando cenários a partir do Solver! Planilha entregue para a resolução de exercícios! Como alterar rapidamente
Leia maisLógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto
Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas
Leia mais2 Segmentação de imagens e Componentes conexas
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) Algoritmos II Professor: Alex Kutzke (alexk@dainf.ct.utfpr.edu.br) Especificação do Primeiro Trabalho Prático
Leia maistipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL-RIO- GRANDENSE CAMPUS SAPUCAIA DO SUL PROFESSOR: RICARDO LUIS DOS SANTOS EXERCÍCIO DE REVISÃO E FIXAÇÃO DE CONTEÚDO - ARRAYS 1. Criar um vetor A
Leia maisMódulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano
Módulo de Equações do Segundo Grau Equações do Segundo Grau: Resultados Básicos. Nono Ano Equações do o grau: Resultados Básicos. 1 Exercícios Introdutórios Exercício 1. A equação ax + bx + c = 0, com
Leia maisMatrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.
Definição Uma matriz do tipo m n (lê-se m por n), com m e n, sendo m e n números inteiros, é uma tabela formada por m n elementos dispostos em m linhas e n colunas. Estes elementos podem estar entre parênteses
Leia maisSistemas Numéricos. Tiago Alves de Oliveira
Sistemas Numéricos Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Operações aritméticas binária e hexadecimal Operações lógicas binárias e decimais Representação Interna de
Leia maisUNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed. 2006. Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8
unesp UNIVERSIDADE ESTADUAL PAULISTA Apostila Pascal Ed 2006 Prof Dr Galeno José de Sena DMA/FEG CAPÍTULO 8 ARQUIVOS DE DADOS EM PASCAL: ARQUIVOS SEQUENCIAIS - UMA INTRODUÇÃO 81 ARQUIVOS SEQUENCIAL E DIRETO
Leia maisProbabilidade. Luiz Carlos Terra
Luiz Carlos Terra Nesta aula, você conhecerá os conceitos básicos de probabilidade que é a base de toda inferência estatística, ou seja, a estimativa de parâmetros populacionais com base em dados amostrais.
Leia maisSOLUÇÕES N2 2015. item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.
Solução da prova da 1 a fase OBMEP 2015 Nível 1 1 SOLUÇÕES N2 2015 N2Q1 Solução O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2. Com um
Leia maisTUTORIAL MATLAB Victor Breder 2016
TUTORIAL MATLAB Victor Breder 2016 1. INTERFACE A. Caminho de trabalho Mostra o caminho pasta raiz que será considerada para executar scripts e funções criados pelo usuário. B. Pasta de trabalho Mostra
Leia maisUsando potências de 10
Usando potências de 10 A UUL AL A Nesta aula, vamos ver que todo número positivo pode ser escrito como uma potência de base 10. Por exemplo, vamos aprender que o número 15 pode ser escrito como 10 1,176.
Leia maisUsando números muito pequenos e números muito grandes
Usando números muito pequenos e números muito grandes Leia o seguinte texto, em voz alta, e em menos de 30 segundos: "...como, por exemplo, o nosso Sistema Solar que tem um diâmetro aproximado de 100000000000
Leia mais0.1 Introdução Conceitos básicos
Laboratório de Eletricidade S.J.Troise Exp. 0 - Laboratório de eletricidade 0.1 Introdução Conceitos básicos O modelo aceito modernamente para o átomo apresenta o aspecto de uma esfera central chamada
Leia maisINICIADOS - 2ª Sessão ClubeMath 7-11-2009
INICIADOS - 2ª Sessão ClubeMath 7-11-2009 Adivinhar o dia de aniversário de outra pessoa e o mês Temos uns cartões mágicos, que vão permitir adivinhar o dia de aniversário de qualquer pessoa e outros que
Leia maisCalculando seno(x)/x com o interpretador Hall.
Calculando seno(x)/x com o interpretador Hall. Problema Seja, por exemplo, calcular o valor do limite fundamental f(x)=sen(x)/x quando x tende a zero. Considerações Fazendo-se a substituição do valor 0
Leia mais2 Conceitos Básicos. onde essa matriz expressa a aproximação linear local do campo. Definição 2.2 O campo vetorial v gera um fluxo φ : U R 2 R
2 Conceitos Básicos Neste capítulo são apresentados alguns conceitos importantes e necessários para o desenvolvimento do trabalho. São apresentadas as definições de campo vetorial, fluxo e linhas de fluxo.
Leia maisExercício. Exercício
Exercício Exercício Aula Prática Utilizar o banco de dados ACCESS para passar o MER dos cenários apresentados anteriormente para tabelas. 1 Exercício oções básicas: ACCESS 2003 2 1 Exercício ISERIDO UMA
Leia maisProgramação Orientada a Objetos SANTOS, Rafael
Programação Orientada a Objetos SANTOS, Rafael É parte do software, e deve atender os requisitos do usuário Controla o hardware, incluindo periféricos de entrada e saída Usa um conjunto de comandos e regras:
Leia maisLinguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação
Algoritmos e Lógica de Programação Linguagem de Programação C Linguagem C Entrada e Saída de dados Reinaldo Gomes reinaldo@cefet-al.br Fluxo de Saída Padrão Saída Formatada: ( ) Tem a função de
Leia maisÁlgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial
Álgebra Linear Aplicada à Compressão de Imagens Universidade de Lisboa Instituto Superior Técnico Uma Breve Introdução Mestrado em Engenharia Aeroespacial Marília Matos Nº 80889 2014/2015 - Professor Paulo
Leia maisISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.
ISS Eletrônico Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE Caro contribuinte. A transmissão de arquivos é uma facilidade fornecida pelo sistema de ISS Eletrônico
Leia maisAvaliação de Empresas Profa. Patricia Maria Bortolon
Avaliação de Empresas RISCO E RETORNO Aula 2 Retorno Total É a variação total da riqueza proporcionada por um ativo ao seu detentor. Fonte: Notas de Aula do Prof. Claudio Cunha Retorno Total Exemplo 1
Leia maisAlgoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz
Algoritmos e Programação : Conceitos e estruturas básicas Hudson Victoria Diniz Relembrando... Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Podemos pensar
Leia maisa) O Word é um editor de TEXTOS. Com ele é possível digitar cartas, currículos e trabalhos escolares.
START - WORD Respostas dos Exercícios CAPÍ TULO 1 1. Complete as frases usando as palavras do quadro: JANELA TEXTOS TÍTULO ZOOM a) O Word é um editor de TEXTOS. Com ele é possível digitar cartas, currículos
Leia maisCurso C: Ponteiros e Arrays
Universidade de Brasília Departamento de Ciência da Computação Curso C: Ponteiros e Arrays Prof. Ricardo Pezzuol Jacobi rjacobi@cic.unb.br Ponteiros um ponteiro Ž uma vari vel que contžm o endere o um
Leia maisUNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR Assuntos: Produtos Notáveis; Equações; Inequações; Função; Função Afim; Paridade;
Leia maisConfiguração para Uso do Tablet no GigaChef e Outros Dispositivos
Configuração para Uso do Tablet no GigaChef e Outros Dispositivos Birigui SP Setembro - 2013 1. Configurando o Ambiente. Este documento mostra como configurar o ambiente do GigaChef para usar o Tablet
Leia maisExpressões Lógicas e Aritméticas. Professora Kátia Adriana Alves Leite de Barros katia.barros@pitagoras.com.br
Expressões Lógicas e Aritméticas Professora Kátia Adriana Alves Leite de Barros katia.barros@pitagoras.com.br Conteúdo da Aula 03 Revisão exercícios Expressões Expressões Aritméticas Expressões Lógicas
Leia maisCarlos de Salles Soares Neto csalles@deinf.ufma.br Segundas e Quartas, 17h40 às 19h10
Algoritmos I Variáveis, Entrada e Saída de Dados Carlos de Salles Soares Neto csalles@deinf.ufma.br Segundas e Quartas, 17h40 às 19h10 Variáveis Área de memória para o armazenamento de dados Variáveis
Leia maisÁlgebra Linear I - Aula 20
Álgebra Linear I - Aula 0 1 Matriz de Mudança de Base Bases Ortonormais 3 Matrizes Ortogonais 1 Matriz de Mudança de Base Os próximos problemas que estudaremos são os seguintes (na verdade são o mesmo
Leia maisActividade de enriquecimento. Algoritmo da raiz quadrada
Actividade de enriquecimento Algoritmo da raiz quadrada Nota: Apresenta-se uma actividade de enriquecimento e de um possível trabalho conjunto com as disciplinas da área de informática: os alunos poderão
Leia maisEm linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer.
MATEMÁTICA BÁSICA 5 EXPRESSÕES ALGÉBRICAS - EQUAÇÕES A expressão numérica é aquela que apresenta uma sequência de operações e de números. Também já sabemos que as letras são usadas em Matemática para representar
Leia maisSimulado de Linguagem de Programação Java
Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as
Leia maisAula 8 Variações da Eliminação de Gauss/Fatoração LU.
Aula 8 Variações da Eliminação de Gauss/Fatoração LU. MS211 - Cálculo Numérico Marcos Eduardo Valle Departamento de Matemática Aplicada Instituto de Matemática, Estatística e Computação Científica Universidade
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. antunes@ibilce.unesp.br, socorro@ibilce.unesp.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisGraphing Basic no Excel 2007
Graphing Basic no Excel 2007 Tabela de Conteúdos 1. Inserindo e formatando os dados no Excel 2. Criando o gráfico de dispersão inicial 3. Criando um gráfico de dispersão de dados de titulação 4. Adicionando
Leia maisLista de Exercícios Critérios de Divisibilidade
Nota: Os exercícios desta aula são referentes ao seguinte vídeo Matemática Zero 2.0 - Aula 10 - Critérios de - (parte 1 de 2) Endereço: https://www.youtube.com/watch?v=1f1qlke27me Gabaritos nas últimas
Leia maisTeste de hipótese em modelos normais lineares: ANOVA
Teste de hipótese em modelos normais lineares: ANOVA Prof Caio Azevedo Prof Caio Azevedo Exemplo 1 No primeiro modelo, o interesse primário, de certa forma, é testar se a carga não contribui para explicar
Leia maisIntrodução à Programação de Computadores Parte I
Introdução à Programação de Computadores Parte I Prof. Dr. Edson Pimentel Centro de Matemática, Computação e Cognição Objetivos Compreender os componentes básicos de um programa... Objetivos Bacharelado
Leia maisLaboratório de Programação 02
Laboratório de Programação 02 Ambiente de Desenvolvimento e Revisão da Linguagem C Prof. Carlos Eduardo de Barros Paes Prof. Julio Arakaki Departamento de Computação PUC-SP Code::Blocks Ambiente integrado
Leia maisResolução de sistemas de equações lineares: Método de eliminação de Gauss
Resolução de sistemas de equações lineares: Método de eliminação de Gauss Marina Andretta ICMC-USP 21 de março de 2012 Baseado no livro Análise Numérica, de R L Burden e J D Faires Marina Andretta (ICMC-USP)
Leia maisOs eixo x e y dividem a circunferência em quatro partes congruentes chamadas quadrantes, numeradas de 1 a 4 conforme figura abaixo:
Circunferência Trigonométrica É uma circunferência de raio unitário orientada de tal forma que o sentido positivo é o sentido anti-horário. Associamos a circunferência (ou ciclo) trigonométrico um sistema
Leia maisMANUAL DO PROFESSOR. - Inscrições Colégios. Colégios Participantes de Temporadas anteriores:
MANUAL DO PROFESSOR - Inscrições Colégios Colégios Participantes de Temporadas anteriores: O Professor deverá acessar o link Inscrições Colégios no menu esquerdo da página inicial do site da LE2 e com
Leia maisALGORITMO I VARIÁVEIS INDEXADAS
VARIÁVEIS INDEXADAS Array Auxiliadora Freire Slide 1 Array: Conjunto de informações do mesmo tipo, cada informação é representada na memória do computador por uma variável. O nome de qualquer variável
Leia maisSCILAB. Software livre para cálculo numérico e simulação de sistemas físicos Utilizado nas áreas de:
SCILAB Software livre para cálculo numérico e simulação de sistemas físicos Utilizado nas áreas de: Controle e processamento de sinais Automação industrial Computação gráfica Matemática Física Entre outras.
Leia maisManual do Formatador Kfloppy
Thad McGinnis Nicolas Goutte Desenvolvimento: Bernd Johannes Wuebben Desenvolvimento (novo desenho da interface): Chris Howells Desenvolvimento (Adição do suporte para o BSD): Adriaan de Groot Desenvolvedor
Leia maisAplicações Diferentes Para Números Complexos
Material by: Caio Guimarães (Equipe Rumoaoita.com) Aplicações Diferentes Para Números Complexos Capítulo II Aplicação 2: Complexos na Geometria Na rápida revisão do capítulo I desse artigo mencionamos
Leia maisnúmeros decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo
A UA UL LA Frações e números decimais Introdução Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos de um bolo se dividirmos esse bolo em cinco partes iguais e tomarmos
Leia maisNotas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2
Notas de aula de Lógica para Ciência da Computação Aula 11, 2012/2 Renata de Freitas e Petrucio Viana Departamento de Análise, IME UFF 21 de fevereiro de 2013 Sumário 1 Ineficiência das tabelas de verdade
Leia maisFundamentos de Bancos de Dados 3 a Prova Caderno de Questões
Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões Prof. Carlos A. Heuser Dezembro de 2009 Duração: 2 horas Prova com consulta Questão 1 (Construção de modelo ER) Deseja-se projetar a base de
Leia maisLista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores
Instituto de Ciências Eatas e Biológicas ICEB Lista de Eercícios 04 Estruturas de Dados Homogêneas - Vetores 1) Escreva um programa que armazene em um vetor todos os números inteiros de 0 a 50. Após isso,
Leia maisComandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios
Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios O Método Intuitivo de elaboração de circuitos: As técnicas de elaboração de circuitos eletropneumáticos fazem parte
Leia maisnúmeros decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo
A UA UL LA Frações e números decimais Introdução Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos de um bolo se dividirmos esse bolo em cinco partes iguais e tomarmos
Leia maisOrientação a Objetos
Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No
Leia maisRegistro de Retenções Tributárias e Pagamentos
SISTEMA DE GESTÃO DE PRESTAÇÃO DE CONTAS (SiGPC) CONTAS ONLINE Registro de Retenções Tributárias e Pagamentos Atualização: 20/12/2012 A necessidade de registrar despesas em que há retenção tributária é
Leia maisAnálise de Variância (ANOVA)
Análise de Variância (ANOVA) A Regressão Linear visa modelar uma variável resposta numérica (quantitativa), à custa de uma ou mais variáveis preditoras, igualmente numéricas. Mas uma variável resposta
Leia maisProgramação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO
Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO Introdução Existem situações onde é necessário repetir um determinado trecho de um programa um certo número de vezes. Assim,
Leia maisM =C J, fórmula do montante
1 Ciências Contábeis 8ª. Fase Profa. Dra. Cristiane Fernandes Matemática Financeira 1º Sem/2009 Unidade I Fundamentos A Matemática Financeira visa estudar o valor do dinheiro no tempo, nas aplicações e
Leia maisPOTENCIAÇÃO, RADICIAÇÃO E LOGARITMAÇÂO NOS NÚMEROS REAIS. Potenciação 1
POTENCIAÇÃO, RADICIAÇÃO E LOGARITMAÇÂO NOS NÚMEROS REAIS Potenciação 1 Neste texto, ao classificarmos diferentes casos de potenciação, vamos sempre supor que a base e o expoente sejam não nulos, pois já
Leia maisMatrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.
e Aula Zero - Álgebra Linear Professor: Juliano de Bem Francisco Departamento de Matemática Universidade Federal de Santa Catarina agosto de 2011 Outline e e Part I - Definição: e Consideremos o conjunto
Leia maisEste Procedimento Operacional Padrão define as etapas necessárias para o processo de inventário em um estoque, filial ou loja no APLWeb.
PROCEDIMENTO OPERACIONAL PADRÃO - POP Nº 1511.0009 DIRECTA SISTEMAS INTELIGENTES SISTEMA APLWEB DEPARTAMENTO(S) ESTOQUE/EXPEDIÇÂO/ALMOXARIFADO/LOJAS MÓDULO/MENU PRODUTOS/SERVIÇOS Versão do Documento Nº
Leia maisLinguagem de Programação
Linguagem de Programação Aula 2 Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno O que
Leia maisTrabalhando com Mala Direta e Etiquetas de Endereçamento no BrOffice/LibreOffice
Departamento de Tecnologia da Informação Divisão de Relacionamento e Gestão do Conhecimento Trabalhando com Mala Direta e Etiquetas de Endereçamento no BrOffice/LibreOffice Criação de Etiquetas passo a
Leia maisFATURA ELETRÔNICA DO PRESTADOR Layout do Arquivo Texto Versão 1.1.1
Orientações gerais: 1. Este layout é destinado a todos os prestadores de serviços de saúde do Ipasgo. Os prestadores pessoas físicas e pessoas jurídicas nas categorias laboratório e clínicas que apresentam
Leia mais3º Ano do Ensino Médio. Aula nº06
Nome: Ano: º Ano do E.M. Escola: Data: / / 3º Ano do Ensino Médio Aula nº06 Assunto: Noções de Estatística 1. Conceitos básicos Definição: A estatística é a ciência que recolhe, organiza, classifica, apresenta
Leia maisACCESS-2007. 1) Introdução. 2) Abrindo um banco de dados. 3) A Janela do Access-2007
ACCESS-2007 1) Introdução O Access é um gerenciador de banco de dados relacionais. O Access começa perguntando se o usuário deseja começar um banco de dados novo ou se deseja abrir um já existente. A extensão
Leia maisCapítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3
Sumário Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3 Capítulo 2. Importação de Dados de Instituições Financeiras - Arquivo XML 12 Capítulo 1. Importação de Dados de Instituições
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Escreva um programa que leia 10 números
Leia maisQUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES
QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE QUESTÃO 01 SUGESTÕES DE RESOLUÇÕES Descritor 11 Resolver problema envolvendo o cálculo de perímetro de figuras planas. Os itens referentes a
Leia mais