Escolar Documentos
Profissional Documentos
Cultura Documentos
CURSOS DE ENGENHARIA
1) Objetivos:
Conceituar algoritmo, definir os tipos primitivos, introduzir noção de variáveis, explicar comandos de entrada e
saída, comando de atribuição e operadores aritméticos. Algoritmos Sequenciais.
2) Livro texto:
ASCENIO, A. F.G., CAMPOS, E.A.V. Fundamentos da Programação de Computadores (Algoritmos, Pascal
e C/C++). Editora: Pearson, 2002.
3) Fundamentação Teórica:
b) Conceito de Algoritmo:
“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de
problema específico” [KNUTH]
“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”
[TREMBLAY]
Fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma
banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:
Instruções para se utilizar um aparelho eletrodoméstico;
Uma receita para preparo de algum prato;
Guia de preenchimento para declaração do imposto de renda;
A maneira como as contas de água, luz e telefone são calculadas mensalmente; etc
c) Partes de um Algoritmos
Por exemplo, considere o problema de calcular a área de um quadrado. Para se calcular a área de
um quadrado é necessário saber seu lado. Logo, a entrada para solução do problema é o lado do quadrado.
Como dito anteriormente, a saída corresponde ao resultado que se pretende obter. No caso do nosso
problema, a saída é a área do quadrado. Para se chegar neste resultado é preciso aplicar a fórmula da área
(Área = Lado x Lado). Sendo assim, este cálculo constitui o processamento do algoritmo em questão.
Leia Entrada
Lado
Escreva Area
Saída
Fim
O fluxograma acima, ainda que em alto nível, representa um algoritmo, já que retrata uma sequência
de passos para calcular a área de um quadrado.
Exemplo 2: Fazer um algoritmo que faça o cálculo da conversão do valor de uma temperatura em
graus Celsius para graus Fahrenheit. A fórmula de conversão é F = (9*C + 160)/5, sendo F a temperatura em
Fahrenheit e C a temperatura em Celsius.
Solução:
Inicio
Leia C Entrada
F = (9*C + 160)/5
Processamento
Escreva F
Saída
Fim
2
e) Conceito abstrato de variável:
Repare que, no exemplo anterior, usamos as letras C e F para representar as temperaturas em graus
Celsius e Fahrenheit respectivamente. Em si tratando de algoritmos C e F são chamadas variáveis. As
variáveis são usadas para representar e armazenar as informações que o algoritmo irá manipular.
Além disso, uma informação é classificada como variável quando tem a possibilidade de ser alterado
o seu valor em algum instante do tempo. Por exemplo:
A quantidade de funcionários de uma empresa.
O peso e idade de uma pessoa
Os algoritmos que iremos construir precisarão receber dados. Por exemplo, o algoritmo (programa)
de um caixa eletrônico recebe dados, certo? E tais dados precisam ser armazenados em algum lugar para
posteriormente serem utilizados (sua senha, a identificação da sua conta, etc). Esse armazenamento é feito
na memória do computador (que podemos fazer analogia com a memória humana). Uma variável é um
“local” nessa memória do computador.
Uma variável possui nome e tipo e tem que ser criadas pelo programador quando este estiver
construindo algoritmo que recebam e manipulem dados (informações).
f) Linguagem de programação:
A informação é a matéria-prima que faz com que seja necessária a existência do computador, pois
eles são capazes de manipular e armazenar um grande volume de dados com alta performance. Os tipos
primitivos de dados são:
Inteiro
Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou
positiva). Não possuem parte decimal. A faixa de valores inteiros possíveis é –32767 a 32768.
Por exemplo:
Hoje é dia 15 de fevereiro.
Minha idade é 25 anos.
O professor selecionará 2 alunos para monitoria.
3
Real
Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativo, nula ou
positiva).
Por exemplo:
O funcionário receberá R$ 250,30 por mês.
A temperatura está próxima do 37,5 graus.
Caracter
Toda e qualquer informação composta por um conjunto de caracteres alfanuméricos (0..9, a .. z, A..Z) e/ou
especiais (por exemplo: *, $, %, &, #, ?, >,<, !, @). Os números, quando utilizados como caracter, não podem
ser utilizados para cálculo.
Por exemplo:
O nome do funcionário é Antônio Augusto.
A mensagem de retorno é “Cuidado, o micro está doido”.
A placa do carro é GXW 0345
Moro na rua 3.
Lógico
Toda e qualquer informação que pode apenas assumir duas situações possíveis (biestável). Verdadeiro ou
Falso.
Por exemplo:
O funcionário possui dependente.
A lâmpada pode estar acessa ou apagada.
k) Para exemplificar:
4
b) Primeiro exemplo:
Em Portugol Em Pascal
Algoritmo Primeiro; Program Primeiro;
inicio begin
escreva "Alô Mundo.” write('Alo Mundo');
Fim_algoritmo. end.
1. Troque o nome Pzim que está na frente da palavra program pelo nome que deseja dar ao seu
programa. No nosso caso chamaremos de Primeiro;
2. Entre as palavras begin e end da
tela indicada no item b), digite
write('Alo Mundo');
3. Salve o seu programa. Vá ao
menu Arquivo/Salvar ou acione o
ícone do disquete. OBS: na tela
que aparecerá, você terá que
escolher a pasta onde será salvo Através desta seta você poderá
acessar sua pasta. Ela terá como
o programa (na pasta referente nome o seu número de matrícula
ao seu usuário) e deverá dar um
nome ao mesmo (Primeiro). Veja
abaixo a tela que irá aparecer
para você preencher.
c) Segundo Exemplo:
1. Para criar um novo programa
2. Digite o código Pascal em destaque, mostrado abaixo .
Em Portugol Em Pascal
Algoritmo SomaNum; program SomaNum;
var N1, N2, Soma: inteiro; var N1, N2, Soma: integer;
inicio begin
N1 5; N1:=5;
N2 6; N2:=6;
Soma N1 + N2; Soma:=N1+N2;
escreva (Soma); write(Soma);
Fim_algoritmo. end.
3. Salve o programa com o nome de SomaNum
4. Execute o programa e analise o resultado.
5
e) Terceiro Exemplo:
Construir um algoritmo que leia seu nome e depois exiba-o na tela com a seguinte frase com o seu nome:
“Fulano, é aluno do segundo período do curso de Engenharia”
a) Comando de entrada:
b) Comando de atribuição:
Um comando de atribuição permite-nos fornecer um valor a uma certa variável (guardar um objeto
numa certa gaveta), onde o tipo dessa informação deve ser compatível com o tipo da variável, isto é,
somente podemos atribuir um valor caracter a uma variável capaz de comportá-lo, ou seja, uma variável
declarada do tipo caracter. O comando de atribuição possui a seguinte sintaxe:
Variável expressão;
Em Pascal tal comando é:=, caso prefira usar na teoria o comando igual ao da linguagem Pascal,
será permitido.
Exemplo: VAR A, B : real;
X : Inteiro;
Nome: caracter;
A 12.6;
B A/2;
X 8 + 13 - 5;
Nome ‘Ana Carolina’;
6
IDENTIFICADORES NÃO VÁLIDOS: @, Média, Nome Aluno, Nome-Aluno, Salário, @luno, 1N, X-Y,
Nota/2;
d) Operadores aritméticos:
Denominamos expressão aritmética aquela cujos operadores são aritméticos e cujos operandos são
constantes e/ou variáveis do tipo numérico (inteiro e /ou real). Os operadores aritméticos são:
+ adição;
- subtração;
* multiplicação;
/ divisão;
DIV (quociente da divisão inteira) Exemplo: 27 div 5 5
Devemos obedecer à prioridade entre as operações, conforme a seguir :
1º multiplicação, divisão.
2º adição, subtração.
e) Para exemplificar: Algoritmo que calcula e escreve a área de um triângulo sendo que o usuário irá
digitar os valores da base e da altura do triângulo. Sabe-se que para um triângulo:
Area = Base x Altura
2
Melhorando o algoritmo:
2º) Algoritmo CalculoAreaTriangulo
Var Base, Altura, Area :real; Exemplo de Rastreio
inicio
escreva (‘Informe o valor da base (B): ’); TELA Memoria RAM
leia (Base);
escreva (‘Informe o valor da altura (H): ’) ; Informe o valor da base
leia (Altura); 6 Base Altura Area
Area (Base * Altura)/2; Informe o valor da altura
5 6 5 15
escreva (‘A área é’, Area);
Fim_algoritmo. A área é 15
program CalculoAreaTriangulo;
var Base, Altura, Area :real;
begin
write (‘Informe o valor da base (B): ’);
readln (Base);
write (‘Informe o valor da altura (H): ’);
readln (Altura);
Area := ( Base * Altura) / 2;
write (‘A área é: ‘ , Area:0:2);
end.
7
6) Mais Exemplos:
Algoritmo que calcula o novo preço de um produto após 10% de aumento.
Algoritmo Aumento;
Var Preco, Aum, Atenção: existem várias
NovoPreco :real; outras formas de calcular %.
Mas em se tratando de
inicio
algoritmo NUNCA utilize o
escreva (‘Informe o preço do sinal de %, pois na hora de
produto:’);
leia (Preco); criar o programa no
Aum Preco* 0.1; computador, não vai funcionar.
NovoPreco Preco + Aum; (0,1 é 10% ou seja, 10
escreva (‘O produto passará a dividido por 100 10/100) custar: ’,
NovoPreco);
Fim_algoritmo.
program Aumento;
var Preco, Aum, NovoPreco :real;
begin
write (‘Informe o preço do produto: ‘);
readln (Preco);
Aum := Preco * 0.1;
NovoPreco := Preco + Aum;
write (‘O produto passara a custar: ‘ , NovoPreco:0:2);
end.
Considere agora a seguinte situação: Maria quer saber quantos litros de gasolina precisa colocar em seu carro e
quanto vai gastar em dinheiro para fazer uma viagem até a casa de sua irmã. Faça um algoritmo capaz de
realizar estes cálculos.
Algoritmo Viagem;
Var Distancia, Rendimento, Preco, Consumo, Gasto: real;
inicio
escreva (‘Informe a distância da viagem:’);
leia (Distancia);
escreva (‘Informe o rendimento do automóvel:’);
leia (Rendimento);
escreva (‘Informe o preço da gasolina:’);
leia (Preco);
Consumo Distancia/Rendimento;
Gasto Consumo*Preco;
program Viagem;
var Distancia, Rendimento, Preco, Consumo, Gasto: real;
begin
write (‘Informe a distância da viagem:’);
readln (Distancia);
write (‘Informe o rendimento do automóvel:’);
readln (Rendimento);
write (‘Informe o preço da gasolina:’);
readln (Preco);
8
Consumo := Distancia/Rendimento;
Gasto := Consumo*Preco;
Muitas vezes precisa-se realizar alguns cálculos cujos resultados dependem de funções matemáticas
como por exemplo: seno, coseno, raiz quadrada, dentre outras. Para isso, a linguagem pascal já possui
algumas funções já predefinidas.
Destacamos aqui algumas delas:
Nome da Função Para que serve Exemplo de uso
SQR Elevar um número ao R:= SQR(X); { R valerá X 2, se X vale 7,
quadrado. R valerá 49}
SQRT Tira a raiz quadrada de um R:= SQRT(X); { R valerá raiz quadrada
número. de X, se X vale 25, R valerá 5; }
TRUNC Retorna um valor truncado na TRUNC(27.8) 27
parte inteira. TRUNC(27,4) 27
ROUND Arredonda um número para o ROUND(27.8) 28
seu mais próximo. ROUND(27.8) 28
COS Calcular o cosseno COS(X);
SIN Calcular o seno SIN(X);
2) MODIFICAR o programa para que ele agora calcule o valor da área hachurada da
A
casa sabendo que as janelas são quadradas e têm lados iguais a um terço de C.
B
3) Analise o programa abaixo e faça o rastreio do mesmo, representando tela e memória.
program Teste1;
var Horas, Min, Seg: integer;
NmCid: string;
begin
write('Informe o nome da cidade de destino:');
read(NmCid);
end.
4) Faça um programa NOVO (File/New) que deverá calcular e escrever o valor da funcão Y dada abaixo para o
X que o usuário quiser. OBS.: Lembre-se das prioridades aritméticas. Y = X2 – 3
X+1
5) Faça um programa que deverá solicitar ao usuário o raio de uma esfera, calcular e exibir a sua área e o
seu volume. Sabe-se que: Área da esfera = 4 x x raio2
Volume da esfera = (4 ÷ 3) x x raio2
6) Um trabalhador recebeu seu salário e o depositou em sua conta bancária. Esse trabalhador emitiu dois
cheques e agora deseja saber seu saldo atual. Sabe-se que para cada transação bancária de retirada
paga-se uma taxa de 0,38% e o saldo inicial da conta estava zerado. Construa um FLUXOGRAMA que
solicite ao usuário o valor do salário e valor de cada cheque emitido pelo trabalhador. Calcule e escreva o
saldo final na conta após os dois cheques terem sido descontados.
10
7) Um menino deseja pegar sua pipa que ficou agarrada em uma árvore a uma altura de X metros. Devido a
alguns obstáculos ele precisará colocar a escada a exatamente Y metros da árvore. Faça um algoritmo
que calcule e mostre o tamanho da escada que terá que conseguir para poder atingir exatamente o local
onde está a pipa.
Onde:
Z
X – Altura onde se encontra a pipa (entrada);
X
Y – Distância que a escada terá que ser colocada da
árvore (entrada);
Y Z – Tamanho da escada (calcular).
program Aval1;
var Area, Pop, Dens: real;
NmCid: string;
begin
writeln('Informe o nome da cidade:');
readln(NmCid);
end.
9) Sabendo que uma turma de amigos deseja assistir a um filme e que o ingresso custa R$ 15,00, construa
um FLUXOGRAMA que represente: a leitura do nome do filme que eles irão assistir e do número de
pessoas da turma. Com base nestes dados o seu fluxograma deve representar o cálculo de quanto a
turma gastará para ir ao cinema. Por fim deve-se escrever o nome do filme e o total gasto pela turma com
os ingressos.
1. Faça um algoritmo que calcule e mostre a área de um quadrado. Sabe-se a área de um quadrado é
Lado x Lado.
2. Acrescente no algoritmo anterior o cálculo do perímetro do quadrado. Mostrar o resultado. Sabe-se
que perímetro é a soma de todos os lados.
3. Faça um algoritmo que leia o nome de uma pessoa, leia também o ano de nascimento e o ano atual.
Calcule e escreva qual a idade dessa pessoa. O resultado deverá ser exibido da seguinte forma:
Fulano de tal tem X anos de vida.
4. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45%
do preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo
que leia a marca do automóvel e o preço de fábrica e calcule e escreva seu preço final.
5. Uma empresa possui, para um determinado funcionário, uma ficha contendo: o nome, número de
horas trabalhadas e o nº de dependentes de um funcionário. Considerando que:
a) A empresa paga 12 reais por hora e 40 reais por dependentes.
b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR.
Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de dependentes de
um funcionário. Após a leitura e os devidos cálculos escreva qual o Nome, salário bruto, os
valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.
6. Sabe-se que são necessários 0,2L de tinta para pintar 1m 2 de parede. Construa um algoritmo que,
com base nas medidas de uma parede retangular, escreva a área a ser pintada e a quantidade de
tinta necessária para pintar esta parede.
7. Analise o programa abaixo e faça o rastreio do mesmo, representando tela e memória.
program Aval1;
var Peso, Altura, IMC: real;
Nome: string;
begin
write('Informe o nome da pessoa:');
readln(Nome);
write('Informe a altura desta pessoa');
readln(Altura);
writeln('Informe o peso desta pessoa');
readln(Peso);
IMC := Peso/ SQR(Altura);
writeln(‘O índice de massa corporal do(a) ‘, Nome, ‘ é de ', IMC:0:2);
end.
8. Faça um programa que leia um valor representando o gasto realizado por um cliente do restaurante
COMABEM e imprima o valor total a ser pago, considerando os 10% do garçom
9. Construa um fluxograma e um programa utilizando linguagem Pascal que resolva o seguinte
problema:”Um proprietário de um veículo recebeu a informação que o carro que deseja comprar faz
11,5 km/litro. Como precisará fazer uma viagem, deseja saber quantos litros de gasolina irá gastar e
quanto gastará em dinheiro(R$). OBS: informações necessárias serão informadas pelo usuário do
programa.
10. Faça um programa que leia o valor de uma mercadoria e a porcentagem de desconto. O programa
deve imprimir o novo valor com desconto.
11. Faça um programa que receba o valor do salário mínimo, o número de horas trabalhadas, o número
de dependentes do funcionário. Calcule e mostre o salário bruto e o salário líquido do funcionário de
acordo com as regras a seguir.
O valor da hora trabalhada é igual a um quinto (1/5) do salário mínimo;
O salário do mês é igual ao número de horas trabalhadas multiplicado pelo valor da
hora trabalhada;
Como auxílio família, para cada dependente acrescentar R$ 50,00;
O salário bruto é igual ao salário do mês, acrescido do auxílio família;
Calcular o valor do imposto de renda retido na fonte (IRPF), que será de 20%;
O salário líquido é igual ao salário bruto menos o IRPF;
12. Construa um programa que obtenha os seguintes dados de uma cidade: nome, população e área.
Com base nesses dados calcule a densidade populacional desta cidade (Hab/Km 2).
13. Construa um programa para resolver o seguinte problema: Obter o valor do salário mínimo e o valor
do salário de um funcionário. Calcular e escrever:
a) O novo salário deste funcionário sabendo que ele terá um aumento de 7%.
b) Quantos salários mínimos este funcionário recebe. Considere o salário do funcionário com o
aumento.
14. Exercícios do livro Texto: página 39 nº 6, 7, 12 e 14; página 40 nº: 17, 24 e 25.
12