• Nenhum resultado encontrado

Algoritmos. Prof. Antonio Tadeu Pellison

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos. Prof. Antonio Tadeu Pellison"

Copied!
83
0
0

Texto

(1)

Algoritmos

Prof. Antonio Tadeu Pellison tadeu@pellison.online

(2)

ALGORITMO

• Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.

(3)

ALGORITMO NÃO COMPUTACIONAL

• Abaixo é apresentado um Algoritmo não computacional cujo objetivo é usar um telefone público.

Início

Tirar o fone do gancho; Ouvir o sinal de linha; Introduzir o cartão;

Teclar o número desejado; Se der o sinal de chamar

Conversar; Desligar; Retirar o cartão; Senão Repetir; Fim.

(4)

ALGORITMO NÃO COMPUTACIONAL

EXEMPLO 1:

• Desenvolver um algoritmo não computacional de uma troca de pneu furado de um carro.

Inicio

Sinalizar o veículo;

Afrouxar ligeiramente as porcas ; Suspender o carro;

Retirar as porcas e o pneu; Colocar o pneu reserva; Apertar as porcas;

Abaixar o carro;

Dar o aperto final nas porcas; Fim.

(5)

Construindo um Algoritmo (Problema das Torres de Hanói):

• Regra: Mover os discos de uma haste para outra sem que o disco maior fique sobre o disco menor. Mover todos os discos da haste da torre A para a torre C.

(6)

Início

Mover o disco 1 para a haste C ; Mover o disco 2 para a haste B ; Mover o disco 1 para a haste B ; Mover o disco 3 para a haste C ; Mover o disco 1 para a haste A ; Mover o disco 2 para a haste C ; Mover o disco 1 para a haste C ; Fim.

(7)

Algoritmos para propósitos genéricos

• Descreva uma sequência de passos para as

seguintes atividades. Procure fazer uma versão bem simplificada (poucos passos).

1. tomar banho 2. atravessar a rua 3. fritar um ovo

(8)

Tomar Banho

Inicio

Entrar no banheiro; Tirar a roupa;

Abrir a torneira do chuveiro; Enquanto a água estiver fria

Inicio Esperar; Fim; Entrar na água; Lavar-se; Sair da água; Fechar a torneira; Enxugar-se; Vestir-se; Fim.

(9)

Atravessar a rua

Inicio

Caminhar até a faixa de pedestre; Olhar para ambos os lados;

Enquanto estiver vindo carro Inicio

Esperar;

Olhar para ambos os lados; Fim;

Atravessar a rua; Fim.

(10)

Fritar um ovo

Inicio

Pegar óleo, frigideira e ovo;

Colocar a frigideira na boca do fogão; Colocar o óleo na frigideira;

Acender a chama do fogão; Enquanto o óleo estiver frio

Inicio

Esperar; Fim;

Quebrar o ovo;

Colocar o ovo na frigideira;

Enquanto o ovo não estiver frito Inicio

Jogar óleo em cima do ovo com uma colher; Fim;

Temperar o ovo com sal; Retirar ovo da frigideira; Apagar a chama do fogão; Fim.

(11)

Início

Posicionar a escada debaixo da lâmpada queimada; Enquanto não alcançar a lâmpada

Inicio

Subir um degrau da escada; Fim;

Enquanto a lâmpada não soltar Inicio

Girar a lâmpada no sentido anti-horário; Fim;

Remover a lâmpada queimada;

Se tiver lâmpada da mesma potência Inicio

Selecionar a lâmpada;

Posicionar a nova lâmpada no soquete Enquanto a lâmpada não prender

Inicio

Girar a lâmpada no sentido horário; Fim; Descer da escada; Fim; Senão Inicio Desce da escada; Fim; Fim.

(12)

PROGRAMA

• Um programa é um Algoritmo escrito em uma linguagem computacional.

(13)

LINGUAGENS DE PROGRAMAÇÃO

• São Softwares que permitem o desenvolvimento de programas. Possuem um poder de criação ilimitado, desde jogos, editores de texto, sistemas empresariais até sistemas operacionais.

