• Nenhum resultado encontrado

Professor: Wenderson Buenos Aires

N/A
N/A
Protected

Academic year: 2019

Share "Professor: Wenderson Buenos Aires"

Copied!
36
0
0

Texto

(1)

Apostila

Lógica de

(2)

Página 1 de 35

Sumário

Capítulo 1 - Lógica de Programação... 3

Conceitos Fundamentais ... 3

Variáveis ... 4

Constantes ... 5

Tipos Primitivos ... 5

Estrutura do Algoritmo ... 5

Teste de Mesa ... 6

Formas de Representação Gráfica ... 6

Lista de Exercícios ... 9

Capítulo 2 – Estruturas Sequenciais ... 11

Comandos de Atribuição ... 11

Operadores aritméticos e Funções Matemáticas ... 11

Funções para manipulação de caracteres (strings) ... 12

Palavras Reservadas ... 13

Comandos de Entrada e Saída ... 14

Operadores Relacionais e Operadores Lógicos... 14

Modelo sequencial ... 15

Lista de Exercícios ... 15

Capítulo 3 – Estruturas de Seleção ... 17

Estrutura de Seleção Simples ... 17

Estrutura de Seleção Composta ... 17

Estrutura de Múltipla Escolha ... 18

Lista de Exercícios ... 19

Capítulo 4 - Estruturas de Repetição ... 21

Conceito de Contador e Acumulador ... 21

Repetição com teste no início ... 22

Repetição com teste no fim ... 22

Repetição com variável de controle ... 23

Lista de Exercícios ... 24

Capítulo 5 – Tipos estruturados Homogêneos... 26

Vetores ... 26

Declarando um vetor ... 26

(3)

Página 2 de 35

Exemplo de Aplicação de vetor ... 26

Matrizes ... 27

Lista de Exercícios ... 28

Capítulo 6 – Sub-Rotinas ... 30

Procedimentos ... 30

Função ... 31

Lista de Exercícios ... 32

(4)

Página 3 de 35

Capítulo 1 - Lógica de Programação

Conceitos Fundamentais

A Lógica de Programação é o pensamento necessário para pessoas que desejam trabalhar com desenvolvimentos de sistemas e programas.

É a técnica de encadear pensamentos para atingir determinados objetivos, esses pensamentos podem ser descritos como uma sequência de instruções que devem ser seguidas para cumprir uma determinada tarefa.

Uma Sequência Lógica pode ser definida como passos executados até atingir um objetivo ou a solução de um problema.

Programas são conjuntos de comandos escritos em uma linguagem de computador como: (pascal, C, Visual Basic, Delphi e outros), que são interpretados e executados pelo computador e a partir deste momento o usuário pode usá-lo para o fim que foi desenvolvido. Como por exemplo: sistema de cadastro de cliente controle de contas a pagar e receber.

Para que o computador possa entender o que está sendo pedido pelo programa, ou seja, as instruções fazem-se necessário um meio de tradução entre a linguagem utilizada no programa de máquina. Esta tradução é feita pelo compilador ou interpretador.

A Instrução é um conjunto de regras ou normas definidas para a realização de uma tarefa, ou seja, é a informação que indica o computador a ação que deve ser executada.

Os Aplicativos são programas criados geralmente para facilitar o trabalho do usuário nas tarefas diárias mais comuns, para uso genérico.

Exemplo: NERO - EXCEL – WORD

Aplicativos Específicos são programas desenvolvidos, para satisfazer uma necessidade não encontrada nos softwares aplicativos existentes.

Uma linguagem de programação é uma linguagem destinada a ser usada por uma pessoa para expressar um processo através do qual um computador pode resolver um problema. As linguagens de programação podem ser de alto nível, nível intermediário e baixo nível.

Linguagem de Alto Nível

É uma linguagem que se aproxima mais da linguagem utilizada pelo ser humano. Exemplo típico é: VISUALG, Pascal, C, C++ e etc., ou seja, os compiladores.

Linguagem de Baixo Nível

(5)

Página 4 de 35 Um Ambiente de programação é um aplicativo que combina editor de texto, compilador e outras séries de recursos para se programar sobre uma determinada linguagem.

A conversão de uma linguagem de alto nível para uma linguagem de máquina é feita através de uma ferramenta, conhecida como COMPILADOR

.

O Compilador é um programa que transforma o código escrito em uma linguagem de programação, código objeto, que é escrito e uma linguagem de baixo nível como uma sequência de instruções a serem executadas por um sistema operacional.

Os Interpretadores programas que leem um código fonte de uma linguagem de programação e os convertem em código executável. Seu funcionamento pode variar de acordo com a implementação. Mas existem também linguagens que funcionam como interpretadores e compiladores como o “C”.

Podemos definir Algoritmo como uma sequência lógica finita de passos que levam a execução de uma tarefa, estas tarefas não podem ser redundantes ou subjetivas em sua definição, devem ser claras e precisas. Podemos criar algoritmos para qualquer tarefa.

Para montar um algoritmo precisamos primeiro dividir o problema apresentado em três fases fundamentais:

Onde temos:

Entrada: são dados inseridos pelo usuário

Processamento: são os procedimentos utilizados para chegar ao resultado final.

Saída: são os dados já processados, ou seja, as informações resultado final.

Variáveis

São endereços de memória destinados a armazenar informações temporariamente, um algoritmo deve possuir variáveis de entrada e de saída.

EX.: A := B + C

Obs.: De acordo com o exemplo acima a variável A receberá a soma de B e C.

(6)

Página 5 de 35 Os nomes das variáveis devem respeitar regras que cada linguagem de programação determina. Neste momento, no algoritmo faremos uso das seguintes regras:

 Os nomes de variáveis não podem ter espaço

 Nomes de variáveis podem conter letras, números e o símbolo de underline( _ )

 Obrigatoriamente devem começar com letras

Constantes

São endereços de memórias destinados a armazenar informações fixas, inalteráveis durante a execução do programa. As mesmas regras de nome de variável devem ser aplicadas aos nomes de constantes.

EX.: PI := 3,1416

Tipos Primitivos

Caracter = Textos Caracteres alfanuméricos

