• Nenhum resultado encontrado

0. Estrutura de um programa

N/A
N/A
Protected

Academic year: 2021

Share "0. Estrutura de um programa"

Copied!
17
0
0

Texto

(1)

Tópicos Principais:

0. Estrutura de um programa 1. Resolução de problemas 1.1 Algoritmos 1.2 Diagrama de blocos 1.3 Portugol 2. Programa padrão 3. Saída de dados 4. Memória 5. Entrada de dados 6. Processamento 7. Resumo 8. Lista de Exercícios

(2)

Nesta aula, serão apresentados os principais conceitos de um programa, etapas de resolução de problemas, estrutura básica de um programa, funções básicas de entrada, saída de dados, uso de variáveis, processamento, resumo e exercícios.

0. Estrutura de um programa

Como já visto nas aulas passadas, o conceito que estrutura um programa segue basicamente a própria organização do computador que pode ser resumida da seguinte forma:

A seqüência principal de execução é entrada -> processamento -> saída, MAS no decorrer da execução podem ser necessários outros tipos de acesso como, por exemplo, a necessidade ou não de armazenamento de dados temporários (memória) e, por fim o armazenamento ou não fixo de maneira permanente no HD (entrada/saída).

1. Resolução de problemas

Para maior segurança no desenvolvimento de um programa geralmente são adotadas três etapas:

1 – Elaboração do Algoritmo; 2 – Diagrama de bloco; 3 – Portugol.

1.1. Algoritmo

Como já visto nas aulas passadas, algoritmo é uma seqüência de passos finitos com o objetivo de solucionar um problema. Pode também ser definido como uma seqüência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. São exemplos de algoritmos: instruções de montagem, receitas, manuais de uso, etc.

Entrada Processamento Saída Memória

Entrada/ Saída

(3)

Um algoritmo não é A solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é UM CAMINHO para a solução de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória.

Um algoritmo não computacional é um algoritmo cuja seqüência de passos, a princípio, não pode ser executada por um computador. Abaixo é apresentado um algoritmo NÃO COMPUTACIONAL cujo objetivo é usar um telefone público.

1 – Retirar o telefone do gancho 2 – Esperar o sinal

3 – Colocar o cartão 4 – Discar o número 5 – Falar ao telefone

6 – Colocar o telefone no gancho

Provavelmente você “executou” o algoritmo deste exemplo diversas vezes. O termo algoritmo está muito ligado à Ciência da Computação, mas, na realidade, ele pode ser aplicado a qualquer problema cuja solução possa ser decomposta em um grupo de instruções.

1.2. Diagrama de bloco

O diagrama de bloco, também chamado de fluxo, é uma ferramenta usada e desenvolvida pelo profissional que está envolvido diretamente com a programação, tendo como objetivo descrever o método e a seqüência do processo dos planos num computador.

Essa ferramenta usa diversos símbolos geométricos, os quais estabelecerão as seqüências de operações a serem executadas em um processamento computacional. Um exemplo de diagrama é apresentado abaixo:

Observações: Os programas Word e VISIO permitem criar diagrama de blocos facilmente. Ao longo do curso serão apresentados os principais símbolos.

Início

Fim X

(4)

1.3 Portugol

Para que o algoritmo possa ser útil, é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções. O algoritmo do exemplo só será útil para alguém que seja fluente na língua portuguesa e conheça o significado dos verbos Retirar, Colocar, Esperar assim como dos substantivos utilizados no contexto de uma receita culinária. Em outras palavras, é preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá-lo.

Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambigüidades. Portanto, a forma especial de linguagem que utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos os termos utilizados nas instruções. Essa linguagem é conhecida como Português Estruturado (às vezes também chamada de Portugol).

O português estruturado é, na verdade, uma simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato das sentenças válidas chamamos sintaxe da linguagem. Durante este texto, a sintaxe do Português Estruturado será apresentada progressivamente e a utilizaremos em muitos exercícios de resolução de problemas.

Aprender as palavras e regras que fazem parte dessa sintaxe é fundamental; no entanto, não é o maior objetivo deste curso. O que realmente exigirá um grande esforço por parte do estudante é aprender a resolver problemas utilizando a linguagem. Para isso, há somente um caminho: resolver muitos problemas. O processo é semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação.

