Programar será assim tão difícil?

Tamanho: px
Começar a partir da página:

Download "Programar será assim tão difícil?"

Transcrição

1 Programar será assim tão difícil? Ernesto Costa Departamento de Engenharia Informática Universidade de Coimbra 17 de Novembro de 2007 Resumo Para muitos não informáticos programar parece ser algo de extremamente difícil. É uma actividade a meio caminho entre a ciência e a arte. Ciência, porque exige disciplina e rigor, arte, porque motiva para (e potencia) a actividade criativa. Para uns um programador é como um escultor que passo a passo transforma uma pedra numa estátua esbelta. Para outros o programador é alguém quem brinca com blocos de diferentes formas e funcionalidades como se fossem peças de Lego. Realmente programar não é fácil. Temos que por em jogo simultaneamente conhecimentos (1) sobre o domínio do problema, (2) sobre a linguagem de programção a usar e (3) sobre o processo de construção da solução. Mas toda esta complexidade pode ser dominada. O texto que a seguir apresentamos resulta da dificuldade que alunos da cadeira de Bioinformática da Licenciatura de Biologia da Universidade de Coimbra sentiram ao passar para um universo, uma linguagem e um método de pensar a que não estavam habituados. Trata-se de um pequeno exercício de programação que abre o caminho para que se perca o receio do desafio que é a programação. 1 O Problema Comecemos pelo problema. Em Biologia existe algo que se chama sequência de consenso. Em termos simples (simplistas?) uma sequência de consenso é um padrão de ADN presente na região dos promotores de uma extensa cadeia de ADN e que determina a possibilidade de ligação com determinadas enzimas para se dar início ao processo de transcrição do ADN ele próprio uma das etapas da transcrição genética. Dizemos padrão pois o que efectivamente ocorre na região do promotor não é exactamente a sequência de consenso 1

2 mas uma sequência muito parecida. Um Informático diria simplesmente que uma sequência de consenso é uma palavra (ou cadeia de caracteres) sobre um alfabeto de quatro letras Σ = {A, T, C, G}. Cada uma dessas letras simboliza uma base azotada: Adenina, Timina, Citosina e Guanina. O nosso exercício de programação pode ser especificado de modo simples: dada um conjunto de sequências de ADN, todas de igual tamanho, construir uma nova sequência do mesmo tamanho em que a base presente numa dada posição será a base que aparece com maior frequência nessa posição em todas as sequências iniciais. Vamos chamar a essa sequência, sequência de consenso. Para clarificar apresentamos um exemplo. Para a entrada: S 1 ='ATTC' S 2 ='ACTG' S 3 ='GGGG' S 4 ='ATCG' a saída correspondente deve ser: S='ATTG' 2 A solução Dissemos no resumo que um programador tanto é visto como um escultor como alguém que brinca com Legos. Isso corresponde a dois estilos de programação: do topo para a base, por vezes designada por Programação Descendente ou da base para o topo, e aqui falamos de Programação Ascendente. Com o tempo e a experiência um programador socorre-se das duas abordagens. Referimos ainda que programar pressupõe três aspectos: Conhecimento sobre o domínio do problema Conhecimento sobre a linguagem de programação 2

3 Conhecimento sobre o processo de programação Para este problema o primeiro aspecto é pouco relevante. Trata-se de cadeias de caracteres que representam pedaços de ADN. Já os outros dois são fundamentais. Iremos começar por nos concentrar no último: o processo. A primeira coisa em que um programador pensa, conhecida a especificação, é se pode construir uma descrição abstracta da solução. Nessa tarefa o programador deve tentar afastar ao máximo o seu pensamento da linguagem de programação concreta que vai usar. Admitamos que decidimos construir a sequência de consenso, posição a posição 1 Por cada posição teremos que analisar todas as sequências e determinar a base mais frequente. Sabido qual é ac resecentamos à nossa solução parcial. Podemos descrever este processo de modo simples. Figura 1: O primeiro esboço Avancemos um pouco mais tornando claro que vamos trabalhar para uma dada posição por análise das sequências, uma a uma. Vejamos como podemos detalhar o cálculo da base mais frequente. Do código resulta fácil ver quais foram as opções tomadas: usar contadores para as bases que vão sendo actualizados à medida que determinamos qual a base presente numa dada posição de cada sequência. 1 Não esquecer que se trata de uma sequência, logo existe uma ordem. 3

4 Figura 2: A base mais frequente 4

5 Podemos começar a escolher a forma de guardar os objecto manipulados. A sequência de consenso será uma cadeia de caracteres. Ao olharmos para a figura 3 o leitor dirá que avançámos pouco. É verdade. Mas estamos a vançar de forma segura. Figura 3: Vamos lidar com cadeias de caracteres Qual deve ser o nosso próximo passo? O mais importante é o decidirmos usar um dicionário para guardar a informaçao sobre o número de ocorrências de cada base azotada numa dada posição para todas as sequências. Porquê um dicionário? Bem, sabíamos que precisávamos de estabelecer uma correspondência entre as bases e o seu número de ocorrências. A única estrutura em Python que nos permite fazer isso de modo eficiente e elegante são os dicionários. Aqui entra em jogo claramente o nosso conhecimento da linguagem (ponto (2) dos pré-requisitos para bem programar). Noutra linguagem poderia ser outra a opção. Isto porque esta opção faz com que a noção de ordem desapareça o que pode (e vai) tornar o problema de encontrar a base mais frequente uma questão mais delicada. Vejamos então como ficamos. Tudo agora se precipita. Fica fácil a actualização do dicionário. No entanto deixamos ainda por resolver o problema de saber como é que retiro 5

6 Figura 4: Recurso a um dicionário 6