Inteiro = Números naturais, geralmente usados para contagem e ou quantidade.

Real = conjunto dos números reais, com ou sem casas decimais, geralmente usados para medição.

Lógico = Admite somente valores (verdadeiro ou falso).

No algoritmo há uma sessão para declaração das variáveis que serão utilizadas no programa. No algoritmo sempre mencionaremos as variáveis no início do programa numa sessão chamada var, como visto a seguir:

Var

Nome, endereco: caracter; Idade, cpf: inteiro:

Salario: real;

Status_ativo: logico;

Estrutura do Algoritmo

Os algoritmos são construídos em uma linguagem chamada pseudocódigo seguindo uma estrutura básica para qualquer linguagem de programação. Não existe uma forma específica de como deve ser o algoritmo, eles são independentes das linguagens de programação.

Nota: Pseudocódigo significa que o algoritmo está sendo desenvolvido em uma linguagem que não é uma linguagem de programação. Nesta apostila usaremos o pseudocódigo denominado PORTUGOL

(7)

Página 6 de 35 então estará gerando um código em pascal, por isso os algoritmos são independentes das linguagens.

Portugol: Português estruturado, e sua equivalência em fluxograma. É importante lembrar que portugol não é uma linguagem de programação, serve somente para auxiliar o programador a montar a estrutura de seu programa.

Programa <Nome do Programa> <definições>

Inicio

<comandos> Fim

Teste de Mesa

O teste de mesa nada mais é do que seguir as instruções do algoritmo de maneira precisa para verificar se há erros em sua estrutura, independente da linguagem que será implementada.

Exemplo: Algoritmo do cálculo de Média, considerando a nota da prova 1 como 70 e da prova 2 como 90.

Receba a nota da prova 1 Receba a nota da prova 2

Some as notas e divida o resultado por 2 Exiba o resultado da divisão.

Prova 1 Prova 2 Média

70 90 80

Formas de Representação Gráfica

Os algoritmos podem ser representados por um conjunto de símbolos padronizados para facilitar a compreensão do código chamado Fluxograma que tem como finalidade descrever o fluxo das informações. Veremos aqui apenas os símbolos mais usados.

 Terminal: símbolo usado para indicar o início ou fim de um algoritmo.

 Seta de Fluxo de Dados: indica o sentido do fluxo do dado.

(8)

Página 7 de 35

 Processamento: manipulação de dados.

 Decisão: indica a decisão que deve ser tomada, mostrando a possibilidade de desvios para outros pontos do fluxo dependendo do resultado da comparação.

 Saídas de Dados em Impressora: é usado pra representar os dados que serão impressos.

 Saídas de Dados em Vídeos: é usado pra representar os dados que serão exibidos em vídeos.

 Conector: é usado quando é preciso dividir o fluxograma.

 Conector: é usado para identificar conexo do fluxo em outra página.

(9)

Página 8 de 35

 Sub-Rotina: Representa um trecho de instrução que está fora do programa principal.

 Outros Símbolos:

Há outros símbolos que são utilizados em outras áreas, mas também podem ser utilizados pela área de processamento de dados.

 Modificações de Programas: indica a existência de uma instrução ou de um grupo de instruções que irão modificar o programa.

• Teclado: são informações recebidas ou fornecidas.

• Disco Magnético: memória de massa para armazenamento magnético de dados.

• Tambor Magnético: memória de massa para armazenamento magnético de dados.

• Fita Magnética: memória de massa para armazenamento magnético de dados.

(10)

Página 9 de 35 Veja o exemplo de um algoritmo para a verificação da aprovação ou reprovação de um aluno:

Nesse fluxograma o algoritmo inicia e o usuário entra com as notas da primeira da segunda prova. O compilador processa o cálculo da média das duas notas e verifica a decisão a ser tomada. Se a média for menor que 70 a condição é falsa então é exibido na tela “Reprovado”, se a condição for maior ou igual a 70, é verdadeira, nesse caso é exibido “Aprovado”.

Lista de Exercícios

1) Marque se o nome das variáveis abaixo são válidos ou inválidos e justifique os inválidos: a. NOME1

b. 1NOME

c. NOME COMPLETO d. NOME_COMPLETO e. IDADE@1

2) Determine o tipo de dado mais adequado para os casos abaixo: a. Quantidade em estoque de um produto

b. Número de filhos c. Endereço comercial d. Altura de uma pessoa e. Nome de uma pessoa f. Peso de uma pessoa

g. Disponibilidade para viagens Início

Obter Nota 1 e Nota2

Média=

(Nota1+Nota2) / 2

Média > =70

Reprovado

Fim

(11)

Página 10 de 35 3) Faça o teste de mesa do seguinte algoritmo: Um programa que tem como dados de

entrada o nome e o salario, e que some a esse salário R$ 500 de bônus caso ganhe até R$ 1000. O programa ao final deve informar o salário já alterado.

(12)

Página 11 de 35

Capítulo 2

Estruturas Sequenciais

Comandos de Atribuição

Os símbolos utilizados para representar uma atribuição de um valor a uma variável são (:=) ou (<-).

Ex.: nome:=”Roberto” ou idade<-20

Operadores aritméticos e Funções Matemáticas

Os operadores aritméticos a serem utilizados em algoritmos assemelham-se aos utilizados na Matemática, conforme podemos ver na tabela abaixo:

Operação Símbolo

Adição +

Subtração -

Multiplicação *

Divisão /

Resto da Divisão MOD Quociente da

Divisão DIV

As funções matemáticas, algébricas e trigonométricas proporcionam solucionar rapidamente cálculos matemáticos mais complexos.

Abs( expressão) Retorna o valor absoluto de uma expressão do tipo inteiro ou real. Equivale a | expressão | na álgebra.

ArcCos( expressão) Retorna o ângulo (em radianos) cujo cosseno é representado por expressão.

ArcSen( expressão) Retorna o ângulo (em radianos) cujo seno é representado por expressão.

ArcTan( expressão) Retorna o ângulo (em radianos) cuja tangente é representada por expressão.

Cos( expressão) Retorna o cosseno do ângulo (em radianos) representado por expressão.