Embora o Português Estruturado seja uma linguagem bastante simplificada, ela possui todos os elementos básicos e uma estrutura semelhante à de uma linguagem típica para programação de computadores. Além disso, resolver problemas com português estruturado pode ser uma tarefa tão complexa quanto a de escrever um programa em uma linguagem de programação qualquer. Portanto, neste curso, estaremos na verdade procurando desenvolver as habilidades básicas que serão necessárias para adquirir-se competência na programação de computadores.

(5)

Daqui para frente, serão apresentados exemplos de algoritmos, sua representação no diagrama de blocos e, por fim, sua escrita em portugol.

O Programa VisuAlg permite testar os programas desenvolvidos em portugol rapidamente. Pode ser encontrado no site de busca www.apoioinformatica.inf.br.

2. Programa padrão

Abra o programa VisuAlg. Observe que é gerado automaticamente o seguinte código:

Por enquanto não é necessário todo este código, desta forma, apague tudo o que está depois do // e a palavra var, ficando da seguinte maneira:

Programa padrão:

TODO programa em portugol tem no mínimo a estrutura básica acima. Ele é composto pela palavra-chave algoritmo seguido do nome do algoritmo entre aspas duplas, neste caso é “básico”. Em seguida, tem-se a outra palavra-chave inicio e fimalgoritmo.

Sua representação em diagrama de bloco é demonstrada abaixo:

Para testarmos o algoritmo pressione o botão F9. Ao pressionar este botão será simulada a compilação do código, isto é a transformação do código em Portugol para linguagem de máquina. Preste ATENÇÃO! ISTO irá apenas SIMULAR. Pois o portugol não é uma linguagem de programação realmente, apenas um português estruturado. Após isto, será aberta uma janela preta. Este será o ambiente em que possibilitará a criação dos nossos programas. Feche-a.

algoritmo "basico" inicio fimalgoritmo Início Fim Diagrama de bloco algoritmo "semnome" // Função : // Autor : // Data : 15/02/2008 // Seção de Declarações var inicio // Seção de Comandos fimalgoritmo

(6)

3. Saída de dados: escreva e escreval

Lembra-se de entrada, processamento e saída? Pois bem, veremos primeiro a saída e não a entrada, pois geralmente é necessário apresentar alguma informação para o usuário antes que o mesmo possa entrar com os dados.

Para a apresentação de dados na tela, utiliza-se a palavra-chave escreva seguido do texto a ser apresentado entre parêntesis. O símbolo do diagrama de blocos utilizado para apresentação de dados na tela é o . .

Problema 1: Desenvolva um programa que mostre na tela a mensagem “Bem-vindo!”.

O primeiro passo é desenvolver o algoritmo.

3.1 Algoritmo:

Apresente a mensagem “Bem-vindo!”.

3.2 Diagrama de bloco:

3.3 Portugol

Em portugol ficaria da seguinte maneira:

Observações: Foram utilizados três espaços em branco antes do comando escreva, isto não é obrigatório para o programa funcionar, MAS ajuda muito o entendimento por parte do próprio programador e outros que quiserem entendê-lo. Esta técnica é chamada de endentação e visa uma boa documentação do seu programa.

algoritmo "basico" inicio escreva ("Bem-vindo!") fimalgoritmo Diagrama de bloco Início Fim “Bem-vindo”

(7)

Caso fosse necessário apresentar várias mensagens, bastaria utilizar o mesmo comando diversas vezes. Outro comando que permite escrever um texto na tela é o escreval. Este possui a mesma sintaxe que o escreva, a diferença é que após apresentar o texto ele permite escrever uma nova linha após o texto desejado. Ex: escreval(“Teste”).

3.4 Exercício: Desenvolva um programa que apresente na tela “Estou começando a conhecer Portugol!”, mas de forma que cada palavra fique em uma linha diferente! Faça o algoritmo, diagrama de bloco e por fim, o portugol.

4. Memória

O conceito memória faz referência a variáveis. Uma das razões para o de uso de variáveis é devido à necessidade de armazenar os dados que serão digitados pelo usuário.

Mas o que seria variável?