• Existem várias linguagens de programação, cada uma com suas características próprias.

• Exemplos: – Pascal – Clipper – C – Visual Basic – Java – Flash – Delphi e etc.

(14)

ALGORITMOS EM “PORTUGOL”

• Durante nosso curso iremos aprender a desenvolver nossos Algoritmos em uma

pseudo-linguagem conhecida como “Portugol” ou Português Estruturado.

• “Portugol” é derivado da aglutinação de Português + Algol. Algol é o nome de uma

linguagem de programação estruturada usada no final da década de 50.

(15)

OPERADORES ARITMÉTICOS

+ Adição

- Subtração

* Multiplicação / Divisão

(16)

OPERADORES RELACIONAIS

> Maior que < Menor que >= Maior ou Igual <= Menor ou Igual = Igual <> Diferente

(17)

LINEARIZAÇÃO DE EXPRESSÕES

• Para a construção de Algoritmos todas as expressões aritméticas devem ser

linearizadas, ou seja, colocadas em linhas. • É importante também ressalvar o uso dos

operadores correspondentes da aritmética tradicional para a computacional.

(18)

MODULARIZAÇÃO DE EXPRESSÕES

• A modularização é a divisão da expressão em partes, proporcionando maior compreensão e definindo

prioridades para resolução da mesma.

• Como pode ser observado no exemplo anterior, em expressões computacionais usamos somente

parênteses “( )” para modularização.

• Na informática podemos ter parênteses dentro de parênteses.

• Exemplos de prioridades: (2+2)/2=2

(19)

OPERADORES ESPECIAIS (MOD e DIV)

• MOD Retorna o resto da divisão entre 2 números inteiros.

• DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.

(20)

FUNÇÕES

• Uma função é um instrumento

(Sub-algoritmo) que tem como objetivo retornar um valor ou uma informação.

• A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu argumento inicial entre parênteses. • As funções podem ser predefinidas pela

linguagem ou criadas pelo programador de acordo com o seu interesse.

(21)

BIBLIOTECAS DE FUNÇÕES

• Armazenam um conjunto de funções que podem ser usadas pelos programas.

(22)

FUNÇÕES PRÉ-DEFINIDAS

- ABS( ) VALOR ABSOLUTO - SQRT( ) RAIZ QUADRADA

- SQR( ) ELEVA AO QUADRADO - TRUNC( ) VALOR TRUNCADO

- ROUND( ) VALOR ARREDONDADO - LOG( ) LOGARITMO

- SIN( ) SENO

- COS( ) COSSENO - TAN( ) TANGENTE

(23)

OPERADORES LÓGICOS

• Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro.

– E - RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS.

– OU - BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR VERDADEIRO.

– NÃO - INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA.

(24)

EXPRESSÕES LÓGICAS

• As expressões compostas de relações sempre retornam um valor lógico.

• Exemplos:

– 2+5>4 Verdadeiro – 3<>3 Falso

• De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos.

• Exemplos:

– 2+5>4 E 3<>3 Falso

– 2+5>4 OU 3<>3 Verdadeiro – NÃO(3<>3) Verdadeiro

(25)

VARIÁVEIS

• Variáveis são endereços de memória destinados a armazenar informações temporariamente.

• Todo Algoritmo ou programa deve possuir variável!

(26)

VARIÁVEIS DE ENTRADA E SAÍDA

• Variáveis de Entrada armazenam informações fornecidas por um meio externo,

normalmente usuários ou discos.

• Variáveis de Saída armazenam dados processados como resultados.

(27)

IDENTIFICADORES

• São os nomes dados a variáveis, constantes e programas. • Regras Para construção de Identificadores:

– Não podem ter nomes de palavras reservadas (comandos da linguagem);

– Devem possuir como 1º caractere uma letra ou Underscore ( _ ); – Ter como demais caracteres letras, números ou Underscore;

– Ter no máximo 127 caracteres; – Não possuir espaços em branco;