CoTan( expressão) Retorna a cotangente do ângulo (em radianos) representado por expressão.

(13)

Página 12 de 35 GraupRad(

expressão)

Retorna o valor em radianos correspondente ao valor em graus representado por expressão.

Int( expressão) Retorna a parte inteira do valor representado por expressão. Log( expressão) Retorna o logaritmo na base 10 do valor representado por

expressão.

LogN( expressão) Retorna o logaritmo neperiano (base e) do valor representado por expressão.

PI Retorna o valor 3.141592.

Quad( expressão) Retorna quadrado do valor representado por expressão. RadpGrau(

expressão)

Retorna o valor em graus correspondente ao valor em radianos representado por expressão.

RaizQ( expressão) Retorna a raiz quadrada do valor representado por expressão.

Rand Retorna um número real gerado aleatoriamente, maior ou igual a zero e menor que um.

RandI( limite) Retorna um número inteiro gerado aleatoriamente, maior ou igual a zero e menor que limite.

Sen( expressão) Retorna o seno do ângulo (em radianos) representado por expressão.

Tan( expressão) Retorna a tangente do ângulo (em radianos) representado por expressão.

OBS.: Essas funções referem-se ao programa que iremos usar VISUALG

Os valores que estão entre parênteses, representados pelas palavras como expressão, base e expoente, são os parâmetros, ou como dizem alguns autores, os argumentos que passamos à função para que realize seus cálculos e retorne outro, que usaremos no programa. Algumas funções, como PI e Rand, não precisam de parâmetros, mas a maioria tem um ou mais. O valor dos parâmetros naturalmente altera o valor retornado pela função.

Funções para manipulação de caracteres (strings)

Asc (s : caractere) : Retorna um inteiro com o código ASCII do primeiro caractere da expressão.

Carac (c : inteiro) : Retorna o caractere cujo código ASCII corresponde à expressão.

Caracpnum (c : caractere) : Retorna o inteiro ou real representado pela expressão.

Compr (c : caractere) : Retorna um inteiro contendo o comprimento (quantidade de caracteres) da expressão.

Copia (c : caractere ; p, n : inteiro) : Retorna um valor do tipo caractere contendo uma cópia parcial da expressão, a partir do caractere p, contendo n caracteres. Os caracteres são numerados da esquerda para a direita, começando de 1.

Maiusc (c : caractere) : Retorna um valor caractere contendo a expressão em maiúsculas.

(14)

Página 13 de 35

Numpcarac (n : inteiro ou real) : Retorna um valor caractere contendo a representação de n como uma cadeia de caracteres.

Pos (subc, c : caractere) : Retorna um inteiro que indica a posição em que a cadeia subc se encontra em c, ou zero se subc não estiver contida em c.

As funções abaixo são funções de âmbito geral que encontraremos em outras linguagens de programação como em Pascal.

ABS() VALOR ABSOLUTO SQRT() RAIZ QUADRADA SQR() ELEVA AO QUADRADO TRUNC() VALOR TRUNCADO ROUND() VALOR ARREDONDADO

LOG() LOGARÍTIMO

SIN() SENO

COS() COSSENO

TAN() TANGENTE

Palavras Reservadas

As palavras reservadas são aquelas que não podem ser utilizadas como variável ou constante em função de serem reconhecidas pelo compilador como próprias da linguagem.

Cada linguagem de programação tem sua biblioteca de palavras chaves e geralmente são compostas pelo nome usado nas estruturas e pelas funções próprias do programa.

aleatorio e grauprad passo nao raizq abs eco inicio pausa numerico rand algoritmo enquanto int pi timer

arccos entao interrompa pos logico arcsen Escolha leia procedimento logn arctan escreva caractere fimalgoritmo quad arquivo exp caso fimenquanto repita asc faca compr fimescolha radpgrau ate falso copia fimfuncao sen cos fimpara maiusc literal senao cotan fimprocedimento minusc log verdadeiro

cronometro fimrepita numpcarac randi tan

debug fimse ou mensagem outrocaso

(15)

Página 14 de 35

Comandos de Entrada e Saída

Os comandos de entrada ou saída de um programa permitem a interação do usuário com o programa e vice-versa.

Para realizarmos a leitura de um dado usamos o seguinte comando:

leia(IDADE)

Após executado este comando um prompt é lançado na tela do usuário e após o mesmo digitar um valor e finalizar com <enter> o dado digitado será armazenado em uma variável chamada IDADE.

Podemos imprimir uma mensagem na tela do usuário através do seguinte comando:

escreva(“DIGITE SUA IDADE:”) Exemplo de trecho de código:

Escreva(“Digite seu nome:”)

Leia(NOME)

Escreva(“O nome digitado foi:”, NOME)

Na primeira linha será lançada a mensagem Digite seu nome: na tela do usuário;

Na segunda linha um cursor ficará piscando na tela do usuário aguardando o usuário digitar um dado, após digitado o dado este será armazenado na variável NOME;

Na terceira linha será lançada na tela uma mensagem O nome digitado é: e em seguida será apresentado o dado digitado no comando anterior.

Operadores Relacionais e Operadores Lógicos

Os operadores relacionais permitem realizar comparação entre valores de variáveis e constantes.

Operação Símbolo

Maior que >

Menor que <

Maior ou Igual a <=

Menor ou Igual a <=

Igual =

(16)

Página 15 de 35 Os operadores lógicos permitem unir duas ou mais expressões relacionais gerando um relatório verdade ou falso.

Operação Símbolo

E proposições forem verdadeiras Retorna verdadeiro se todas as

OU Retorna verdadeiro se pelo menos uma das proposições forem verdadeiras

NÃO Inverte o resultado da proposição

Modelo sequencial

É um código estruturado produzido por programadores, possuindo instruções que seguem uma sequência de processamento, executando toda a sequência de comandos e retorna uma informação processada, ou seja, uma resposta esperada.

Programa “Média”

n1,n2: inteiro M: Real

Inicio

Escreva (“Digite o 1º número”)

Leia (n1)

Escreva (“Digite o 2º número”)

Leia (n2) M:= (n1+n2)/2;