Variável é um local na memória principal (temporária), isto é um endereço que armazena um conteúdo. Também pode ser considerada como tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante. Por exemplo, a entrada de dados de um usuário é incerta, não tem como saber exatamente o que um usuário irá digitar.

Uma variável irá armazenar dados de forma TEMPORÁRIA na memória do computador, isto quer dizer que ao fechar o programa os dados serão PERDIDOS! Para utilizá-la, basta inserir a palavra-chave var seguido do nome desta variável, dois pontos “:” e seu tipo sublinhado (inteiro, real, caractere, lógico). Ex: var idade : inteiro.

Uma observação importante é que as variáveis não precisam ser representadas em diagrama de blocos quando são criadas, mas apenas quando recebem valores.

Quando formos dar nomes às variáveis, se faz necessário seguirmos algumas regras: a) O PRIMEIRO caractere DEVE ser uma letra. (Não podem ser números)

b) Se houver MAIS de um caractere, SÓ poderemos usar letras ou números. (Não podem ser utilizados caracteres simbólicos como: -,+,!,@,#,$,&,*(,),?, etc.)

c) NENHUMA palavra reservada (ou palavra-chave) poderá ser nome de uma variável.

A seguir, é apresentada uma tabela com a lista de palavras reservadas que não podem ser utilizadas para nomes de variáveis.

(8)

Lista de palavras reservadas algoritmo arquivo ate caractere caso cronometro debug enquanto então escolha escreva escreval faca falso fimalgoritmo fimenquanto fimescolha fimfuncao fimpara fimprocedimento fimrepita fimse função inicio int inteiro interrompa leia limpatela logico mod não e ou outrocaso para passo pausa real procedimento repita retorne se senão timer var vetor verdadeiro xou 4.1 Tipo de dados

Os tipos de dados que podem ser armazenados em um computador são divididos em 4 categorias:

1 - Inteiros: correspondem aos dados numéricos positivos ou negativos que NÃO sejam fracionários. Ex: ...-3, -2, -1, 0, 1, 2, 3... A palavra-chave para seu uso é inteiro.

2 – Reais: correspondem aos dados numéricos positivos ou negativos E fracionários. Ex: ...-3.0, -2.1, -1.5, 0, 1, 2.4, 3... A palavra-chave para seu uso é real

3 – Caracteres: correspondem aos tipos de caracteres contendo letras, números e símbolos especiais. Ex: “João”, “Rua 10”, “123”, etc. É também conhecido como alfanumérico, string, literal ou cadeia. A palavra-chave é caractere.

4 – Lógicos: São os tipos de dados com valores verdadeiros e falsos, sendo possível representar apenas um dos dois valores. Ex: Falso, F e N (para valor lógico falso) e Verdadeiro, V e S (para o valor lógico verdadeiro). A palavra-chave é logico.

Problema 2: Desenvolver um programa para armazenar a idade do usuário.

Deve-se declarar uma variável com um nome fácil para saber seu significado (por exemplo: idade) e o tipo (por exemplo: inteiro). Dos 4 tipos possíveis, o inteiro é o mais adequado. Ficando da seguinte maneira: var idade : inteiro

Em portugol: algoritmo "idade" var idade: inteiro inicio fimalgoritmo

(9)

A declaração de variáveis é feita antes das palavras-chave início e fimalgoritmo. Um dos objetivos de se declarar uma variável no início do algoritmo é para que seja alocada (reservada) uma área na memória (endereço de memória) para a variável.

Uma variável pode ser vista como uma caixa com um rótulo ou nome colado a ela, que num dado instante guarda um determinado objeto. O conteúdo desta caixa não é algo fixo, permanente. Na verdade, essa caixa pode ter seu conteúdo alterado diversas vezes.

Representação de uma variável

O conteúdo deve ser sempre do mesmo tipo. Na figura acima, a caixa (que é a variável) foi rotulada como IDADE. Ela é do tipo inteiro, isto é, só é capaz de armazenar valores inteiros.

Quando se cria uma variável deve-se inicializá-la com algum valor. Geralmente é um valor nulo, mas isto vai depender do problema a ser resolvido. Para iniciar a variável usa-se o símbolo MENOR seguido de MENOS (<-). Exemplo: idade <- 0