– Não utilizar caracteres especiais (*, &, #, @,....)

(28)

Assinale com X os nomes válidos:

(X) Endereço ( ) 21brasil ( ) brasil 2014 (X) NOME_FILHO ( ) NOME.FILHO ( ) NOME FILHO (X) NOME7FILHO

(29)

Assinale com X os nomes válidos:

( ) End*A-6 ( ) 2_brasil (X) brasil2014 ( ) NOME$FILHO ( ) “NOMEFILHO” ( ) #cidadE (X) NoMeUsArIo

(30)

Assinale com X os nomes válidos:

( ) Windows 10 (X) Rio_2016 ( ) _Botucatu SP ( ) linha 9 - leste ( ) “telefone 99689955” ( ) @_idade (X) Rodovia_SP_370

(31)

IDENTIFICADORES

• Exemplos: NOME TELEFONE IDADE_FILHO NOTA1 SALARIO PI

(32)

TIPOS PRIMITIVOS DE DADOS

• INTEIROADMITE SOMENTE NÚMEROS INTEIROS. GERALMENTE É UTILIZADO PARA REPRESENTAR UMA CONTAGEM (QUANTIDADE)

• REALADMITE NÚMEROS REAIS (COM OU SEM CASAS DECIMAIS). GERALMENTE É UTILIZADO PARA REPRESENTAR UMA MEDIÇÃO.

• CARACTEREADMITE CARACTERES

ALFANUMÉRICOS. OS NÚMEROS QUANDO

DECLARADOS COMO CARACTERES TORNAM SE REPRESENTATIVOS E PERDEM A ATRIBUIÇÃO DE VALOR.

• LÓGICOADMITE SOMENTE VALORES LÓGICOS(VERDADEIRO/FALSO).

(33)

INTEIRO

Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou positiva).

Exemplos: 39, 0, -56 entre outros.

a) Ele tem 15 irmãos.

b) A temperatura desta noite será de -2 graus.

REAL

Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativa, nula ou positiva, inteiro ou fracionário).

Exemplos:- 4, 3, 0, 35, 1,23

a) Ela tem 1,73 metro de altura.

(34)

CARACTERE

São caracterizadas como tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (“”). Este tipo de dado é também conhecido como alfanumérico, string, literal ou texto.

Exemplos: “Rua Alfa, 52 Apto 1”, “Fone: 574-9988”, “04387-456”, “ “, “7”.

LÓGICO

São caracterizados como tipos lógicos, os dados com valores verdadeiro e falso, sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo boleano, devido à contribuição do filósofo e

matemático inglês George Boole na área da lógica matemática.

(35)

COMANDOS DE I/O (INPUT/OUTPUT)

• LER() Comando de entrada que permite a leitura de Variáveis de Entrada.

• ESCREVER() Comando de saída que exibe uma informação na tela do monitor.

• IMPRIMIR() Comando de saída que envia uma informação para a impressora.

(36)

SINAL DE ATRIBUIÇÃO

• Uma Variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a

qualquer momento. Portanto para atribuir valores a variáveis devemos usar o sinal de “=”.

• Exemplos: A = 2; B = 3;

(37)

CORPO GERAL DE UM ALGORITMO

ALGORITMO <<identificador>>; CONST <<identificador>> = <<dado>>; VAR <<identificador>> : <<tipo>>; INICIO

COMANDOS DE ENTRADA,PROCESSAMENTO E SAÍDA <<comando1>>;

<<comandoN>>; FIM.

(38)

ESTRUTURAS SEQÜÊNCIAIS

• Como pode ser analisado no tópico anterior, todo programa possui uma estrutura

(39)

; PONTO E VÍRGULA ;

• O sinal de ponto e vírgula “;” indica a

existência de um próximo comando (passa para o próximo).

(40)

PRIMEIRO ALGORITMO

• Criar um Algoritmo para ler o nome e as 4 notas bimestrais de um aluno. Em seguida o Algoritmo calcula e escreve a média obtida.

(41)

ALGORITMO media_final; VAR

NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: REAL; NOME : CARACTERE [35];

INICIO

ESCREVER(“Digite nome do aluno: ”); LER (NOME);