Escreva (“A média é: ”, M)

FimAlgoritmo

Lista de Exercícios

1. Faça um Programa que mostre a mensagem "Alo mundo" na tela.

2. Faça um Programa que peça um número e então mostre a mensagem O número informado foi [número].

3. Faça um Programa que peça dois números e imprima a soma.

4. Faça um Programa que peça as 4 notas bimestrais e mostre a média. 5. Faça um Programa que converta metros para centímetros.

(17)

Página 16 de 35 7. Faça um Programa que calcule a área de um quadrado, em seguida mostre o dobro desta

área para o usuário.

8. Faça um Programa que pergunte quanto você ganha por hora e o número de horas trabalhadas no mês. Calcule e mostre o total do seu salário no referido mês.

9. Faça um Programa que peça a temperatura em graus Farenheit, transforme e mostre a temperatura em graus Celsius.

o C = (5 * (F-32) / 9).

10.Faça um Programa que peça a temperatura em graus Celsius, transforme e mostre em graus Farenheit.

11.Faça um Programa que peça 2 números inteiros e um número real. Calcule e mostre:

 o produto do dobro do primeiro com metade do segundo .

 a soma do triplo do primeiro com o terceiro.

 o terceiro elevado ao cubo.

12.Tendo como dados de entrada a altura de uma pessoa, construa um algoritmo que calcule seu peso ideal, usando a seguinte fórmula: (72.7*altura) - 58

13.Faça um Programa que pergunte quanto você ganha por hora e o número de horas trabalhadas no mês. Calcule e mostre o total do seu salário no referido mês, sabendo-se que são descontados 11% para o Imposto de Renda, 8% para o INSS e 5% para o sindicato, faça um programa que calcule os descontos e o salário líquido, conforme a tabela abaixo:

 + Salário Bruto : R$

 - IR (11%) : R$

 - INSS (8%) : R$

 - Sindicato ( 5%) : R$

 = Salário Liquido : R$

 Obs.: Salário Bruto - Descontos = Salário Líquido.

14.Faça um programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 3 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00. Informe ao usuário a quantidades de latas de tinta a serem compradas e o preço total. 15.Faça um programa que peça o tamanho de um arquivo para download (em MB) e a

(18)

Página 17 de 35

Capítulo 3

Estruturas de Seleção

Toda linguagem de programação possui instruções que controlam o fluxo de execução de um programa. As estruturas de seleção são inseridas em um código com o objetivo de direcionar o fluxo de execução fazendo com que algumas linhas de código só sejam executadas caso necessário. Estas estruturas permitem que um código seja executado um número determinado de vezes ou quando obedecem a condições lógicas.

Para desenvolver programas eficientes é necessário na maioria das vezes, tomar decisões durante a execução do algoritmo, como por exemplo, se será exibido para o usuário se o aluno foi aprovado ou reprovado, de acordo com os dados informados. Estas decisões interferem diretamente no andamento do programa, e é através delas que resolvemos os problemas propostos.

Estrutura de Seleção Simples

Os comandos de decisão, ou desvio, são técnicas de programação que conduzem estruturas de programas que não são totalmente sequenciais. As estruturas de decisão determinam se um bloco de ações será ou não executado de acordo com as decisões tomadas por condições lógicas ou relacionais

Ex.: Estrutura de decisão Simples SE, com apenas 2 alternativas (Aprovado ou Reprovado)

Programa “Média”

n1,n2: inteiro M: real

Inicio

Escreva (“Digite o 1º número”)

Leia (n1)

Escreva (“Digite o 2º número”)

Leia (n2) M:= (n1+n2)/2 Se (M >=70) entao

Escreva (M, “Aprovado”)

Senão

Escreva (M, “Reprovado”)

FimSe FimAlgoritmo

Estrutura de Seleção Composta

(19)

Página 18 de 35

Programa “Média”

n1,n2: inteiro M: real

Inicio

Escreva (“Digite o 1º número”)

Leia (n1)

Escreva (“Digite o 2º número”)

Leia (n2) M:= (n1+n2)/2 Se (M >=70) entao

Escreva (M, “Aprovado”)

Senão

Se (M <=40) entao

Escreva (M, “Reprovado”)

Senão

Escreva (M, “Em recuperação”)

FimSe fimSe FimAlgoritmo

Estrutura de Múltipla Escolha

A estrutura de decisão caso é utilizada para testar, na condição uma única expressão. Compara-se então o resultado obtido no teste com valores fornecidos em cada cláusula CASO e executa somente os comandos do caso, cujo valor é igual ao declarado.

Ex.: Estrutura Composta, com várias alternativas. Programa Idades

Programa “ times”

time: caracter inicio

escreva ("Entre com o nome de um time de futebol: ") leia (time)

escolha time

caso "Flamengo", "Fluminense", "Vasco", "Botafogo" escreval ("É um time carioca.")

caso "São Paulo", "Palmeiras", "Santos", "Corínthians" escreval ("É um time paulista.")

outrocaso

escreval ("É de outro estado.") fimescolha

(20)

Página 19 de 35

Lista de Exercícios

1. Faça um Programa que peça dois números e imprima o maior deles.

2. Faça um Programa que peça um valor e mostre na tela se o valor é positivo ou negativo. 3. Faça um Programa que verifique se uma letra digitada é "F" ou "M". Conforme a letra escrever: F - Feminino, M - Masculino, Sexo Inválido.

4. Faça um Programa que verifique se uma letra digitada é vogal ou consoante.

5. Faça um programa para a leitura de duas notas parciais de um aluno. O programa deve calcular a média alcançada por aluno e apresentar:

 A mensagem "Aprovado", se a média alcançada for maior ou igual a sete;

 A mensagem "Reprovado", se a média for menor do que sete;

 A mensagem "Aprovado com Distinção", se a média for igual a dez. 6. Faça um Programa que leia três números e mostre o maior deles.

7. Faça um Programa que leia três números e mostre o maior e o menor deles.

8. Faça um programa que pergunte o preço de três produtos e informe qual produto você deve comprar, sabendo que a decisão é sempre pelo mais barato.