A atribuição de valores para variável é representada no diagrama de blocos com um retângulo. O diagrama de blocos ficará assim:

0

Valor qualquer idade Nome da variável(rótulo) i n t e i r o Tipo Início Fim Diagrama de bloco idade <-0

(10)

A inicialização da variável é feita entre as palavras chaves início e fimalgoritmo, ficando da seguinte maneira:

Caso a variável não fosse inicializada com zero, ela ficaria com um valor qualquer da memória com computador, o que geralmente é chamado de lixo.

Agora que se declarou a variável, vamos conhecer o comando para receber os dados do usuário e armazená-lo na variável.

5. Entrada de dados: leia

A palavra-chave para receber dados digitados pelo usuário é leia, seguida entre parêntesis do nome da variável. O símbolo do diagrama de blocos utilizado para receber dados digitados pelo usuário é .

O novo diagrama de blocos:

No caso do Portugol, ficaria: leia(idade). Um exemplo completo: algoritmo "idade" var idade: inteiro inicio leia(idade) fimalgoritmo Início Fim Diagrama de bloco idade algoritmo "idade" var idade: inteiro inicio idade <- 0 fimalgoritmo idade <-0

(11)

Observa-se que instrução leia DEVE ficar entre o bloco início e fimalgoritmo.

Supondo que o usuário digite o valor 32 e pressione ENTER, veja como ficará a variável com o seu conteúdo:

Repare que ao executar o programa, simplesmente fica um cursor piscando, obrigando o usuário a adivinhar o que deve ser digitado. Desta maneira, é aconselhável mostrar uma mensagem solicitando ao usuário que digite sua idade, por exemplo “Digite a sua idade:”.

Agora que foi possível receber os dados digitados pelo usuário, é interessante apresentá-los na tela. Será utilizada a palavra-chave escreva seguido do nome da variável idade que foi criada. Assim, qualquer valor do tipo inteiro que o usuário digitar será apresentado.

Até agora foi possível receber os dados, armazená-los na memória e apresentá-los na tela. Não é algo muito útil. O principal mesmo é processar estes dados, o que será demonstrado no próximo tópico.

algoritmo "idade"

var

idade: inteiro inicio

escreva ("Digite sua idade:")

leia(idade) fimalgoritmo

32

Dado digitado pelo usuário

idade Nome da variável i n t e i r o Tipo algoritmo "apresenta_idade" var idade: inteiro inicio

escreva ("Digite sua idade:")

leia(idade)

escreva ("Sua idade é:")

escreva (idade) fimalgoritmo

(12)

6. Processamento

O Conceito de processamento se refere aos cálculos, testes condicionais, etc. Serão apresentados primeiramente os operadores básicos disponíveis. Os restantes serão vistos mais à frente do curso.

6.1 Operações aritméticas básicas

As operações aritméticas são as mais básicas que um programador deve saber programar. Os símbolos adotados na programação são basicamente os mesmos já conhecidos.

Operação Operador

Adição +

Subtração -

Multiplicação *

Divisão (com resultado real) /

Divisão (com resultado inteiro) div

Resto % ou mod

Exponenciação ^

6.1.1 Adição e Subtração: Observa-se através da tabela acima o uso dos operadores de soma e subtração da mesma maneira utilizados na matemática convencional.

Problema 3: Desenvolver o algoritmo, portugol e diagrama de blocos de um programa que efetue a soma de dois números.

Algoritmo:

1 – Atribuir o valor zero às variáveis valorA, valorB e resultado; 2 – Apresente a mensagem “Digite o primeiro valor”

3 – Leia o valorA

4 – Apresente a mensagem “Digite o segundo valor” 5 - Leia o valorB

6 - Efetue a soma das variáveis valorA e valorB e atribua seu resultado à variável resultado; 7 – Apresentar o valor da variável resultado.

Portugol: algoritmo "soma" var valorA: inteiro valorB: inteiro resultado: inteiro inicio valorA <- 0 valorB <- 0 resultado <- 0

escreva("Digite o primeiro valor")

leia(valorA)

escreva("Digite o segundo valor")

leia(valorB)

resultado <- valorA + valorB escreva(resultado)

fimalgoritmo