7 do dicionário a base mais frequente. Fica para tratarmos a seguir. Figura 5: À beira do fim! Vamos então tratar agora da questão em falta. Aqui o conhecimento da linguagem uma vez mais pode facilitar (ou dificultar, depende do ponto de vista) a nossa última tarefa. O Problema que temos entre mãos é na realidade o de ordenar um dicionário por ordem decrescente dos valores para depois ir extrair a chave respectiva? Mas como se os dicionários são objectos sem ordem? Bom, a solução mais simples é converter o dicionário para outro tipo de objecto onde a ordem seja relevante e manipular esse outro objecto. É o que fazemos com a instrução items=dicio.items(). E como calculamos o elemento de maior valor? Bem, assumimos que o primeiro é o de maior valor e depois comparamo-lo de modo ordenado com os elementos do tuplo. Cada vez que o que pensamos ser o maior é ultrapassado actualizamos o resultado parcial. No final de percorrer toda a estrutura temos o maior determinado. Fácil, certo?! 7

8 Figura 6: O maior é nosso... Juntemos agora tudo. Et voilá! def consensus(lseq): """Constrói a sequeência de consenso a partir de uma lista de sequências de ADN de igual comprimento. """ # 1. inicializa sequência de consenso cons = # vai ser uma string # 2. por cada posição da sequência for pos in range(len(lseq[0])): # entrada uma lista # 2.1 calcula qual a base mais frequente para a posição corrente # inicializa contadores das bases dicio_bases={ A :0, C :0, T :0, G :0} # uso um dicionário para contar # para cada sequência for seq in lseq: # determina a base por cada sequência e actualiza o seu contador dicio_bases[seq[pos]]=dicio_bases[seq[pos]] + 1 # determina a base que ocorre mais vezes base=max_ocorre(dicio_bases) # 2.2 actualiza a sequência de consenso na posição corrente 8

9 cons = cons + base # a base será um caracter # 3. Devolve a sequência de consenso completa return cons def max_ocorre(dicio): """A chave cujo valor associado é o maior. A solução depende muito do que se sabe de Python! Vamos ver a solução mais ignorante.""" # Vamos buscar os pares (chave, valor) items=dicio.items() max_val=items[0][1] max_ch=items[0][0] for par in items: if par[1] > max_val: max_val=par[1] max_ch=par[0] return max_ch Listagem 1: Cálculo da sequência de consenso 3 Que alternativas? 3.1 A base mais frequente Tendo agora o programa a funcionar podemos dedicar a nossa atenção à sua análise e eventual alteração. Já dissemos que o uso de dicionários está relacionado com as potencialidades da linguagem Python. Mas será que há outros modos de resolver a questão de ordenar um dicionário por valor? A resposta é afirmativa! Vejamos como. from operator import itemgetter # ---- # ordena um dicionário por valor lista=sorted(dict_freq.items(),key=itemgetter(1),reverse=true) # retira a chave do maior maximo=lista[0][0] Listagem 2: Ordenar um dicionário por valor 9

10 O comando sorted() tem três argumentos. O objecto a ordenar do tipo sequência, a chave que vai ser usada para ordenar e a indicação se o ordenamento é ascendente ou descendente. No nosso caso dada a estrutura do objecto com que lidamos, uma sequência de tuplos em que cada tuplo é um par (chave,valor) o ordenamento faz-se comparando o segundo elemento do par. Daí o argumento key=itemgetter(1). Como queremos o maior à cabeça colocamos o terceiro argumento como reverse=true. Claro que se não soubermos que existe o comando sorted() e o módulo operator com o método itemgetter não conseguimos chegar a esta solução que numa linha apenas resolve uma questão aparentemente complexa. Isto chama a atenção de que a programação é uma actividade árdua e que obriga ao conhecimentyo profundo da linguagem e das suas potencialidades. O que só se consegue... praticando! Mas ainda podíamos fazer diferente e talvez mais claro pois não precisamos de ordenar de modo inverso. Usando a função pré-definida max() teremos: def max_ocorre_1(dicio): maior=max(dicio.items(),key=itemgetter(1)) return maior[0] Listagem 3: O maior valor Se calhar agora o leitor já percebe porque também falamos de arte quando nos referimos à programação! Mais algumas observações. Estamos condenados a usar uma cadeia de caracteres para guardar a solução? Não. Podíamos por exemplo usar uma lista de caracteres e depois no final usar o método join(). Os dados têm que ser introduzidos na forma de lista de sequências? Mais uma vez a resposta é negativa. Podíamos por exemplo usar a possibilidade de uma função ter um número de argumentos variável para introduzir os dados. Iríamos no entanto ter na mesma uma sequência pois no final todos os argumentos iriam ser agrupados num tuplo. Eis um exemplo simples da uilização de argumentos em número variável. def teste1(*num): return Máximo de %s é %d % (num,max(num)) def teste2(*num): return sum(num) 10

11 if name == main : print MAX print teste1(1) print teste1(1,3,2) print teste1(7,3,6) print SOMA print teste2(1) print teste2(1,3,2) print teste2(7,3,6) Listagem 4: Argumentos variáveis PyMate r8111 running Python (/usr/bin/env python) >>> argvar.py MAX Máximo de (1,) é 1 Máximo de (1, 3, 2) é 3 Máximo de (7, 3, 6) é 7 SOMA Program exited. Listagem 5: Resultado da Execução O leitor atento terá notado que o tuplo só com um elemento aparece como (1,). Uma vírgula a seguir ao elemento! Também não passou despercebido como se consegue este truque : colocar um asterisco * antes do nome do argumento. Se calhar está na hora de ir ao manual da linguagem e ver o que são os objectos a que vimos chamando tuplos e as operações que com eles podemos fazer e o que é isso de argumentos variáveis. Lá o aguardarão outras surpresas. 3.2 Mais do que as quatro bases Qunado se resolve o problema do alinhamento de sequências pode acontecer que apareçam símbolos como - conhecido em inglês por gap. Numa base de dados sobre sequências de ADN podemos encontrar o símbolo N. Que fazer ao nosso programa para não se deixar impressionar por estes símbolos? É simples. 11