9. Faça um Programa que leia três números e mostre-os em ordem decrescente.

10. Faça um Programa que pergunte em que turno você estuda. Peça para digitar M-matutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.

11. As Organizações Tabajara resolveram dar um aumento de salário aos seus colaboradores e lhe contrataram para desenvolver o programa que calculará os reajustes. Faça um programa que recebe o salário de um colaborador e o reajuste segundo o seguinte critério, baseado no salário atual:

 salários até R$ 280,00 (incluindo) : aumento de 20%

 salários entre R$ 280,00 e R$ 700,00 : aumento de 15%

 salários entre R$ 700,00 e R$ 1500,00 : aumento de 10%

 salários de R$ 1500,00 em diante : aumento de 5% Após o aumento ser realizado, informe na tela:

 o salário antes do reajuste;

 o percentual de aumento aplicado;

 o valor do aumento;

 o novo salário, após o aumento.

12. Faça um programa para o cálculo de uma folha de pagamento, sabendo que os descontos são do Imposto de Renda, que depende do salário bruto (conforme tabela abaixo) e 3% para o Sindicato e que o FGTS corresponde a 11% do Salário Bruto, mas não é descontado (é a empresa que deposita). O Salário Líquido corresponde ao Salário Bruto menos os descontos. O programa deverá pedir ao usuário o valor da sua hora e a quantidade de horas trabalhadas no mês.

(21)

Página 20 de 35

 Salário Bruto até 900 (inclusive) - isento

 Salário Bruto até 1500 (inclusive) - desconto de 5%

 Salário Bruto até 2500 (inclusive) - desconto de 10%

 Salário Bruto acima de 2500 - desconto de 20%

Imprima na tela as informações, dispostas conforme o exemplo abaixo. No exemplo o valor da hora é 5 e a quantidade de hora é 220.

 Salário Bruto: (5 * 220) : R$ 1100,00

 (-) IR (5%) : R$ 55,00

 (-) INSS (10%) : R$ 110,00

 FGTS (11%) : R$ 121,00

 Total de descontos : R$ 165,00

 Salário Liquido : R$ 935,00

13. Faça um Programa que leia um número e exiba o dia correspondente da semana. (1-Domingo, 2- Segunda, etc.), se digitar outro valor deve aparecer valor inválido.

14. Faça um programa que lê as duas notas parciais obtidas por um aluno numa disciplina ao longo de um semestre, e calcule a sua média. A atribuição de conceitos obedece à tabela abaixo:

Média de Aproveitamento Conceito Entre 9.0 e 10.0 A

Entre 7.5 e 9.0 B Entre 6.0 e 7.5 C Entre 4.0 e 6.0 D Entre 4.0 e zero E

O algoritmo deve mostrar na tela as notas, a média, o conceito correspondente e a mensagem “APROVADO” se o conceito for A, B ou C ou “REPROVADO” se o conceito for D ou E.

15. Faça um Programa que peça os 3 lados de um triângulo. O programa deverá informar se os valores podem ser um triângulo. Indique, caso os lados formem um triângulo, se o mesmo é: equilátero, isósceles ou escaleno.

Dicas:

 Três lados formam um triângulo quando a soma de quaisquer dois lados for maior que o terceiro;

 Triângulo Equilátero: três lados iguais;

 Triângulo Isósceles: quaisquer dois lados iguais;

(22)

Página 21 de 35

Capítulo 4 - Estruturas de Repetição

Durante o desenvolvimento de um programa muitas vezes encontramos situações, onde é necessário repetir um trecho do código várias vezes, como por exemplo, quando temos que calcular a média aritmética das notas dos alunos de uma escola. Se fossemos utilizar a estrutura

Se,

teríamos que escrever um trecho de cálculo para cada aluno da escola. Para resolver situações como esta, utilizaremos os comandos de repetição que possibilitam que um trecho do código, seja repetido por quantas vezes forem necessárias.

Os comandos de repetição também conhecidos por loops ou looping, que significa laçadas, voltas. São utilizados quando desejamos que um determinado conjunto de instruções sejam executadas um número determinado ou indeterminado de vezes, ou enquanto um determinado estado de coisa prevalecer ou até que seja alcançado.

Temos:

o Enquanto Faca o Repita ate que o Para de até faca

Nota: A principal vantagem desses comandos é que possibilitam a redução das linhas e a melhora do desempenho.

Conceito de Contador e Acumulador

Antes de detalharmos as estruturas de repetição vale conhecer os recursos de contador e acumulador que são muito úteis para serem aplicados em conjunto com essas estruturas. Para determinados controles e cálculos faz-se necessário contar quantas vezes um laço é executado ou até mesmo acumular um valor de determinada variável conforme nos exemplos abaixo.

O contador pode ser feito com o uso de uma variável do tipo inteiro para contar quantas vezes o laço é executado, como por exemplo de quantos alunos calculou-se as médias, ou quantos alunos são do sexo masculino e do sexo feminino, entre outras funcionalidades.

Para tanto basta incrementar como no exemplo abaixo:

Cont:= cont+1

Desta forma a cada loop é somado o valor de 1, contando dessa forma toda vez que passar por ali.

O acumulador é um conceito que permite somar dentro de uma variável a cada loop. Pode ser usado para somar o total de uma venda, o total de salários pagos ou até mesmo em conjunto com o contador pra descobrir a média geral da turma.

Para acumular o comando deve ser usado da seguinte forma:

(23)

Página 22 de 35 Neste exemplo a variável acumula está recebendo a cada loop o acréscimo de mais um preço.

Repetição com teste no início

A estrutura de repetição ENQUANTO é usada para permitir que um trecho do código possa ser executado diversas vezes dependendo do resultado de um teste lógico.

Nesta estrutura de repetição ENQUANTO, o teste lógico é feito no início do bloco de instruções, ou seja, a verificação da condição é feita antes da execução dos comandos. As instruções apenas serão executadas se a condição for verdadeira, nesta estrutura existe um retorno à condição após a execução dos comandos, e o processo se repete até que a condição seja falsa, em caso de condição falsa são executados os comandos posteriores a essa estrutura, ou seja, depois do fimEnquanto.