(13)

Diagrama de bloco:

Exercício: Faça uma calculadora com as 4 operações básicas de soma, subtração, multiplicação e divisão. Faça o algoritmo, diagrama de bloco e portugol.

6.1.2 Multiplicação - De acordo com a Tabela 1 apresentada, pode-se observar que na operação de multiplicação é utilizado o “*” para representá-lo, ex: 5 * 3 = 15.

6.1.3 Divisão e resto - A divisão possui dois tipos: uma que retorna um valor do tipo REAL e outra que retorna um valor do tipo INTEIRO.

Exemplos: 4 / 3 = 1,33 4 div 3 = 1 8 / 3 = 2,66 8 div 3 = 2 Início Fim Diagrama de bloco valorA<-0

“Digite o primeiro valor” valorA

resultado <- valorA + valorB

resultado

“Digite o segundo valor” valorB

valorB<-0 resultado<-0

(14)

Quando 4 é dividido por 3 utilizando o operador “/” tem-se o valor REAL 1,33. MAS quando utiliza-se 4 div 3 tem-se o valor INTEIRO 1. Quando 8 é dividido por 3 com o operador “/” tem-se o valor 2,66 e ao utilizar o “div” tem-se o valor 2. Observe que toda a parte fracionária é retirada, MAS não ocorre o arredondamento para cima.

Outra operação é chamada de RESTO e representada pelo operador “%”. É utilizado quando se deseja encontrar o resto da divisão entre dois números inteiros.

Exemplos: 4 % 2 = 0 8 % 3 = 2 7 % 4 = 3

A seguir, será apresentado um uso típico em programas dos operadores div e %.

Problema 4 - Desenvolva um programa que leia um número de duas casas e imprima os algarismos separados em cada linha.

Um número de duas casas possui o algarismo das dezenas e das unidades. Para a dezena utilizou-se operador div ao invés de “/”, isto porque não será necessária a parte fracionária. No caso das unidades utiliza-se o operador “%”, pois deseja-se apenas o resto.

Exercício: Desenvolva um programa que leia um número de 3 casas e imprima os algarismos separados em cada linha.

6.1.4 Exponenciação e radiciação - A última operação chamada de exponenciação é representada pelo operador “^”. Na matemática, representada pela base e por um expoente, Ex: 23 = 8. algoritmo "Separa_Numeros" var valorA : inteiro resultado : real inicio valorA <- 0 resultado <- 0

escreval(" Entre com um numero inteiro de 2 casas: ")

leia(valorA)

resultado <- valorA div 10

escreval("Primeira casa: ", resultado)

resultado <- valorA % 10

escreva("Segunda casa: ", resultado)

(15)

Exemplos: 2 ^ 2 = 4 2 ^ 3 = 8 4 ^ 2 = 16

Na matemática é possível utilizar a exponenciação para encontrar, por exemplo, a raiz quadrada de um número.

Exemplos:

√16 = 4 (raiz quadrada convencional)

16 ^ (1/2) = 4 (raiz quadrada com exponenciação) 3√8 = 2 (raiz cúbica)

8 ^ (1/3) (raiz cúbica com exponenciação)

Problema 5 - Desenvolva um programa que leia o valor da base e o valor do expoente e calcule a exponenciação.

Exercício: Desenvolva um programa que calcule a raiz quadrada e cúbica de um número digitado pelo usuário.

algoritmo "expoente" var base : inteiro expoente : inteiro resultado : real inicio base <- 0 expoente <- 0

escreva("Entre com o valor da base: ")

leia(base)

escreva("Entre com o valor do expoente: ")

leia(expoente)

resultado <- base ^ expoente escreva(“Resultado”, resultado) fimalgoritmo

(16)

7. Resumo

1 - Todo programa escrito em potugol é composto no mínimo pela palavra-chave algoritmo seguido do nome do algoritmo entre aspas duplas. Em seguida, tem-se a outra palavra-chave inicio e fimalgoritmo, conforme abaixo:

2 - A declaração das variáveis devem estar entre o bloco algoritmo e início 3 – Comandos para saída de dados(apresentação de textos na tela):

escreva, escreval 4 – Declaração de variáveis var idade : inteiro