ESCREVER(“Digite as quatro notas: ”); LER (NOTA1, NOTA2, NOTA3, NOTA4);

MEDIA = (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; ESCREVER(“Nome –”, NOME);

ESCREVER(“Media –”,MEDIA); FIM.

(42)

“ASPAS”

• Quando queremos exibir uma mensagem para a tela ou impressora ela deve estar contida

entre aspas, caso contrário, o computador irá identificar a mensagem como Variável

Indefinida. • Exemplo:

(43)

Questões

1) Qual a finalidade do comando de atribuição? O comando de atribuição é o comando utilizado para guardar um determinado valor em uma

variável. Ex:

TOTAL = 0;

SOMA = SOMA +1;

(44)

Questões

2) Suponha a seguinte sequência de atribuições e determine o valor final da variável W:

a) Y = 10; Z = Y + 4; W = Y; W = Z * 2; W=Y; W = _____ b) W=0; Y = 5; Z = Y – 2; W = Y + Z; W = _____ 10 8

(45)

Questões

c) Y = 5; Z = Y + 4; W = Z - 2; W = Y + 4; W= W * 2 ; W = _____ d) W=10; Y = W+5; Z = Y + 2; W = W + Z; W = _____ 18 27

(46)

Questões

e) Y = 15; X = Y + 4; X = X * 2; W = X - 2; W = X + W; W= W * 2 ; W = _____ d) W=10; Y = W+10; Y = Y + 2; W = W +Y; W = _____ 148 32

(47)

Questões

3) De acordo com o algoritmo a seguir, os valores finais das variáveis N1, N2 e N3,

respectivamente, serão: ALGORITMO valores; VAR N1, N2, N3 : INTEIRO; INICIO N1 = 1; N2 = 2 + 2 * N1; N1 = N2 +1; N3 = N2 + 2; FIM. N1 = 5 N2 = 4 N3 = 6

(48)

E1) Escreva um algoritmo que leia um

número inteiro pelo teclado e exiba o

seu sucessor.

(49)

ALGORITMO sucessor; VAR N, SUCN: INTEIRO; INICIO ESCREVER(“Digite um número”); LER(N); SUCN = N + 1;

ESCREVER(“Sucessor do número digitado =“, SUCN); FIM.

(50)

E2) Escreva um algoritmo que calcule a

área de um quadrado de lado L.

(51)

ALGORITMO areadeumquadrado; VAR

area, L : REAL; INICIO

ESCREVER(“Digite o lado do quadrado”); LER(L);

area = SQR(L);

ESCREVER(“Área calculada = ”, area); FIM.

(52)

E3) Criar um algoritmo para calcular a

média de duas variáveis A e B. Mostre

na tela o resultado obtido.

(53)

ALGORITMO mediafinal; VAR

A, B, media: REAL; INICIO

ESCREVER(“Digite valor de A”); LER(A);

ESCREVER(“Digite valor de B”); LER(B);

media = (A + B)/2;

ESCREVER(“Média de A+B =”,media); FIM.

(54)

E4) Ler dois valores para as variáveis A

e B, efetuar a troca dos valores de

forma que a variável A passe a possuir

o valor da variável B e que a variável B

passe a possuir o valor da variável A.

Apresentar os valores trocados.

(55)

ALGORITMO trocadevariaveis; VAR

A, B, C : REAL; INICIO

ESCREVER(“Digite o valor de A”); LER(A); ESCREVER(“Digite o valor de B”); LER(B); C = A; A = B; B = C;

ESCREVER(“Novo valor de A=”,A); ESCREVER(“Novo valor de B=”,B); FIM.

(56)

E5) Qual o significado de uma

atribuição? Supondo A=3 e B=4, quais

seriam os valores finais de A, B, e C na

seguinte atribuição:

(57)

O comando de atribuição é o comando

para guardar um determinado valor

em uma variável.

C = 4 + A * B

C = 4 + 3 * 4

C = 4 + 12

C = 16

(58)

{LINHAS DE COMENTÁRIO}

• Podemos inserir em um Algoritmo