Programa “Salário”

Sal, res: inteiro Inicio

sal:=1

Enquanto sal >= 1 faca

escreval ("digite o seu salário") leia (sal)

res := sal * 10

escreval ("Seu salário é: ", res) fimEnquanto

Escreval(“Programa Finalizado”)

FimAlgoritmo

Repetição com teste no fim

Nesta estrutura de repetição, o teste lógico é feito no final do bloco de instruções, devido a isso os comandos dessa estrutura são executados pelo menos uma vez, já que o teste é realizado após a execução dos comandos.

Observe que o funcionamento do Repita é o contrário do Enquanto, já que irá processar o bloco de instruções pelo menos uma vez até que a condição seja verdadeira, ou seja, mantém a repetição dos comandos enquanto a condição for falsa e abandona quando for verdadeira. Já a estrutura enquanto abandona quando for falsa.

Programa “repetição”

n1,n2: inteiro media: real

resposta: caracter Inicio

(24)

Página 23 de 35

Escreval (“Digite o 1º número”)

Leia(n1)

Escreval (“Digite o 2º número”)

Leia(n2)

Media:= (n1+n2)/2 Escreval (media)

Escreval(“ Você deseja continuar? SIM ou Não”)

Leia (resposta)

Ate que (resposta = “Não”)

FimAlgoritmo

Repetição com variável de controle

A estrutura PARA é utilizada somente quando já se sabe a quantidade de vezes que a execução de um bloco de comandos deve ser repetida, pois não verifica uma condição mais sim uma determinada variável, chamada de contador. Assim, quando é conhecido o número de vezes que uma determinada sequência de instruções deverá ser executada utiliza-se a estrutura PARA. Nesta estrutura a variável de controle recebe o valor inicial e verifica se o valor da variável ultrapassa o valor final. Se não ultrapassa, o bloco de comandos que está dentro da estrutura para será executado e a seguir a variável de controle será incrementada de mais 1, - ou outro valor determinado pelo programador - e faz uma nova verificação, se o valor não ultrapassar o valor final o bloco de comandos será executado novamente, caso contrário será executado o comando depois do FimPara.

Um aspecto importante a ser lembrado sobre essa estrutura de repetição é que ela sempre será executada pelo menos uma vez, pois a variável de controle receberá o valor inicial como primeiro valor estando então dentro da faixa de valores que permitem a execução do programa.

Programa “Números”

n: inteiro Inicio

n:= 1

Para n de 1 ate 10 faca Escreval (n)

(25)

Página 24 de 35

Lista de Exercícios

1. Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.

2. Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações. 3. Faça um programa que leia e valide as seguintes informações:

a. Nome: maior que 3 caracteres; b. Idade: entre 0 e 150;

c. Salário: maior que zero; d. Sexo: 'f' ou 'm';

e. Estado Civil: 's', 'c', 'v', 'd';

4. Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.

5. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação.

6. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro.

7. Faça um programa que leia 5 números e informe o maior número.

8. Faça um programa que leia 5 números e informe a soma e a média dos números. 9. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.

10.Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.

11.Altere o programa anterior para mostrar no final a soma dos números.

12.Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:

(26)

Página 25 de 35 o 5 X 2 = 10

o ...

o 5 X 10 = 50

13.Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem. 14.Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de

números pares e a quantidade de números impares.

15.A série de Fibonacci é formada pela seqüência 1,1,2,3,5,8,13,21,34,55,... Faça um programa capaz de gerar a série até o n−ésimo termo.

16.A série de Fibonacci é formada pela seqüência 0,1,1,2,3,5,8,13,21,34,55,... Faça um programa que gere a série até que o valor seja maior que 500.

17.Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120

18.Faça um programa que, dado um conjunto de N números, determine o menor valor, o maior valor e a soma dos valores.

19.Altere o programa anterior para que ele aceite apenas números entre 0 e 1000.

(27)

Página 26 de 35

Capítulo 5

Tipos estruturados Homogêneos

Vetores

Há situações em que precisaremos trabalhar com muitas variáveis de mesmo tipo, como Por exemplo, um cadastro de nomes. Para facilitar o nosso trabalho, podemos utilizar as estruturas de dados homogêneas, também chamada de vetores.

VETORES são conjuntos de informações que têm mesmo tipo de dados, e cada uma dessas informações pode ser acessada através do seu índice. Um vetor pode armazenar vários dados em sua estrutura, e com isso pode manipular um maior número de informações de forma mais rápida.

ÍNDICEé a posição do vetor onde se encontram os dados alocados, sendo incrementado de um em um, os valores do vetor devem ser sempre constantes inteiros e positivos, onde o valor inicial deve ser sempre menor que o valor final.

Declarando um vetor

Para declararmos um vetor devemos determinar o seu nome, tamanho e tipo conforme podemos observar no exemplo abaixo:

var

nome : vetor[1..5] de caracter

Neste exemplo temos um vetor chamado nome com 5 posições que receberá dados do tipo caracter.

Estrutura de um vetor

Na tabela abaixo representamos um vetor de 5 posições, onde o número acima é o ÍNDICE e na segunda linha o dado armazenado.

Exemplo de Aplicação de vetor

Programa “Vetor Nomes”

Var

Nome: vetor[1..5] de caracter I: inteiro

Inicio

Para n de 1 ate 5 faca

Escreval (“Entre com 5 Nomes”)

Leia(nome[i])

1 2 3 4 5

(28)

Página 27 de 35

FimPara

Para n de 1 ate 5 faca escreval(nome[i]) FimPara

FimAlgoritmo

Matrizes

Matrizes são variáveis compostas multidimensionais, ou seja, possuem várias linhas e colunas, diferentes do vetor que possuem apenas uma linha e várias colunas. Os elementos da matriz são representados por dois índices o 1º número indica linha e o 2º número indica a coluna. O processo de leitura e escrita de dados de uma matriz é parecido com o processo do vetor. Cada elemento é lido e exibido um por vez com o auxílio de uma estrutura de repetição

Por exemplo: Para representar o elemento Phelype da matriz nome devemos utilizar a notação:

M(2,1)