12 def consensus(lseq): """Constrói a sequeência de consenso a partir de uma lista de sequências de ADN de igual comprimento. """ assert mesmo_tam(lseq) == True, CUIDADO: as sequências têm que ter o mesm o tamanho # 1. inicializa sequência de consenso cons = # vai ser uma string # 2. por cada posição da sequência for pos in range(len(lseq[0])): # entrada uma lista # 2.1 calcula qual a base mais frequente para a posição corrente # inicializa contadores das bases dicio_bases={ A :0, C :0, T :0, G :0} # uso um dicionário para contar # para cada sequência for seq in lseq: # determina a base por cada sequência e actualiza o seu contador # ignora o que não interessa if seq[pos] in [ -, N ]: continue else: dicio_bases[seq[pos]]=dicio_bases[seq[pos]] + 1 # determina a base que ocorre mais vezes base=max_ocorre(dicio_bases) # 2.2 actualiza a sequência de consenso na posição corrente cons = cons + base # a base será um caracter # 3. Devolve a sequência de consenso completa return cons Listagem 6: Filtra símbolos Uma boa construção do programa torna a sua manutenção mais fácil! Outra prova disso? Alterar de modo a que os caracteres possam ser maiúsculos ou minúsculos. Apenas uma linha adicional de código!! def consensus(lseq): """Constrói a sequeência de consenso a partir de uma lista de sequências de ADN de igual comprimento. 12