comentários para aumentar a compreensão do mesmo, para isso basta que o texto fique entre Chaves “{}”.

• Exemplo:

(59)

SEGUNDO ALGORITMO

• Criar um Algoritmo para ler o raio de uma circunferência e calcular sua área.

(60)

SEGUNDO ALGORITMO

ALGORITMO area_circunferencia; CONST

PI = 3.1416; VAR

raio, AREA : REAL; INICIO

ESCREVER(“Digite o valor do raio”); LER (raio); {Entrada}

AREA = PI * SQR(raio); {Processamento} ESCREVER (“AREA =”, AREA); {Saída}

(61)

E6) A ordem das atribuições são

importantes? A=B e C=A tem o mesmo

efeito de C = A e A=B?

(62)

Sim. Supondo: A=3 e B=4 Primeira situação: A= B C= A A= 4 C= 4 Segunda Situação: C= A A= B C= 3 A= 4

(63)

E7) Aponte os erros no algoritmo

abaixo:

ALGORITMO %ntriplo; VAR

NUM, TRIPLO: INTEIRO; INICIO ESCREVER(“Digite um número”); LER(NUM); TRPLO = NUM . 3; ESCREVER(“Triplo = ” TRIPLO); FIM.

(64)

ALGORITMO %ntriplo; VAR

NUM, TRIPLO: INTEIRO; INICIO ESCREVER(“Digite um número”); LER(NUM); TRPLO = NUM . 3; ESCREVER(“Triplo = ” TRIPLO); FIM. Caractere especial Variável errada Operador errado Falta virgula

(65)

EXERCÍCIOS

1) Tendo as variáveis SALARIO, IR e SALLIQ, e

considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas.

SALARIO IR SALLIQ EXPRESSÃO V ou f

100,00 0,00 100,00 SALLIQ>=100,00 VERDADEIRO 200,00 10,00 190,00 SALLIQ<190,00 FALSO

(66)

2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.

a) (A+C) > B (F) b) B >= (A + 2) (V) c) C = (B –A) (V) d) (B + A) <= C (F) e) (C+A) > B (F)

(67)

3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas.

a) (A > C) E (C <= D) (V) b) (A+B) > 10 OU (A+B) = (C+D) (V) c) (A>=C) E (D >= C) (V)

(68)

4) Dado um número inteiro obter o último algarismo desse número.

(69)

ALGORITMO ultimoalgarismo; VAR

A, x: INTEIRO; INICIO

ESCREVER(“Digite o valor de A”); LER(A);

x = (A MOD 10);

ESCREVER(“Último algarismo= ”,x); FIM.

(70)

5) Criar um algoritmo para executar a seguinte expressão matemática:

(71)

ALGORITMO resultadoformula; VAR

A, B, x : REAL; INICIO

ESCREVER(“Digite o valor de A”); LER(A); ESCREVER(“Digite o valor de B”); LER(B); x = (A + B) * 2; ESCREVER(“Resultado X =”,x); FIM.

(72)

6) Criar um algoritmo para calcular a área de um triângulo.

2

* h

b

A =

(73)

ALGORITMO areadotriangulo; VAR A, b, h : REAL; INICIO ESCREVER(“Digite a altura:”); LER(h); ESCREVER(“Digite a base:”); LER(b); A = (b * h) / 2;

ESCREVER(“Área calculada =“,A); FIM.

(74)

7) Escreva um algoritmo para cálculo do quadrado de um número.

(75)

ALGORITMO quadradodeumnumero; VAR

A, x : REAL; INICIO

ESCREVER(“Digite o valor de A”); LER(A);

x = (A * A);

ESCREVER(“Resultado =”,x); FIM.

(76)

8) Dado um número inteiro, fornecer como

saída o próprio número, o dobro, o triplo e o quadrado desse número.

(77)

ALGORITMO numero; VAR

A, d, t, q : INTEIRO; INICIO

ESCREVER(“Digite o valor de A”); LER(A); d = 2 * A; t = 3 * A; q = A * A; ESCREVER(“Número =”,A); ESCREVER(“Número dobro=”,d); ESCREVER(“Número triplo=”,t); ESCREVER(“Número quadrado=”,q); FIM.