Veja uma representação de Matriz de 2 colunas e 2 linhas.

Nota: O número de elementos da matriz é igual ao produto dos números de suas dimensões.

Programa “Vetor Nomes”

Var

Nome: vetor[1..2,1..2] de caracter i,j: inteiro

Inicio

para i de 1 ate 2 faca para j de 1 ate 2 faca

escreval("Digite um nome") leia(mat[i,j])

fimpara fimpara

para i de 1 ate 2 faca para j de 1 ate 2 faca

escreva(mat[i,j])

1 2

(29)

Página 28 de 35

se (j=2) entao escreval("") fimse

fimpara fimpara FimAlgoritmo

Lista de Exercícios

1. Faça um Programa que leia um vetor de 5 números inteiros e mostre-os.

2. Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem inversa. 3. Faça um Programa que leia 4 notas, mostre as notas e a média na tela.

4. Faça um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.

5. Faça um Programa que leia 20 números inteiros e armazene-os num vetor. Armazene os números pares no vetor PAR e os números IMPARES no vetor impar. Imprima os três vetores.

6. Faça um Programa que peça as quatro notas de 10 alunos, calcule e armazene num vetor a média de cada aluno, imprima o número de alunos com média maior ou igual a 7.0.

7. Faça um Programa que leia um vetor de 5 números inteiros, mostre a soma, a multiplicação e os números.

8. Faça um Programa que peça a idade e a altura de 5 pessoas, armazene cada informação no seu respectivo vetor. Imprima a idade e a altura na ordem inversa a ordem lida.

9. Faça um Programa que leia um vetor A com 10 números inteiros, calcule e mostre a soma dos quadrados dos elementos do vetor.

10.Faça um Programa que leia dois vetores com 10 elementos cada. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.

11.Altere o programa anterior, intercalando 3 vetores de 10 elementos cada.

12.Foram anotadas as idades e alturas de 30 alunos. Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses alunos. 13.Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em

uma lista. Após isto, calcule a média anual das temperaturas e mostre todas as

(30)

Página 29 de 35 14.Utilizando listas faça um programa que faça 5 perguntas para uma pessoa sobre um crime.

As perguntas são:

a. "Telefonou para a vítima?" b. "Esteve no local do crime?" c. "Mora perto da vítima?" d. "Devia para a vítima?"

e. "Já trabalhou com a vítima?" O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cúmplice" e 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".

15.Faça um programa que leia um número indeterminado de valores, correspondentes a notas, encerrando a entrada de dados quando for informado um valor igual a -1 (que não deve ser armazenado). Após esta entrada de dados, faça:

a. Mostre a quantidade de valores que foram lidos;

b. Exiba todos os valores na ordem em que foram informados, um ao lado do outro; c. Exiba todos os valores na ordem inversa à que foram informados, um abaixo do

outro;

d. Calcule e mostre a soma dos valores; e. Calcule e mostre a média dos valores;

f. Calcule e mostre a quantidade de valores acima da média calculada; g. Calcule e mostre a quantidade de valores abaixo de sete;

(31)

Página 30 de 35

Capítulo 6

Sub-Rotinas

As sub-rotinas que também são conhecidas como módulos subprogramas ou subalgoritmos, é uma fragmentação do programa principal que resolve uma parte pequena do problema tratado pelo algoritmo. Quando o programa é muito complexo, o seu desenvolvimento é feito em unidades menores que se relacionam. Cada sub-rotina funciona como um programa, podendo realizar todas as funções computacionais vistas até agora.

A utilização de sub-rotinas no desenvolvimento de um programa divide a complexidade do problema tratado, e com isso a sua resolução fica mais simples, já que a análise é feita em pequenas partes do problema, facilitando a compreensão do todo. No entanto, trabalhar com sub-rotinas requer muita atenção com relação à divisão do programa para garantir a coerência entre as partes.

Este método faz com que o programa tenha uma estrutura parecida com um organograma, onde existe um programa principal no topo, que deverá controlar todas as tarefas divididas em sub-rotinas. Cada sub-rotina pode ser dividida novamente de modo a obter um programa menor e mais fácil de ser entendido e manipulado. Essa técnica de dividir as sub-rotinas em unidades mais simples é que chamamos de refinamento sucessivo.

As sub-rotinas são trechos de algoritmos que efetuam um ou mais cálculos determinados. Ao invés de escrever-se um algoritmo grande, escrevem-se vários algoritmos menores, os quais, não isoladamente, mas em conjunto, resolvem o problema proposto. É conveniente utilizá-los quando uma determinada tarefa é efetuada em diversos lugares no mesmo algoritmo. Ao invés de escrever-se um trecho diversas vezes, escreve-se um subalgoritmo e chama-o diversas vezes.

As Sub-rotinas:

- Reduzem o tamanho do algoritmo.

- Facilitam a compreensão e visualização do algoritmo.

- São declaradas no início do algoritmo e podem ser chamadas em qualquer ponto após sua declaração.

- Elas podem ser Funções que retornam algum valor ou Procedimentos.

Procedimentos

Procedimento é um tipo de sub-rotina que possui inicio, fim e um nome pelo qual é referenciado em qualquer lugar do programa principal. Quando um procedimento é chamado, são executadas as instruções que estão em seu interior e no término de seu fluxo de execução retorna automaticamente para a primeira linha após a linha que o chamou.

Programa "Procedimento" var

(32)

Página 31 de 35

Procedimento rotcerta Inicio

Escreval ("Resposta Certa") FimProcedimento

Procedimento roterrada Inicio

Escreval ("Resposta Errada") FimProcedimento

INICIO

Escreval ("escolha a alternativa Correta:") Escreval ("Quem Inventou a Lâmpada?")

Escreval ("A) Alexander Graham Bell") Escreval ("B) Issac Newton")

Escreval ("C) Albert Einstein") Escreval ("D) Benjamim Franklin") Leia (resposta)

escolha (resposta) Caso "A"

rotcerta escreval (r) caso "B"

roterrada caso "C"

roterrada caso "D"

roterrada outrocaso

escreval(Maiusc("Digite apenas as letras que correspondem às respostas."))

Fimescolha FimAlgoritmo