13 """ assert mesmo_tam(lseq) == True, CUIDADO: as sequências têm que ter o mesm o tamanho # 1. inicializa sequência de consenso cons = # vai ser uma string # 2. por cada posição da sequência for pos in range(len(lseq[0])): # entrada uma lista # 2.1 calcula qual a base mais frequente para a posição corrente # inicializa contadores das bases dicio_bases={ A :0, C :0, T :0, G :0} # uso um dicionário para contar # para cada sequência for seq in lseq: # determina a base por cada sequência e actualiza o seu contador # ignora o que não interessa seq=seq.upper() if seq[pos] in [ -, N ]: continue else: dicio_bases[seq[pos]]=dicio_bases[seq[pos]] + 1 # determina a base que ocorre mais vezes base=max_ocorre(dicio_bases) # 2.2 actualiza a sequência de consenso na posição corrente cons = cons + base # a base será um caracter # 3. Devolve a sequência de consenso completa return cons Listagem 7: O tamanho não é importante Pode testar à vontade. Já agora e antes de abandonar esta parte: porque é que usamos a instrução seq=seq.upper() e não apenas seq.upper() Pense um pouco antes de ir ver a nota de rodapé 2 4 Protecções A especificação diz-nos que as sequências têm que ter todas o mesmo comprimento. E se não tiverem, o que acontece? Depende. Devido ao modo como 2 Porque as cadeias de carateres são objectos imutáveis! 13

14 está implementado só se dá conta do problema se existir uma sequência com menos bases do que a primeira! if name == main : print consensus([ ATTCG, AGCTTT, TTCCTT ]) print consensus([ ATTCG, AGCT, TTCC ]) ### Execu\c cão PyMate r8111 running Python (/usr/bin/env python) >>> programar.py ATCCT IndexError: string index out of range module body in programar.py at line 58 function consensus in programar.py at line 28 Program exited. Listagem 8: Um bug?? Isto chama a atenção para duas coisas: devemos testar e proteger os programas. Para testar uma técnica simples é conhecida por tests unitários. Python tem mesmo um módulo para isso, inspirado na linguagem Smalltalk e chamado de unittest. Está fora de questão falarmos agora dele. Vamos por um caminho mais simples refugiando-nos no comando assert(). if name == main : assert(consensus([ ATTCG, AGCTTT, TTCCTT ]) == ATCCT ) # G é o que ocorre mais: na realidade é o único! assert(consensus([ ATTCG, AGCT, TTCC ]) == ATCCG ) #--- Correr e apanhar o erro PyMate r8111 running Python (/usr/bin/env python) >>> protege.py IndexError: string index out of range module body in protege.py at line 61 function consensus in protege.py at line 30 14

15 Program exited. Listagem 9: Uso de assert A mensagem de erro não é famosa mas podemos alterar isso. if name == main : assert(consensus([ ATTCG, AGCTTT, TTCCTT ]) == ATCCT ) # G é o que ocorre mais: na realidade é o único! try: consensus([ ATTCG, AGCT, TTCC ]) except IndexError: print *** ERRO *** \nas sequências têm que ter os mesmo comprimento #--- Correndo PyMate r8111 running Python (/usr/bin/env python) >>> protege.py *** ERRO *** As sequências têm que ter os mesmo comprimento Program exited. Listagem 10: Um pouco melhor Sempre é uma mensagem mais inteligível. Além disso podemos verificar que os testes também podem servir de documentação do programa. Mas podemos colocar a protecção no interior do programa. Admitamos que temos uma fiunção que nos diz se numa sequência todos os elementos têm o mesmo comprimento 3. Basta altera o códido do seguinte modo. def consensus(lseq): """Constrói a sequeência de consenso a partir de uma lista de sequências de ADN de igual comprimento. """ # Estou protegido... assert mesmo_tam(lseq) == True, CUIDADO: as sequências têm que ter o mesmo tamanho # 1. inicializa sequência de consenso cons = # vai ser uma string # 2. por cada posição da sequência 3 Pode ser um bom exercício

16 for pos in range(len(lseq[0])): # entrada uma lista # 2.1 calcula qual a base mais frequente para a posição corrente # inicializa contadores das bases dicio_bases={ A :0, C :0, T :0, G :0} # uso um dicionário para contar # para cada sequência for seq in lseq: # determina a base por cada sequência e actualiza o seu contador dicio_bases[seq[pos]]=dicio_bases[seq[pos]] + 1 # determina a base que ocorre mais vezes base=max_ocorre(dicio_bases) # 2.2 actualiza a sequência de consenso na posição corrente cons = cons + base # a base será um caracter # 3. Devolve a sequência de consenso completa return cons # -- Correr if name == main : print consensus([ ATTCG, AGCTTT, TTCCTT ]) print consensus([ ATTCG, AGCT, TTCC ]) #-- Resultado PyMate r8111 running Python (/usr/bin/env python) >>> protege.py AssertionError: CUIDADO: as sequências têm que ter o mesmo tamanho module body in protege.py at line 63 function consensus in protege.py at line 20 Program exited. Listagem 11: Protega-se... 16

17 5 Conclusão O que podemos dizer para terminar? Que a programação pode ser mais fácil se soubermos dominar a complexidade dos problemas de forma metódica. Será mais produtiva se conhecermos a linguagem. Além disso para nós foi um modo diferente passar uma tarde de sábado de Outono! E aprendemos mais alguma coisa sobre Python. 17

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Introdução às Bases de Dados

Introdução às Bases de Dados Introdução às Bases de Dados Relacionamentos Simples (Abordagem não Convencional) Raul Ressano Garcia Ficha Técnica EDIÇÃO: Edição do Autor TÍTULO: Introdução às Bases de Dados - Relacionamentos Simples

Leia mais

Pedro Ribeiro 2014/2015

Pedro Ribeiro 2014/2015 Programação Dinâmica Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Programação Dinâmica 2014/2015 1 / 56 Números de Fibonacci Sequência de números muito famosa definida por Leonardo Fibonacci

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

Resolução de sistemas lineares

Resolução de sistemas lineares Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)

Leia mais

Um jogo de preencher casas

Um jogo de preencher casas Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos

Leia mais

Curvas em coordenadas polares

Curvas em coordenadas polares 1 Curvas em coordenadas polares As coordenadas polares nos dão uma maneira alternativa de localizar pontos no plano e são especialmente adequadas para expressar certas situações, como veremos a seguir.

Leia mais

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica O Princípio da Complementaridade e o papel do observador na Mecânica Quântica A U L A 3 Metas da aula Descrever a experiência de interferência por uma fenda dupla com elétrons, na qual a trajetória destes

Leia mais

Sistemas de Apoio à Decisão

Sistemas de Apoio à Decisão Sistemas de Apoio à Decisão Processo de tomada de decisões baseia-se em informação toma em consideração objectivos toma em consideração conhecimento sobre o domínio. Modelar o processo de tomada de decisões

Leia mais

Serviço de Clientes. Gestix Enterprise. Gestix.com

Serviço de Clientes. Gestix Enterprise. Gestix.com Serviço de Clientes Gestix Enterprise Serviço de Clientes Objectivo O módulo Serviço de Clientes permite organizar o expediente pós-venda de forma a aumentar a qualidade do serviço prestado ao cliente.

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

Sistemas Lineares. Módulo 3 Unidade 10. Para início de conversa... Matemática e suas Tecnologias Matemática

Sistemas Lineares. Módulo 3 Unidade 10. Para início de conversa... Matemática e suas Tecnologias Matemática Módulo 3 Unidade 10 Sistemas Lineares Para início de conversa... Diversos problemas interessantes em matemática são resolvidos utilizando sistemas lineares. A seguir, encontraremos exemplos de alguns desses

Leia mais

TIPOS DE RELACIONAMENTOS

TIPOS DE RELACIONAMENTOS 68 Décima-Segunda Lição CONSTRUINDO RELACIONAMENTOS DE QUALIDADE Quando falamos de relacionamentos, certamente estamos falando da inter-relação de duas ou mais pessoas. Há muitas possibilidades de relacionamentos,

Leia mais

Programação em papel quadriculado

Programação em papel quadriculado 4 NOME DA AULA: Programação em papel quadriculado Tempo de aula: 45 60 minutos Tempo de preparação: 10 minutos Objetivo principal: ajudar os alunos a entender como a codificação funciona. RESUMO Ao "programar"

Leia mais

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES OBJETIVO Assegurar a satisfação do cliente no pós-venda, desenvolvendo um relacionamento duradouro entre o vendedor e o cliente, além de conseguir indicações através de um sistema de follow-up (acompanhamento).

Leia mais

Eventos independentes

Eventos independentes Eventos independentes Adaptado do artigo de Flávio Wagner Rodrigues Neste artigo são discutidos alguns aspectos ligados à noção de independência de dois eventos na Teoria das Probabilidades. Os objetivos

Leia mais

Programação Dinâmica

Programação Dinâmica fib(5) fib(4) fib(3) fib(3) fib(2) fib(2) fib(1) fib(2) fib(1) fib(1) fib(0) fib(1) fib(0) fib(1) fib(0) Uma metodologia de resolução de problemas Center for Research in Advanced Computing Systems (CRACS

Leia mais

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Índice Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Como efectuar uma operação de confirmação de estimativas? Como aceder ao Serviço de Certificação

Leia mais

Os gráficos estão na vida

Os gráficos estão na vida Os gráficos estão na vida A UUL AL A Nas Aulas 8, 9 e 28 deste curso você já se familiarizou com o estudo de gráficos. A Aula 8 introduziu essa importante ferramenta da Matemática. A Aula 9 foi dedicada

Leia mais

A Torre de Hanói e o Princípio da Indução Matemática

A Torre de Hanói e o Princípio da Indução Matemática A Torre de Hanói e o Princípio da Indução Matemática I. O jogo A Torre de Hanói consiste de uma base com três pinos e um certo número n de discos de diâmetros diferentes, colocados um sobre o outro em

Leia mais

Pontifícia Universidade Católica de Minas Gerais Bacharelado em Sistemas de Informação Trabalho de Diplomação

Pontifícia Universidade Católica de Minas Gerais Bacharelado em Sistemas de Informação Trabalho de Diplomação Caros alunos e orientadores de conteúdo e acadêmico, Este documento ilustra quais capítulos devemos possuir na monografia de (no mínimo), e o que cada um contempla. O formato deverá ser o utilizado pela

Leia mais

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7

Leia mais

Notas de Cálculo Numérico

Notas de Cálculo Numérico Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo

Leia mais

Tabelas vista de estrutura

Tabelas vista de estrutura Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Engenharia do Conhecimento

Engenharia do Conhecimento Engenharia do Conhecimento 1º Projecto 23 de Março de 2015 BattleShip Jess Prazo de Entrega: 19 de Abril Objectivo Geral: Pretende-se desenvolver em Jess uma das variantes do jogo clássico da Batalha Naval.

Leia mais

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais

Python Intermediário. terça-feira, 4 de agosto de 15

Python Intermediário. terça-feira, 4 de agosto de 15 Python Intermediário I FUNÇÕES Módulo Python (Intermediário) Função Uma função é uma sequência de comandos que desempenham algum tipo de tarefa no seu programa Evita duplicação de código Facilita alterações:

Leia mais

5 Equacionando os problemas

5 Equacionando os problemas A UA UL LA Equacionando os problemas Introdução Nossa aula começará com um quebra- cabeça de mesa de bar - para você tentar resolver agora. Observe esta figura feita com palitos de fósforo. Mova de lugar

Leia mais

1 Detecção e correcção de erros 1 1.1 Erros sintáticos... 1 1.2 Erros de execução... 2 1.3 Erros semânticos... 5 1.4 Erros semânticos...

1 Detecção e correcção de erros 1 1.1 Erros sintáticos... 1 1.2 Erros de execução... 2 1.3 Erros semânticos... 5 1.4 Erros semânticos... Nesta aula... Conteúdo 1 Detecção e correcção de erros 1 1.1 Erros sintáticos............................. 1 1.2 Erros de execução............................ 2 1.3 Erros semânticos............................

Leia mais

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code

Leia mais

Álgebra. SeM MiSTéRio

Álgebra. SeM MiSTéRio Álgebra SeM MiSTéRio Série SeM MiSTéRio Alemão Sem Mistério Álgebra Sem Mistério Cálculo Sem Mistério Conversação em Alemão Sem Mistério Conversação em Espanhol Sem Mistério Conversação em Francês Sem

Leia mais

TRUQUE: DESLIGUE OS AVISOS DE E-MAIL

TRUQUE: DESLIGUE OS AVISOS DE E-MAIL semelhança de um alerta externo de nova mensagem, terão impacto negativo na profundidade com que mergulha num dado assunto. O caminho para otimizar a focalização passa, pois, e também, por uma boa perceção

Leia mais

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Adicionando Propriedades e Funcionalidades aos Componentes Parte II Adicionando Propriedades e Funcionalidades aos Componentes Parte II Quantas vezes eu não lamentei por este componente não ter uma propriedade que guardasse uma lista paralela a lista que é mostrada em

Leia mais

C5. Formação e evolução estelar

C5. Formação e evolução estelar AST434: C5-1/68 AST434: Planetas e Estrelas C5. Formação e evolução estelar Mário João P. F. G. Monteiro Mestrado em Desenvolvimento Curricular pela Astronomia Mestrado em Física e Química em Contexto

Leia mais

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções 1 - Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções Um programa pode possuir determinados processos realizados repetidas vezes ao longo da execução do programa. Estes processos podem se agrupar

Leia mais

WWW.MUSICALLEIZER.COM.BR

WWW.MUSICALLEIZER.COM.BR WWW.MUSICALLEIZER.COM.BR Índice Índice Prefácio Sobre o autor Introdução Como ser produtivo estudando corretamente Você já organizou o seu tempo e os seus dias para estudar? Definir o que vai estudar Organizando

Leia mais

Nós o Tempo e a Qualidade de Vida.

Nós o Tempo e a Qualidade de Vida. Nós o Tempo e a Qualidade de Vida. Será que já paramos e pensamos no que é o tempo? Podemos afirmar que o tempo é nossa própria vida. E a vida só é vivida no aqui e agora, no efêmero momento entre o passado

Leia mais

5 Dicas Testadas para Você Produzir Mais na Era da Internet

5 Dicas Testadas para Você Produzir Mais na Era da Internet 5 Dicas Testadas para Você Produzir Mais na Era da Internet Uma das verdades absolutas sobre Produtividade que você precisa saber antes de seguir é entender que se ocupar não é produzir. Não sei se é o

Leia mais

Arte em ASCII. Introdução: Python

Arte em ASCII. Introdução: Python Python 1 Arte em ASCII All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introdução:

Leia mais

Redação do Site Inovação Tecnológica - 28/08/2009. Humanos aprimorados versus humanos comuns

Redação do Site Inovação Tecnológica - 28/08/2009. Humanos aprimorados versus humanos comuns VOCÊ ESTÁ PREPARADO PARA CONVIVER COM OS HUMANOS APRIMORADOS? http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=voce-esta-preparado-conviver-humanosaprimorados&id=010850090828 Redação do

Leia mais

Potenciação no Conjunto dos Números Inteiros - Z

Potenciação no Conjunto dos Números Inteiros - Z Rua Oto de Alencar nº 5-9, Maracanã/RJ - tel. 04-98/4-98 Potenciação no Conjunto dos Números Inteiros - Z Podemos epressar o produto de quatro fatores iguais a.... por meio de uma potência de base e epoente

Leia mais

1. A corrida de vetores numa folha de papel.

1. A corrida de vetores numa folha de papel. 1. A corrida de vetores numa folha de papel. desenhando a pista. o movimento dos carros. o início da corrida. as regras do jogo. 2. A corrida no computador. o número de jogadores. o teclado numérico. escolhendo

Leia mais

QUITETURA AVANÇADA DE SISTEMAS

QUITETURA AVANÇADA DE SISTEMAS QUITETURA AVANÇADA DE SISTEMAS ICARDO MENDÃO SILVA RMSILVA AT UAL DOT PT MARÇO 2015 AAS OUTLINE INTRODUÇÃO COMENTÁRIOS VARIÁVEIS OPERADORES IF STATEMENT FUNÇÕES CICLO FOR CICLO WHILE STRINGS LISTAS TUPLAS

Leia mais

Calculando RPM. O s conjuntos formados por polias e correias

Calculando RPM. O s conjuntos formados por polias e correias A U L A Calculando RPM O problema O s conjuntos formados por polias e correias e os formados por engrenagens são responsáveis pela transmissão da velocidade do motor para a máquina. Geralmente, os motores

Leia mais

VII MARATONA DE PROGRAMAÇÃO UERJ 17/05/2014. Este caderno contém 12 páginas com a descrição de 10 problemas 1 definidos a seguir:

VII MARATONA DE PROGRAMAÇÃO UERJ 17/05/2014. Este caderno contém 12 páginas com a descrição de 10 problemas 1 definidos a seguir: VII MARATONA DE PROGRAMAÇÃO UERJ 17/05/014 Este caderno contém 1 páginas com a descrição de 10 problemas 1 definidos a seguir: A - Botas B Digito Verificador do passaporte C Jogo da Vida D - A Próxima

Leia mais

Objectivos PLANEAR 2/90. O que se pretende comunicar ou expor. Queremos:

Objectivos PLANEAR 2/90. O que se pretende comunicar ou expor. Queremos: Objectivos O que se pretende comunicar ou expor Queremos: De todos os passos deste e-book, começamos pelo maior desafio: ter boas ideias. Estas estão só à espera que alguém as tenha, e até há técnicas

Leia mais

Introdução à Programação B Licenciatura em Engenharia Informática. Enunciado do trabalho prático. Quem quer ser milionário? 20 de Dezembro de 2007

Introdução à Programação B Licenciatura em Engenharia Informática. Enunciado do trabalho prático. Quem quer ser milionário? 20 de Dezembro de 2007 Introdução à Programação B Licenciatura em Engenharia Informática Enunciado do trabalho prático Quem quer ser milionário? 20 de Dezembro de 2007 1. Introdução Quem quer ser milionário? é um jogo televisivo

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

PESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

PESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO. Prof. Angelo Augusto Frozza, M.Sc. PESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO Prof. Angelo Augusto Frozza, M.Sc. O TRABALHO DE CONCLUSÃO Introdução O texto que segue resume os Capítulo 2 e 8, do livro Metodologia de Pesquisa

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

48 Como produzimos a insulina?

48 Como produzimos a insulina? A U A UL LA Como produzimos a insulina? Na aula passada você estudou a importância da insulina no nosso organismo. Dá para imaginar o que aconteceria conosco se não fabricássemos esse hormônio ou se o

Leia mais

MATEMÁTICA. Recenseamento/Sondagem ESTATÍSTICA

MATEMÁTICA. Recenseamento/Sondagem ESTATÍSTICA MATEMÁTICA NOME: ANO: TURMA: N.º FICHA INFORMATIVA ESTATÍSTICA A estatística é uma área da Matemática que trata da recolha, organização, resumo e interpretação de dados, e está presente em todos os ramos

Leia mais

18/11/2005. Discurso do Presidente da República

18/11/2005. Discurso do Presidente da República Discurso do presidente da República, Luiz Inácio Lula da Silva, na cerimônia de entrega de certificado para os primeiros participantes do programa Escolas-Irmãs Palácio do Planalto, 18 de novembro de 2005

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

A Revolução No Seu Negócio

A Revolução No Seu Negócio A Revolução No Seu Negócio Copyright 2009 ATTRACTION MARKETING TRENDS 1 Saiba Como e Quais Os Benefícios... Lista Infinita de Contactos Marketing de Atracção Contactos Pré-Qualificados O Sistema Posiciona-o

Leia mais

MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS

MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIS Como vimos no módulo 1, para que nós possamos extrair dos dados estatísticos de que dispomos a correta análise e interpretação, o primeiro passo deverá ser a correta

Leia mais

Papo com a Especialista

Papo com a Especialista Papo com a Especialista Silvie Cristina (Facebook) - Que expectativas posso ter com relação à inclusão da minha filha portadora da Síndrome de Down na Educação Infantil em escola pública? Quando colocamos

Leia mais

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? Exercícios sobre Linguagem PHP: 1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? 2) Considere a linguagem de programação PHP e seus operadores. A execução da sentença:

Leia mais

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591

Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591 Organização Trabalho realizado por: André Palma nº 31093 Daniel Jesus nº 28571 Fábio Bota nº 25874 Stephane Fernandes nº 28591 Índice Introdução...3 Conceitos.6 Princípios de uma organização. 7 Posição

Leia mais

O céu. Aquela semana tinha sido uma trabalheira! www.interaulaclube.com.br

O céu. Aquela semana tinha sido uma trabalheira! www.interaulaclube.com.br A U A UL LA O céu Atenção Aquela semana tinha sido uma trabalheira! Na gráfica em que Júlio ganhava a vida como encadernador, as coisas iam bem e nunca faltava serviço. Ele gostava do trabalho, mas ficava

Leia mais

COMO MINIMIZAR AS DÍVIDAS DE UM IMÓVEL ARREMATADO

COMO MINIMIZAR AS DÍVIDAS DE UM IMÓVEL ARREMATADO PROLEILOES.COM COMO MINIMIZAR AS DÍVIDAS DE UM IMÓVEL ARREMATADO PROCESSOS QUE PODEM FAZER COM QUE VOCÊ CONSIGA QUITAR DÍVIDAS PENDENTES DE UM ÍMOVEL ARREMATADO EM LEILÃO, PAGANDO MENOS QUE O SEU VALOR

Leia mais

Elaboração e aplicação de questionários

Elaboração e aplicação de questionários Universidade Federal da Paraíba Departamento de Estatística Curso de Bacharelado em Estatística Elaboração e aplicação de questionários Prof. Hemílio Fernandes Campos Coêlho Departamento de Estatística

Leia mais

COMO USAR SMS ADDITIONAL TEXT EM UMA CAMPANHA ELEITORAL?

COMO USAR SMS ADDITIONAL TEXT EM UMA CAMPANHA ELEITORAL? COMO USAR SMS ADDITIONAL TEXT EM UMA CAMPANHA ELEITORAL? COMO USAR SMS EM UMA CAMPANHA ELEITORAL? Veja algumas dicas para engajar eleitores através do SMS Marketing De acordo com dados da Pnad (Pesquisa

Leia mais

CONFERÊNCIA NACIONAL DE EDUCAÇÃO ARTÍSTICA. A educação artística como arte de educar os sentidos

CONFERÊNCIA NACIONAL DE EDUCAÇÃO ARTÍSTICA. A educação artística como arte de educar os sentidos CONFERÊNCIA NACIONAL DE EDUCAÇÃO ARTÍSTICA Porto, Casa da Música, 29-31 de Outubro de 2007 A educação artística como arte de educar os sentidos Yolanda Espiña (Escola das Artes Universidade Católica Portuguesa)

Leia mais

Cotagem de dimensões básicas

Cotagem de dimensões básicas Cotagem de dimensões básicas Introdução Observe as vistas ortográficas a seguir. Com toda certeza, você já sabe interpretar as formas da peça representada neste desenho. E, você já deve ser capaz de imaginar

Leia mais

Sessão 2: Gestão da Asma Sintomática. Melhorar o controlo da asma na comunidade.]

Sessão 2: Gestão da Asma Sintomática. Melhorar o controlo da asma na comunidade.] Sessão 2: Gestão da Asma Sintomática Melhorar o controlo da asma na comunidade.] PROFESSOR VAN DER MOLEN: Que importância tem para os seus doentes que a sua asma esteja controlada? DR RUSSELL: É muito

Leia mais

1. Introdução. Avaliação de Usabilidade Página 1

1. Introdução. Avaliação de Usabilidade Página 1 1. Introdução Avaliação de Usabilidade Página 1 Os procedimentos da Avaliação Heurística correspondem às quatro fases abaixo e no final é apresentado como resultado, uma lista de problemas de usabilidade,

Leia mais

Vejamos um exemplo. Vamos supor que queiramos montar uma tabela 3X2, ou seja de 3 colunas por 2 linhas, o código HTML para isso é :

Vejamos um exemplo. Vamos supor que queiramos montar uma tabela 3X2, ou seja de 3 colunas por 2 linhas, o código HTML para isso é : TABELAS As tabelas são muito importantes para o designer de uma home-page. Com elas podese fazer alinhamentos que dificilmente seriam possíveis com simples comandos. A funcionalidade de uma tabela faz

Leia mais

Desenhando perspectiva isométrica

Desenhando perspectiva isométrica Desenhando perspectiva isométrica A UU L AL A Quando olhamos para um objeto, temos a sensação de profundidade e relevo. As partes que estão mais próximas de nós parecem maiores e as partes mais distantes

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

O princípio multiplicativo

O princípio multiplicativo A UA UL L A O princípio multiplicativo Introdução A palavra Matemática, para um adulto ou uma criança, está diretamente relacionada com atividades e técnicas para contagem do número de elementos de algum

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Manual de Utilizador Plataforma de Estágios TIC. www.estagiostic.gov.pt

Manual de Utilizador Plataforma de Estágios TIC. www.estagiostic.gov.pt Manual de Utilizador Plataforma de Estágios TIC www.estagiostic.gov.pt 1 Índice 1 Introdução 3 1.1 Programa de Estágios TIC 3 1.2 Objectivo da plataforma 3 1.3 Perfis 4 1.3.1 Escola 4 1.3.2 Empresa 4 1.3.3

Leia mais

Como escrever para o seu. Site. e usar seu conhecimento como forma de conquistar e reter clientes. Blog do Advogado Moderno - PROMAD

Como escrever para o seu. Site. e usar seu conhecimento como forma de conquistar e reter clientes. Blog do Advogado Moderno - PROMAD o seu Site e usar seu conhecimento como forma de conquistar e reter clientes. Conteúdo Introdução Escrever bem é um misto entre arte e ciência Seus conhecimentos geram mais clientes Dicas práticas Faça

Leia mais

Transcrição aula inaugural Professor Irineu Mario Colombo, reitor do Instituto Federal do Paraná Fevereiro de 2013

Transcrição aula inaugural Professor Irineu Mario Colombo, reitor do Instituto Federal do Paraná Fevereiro de 2013 Transcrição aula inaugural Professor Irineu Mario Colombo, reitor do Instituto Federal do Paraná Fevereiro de 2013 Olá Pessoal Quero desejar as boas-vindas a todos os nossos estudantes, alunos, alunas,

Leia mais

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade Projeto da Disciplina Parte1: Estudo de Viabilidade ENTREGA: 09/04/09 Professor: Carlos José Maria Olguin Um Estudo de Viabilidade Você deve fazer um estudo de viabilidade para um projeto de sistema de

Leia mais

Conectar diferentes pesquisas na internet por um menu

Conectar diferentes pesquisas na internet por um menu Conectar diferentes pesquisas na internet por um menu Pré requisitos: Elaboração de questionário Formulário multimídia Publicação na internet Uso de senhas na Web Visualização condicionada ao perfil A

Leia mais

Javascript 101. Parte 2

Javascript 101. Parte 2 Javascript 101 Parte 2 Recapitulando O Javascript é uma linguagem de programação funcional Os nossos scripts são executados linha a linha à medida que são carregados. O código que está dentro de uma função

Leia mais

Prog A B C A e B A e C B e C A,B e C Nenhum Pref 100 150 200 20 30 40 10 130

Prog A B C A e B A e C B e C A,B e C Nenhum Pref 100 150 200 20 30 40 10 130 Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 2 Lógica II Quando lemos um problema de matemática imediatamente podemos ver que ele está dividido em duas partes:

Leia mais

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus Programação Orientada a Objetos: Lista de exercícios #1 Bruno Góis Mateus 1 Contents Programação Orientada a Objetos (Bruno Góis Mateus ): Lista de exercícios #1 Classes e Instanciação 3 A classe Circle...............................................

Leia mais

O Manual do ssc. Peter H. Grasch

O Manual do ssc. Peter H. Grasch Peter H. Grasch 2 Conteúdo 1 Introdução 6 2 Usar o ssc 7 2.1 Gerir os utilizadores.................................... 7 2.1.1 Adicionar um utilizador.............................. 8 2.1.1.1 Associar-se

Leia mais

IMS Health. Carlos Mocho. General Manager. www.imshealth.com

IMS Health. Carlos Mocho. General Manager. www.imshealth.com IMS Health Carlos Mocho General Manager www.imshealth.com Q. A IMS tem actividade em Portugal e Fale-nos um pouco da actividade da empresa? R. A IMS Portugal iniciou em Portugal no inicio deste ano (2008),

Leia mais

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br Tuplas e Dicionários Vanessa Braganholo vanessa@ic.uff.br 2 Tuplas Tuplas } Tuplas são sequências de valores, da mesma forma que listas } Mas, existem diferenças... } Os valores de uma tupla, ao contrário

Leia mais

Faculdade Sagrada Família

Faculdade Sagrada Família AULA 12 - AJUSTAMENTO DE CURVAS E O MÉTODO DOS MÍNIMOS QUADRADOS Ajustamento de Curvas Sempre que desejamos estudar determinada variável em função de outra, fazemos uma análise de regressão. Podemos dizer

Leia mais

4Distribuição de. freqüência

4Distribuição de. freqüência 4Distribuição de freqüência O objetivo desta Unidade é partir dos dados brutos, isto é, desorganizados, para uma apresentação formal. Nesse percurso, seção 1, destacaremos a diferença entre tabela primitiva

Leia mais

TIPOS DE REUNIÕES. Mariangela de Paiva Oliveira. mariangela@fonte.org.br. As pessoas se encontram em diferentes âmbitos:

TIPOS DE REUNIÕES. Mariangela de Paiva Oliveira. mariangela@fonte.org.br. As pessoas se encontram em diferentes âmbitos: TIPOS DE REUNIÕES Mariangela de Paiva Oliveira mariangela@fonte.org.br As pessoas se encontram em diferentes âmbitos: no âmbito do pensar: quando acontece uma troca de idéias, opiniões ou informações;

Leia mais

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Tipos de dados Os programas manipulam dados, armazenando-os

Leia mais

Sistema de Memórias de Computadores

Sistema de Memórias de Computadores Sistema de Memórias de Computadores Uma memória é um dispositivo que permite um computador armazenar dados temporariamente ou permanentemente. Sabemos que todos os computadores possuem memória. Mas quando

Leia mais

Contas. Osni Moura Ribeiro ; Contabilidade Fundamental 1, Editora Saraiva- ISBN 9788502065901

Contas. Osni Moura Ribeiro ; Contabilidade Fundamental 1, Editora Saraiva- ISBN 9788502065901 Contas 2.1. Conceito Na sua linguagem cotidiana, o que representa a palavra conta? Você poderá responder: Uma operação aritmética de soma, subtração, multiplicação ou divisão; A conta de água e esgoto,

Leia mais

Apresentação de Dados em Tabelas e Gráficos

Apresentação de Dados em Tabelas e Gráficos Apresentação de Dados em Tabelas e Gráficos Os dados devem ser apresentados em tabelas construídas de acordo com as normas técnicas ditadas pela Fundação Instituto Brasileiro de Geografia e Estatística

Leia mais

Potência, uma coisa mais que complicada Parte V

Potência, uma coisa mais que complicada Parte V Potência, uma coisa mais que complicada Parte V Autor: Fernando Antônio Bersan Pinheiro Cálculo de potência necessária em um ambiente fechado No artigo anterior, disponível em http://www.somaovivo.mus.br/artigos.php?id=180,

Leia mais

INSTITUTO TECNOLÓGICO

INSTITUTO TECNOLÓGICO PAC - PROGRAMA DE APRIMORAMENTO DE CONTEÚDOS. ATIVIDADES DE NIVELAMENTO BÁSICO. DISCIPLINAS: MATEMÁTICA & ESTATÍSTICA. PROFº.: PROF. DR. AUSTER RUZANTE 1ª SEMANA DE ATIVIDADES DOS CURSOS DE TECNOLOGIA

Leia mais

Análise de Regressão Linear Simples e Múltipla

Análise de Regressão Linear Simples e Múltipla Análise de Regressão Linear Simples e Múltipla Carla Henriques Departamento de Matemática Escola Superior de Tecnologia de Viseu Carla Henriques (DepMAT ESTV) Análise de Regres. Linear Simples e Múltipla

Leia mais