(78)

1. Dadas as declarações abaixo, assinale C para as corretas e E para as erradas. Corrija as erradas.

a. ( ) Ao declarar uma variável , deve-se sempre começar com um número.

b. ( ) Os tipos de dados primitivos são: Inteiro, Real, Char e Lógico.

c. ( ) Um algoritmo deve obrigatoriamente começar com INICIO e terminar

com FIM.

d. ( ) O valor definido em uma constante não pode ser alterado durante o algoritmo.

e. ( ) C + 1 = 10;

(79)

2. Escreva exatamente o que o algoritmo abaixo exibirá para o usuário INICIO INTEIRO NUMERO; NUMERO =10; NUMERO = NUMERO +10;

NUMERO = NUMERO * NUMERO; NUMERO = (NUMEROMOD13);

ESCREVER(“Resultado calculado; “,NUMERO,” reais”); FIM

(80)

3. Elabore os algoritmos propostos abaixo utilizando portugol:

a. Ler dois números e calcular a soma entre eles; b. Ler três números e calcular a média entre eles;

c. Sabendo-se que um táxi cobra 4 reais a bandeirada e 1 real por cada quilometro rodado. Ler o número de quilômetros rodados pelo passageiro, calcular e

(81)

Ler dois números e calcular a soma entre eles.

ALGORITMO somadois; VAR

A, B, soma: REAL; INICIO

ESCREVER(“Digite valor de A”); LER(A);

ESCREVER(“Digite valor de B”); LER(B);

soma = A + B;

ESCREVER(“Soma de A+B =”,soma); FIM.

(82)

Ler três números e calcular a média entre eles.

ALGORITMO mediatres; VAR

A, B, C, media : REAL; INICIO

ESCREVER(“Digite o valor de A”); LER(A); ESCREVER(“Digite o valor de B”); LER(B); ESCREVER(“Digite o valor de C”); LER(C); media = (A + B+C)/3;

ESCREVER(“Resultado media =”,media); FIM.

(83)

Sabendo-se que um táxi cobra 4 reais a bandeirada e 1 real por cada quilometro rodado. Ler o número de quilômetros rodados pelo passageiro, calcular e escrever o preço a ser pago.

ALGORITMO valorpgtaxi; VAR

Kmrodado, valorpg : REAL; INICIO

ESCREVER(“Digite o km rodado”); LER(Kmrodado);

valorpg = Kmrodado*1+4;

ESCREVER(“Valor a ser pago = ”,valorpg); FIM.

Referências

Documentos relacionados

Finalizando a entrevista, Custódio Fampa declara: “Que- ro agradecer muito ao senhor Arnaldo Pereira, por que quando fui para São Paulo, em 1992, não tinha condições de pagar

A sintaxe de chamada ou acesso à funções membro é semelhante a sintaxe de acesso aos dados membro com exceção dos parênteses que contém a lista de argumentos da função, mesmo

3.3 Ao final do formulário de inscrição, o(a) candidato(a) deverá responder a seguinte questão: ​“Por que você gostaria de participar do Grupo de Estudos Avançados ?&#34;,

MÉTODOS: Será realizado convite aos acadêmicos da Universidade Federal de Santa Catarina (UFSC) para realizarem uma avaliação mediante ao termo de Consentimento Livre

Na presença reservada, o cuidador “deixa ser” seu “objeto” e o não-cuidar converte-se em uma maneira muito sutil e eficaz de cuidado, como o da mãe que deixa seu filho

•Para proteção contra choques elétricos e outros acidentes, não imerja abase do produto, o plugue ou o cabo de alimentação na água ou outro líquido.. Nunca permita que o motor,

O quarto e último capítulo é o responsável por trazer toda a narrativa da construção da série fotográfica Crooked nature, pontuando os principais trabalhos da jornada acadêmica,

ambulatório pode ser feito nas unidades sanitárias ou nível comunitário desde que o pessoal tenha sido treinado convenientemente e seja supervisado regularmente Uma vez que