5 – Comando para entrada de dados(leitura dos dados digitados pelo usuário): leia(idade)

6 – Operadores básicos: +, - , *, /, div, %, ^

8.0

Lista de Exercícios (valor: 10 pts)

8.1. Faça o algoritmo, diagrama de blocos e portugol dos exercícios abaixo(2 pts):  Um programa que calcule a média de 5 notas de um aluno.

 Um programa que calcule a área de um triângulo. (dica: fórmula para área de um triângulo é base * altura dividido por 2)

 Um programa que calcule a área de uma circunferência. (dica: fórmula para área de uma circunferência é 3,14 * raio ao quadrado.

 Um programa que efetue o cálculo do salário líquido de um professor. Dados necessários: valor da hora aula, número de horas trabalhadas no mês e percentual de desconto no INSS.

8.2. Faça um programa que receba o saldo de uma aplicação e imprima o valor aplicado e valor com rendimento de 5%(1 pt).

8.3. Entrar com um número no formato CDU(centena, dezena e unidade) e imprimir invertido: UDC. (exemplo: se entrar com o valor 123, sairá 321)(1 pt).

8.4. Faça um programa de cálculo de custo de energia de dois aparelhos de um estabelecimento comercial. O usuário entrará com o valor da potência do aparelho (em watts) e o tempo de utilização (em horas) diário de ambos os aparelhos. O programa deverá apresentar o nome do aparelho, o seu custo em reais por hora, por dia e por mês. (Obs: a CEMIG estabelece que um aparelho de 1000 watts de potência ligado por uma hora custa 0,642 reais para o estabelecimento)(1 pt).

algoritmo "basico"

inicio

(17)

8.5 Faça um programa que leia a quantidade de fitas que uma locadora de vídeo possui e o valor que ela cobra por cada aluguel, mostrando as informações pedidas a seguir(1 pt):

- sabendo que um terço das fitas são alugadas por mês, exiba o faturamento anual da locadora. - quando o cliente atrasa a entrega, é cobrada uma multa de 10% sobre o valor do aluguel. Sabendo que um décimo das fitas alugadas no mês são devolvidas com atraso, calcule o valor ganho com multas por mês.

- sabendo ainda que 2% de fitas se estragam ao longo do ano, e um décimo do total é comprado para reposição, exiba a quantidade de fitas que a locadora terá no final do ano.

8.6 Faça um programa que, dado um número de conta corrente com três dígitos, retorne o seu dígito verificador, o qual é calculado da seguinte maneira(1 pt):

Exemplo: número da conta: 235

- somar o número da conta com o seu inverso: 235 + 532 = 767

- multiplicar cada dígito pela sua ordem posicional e somar estes resultados: 7 6 7

x1 x2 x3 --- --- --- 7 + 12 + 21 = 40

- o último dígito desse resultado é o dígito verificador da conta, isto é o número zero.

8.7. Faça um resumo do capítulo 1, 2 e 3 do Livro: Algoritmos – lógica para desenvolvimento de programação de computadores.(3 pts)

Referências

Documentos relacionados

Só para tornar o exemplo ainda mais nítido: quem quer que tenha lido, além das autobiografias de Barack Obama, as investigações sobre sua vida pregressa feitas por Jerome Corsi,

Além disto, deve-se lembrar que este direito não só pode como também deve ser encarado como o mais básico dos direitos humanos, possuindo vital importância

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

Até o momento, foram identificados, a partir de seus títulos, cerca de 11 tipos diferentes de cadernetas, a saber: de Caminhamento; de Nivelamento; de Linhas Auxiliares, de

Para aprofundar a compreensão de como as mulheres empreendedoras do município de Coxixola-PB adquirem sucesso em seus negócios, aplicou-se uma metodologia de

Eletroforese em gel de agarose e representação gráfica do padrão de splicing dos transcritos de mRNA provenientes do gene repórter transfectado em células HEK 293

Será outorgado pela Fundação Getulio Vargas o certificado de “Curso de Pós-Graduação Lato Sensu, MBA Executivo Internacional com ênfase em Gestão de Comércio

A baixa taxa de desconto ao longo dos anos de produção do campo, para o cálculo da função objetivo, aliada a baixa produção de água que a locação de