Função

(33)

Página 32 de 35 A criação de uma Função deve ser declarada, com os demais objetos, no início do programa. Estes tipos de subalgoritmos, sempre retornam um e apenas um valor ao algoritmo que lhe chamou. Cada função tem associada ao seu valor de retorno um tipo explícito. Da mesma maneira com que os parâmetros são fixos para todas as chamadas o retorno também é fixo.

Nota:

Sempre declare as variáveis globais antes da função. A função sempre fica dentro do escopo algoritmo e Fim algoritmo. Procure não declarar variáveis globais com o mesmo nome das variáveis da função e não nomeie funções com mesmo nome de variáveis.

Por exemplo: Escreva um programa que utilize função para calcular o quadrado de um número.

programa "Funções Personalizadas" var

n1, soma: real

funcao Fquadrado(x: inteiro):inteiro var

quadrado:inteiro Inicio

quadrado:= x*x retorne quadrado fimfuncao

INICIO

Escreva ("Escreva um Número : ") Leia (n1)

soma<-Fquadrado(n1)

Escreva ("Quadrado do número é ", soma) FimAlgoritmo

Lista de Exercícios

1. Faça um programa para imprimir: 1

2 2 3 3 3 ...

(34)

Página 33 de 35 para um n informado pelo usuário. Use uma função que receba um valor n inteiro e imprima até a n-ésima linha.

2. Faça um programa para imprimir: 1

1 2 1 2 3 ...

1 2 3 ... n

para um n informado pelo usuário. Use uma função que receba um valor n inteiro imprima até a n-ésima linha.

3. Faça um programa, com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos.

4. Faça um programa, com uma função que necessite de um argumento. A função retorna o valor de caractere ‘P’, se seu argumento for positivo, e ‘N’, se seu argumento for zero ou negativo.

5. Faça um programa com uma função chamada somaImposto. A função possui dois

parâmetros formais: taxaImposto, que é a quantia de imposto sobre vendas expressa em porcentagem e custo, que é o custo de um item antes do imposto. A função “altera” o valor de custo para incluir o imposto sobre vendas.

6. Faça um programa que converta da notação de 24 horas para a notação de 12 horas. Por exemplo, o programa deve converter 14:25 em 2:25 P.M. A entrada é dada em dois inteiros. Deve haver pelo menos duas funções: uma para fazer a conversão e uma para a saída. Registre a informação A.M./P.M. como um valor ‘A’ para A.M. e ‘P’ para P.M. Assim, a função para efetuar as conversões terá um parâmetro formal para registrar se é A.M. ou P.M. Inclua um loop que permita que o usuário repita esse cálculo para novos valores de entrada todas as vezes que desejar.

(35)

Página 34 de 35 valor da prestação. Quando houver atraso, cobrar 3% de multa, mais 0,1% de juros por dia de atraso.

8. Faça uma função que informe a quantidade de dígitos de um determinado número inteiro informado.

9. Reverso do número. Faça uma função que retorne o reverso de um número inteiro informado. Por exemplo: 127 -> 721.

10.Jogo de Craps. Faça um programa de implemente um jogo de Craps. O jogador lança um par de dados, obtendo um valor entre 2 e 12. Se, na primeira jogada, você tirar 7 ou 11, você um "natural" e ganhou. Se você tirar 2, 3 ou 12 na primeira jogada, isto é chamado de "craps" e você perdeu. Se, na primeira jogada, você fez um 4, 5, 6, 8, 9 ou 10,este é seu "Ponto". Seu objetivo agora é continuar jogando os dados até tirar este número novamente. Você perde, no entanto, se tirar um 7 antes de tirar este Ponto novamente.

11.Data com mês por extenso. Construa uma função que receba uma data no formato DD/MM/AAAA e devolva uma string no formato D de mesPorExtenso de AAAA. Opcionalmente, valide a data e retorne NULL caso a data seja inválida.

(36)

Página 35 de 35

Bibliografia

PAULA,EVERALDO ANTÔNIO;SILVA,CAMILA CECCATTO. LÓGICA DE PROGRAMAÇÃO APRENDENDO A PROGRAMAR. SÃO PAULO: VIENA 2007

MANZANO,J.A.N.G;OLIVEIRA,J.F. ALGORITMO LÓGICA PARA DESENVOLVIMENTO DE PROGRAMAÇÃO DE COMPUTADORES. SÃO PAULO: ÉRICA,2000

COSTA,RENATO. APOSTILA DE LÓGICA DE PROGRAMAÇÃO DE ALGORITMOS E PROGRAMAS

TONET,BRUNO;KOLIVER CRISTIAN. Apostila de Introdução aos Algoritmos

Referências

Documentos relacionados

Salienta-se, a nível intra-regional (Figura 3.2.3 - B), o contributo das sub-regiões Alto-Trás-os-Montes, Grande Porto, Entre Douro e Vouga e Cávado para o aumento mais

Cartas de Alforria, Livro Notariais de Transmissões e Notas e de Registros Diversos do 1º Tabelionato de Alegrete:

As pontas de contato retas e retificadas em paralelo ajustam o micrômetro mais rápida e precisamente do que as pontas de contato esféricas encontradas em micrômetros disponíveis

Foi apresentada, pelo Ademar, a documentação encaminhada pelo APL ao INMETRO, o qual argumentar sobre a PORTARIA Nº 398, DE 31 DE JULHO DE 2012 E SEU REGULAMENTO TÉCNICO

Neste trabalho avaliamos as respostas de duas espécies de aranhas errantes do gênero Ctenus às pistas químicas de presas e predadores e ao tipo de solo (arenoso ou

Mecânica Coração Eucarístico Engenharia Mecânica Vaga 30 Comandos Hidráulicos e Pneumáticos Noite 06 2T+4P Engenharia Mecânica Contagem 01 Vaga para as três

do serviço realizado, com a descrição da função/cargo, conforme requisitos para o espaço ocupacional (vaga), esta deverá estar datada e assinada. b) Exercício

Por meio deste trabalho, foram verificados classificados os principais riscos aos quais os trabalhadores das Instituições Técnicas Licenciadas estão expostos,