Você está na página 1de 78

Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.

2]g
1
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
NOTAS DO AUTOR
A apostila busca esclarecer de forma direta para alunos dos cursos de engenharia sobre a
importncia da programao no exerccio da profisso. Geralmente, os alunos quando esto cursando a disciplina de
programao no seu curso de engenharia no consegue ter uma viso geral de como utiliz-la e muitas vezes prefere
utilizar um planilha eletrnica.
Um software de planilha eletrnica como o Microsoft Excel, o antigo Lotus 1-2-3, Gnumeric,
Calc do BrOffice e outros. A importncia na aprendizagem de uma linguagem de programa influi no momento em
que o aluno necessita realizar o clculo de um mtodo numrico, por exemplo, mtodo numrico de Newton
Raphson. Alguns mtodos numricos so capazes de serem realizados em planilhas eletrnicas, mas de forma
bastante manual.
As linguagens de programao vem envolvendo cada vez mais o mundo tecnolgico. Java, PHP,
MySQL, C#, Delphi, Ruby, C, Python e muitas outras esto presentes em nossos computadores, telefones celulares,
TV digitais, automveis e etc. O engenheiro do mundo atual necessita entender pelo menos de uma forma bsica
sobre programao e tipos de linguagens, da mesma forma que necessita falar trs linguas.
A apostila busca facilitar o uso da linguagem de programao C para aplicaes em engenharia e
assim o estudante dar o primeiro passo. Da mesma forma que este material disponibilizado de forma gratuita, se
espera o interesse por parte de outros estudantes, professores e profissionais para colaborar com a expanso do
mesmo.
Vou deixar de bl, bl, bl e espero que gostem!
Rafael de C. Farias
www.engemec.com
2
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
NDICE
1 INTRODUO........................................................................................................................................... 4
1.1 Programao para engenharias?........................................................................................................ 4
1.2 GPL, livre, gratuito, aberto, customizao, trabalho colaborativo................................................. 4
1.3 Porque e quais softwares utilizar........................................................................................................ 4
2 PREPARANDO O COMPUTADOR E ESCOLHENDOA LINGUAGEM........................................... 6
2.1 Configurando o compilador................................................................................................................ 6
2.2 A linguagem de programao C......................................................................................................... 7
3 PRIMEIROS PASSOS PARA A PROGRAMAO EM C................................................................... 8
3.1 Estrutura de um programa em C e o 1 programa....................................................................... 8
3.2 As 4 operaes bsicas da matemtica............................................................................................... 10
3.3 Entendendo as funes trigonomtricas............................................................................................ 11
4 DIMENSIONAMENTO DE ISOLAMENTO TRMICO EM LINHA DE VAPOR........................... 14
4.1 Introduo............................................................................................................................................. 14
4.2 Caractersticas do problema............................................................................................................... 14
4.3 Base terica........................................................................................................................................... 14
4.4 Cdigo-fonte comentado passo a passo.............................................................................................. 15
5 PROJETO DE UM TROCADOR DE CALOR DO TIPO CASCO E TUBOS (GUA-LEO)......... 22
5.1 Introduo............................................................................................................................................. 22
5.2 Caractersticas do problema............................................................................................................... 22
5.3 Base terica........................................................................................................................................... 23
5.4 Cdigo-fonte comentado passo a passo.............................................................................................. 26
6 PROJETO DE VIGA BI-APOIADA......................................................................................................... 35
6.1 Introduo............................................................................................................................................. 35
6.2 Caractersticas do problema............................................................................................................... 35
6.3 Base terica........................................................................................................................................... 35
6.4 Cdigo-fonte comentado passo a passo.............................................................................................. 36
7 PROJETO DE VASOS DE PRESSO...................................................................................................... 42
7.1 Introduo............................................................................................................................................. 42
7.2 Caractersticas do problema............................................................................................................... 42
7.3 Base terica........................................................................................................................................... 42
7.4 Cdigo-fonte comentado passo a passo.............................................................................................. 44
REFERNCIAS................................................................................................................................................ 49
APNDICE A Fontes de informao para instalao do Ubuntu............................................................. 50
APNDICE B Cdigos-fonte dos programas abordados........................................................................... 51
3
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
1 INTRODUO
1.1 Programao para Engenharias?
O ensino da programao para os cursos de Engenharia so, atualmente, falhos em sua maioria das
vezes. Em muitas Universidade como a UFC Universidade Federal do Cear, as disciplinas voltadas para a rea da
programao se encontram com dificuldades para serem lecionadas. As dificuldades mais insistentes so: a falta de
laboratrios com uma estrutura para tal atividade, troca constante de professores, material didtico voltado para a
Engenharia e a continuidade do ensino com utilizao da programao ao longo do curso.
Existem outras dificuldades, como a falta de informao sobre softwares livres que podem ser
utilizados sem infringir leis de direitos autorais e com baixo custo. A utilizao de softwares proprietrio de forma
ilegal no pas como o sistema operacional Windows, ferramentas de escritrio Microsoft Office, desenhos
tcnicos como o AutoCAD e at mesmo para a programao em certas linguagens com o uso dos softwares da
Borland so uma realidade infeliz.
Esse trabalho tem como objetivo servir de material didtico, se possvel, para os estudantes de
Engenharia que queiram aprender programao com exemplos prticos utilizando softwares livres, e assim conhecer
as vantagens de um trabalho colaborativo. Uma informao que vale ser salientada nesse momento, que todo o
contedo deste trabalho ser disponibilizado para as pessoas que tiverem interesse em aprender um pouco de
programao e sua utilizao na rea de Engenharia.
O motivo da realizao deste trabalho devido dificuldade j mencionada na aprendizagem da
programao computacional nos cursos de Engenharia, e uma forma de contribuio e agradecimento com a
comunidade acadmica e a sociedade como um todo.
1.2 GPL, livre, gratuito, aberto, customizao, trabalho colaborativo
O trabalho realizado utilizou um SO (Sistema Operacional) totalmente livre e gratuito sob a
licena GPL (Generic Public License), as ferramentas abordadas para o desenvolvimento de softwares tambm esto
sob a mesma licena. demonstrado que, atualmente, ns podemos utilizar os softwares livres em nossas atividades
mais comuns e na aprendizagem da programao para Engenharia. Todo este trabalho foi escrito com o uso de
softwares livres.
Vale ressaltar neste momento sobre os termos livre, aberto e grtis. O termo livre indica que todos
podem usar de forma gratuita, geralmente, mas no necessariamente. O termo aberto indica a possibilidade de
customizarmos a ferramenta que estamos utilizando. O termo grtis o mais claro para todos, usado por um
determinado perodo ou por tempo indeterminado de acordo com a verso escolhida. Quando mencionado os
termos aberto e livre, isso indica que estamos trabalhando com ferramentas gratuitas em sua maioria das vezes e
com a possibilidade de modificarmos e repassar as melhorias realizadas para as outras pessoas na mesma forma.
Todas as ferramentas que sero abordadas podem ser adquiridas de forma legal e sero usadas para
beneficiar outras pessoas que podero colaborar com esse trabalho, com o trabalho colaborativo.
1.3 Porque e quais softwares utilizar
O primeiro passo, se deve com a instalao de um SO (Sistema Operacional) livre, aberto e
gratuito. Para SO, a escolha adotada o Ubuntu na sua verso 7.10. Ele uma boa opo por ser Live-CD (SO que
rodam diretamente do CD) que pode ser instalado no computador ou no. O Ubuntu 7.10 alm de ser bastante
difundido e de fcil acesso, tem outras vantagens como a sua facilidade de manuseio, ferramentas embarcadas,
utilitrios, aplicativos e diversos outros softwares de uso comum prontos para uso.
O Ubuntu 7.10 apresenta por padro o Open Office para escritrio (editor de texto, planilha
eletrnica, banco de dados, apresentador e criador de slides e etc.), na rea multimdia como o Totem (reprodutor de
udio e vdeo), na edio de imagens com o Gimp e diversos outros softwares. A forma de instalao de programas
extremamente fcil e rapidamente um usurio iniciante no mundo Linux/GNU aprender.
O nome Linux originado e criado por Linus Torvalds. J a sigla GNU devido ao projeto GNU.
O projeto GNU foi iniciado por Richard Stallman com o objetivo de criar um sistema operacional totalmente livre. A
sigla GNU foi escolhida pelo fato de ser um acrnimo recursivo de GNU is Not Unix que em portugus significa:
GNU no Unix. Quando uma distribuio se refere a Linux/GNU, na verdade ela baseada e bem parecida com
o sistema operacional Unix, mas no .
O Ubuntu 7.10 uma distribuio derivada do Linux/GNU. utilizado o Linux como SO por ser o
prprio kernel (ncleo e SO) e os softwares GNU que se integram com o Linux, formando o Ubuntu 7.10. Veja como
ocorre a integrao:
4
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Linux (kernel) + GNU (softwares) = Ubuntu 7.10
O que difere as distribuies Linux/GNU so os softwares integrados e distribudos com ela, pois o
Linux (kernel) o mesmo para todas elas basicamente. Freqentemente, o kernel sofre atualizaes e por isso ele se
difere muito pouco entre as distribuies.
Agora que est explicado da forma mais bsica possvel sobre a escolha do SO adequado para a
realizao deste projeto, importante mencionar um pouco sobre os programas que foram utilizados na realizao
deste trabalho. interessante utilizar um editor de texto bastante simples chamado Gedit o qual foi utilizado para a
elaborao dos textos dos programas (rotinas, funes, frmulas, comentrios e etc). O Gedit fcil de ser utilizado
e lembra bastante o Bloco de Notas do SO Microsoft Windows. A diferena que no Gedit quando se salva o
arquivo com o cdigo fonte, ele automaticamente modifica a cor do texto para que as funes, comentrios e outros
elementos do texto sejam diferenciadas.
O compilador utilizado e recomendado o GCC. Compilador a ferramenta responsvel para
transformar o texto que foi escrito na linguagem de programao escolhida no arquivo executvel do programa
desejado. O arquivo executvel gerado pelo compilador exatamente o programa ou programas desenvolvidos. Com
um editor de texto e um compilador, todos so capazes de escrever seus prprios programas e execut-los
normalmente.
Neste trabalho no abordada a instalao do SO Linux/GNU, mas no Apndice A, se encontram
alguns endereos eletrnicos bastante interessantes para se iniciar no mundo Linux/GNU. Alguns termos mais
tcnicos so abordados nos prximos captulos, e a explicao de cada termo ser apresentada da forma mais
detalhada possvel.
importante ressaltar uma ltima observao sobre software livre, o termo livre se difere no
sentido de gratuito, mas geralmente eles so gratuitos e os criadores de programas livres ganham com o suporte para
clientes que apresentem dificuldades em seu uso. O termo gratuito no tem significado livre ou aberto, ele s se
refere a utilizao gratuita de uma determinada verso ou determinado perodo. J o termo aberto no se refere a
livre e nem gratuito, e sim a possibilidade de se adquirir o cdigo-fonte do programa.
5
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
2 PREPARANDO O COMPUTADOR E ESCOLHENDO A LINGUAGEM
2.1 Configurando o compilador
Quando se escreve algum programa, deve-se usar com um editor de texto (no caso o Gedit) e em
seguida salv-lo, para que ele seja transformado no programa. O programa exatamente o nosso cdigo-fonte
funcional. A ferramenta responsvel em transformar as aes e tarefas que se escreve no editor de texto para a forma
de programa o compilador.
O GCC (GNU Compiler Collection) o compilador gratuito, livre e aberto que ser apresentado
nesta literatura para transformar os cdigos-fonte para a forma de programa. A verso atualmente instalada pelo
Ubuntu 7.10 a 4.1.3. Ele bem simples de ser utilizado e atende todas as necessidades dos programas apresentados.
No menu Aplicaes->Acessrios->Terminal, abrir uma janela chamada TERMINAL que se
trata da linha de comando do Linux. possvel ter vrias janelas de terminal abertas, mas o limite mximo so 64
terminais aproximadamente. Para a instalao de novos programas, o terminal ainda a melhor soluo do que as
ferramentas assistidas do Ubuntu 7.10 e outras distribuies Linux/GNU.
Durante a instalao do Ubuntu 7.10, criada a conta de um usurio para acess-lo. Esse usurio
que provavelmente tem o nome do criador ou seu apelido no um super-surio. O super-usurio o administrador
de tudo no SO, ele responsvel por todas as configuraes, instalaes, remoes e outros. A senha deve ser
determinada ao se iniciar a primeira vez o SO, dessa forma possvel utilizar o TERMINAL para executar as
tarefas de instalao do GCC e outras que sero apresentadas neste trabalho. Para alterar a senha do super-usurio (o
nome verdadeiro ROOT) basta seguir a seqncia de menu: Sistema->Administrao->Usurios e Grupos.
necessrio escolher o ROOT e alterar a sua senha para se ter permisses privilegiadas quando necessrias.
Alterada a senha do ROOT, imprescindvel a verificao da verso do GCC instalada e isso
realizado com o comando:
gcc version
No terminal de execuo, esse comando deve se apresentar da seguinte forma:
nome@mquina:~$ gcc version
No local do nome o usurio ativo no exato momento, e no lugar de mquina o nome da
mquina que foi definida durante a instalao do SO no computador. No caso acima, o usurio do computador est
apresentado como usurio padro do SO. Para executar o mesmo comando como ROOT se deve digitar:
nome@mquina:~$ su
Logo em seguida, ser solicitada a senha do ROOT e a linha de comando (linha que espera o
comando do usurio ativo) se apresentar na forma:
root@mquina: /home/usurio#
Isso informa que o usurio do SO naquele momento o ROOT (administrador) e que se encontra
na pasta do usurio que iniciou o SO. O ROOT tambm tem sua pasta que se encontra na raiz do sistema de
arquivos. Veja que o cifro foi substitudo pelo #. Assim todos os comandos que sero apresentados a partir de agora
e que possuem o smbolo #, est subtendido que o usurio ativo o ROOT. Quando o smbolo for o $, ento no
necessrio o operador da mquina estar ativo com o usurio ROOT.
Para um melhor entendimento dos conceitos do Linux/GNU e a manipulao de usurios,
necessrio ler o Apndice A que apresenta diversos endereos eletrnicos sobre Linux/GNU.
Com a abertura do terminal como ROOT, interessante a instalao do pacote essencial do
GCC para os clculos matemticos e programao avanada. O comando que deve ser digitado no terminal o:
#apt-get install build-essential
Esse comando far com que seu computador entre em contato com os servidores responsveis pela
atualizao e instalao remota do SO, e assim, esse pacote ser instalado no computador. Provavelmente ser
necessrio a confirmao para a instalao do pacote e para isso basta que seja respondido SIM.
importante lembrar que o computador deve estar conectado com a internet para que a instalao
6
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
do pacote seja realizada com sucesso. Se o computador no possui disponvel uma conexo com a Internet, ento
necessria a instalao do pacote em questo a partir dos DVDs da distribuio Debian Linux/GNU. O Ubuntu
uma distribuio baseada no Debian, ento no sero apresentados problemas de incompatibilidade. Mas essa
instalao a partir dos DVDs do Debian no ser discutida neste trabalho.
2.2 A linguagem de programao C
necessrio mencionar sobre a necessidade da criao das linguagens de programao e a escolha
da linguagem que foi abordada ao longo deste trabalho. As linguagens de programao surgiram para facilitar a
comunicao dos softwares com os hardwares das mquinas. Pois a linguagem de mquina se reduz a uma
quantidade enorme de 0 e 1 que chamada de linguagem binria. Essa linguagem binria a compreendida pelos
processadores. Quando se desenvolve um programa para a soma de 2 nmeros por exemplo, na verdade, cada valor
assumir uma quantidade de 0 e 1 em uma determinada ordem e a operao de soma e o resultado so apresentados
da mesma forma.
Existem diversas linguagens de programao e compiladores para cada uma delas. Algumas
linguagens de programao apresentam similaridades entre si, mas todas tm uma determinada caracterstica na sua
utilizao e escolha. Existem linguagens especficas para clculos cientficos, outras que trabalham diretamente com
a Internet, com banco de dados e etc.
A linguagem abordada neste trabalho a C. Ela uma linguagem bem simples e de fcil
entendimento. A linguagem C foi criada por Dennis Ritchie na AT&T Bell Labs com o intuito de desenvolver o
SO Unix para ser utilizado em servidores. A linguagem se espalhou por outros sistemas como o Windows, Linux,
Unix (atualmente Solaris), BSD e outros. Por ser uma linguagem portvel, ela pode ser utilizada em diferentes
plataformas. O C foi desenvolvido baseado no SO Unix por volta de 1969 e 1973, mas aproximadamente 10 anos
aps a sua criao, apresentava uma certa ausncia de padronizao nos compiladores. Os programas eram escritos
com diversas ferramentas que nem todos os compiladores conseguiam entender. Para solucionar essa problema, a
ANSI (Instituto Nacional Americano de Padronizao), implantou uma norma para a linguagem C. Assim, os
compiladores desenvolvidos atualmente buscam atender todos os programas desenvolvidos com base no padro
ANSI C.
Os programas que sero apresentados nesse trabalho podem ser compilados em Linux/GNU,
Microsoft Windows ou em qualquer outro SO, desde que o compilador atenda o padro ANSI C. Em muitas
Empresas e Universidades o software livre no dominante, mas existem compiladores gratuitos de linguagem C
para SO proprietrios.
7
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
3 PRIMEIROS PASSOS PARA PROGRAMAO EM C
3.1 Estrutura de um programa em C e o 1 programa
Um programa escrito em qualquer linguagem de programao segue uma ordem lgica na sua
criao. A diviso existente nos cdigos-fonte na grande maioria das linguagens segue com o CABEALHO e
DESENVOLVIMENTO.
O CABEALHO composto pelas bibliotecas. As bibliotecas so arquivos que contm as
explicaes e funcionalidades das funes que so empregadas no cdigo-fonte. A soma de 2 nmeros, o clculo do
cosseno de um determinado ngulo, constantes como o so exemplos de elementos que no necessria a
explicao de como funcionam. Ou seja, no se precisa criar o funcionamento de funes como as citadas, pois elas
j so descritas no padro ANSI C.
As bibliotecas citadas, nos programas abordados neste trabalho so: stdio.h, stdlib.h e math.h. Elas
possuem um significado especfico como Standart Input/Output para stdio.h, Standart Library para stdlib.h e
Mathematic para math.h. Elas possuem as informaes necessrias para a execuo de todos os problemas
abordados. A biblioteca do padro ANSI C possui 15 arquivos de bibliotecas, j alguns compiladores possuem
bibliotecas com funes bastantes interessantes, mas esse no o foco deste trabalho. Um outro detalhe interessante
que a linguagem no padro ANSI C apresenta um vocabulrio de 32 palavras-chaves, logo, de fcil
aprendizagem.
Veja um programa bastante simples que no faz absolutamente nada:
#include <stdio.h> |
#include <stdlib.h> | Parte 1
#include <math.h> |
//--------------------------- | Parte 2
main () |
{ |
printf (!ao fa" nada#$n)% | Parte &
return '% |
( |
FIGURA 3.1.1 Simples cdigo-fonte com divises explicativas.
O cdigo-fonte foi dividido em 3 partes. A primeira se refere aos arquivos de biblioteca
declarados. Quando se insere #include e o nome da biblioteca entre os sinais de maior e menor, automaticamente o
compilador ir pegar as funes dessas bibliotecas e utiliz-las quando necessrio. Mesmo que no seja utilizadas as
funes ou as bibliotecas como um todo, no representa um problema para o programa. Quando o local completo da
biblioteca no for especificado, o compilador buscar em seu diretrio de bibliotecas.
A segunda parte do cdigo-fonte se refere a forma de incluso de comentrios. Simplesmente,
todas as vezes que for digitada //, o restante da linha se torna um comentrio. Isso permite a insero de
comentrios ao longo do programa e a facilitao para terceiros entenderem o que foi escrito. Nos programas que
sero apresentados mais adiante, ser mostrado diversos comentrios ao longo do cdigo-fonte, exatamente, para
servir de explicao do mesmo.
Na terceira parte do cdigo-fonte onde se escreve o programa em si. A terceira parte apresenta
todas as tarefas do programa em seqncias. A soma de 2 nmeros, a escrita na tela do que digitado ou clculos de
um trocador de calor, tudo escrito na terceira parte.
Uma tcnica recomendada para a elaborao de um bom cdigo-fonte a escrita do algoritmo.
Existem diversos livros que abordam o estudo de algoritmos e eles servem como um esqueleto do cdigo-fonte. As
disciplinas de programao sempre so iniciadas com o estudo de algoritmos, dessa forma fcil de se visualizar o
cdigo-fonte. A escrita do algoritmo basicamente a descrio de forma detalhada de todos os passos de execuo
do programa. Este trabalho no aborda o estudo e a criao do algoritmo, pois a prpria seqncia de resoluo dos
problemas abordados podem ser considerados como uma forma de algoritmo.
Para explicao da FIGURA 3.1.1 escrito anteriormente, necessrio escrever o cdigo-fonte em
um editor de texto puro. Para acessar o o editor de texto puro no Ubuntu 7.10, basta seguir o menu Aplicaes ->
Acessrios -> Editor de texto ou ento abrir um TERMINAL e escrever $ gedit e pressionar a tecla Enter.
Aps a execuo de algum desses procedimentos o editor de texto abrir sem problemas. Agora, basta digitar o
cdigo-fonte abaixo:
8
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
printf (!ao fa" nada#$n)%
return '%
(
FIGURA 3.1.2 Simples cdigo-fonte sem divises explicativas.
Agora necessrio que o cdigo-fonte seja salvo com o nome programa-001.c em uma pasta, ou
ento, que se crie uma pasta para os programas apresentados neste trabalho, e assim, sejam localizados facilmente.
O prximo passo a compilao e criao do arquivo executvel do primeiro programa, mas antes
de prosseguir, necessrio explicar a funcionalidade do mesmo. Aps a declarao das bibliotecas (Parte 1 da
FIGURA 3.1.1) e a insero do comentrio (Parte 2 da FIGURA 3.1.1) o programa se inicia com a palavra main.
As funes da linguagem C sero explicadas mais adiante, mas para dar continuidade necessrio abordar o
mnimo possvel. A palavra main est representando a funo principal. Ela seguida por parnteses que
representam o valor adotado e em seguida um jogo de chaves com informaes. A comparao da funo main
com uma funo matemtica conhecida uma das formas de seu entendimento. Veja:
f (x) = ax + b equivalente a main (x) {ax + b}
A funo matemtica est para a funo main da mesma forma que a expresso de soma est
para o contedo das chaves. Ou seja, a funo main ser executada de acordo com o seu contedo. Na linguagem
C possvel escrever diversas funes, mas o programa sempre comear pela funo main. O trabalho com
funes ser melhor explicado em captulos posteriores, pois ser de grande valia na formao de blocos de cdigos-
fonte.
Partindo para o contedo da funo main, apresentada a palavra printf que tambm uma
funo. Ou seja, uma funo dentro de outra funo (funo composta). O printf na verdade, a funo
responsvel para imprimir na tela do computador os resultados, comentrios, observaes e etc. No primeiro
programa ela simplesmente ir apresentar a frase: Nao faz nada!. Uma observao importante na linguagem C
que no existem caracteres com acentos, por isso o No no possui acento na frase. Aps qualquer texto que for
designado para ser apresentado na tela pela funo printf e tiver em seu incio ou final o termo \n, ser saltada
uma linha.
Aps a funo printf, apresentada a linha com o comando return 0 que o responsvel para a
finalizao do programa. E em seguida finalizada a ao da funo main com o fechamento das chaves. Agora,
depois de explicar o programa de forma bsica e rpida, pode ser executada a sua compilao.
Para compilar o primeiro programa, basta abrir o terminal e acessar a pasta que se encontra o
arquivo criado (programa-001.c). O comando de compilao com o GCC (compilador mencionado no incio deste
trabalho) bastante simples. Observe:
$ gcc programa-001.c
Ser criado um arquivo executvel na mesma pasta com o nome a.out e para execut-lo basta
digitar:
$ ./a.out
A execuo do programa no passa da impresso da frase Nao faz nada!. Um detalhe
interessante que o executvel gerado pode ter qualquer nome, mas por padro ele gera como a.out. A criao do
executvel com um nome de escolha do programador, deve executar o GCC com o parmetro abaixo:
$ gcc programa-001.c -o nomedesejavel
Agora possvel executar o programa com o nome desejado com o mesmo comando. Veja:
$ ./nomedesejavel
Uma ltima observao que deve ser comentada o motivo do arquivo criado no editor de texto se
9
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
chamar programa-001.c. Na verdade o nome do arquivo pode ser qualquer um, mas a extenso .c define que se
trata de um cdigo-fonte escrito na linguagem C. Quando se trabalha com a linguagem C++, por exemplo, a
extenso do arquivo se torna .cpp. Seguindo essas regras, possvel compilar todos os programas apresentados
neste trabalho em qualquer compilador que segue o padro ANSI C no SO que utilizar.
3.2 As 4 operaes bsicas da Matemtica
A utilizao das 4 operaes bsicas da Matemtica de grande importncia para o uso cotidiano.
A visita ao supermercado no incio ou fim do ms um timo exemplo de subtrao. O 13 salrio outro bom
exemplo de adio de dinheiro no oramento familiar. Logo, as 4 operaes bsicas que sero mencionadas so:
soma, subtrao, multiplicao e diviso. Para se entender o conceito das operaes com o uso da linguagem C,
observe o cdigo-fonte abaixo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
double )* +* "%
printf ($n,amos somar dois numeros.)%
printf ($n$n-i.ite o /alor de )0)%
scanf (1lf*2))%
.etchar ()%
printf (-i.ite o /alor de +0)%
scanf (1lf*2+)%
.etchar ()%
"3)4+%
printf (" e i.ual a0 1lf$n*")%
.etchar ()%
return '%
(
FIGURA 3.2.1 Cdigo-fonte da soma de 2 nmeros.
A Parte 3 do cdigo-fonte acima, onde contm uma das 4 operaes bsicas da matemtica e o
seu funcionamento na linguagem C. Primeiramente, se escreve o cdigo-fonte no editor de texto puro j
mencionado e salva o arquivo com o nome: programa-002.c. Assim, os programas apresentados neste trabalho sero
armazenados em ordem crescente de dificuldade.
Os nmeros e letras do alfabeto podem ter diversos significados e para se atribuir o valor de um
nmero a uma letra ou palavra, se deve declar-las no cdigo-fonte. Veja a tabela abaixo para entender alguns
padres que a linguagem C utiliza:
TABELA 3.2.1 (pgina 18 Apostila Curso de Linguagem C UFMG)
Tipo Formato para leitura com
scanf
Intervalo (Incio) Intervalo (Fim)
char %c -128 127
unsigned char %c 0 255
signed char %c -128 127
int %i -32.768 32.767
unsigned int %u 0 65.535
signed int %i -32.768 32.767
short int %hi -32.768 32.767
unsigned short int %hu 0 65.535
signed short int %hi -32.768 32.767
long int %li -2.147.483.648 2.147.483.647
signed long int %li -2.147.483.648 2.147.483.647
10
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
unsigned long int %lu 0 4.294.967.295
float %f 3,4E-38 3,4E+38
double %lf 1,7E-308 1,7E+308
long double %Lf 3,4E-4932 3,4E+4932
Agora, basta entender cada linha do cdigo-fonte escrito. Veja que aps declarada a funo
main, foi afirmada na declarao double x, y, z; que x, y, z assumiram um valor numrico do tipo double. O
tipo double informa que as variveis declaradas se encontram com um intervalo numrico entre 1,7E-308 e
1,7E+308, ou seja, esses sero os valores mximo e mnimos admitidos durante os clculos. Aps a declarao de x,
y e z, basta imprimir na tela o prximo passo na execuo do programa. informado que o usurio deve entrar com
o valor de x que ser somado com outro nmero.
Para a entrada do valor de x, utilizada a funo scanf que a responsvel por armazenar
todas as informaes de entrada pelo teclado. A funo scanf na entrada do valor de x, explica que ele ser um
double e que seu valor ficar armazenado em x. Veja a linha dessa funo mais uma vez:
scanf (%lf,&x);
Veja que dentro da funo scanf se apresentam 2 termos bastante interessantes que devem ser
explicados agora. O que se encontra dentro de aspas %lf se refere que o termo x ser de valor double, pois
lf seria igual a long float. Mas o termo long float o mesmo que double. A linguagem C faz essas
diferenas que sero percebidas ao longo dos exemplos apresentados nos captulos subseqentes. O termo &x
apresentado aps a vrgula, significa que o valor de x ser digitado no teclado e que assumir o tipo de nmero
designado antes da vrgula. Pode parecer um pouco complicado e confuso, mas a linguagem C por incrvel que
parea a mais fcil de ser compreendida pela maiorias das pessoas que buscam aprender um linguagem de
programao.
Continuando a explicao do cdigo-fonte, a funo getchar () apresentada logo em seguida,
pois espera que o usurio pressione a tecla Enter do teclado para continuar com a execuo do programa. O mais
importante da funo getchar () no momento a pausa que ela provoca durante a execuo.
Pode se perceber que as prximas 3 linhas depois da execuo da funo getchar () a repetio
de entrada de um valor, mas agora do y que o valor a ser somado com o x. Continuando com a linha que
determina o valor de z, que o resultado da operao matemtica, se obtm: z = x + y. Note, que no necessrio
informar o tipo de dado do z, pois ele j foi declarado no incio do programa.
Agora veja a forma de como mostrado o valor de z, j calculado pela soma dos valores de x e
y:
printf ("z e igual a: %lf\n",z);
Simplesmente, ser impresso na tela a frase z e igual a: com o valor de z sendo do tipo
double e chamado para a posio em que %lf se encontra. Aps a vrgula digitamos o termos que ser chamado
para a posio, e se percebe que o valor de z. Um detalhe importante so as aspas utilizadas no incio e fim da
frase que se deseja imprimir na tela.
Depois de todos esses passos explicados, deve-se inserir a funo getchar () mais uma vez para
pausar a execuo. A linha seguinte, serve para encerrar o programa apresentado, pois a funo return 0 apresenta
o significado de exit nessa situao. Mas ela ser melhor abordada nos exemplos dos captulos posteriores. O
return 0 para retornar o valor de zero para a funo main que logo entender que para o valor zero se deve
encerrar o programa.
A operao de soma apresentada pode ser substituda pelas outras 3 operaes da Matemtica,
bastando substituir o sinal de operao.
3.3 Entendendo as funes trigonomtricas
O seo 3.3 trs 2 exemplos para a utilizao das relaes trigonomtricas. O primeiro exemplo
pode ser considerado a forma mais simples de se usar funes seno, cosseno e tangente. J o segundo exemplo,
apresenta o conceito de uma funo previamente definida e chamada quando necessria. um pouco complicado de
se entender no segundo exemplo, mas de grande importncia para a reduo do nmero de linhas e elevar a
11
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
elegncia do cdigo-fonte escrito.
O primeiro exemplo trs o simples clculo do seno de um nmero, mas a linguagem C no
trabalha com graus, e sim com radianos. Logo, necessrio fazer a transformao do ngulo antes da funo seno ou
dentro dela. Observe o primeiro exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
double )* +%
printf($n5ntre com o 6n.ulo em .raus para calcularmos o seno0)%
scanf(1lf*2))%
.etchar()%
+ 3 sin(()789P:)/1;')%
printf ($n< /alor do seno e0 1lf$n*+)%
.etchar()%
return '%
(
FIGURA 3.3.1 Cdigo-fonte de programa para converso de ngulos.
Note que na 11 linha do cdigo-fonte, est a transformao do ngulo para radianos dentro da
funo seno. Essa a forma mais simples de se entender e utilizar, mas a quantidade de linhas e a confuso quando
aplicada em uma equao mais complexa bem ntida, assim, ela deixa de ser interessante. A sada seria escrever
uma funo entre o cabealho e a funo main do cdigo-fonte. Veja o segundo exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//------------------------------------------------------
double -e.=o>ad (double ))
{return ()789P:/1;')%(
//------------------------------------------------------
main ()
{
double )* +%
printf($n5ntre com o 6n.ulo para calcularmos o seno0)%
scanf(1lf*2))%
.etchar()%
+ 3 sin(-e.=o>ad()))%
printf ($n< /alor do seno e0 1lf$n*+)%
.etchar()%
return '%
(
FIGURA 3.3.2 - Cdigo-fonte de programa alternativo para converso de ngulos.
O trecho da criao da funo est na primeira caixa de texto, exatamente entre o CABEALHO
e o DESENVOLVIMENTO, e sua aplicao na segunda caixa de texto. visvel a melhora na escrita, pois todas
as vezes que for necessria a transformao de um ngulo para radianos nas funes trigonomtricas, basta chamar
DegToRad(). A escolha da expresso DegToRad para ficar de fcil entendimento a frase Degree to Radian,
que traduzindo para a lngua portuguesa, significa Graus para Radianos. possvel criar funes de diversos tipos.
Vale ressaltar nesse momento que esse mtodo de criao de funes ser bastante til na criao de cdigos-fonte
em blocos.
Para explicar o que ocorre com a funo DegToRad, importante entender a sua estrutura no
trecho na primeira caixa de texto:
double DegToRad (double x)
{return (x*M_PI/180);}
declarado que a a funo DegToRad do tipo double e retornar um valor x do tipo
double. Em seu corpo, foi informado que o valor de retorno deve ser o valor x, mas sendo multiplicado por
e dividido por 180. Isso resulta, exatamente, na transformao do valor de x em radianos. Ou seja, veja a aplicao
da funo:
12
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
y = sin(DegToRad(x));
O valor de x inserido na funo main sofre a transformao para radianos devido a funo
DegToRad e dessa forma, o valor do seno pode ser calculado de forma correta. Aps a escrita do programa e sua
explicao de funcionamento, basta compil-lo. A compilao possui um detalhe quando utilizado o SO Ubuntu
7.10. Na utilizao do e das funes trigonomtricas necessria a insero do termo -lm no final do
comando de compilao do GCC. Essa expresso deve ser usada para forar o compilador a usar a biblioteca
matemtica que possui as funes trigonomtricas e o . Uma sugesto para o nome dos arquivos referentes aos
dois exemplos nesse captulo so programa-003.c e programa-004.c respectivamente. Veja como seria o comando
de compilao de cada um dos exemplos:
$ gcc programa-003.c -lm -o nomedesejavel
e
$ gcc programa-004.c -lm -o nomedesejavel
Aps a compilao dos cdigos-fonte, a execuo do programa ser satisfatria e os resultados so
obtidos com 6 casas decimais significativas.
13
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
4 DIMENSIONAMENTO DE ISOLAMENTO TRMICO EM LINHA DE VAPOR
4.1 Introduo
O processo de dimensionamento e escolha de um isolamento trmico em linhas de vapor ou
qualquer outra substncia, deve ser realizado de forma a no apresentar uma perda considervel de material de
construo e assim reduzir os custos. necessrio abordar a forma de como os clculos devem ser realizados e para
tal situao, necessrio o uso de conhecimentos em transmisso de calor. A rotina computacional que
apresentada no decorrer do captulo poder servir de base para resoluo de situaes na vida profissional de um
engenheiro.
4.2 Caractersticas do problema
Para iniciar a elaborao de uma rotina computacional para o dimensionamento do isolamento em
um duto, necessrio tomar como base algumas informaes como: o fluido em questo, o material da tubulao e
os diversos tipos de isolantes trmicos, por exemplo. Esse captulo trata do desenvolvimento de tal rotina
computacional para as seguintes situaes:
1. Elaborar a rotina computacional para o dimensionamento de uma linha de vapor a partir da queda de
temperatura da linha;
2. Poder inverter o procedimento e calcular a queda de temperatura de uma linha de vapor a partir da
espessura do isolamento.
O dimensionamento deve ser calculado de forma automtica a partir de um conjunto mnimo de
dados de entrada e considerando que o vapor escoa em regime estacionrio e plenamente desenvolvido. Lembrando
que as condies de transferncia de calor por conveco so assumidas constantes.
Os resultados que devem ser apresentados no final da execuo do programa para a situao 1 so:
espessura do isolamento trmico crtica e recomendada, temperatura da superfcie externa do isolamento e peso do
isolamento trmico por unidade de comprimento. Os resultados que devem ser apresentados no final da
execuo do programa para a situao 2 so: espessura do isolamento trmico crtico, queda de temperatura por
unidade de comprimento, temperatura da superfcie externa do isolamento e peso do isolamento trmico por unidade
de comprimento.
Para complicar um pouco mais na elaborao do programa, interessante a opo de material da
tubulao e do isolamento trmico empregado. O comprimento e dimetro da tubulao tambm so inseridos como
dados do programa. Dessa forma, o software pode ser elaborado de forma mais abrangente.
4.3 Base terica
A rotina computacional apresenta duas possibilidades de clculo de espessura de isolamento e
queda de temperatura na linha, veja:
1 Determinar a espessura de um isolamento trmico a partir da queda de temperatura da linha;
2 Determinar a queda de temperatura a partir da espessura de um isolamento trmico.
Para as duas situaes propostas necessrio o conhecimento do que ocorre na linha de vapor.
Veja a figura abaixo:
FIGURA 4.3.1 Desenho esquemtico do isolamento trmico em um trecho de tubulao.
Para calcular alguma das duas situaes propostas pela rotina computacional, necessrio
14
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
considerar a condutividade trmica do tubo, do isolamento e a conveco do isolamento trmico com o ambiente. A
taxa de conduo trmica em superfcies cilndricas dada pela frmula:
dr
dT
L k qr = ) 2 (
(4.3.1)
As resistncias trmicas da seco circular que devem ser consideradas so:
FIGURA 4.3.2 Desenho esquemtico de um corte um trecho de tubulao com isolamento trmico.
A lmina de alumnio que, geralmente, envolve o isolamento para proteg-lo da umidade pode ser
desconsiderada, pois a espessura da lmina de aproximadamente 0,3 mm. Logo, o valor da taxa de conduo
trmica pode ser escrita como:
3 2
1
2
) 2 / 3 ln(
2
) 1 / 2 ln(
r h L k L
r r
k L
r r
T Ti
q
i t
r

+

+


=

(4.3.2)
E igualando com uma outra forma de escrever a taxa de conduo trmica:
T c m
r h L k L
r r
k L
r r
T Ti
p
i t
=

+

+


3 2
1
2
) 2 / 3 ln(
2
) 1 / 2 ln(

(4.3.3)
Com essa equao acima, possvel determinar a queda de temperatura isolando o T ou a
espessura do isolamento trmico pela subtrao da expresso matemtica r3 r2. O cdigo-fonte descrito na
sesso abaixo, apresenta todo o procedimento das equaes apresentadas possvel o usurio determinar durante a
execuo do programa diversas variveis de projeto. A escolha do material do tubo, o tipo de isolamento, vazo
mssica do vapor, temperatura de entrada do vapor e outras informaes so exemplos de variveis que podem ser
inseridas.
4.4 Cdigo-fonte comentado passo a passo
O cdigo-fonte apresentado por partes, pois o seu contedo na ntegra se encontra no Apndice
B. Sero apresentados trechos que explicam a funcionalidade do programa, e as partes de complementao do
mesmo so omitidas quando desnecessrias para o seu entendimento.
Aps o CABEALHO padro j mencionado nos captulos anteriores, se deve fazer a escolha
entre as duas opes de soluo do programa ou a finalizao do mesmo. Um outro detalhe a descrio do termo
inicio:, ele o responsvel pela reinicializao do programa. Veja:
15
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
main ()
{
inicio0
printf ($n -:85!?:<!@85!=< -5 :?<A@85!=< =5>8:B< 58 A:!C@ -5 ,@P<>)%
printf ($n$n$n 1 - -etermina a espessura do isolamento a partir da Dueda de
temperatura.)%
printf ($n 2 - -etermina a Dueda de temperatura a partir da espessura do isolamento.)%
printf ($n & - Einali"ar o pro.rama.)%
printf ($n$n$n 5scolha a ?ituacao0)%
A escolha realizada pela adio de uma condio chamada if, que apresenta o significado de
se em portugus. Com os valores de 1 at 3 de acordo com as opes mencionadas no incio do programa.
Observe:
int )%
scanf (1d*2))%
if ()331)
{
O incio da condio caso seja escolhida a primeira opo de execuo do programa, com a
declarao de variveis da Equao 4.3.3. Note que todos os valores so do tipo double, assim, possvel se
trabalhar com um intervalo bastante considervel. Perceba:
double >1* >2* >&* F:* F=* C* A* ,@G@<* Bp* e* /a"ao*
B'* B1* B2* B&* =eta* =:* =@* =si* >B* Euncao* =9int* =9e)t*
P5?<* Hr* d=* >o* I* 5iso* d=porA* A1* A2* =1* =2%
Aps a declarao das variveis dentro da primeira condio if, diversos valores so perguntados
e inseridos na memria. Dessa forma, as variveis assumem o seu valor ou servem de base para valores de outras
variveis. A especificao do dimetro externo do tubo, espessura da parede do tubo so variveis necessrias para o
clculo da varivel responsvel pelo raio interno do tubo. Veja:
printf ($n 5speficiDue a diametro e)terno do tubo (m)0 )%
scanf (1lf*2>2)%
printf ( 5specifiDue a espessura da parede do tubo (m)0 )%
scanf (1lf*2e)%
>1 3 >2-e%
O prximo passo dentro da primeira condio a escolha do material do tubo que compe a
tubulao. Depois das mensagens informativas das opes dos tubos, criada uma seqncia de condies do tipo
if, novamente, para a escolha da caracterstica do coeficiente de condutividade trmica por conduo. Observe:
printf ($n 5scolha o material do tubo0$n)%
printf ( 1 - =ubo de aco carbono @!?: 1'1'.$n)%
printf ( 2 - =ubo de aco :!<J @!?: &'K.$n)%
printf ( & - =udo de bron"e comercial.$n)%
printf ( 5scolha0 )%
int F=ubo%
scanf (1d*2F=ubo)%
if (F=ubo 33 1)
{F= 3 L&.M%( //=ubo de aNo carbono @!?: 1'1'.
if (F=ubo 33 2)
{F= 3 1K.M%( //=ubo de aNo :!<J @!?: &'K.
if (F=ubo 33 &)
{F= 3 O2%( //=ubo de bron"e comercial.
16
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Agora, o mesmo procedimento para a escolha do tipo de isolamento trmico e a adio da
caracterstica de densidade. Perceba:
printf ($n 5scolha o material do isolamento termico0$n)%
printf ( 1 - 8anta de la de /idro.$n)%
printf ( 2 - =ubo bi-partido de la de rocha.$n)%
printf ( & - Elocos de la de rocha.$n)%
printf ( 5scolha0 )%
int F:solamento%
scanf (1d*2F:solamento)%
if (F:solamento 33 1)
{F: 3 '.'2O%
>o 3 K'%(
if (F:solamento 33 2)
{F: 3 '.'KL%
>o 3 1&'%(
if (F:solamento 33 &)
{F: 3 '.'&P%
>o 3 L'%(
Logo em seguida, o valor do coeficiente de conveco externa adotado e mais informaes so
pedidas como: comprimento da tubulao, vazo mssica do vapor, temperaturas interna e externa da tubulao.
Veja:
C 3 &'% //Boeficiente de con/ecNQo e)terna.
printf ($n :nforme o comprimento da tubulacao (m)0 )%
scanf (1lf*2A)%
printf ( :nforme a /a"ao massica do /apor (R./s)0 )%
scanf (1lf*2/a"ao)%
,@G@< 3 /a"ao/&L''%
printf ( :nforme a temperatura do /apor (oB)0 )%
scanf (1lf*2=9int)%
printf ( :nforme a temperatura do ambiente (oB)0 )%
scanf (1lf*2=9e)t)%
Aps a entrada de todas as informaes, as equaes abaixo fazem outros clculos como a
converso da temperatura de C para K. Vale ressaltar que o valor do vapor no deve ultrapassar o intervalo de 250
K 1200 K, pois os valores das constantes C0, C1, C2 e C3 para o clculo do calor especfico Cp esto fixados no
cdigo-fonte. Perceba que no trecho abaixo, tambm declarado o valor da gravidade para o clculo do peso do
isolamento. Observe:
=: 3 =9int42P&.1O%
=@ 3 =9e)t42P&.1O%
=eta 3 =:/1'''%
B' 3 1.PM%
B1 3 '.1'P7=eta%
B2 3 '.O;L7=eta7=eta%
B& 3 -'.27=eta7=eta7=eta%
I 3 M.;1%
Bp 3 (B'4B14B24B&)71'''%
Abaixo, contm uma das formas de se calcular o valor do isolamento trmico a partir da queda de
temperatura na linha. O mtodo aplicado foi a aproximao dos dois lados da Equao 4.3.3, pois o valor do raio
externo do isolamento trmico assumido, inicialmente, exatamente igual ao raio externo do tubo selecionado.
Dessa forma, a condio while, que possui o significado de enquanto em portugus, aplicada para que ocorra
o incremento de 0,0000001 no valor do raio externo do isolamento. Assim, ocorre um looping dentro da condio
while at que o valor do raio externo do isolamento permita a veracidade da igualdade da Equao 4.3.3. Ento,
encontrado o valor do raio externo do isolamento, fcil de encontrar o valor da espessura do isolamento pela
17
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
expresso Eiso = R3-R2. Perceba:
>& 3 >2%
printf ( :nforme a Dueda de temperatura na linha (oB/m)0)%
scanf (1lf*2d=porA)%
Euncao 3 ((=:-=@)/((((lo.(>2/>1)))/(2789P:7F=7A))4(((lo.(>&/>2)))/(2789P:7F:7A))4(1/
(C72789P:7>&7A))))/(,@G@<7Bp)%
Shile (((d=porA7A)/Euncao)<1)
{
>& 3 >&4'.''''''1%
Euncao 3 ((=:-=@)/((((lo.(>2/>1)))/(2789P:7F=7A))4(((lo.(>&/>2)))/(2789P:7F:7A))4(1/
(C72789P:7>&7A))))/(,@G@<7Bp)%
(
5iso 3 >&->2%
Aps o clculo da espessura do isolamento trmico, o programa continua a resolver a primeira
condio if caso tenha sido escolhida a primeira opo de soluo. E o passo seguinte, a impresso dos
resultados e o clculo de algumas informaes teis provenientes do processo de dimensionamento do isolamento. A
temperatura externa do isolamento, o peso do isolamento por unidade de comprimento e o raio crtico do isolamento
so exemplos de respostas que podem ser adquiridas com o programa. Veja:
printf ($n 5spessura do isolamento recomendada 333333333333333333333333> 1O.Klf (m)*
5iso)%
A1 3 lo.(>2/>1)%
A2 3 lo.(>&/>2)%
=1 3 (A17C7>&)/F=%
=2 3 (A27C7>&)/F:%
=si 3 ((=:/(=14=2))4=@)/((1/(=14=2))41)-2P&.1O%
printf ($n =emperatura da superficie e)terna do isolamento 333333333333> 1O.2lf oB*
=si)%
P5?< 3 I7>o7(>&7>&->27>2)789P:%
>B 3 (F:/C)%
printf ($n < peso do isolamento em R.f/m 333333333333333333333333333333> 1O.&lf !/m*
P5?<)%
printf ($n < raio critico do isolamento 3333333333333333333333333333333> 1O.Olf m* >B)%
Um outro detalhe que vale ressaltar a influncia do raio crtico na escolha e utilizao do
isolamento trmico. Para a definio do raio crtico sendo maior ou menor que o raio interno do tubo inserida a
condio if j conhecida, e em seguida a condio else para a complementao. Aps a definio do raio crtico
em relao ao raio interno do tubo, a continuao do programa segue com o comando goto inicio; que se trata da
volta de execuo do programa para o termo inicio:. Veja:
if (>B<>1)
{
printf ($n$n Bomo o raio do tubo e maior do Due o raio critico* DualDuer adicao de)%
printf ($n camadas de isolamento ira aumentar a resistencia total e portanto)%
printf ($n diminuindo a perda de calor.)%
(
else
{
printf ($n$n Bomo o raio do tubo e menor Due o raio critico* a resistencia total)%
printf ($n diminui e* portanto* a ta)a de calor aumenta com a adicao de camadas)%
printf ($n de isolamento.)%
(
printf ($n$n$n Pressione a tecla 5!=5> para reiniciar.)%
.etchar()%
.etchar()%
.oto inicio%
(
Agora, a resoluo da segunda opo do programa explicada. Perceba que a segunda opo se
inicia pela condio if. Observe:
18
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
if ()332)
{
A declarao de todas as variveis necessria, pois a condio if trata o cdigo-fonte com
ramificaes independentes. Assim, existe a necessidade de declarar tudo novamente, mas basta copiar a declarao
j realizada na condio if inicial. Perceba:
double >1* >2* >&* F:* F=* C* A* ,@G@<* Bp* =1* =2* =9int* =9e)t*
B'* B1* B2* B&* =eta* =:* =@* =si* >B* A1* A2* e* /a"ao*
-1* -2* P5?<* Hr* d=* >o* I* 5iso* d=porA* H1* H2* H&%
Os passos seguintes so os mesmos da primeira condio j apresentada. Perceba que nesse
segundo caso, a Equao 4.3.3 precisa ter o valor da queda de temperatura isolada para o clculo. Clculo bem
mais fcil do que na primeira opo. Veja:
printf ($n 5specifiDue a diametro e)terno do tubo (m)0 )%
scanf (1lf*2>2)%
printf ( 5specifiDue a espessura da parede do tubo (m)0 )%
scanf (1lf*2e)%
>1 3 >2-e%
printf ($n 5scolha o material do tubo0$n)%
printf ( 1 - =ubo de aco carbono @!?: 1'1'.$n)%
printf ( 2 - =ubo de aco :!<J @!?: &'K.$n)%
printf ( & - =udo de bron"e comercial.$n)%
printf ( 5scolha0 )%
int F=ubo%
scanf (1d*2F=ubo)%
if (F=ubo 33 1)
{F= 3 L&.M%( //=ubo de aNo carbono @!?: 1'1'.
if (F=ubo 33 2)
{F= 3 1K.M%( //=ubo de aNo :!<J @!?: &'K.
if (F=ubo 33 &)
{F= 3 O2%( //=ubo de bron"e comercial.
printf ($n 5scolha o material do isolamento termico0$n)%
printf ( 1 - 8anta de la de /idro.$n)%
printf ( 2 - =ubo bi-partido de la de rocha.$n)%
printf ( & - Elocos de la de rocha.$n)%
printf ( 5scolha0 )%
int F:solamento%
scanf (1d*2F:solamento)%
if (F:solamento 33 1)
{F: 3 '.'2O%
>o 3 K'%(
if (F:solamento 33 2)
{F: 3 '.'KL%
>o 3 1&'%(
if (F:solamento 33 &)
{F: 3 '.'&P%
>o 3 L'%(
C 3 &'%
printf ($n :nforme o comprimento da tubulacao (m)0 )%
scanf (1lf*2A)%
printf ( :nforme a /a"ao massica do /apor (R./s)0 )%
scanf (1lf*2/a"ao)%
,@G@< 3 /a"ao/&L''%
printf ( :nforme a temperatura do /apor (oB)0 )%
scanf (1lf*2=9int)%
printf ( :nforme a temperatura do ambiente (oB)0 )%
scanf (1lf*2=9e)t)%
=: 3 =9int42P&.1O%
=@ 3 =9e)t42P&.1O%
=eta 3 =:/1'''%
B' 3 1.PM%
B1 3 '.1'P7=eta%
B2 3 '.O;L7=eta7=eta%
19
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
B& 3 -'.27=eta7=eta7=eta%
I 3 M.;1%
Bp 3 (B'4B14B24B&)71'''%

Agora, basta entrar com o valor da espessura do isolamento para a execuo restante do programa
elaborado. Perceba que so recalculados todos os itens da primeira condio, novamente, mas com o valor da
espessura do isolamento designada pelo o usurio. Observe:
printf ( 5spessura do isolamento deseTado (m)0)%
scanf (1lf*25iso)%
>& 3 >245iso%
A1 3 lo.(>2/>1)%
A2 3 lo.(>&/>2)%
-1 3 2789P:7F=7A%
-2 3 2789P:7F:7A%
H1 3 A1/-1%
H2 3 A2/-2%
H& 3 1/(2789P:7>&7C7A)%
Hr 3 (=:-=@)/(H14H24H&)%
d= 3 (Hr)/(,@G@<7Bp)%
d=porA 3 d=/A%
=1 3 (A17C7>&)/F=%
=2 3 (A27C7>&)/F:%
=si 3 ((=:/(=14=2))4=@)/((1/(=14=2))41)-2P&.1O%
P5?< 3 I7>o7(>&7>&->27>2)789P:%
>B 3 (F:/C)%
printf ($n @ Dueda de temperatura na linha por unidade de comprimento 3> 1O.Mlf oB/m*
d=porA)%
printf ($n =emperatura da superficie e)terna do isolamento 333333333333> 1O.2lf oB*
=si)%
printf ($n < peso do isolamento em R.f/m 333333333333333333333333333333> 1O.&lf !/m*
P5?<)%
printf ($n < raio critico do isolamento 3333333333333333333333333333333> 1O.Olf m* >B)%

A definio do raio crtico encontrado mais uma vez apresentada e a reinicializao do programa
executada para se escolher, novamente, as opes ou a finalizao do programa. Note:
if (>B<>1)
{
printf ($n$n Bomo o raio do tubo e maior do Due o raio critico* DualDuer adicao de)%
printf ($n camadas de isolamento ira aumentar a resistencia total e portanto)%
printf ($n diminuindo a perda de calor.)%
(
else
{
printf ($n$n Bomo o raio do tubo e menor Due o raio critico* a resistencia total)%
printf ($n diminui e* portanto* a ta)a de calor aumenta com a adicao de camadas)%
printf ($n de isolamento.)%
(
printf ($n$n$n Pressione a tecla 5!=5> para reiniciar.)%
.etchar()%
.etchar()%
.oto inicio%
(
A ltima condio if que se refere s opes iniciais de apresentao do programa, responsvel
somente para a finalizao do mesmo. Perceba que o termo return 0 utilizado para tal situao. Veja:
if ()33&)
{
return '%
(
.etchar()%
20
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
return '%
(
As possibilidades para alterao e melhorias do programa apresentado nesse captulo so
inmeras. O programa pode sofrer o acrscimo de materiais para isolamento trmico, tubos de outros materiais para
a linha de vapor, o acrscimo de novos fluidos e etc, so algumas opes de melhorias e expanses que podem ser
citadas.
21
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
5 PROJETO DE UM TROCADOR DE CALOR DO TIPO
CASCO E TUBOS (GUA LEO)
5.1 Introduo
O projeto de trocadores de calor de grande valia para a profissionais na rea de engenharia, seja
um Engenheiro Mecnico ou Engenheiro Qumico. Os trocadores de calor so utilizados em sua grande maioria nas
indstrias qumicas para resfriar ou aquecer uma determinada substncia. Um exemplo bem tpico e fcil de
demonstrar a utilizao desse equipamento para o aquecimento de gua na entrada de uma caldeira, assim, a gua
entra pr-aquecida no afetando de forma brusca o fornecimento de vapor da caldeira. Esse captulo demonstra a
elaborao de uma rotina computacional para o projeto de um trocador de calor do tipo casco e tubo.
FIGURA 5.1.1 Vista de corte de um trocador de calor do tipo casco-tubo.
Para se ter um problema palpvel necessrio escolher lquidos com suas propriedades em tabelas
conhecidas. Para exemplificar a rotina computacional deste captulo, as substncias escolhidas so: gua e leo de
motor. Sendo o leo como o fluido de maior temperatura e que ser resfriado pela perda de calor.
5.2 Caractersticas do problema
O problema comumente encontrado para o projeto de um trocador de calor a ausncia de alguns
dados iniciais. As possibilidades de configurao de um trocador de calor casco-tubo so inimaginveis para um
mesmo problema. A experincia e a prtica constante no projeto e dimensionamento de trocadores de calor leva o
projetista a uma proximidade da melhor relao entre custo e benefcio.
Um timo problema para a elaborao de uma rotina computacional de um trocador de calor do
tipo casco-tubo para arrefecimento e sem mudana de fase. Fluidos como a gua, que utilizada para o resfriamento
de um leo de motor utilizado na lubrificao de um compressor bastante comum. A rotina computacional deste
captulo trs a resoluo desse problema. Os dados do leo de motor a ser considerado so:
A temperatura de entrada no trocador de 95 C e sua sada com 60 C com uma vazo de 75 litros por
minuto;
O leo de motor passa pelo casco, pois geralmente recomendado que o fluido quente passe por entre o
feixe de tubos;
Consideraes adicionais como: dimetro do bocal de entrada e sada do leo, adio de chicanas, opes
de intervalos de temperatura e outras informaes, so cargo do projetista.
Os dados da gua para resfriamento do leo deve ter as seguintes caractersticas:
Entrada a temperatura ambiente;
Ela passa pelo feixe de tubos fazendo com que ocorra a troca trmica com o leo;
O dimetro dos tubos para a passagem da gua de definio do projetista;
O material dos tubos considerado pelo projetista;
Outras consideraes ficam a cargo do projetista.
Para a elaborao mais facilitada da rotina computacional, pode se admitir que o dimetro do casco
pode ser escolhido entre 3 e 12 e seu comprimento ente 350 mm e 3050 mm. O material do casco, tampos, bocais
e outros acessrios fica a cargo do projetista.
22
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Com alguns dos parmetros j descritos, fica mais fcil de se elaborar a rotina computacional.
interessante que o programa fornea dados auxiliares como: rea de troca trmica, coeficiente global de
transferncia de calor, excesso do trocador e outros. No prximo item 5.3 Base terica. h uma das formas de se
realizar um programa para o projeto do trocador de calor.
5.3 Base terica
Antes de prosseguir com a elaborao da rotina computacional, preciso compreender a seqncia
de resoluo. Primeiramente, necessrio fazer algumas consideraes como:
O leo passa do lado do casco e a gua por dentro dos tubos do feixe;
A gua e o leo apresentam suas correntes em sentidos contrrios devido a maior troca trmica;
O escoamento dos fluidos se encontra plenamente desenvolvido;
Perda de calor para a vizinhana, variaes de energia cintica e potencial desprezadas;
Resistncia trmica da parede dos tubos do feixe so desprezveis, pois deve-se considerar um tubo
delgado;
Regime estacionrio;
No ocorre gerao de trabalho;
Perda de carga desprezvel.
Um detalhe importante para a ser mencionado que a rotina abaixo elaborada para o clculo do
comprimento do casco do trocador de calor. Dessa forma, o usurio do programa entrar com os dados dos lquidos
e far algumas escolhas sobre a dimenso do trocador de calor. O resultados que sero apresentados serviro para
uma anlise crtica que visa a viabilidade do projeto.
So utilizadas para os clculos as tabelas com as propriedades da gua e do leo de motor,
encontradas em diversos livros de transmisso de calor, pois ser necessrio a interpolao de diversos valores. Para
se iniciar o procedimento de clculo necessrio o clculo das temperaturas mdias da gua e do leo. Veja as
equaes:
T
m ,c
=
(T
i , c
+T
o, c
)
2
(5.3.1)
e
T
m ,t
=
(T
i ,t
+T
o, t
)
2
(5.3.2)
A Equao 5.3.1 representa a temperatura mdia da gua que ser aquecida e a Equao 5.3.2
representa a temperatura mdia do leo que ser resfriado. Assim a troca trmica ocorrer no sentido leo->gua, ou
seja, o calor ser retirado do leo e absorvido pela gua.
Para dar incio a resoluo do problema, necessrio escolher a substncia na qual ir ser
calculada primeiramente. apresentada a partir de agora a metodologia do leo que passa pelo casco do trocador de
calor.
O calor extrado calculado pela equao:
q= mc
p
(T
i , c
T
o ,c
) (5.3.3)
Onde o primeiro termo a quantidade de calor extrada em KJ/s, o segundo trata-se da vazo
mssica em kg/s, o terceiro o calor especfico em KJ/kg.K, e o quarto termo representa a diferena de temperatura
da substncia. Note que a diferena de temperatura exatamente o valor de entrada, subtrado do valor de sada da
substncia em questo. Fazendo o clculo para o leo que entra no casco do trocador de calor, se obtm o valor do
calor extrado em KJ/s que ser utilizado mais adiante.
O prximo passo o clculo da velocidade do leo no casco. Veja:
v
c
=
w
A
b
(5.3.4)
O primeiro termo da equao a velocidade do leo no casco em m/s, o terceiro termo que a
23
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
vazo volumtrica em m/s que est se comportando como numerador e o quarto termo se trata rea da seo
transversal do bocal de entrada do leo em m.
Aps o clculo da velocidade do leo no casco, necessrio o clculo da velocidade mxima do
leo no casco para se prosseguir com o desenvolvimento. Veja:
v
max
=
P
( PD
t
)
v
c
(5.3.5)
O primeiro termo representa a velocidade mxima que o leo atingir em m/s. O termo
representado pela letra P se refere ao passo longitudinal do feixe e tubos do trocador de calor. Segundo a normal
TEMA (Tube Exchange Materials Association) um valor que se pode adotar para um passo longitudinal do tubos
utilizados no feixe do trocador no intervalo de 3/8 at 5/8 3/4. Esse valor de 3/4 representa a distncia entre
centros dos tubos do feixe tubular do trocador de calor. Lembrando que o arranjo considerado para os clculos do
tipo quadrangular.
O termo que subtrai o passo longitudinal o prprio dimetro dos tubos utilizados no feixe tubular
do trocador de calor. Por fim, o termo final a velocidade do leo j calculada e mencionada anteriormente. Uma
observao que se deve fazer agora, sobre a unidade adotada no passo e no dimetro do tubo do feixe tubular, todas
elas so em metros.
Com os dados calculados at o momento, se pode calcular o valor do nmero de Reynolds no
casco pela equao:
Re
D ,c
=
(j
c
v
max
D
t
)
j
c
(5.3.6)
Lembrando que a metodologia de clculo apresentado para a criao de um trocador de calor no
intervalo dado inicialmente.
O termo que multiplica a velocidade mxima e o dimetro externo dos tubos que compe o feixe
tubular do trocador de calor a densidade especfica do fluido em kg/m, e o denominador da equao a
viscosidade dinmica em N.s/m. Lembrando que o nmero de Reynolds adimensional.
O prximo passo o clculo do nmero de Nusselt, mas para isso se deve conhecer a frmula.
Veja:
Nu
D, c
=C( Re
D
)
m
( Pr )
n

(
Pr
Pr
s
)
0,25
(5.3.7)
Veja que os termos m e n so encontrados a partir do valor do nmero de Raynolds calculado
anteriormente. Veja a tabela:
TABELA 5.3.1 (Transmisso de Calor e de Massa Incropera e DeWitt)
Re
D
m n
1 100 0,40 0,36
100 1000 0,50 0,36
10
3
2x10
5
0,63 0,36
2x10
5
2x10
6
0,80 0,40
O termo C apresentado na Equao 5.3.7 deve ser escolhido de acordo com a tabela abaixo:
TABELA 5.3.2 (Transferncia de Calor e de Massa Incropera e DeWitt)
N
f
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
C 0,7 0,8 0,86 0,9 0,93 0,95 0,96 0,96 0,98 0,98 0,98 0,98 0,99 0,99 0,99
Todas as tabelas apresentadas at o momento se referem a resoluo do problema proposto no
incio do captulo. Para outras situaes necessrio toda uma mudana no mtodo de clculo aplicado, tal mudana
pode ser aplicada como expanso do programa.
Aps o calculo do nmero de Nusselt, possvel determinar o valor do coeficiente de conveco
dentro do trocador de calor pelo casco. Veja:
24
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
h
c
=
Nu
D
k
c
D
t
(5.3.8)
Encontrado o valor do coeficiente de conveco do casco, o prximo passo encontrar o
coeficiente de conveco dos tubos, pois o coeficiente de transferncia global calculado a partir dos dois valores.
Para dar continuidade necessrio calcularmos certos valores e o primeiro deles o fluxo mssico nos tubos do
feixe. Perceba:
m=
q
(c
p ,t
(T
o
T
i
)
t
)
(5.3.9)
Vale ressaltar que o valor de q j foi calculado anteriormente para o casco e esse o mesmo
aplicado para o feixe de tubos. O valor do calor especfico para o fluido dos tubos adquirido da mesma forma que
o fluido do casco, atravs de tabelas e por interpolao quando necessria e apresentado nas mesmas unidades j
mencionadas. O termo (T
o
T
i
)
t
exatamente a diferena de temperatura de entrada e sada do fluido que
desejamos.
Agora necessrio o clculo do nmero de Reynolds pela equao abaixo. Veja:
Re
D ,t
=
4 m
t
( N
t
nD
t
j)
(5.3.10)
Os termos que ainda no foram mencionados so Nt que representa o nmero de tubos do feixe,
e o que tabelado de acordo com o fluido e, geralmente, encontrado nas unidades N.s/m. Agora com o valor do
nmero de Reynolds, necessrio calcular o nmero de Nusselt pela frmula abaixo. Observe:
Nu
D ,t
=
(
f
8
)
( Re
D ,t
1000)Pr
t
(
1+12,7
(
f
8
)
1/2
( Pr
t
2/3
1)
)
(5.3.11)
Sendo o valor de f calculado pela frmula:
f =(0,790ln( Re
D ,t
)1,64)
2
(5.3.12)
O valor de Pr o nmero de Prandtl do fluido e que pode ser obtido por tabelas de propriedades
do fluido atravs de interpolao simples. Aps os clculos realizados, possvel realizar o clculo do coeficiente de
conveco dos tubos atravs da equao abaixo:
h
t
=
Nu
D ,t
k
t
D
t
(5.3.13)
Agora possvel se calcular o coeficiente global de transferncia de calor que servir para o
clculo do comprimento feixe de tubos. Veja a frmula abaixo do coeficiente global:
U=
(
1
h
c
+
1
h
t
)
1
(5.3.14)
Os clculos a partir de agora, so visados para encontrar o valor do comprimento do feixe tubular
que pode ser considerado como o prprio comprimento do trocador de calor. A partir do valor do comprimento do
feixe, uma anlise pode ser realizada para admisso ou recusa do trocador de calor calculado pelo programa. Veja o
procedimento do clculo do comprimento do feixe de tubos:
25
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
L
t
=
q
(PassoN
t
UnD
t
F
cr
AT
lm,CF
)
(5.3.15)
Onde o F
cr
calculado pela equao:
F
cr
=
( R
2
+1)
0,5
ln
(1SR)
(1S)
(1R)ln
(2S)( R+1( R
2
+1)
0,5
)
(2S)( R+1+( R
2
+1)
0,5
)
(5.3.16)
E os valores de R e S podem ser encontrados por:
S=
(T
o, t
T
i ,t
)
(T
i ,c
T
i ,t
)
(5.3.17)
e
R=
(T
i , c
T
o,c
)
(T
o, t
T
i ,t
)
(5.3.18)
Agora, falta apenas encontrar o valor da temperatura logartmica pela equao:
AT
lm, CF
=
(
(T
i ,c
T
o ,t
)(T
o, c
T
i , t
)
)
(
ln
(T
i , c
T
o,t
)
(T
o, c
T
i ,t
)
)
(5.3.19)
Com as equaes acima possvel se encontrar o comprimento do feixe tubular, dessa forma basta
realizar uma anlise dos resultado. Abaixo, segue o cdigo-fonte do programa para o clculo do comprimento do
feixe tubular.
5.4 Cdigo-fonte comentado passo a passo
O cdigo-fonte abaixo se apresenta de forma resumida, pois muitos detalhes de repetio foram
substitudos por linhas pontilhadas. Dessa forma, o cdigo-fonte para entendimento no fica comprometido e nem
extenso demais.
O cdigo-fonte se encontra, totalmente, comentado como os apresentados at o momento. O
CABEALHO do programa o mesmo j apresentado nos captulos anteriores, logo no ser mostrado
novamente. Assim:
main ()
{
//-eclaraNQo de al.umas constantes e /ariU/eis.
int )* +* S%
double =empC5* dC5* cpC5* uC5* /C5* RC5* aC5* PrC5* =empC8* P:* =empC5ntrada* =empC?aida*
=empC?* dC?* cpC?* uC?* /C?* RC?* aC?* PrC?* mC* V* d=empB* mc* >ed=ubo* f* factor''1*
factor''2* !ud=ubo* ht* >* ?* E* factor''&* factor''K* factor''O* factor''L* factor''P* A*
-elta=empA8* @troca* -casco:!* >a"ao* ,olC2<* !udBasco* hc* mh* D* -tubo* -casco* !*
d=empC* Wocal* P* !f* B* Passo* m* n* @bocal* H* ,* ,ma)* >edBasco* /C8* RC8* aC8* PrC8*
dC8* cpC8* uC8* =empB5* =empB?* =empB8* dB5* cpB5* uB5* RB5* PrB5* dB?* cpB?* uB?* RB?*
PrB?* =empB5ntrada* =empB?aida* dB8* cpB8* uB8* RB8* PrB8* @calculada* 5)cesso%
Aps a declarao de todas as variveis do programa, interessante fazer uma figura
representativa de um trocador de calor. Na execuo do programa a imagem fica bem definida. Veja como pode ser
escrita a figura atravs de caracteres:
26
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
//8ensa.em de informaNQo do pro.rama.
printf ($n$n ?<E=X@>5 P@>@ -:85!?:<!@85!=< -5)%
printf ($n =><B@-<> -5 B@A<> -< =:P< B@?B< 5 =VW<)%
printf ($n$n 33333 $n)%
printf ( | | $n)%
printf ( |---|----------------------|---| $n)%
printf ( | ||33333333333333333333|| | $n)%
printf ( || | ||33333333333333333333|| | ||$n)%
printf ( ||--- ||33333333333333333333|| ---||$n)%
printf ( ||--- ||33333333333333333333|| ---||$n)%
printf ( || | ||33333333333333333333|| | ||$n)%
printf ( | ||33333333333333333333|| | $n)%
printf ( |---|----------------------|---| $n)%
printf ( | | $n)%
printf ( 33333 $n)%
interessante orientar e dar algumas informaes do programa para o usurio. Assim, o usurio
no ter problemas com os dados de entrada referentes as temperaturas e o intervalo no qual o programa capaz de
calcular. importante nesse momento, informar sobre o sentido das correntes de entrada e sada dos fluidos
tambm. Veja:
//5ntrada dos /alores da temperatura de entrada e saYda do Zleo.
printf ($n <W?5>,@B<5?0)%
printf ($n 1 - @ temperatura do oleo de/e estar na fai)a de (-'.1O <-> 1OL.;O) oB*)%
printf ($n pois corresponde a tabela encotrada em literatura.)%
printf ($n 2 - @ temperatura da a.ua de/e estar na fai)a de (' <-> M1.;O) oB*)%
printf ($n pois corresponde a tabela encotrada em literatura.)%
printf ($n & - @ a.ua entra pelo fei)e de tubos e o oleo pelo casco* isso se de/e*)%
printf ($n a literatura recomenda Due o fluido Duente passe pelo casco.)%
printf ($n K - < trocador e do tipo [contra corrente[ pois trocadores desse tipo*)%
printf ($n apresentam melhor troca termica.)%
A partir de agora, a entrada de informaes e escolhas para o projeto do trocador de calor se inicia.
Perceba como o cdigo-fonte foi escrito para pedir as temperaturas de entrada e sada do leo de motor:
printf ($n$n 5ntre com o /alor da temperatura de entrada (Duente) do oleo (oB)0 )%
scanf (1lf*2=empC5ntrada)%
.etchar ()%
printf ( 5ntre com o /alor da temperatura de saida (fria) do oleo (oB)0 )%
scanf (1lf*2=empC?aida)%
.etchar ()%
Aps a declarao das temperaturas de entrada e sada do leo de motor, necessrio que o
programa faa o clculo da temperatura mdia e em seguida utilize a temperatura mdia para uma interpolao. Essa
interpolao realizada a partir da funo de condio if que a linguagem C possui. Veja o trecho do cdigo
fonte abaixo, o if tem o significado de se. Ou seja, se a temperatura mdia calculada atender ao se, os valores
de dentro dos colchetes sero assumidos para as variveis apresentadas. Na ltima linha, dentro do colchete de cada
condio apresentado o comando goto. Esse comando representa que aps assumir os valores das as variveis
dentro do colchete, as condies seguintes so desconsideradas at encontrar no cdigo-fonte a linha com a palavra
fimTempHE:. A caixa de dilogo abaixo apresenta algumas linhas pontilhadas, uma forma de fazer referncia a
continuidade dos if para outros intervalos. No interessante demostrar todos os if para todas as temperaturas,
mas o cdigo-fonte completo apresentado no Apndice B. Observe:
//Wusca de =empC8 pelos /alores menores e maiores.
=empC8 3 (=empC5ntrada4=empC?aida)/2%
//1a. parte da interpolaNQo.
if (=empC8<3-'.1O)
{=empC5 3 -'.1O%
27
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
dC5 3 ;;M.1%
cpC5 3 1PML%
uC5 3 &.;O%
/C5 3 '.''K2;'%
RC5 3 '.1KP%
aC5 3 '.'''''''M1'%
PrC5 3 KP'''%
.oto fim=empC5%(
if (=empC8<3L.;O)
{=empC5 3 L.;O%
dC5 3 ;MO.&%
cpC5 3 1;2P%
uC5 3 2.1P%
/C5 3 '.''2K&'%
RC5 3 '.1KK%
aC5 3 '.''''''';;'%
PrC5 3 2PO''%
.oto fim=empC5%(
..............
..........
.......
...
if (=empC8<31OL.;O)
{=empC5 3 1OL.;O%
dC5 3 ;'L.O%
cpC5 3 2KP1%
uC5 3 '.''KP'%
/C5 3 '.'''''O;&%
RC5 3 '.1&2%
aC5 3 '.'''''''LL2%
PrC5 3 ;;%(
fim=empC50
As variveis encontradas acima so referentes ao menor ou igual valor da temperatura listada em
uma tabela em relao temperatura mdia. Explicando de forma mais clara, encontrado o menor valor anterior a
temperatura mdia e assim admitidos os valores dessas variveis. Dessa forma, a propriedades podem ter o valor
menor ou igual do que o da temperatura mdia armazenados na memria. O trecho abaixo faz o mesmo mtodo do
apresentado acima, mas para encontrar os valores referentes temperatura maior ou igual temperatura mdia. Todo
esse sistema uma forma de busca na tabela por valores anteriores e posteriores das propriedades para o clculo por
interpolao simples das mesmas propriedades para temperatura mdia.
//BontinuaNQo da 2a. parte para interpolaNQo.
if (=empC8>31OL.;O)
{=empC? 3 1OL.;O%
dC? 3 ;'L.O%
cpC? 3 2KP1%
uC? 3 '.''KP'%
/C? 3 '.'''''O;&%
RC? 3 '.1&2%
aC? 3 '.'''''''LL2%
PrC? 3 ;;%
.oto fim=empC?%(
if (=empC8>31KL.;O)
{=empC? 3 1KL.;O%
dC? 3 ;12.1%
cpC? 3 2K2P%
uC? 3 '.''OLK%
/C? 3 '.'''''LMK%
RC? 3 '.1&&%
aC? 3 '.'''''''LPO%
PrC? 3 1'&%
.oto fim=empC?%(
..............
..........
.......
...
if (=empC8>3-'.1O)
{=empC? 3 -'.1O%
dC? 3 ;;M.1%
cpC? 3 1PML%
28
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
uC? 3 &.;O%
/C? 3 '.''K2;'%
RC? 3 '.1KP%
aC? 3 '.'''''''M1'%
PrC? 3 KP'''%(
fim=empC?0
Agora, com os valores anteriores e posteriores das propriedades referentes a temperatura mdia.
possvel o clculo por interpolao simples para se encontrar os valores das propriedades da temperatura mdia.
Note o trecho do cdigo-fonte abaixo:
//BUlculos de interpolaN\es.
/C8 3 (((=empC8-=empC5)7(/C?-/C5))/(=empC?-=empC5))4/C5%
RC8 3 (((=empC8-=empC5)7(RC?-RC5))/(=empC?-=empC5))4RC5%
aC8 3 (((=empC8-=empC5)7(aC?-aC5))/(=empC?-=empC5))4aC5%
PrC8 3 (((=empC8-=empC5)7(PrC?-PrC5))/(=empC?-=empC5))4PrC5%
dC8 3 (((=empC8-=empC5)7(dC?-dC5))/(=empC?-=empC5))4dC5%
cpC8 3 (((=empC8-=empC5)7(cpC?-cpC5))/(=empC?-=empC5))4cpC5%
uC8 3 (((=empC8-=empC5)7(uC?-uC5))/(=empC?-=empC5))4uC5%
Nesse momento, possvel fazer alguns clculos para o leo motor. Antes, necessria a entrada
da vazo de entrada do leo. Observe:
//5ntrada do /alor da /a"Qo do Zleo.
printf ($n 5ntre com a /a"ao do oleo (A/min)0 )%
scanf (1lf*2mC)%
.etchar ()%
Agora, a definio do passo entre os tubos do feixe dada pelo valor de P no trecho do cdigo-
fonte abaixo. O valor de 0,01905 metros uma tima considerao, pois tal admisso foi realizada devido ao
intervalo dos dimetros dos tubos do feixe sugeridos no problema enunciado no incio deste captulo. A
transformao da vazo tambm necessria e pela seqncia o clculo da diferena de temperatura e da quantidade
de calor por segundo.
//BUlculos a partir da /a"Qo do Zleo fornecida.
P 3 '.'1M'O%
mh 3 (mC/L')7(dC8/1''')%
d=empC 3 =empC5ntrada-=empC?aida%
D 3 mh7cpC87d=empC%
A escolha do dimetro dos tubos do feixe tubular necessria nesse exato momento e realizada
por mais uma condio. Veja:
//5scolha do di6metro do tubo.
printf ($n 5scolha o diametro do tubo do fei)e0 )%
printf ($n 1 - =ubo de &/; in.)%
printf ($n 2 - =ubo de 1/2 in.)%
printf ($n & - =ubo de O/; in.)%
printf ($n @ escolha e0 )%
scanf (1d*2))%
.etchar ()%
if ()331)
{-tubo 3 '.''MO2O%(
if ()332)
{-tubo 3 '.'12P%(
if ()33&)
{-tubo 3 '.'1O;PO%(
29
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Agora so listadas todas as possibilidades de configurao do trocador de calor de acordo com os
dados e parmetros fornecidos pelo problema. Assim, aps uma escolha aleatria os resultados que sero obtidos e
apresentados pelo programa podem ser analisados de forma mais coerente. O usurio escolher uma das
possibilidades de configurao para os intervalos dados no problema inicial. Veja:
//5scolha a confi.uraNQo do trocador nos par6metros abai)o.
printf ($n 5scolha a confi.uracao do trocador de calor0 )%
printf ($n 1 - 12 tubos* 1 passo* & in de casco)%
printf ($n 2 - 1L tubos* 1 passo* &.O in de casco)%
printf ($n & - 1L tubos* 1 passo* K in de casco)%
..............
..........
.......
...
printf ($n 22 - 22 tubos* K passos* ; in de casco)%
printf ($n 2& - &P tubos* K passos* 1' in de casco)%
printf ($n 2K - O2 tubos* K passos* 12 in de casco)%
printf ($n @ escolha e0 )%
scanf (1d*2+)%
.etchar ()%
if (+331)
{! 3 12%
-casco 3 &7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 1%(
if (+332)
{! 3 1L%
-casco 3 &.O7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 1%(
..............
..........
.......
...
if (+332K)
{! 3 O2%
-casco 3 127'.'2OK%
!f 3 1K%
B 3 '.MM%
Passo 3 K%(
Vale salientar que a varivel C apresentada no trecho acima do cdigo-fonte, a mesma
apresentada na Tabela 5.3.2 deste captulo. O seu valor depende do nmero de fileiras que tambm foi escolhido
com base no intervalo do dimetros do tubos do feixe e a quantidade de tubos.
Para o prosseguimento dos clculos, necessria a escolha do bocal de entrada do leo trmico.
Dessa forma, possvel o clculo da rea de entrada do bocal e assim a velocidade e outras variveis necessrias.
Veja que o procedimento segue o mesmo princpio j apresentado com o if:
//5scolha o bocal de entrada do Zleo.
printf ($n 5scolha o diametro do tubo do bocal de entrada do oleo0)%
printf ($n 1 - Wocal de 1 in)%
printf ($n 2 - Wocal de 1.O in)%
printf ($n & - Wocal de 2 in)%
printf ($n @ escolha e0 )%
scanf (1d*2S)%
if (S331)
{Wocal 3 '.'2OK%(
if (S332)
{Wocal 3 '.'&;1%(
if (S33&)
{Wocal 3 '.'O';%(
30
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Com os dados j calculados, possvel dar continuidade no procedimento de resoluo do
problema. Veja alguns clculos complementares:
//Balculos complementares como0 !o. de >e+nolds* Urea da secNQo do bocal e etc.
@bocal 3 89P:7(Wocal/2)7(Wocal/2)%
H 3 (mC7'.''1)/L'%
, 3 H/@bocal%
,ma) 3 (P7,)/(P--tubo)%
>edBasco 3 (dC87,ma)7-tubo)/uC8%
if (>edBasco<31'')
{m 3 '.K%
n 3 '.&L%(
else if (>edBasco<31''')
{m 3 '.O%
n 3 '.&L%(
else if (>edBasco<32''''')
{m 3 '.L&%
n 3 '.&L%(
else if(>edBasco<32'''''')
{m 3 '.;%
n 3 '.K%(
Perceba que a partir do clculo do nmero de Reynolds foi determinado os valores de m e n da
Equao 5.3.7.
Agora, o procedimento realizado com o leo de motor para o clculo das propriedades do fluido
repetido para a gua. O valor da temperatura de entrada e sada da gua so inseridos. Efetua-se o clculo da
temperatura mdia da gua e em seguida o mesmo processo de busca dos valores anteriores e posteriores e o clculo
por interpolao realizado. Dessa forma, encontrado os valores das propriedades da gua na temperatura mdia.
Assim:
//-ados de temperatura da U.ua de entrada e saYda deseTadas.
printf ($n 5ntre com o /alor da temperatura de entrada (fria) da a.ua (oB)0 )%
scanf (1lf*2=empB5ntrada)%
.etchar ()%
printf ( 5ntre com o /alor da temperatura de saida (Duente) da a.ua (oB)0 )%
scanf (1lf*2=empB?aida)%
.etchar ()%
//Wusca de =empB8 pelos /alores menores e maiores.
=empB8 3 (=empB5ntrada4=empB?aida)/2%
//1a. parte da interpolaNQo.
if (=empB8<3')
{=empB5 3 '%
dB5 3 1%
cpB5 3 K21P%
uB5 3 '.''1PO'%
RB5 3 '.OLM%
PrB5 3 12.MM%
.oto fim=empB5%(
if (=empB8<31.;O)
{=empB5 3 1.;O%
dB5 3 1%
cpB5 3 K211%
uB5 3 '.''1LO2%
RB5 3 '.OPK%
PrB5 3 12.22%
.oto fim=empB5%(
..............
..........
.......
...
if (=empB8<3M1.;O)
{=empB5 3 M1.;O%
dB5 3 1.'&;%
cpB5 3 K2'M%
31
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
uB5 3 '.'''&'L%
RB5 3 '.LPP%
PrB5 3 1.M1%
.oto fim=empB5%(
fim=empB50


//BontinuaNQo da 2a. parte para interpolaNQo.
if (=empB8>3M1.;O)
{=empB? 3 M1.;O%
dB? 3 1.'&;%
cpB? 3 K2'M%
uB? 3 '.'''&'L%
RB? 3 '.LPP%
PrB? 3 1.M1%
.oto fim=empB?%(
if (=empB8>3;L.;O)
{=empB? 3 ;L.;O%
dB? 3 1.'&K%
cpB? 3 K2'&%
uB? 3 '.'''&2K%
RB? 3 '.LPK%
PrB? 3 2.'2%
.oto fim=empB?%(
..............
..........
.......
...
if (=empB8>3')
{=empB? 3 '%
dB? 3 1%
cpB? 3 K21P%
uB? 3 '.''1PO'%
RB? 3 '.OLM%
PrB? 3 12.MM%(
fim=empB?0


//BUlculos de interpolaN\es.
dB8 3 (((=empB8-=empB5)7(dB?-dB5))/(=empB?-=empB5))4dB5%
cpB8 3 (((=empB8-=empB5)7(cpB?-cpB5))/(=empB?-=empB5))4cpB5%
uB8 3 (((=empB8-=empB5)7(uB?-uB5))/(=empB?-=empB5))4uB5%
RB8 3 (((=empB8-=empB5)7(RB?-RB5))/(=empB?-=empB5))4RB5%
PrB8 3 (((=empB8-=empB5)7(PrB?-PrB5))/(=empB?-=empB5))4PrB5%
O clculo de mais algumas variveis necessrio. No trecho abaixo o clculo da diferena de
temperatura da gua, vazo mssica, nmero de Reynolds da gua dentro dos tubos do feixe e o clculo de f que
foi apresentado na Equao 5.3.12. Em seguida, calculado a varivel factor001 e factor002 que so termos
utilizados no clculo do nmero de Nusselt para a gua no feixe tubular. Observe:
//BontinuaNQo de al.uns cUlculos.
d=empB 3 =empB?aida-=empB5ntrada%
mc 3 D/(cpB87d=empB)%
>ed=ubo 3 (K7mc)/(!789P:7-tubo7uB8)%
f 3 1/((('.PM'7lo.(>ed=ubo))-1.LK)7(('.PM'7lo.(>ed=ubo))-1.LK))%
factor''1 3 (f/;)7(>ed=ubo-1''')7PrB8%
factor''2 3 1412.P7poS(f/;*'.O)7(poS(PrB8*'.LLLLLLLLLLLP)-1)%
Antes de prosseguir, necessrio falar sobre a funo pow no trecho acima. Essa funo
responsvel pelas operaes que envolvem potncia. A funo pow utilizada da seguinte forma:
pow (x,y) o mesmo que x
y
A partir de todos os clculos dados possvel determinar o nmero de Reynolds e o nmero de
Nusselt da gua que escoa pelos tubos. Dessa forma, encontrado o valor de h
t
da Equao 5.3.8. Veja:
32
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
//BUlculo para o !o. de !ussent (tubo) a partir da fai)a do !o. de >e+nolds.
if (>ed=ubo>32O'')
{!ud=ubo 3 factor''1/factor''2%(
else
{!ud=ubo 3 K.&L%(
ht 3 (RB87!ud=ubo)/-tubo%
Agora, pode ser calculado tambm o h
c
da Equao 5.3.13. Isso se deve pelo clculo do nmero
de Nusselt do casco. Assim:
//BUlculo do !o. de !ussent (casco).
!udBasco 3 B7(poS(>edBasco*m))7(poS(PrC8*n))7(poS((PrC8/PrB8)*'.2O))%
hc 3 (RC87!udBasco)/-tubo%
Depois do clculo do h
c
e h
t
, possvel encontrar o valor do coeficiente global de transferncia
de calor. Observe:
//@.ora temos o hc e o ht* lo.o calcularemos o V.
V 3 1/((1/ht)4(1/hc))%
Veja o clculo do fator de correo apresentado na Equao 5.3.16 e o clculo de R e S das
Equaes 5.3.17 e 5.3.18:
//,amos calcular o fator de correNQo E.
> 3 (=empC5ntrada-=empC?aida)/(=empB?aida-=empB5ntrada)%
? 3 (=empB?aida-=empB5ntrada)/(=empC5ntrada-=empB5ntrada)%
factor''O 3 poS(((>7>)41)*'.O)%
factor''& 3 (2-(?7(14>-factor''O)))%
factor''K 3 (2-(?7(14>4factor''O)))%
factor''L 3 lo.((1-(?7>))/(1-?))%
factor''P 3 (1->)%
E 3 ((factor''O7factor''L)/(factor''P7lo.(factor''&/factor''K)))%
A separao da Equao 5.3.16 em termos como factor003, factor004, factor005,
factor006 e factor007 foi para facilitar a sua escrita no cdigo-fonte.
Depois de cumprir o procedimento de clculo mencionado, resta o clculo da diferena de
temperatura logartmica e do comprimento do casco do trocador de calor. Observe:
//5 a.ora calculando o /alor de A Due representarU o comprimento do casco.
-elta=empA8 3 ((=empC5ntrada-=empB?aida)-(=empC?aida-=empB5ntrada))/
lo.((=empC5ntrada-=empB?aida)/(=empC?aida-=empB5ntrada))%
A 3 (D/(V789P:7-tubo7-elta=empA87E7!7Passo))%
Para encerrar a parte de clculo, o ltimo trecho do cdigo-fonte se trata de clculos informativos
para a impresso na tela em forma de relatrio de resultados, juntamente, com outros dados j encontrados. Dessa
forma, uma anlise do trocador de calor poder ser realizada, e assim, decidir o clculo de um novo trocador ou a
seleo de outra configurao. Veja os ltimos clculos:
//BUlculo de dados como0 Urea de troca t]rmica* di6mentro do casco e outros.
@troca 3 A7!7Passo7(89P:727(-tubo/2))%
-casco:! 3 -casco/'.'2OK%
>a"ao 3 @troca/(89P:7(-casco/2)7(-casco/2))%
,olC2< 3 (mc)/(dB871''')%
33
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
@calculada 3 (D/(V7-elta=empA8))%
5)cesso 3 ((@troca-@calculada)/@troca)%
Agora, a impresso na tela dos resultados com o a condio if aplicada para informar se os
escoamentos nos tubos ou no casco laminar ou turbulento. Nas ltimas linhas do cdigo-fonte, apresentada uma
forma de finalizao do programa:
//>esultados.
printf
($n$n----------------------------------------------------------------------------------)%
printf ($n B@>@B@=5>:?=:B@? W@?:B@? -< =><B@-<> -5 B@A<>)%
printf ($n 1. Bomprimento do Basco 3 1lf m*A)%
printf ($n 2. -iametro do casco 3 1lf in*-casco:!)%
printf ($n &. -iametro do tubo do fei)e 3 1lf m*-tubo)%
printf ($n K. Huantidade de tubos 3 1lf *!)%
printf ($n O. !umero de passes 3 1lf*Passo)%
printf ($n L. @rea de troca termica (calculada) 3 1lf m2*@calculada)%
printf ($n P. @rea de troca termica (fisica) 3 1lf m2*@troca)%
printf ($n ;. 5)cesso do trocador de calor 3 1lf 11*5)cesso)%
printf ($n M. >a"ao da area de troca termica (fisica) e o /olume do trocador 3
1lf*>a"ao)%
printf ($n 1'. Boeficiente .lobal de transferencia de calor 3 1lf X/m27F*V)%
printf ($n 11. @rranTo dos tubos 3 Huadran.ular)%
printf
($n----------------------------------------------------------------------------------)%
printf ($n >5?VA=@-<? -< <A5< (B@?B<))%
printf ($n 1. =emperatura de entrada 3 1lf oB*=empC5ntrada)%
printf ($n 2. =emperatura de saida 3 1lf oB*=empC?aida)%
printf ($n &. ,a"ao massica 3 1lf R./s*mh)%
printf ($n K. ,elocidade do oleo no casco 3 1lf m/s*,)%
printf ($n O. ,elocidade ma)ima do oleo no casco 3 1lf m/s*,ma))%
printf ($n L. =a)a de calor e)traido do oleo 3 1lf F^/se.undo*D)%
printf ($n P. !umero de >e+nolds no casco 3 1lf*>edBasco)%
printf ($n ;. !umero de !ussent no casco 3 1lf*!udBasco)%
printf ($n M. Boeficiente de con/eccao no casco 3 1lf X/m27F*hc)%
if (>edBasco>2O'')
{printf ($n < escoamento do oleo no casco e0 =urbulento)%(
else
{printf ($n < escoamento do oleo no casco e0 Aaminar)%(
printf
($n----------------------------------------------------------------------------------)%
printf ($n >5?VA=@-<? -@ @IV@ (=VW<?))%
printf ($n 1. =emperatura de entrada 3 1lf oB*=empB5ntrada)%
printf ($n 2. =emperatura de saida 3 1lf oB*=empB?aida)%
printf ($n &. ,a"ao massica 3 1lf R./s*mc)%
printf ($n K. ,a"ao /olumetrica da a.ua 3 1lf m&/se.undo*,olC2<)%
printf ($n O. !umero de >e+nolds nos tubos 3 1lf*>ed=ubo)%
printf ($n L. !umero de !ussent nos tubos 3 1lf*!ud=ubo)%
printf ($n P. Boeficiente de conceccao nos tubos 3 1lf X/m27F*ht)%
if (>ed=ubo>2O'')
{printf ($n < escoamento da a.ua nos tubos e0 =urbulento)%(
else
{printf ($n < escoamento da a.ua nos tubos e0 Aaminar)%(
printf
($n----------------------------------------------------------------------------------$n$n
)%
printf ($n Pressione [5nter[ para finali"ar.)%
.etchar ()%
return '%
(
Uma ltima informao importante que deve ser repassada nesse momento, em relao a linha do
relatrio impresso na tela sobre o excesso do trocador de calor. O excesso referente a relao entre a rea de troca
trmica calculada e a rea de troca trmica fsica. O programa se encontra com dcimos de excesso, ou seja, o
dimensionamento do trocador praticamente exato ao necessrio.
34
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
6 PROJETO DE VIGA BI-APOIADA
6.1 Introduo
As vigas so elementos estruturais bastante usados na construo civil, na rea de edificao e em
estruturas metlicas. O mtodo de clculo para se projetar o perfil correto de uma viga tem o grau de complexidade
proporcional forma da estrutura metlica ou edificao. Um mtodo de se iniciar a escolha do material da viga e
dimensionamento do perfil pode ser realizado pela anlise do maior esforo no maior vo livre.
O mtodo comentado no pargrafo acima uma forma de iniciar o clculo com base em um
referencial. As vigas podem ter diversos tipos de perfis, mas existem alguns que so bastantes comerciais como o
perfil C (tambm conhecido como U no Brasil) e o perfil I. Os materiais empregados vo desda de aos-liga, ao
carbono, ao inox, ligas de alumnio e etc. fcil de perceber toda a gama das variveis presentes no projeto de uma
viga.
6.2 Caractersticas do problema
O projeto de uma viga a ser adicionada em uma estrutura, a seleo de um perfil correto para a
construo ou a escolha do material adequado e que suporte os esforos so exemplos de variveis do problema.
A elaborao da rotina computacional deste captulo foi realizada seguindo alguns passos, como a
entrada de algumas variveis. A fora aplicada sobre a viga, o comprimento total da viga, o coeficiente de segurana
que deve ser aplicado, so alguns dos dados de entrada necessrios que o usurio deve informar ao programa.
A situao considerada referente a uma fora central a uma viga na qual est apoiada em suas
extremidades. Para uma melhor compreenso veja a figura abaixo:
FIGURA 6.2.1 Carregamento central em viga biapoiada.
Um software para o clculo de uma viga simples como a apresentada na Figura 6.2.1 pode ter
diversas variveis como a escolha do perfil. interessante que se possa ter uma escolha de pelo menos dois perfis
para clculo. A fora P aplicada no centro da viga pode ser de qualquer valor definido pelo projetista por exemplo.
Dados de entrada e sada so extremamente importantes no final da execuo do programa, assim, o projetista pode
ter uma viso crtica dos resultados, bem como se a viga ir falhar ou no.
Um aspecto interessante que se deve ter como opo na execuo do programa informar qual o
coeficiente de segurana que se deseja usar para os clculos e uma lista de opes de materiais como:
Ao carbono A-36;
Ao inox AISI 304;
Liga de alumnio 2024 T4;
e outras.
A escolha das dimenses dos perfis tambm fica por conta do projetista, logo a mesma forma que
abordada em relao s opes de materiais, pode ser aplicada para as dimenses dos perfis. No prximo item
abordada a soluo terica para a construo do software deste captulo.
6.3 Base terica
35
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
A resoluo para o problema proposto e em seguida a realizao de uma rotina computacional se
inicia pela determinao do momento mximo e fora cisalhante mxima. Veja:
M
max
=
( PL)
4
(6.3.1)
e
V
max
=
P
2
(6.3.2)
A unidade adotada para a fora P o Newton e a unidade de comprimento metro para L nas
Equaes 6.3.1 e 6.3.2. perceptvel que a unidade do momento fletor mximo N.m e para a fora cisalhante o
Newton.
Aps o clculo do momento fletor mximo, o prximo passo a determinao do Snec. Snec o
mdulo resistente da viga. O mdulo de resistencia a relao entre I e c, isto :
Snec=
I
c
(6.3.3)
O I conhecido como momento de inrcia do perfil da viga e o c como a distncia do eixo
neutro at extremidade mxima. Utilizando a frmula da tenso:
c=
Mc
I
(6.3.4)
Agora, realizando as devidas substituies se obtm:
Snec=
M
c
adm
(6.3.5)
Como o fator de segurana a relao da tenso de escoamento do material e a tenso admissvel,
se obtm:
fs=
c
mat
c
adm
(6.3.6)
Logo, o valor de Snec do perfil selecionado deve ser de acordo com a equao:
Snec=
Mfs
c
mat
(6.3.7)
A Equao 6.3.7 fornece o valor do mdulo de resistncia da viga de acordo com o material
escolhido. Lembrando que o valor da tenso admissvel do material encontrada em tabelas de livros e apostilas.
Aps o clculo do Snec, de fcil compreenso que seu valor deve ser tomado como base na
escolha do perfil de aplicao. O perfil a ser escolhido em tabelas de perfis de diversos fabricantes deve ter o Snec
superior ao calculado. Caso contrrio, a viga no atender s necessidades do projeto. Observe:
Snec
tab
>Snec (6.3.8)
Com as equaes estabelecidas, pode ser iniciado o processo de elaborao do cdigo-fonte.
6.4 Cdigo-fonte comentado passo passo
O cdigo-fonte abaixo se apresenta de forma resumida, pois muitos detalhes de repetio foram
substitudos por linhas pontilhadas. Dessa forma, para entendimento no fica comprometido e nem extenso demais.
36
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
O cdigo pode ser visto sem cortes no Apndice B.
main ()
{
//Pro.rama para proTetode /i.as biapoiadas.
int p:* m9/i.a* pB%
double P* A* B?* 8ma)* ,ma)* 5* =+* =adm* ?nec* ?tab%
int ) 3 1%
printf ($n P><I>@8@ P@>@ < P><^5=< -5 ,:I@ W:-@P<:@-@? )%
printf ($n)%
printf ($n)%
printf ($n | car.a P)%
printf ($n |)%
printf ($n ,)%
printf ($n 333333333333333333333)%
printf ($n _ | _)%
printf ($n |---A/2---|---A/2---|)%
printf ($n$n)%
printf (3333333333333333333333333333333333333333333333333333333333333333)%
No trecho de cdigo-fonte apresentado acima, mostrada a declarao de algumas variveis do
tipo double e int. Lembrando que o tipo int se refere a nmeros inteiros no intervalo apresentado na Tabela
3.2.1. Em seguida, apresentada uma figura para demonstrar o tipo de carregamento empregado sobre a viga a ser
projetada.
O prximo trecho apresenta a primeira apario neste trabalho de uma rotina de seleo. A rotina
de seleo utilizada da seguinte forma:
switch ( )
{case 1:
bloco de comandos;
break;
case n + 1:
bloco de comandos;
break;
.............
........
.....
case n:
bloco de comandos;
break;
Para o valor de( )
{se for 1:
executa essa seqncia de comandos;
sada da rotina de seleo;
se for n + 1:
executa essa seqncia de comandos;
sada da rotina de seleo;
.............
........
.....
se for n:
execute essa seqncia de comandos;
sada da rotina de seleo;
FIGURA 6.4.1 Estrutura das rotina com switch-case-break.
A apresentao da forma que se deve utilizar a rotina de seleo que envolve switch-case-break
utilizada no programa deste captulo e se prolongar nos prximos programas abordados.
sSitch ())
{
case 10 //Primeira situacao.
printf ($n :nforme o /alor da car.a [P[ (!)0)%
scanf (1lf*2P)%
printf ($n :nforme o comprimento da /i.a (m)0)%
scanf (1lf*2A)%
printf ($n :nforme o coeficiente de se.uranca0)%
scanf (1lf*2B?)%
//Balculos do momento ma)imo e da forca cortante.
8ma) 3 P7A/K%
37
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
,ma) 3 P/2%
//5scolha do material com sSitch dentro de outro sSitch.
int material91%
printf ($n 5scolha o material0)%
printf ($n)%
printf ($n `1a - @-&L `;a - @:?: &'K)%
printf ($n `2a - @:?:-B 1'1; `Ma - Ai.a de @luminio 11''-C12)%
printf ($n `&a - @:?:-B 1'&' `1'a - Ai.a de @luminio 2'2K =K)%
printf ($n `Ka - @:?:-B 1'K' `11a - Ai.a de @luminio L'L1 =L)%
printf ($n `Oa - @:?:-B 1';' `12a - Ai.a de @luminio L'L& =L)%
printf ($n `La - @:?:-B &1K' `1&a - Ai.a de @luminio 2'2K =K)%
printf ($n `Pa - @:?:-B K&K')%
printf ($n ?ua opcao e0)%
scanf (1d*2material91)%
.etchar ()%
O primeiro switch apresentado no programa ocorreu no trecho acima. Esse switch usado
como uma opo para futuras situaes de clculo. visvel a sua praticidade com a rotina, e uma nova rotina para
outra situao pode ser facilmente implementada. Uma rvore explicativa de todo o cdigo-fonte apresentada no
final deste item 6.4.
A ao inicial do switch apresentado acima referente execuo do bloco de comandos que
pede ao usurio o valor da fora P aplicada na viga, o valor de L que o comprimento da viga e o valor do fator
de segurana. Efetua-se o clculo internamente do momento fletor mximo e da fora cortante mxima e em seguida
realizada a escolha do material da viga.
Uma outra caracterstica apresentada no programa deste captulo a possibilidade de rotinas
aninhadas. O segmento abaixo mostra um switch inserido em outro switch j apresentado no trecho acima, que
usa o valor da opo do material da viga. Veja:
sSitch (material91)
{
case 10 // @-&L
5 3 2''eM%
=+ 3 2O'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 20 // @:?:-B 1'1;
5 3 2''eM%
=+ 3 &P'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
..........................
................
........
...
case 1&0 // Ai.a de @luminio 2'2K =K
5 3 P2eM%
=+ 3 O''eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
(
O bloco de cdigo-fonte apresentado acima, referente escolha do material. Outra rotina
bastante similar a aplicada nos Captulos 5 e 6 com o uso das rotinas if e if-else-if. A vantagem da rotina com
o switch-case-break mais direta. Quando o valor da escolha inserido no switch o case imediatamente
executa o bloco de comandos de sua responsabilidade. As variveis so: E como o mdulo de elasticidade do
material, Ty como sendo a tenso admissvel do material de compresso, Tamd sendo a tenso admissvel
calculada para o fator de segurana adotado e Snec como o mdulo de resistncia da viga requerido.
Aps recarregar os valores das variveis na memria, o procedimento pode ser seguido.
apresentada a aplicao de outro switch dentro do primeiro apresentado no incio do cdigo-fonte. Vale ressaltar
que ao final dos comentrios do cdigo-fonte ter a estrutura do programa de forma simplificada. O bloco de
cdigo-fonte seguinte relacionado opo de seleo do perfil da viga. Um outro detalhe que pode ser percebido
38
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
a insero de outro switch no switch de escolha do perfil da viga que se encontra dentro do switch do tipo de
clculo a ser realizado. Ou seja, temos trs estruturas de switch aninhadas. Veja:
//5scolha do perfil da /i.a.
printf ($n 5scolha o perfil para a /i.a0)%
printf ($n$n `1a - Perfil :)%
printf ($n `2a - Perfil B)%
printf ($n ?ua opcao e0)%
int perfil%
scanf (1d*2perfil)%
.etchar ()%
sSitch (perfil)
{case 10 //Procedimento do cUlculo com o perfil : pra situacao 1.
printf ($n 5scolha o perfil : de acordo com as dimensoes abai)o0)%
printf ($n Aembrando Due @ltura ) Wase e a nomeclatura adotada.)%
printf ($n$n `1a - 1O')1K `La - 2O')1; `11a - &1')PK)%
printf ($n `2a - 1O')&' `Pa - 2O')KO `12a - &1')12M)%
printf ($n `&a - 2'')22 `;a - 2O');')%
printf ($n `Ka - 2'')P1 `Ma - 2O')1KM)%
printf ($n `Oa - 2'')1'' `1'a - &1')&M)%
........................
................
.........
printf ($n @ sua escolha e0)%
scanf (1d*2p:)%
.etchar ()%
sSitch (p:)
{case 10
?tab 3 M1.2%
breaR%
case 20
?tab 3 21;%
breaR%
....................
.............
.......
case 120
?tab 3 1MK'%
breaR%(
//----->esultados-----
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n ?<A:B:=@B@< 5 5?P5B:E:B@B@< -@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n Bar.a aplicada [P[0 1lf !*P)%
printf ($n Bomprimento da ,i.a0 1lf m*A)%
printf ($n Boeficiente de se.uranca0 1lf*B?)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5?VA=@-<? -<? B@ABVA<? -@ >5?P5B=:,@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n 5sforco cortane ma)imo0 1lf !*,ma))%
printf ($n 8omento fletor ma)imo0 1lf !.m*8ma))%
printf ($n =ensao admissi/el0 1lf Pa*=adm)%
printf ($n =ensao de escoamento0 1lf Pa*=+)%
printf ($n 8odulo de elasticidade do material0 1lf Pa*5)%
printf ($n 8odulo de resistencia necessario0 1lf mm&*?nec)%
printf ($n 8odulo de resistencia tabelado0 1lf mm&*?tab)%
printf ($n)%
if (?nec<?tab)
{printf ($n < perfil selecionado suportara o carre.amento.)%
printf ($n =este outros perfis para tentar redu"ir seus .astos#)%(
else
{printf ($n < perfil selecionado nao duporta o carre.amento.)%
printf ($n 5scolhe um perfil mais robusto com o ?nec superio)%
printf ($n ao deseTado.)%(
.etchar ()%
breaR%
case 20 //Procedimento do cUlculo com o perfil B pra situacao 1.
printf ($n 5scolha o perfil B de acordo com as dimensoes abai)o0)%
printf ($n Aembrando Due @ltura ) Wase e a nomeclatura adotada.)%
printf ($n$n `1a - PO)L `La - 2&')&')%
printf ($n `2a - 1'')11 `Pa - 2O')KO)%
printf ($n `&a - 1O')1M `;a - &1')KO)%
printf ($n `Ka - 1;')22 `Ma - &;')O')%
39
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n `Oa - 2'')2; `1'a - &;')PK)%
........................
................
.........
printf ($n @ sua escola e0)%
scanf (1d*2pB)%
.etchar ()%
sSitch (pB)
{case 10
?tab 3 1;.1%
breaR%
case 20
?tab 3 &P.O%
breaR%
....................
.............
.......
case 1'0
?tab 3 ;;2%
breaR%(
//----->esultados-----
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n ?<A:B:=@B@< 5 5?P5B:E:B@B@< -@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n Bar.a aplicada [P[0 1lf !*P)%
printf ($n Bomprimento da ,i.a0 1lf m*A)%
printf ($n Boeficiente de se.uranca0 1lf*B?)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5?VA=@-<? -<? B@ABVA<? -@ >5?P5B=:,@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n 5sforco cortane ma)imo0 1lf !*,ma))%
printf ($n 8omento fletor ma)imo0 1lf !.m*8ma))%
printf ($n =ensao admissi/el0 1lf Pa*=adm)%
printf ($n =ensao de escoamento0 1lf Pa*=+)%
printf ($n 8odulo de resistencia necessario0 1lf mm&*?nec)%
printf ($n 8odulo de resistencia tabelado0 1lf mm&*?tab)%
printf ($n)%
if (?nec<?tab)
{printf ($n < perfil selecionado suportara o carre.amento.)%
printf ($n =este outros perfis para tentar redu"ir seus .astos#)%
printf ($n)%(
else
{printf ($n < perfil selecionado nao duporta o carre.amento.)%
printf ($n 5scolhe um perfil mais robusto com o ?nec superio)%
printf ($n ao deseTado.)%
printf ($n)%(
breaR%(
breaR%
(
.etchar ()%
return '%
(
Para uma maior compreenso do cdigo-fonte como um todo, necessrio ver a descrio do
mesmo de acordo com a estrutura a seguir. Observe:
main ( )
{
switch ( ) //5scolha para possY/el e)pansQo para outros tipos de carre.amento.
{case.......
switch ( ) //5scolha do material do carre.amento 1.
{case .......
breaR %(
switch ( ) //5scolha do perfil do carre.amento 1.
{case .......
switch ( ) //Processo de calculo e relatZrio para o Perfil :.
{case.......
breaR %(
switch ( ) //Processo de calculo e relatZrio para o Perfil B.
{case.......
40
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
breaR %(
breaR %(
breaR %(
.etchar ( ) %
return ' %
(
FIGURA 6.4.1 Estrutura do cdigo-fonte aplicado no Cap. 6
Com estrutura descrita acima, fcil perceber o incio da diviso do cdigo-fonte em blocos. No
bloco referente ao material da viga, ele poder ser utilizado por todos os perfis adicionados no programa para o
material determinado. Dessa forma, a repetio do cdigo-fonte faz com que seja reduzido o tempo de escrita e
otimiza a compilao do mesmo.
O ltimo switch que se refere gerao de relatrio para cada perfil escolhido, tambm
apresenta uma praticidade para possveis expanses do programa. perceptvel que esse programa tem como
estrutura fundamental a utilizao adequada da rotina de escolha switch-case-break. No final de todas as rotinas de
escolha, o programa finalizado com um simples return 0 ;.
41
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
7 PROJETO DE VASOS DE PRESSO
7.1 Introduo
Vaso de presso o termo designado para se fazer referncia a todos os recipientes estanques que
apresentam presso externa ou interna. Alguns de vasos de presso so: tanques de armazenamento de lquidos e
gros, uma simples panela de presso ou at mesmo um reator nuclear.
Na indstria qumica os vasos de presso so utilizados constantemente. Seja para o simples
armazenamento de lquidos sob presso ou em presso atmosfrica, como na armazenagem de gases pressurizados.
A importncia no clculo dos vasos de presso so de extrema importncia, pois caso ocorra um erro de projeto, a
exploso, vazamento ou rachaduras podem comprometer a todas as pessoas que o manuseiam.
Neste captulo, realizado o processo de desenvolvimento de um software que faz o
dimensionamento do casco e tampos de um vaso de presso com o sentido da presso de dentro para fora, ou seja,
presso interna. Existem diversos fatores e variveis a serem considerados como a qualidade da solda, material dos
tampos, material do costado, processo de soldagem e outros.
7.2 Caractersticas do problema
O projeto de um vaso de presso realizado a partir da entrada de alguns dados fornecidos pelo
setor de Engenharia Qumica de Processo de uma indstria qumica por exemplo. Os Engenheiros de Processo
fornecem os dados como presso e fluido de trabalho. A partir deste momento necessrio seguir algumas normas
como a ASME - American Society of Mechanical Engineer. A ASME apresenta procedimentos que serviram de
base para outras normas como a ABNT, por exemplo.
O procedimento de projeto para um vaso de presso se inicia com a determinao e entrada de
alguns dados para o clculo do casco como: raio interno do casco, presso de projeto, sobreespessura de corroso
quando aplicada, temperatura de trabalho e a classe do material do casco. A partir desses dados, j possvel a
determinao da tenso admissvel de cada material S por tabelas encontradas em livros e na prpria norma
ASME, Seo VIII, Diviso 1 UCS-23, por exemplo.
Valores de coeficientes de solda tambm so apresentados na norma ASME, e variam de acordo
com o grau de inspeo e tipo de solda realizada. Aps as informaes fornecidas at o momento fcil a realizao
do clculo da espessura da chapa que deve ser utilizada para o casco e os tampos de um vaso de presso.
muito vantajoso que seja elaborada uma rotina computacional com o intuito da no repetio do
clculo e busca em tabelas nas normas mencionadas. Dessa forma, o trabalho alm de ser otimizado interessante
elaborao de resultados em forma de relatrio por exemplo. No prximo item, 7.3, o procedimento terico, como
frmulas utilizadas pela norma ASME so mencionados, e assim no item 7.4 a descrio da rotina computacional
desenvolvida comentada.
7.3 Base terica
7.3.a Dimensionamento do Costado
A metodologia de clculo para o dimensionamento do costado de um vaso de presso a mesma
adotada na ASME. A norma ASME sugere que o dimensionamento da espessura do costado siga a equao abaixo:
e=
PR
( SE0,6P)
+C (7.3.1)
Onde as variveis P dotada a presso interna de projeto, R o raio mnimo interno do costado,
S a tenso admissvel bsica do material, E o coeficiente de eficincia da solda, Csobreespessura de corroso
e a espessura mnima para a chapa do costado.
A sobreespessura de corroso C de acordo com o fluido de trabalho e o tempo de vida do
equipamento. A espessura da chapa de fabricao do equipamento no pode ser menor que a espessura mnima de
resistncia estrutural. E caso isso ocorra, se deve usar a equao da espessura mnima de resistncia estrutural.
Observe:
e
s
= , 2 5+ , 0 0 0 2R+C (7.3.2)
42
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Outra informao de extrema importncia a presso mxima de trabalho admissvel conhecida
como PMTA. Ela calculada pela equao:
PMTA=
SEe
( R+0,6e)
(7.3.3)
7.3.b Dimensionamento dos tampos
O procedimento de clculo para os tampos similar ao clculo do costado. Devido a diversidade
de tampos o cdigo-fonte apresenta 3 possibilidades de escolha. Tampo plano, semi-elptico e cnico, so os
modelos que podem ser escolhidos e para cada tipo de tampo existe uma equao para o clculo da espessura. Veja a
equao do clculo da espessura para o tampo semi-elptico e a equao para a presso mxima de trabalho
admissvel:
e
te
=
PR
( SE0,1P)
+C (7.3.4)
e
PMTA
te
=
SEe
te
( R+0,1e
te
)
(7.3.5)
Veja a forma de um tampo semi-elptico:
FIGURA 7.3.1 Tampo semi-elptico.
As equaes para o tampo cnico so:
e
tc
=
PR
(cos(o)(SE0,6P))
+C (7.3.6)
e
PMTA
tc
=
(SEe
tc
cos(o))
( R+ , 0 6e
tc
cos(o))
+C (7.3.7)
Onde o termo representa o ngulo do teto do tampo com a linhas de centro.
Observe a forma de um tampo cnico:
FIGURA 7.3.2 Tampo cnico.
As equaes para o tampo plano so:
e
tp
=
.
NP
( SE)
+C
(7.3.8)
e
PMTA
tp
=
127S
(2R)
(7.3.9)
43
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
Observe a forma de um tampo plano:
FIGURA 7.3.3 Tampo plano.
7.4 Cdigo-fonte comentado passo a passo
O cdigo-fonte abaixo se apresenta de forma resumida, pois muitos detalhes de repetio foram
substitudos por linhas pontilhadas. Dessa forma, o cdigo-fonte para entendimento no fica comprometido e nem
extenso demais.
O cdigo-fonte do programa deste captulo bastante rico em informaes, pois ele apresenta
diversos trechos em sua rotina, do contedo j discutido at o momento. Rotinas de escolha como switch-case-
break, if-else-if, criao de funes e outras bastante interessantes. O cabealho padro foi retirado, pois o
cdigo-fonte completo e sem cortes se encontra no Apndice B.
double -e.=o>ad (double ))
{return ()789P:/1;')%(
//---------------------------------------------------
main ()
{
double >* P* B* =emp* ?* 5* e* es* P8=@* e9=orri* e9=orri9P8=@* alpha*
e9Bone* e9Bone9P8=@* e9>eto* e9>eto9P8=@%
int 8B* Irau* =ipo* =ampo%
O bloco de cdigo-fonte acima apresenta como incio do programa a criao da funo
DegToRad j apresentada como transformao de ngulos para radianos, pois as linguagens de programao no
trabalham de forma direta com ngulos. Aps a declarao da funo realizada a declarao de todas as variveis
utilizadas no programa. So declarados dois tipos de variveis, as do tipo int que possui as caractersticas de ser
aplicada a somente nmeros inteiros e as do tipo double, j mencionada no trabalho.
printf ($n P><I>@8@ P@>@ <)%
printf ($n -:85!?:<!@85!=< -5 ,@?<? -5 P>5??@<)%
printf ($n)%
printf ($n Pro.rama para dimensionamento de /asos de pressao)%
printf ($n com costado cilindrico e tampos retos* conicos ou)%
printf ($n torrisfericos e pressao e)terna.)%
printf ($n$n)%
printf ($n 1o. passo - -imensionamento do costado.)%
printf ($n --> -eterminacao da espessura da chapa.)%
printf ($n$n 5ntre com o raio interno do cilindro (mm)0)%
scanf (1lf*2>)%
.etchar ()%
printf ($n 5ntre com a pressao interna de proTeto (Pa)0)%
scanf (1lf*2P)%
.etchar ()%
printf ($n 5ntre com sobreespessura para corrosao (mm)0)%
scanf (1lf*2B)%
.etchar ()%
O trecho de cdigo-fonte apresentado acima, apenas se refere insero de alguns dados de
entrada, como a presso interna de projeto, raio interno do casco e a sobreespessura para corroso.
=emperatura0
printf ($n 5ntre com a temperatura de trabalho entre -&' e O'' (oB)0)%
scanf (1lf*2=emp)%
44
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
.etchar ()%
A insero da temperatura de trabalho do vaso de presso deve ser entre -30 C e 500 C. A linha
que est declarada a operao Temperatura: servir como local de reinicializao para o usurio digitar,
novamente, a temperatura de trabalho caso tenha sido digitada fora do intervalo.
Blasse0
printf ($n 5scolha a classe do material0)%
printf ($n)%
printf ($n `1a - (@-2;O-B)----------->@co carbono)%
printf ($n `2a - (@-&;P-11 c 11)----->@co-li.a 1.1/K Br -1/2 8o)%
printf ($n `&a - (@-&;P-O c 11)------>@co-li.a O Br - 1/2 8o)%
printf ($n @ escolha e0)%
scanf (1d*28B)%
.etchar ()%
if (8B>3K)
{printf ($n 5scolha a opcao correta#)%
.oto Blasse%(
if (8B<3')
{printf ($n 5scolha a opcao correta#)%
.oto Blasse%(
No trecho acima, realizada a declarao da operao Classe: indica que ser apresentada o
looping de reincio quando for declara em uma linha o comando goto Classe;. Veja que o programa faz perguntas
de qual classe deve ser o material a ser utilizado para o projeto do vaso de presso. O programa tambm d trs
opes e caso nenhuma delas seja digitada, ele reinicia a rotina a partir da linha que contm Classe:.
//-efinicao da tensao admissi/el do material pela temperatura de trabalho.
sSitch (8B)
{case 10
if (=emp<3&O')
{? 3 MLM%(
else if (=emp<3&PO)
{? 3 M2;%(
else if (=emp<3K'')
{? 3 ;KP%(
..................
.............
........
else if (=emp<3KPO)
{? 3 KLM%(
else if (=emp<3O'')
{? 3 &OP%(
else if (=emp>O'')
{printf ($n !ao aplica/el. 5ntre com outra temperatura#)%
.oto =emperatura%(
breaR%(
O trecho apresentado nesse momento apresenta a rotina de escolha switch-case-break e if-else-
if aninhadas. O trecho no apresenta todos os case porque no interessante de ser mostrado nesse momento,
pois todo o cdigo-fonte se encontra no Apndice B. Vale salientar nesse momento que para cada if-else-if no seu
case, ao final apresentada a funo goto Temperatura;. Assim, o programa reiniciar na linha que contm o a
localizao de Temperatura:, pois para cada case o programa efetua uma busca interna.
//-efinicao do coeficiente de eficiencia de solda.
Irau9inspecao0
printf ($n 5scolha o .rau de inspecao de solda.em0)%
printf ($n)%
printf ($n `1a - >adio.rafia =otal)%
printf ($n `2a - >adio.rafia Parcial)%
printf ($n `&a - !ao >adio.rafada)%
45
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n @ escolha e0)%
scanf (1d*2Irau)%
.etchar ()%
if (Irau>3K)
{printf ($n 5scolha a opcao correta#)%
.oto Irau9inspecao%(
if (Irau<3')
{printf ($n 5scolha a opcao correta#)%
.oto Irau9inspecao%(
Foi apresentada agora uma simples rotina de repetio para a escolha do grau de inspeo da solda.
Caso a opo escolhida no seja nenhuma das listadas, o programa ficar questionando at que seja definida uma
opo vlida.
Aps a definio do grau de inspeo de solda, o programa entra em mais uma rotina de escolha j
apresentada. O switch-case-break aplicado para atribuio do valor de E que o coeficiente de eficincia da
solda, mas ao escolher o grau de inspeo e cair na rotina do switch-case-break uma nova pergunta executada
dentro de cada case. questionado o tipo de soldagem aplicada no vaso de presso. fcil perceber que esse
problema resolvido pela aplicao da rotina if-else-if. utilizado nesse trecho abaixo a funo goto para cada
case, essa aplicao se deve a aplicabilidade de repetio do questionamento do programa caso a opo escolhida
no seja vlida. Observe:
sSitch (Irau)
{case 10
>adio.rafada0
printf ($n Hual o tipo de soldab)%
printf ($n)%
printf ($n `1a - ?olda de topo* feita por ambos os lados* ou procedimento
eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas
com)%
printf ($n mata-Tunta permanente).)%
printf ($n `2a - ?olda de topo* feita por um so lado* com mata-Tunta permanente.)%
printf ($n @ escolha e0)%
scanf (1d*2=ipo)%
.etchar ()%
..................
.............
........
if (=ipo331)
{5 3 '.P%(
else if (=ipo332)
{5 3 '.LO%(
else if (=ipo#31222)
{printf ($n 5scolha o tipo de solda#)%
.oto !ao9>adio.rafada%(
breaR%(
realizado nesse momento pelo trecho de cdigo-fonte abaixo, o clculo da espessura de projeto
da chapa, a espessura mnima estrutural da chapa e a presso mxima de trabalho admissvel aplicada no casco.
//Calculo do casco cilindrico.
e = ((P*R)/((S*E)-(0.6*P)))+C;
es = 2.5+(0.002*R)+C;
P!" = ((S*E*e)/(R+(0.6*e)));
#rin$% (&'n " es#essura do cos$ado e( )l% **&+e);
#rin$% (&'n " es#essura #ara es$a,ilidade es$ru$ural( )l% **&+es);
#rin$% (&'n Pressao *a-i*a de $ra,al.o ad*issi/el( )l% Pa&+P!");
O procedimento seguinte a realizao dos clculos para espessura de chapa a ser utilizada nos
tampos do vaso de presso e a presso mxima de trabalho admissvel suportada pelos tampos. Os procedimentos
apresentados j foram aplicados algumas vezes e so de fcil percepo. Assim:
46
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
//@.ora e iniciado a escolha e o calculo da espessura dos tampos
printf ($n)%
printf ($n 5scolha o tipo de tampo0)%
printf ($n$n `1a - =orrisferico)%
printf ($n `2a - Bonico)%
printf ($n `&a - Plano)%
printf ($n @ escolha e0)%
scanf (1d*2=ampo)%
.etchar ()%
sSitch (=ampo)
{case 10
e9=orri 3 ((P7>)/((?75)-('.17P)))4B%
e9=orri9P8=@ 3 ((?757e9=orri)/(>4('.17e9=orri)))%
printf ($n @ espessura do tampo torrisferico e0 1lf mm*e9=orri)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9=orri9P8=@)%
breaR%
case 20
printf ($n -efina o semi-an.ulo do /ertice do cone0)%
scanf (1lf*2alpha)%
.etchar ()%
e9Bone 3 ((P7>)/(cos(-e.=o>ad(alpha))7(?75-('.L7P))))4B%
e9Bone9P8=@ 3 ((?757e9Bone7cos(-e.=o>ad(alpha)))/(>4('.L7e9Bone7cos(-e.=o>ad(alpha)))))
4B%
printf ($n @ espessura do tampo conico e0 1lf mm*e9Bone)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9Bone9P8=@)%
breaR%
case &0
e9>eto 3 (sDrt(('.&&7P)/(?75)))4B%
e9>eto9P8=@ 3 ((12P7?)/(27>))%
printf ($n @ espessura do tampo plano e0 1lf mm*e9>eto)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9>eto9P8=@)%
breaR%(
O ltimo passo se trata da gerao e impresso de um relatrio com tudo que foi calculado e
apresentado. Veja:
//@.ora basta .erar o relatZrio de resultados.
printf ($n)%
printf
($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5A@=<>:< -5 >5?VA=@-<? - [[ ,@?<? -5 P>5??@< [[)%
printf
($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? ?<W>5 < B<?=@-<0 <<----)%
printf ($n >aio interno em (m)0 1lf*>)%
printf ($n Pressao interna de proTeto (Pa)0 1lf*P)%
printf ($n ?obreespesura para corrosao (mm)0 1lf*B)%
printf ($n =emperatura de trabalho (oB)0 1lf*=emp)%
printf ($n =ensao admissi/el do material (R.f/cm2)0 1lf*?)%
printf ($n Boeficiente de eficiencia de solda0 1lf*5)%
printf ($n @ espessura do costado e (mm)0 1lf*e)%
printf ($n @ espessura para estabilidade estrutural (mm)0 1lf*es)%
printf ($n Pressao ma)ima de trabalho admissi/el (Pa)0 1lf*P8=@)%
printf
($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? ?<W>5 <? =@8P<?0 <<----)%
if (=ampo331)
{printf ($n =ipo de tampo0 =orrisferico)%
printf ($n @ espessura do tampo torrisferico e (mm)0 1lf*e9=orri)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9=orri9P8=@)%(
else if (=ampo332)
{printf ($n =ipo de tampo0 Bonico)%
printf ($n @ espessura do tampo conico e (mm)0 1lf*e9Bone)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9Bone9P8=@)%(
else if (=ampo33&)
{printf ($n =ipo de tampo0 Plano)%
printf ($n @ espessura do tampo plano e (mm)0 1lf*e9>eto)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9>eto9P8=@)%(
47
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf
($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? I5>@:? <<----)%
if (8B331)
{printf ($n Blasse do material0 @-2;O-B (@co carbono))%(
if (8B332)
{printf ($n Blasse do material0 @-&;P-11 c 11 (@co-li.a 1.1/K Br - 1/2 8o))%(
if (8B33&)
{printf ($n Blasse do material0 @-&;P-O c 11 (@co-li.a O Br - 1/2 8o))%(
if (Irau331)
{printf ($n Irau da inspecao de solda.em0 >adio.rafia =otal)%(
if (Irau332)
{printf ($n Irau de inspecao de solda.em0 >adio.rafia Parcial)%(
if (Irau33&)
{printf ($n Irau de inspecao de solda.em0 !ao >adio.rafada)%(
if (=ipo331)
{printf ($n <W?5>,@B@<0)%
printf ($n ?olda de topo* feita por ambos os lados* ou procedimento eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas com)%
printf ($n mata-Tunta permanente).$n$n)%(
if (=ipo332)
{printf ($n <W?5>,@B@<)%
printf ($n ?olda de topo* feita por um so lado* com mata-Tunta permanente.$n$n)%(
.etchar ()%
return '%
(
48
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
REFERNCIAS
AMERICAN SOCIETY of MECHANICAL ENGINEERS. ASME SEC. VIII Div. I: Boiler and Pressure Vessel
Code. New York: 648p. 2004.
ARAJO, E.C.C. Trocadores de Calor, 1 ed., EdUFSCAR, So Carlos, 2002.
CARVALHO, C. de O. FILHO. Trabalho Individual No. 1 (OBRIGATRIO) Projeto de Dimensionamento
de Trocadores de Calor. Proposta de Trabalho Acadmico (Graduao em Engenharia Mecnica) Centro de
Tecnologia, Universidade Federal do Cear, Fortaleza, 2007.
CARVALHO, C. de O. FILHO. Trabalho Individual No. 2 (OPCIONAL) Projeto de Isolamento Trmico de
Linhas de Vapor. Proposta de Trabalho Acadmico (Graduao em Engenharia Mecnica) Centro de Tecnologia,
Universidade Federal do Cear, Fortaleza, 2007.
CMARA, S. L.. Projeto deVigas Bi-apoiadas PROVIG. 2006. Monografia (Graduao em Engenharia Mecnica)
Centro de Tecnologia, Universidade Federal do Cear, Fortaleza, 2006.
GONSALES, D. JR.. Software para dimensionamento de vasos de presso DIVAP. 2006. Monografia
(Graduao em Engenharia Mecnica) Centro de Tecnologia, Universidade Federal do Cear, Fortaleza, 2006.
HERBERT, S.. C Completo e Total. 3 ed. rev., So Paulo, SP: Makron Books Ed. , 1997.
HIBBELER, R.C. Resistncia dos Materiais. 3 ed. (Traduzida), Rio de Janeiro, RJ: Livros Tcnicos e Cientficos
Ed. , 2000. cap. 11 e 12.
INCROPERA, F.P. e DEWITT, D.P. Fundamentos de Transferncia de Calor e de Massa, 5 ed. (Traduzida),
LTC, Rio de Janeiro, 2003. cap. 6, 7, 8, 9, 10.
KERNIGHAN, B. W., RITCHIE, D. M., The C Programming Language. Prentice Hall, Inc., 1988.
KREITH, F. e BOEHM, R.F. Heat and Mass Transfer Mechanical Engineering Handbook, Ed. Frank Kreith,
1999.
MORAN, M.J., DEWITT, D.P., MUNSON, B.R. e SHAPIRO, H.N. Introduo a Engenharia dos Sistemas
Trmicos, 1 ed., LTC, Rio de Janeiro, 2005.
SANTOS, H. J.. Curso de Linguagem C. 2000. Santos, SP: UNISANTOS.
TELLES, Pedro Carlos da Silva. Vasos de presso. Rio de Janeiro, RJ: Livros Tcnicos e Cientficos Ed., 1991.
49
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
APNDICE A Fontes de informao para instalao do Ubuntu
http://img01.link.estadao.com.br/multimidia/infografico/InstalarLinux.pdf
http://br-linux.org/linux/tutorial_de_instalao_do_ubuntu_6.06
http://www.gnx.com.br/apostilas/apostila-Ubuntu-Instalacao-GPL.pdf
http://www.guiaubuntupt.org/wiki/index.php?title=Como_instalar_tudo_em_Ubuntu
http://glua.ua.pt/Suporte/Ubuntu?action=AttachFile&do=get&target=iuni.pdf
http://www.guiadohardware.net/comunidade/ubuntu-particoes/272726/
http://www.forumpcs.com.br/viewtopic.php?t=128477
http://wiki.meyer.eti.br/_media/howto/ubuntu-feisty-install.pdf
http://ubuntuforum-br.org/
http://ubuntuforums.org/
http://www.linuxforums.org/forum/ubuntu-help/
50
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
APNDICE B Cdigos-fonte dos programas abordados
Exemplo referente a Figura 3.1.1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
printf (!ao fa" nada#$n)%
return '%
(
Exemplo referente a Figura 3.2.1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
double )* +* "%
printf ($n,amos somar dois numeros.)%
printf ($n$n-i.ite o /alor de )0)%
scanf (1lf*2))%
.etchar ()%
printf (-i.ite o /alor de +0)%
scanf (1lf*2+)%
.etchar ()%
"3)4+%
printf (" e i.ual a0 1lf$n*")%
.etchar ()%
return '%
(
Exemplo referente a Figura 3.3.1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
main ()
{
double )* +%
printf($n5ntre com o 6n.ulo para calcularmos o seno0)%
scanf(1lf*2))%
.etchar()%
+ 3 sin(()789P:)/1;')%
printf ($n< /alor do seno e0 1lf$n*+)%
.etchar()%
return '%
(
Exemplo referente a Figura 3.3.2
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//-----------------------------------
double -e.=o>ad (double ))
{return ()789P:/1;')%(
//-----------------------------------
main ()
51
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
{
double )* +%
printf($n5ntre com o 6n.ulo para calcularmos o seno0)%
scanf(1lf*2))%
.etchar()%
+ 3 sin(-e.=o>ad()))%
printf ($n< /alor do seno e0 1lf$n*+)%
.etchar()%
return '%
(
Dimensionamento de isolamento trmico em linha de vapor
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//------------------------------------------------------------------------------
main ()
{
inicio0
printf ($n -:85!?:<!@85!=< -5 :?<A@85!=< =5>8:B< 58 A:!C@ -5 ,@P<>)%
printf ($n$n$n 1 - -etermina a espessura do isolamento a partir da Dueda de
temperatura.)%
printf ($n 2 - -etermina a Dueda de temperatura a partir da espessura do isolamento.)%
printf ($n & - Einali"ar o pro.rama.)%
printf ($n$n$n 5scolha a ?ituacao0)%
int )%
scanf (1d*2))%
if ()331)
{
double >1* >2* >&* F:* F=* C* A* ,@G@<* Bp* e* /a"ao*
B'* B1* B2* B&* =eta* =:* =@* =si* >B* Euncao* =9int* =9e)t*
P5?<* Hr* d=* >o* I* 5iso* d=porA* A1* A2* =1* =2%
printf ($n 5speficiDue a diametro e)terno do tubo (m)0 )%
scanf (1lf*2>2)%
printf ( 5specifiDue a espessura da parede do tubo (m)0 )%
scanf (1lf*2e)%
>1 3 >2-e%
printf ($n 5scolha o material do tubo0$n)%
printf ( 1 - =ubo de aco carbono @!?: 1'1'.$n)%
printf ( 2 - =ubo de aco :!<J @!?: &'K.$n)%
printf ( & - =udo de bron"e comercial.$n)%
printf ( 5scolha0 )%
int F=ubo%
scanf (1d*2F=ubo)%
if (F=ubo 33 1)
{F= 3 L&.M%( //=ubo de aNo carbono @!?: 1'1'.
if (F=ubo 33 2)
{F= 3 1K.M%( //=ubo de aNo :!<J @!?: &'K.
if (F=ubo 33 &)
{F= 3 O2%( //=ubo de bron"e comercial.
printf ($n 5scolha o material do isolamento termico0$n)%
printf ( 1 - 8anta de la de /idro.$n)%
printf ( 2 - =ubo bi-partido de la de rocha.$n)%
printf ( & - Elocos de la de rocha.$n)%
printf ( 5scolha0 )%
int F:solamento%
scanf (1d*2F:solamento)%
if (F:solamento 33 1)
{F: 3 '.'2O%
>o 3 K'%(
if (F:solamento 33 2)
{F: 3 '.'KL%
>o 3 1&'%(
if (F:solamento 33 &)
{F: 3 '.'&P%
>o 3 L'%(
C 3 &'% //Boeficiente de con/ecNQo e)terna.
printf ($n :nforme o comprimento da tubulacao (m)0 )%
scanf (1lf*2A)%
52
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ( :nforme a /a"ao massica do /apor (R./s)0 )%
scanf (1lf*2/a"ao)%
,@G@< 3 /a"ao/&L''%
printf ( :nforme a temperatura do /apor (oB)0 )%
scanf (1lf*2=9int)%
printf ( :nforme a temperatura do ambiente (oB)0 )%
scanf (1lf*2=9e)t)%
=: 3 =9int42P&.1O%
=@ 3 =9e)t42P&.1O%
=eta 3 =:/1'''%
B' 3 1.PM%
B1 3 '.1'P7=eta%
B2 3 '.O;L7=eta7=eta%
B& 3 -'.27=eta7=eta7=eta%
I 3 M.;1%
Bp 3 (B'4B14B24B&)71'''%
>& 3 >2%
printf ( :nforme a Dueda de temperatura na linha (oB/m)0)%
scanf (1lf*2d=porA)%
Euncao 3 ((=:-=@)/((((lo.(>2/>1)))/(2789P:7F=7A))4(((lo.(>&/>2)))/
(2789P:7F:7A))4(1/(C72789P:7>&7A))))/(,@G@<7Bp)%
Shile (((d=porA7A)/Euncao)<1)
{
>& 3 >&4'.''''''1%
Euncao 3 ((=:-=@)/((((lo.(>2/>1)))/(2789P:7F=7A))4(((lo.(>&/>2)))/
(2789P:7F:7A))4(1/(C72789P:7>&7A))))/(,@G@<7Bp)%
(
5iso 3 >&->2%
printf ($n 5spessura do isolamento recomendada 333333333333333333333333>
1O.Klf (m)* 5iso)%
A1 3 lo.(>2/>1)%
A2 3 lo.(>&/>2)%
=1 3 (A17C7>&)/F=%
=2 3 (A27C7>&)/F:%
=si 3 ((=:/(=14=2))4=@)/((1/(=14=2))41)-2P&.1O%
printf ($n =emperatura da superficie e)terna do isolamento 333333333333>
1O.2lf oB* =si)%
P5?< 3 I7>o7(>&7>&->27>2)789P:%
>B 3 (F:/C)%
printf ($n < peso do isolamento em R.f/m 333333333333333333333333333333>
1O.&lf !/m* P5?<)%
printf ($n < raio critico do isolamento 3333333333333333333333333333333>
1O.Olf m* >B)%
if (>B<>1)
{
printf ($n$n Bomo o raio do tubo e maior do Due o raio critico* DualDuer
adicao de)%
printf ($n camadas de isolamento ira aumentar a resistencia total e
portanto)%
printf ($n diminuindo a perda de calor.)%
(
else
{
printf ($n$n Bomo o raio do tubo e menor Due o raio critico* a resistencia
total)%
printf ($n diminui e* portanto* a ta)a de calor aumenta com a adicao de
camadas)%
printf ($n de isolamento.)%
(
printf ($n$n$n Pressione a tecla 5!=5> para reiniciar.)%
.etchar()%
.etchar()%
.oto inicio%
(
if ()332)
{
double >1* >2* >&* F:* F=* C* A* ,@G@<* Bp* =1* =2* =9int* =9e)t*
B'* B1* B2* B&* =eta* =:* =@* =si* >B* A1* A2* e* /a"ao*
-1* -2* P5?<* Hr* d=* >o* I* 5iso* d=porA* H1* H2* H&%
printf ($n 5speficiDue a diametro e)terno do tubo (m)0 )%
scanf (1lf*2>2)%
printf ( 5specifiDue a espessura da parede do tubo (m)0 )%
scanf (1lf*2e)%
>1 3 >2-e%
printf ($n 5scolha o material do tubo0$n)%
53
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ( 1 - =ubo de aco carbono @!?: 1'1'.$n)%
printf ( 2 - =ubo de aco :!<J @!?: &'K.$n)%
printf ( & - =udo de bron"e comercial.$n)%
printf ( 5scolha0 )%
int F=ubo%
scanf (1d*2F=ubo)%
if (F=ubo 33 1)
{F= 3 L&.M%( //=ubo de aNo carbono @!?: 1'1'.
if (F=ubo 33 2)
{F= 3 1K.M%( //=ubo de aNo :!<J @!?: &'K.
if (F=ubo 33 &)
{F= 3 O2%( //=ubo de bron"e comercial.
printf ($n 5scolha o material do isolamento termico0$n)%
printf ( 1 - 8anta de la de /idro.$n)%
printf ( 2 - =ubo bi-partido de la de rocha.$n)%
printf ( & - Elocos de la de rocha.$n)%
printf ( 5scolha0 )%
int F:solamento%
scanf (1d*2F:solamento)%
if (F:solamento 33 1)
{F: 3 '.'2O%
>o 3 K'%(
if (F:solamento 33 2)
{F: 3 '.'KL%
>o 3 1&'%(
if (F:solamento 33 &)
{F: 3 '.'&P%
>o 3 L'%(
C 3 &'%
printf ($n :nforme o comprimento da tubulacao (m)0 )%
scanf (1lf*2A)%
printf ( :nforme a /a"ao massica do /apor (R./s)0 )%
scanf (1lf*2/a"ao)%
,@G@< 3 /a"ao/&L''%
printf ( :nforme a temperatura do /apor (oB)0 )%
scanf (1lf*2=9int)%
printf ( :nforme a temperatura do ambiente (oB)0 )%
scanf (1lf*2=9e)t)%
=: 3 =9int42P&.1O%
=@ 3 =9e)t42P&.1O%
=eta 3 =:/1'''%
B' 3 1.PM%
B1 3 '.1'P7=eta%
B2 3 '.O;L7=eta7=eta%
B& 3 -'.27=eta7=eta7=eta%
I 3 M.;1%
Bp 3 (B'4B14B24B&)71'''%
printf ( 5spessura do isolamento deseTado (m)0)%
scanf (1lf*25iso)%
>& 3 >245iso%
A1 3 lo.(>2/>1)%
A2 3 lo.(>&/>2)%
-1 3 2789P:7F=7A%
-2 3 2789P:7F:7A%
H1 3 A1/-1%
H2 3 A2/-2%
H& 3 1/(2789P:7>&7C7A)%
Hr 3 (=:-=@)/(H14H24H&)%
d= 3 (Hr)/(,@G@<7Bp)%
d=porA 3 d=/A%
=1 3 (A17C7>&)/F=%
=2 3 (A27C7>&)/F:%
=si 3 ((=:/(=14=2))4=@)/((1/(=14=2))41)-2P&.1O%
P5?< 3 I7>o7(>&7>&->27>2)789P:%
>B 3 (F:/C)%
printf ($n @ Dueda de temperatura na linha por unidade de comprimento 3>
1O.Mlf oB/m* d=porA)%
printf ($n =emperatura da superficie e)terna do isolamento 333333333333>
1O.2lf oB* =si)%
printf ($n < peso do isolamento em R.f/m 333333333333333333333333333333>
1O.&lf !/m* P5?<)%
printf ($n < raio critico do isolamento 3333333333333333333333333333333>
1O.Olf m* >B)%
if (>B<>1)
{
54
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n$n Bomo o raio do tubo e maior do Due o raio critico* DualDuer
adicao de)%
printf ($n camadas de isolamento ira aumentar a resistencia total e
portanto)%
printf ($n diminuindo a perda de calor.)%
(
else
{
printf ($n$n Bomo o raio do tubo e menor Due o raio critico* a resistencia
total)%
printf ($n diminui e* portanto* a ta)a de calor aumenta com a adicao de
camadas)%
printf ($n de isolamento.)%
(
printf ($n$n$n Pressione a tecla 5!=5> para reiniciar.)%
.etchar()%
.etchar()%
.oto inicio%
(
if ()33&)
{
return '%
(
.etchar()%
return '%
(
Projeto de um trocador de calor do tipo casco e tubos (gua leo)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//---------------------------------------------------------------------------
main ()
{
//-eclaraNQo de al.umas constantes e /ariU/eis.
int )* +* S%
double =empC5* dC5* cpC5* uC5* /C5* RC5* aC5* PrC5* =empC8* P:* =empC5ntrada*
=empC?aida* =empC?* dC?* cpC?* uC?* /C?* RC?* aC?* PrC?* mC* V* d=empB*
mc* >ed=ubo* f* factor''1* factor''2* !ud=ubo* ht* >* ?* E* factor''&*
factor''K* factor''O* factor''L* factor''P* A* -elta=empA8* @troca*
-casco:!* >a"ao* ,olC2<* !udBasco* hc* mh* D* -tubo* -casco* !* d=empC*
Wocal* P* !f* B* Passo* m* n* @bocal* H* ,* ,ma)* >edBasco* /C8* RC8*
aC8* PrC8* dC8* cpC8* uC8* =empB5* =empB?* =empB8* dB5* cpB5* uB5* RB5*
PrB5* dB?* cpB?* uB?* RB?* PrB?* =empB5ntrada* =empB?aida* dB8* cpB8*
uB8* RB8* PrB8* @calculada* 5)cesso%
//8ensa.em de informaNQo do pro.rama.
printf ($n$n ?<E=X@>5 P@>@ -:85!?:<!@85!=< -5)%
printf ($n =><B@-<> -5 B@A<> -< =:P< B@?B< 5 =VW<)%
printf ($n$n 33333 $n)%
printf ( | | $n)%
printf ( |---|----------------------|---| $n)%
printf ( | ||33333333333333333333|| | $n)%
printf ( || | ||33333333333333333333|| | ||$n)%
printf ( ||--- ||33333333333333333333|| ---||$n)%
printf ( ||--- ||33333333333333333333|| ---||$n)%
printf ( || | ||33333333333333333333|| | ||$n)%
printf ( | ||33333333333333333333|| | $n)%
printf ( |---|----------------------|---| $n)%
printf ( | | $n)%
printf ( 33333 $n)%
//5ntrada dos /alores da temperatura de entrada e saYda do Zleo.
printf ($n <W?5>,@B<5?0)%
printf ($n 1 - @ temperatura do oleo de/e estar na fai)a de (-'.1O <-> 1OL.;O) oB*)%
printf ($n pois corresponde a tabela encotrada em literatura.)%
printf ($n 2 - @ temperatura da a.ua de/e estar na fai)a de (' <-> M1.;O) oB*)%
printf ($n pois corresponde a tabela encotrada em literatura.)%
printf ($n & - @ a.ua entra pelo fei)e de tubos e o oleo pelo casco* isso se de/e*)%
55
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n a literatura recomenda Due o fluido Duente passe pelo casco.)%
printf ($n K - < trocador e do tipo [contra corrente[ pois trocadores desse tipo*)%
printf ($n apresentam melhor troca termica.)%
printf ($n$n 5ntre com o /alor da temperatura de entrada (Duente) do oleo (oB)0 )%
scanf (1lf*2=empC5ntrada)%
.etchar ()%
printf ( 5ntre com o /alor da temperatura de saida (fria) do oleo (oB)0 )%
scanf (1lf*2=empC?aida)%
.etchar ()%
//Wusca de =empC8 pelos /alores menores e maiores.
=empC8 3 (=empC5ntrada4=empC?aida)/2%
//1a. parte da interpolaNQo.
if (=empC8<3-'.1O)
{=empC5 3 -'.1O%
dC5 3 ;;M.1%
cpC5 3 1PML%
uC5 3 &.;O%
/C5 3 '.''K2;'%
RC5 3 '.1KP%
aC5 3 '.'''''''M1'%
PrC5 3 KP'''%
.oto fim=empC5%(
if (=empC8<3L.;O)
{=empC5 3 L.;O%
dC5 3 ;MO.&%
cpC5 3 1;2P%
uC5 3 2.1P%
/C5 3 '.''2K&'%
RC5 3 '.1KK%
aC5 3 '.''''''';;'%
PrC5 3 2PO''%
.oto fim=empC5%(
if (=empC8<31L.;O)
{=empC5 3 1L.;O%
dC5 3 ;M'.'%
cpC5 3 1;L;%
uC5 3 '.MMM%
/C5 3 '.''112'%
RC5 3 '.1KO%
aC5 3 '.''''''';P2%
PrC5 3 12M''%
.oto fim=empC5%(
if (=empC8<32L.;O)
{=empC5 3 2L.;O%
dC5 3 ;;K.1%
cpC5 3 1M'M%
uC5 3 '.K;L%
/C5 3 '.'''OO'%
RC5 3 '.1KO%
aC5 3 '.''''''';OM%
PrC5 3 LK''%
.oto fim=empC5%(
if (=empC8<3&L.;O)
{=empC5 3 &L.;O%
dC5 3 ;PP.M%
cpC5 3 1MO1%
uC5 3 '.2O&%
/C5 3 '.'''2;;%
RC5 3 '.1KO%
aC5 3 '.''''''';KP%
PrC5 3 &K''%
.oto fim=empC5%(
if (=empC8<3KL.;O)
{=empC5 3 KL.;O%
dC5 3 ;P1.;%
cpC5 3 1MM&%
uC5 3 '.1K1%
/C5 3 '.'''1L1%
RC5 3 '.1K&%
aC5 3 '.''''''';2&%
PrC5 3 1MLO%
56
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
.oto fim=empC5%(
if (=empC8<3OL.;O)
{=empC5 3 OL.;O%
dC5 3 ;LO.;%
cpC5 3 2'&O%
uC5 3 '.';&L%
/C5 3 '.''''MLL%
RC5 3 '.1K1%
aC5 3 '.''''''';''%
PrC5 3 12'O%
.oto fim=empC5%(
if (=empC8<3LL.;O)
{=empC5 3 LL.;O%
dC5 3 ;OM.M%
cpC5 3 2'PL%
uC5 3 '.'O&1%
/C5 3 '.''''L1P%
RC5 3 '.1&M%
aC5 3 '.'''''''PPM%
PrC5 3 PM&%
.oto fim=empC5%(
if (=empC8<3PL.;O)
{=empC5 3 PL.;O%
dC5 3 ;O&.M%
cpC5 3 211;%
uC5 3 '.'&OL%
/C5 3 '.''''K1P%
RC5 3 '.1&;%
aC5 3 '.'''''''PL&%
PrC5 3 OKL%
.oto fim=empC5%(
if (=empC8<3;L.;O)
{=empC5 3 ;L.;O%
dC5 3 ;KP.;%
cpC5 3 21L1%
uC5 3 '.'2O2%
/C5 3 '.''''2MP%
RC5 3 '.1&;%
aC5 3 '.'''''''PO&%
PrC5 3 &MO%
.oto fim=empC5%(
if (=empC8<3ML.;O)
{=empC5 3 ML.;O%
dC5 3 ;K1.;%
cpC5 3 22'L%
uC5 3 '.'1;L%
/C5 3 '.''''22'%
RC5 3 '.1&P%
aC5 3 '.'''''''P&;%
PrC5 3 &''%
.oto fim=empC5%(
if (=empC8<31'L.;O)
{=empC5 3 1'L.;O%
dC5 3 ;&L.'%
cpC5 3 22O'%
uC5 3 '.'1K1%
/C5 3 '.''''1LM%
RC5 3 '.1&L%
aC5 3 '.'''''''P2&%
PrC5 3 2&&%
.oto fim=empC5%(
if (=empC8<311L.;O)
{=empC5 3 11L.;O%
dC5 3 ;&'.L%
cpC5 3 22MK%
uC5 3 '.'11'%
/C5 3 '.''''1&&%
RC5 3 '.1&O%
aC5 3 '.'''''''P'M%
PrC5 3 1;P%
.oto fim=empC5%(
if (=empC8<312L.;O)
{=empC5 3 12L.;O%
dC5 3 ;2O.1%
cpC5 3 2&&P%
57
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
uC5 3 '.'';PK%
/C5 3 '.''''1'L%
RC5 3 '.1&K%
aC5 3 '.'''''''LMO%
PrC5 3 1O2%
.oto fim=empC5%(
if (=empC8<31&L.;O)
{=empC5 3 1&L.;O%
dC5 3 ;1;.M%
cpC5 3 2&;1%
uC5 3 '.''LM;%
/C5 3 '.''''';O2%
RC5 3 '.1&&%
aC5 3 '.'''''''L;2%
PrC5 3 12O%
.oto fim=empC5%(
if (=empC8<31KL.;O)
{=empC5 3 1KL.;O%
dC5 3 ;12.1%
cpC5 3 2K2P%
uC5 3 '.''OLK%
/C5 3 '.'''''LMK%
RC5 3 '.1&&%
aC5 3 '.'''''''LPO%
PrC5 3 1'&%
.oto fim=empC5%(
if (=empC8<31OL.;O)
{=empC5 3 1OL.;O%
dC5 3 ;'L.O%
cpC5 3 2KP1%
uC5 3 '.''KP'%
/C5 3 '.'''''O;&%
RC5 3 '.1&2%
aC5 3 '.'''''''LL2%
PrC5 3 ;;%(
fim=empC50
//BontinuaNQo da 2a. parte para interpolaNQo.
if (=empC8>31OL.;O)
{=empC? 3 1OL.;O%
dC? 3 ;'L.O%
cpC? 3 2KP1%
uC? 3 '.''KP'%
/C? 3 '.'''''O;&%
RC? 3 '.1&2%
aC? 3 '.'''''''LL2%
PrC? 3 ;;%
.oto fim=empC?%(
if (=empC8>31KL.;O)
{=empC? 3 1KL.;O%
dC? 3 ;12.1%
cpC? 3 2K2P%
uC? 3 '.''OLK%
/C? 3 '.'''''LMK%
RC? 3 '.1&&%
aC? 3 '.'''''''LPO%
PrC? 3 1'&%
.oto fim=empC?%(
if (=empC8>31&L.;O)
{=empC? 3 1&L.;O%
dC? 3 ;1;.M%
cpC? 3 '.''LM;%
/C? 3 '.''''';O2%
RC? 3 '.1&&%
aC? 3 '.'''''''L;2%
PrC? 3 12O%
.oto fim=empC?%(
if (=empC8>312L.;O)
{=empC? 3 12L.;O%
dC? 3 ;2O.1%
cpC? 3 2&&P%
uC? 3 '.'';PK%
/C? 3 '.''''1'L%
RC? 3 '.1&K%
58
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
aC? 3 '.'''''''LMO%
PrC? 3 1O2%
.oto fim=empC?%(
if (=empC8>311L.;O)
{=empC? 3 11L.;O%
dC? 3 ;&'.L%
cpC? 3 22MK%
uC? 3 '.'11'%
/C? 3 '.''''1&&%
RC? 3 '.1&O%
aC? 3 '.'''''''P'M%
PrC? 3 1;P%
.oto fim=empC?%(
if (=empC8>31'L.;O)
{=empC? 3 1'L.;O%
dC? 3 ;&L.'%
cpC? 3 22O'%
uC? 3 '.'1K1%
/C? 3 '.''''1LM%
RC? 3 '.1&L%
aC? 3 '.'''''''P2&%
PrC? 3 2&&%
.oto fim=empC?%(
if (=empC8>3ML.;O)
{=empC? 3 ML.;O%
dC? 3 ;K1.;%
cpC? 3 22'L%
uC? 3 '.'1;L%
/C? 3 '.''''22'%
RC? 3 '.1&P%
aC? 3 '.'''''''P&;%
PrC? 3 &''%
.oto fim=empC?%(
if (=empC8>3;L.;O)
{=empC? 3 ;L.;O%
dC? 3 ;KP.;%
cpC? 3 21L1%
uC? 3 '.'2O2%
/C? 3 '.''''2MP%
RC? 3 '.1&;%
aC? 3 '.'''''''PO&%
PrC? 3 &MO%
.oto fim=empC?%(
if (=empC8>3PL.;O)
{=empC? 3 PL.;O%
dC? 3 ;O&.M%
cpC? 3 211;%
uC? 3 '.'&OL%
/C? 3 '.''''K1P%
RC? 3 '.1&;%
aC? 3 '.'''''''PL&%
PrC? 3 OKL%
.oto fim=empC?%(
if (=empC8>3LL.;O)
{=empC? 3 LL.;O%
dC? 3 ;OM.M%
cpC? 3 2'PL%
uC? 3 '.'O&1%
/C? 3 '.''''L1P%
RC? 3 '.1&M%
aC? 3 '.'''''''PPM%
PrC? 3 PM&%
.oto fim=empC?%(
if (=empC8>3OL.;O)
{=empC? 3 OL.;O%
dC? 3 ;LO.;%
cpC? 3 2'&O%
uC? 3 '.';&L%
/C? 3 '.''''MLL%
RC? 3 '.1K1%
aC? 3 '.''''''';''%
PrC? 3 12'O%
.oto fim=empC?%(
if (=empC8>3KL.;O)
{=empC? 3 KL.;O%
59
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
dC? 3 ;P1.;%
cpC? 3 1MM&%
uC? 3 '.1K1%
/C? 3 '.'''1L1%
RC? 3 '.1K&%
aC? 3 '.''''''';2&%
PrC? 3 1MLO%
.oto fim=empC?%(
if (=empC8>3&L.;O)
{=empC? 3 &L.;O%
dC? 3 ;PP.M%
cpC? 3 1MO1%
uC? 3 '.2O&%
/C? 3 '.'''2;;%
RC? 3 '.1KO%
aC? 3 '.''''''';KP%
PrC? 3 &K''%
.oto fim=empC?%(
if (=empC8>32L.;O)
{=empC? 3 2L.;O%
dC? 3 ;;K.1%
cpC? 3 1M'M%
uC? 3 '.K;L%
/C? 3 '.'''OO'%
RC? 3 '.1KO%
aC? 3 '.''''''';OM%
PrC? 3 LK''%
.oto fim=empC?%(
if (=empC8>31L.;O)
{=empC? 3 1L.;O%
dC? 3 ;M'.'%
cpC? 3 1;L;%
uC? 3 '.MMM%
/C? 3 '.''112'%
RC? 3 '.1KO%
aC? 3 '.''''''';P2%
PrC? 3 12M''%
.oto fim=empC?%(
if (=empC8>3L.;O)
{=empC? 3 L.;O%
dC? 3 ;MO.&%
cpC? 3 1;2P%
uC? 3 2.1P%
/C? 3 '.''2K&'%
RC? 3 '.1KK%
aC? 3 '.''''''';;'%
PrC? 3 2PO''%
.oto fim=empC?%(
if (=empC8>3-'.1O)
{=empC? 3 -'.1O%
dC? 3 ;;M.1%
cpC? 3 1PML%
uC? 3 &.;O%
/C? 3 '.''K2;'%
RC? 3 '.1KP%
aC? 3 '.'''''''M1'%
PrC? 3 KP'''%(
fim=empC?0


//BUlculos de interpolaN\es.
/C8 3 (((=empC8-=empC5)7(/C?-/C5))/(=empC?-=empC5))4/C5%
RC8 3 (((=empC8-=empC5)7(RC?-RC5))/(=empC?-=empC5))4RC5%
aC8 3 (((=empC8-=empC5)7(aC?-aC5))/(=empC?-=empC5))4aC5%
PrC8 3 (((=empC8-=empC5)7(PrC?-PrC5))/(=empC?-=empC5))4PrC5%
dC8 3 (((=empC8-=empC5)7(dC?-dC5))/(=empC?-=empC5))4dC5%
cpC8 3 (((=empC8-=empC5)7(cpC?-cpC5))/(=empC?-=empC5))4cpC5%
uC8 3 (((=empC8-=empC5)7(uC?-uC5))/(=empC?-=empC5))4uC5%
//5ntrada do /alor da /a"Qo do Zleo.
printf ($n 5ntre com a /a"ao do oleo (A/min)0 )%
scanf (1lf*2mC)%
.etchar ()%
60
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
//BUlculos a partir da /a"Qo do Zleo fornecida.
P 3 '.'1M'O%
mh 3 (mC/L')7(dC8/1''')%
d=empC 3 =empC5ntrada-=empC?aida%
D 3 mh7cpC87d=empC%
//5scolha do di6metro do tubo.
printf ($n 5scolha o diametro do tubo do fei)e0 )%
printf ($n 1 - =ubo de &/; in.)%
printf ($n 2 - =ubo de 1/2 in.)%
printf ($n & - =ubo de O/; in.)%
printf ($n @ escolha e0 )%
scanf (1d*2))%
.etchar ()%
if ()331)
{-tubo 3 '.''MO2O%(
if ()332)
{-tubo 3 '.'12P%(
if ()33&)
{-tubo 3 '.'1O;PO%(
//5scolha a confi.uraNQo do trocador nos par6metros abai)o.
printf ($n 5scolha a confi.uracao do trocador de calor0 )%
printf ($n 1 - 12 tubos* 1 passo* & in de casco)%
printf ($n 2 - 1L tubos* 1 passo* &.O in de casco)%
printf ($n & - 1L tubos* 1 passo* K in de casco)%
printf ($n K - &L tubos* 1 passo* O in de casco)%
printf ($n O - O2 tubos* 1 passo* L in de casco)%
printf ($n L - ;; tubos* 1 passo* ; in de casco)%
printf ($n P - 1K; tubos* 1 passo* 1' in de casco)%
printf ($n ; - 2'; tubos* 1 passo* 12 in de casco)%
printf ($n M - L tubos* 2 passos* & in de casco)%
printf ($n 1' - ; tubos* 2 passos* &.O in de casco)%
printf ($n 11 - ; tubos* 2 passos* K in de casco)%
printf ($n 12 - 1; tubos* 2 passos* O in de casco)%
printf ($n 1& - 2L tubos* 2 passos* L in de casco)%
printf ($n 1K - KK tubos* 2 passos* ; in de casco)%
printf ($n 1O - PK tubos* 2 passos* 1' in de casco)%
printf ($n 1L - 1'K tubos* 2 passos* 12 in de casco)%
printf ($n 1P - & tubos* K passos* & in de casco)%
printf ($n 1; - K tubos* K passos* &*O in de casco)%
printf ($n 1M - K tubos* K passos* K in de casco)%
printf ($n 2' - M tubos* K passos* O in de casco)%
printf ($n 21 - 1& tubos* K passos* L in de casco)%
printf ($n 22 - 22 tubos* K passos* ; in de casco)%
printf ($n 2& - &P tubos* K passos* 1' in de casco)%
printf ($n 2K - O2 tubos* K passos* 12 in de casco)%
printf ($n @ escolha e0 )%
scanf (1d*2+)%
.etchar ()%
if (+331)
{! 3 12%
-casco 3 &7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 1%(
if (+332)
{! 3 1L%
-casco 3 &.O7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 1%(
if (+33&)
{! 3 1L%
-casco 3 K7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 1%(
if (+33K)
{! 3 &L%
-casco 3 O7'.'2OK%
!f 3 L%
61
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
B 3 '.MO%
Passo 3 1%(
if (+33O)
{! 3 O2%
-casco 3 L7'.'2OK%
!f 3 P%
B 3 '.ML%
Passo 3 1%(
if (+33L)
{! 3 ;;%
-casco 3 ;7'.'2OK%
!f 3 M%
B 3 '.M;%
Passo 3 1%(
if (+33P)
{! 3 1K;%
-casco 3 1'7'.'2OK%
!f 3 12%
B 3 '.MM%
Passo 3 1%(
if (+33;)
{! 3 2';%
-casco 3 127'.'2OK%
!f 3 1K%
B 3 '.MM%
Passo 3 1%(
if (+33M)
{! 3 L%
-casco 3 &7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 2%(
if (+331')
{! 3 ;%
-casco 3 &.O7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 2%(
if (+3311)
{! 3 ;%
-casco 3 K7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 2%(
if (+3312)
{! 3 1;%
-casco 3 O7'.'2OK%
!f 3 L%
B 3 '.MO%
Passo 3 2%(
if (+331&)
{! 3 2L%
-casco 3 L7'.'2OK%
!f 3 P%
B 3 '.ML%
Passo 3 2%(
if (+331K)
{! 3 KK%
-casco 3 ;7'.'2OK%
!f 3 M%
B 3 '.M;%
Passo 3 2%(
if (+331O)
{! 3 PK%
-casco 3 1'7'.'2OK%
!f 3 12%
B 3 '.MM%
Passo 3 2%(
if (+331L)
{! 3 1'K%
-casco 3 127'.'2OK%
!f 3 1K%
B 3 '.MM%
Passo 3 2%(
if (+331P)
62
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
{! 3 &%
-casco 3 &7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 K%(
if (+331;)
{! 3 K%
-casco 3 &.O7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 K%(
if (+331M)
{! 3 K%
-casco 3 K7'.'2OK%
!f 3 K%
B 3 '.M'%
Passo 3 K%(
if (+332')
{! 3 M%
-casco 3 O7'.'2OK%
!f 3 L%
B 3 '.MO%
Passo 3 K%(
if (+3321)
{! 3 1&%
-casco 3 L7'.'2OK%
!f 3 P%
B 3 '.ML%
Passo 3 K%(
if (+3322)
{! 3 22%
-casco 3 ;7'.'2OK%
!f 3 M%
B 3 '.M;%
Passo 3 K%(
if (+332&)
{! 3 &P%
-casco 3 1'7'.'2OK%
!f 3 12%
B 3 '.MM%
Passo 3 K%(
if (+332K)
{! 3 O2%
-casco 3 127'.'2OK%
!f 3 1K%
B 3 '.MM%
Passo 3 K%(
//5scolha o bocal de entrada do Zleo.
printf ($n 5scolha o diametro do tubo do bocal de entrada do oleo0)%
printf ($n 1 - Wocal de 1 in)%
printf ($n 2 - Wocal de 1.O in)%
printf ($n & - Wocal de 2 in)%
printf ($n @ escolha e0 )%
scanf (1d*2S)%
if (S331)
{Wocal 3 '.'2OK%(
if (S332)
{Wocal 3 '.'&;1%(
if (S33&)
{Wocal 3 '.'O';%(

//Balculos complementares como0 !o. de >e+nolds* Urea da secNQo do bocal e etc.
@bocal 3 89P:7(Wocal/2)7(Wocal/2)%
H 3 (mC7'.''1)/L'%
, 3 H/@bocal%
,ma) 3 (P7,)/(P--tubo)%
>edBasco 3 (dC87,ma)7-tubo)/uC8%
if (>edBasco<31'')
{m 3 '.K%
n 3 '.&L%(
else if (>edBasco<31''')
{m 3 '.O%
63
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
n 3 '.&L%(
else if (>edBasco<32''''')
{m 3 '.L&%
n 3 '.&L%(
else if(>edBasco<32'''''')
{m 3 '.;%
n 3 '.K%(
//-ados de temperatura da U.ua de entrada e saYda deseTadas.
printf ($n 5ntre com o /alor da temperatura de entrada (fria) da a.ua (oB)0 )%
scanf (1lf*2=empB5ntrada)%
.etchar ()%
printf ( 5ntre com o /alor da temperatura de saida (Duente) da a.ua (oB)0 )%
scanf (1lf*2=empB?aida)%
.etchar ()%
//Wusca de =empB8 pelos /alores menores e maiores.
=empB8 3 (=empB5ntrada4=empB?aida)/2%
//1a. parte da interpolaNQo.
if (=empB8<3')
{=empB5 3 '%
dB5 3 1%
cpB5 3 K21P%
uB5 3 '.''1PO'%
RB5 3 '.OLM%
PrB5 3 12.MM%
.oto fim=empB5%(
if (=empB8<31.;O)
{=empB5 3 1.;O%
dB5 3 1%
cpB5 3 K211%
uB5 3 '.''1LO2%
RB5 3 '.OPK%
PrB5 3 12.22%
.oto fim=empB5%(
if (=empB8<3L.;O)
{=empB5 3 L.;O%
dB5 3 1%
cpB5 3 K1M;%
uB5 3 '.''1K22%
RB5 3 '.O;2%
PrB5 3 1'.2L%
.oto fim=empB5%(
if (=empB8<311.;O)
{=empB5 3 11.;O%
dB5 3 1%
cpB5 3 K1;M%
uB5 3 '.''122O%
RB5 3 '.OM'%
PrB5 3 ;.;1%
.oto fim=empB5%(
if (=empB8<31L.;O)
{=empB5 3 1L.;O%
dB5 3 1.''1%
cpB5 3 K1;K%
uB5 3 '.''1';'%
RB5 3 '.OM;%
PrB5 3 P.OL%
.oto fim=empB5%(
if (=empB8<321.;O)
{=empB5 3 21.;O%
dB5 3 1.''2%
cpB5 3 K1;1%
uB5 3 '.'''MOM%
RB5 3 '.L'L%
PrB5 3 L.L2%
.oto fim=empB5%(
if (=empB8<32L.;O)
{=empB5 3 2L.;O%
dB5 3 1.''&%
cpB5 3 K1PM%
64
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
uB5 3 '.''';OO%
RB5 3 '.L1&%
PrB5 3 O.;&%
.oto fim=empB5%(
if (=empB8<3&1.;O)
{=empB5 3 &1.;O%
dB5 3 1.''O%
cpB5 3 K1P;%
uB5 3 '.'''PLM%
RB5 3 '.L2'%
PrB5 3 O.2'%
.oto fim=empB5%(
if (=empB8<3&L.;O)
{=empB5 3 &L.;O%
dB5 3 1.''P%
cpB5 3 K1P;%
uB5 3 '.'''LMO%
RB5 3 '.L2;%
PrB5 3 K.L2%
.oto fim=empB5%(
if (=empB8<3K1.;O)
{=empB5 3 K1.;O%
dB5 3 1.''M%
cpB5 3 K1PM%
uB5 3 '.'''L&1%
RB5 3 '.L&K%
PrB5 3 K.1L%
.oto fim=empB5%(
if (=empB8<3KL.;O)
{=empB5 3 KL.;O%
dB5 3 1.'11%
cpB5 3 K1;'%
uB5 3 '.'''OPP%
RB5 3 '.LK'%
PrB5 3 &.PP%
.oto fim=empB5%(
if (=empB8<3O1.;O)
{=empB5 3 O1.;O%
dB5 3 1.'1&%
cpB5 3 K1;2%
uB5 3 '.'''O2;%
RB5 3 '.LKO%
PrB5 3 &.K2%
.oto fim=empB5%(
if (=empB8<3OL.;O)
{=empB5 3 OL.;O%
dB5 3 1.'1L%
cpB5 3 K1;K%
uB5 3 '.'''K;M%
RB5 3 '.LO'%
PrB5 3 &.1O%
.oto fim=empB5%(
if (=empB8<3L1.;O)
{=empB5 3 L1.;O%
dB5 3 1.'1;%
cpB5 3 K1;L%
uB5 3 '.'''KO&%
RB5 3 '.LOL%
PrB5 3 2.;;%
.oto fim=empB5%(
if (=empB8<3LL.;O)
{=empB5 3 LL.;O%
dB5 3 1.'21%
cpB5 3 K1;;%
uB5 3 '.'''K2'%
RB5 3 '.LL'%
PrB5 3 2.LL%
.oto fim=empB5%(
if (=empB8<3P1.;O)
{=empB5 3 P1.;O%
dB5 3 1.'2K%
cpB5 3 K1M1%
uB5 3 '.'''&;M%
RB5 3 '.LL;%
PrB5 3 2.KO%
65
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
.oto fim=empB5%(
if (=empB8<3PL.;O)
{=empB5 3 PL.;O%
dB5 3 1.'2P%
cpB5 3 K1MO%
uB5 3 '.'''&LO%
RB5 3 '.LL;%
PrB5 3 2.2M%
.oto fim=empB5%(
if (=empB8<3;1.;O)
{=empB5 3 ;1.;O%
dB5 3 1.'&'%
cpB5 3 K1MM%
uB5 3 '.'''&K&%
RB5 3 '.LP1%
PrB5 3 2.1K%
.oto fim=empB5%(
if (=empB8<3;L.;O)
{=empB5 3 ;L.;O%
dB5 3 1.'&K%
cpB5 3 K2'&%
uB5 3 '.'''&2K%
RB5 3 '.LPK%
PrB5 3 2.'2%
.oto fim=empB5%(
if (=empB8<3M1.;O)
{=empB5 3 M1.;O%
dB5 3 1.'&;%
cpB5 3 K2'M%
uB5 3 '.'''&'L%
RB5 3 '.LPP%
PrB5 3 1.M1%
.oto fim=empB5%(
fim=empB50


//BontinuaNQo da 2a. parte para interpolaNQo.
if (=empB8>3M1.;O)
{=empB? 3 M1.;O%
dB? 3 1.'&;%
cpB? 3 K2'M%
uB? 3 '.'''&'L%
RB? 3 '.LPP%
PrB? 3 1.M1%
.oto fim=empB?%(
if (=empB8>3;L.;O)
{=empB? 3 ;L.;O%
dB? 3 1.'&K%
cpB? 3 K2'&%
uB? 3 '.'''&2K%
RB? 3 '.LPK%
PrB? 3 2.'2%
.oto fim=empB?%(
if (=empB8>3;1.;O)
{=empB? 3 ;1.;O%
dB? 3 1.'&'%
cpB? 3 K1MM%
uB? 3 '.'''&K&%
RB? 3 '.LP1%
PrB? 3 2.1K%
.oto fim=empB?%(
if (=empB8>3PL.;O)
{=empB? 3 PL.;O%
dB? 3 1.'2P%
cpB? 3 K1MO%
uB? 3 '.'''&LO%
RB? 3 '.LL;%
PrB? 3 2.2M%
.oto fim=empB?%(
if (=empB8>3P1.;O)
{=empB? 3 P1.;O%
dB? 3 1.'2K%
cpB? 3 K1M1%
uB? 3 '.'''&;M%
RB? 3 '.LL;%
66
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
PrB? 3 2.KO%
.oto fim=empB?%(
if (=empB8>3LL.;O)
{=empB? 3 LL.;O%
dB? 3 1.'21%
cpB? 3 K1;;%
uB? 3 '.'''K2'%
RB? 3 '.LL'%
PrB? 3 2.LL%
.oto fim=empB?%(
if (=empB8>3L1.;O)
{=empB? 3 L1.;O%
dB? 3 1.'1;%
cpB? 3 K1;L%
uB? 3 '.'''KO&%
RB? 3 '.LOL%
PrB? 3 2.;;%
.oto fim=empB?%(
if (=empB8>3OL.;O)
{=empB? 3 OL.;O%
dB? 3 1.'1L%
cpB? 3 K1;K%
uB? 3 '.'''K;M%
RB? 3 '.LO'%
PrB? 3 &.1O%
.oto fim=empB?%(
if (=empB8>3O1.;O)
{=empB? 3 O1.;O%
dB? 3 1.'1&%
cpB? 3 K1;2%
uB? 3 '.'''O2;%
RB? 3 '.LKO%
PrB? 3 &.K2%
.oto fim=empB?%(
if (=empB8>3KL.;O)
{=empB? 3 KL.;O%
dB? 3 1.'11%
cpB? 3 K1;'%
uB? 3 '.'''OPP%
RB? 3 '.LK'%
PrB? 3 &.PP%
.oto fim=empB?%(
if (=empB8>3K1.;O)
{=empB? 3 K1.;O%
dB? 3 1.''M%
cpB? 3 K1PM%
uB? 3 '.'''L&1%
RB? 3 '.L&K%
PrB? 3 K.1L%
.oto fim=empB?%(
if (=empB8>3&L.;O)
{=empB? 3 &L.;O%
dB? 3 1.''P%
cpB? 3 K1P;%
uB? 3 '.'''LMO%
RB? 3 '.L2;%
PrB? 3 K.L2%
.oto fim=empB?%(
if (=empB8>3&1.;O)
{=empB? 3 &1.;O%
dB? 3 1.''O%
cpB? 3 K1P;%
uB? 3 '.'''PLM%
RB? 3 '.L2'%
PrB? 3 O.2'%
.oto fim=empB?%(
if (=empB8>32L.;O)
{=empB? 3 2L.;O%
dB? 3 1.''&%
cpB? 3 K1PM%
uB? 3 '.''';OO%
RB? 3 '.L1&%
PrB? 3 O.;&%
.oto fim=empB?%(
if (=empB8>321.;O)
67
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
{=empB? 3 21.;O%
dB? 3 1.''2%
cpB? 3 K1;1%
uB? 3 '.'''MOM%
RB? 3 '.L'L%
PrB? 3 L.L2%
.oto fim=empB?%(
if (=empB8>31L.;O)
{=empB? 3 1L.;O%
dB? 3 1.''1%
cpB? 3 K1;K%
uB? 3 '.''1';'%
RB? 3 '.OM;%
PrB? 3 P.OL%
.oto fim=empB?%(
if (=empB8>311.;O)
{=empB? 3 11.;O%
dB? 3 1%
cpB? 3 K1;M%
uB? 3 '.''122O%
RB? 3 '.OM'%
PrB? 3 ;.;1%
.oto fim=empB?%(
if (=empB8>3L.;O)
{=empB? 3 L.;O%
dB? 3 1%
cpB? 3 K1M;%
uB? 3 '.''1K22%
RB? 3 '.O;2%
PrB? 3 1'.2L%
.oto fim=empB?%(
if (=empB8>31.;O)
{=empB? 3 1.;O%
dB? 3 1%
cpB? 3 K211%
uB? 3 '.''1LO2%
RB? 3 '.OPK%
PrB? 3 12.22%
.oto fim=empB?%(
if (=empB8>3')
{=empB? 3 '%
dB? 3 1%
cpB? 3 K21P%
uB? 3 '.''1PO'%
RB? 3 '.OLM%
PrB? 3 12.MM%(
fim=empB?0


//BUlculos de interpolaN\es.
dB8 3 (((=empB8-=empB5)7(dB?-dB5))/(=empB?-=empB5))4dB5%
cpB8 3 (((=empB8-=empB5)7(cpB?-cpB5))/(=empB?-=empB5))4cpB5%
uB8 3 (((=empB8-=empB5)7(uB?-uB5))/(=empB?-=empB5))4uB5%
RB8 3 (((=empB8-=empB5)7(RB?-RB5))/(=empB?-=empB5))4RB5%
PrB8 3 (((=empB8-=empB5)7(PrB?-PrB5))/(=empB?-=empB5))4PrB5%
//BontinuaNQo de al.uns cUlculos.
d=empB 3 =empB?aida-=empB5ntrada%
mc 3 D/(cpB87d=empB)%
>ed=ubo 3 (K7mc)/(!789P:7-tubo7uB8)%
f 3 1/((('.PM'7lo.(>ed=ubo))-1.LK)7(('.PM'7lo.(>ed=ubo))-1.LK))%
factor''1 3 (f/;)7(>ed=ubo-1''')7PrB8%
factor''2 3 1412.P7poS(f/;*'.O)7(poS(PrB8*'.LLLLLLLLLLLP)-1)%
//BUlculo para o !o. de !ussent (tubo) a partir da fai)a do !o. de >e+nolds.
if (>ed=ubo>32O'')
{!ud=ubo 3 factor''1/factor''2%(
else
{!ud=ubo 3 K.&L%(
ht 3 (RB87!ud=ubo)/-tubo%
//BUlculo do !o. de !ussent (casco).
68
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
!udBasco 3 B7(poS(>edBasco*m))7(poS(PrC8*n))7(poS((PrC8/PrB8)*'.2O))%
hc 3 (RC87!udBasco)/-tubo%
//@.ora temos o hc e o ht* lo.o calcularemos o V.
V 3 1/((1/ht)4(1/hc))%
//,amos calcular o fator de correNQo E.
> 3 (=empC5ntrada-=empC?aida)/(=empB?aida-=empB5ntrada)%
? 3 (=empB?aida-=empB5ntrada)/(=empC5ntrada-=empB5ntrada)%
factor''O 3 poS(((>7>)41)*'.O)%
factor''& 3 (2-(?7(14>-factor''O)))%
factor''K 3 (2-(?7(14>4factor''O)))%
factor''L 3 lo.((1-(?7>))/(1-?))%
factor''P 3 (1->)%
E 3 ((factor''O7factor''L)/(factor''P7lo.(factor''&/factor''K)))%
//5 a.ora calculando o /alor de A Due representarU o comprimento do casco.
-elta=empA8 3 ((=empC5ntrada-=empB?aida)-(=empC?aida-=empB5ntrada))/
lo.((=empC5ntrada-=empB?aida)/(=empC?aida-=empB5ntrada))%
A 3 (D/(V789P:7-tubo7-elta=empA87E7!7Passo))%
//BUlculo de dados como0 Urea de troca t]rmica* di6mentro do casco e outros.
@troca 3 A7!7Passo7(89P:727(-tubo/2))%
-casco:! 3 -casco/'.'2OK%
>a"ao 3 @troca/(89P:7(-casco/2)7(-casco/2))%
,olC2< 3 (mc)/(dB871''')%
@calculada 3 (D/(V7-elta=empA8))%
5)cesso 3 ((@troca-@calculada)/@troca)%

//>esultados.
printf
($n$n----------------------------------------------------------------------------------)
%
printf ($n B@>@B@=5>:?=:B@? W@?:B@? -< =><B@-<> -5 B@A<>)%
printf ($n 1. Bomprimento do Basco 3 1lf m*A)%
printf ($n 2. -iametro do casco 3 1lf in*-casco:!)%
printf ($n &. -iametro do tubo do fei)e 3 1lf m*-tubo)%
printf ($n K. Huantidade de tubos 3 1lf *!)%
printf ($n O. !umero de passes 3 1lf*Passo)%
printf ($n L. @rea de troca termica (calculada) 3 1lf m2*@calculada)%
printf ($n P. @rea de troca termica (fisica) 3 1lf m2*@troca)%
printf ($n ;. 5)cesso do trocador de calor 3 1lf 11*5)cesso)%
printf ($n M. >a"ao da area de troca termica (fisica) e o /olume do trocador 3
1lf*>a"ao)%
printf ($n 1'. Boeficiente .lobal de transferencia de calor 3 1lf X/m27F*V)%
printf ($n 11. @rranTo dos tubos 3 Huadran.ular)%
printf
($n----------------------------------------------------------------------------------)%
printf ($n >5?VA=@-<? -< <A5< (B@?B<))%
printf ($n 1. =emperatura de entrada 3 1lf oB*=empC5ntrada)%
printf ($n 2. =emperatura de saida 3 1lf oB*=empC?aida)%
printf ($n &. ,a"ao massica 3 1lf R./s*mh)%
printf ($n K. ,elocidade do oleo no casco 3 1lf m/s*,)%
printf ($n O. ,elocidade ma)ima do oleo no casco 3 1lf m/s*,ma))%
printf ($n L. =a)a de calor e)traido do oleo 3 1lf F^/se.undo*D)%
printf ($n P. !umero de >e+nolds no casco 3 1lf*>edBasco)%
printf ($n ;. !umero de !ussent no casco 3 1lf*!udBasco)%
printf ($n M. Boeficiente de con/eccao no casco 3 1lf X/m27F*hc)%
if (>edBasco>2O'')
{printf ($n < escoamento do oleo no casco e0 =urbulento)%(
else
{printf ($n < escoamento do oleo no casco e0 Aaminar)%(
printf
($n----------------------------------------------------------------------------------)%
printf ($n >5?VA=@-<? -@ @IV@ (=VW<?))%
printf ($n 1. =emperatura de entrada 3 1lf oB*=empB5ntrada)%
printf ($n 2. =emperatura de saida 3 1lf oB*=empB?aida)%
printf ($n &. ,a"ao massica 3 1lf R./s*mc)%
printf ($n K. ,a"ao /olumetrica da a.ua 3 1lf m&/se.undo*,olC2<)%
printf ($n O. !umero de >e+nolds nos tubos 3 1lf*>ed=ubo)%
69
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n L. !umero de !ussent nos tubos 3 1lf*!ud=ubo)%
printf ($n P. Boeficiente de conceccao nos tubos 3 1lf X/m27F*ht)%
if (>ed=ubo>2O'')
{printf ($n < escoamento da a.ua nos tubos e0 =urbulento)%(
else
{printf ($n < escoamento da a.ua nos tubos e0 Aaminar)%(
printf
($n----------------------------------------------------------------------------------$n$n
)%
printf ($n Pressione [5nter[ para finali"ar.)%
.etchar ()%
return '%
(
Projeto de viga bi-apoiada
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//------------------------------------------------------------------------------
main ()
{
//Pro.rama para proTetode /i.as biapoiadas.

int p:* m9/i.a* pB%
double P* A* B?* 8ma)* ,ma)* 5* =+* =adm* ?nec* ?tab%
int ) 3 1%
printf ($n P><I>@8@ P@>@ < P><^5=< -5 ,:I@ W:-@P<:@-@? )%
printf ($n)%
printf ($n)%
printf ($n | car.a P)%
printf ($n |)%
printf ($n ,)%
printf ($n 333333333333333333333)%
printf ($n _ | _)%
printf ($n |---A/2---|---A/2---|)%
printf ($n$n)%
printf (3333333333333333333333333333333333333333333333333333333333333333)%
//5scolha da situaNQo.
sSitch ())
{
//Primeira situacao.
case 10
printf ($n :nforme o /alor da car.a [P[ (!)0)%
scanf (1lf*2P)%
printf ($n :nforme o comprimento da /i.a (m)0)%
scanf (1lf*2A)%
printf ($n :nforme o coeficiente de se.uranca0)%
scanf (1lf*2B?)%
//Balculos do momento ma)imo e da forca cortante.
8ma) 3 P7A/K%
,ma) 3 P/2%
//5scolha do material com sSitch dentro de outro sSitch.
int material91%
printf ($n 5scolha o material0)%
printf ($n)%
printf ($n `1a - @-&L `;a - @:?: &'K)%
printf ($n `2a - @:?:-B 1'1; `Ma - Ai.a de @luminio 11''-C12)%
printf ($n `&a - @:?:-B 1'&' `1'a - Ai.a de @luminio 2'2K =K)%
printf ($n `Ka - @:?:-B 1'K' `11a - Ai.a de @luminio L'L1 =L)%
printf ($n `Oa - @:?:-B 1';' `12a - Ai.a de @luminio L'L& =L)%
printf ($n `La - @:?:-B &1K' `1&a - Ai.a de @luminio 2'2K =K)%
printf ($n `Pa - @:?:-B K&K')%
70
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n ?ua opcao e0)%
scanf (1d*2material91)%
.etchar ()%
//5scolha do material do perfil atra/]s do sSitch* case e breaR.
//5ssa rotina nQo e)erce nenhuma influencia em outra* ele funciona
//como um bloco de comandos Due serQo utili"ados pelo pro.rama.
sSitch (material91)
{
case 10 // @-&L
m9/i.a 3 1%
5 3 2''eM%
=+ 3 2O'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 20 // @:?:-B 1'1;
m9/i.a 3 2%
5 3 2''eM%
=+ 3 &P'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case &0 // @:?:-B 1'&'
m9/i.a 3 &%
5 3 2''eM%
=+ 3 &K'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case K0 // @:?:-B 1'K'
m9/i.a 3 K%
5 3 2''eM%
=+ 3 &M'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case O0 // @:?:-B 1';'
m9/i.a 3 O%
5 3 2''eM%
=+ 3 O2'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case L0 // @:?:-B &1K'
m9/i.a 3 L%
5 3 2''eM%
=+ 3 L2'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case P0 // @:?:-B K&K'
m9/i.a 3 P%
5 3 2''eM%
=+ 3 ;L'eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case ;0 // @:?: &'K
m9/i.a 3 ;%
5 3 1M&eM%
=+ 3 2'PeL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case M0 // Ai.a de @luminio 11''-C12
m9/i.a 3 M%
5 3 P'eM%
=+ 3 1'&eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 1'0 // Ai.a de @luminio 2'2K =K
m9/i.a 3 1'%
5 3 PK.OeM%
=+ 3 &2'eL%
71
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 110 // Ai.a de @luminio L'L1 =L
m9/i.a 3 11%
5 3 LMeM%
=+ 3 2POeL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 120 // Ai.a de @luminio L'L& =L
m9/i.a 3 12%
5 3 LMeM%
=+ 3 1KOeL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
case 1&0 // Ai.a de @luminio 2'2K =K
m9/i.a 3 1&%
5 3 P2eM%
=+ 3 O''eL%
=adm 3 =+/B?%
?nec 3 8ma)7B?/=+715L%
breaR%
(
//5scolha do perfil da /i.a.
printf ($n 5scolha o perfil para a /i.a0)%
printf ($n$n `1a - Perfil :)%
printf ($n `2a - Perfil B)%
printf ($n ?ua opcao e0)%
int perfil%
scanf (1d*2perfil)%
.etchar ()%
//8ais outro sSitch* mas a.ora para a escolha do perfil.
//5m forma de bloco tamb]m.
sSitch (perfil)
{case 10 //Procedimento do cUlculo com o perfil : pra situacao 1.
printf ($n 5scolha o perfil : de acordo com as dimensoes abai)o0)%
printf ($n Aembrando Due @ltura ) Wase e a nomeclatura adotada.)%
printf ($n$n `1a - 1O')1K `La - 2O')1; `11a - &1')PK)%
printf ($n `2a - 1O')&' `Pa - 2O')KO `12a - &1')12M)%
printf ($n `&a - 2'')22 `;a - 2O');')%
printf ($n `Ka - 2'')P1 `Ma - 2O')1KM)%
printf ($n `Oa - 2'')1'' `1'a - &1')&M)%
printf ($n$n -------------------)%
printf ($n | W@?5 |)%
printf ($n ------- -------)%
printf ($n | @ |)%
printf ($n | A |)%
printf ($n | = |)%
printf ($n | V |)%
printf ($n | > |)%
printf ($n | @ |)%
printf ($n ------- -------)%
printf ($n | W@?5 |)%
printf ($n -------------------)%
//<utro sSitch inserido em sSitch. c bastante dtil em determinadas
//circunst6ncia a aplicaNQo de forma composta.
printf ($n @ sua escolha e0)%
scanf (1d*2p:)%
.etchar ()%
sSitch (p:)
{case 10
?tab 3 M1.2%
breaR%
case 20
?tab 3 21;%
breaR%
case &0
?tab 3 1MK%
breaR%
case K0
?tab 3 P'M%
breaR%
case O0
72
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
?tab 3 M;P%
breaR%
case L0
?tab 3 1PM%
breaR%
case P0
?tab 3 O&O%
breaR%
case ;0
?tab 3 M;K%
breaR%
case M0
?tab 3 1;K'%
breaR%
case 1'0
?tab 3 OKP%
breaR%
case 110
?tab 3 1'L'%
breaR%
case 120
?tab 3 1MK'%
breaR%(
// @.ora com todos os dados estabelecido e as eDuaN\es calculadas ]
//possi/el imprimir os resultados na tela e descobrir se o perfil
//selecionado irU obedecer ao esforNo empre.ado sobre ele.
//----->esultados-----
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n ?<A:B:=@B@< 5 5?P5B:E:B@B@< -@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n Bar.a aplicada [P[0 1lf !*P)%
printf ($n Bomprimento da ,i.a0 1lf m*A)%
printf ($n Boeficiente de se.uranca0 1lf*B?)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5?VA=@-<? -<? B@ABVA<? -@ >5?P5B=:,@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n 5sforco cortane ma)imo0 1lf !*,ma))%
printf ($n 8omento fletor ma)imo0 1lf !.m*8ma))%
printf ($n =ensao admissi/el0 1lf Pa*=adm)%
printf ($n =ensao de escoamento0 1lf Pa*=+)%
printf ($n 8odulo de elasticidade do material0 1lf Pa*5)%
printf ($n 8odulo de resistencia necessario0 1lf mm&*?nec)%
printf ($n 8odulo de resistencia tabelado0 1lf mm&*?tab)%
printf ($n)%
if (?nec<?tab)
{printf ($n < perfil selecionado suportara o carre.amento.)%
printf ($n =este outros perfis para tentar redu"ir seus .astos#)%(
else
{printf ($n < perfil selecionado nao duporta o carre.amento.)%
printf ($n 5scolhe um perfil mais robusto com o ?nec superio)%
printf ($n ao deseTado.)%(
.etchar ()%
breaR%
case 20 //Procedimento do cUlculo com o perfil B pra situacao 1.
printf ($n 5scolha o perfil B de acordo com as dimensoes abai)o0)%
printf ($n Aembrando Due @ltura ) Wase e a nomeclatura adotada.)%
printf ($n$n `1a - PO)L `La - 2&')&')%
printf ($n `2a - 1'')11 `Pa - 2O')KO)%
printf ($n `&a - 1O')1M `;a - &1')KO)%
printf ($n `Ka - 1;')22 `Ma - &;')O')%
printf ($n `Oa - 2'')2; `1'a - &;')PK)%
printf ($n$n W@?5)%
printf ($n 99999999999999)%
printf ($n | |)%
printf ($n | @ 9999999999|)%
printf ($n | A |)%
printf ($n | = |)%
printf ($n | V |)%
printf ($n | > |)%
printf ($n | @ |999999999)%
printf ($n | |)%
printf ($n |9999999999999|)%
printf ($n)%
//<utro sSitch inserido em sSitch. c bastante dtil em determinadas
//circunst6ncia a aplicaNQo de forma composta.
73
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
printf ($n @ sua escola e0)%
scanf (1d*2pB)%
.etchar ()%
sSitch (pB)
{case 10
?tab 3 1;.1%
breaR%
case 20
?tab 3 &P.O%
breaR%
case &0
?tab 3 MO.&%
breaR%
case K0
?tab 3 12P%
breaR%
case O0
?tab 3 1;'%
breaR%
case L0
?tab 3 221%
breaR%
case P0
?tab 3 &&;%
breaR%
case ;0
?tab 3 KK2%
breaR%
case M0
?tab 3 L;;%
breaR%
case 1'0
?tab 3 ;;2%
breaR%(
// @.ora com todos os dados estabelecido e as eDuaN\es calculadas ]
//possi/el imprimir os resultados na tela e descobrir se o perfil
//selecionado irU obedecer ao esforNo empre.ado sobre ele.
//----->esultados-----
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n ?<A:B:=@B@< 5 5?P5B:E:B@B@< -@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n Bar.a aplicada [P[0 1lf !*P)%
printf ($n Bomprimento da ,i.a0 1lf m*A)%
printf ($n Boeficiente de se.uranca0 1lf*B?)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5?VA=@-<? -<? B@ABVA<? -@ >5?P5B=:,@ ,:I@)%
printf ($n3333333333333333333333333333333333333333333333333333333333333)%
printf ($n 5sforco cortane ma)imo0 1lf !*,ma))%
printf ($n 8omento fletor ma)imo0 1lf !.m*8ma))%
printf ($n =ensao admissi/el0 1lf Pa*=adm)%
printf ($n =ensao de escoamento0 1lf Pa*=+)%
printf ($n 8odulo de resistencia necessario0 1lf mm&*?nec)%
printf ($n 8odulo de resistencia tabelado0 1lf mm&*?tab)%
printf ($n)%
if (?nec<?tab)
{printf ($n < perfil selecionado suportara o carre.amento.)%
printf ($n =este outros perfis para tentar redu"ir seus .astos#)%
printf ($n)%(
else
{printf ($n < perfil selecionado nao suporta o carre.amento.)%
printf ($n 5scolhe um perfil mais robusto com o ?nec superio)%
printf ($n ao deseTado.)%
printf ($n)%(
breaR%(
breaR%
(
.etchar ()%
return '%
(
Projeto de vasos de presso
74
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//---------------------------------------------------
double -e.=o>ad (double ))
{return ()789P:/1;')%(
//---------------------------------------------------
main ()
{
double >* P* B* =emp* ?* 5* e* es* P8=@* e9=orri* e9=orri9P8=@* alpha*
e9Bone* e9Bone9P8=@* e9>eto* e9>eto9P8=@%
int 8B* Irau* =ipo* =ampo%
printf ($n P><I>@8@ P@>@ <)%
printf ($n -:85!?:<!@85!=< -5 ,@?<? -5 P>5??@<)%
printf ($n)%
printf ($n Pro.rama para dimensionamento de /asos de pressao)%
printf ($n com costado cilindrico e tampos retos* conicos ou)%
printf ($n torrisfericos e pressao e)terna.)%
printf ($n$n)%
printf ($n 1o. passo - -imensionamento do costado.)%
printf ($n --> -eterminacao da espessura da chapa.)%
printf ($n$n 5ntre com o raio interno do cilindro (mm)0)%
scanf (1lf*2>)%
.etchar ()%
printf ($n 5ntre com a pressao interna de proTeto (Pa)0)%
scanf (1lf*2P)%
.etchar ()%
printf ($n 5ntre com sobreespessura para corrosao (mm)0)%
scanf (1lf*2B)%
.etchar ()%
=emperatura0
printf ($n 5ntre com a temperatura de trabalho entre -&' e O'' (oB)0)%
scanf (1lf*2=emp)%
.etchar ()%
Blasse0
printf ($n 5scolha a classe do material0)%
printf ($n)%
printf ($n `1a - (@-2;O-B)----------->@co carbono)%
printf ($n `2a - (@-&;P-11 c 11)----->@co-li.a 1.1/K Br -1/2 8o)%
printf ($n `&a - (@-&;P-O c 11)------>@co-li.a O Br - 1/2 8o)%
printf ($n @ escolha e0)%
scanf (1d*28B)%
.etchar ()%
if (8B>3K)
{printf ($n 5scolha a opcao correta#)%
.oto Blasse%(
if (8B<3')
{printf ($n 5scolha a opcao correta#)%
.oto Blasse%(
//-efinicao da tensao admissi/el do material pela temperatura de trabalho.
sSitch (8B)
{case 10
if (=emp<3&O')
{? 3 MLM%(
else if (=emp<3&PO)
{? 3 M2;%(
else if (=emp<3K'')
{? 3 ;KP%(
else if (=emp<3K2O)
{? 3 P2K%(
else if (=emp<3KO')
{? 3 L12%(
else if (=emp<3KPO)
{? 3 KM'%(
else if (=emp>3KPL)
{printf ($n !ao aplica/el. 5ntre com outra temperatura#)%
.oto =emperatura%(
75
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
breaR%
case 20
if (=emp<3K2O)
{? 3 1'O1%(
else if (=emp<3KO')
{? 3 1'&'%(
else if (=emp<3KPO)
{? 3 1'''%(
else if (=emp<3O'')
{? 3 ;LP%(
else if (=emp>O'')
{printf ($n !ao aplica/el. 5ntre com outra temperatura#)%
.oto =emperatura%(
breaR%
case &0
if (=emp<3&2O)
{? 3 MOM%(
else if (=emp<3&O')
{? 3 M2;%(
else if (=emp<3&PO)
{? 3 M';%(
else if (=emp<3K'')
{? 3 ;OP%(
else if (=emp<3K2O)
{? 3 PML%(
else if (=emp<3KO')
{? 3 LK&%(
else if (=emp<3KPO)
{? 3 KLM%(
else if (=emp<3O'')
{? 3 &OP%(
else if (=emp>O'')
{printf ($n !ao aplica/el. 5ntre com outra temperatura#)%
.oto =emperatura%(
breaR%(
//-efinicao do coeficiente de eficiencia de solda.
Irau9inspecao0
printf ($n 5scolha o .rau de inspecao de solda.em0)%
printf ($n)%
printf ($n `1a - >adio.rafia =otal)%
printf ($n `2a - >adio.rafia Parcial)%
printf ($n `&a - !ao >adio.rafada)%
printf ($n @ escolha e0)%
scanf (1d*2Irau)%
.etchar ()%
if (Irau>3K)
{printf ($n 5scolha a opcao correta#)%
.oto Irau9inspecao%(
if (Irau<3')
{printf ($n 5scolha a opcao correta#)%
.oto Irau9inspecao%(
sSitch (Irau)
{case 10
>adio.rafada0
printf ($n Hual o tipo de soldab)%
printf ($n)%
printf ($n `1a - ?olda de topo* feita por ambos os lados* ou procedimento
eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas
com)%
printf ($n mata-Tunta permanente).)%
printf ($n `2a - ?olda de topo* feita por um so lado* com mata-Tunta permanente.)%
printf ($n @ escolha e0)%
scanf (1d*2=ipo)%
.etchar ()%
if (=ipo331)
{5 3 1%(
else if (=ipo332)
{5 3 '.M%(
else if (=ipo#31222)
{printf ($n 5scolha o tipo de solda#)%
.oto >adio.rafada%(
breaR%
76
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
case 20
Parcial0
printf ($n Hual o tipo de soldab)%
printf ($n)%
printf ($n `1a - ?olda de topo* feita por ambos os lados* ou procedimento
eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas
com)%
printf ($n mata-Tunta permanente).)%
printf ($n `2a - ?olda de topo* feita por um so lado* com mata-Tunta permanente.)%
printf ($n @ escolha e0)%
scanf (1d*2=ipo)%
.etchar ()%
if (=ipo331)
{5 3 '.;O%(
else if (=ipo332)
{5 3 '.;'%(
else if (=ipo#31222)
{printf ($n 5scolha o tipo de solda#)%
.oto Parcial%(
breaR%
case &0
!ao9>adio.rafada0
printf ($n Hual o tipo de soldab)%
printf ($n)%
printf ($n `1a - ?olda de topo* feita por ambos os lados* ou procedimento
eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas
com)%
printf ($n mata-Tunta permanente).)%
printf ($n `2a - ?olda de topo* feita por um so lado* com mata-Tunta permanente.)%
printf ($n @ escolha e0)%
scanf (1d*2=ipo)%
.etchar ()%
if (=ipo331)
{5 3 '.P%(
else if (=ipo332)
{5 3 '.LO%(
else if (=ipo#31222)
{printf ($n 5scolha o tipo de solda#)%
.oto !ao9>adio.rafada%(
breaR%(
//BUlculo do casco cilindrico.
e 3 ((P7>)/((?75)-('.L7P)))4B%
es 3 2.O4('.''27>)4B%
P8=@ 3 ((?757e)/(>4('.L7e)))%
printf ($n @ espessura do costado e0 1lf mm*e)%
printf ($n @ espessura para estabilidade estrutural0 1lf mm*es)%
printf ($n Pressao ma)ima de trabalho admissi/el0 1lf Pa*P8=@)%
//@.ora e iniciado a escolha e o calculo da espessura dos tampos
printf ($n)%
printf ($n 5scolha o tipo de tampo0)%
printf ($n$n `1a - =orrisferico)%
printf ($n `2a - Bonico)%
printf ($n `&a - Plano)%
printf ($n @ escolha e0)%
scanf (1d*2=ampo)%
.etchar ()%
sSitch (=ampo)
{case 10
e9=orri 3 ((P7>)/((?75)-('.17P)))4B%
e9=orri9P8=@ 3 ((?757e9=orri)/(>4('.17e9=orri)))%
printf ($n @ espessura do tampo torrisferico e0 1lf mm*e9=orri)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9=orri9P8=@)%
breaR%
case 20
printf ($n -efina o semi-an.ulo do /ertice do cone0)%
scanf (1lf*2alpha)%
.etchar ()%
e9Bone 3 ((P7>)/(cos(-e.=o>ad(alpha))7(?75-('.L7P))))4B%
e9Bone9P8=@ 3 ((?757e9Bone7cos(-e.=o>ad(alpha)))/(>4('.L7e9Bone7cos(-e.=o>ad(alpha)))))
77
Programao para engenharias utilizando softwares livres Vr. 1.0 [2008.2]g
4B%
printf ($n @ espessura do tampo conico e0 1lf mm*e9Bone)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9Bone9P8=@)%
breaR%
case &0
e9>eto 3 (sDrt(('.&&7P)/(?75)))4B%
e9>eto9P8=@ 3 ((12P7?)/(27>))%
printf ($n @ espessura do tampo plano e0 1lf mm*e9>eto)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo0 1lf Pa*e9>eto9P8=@)%
breaR%(

//@.ora basta .erar o relatZrio de resultados.
printf ($n)%
printf ($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n >5A@=<>:< -5 >5?VA=@-<? - [[ ,@?<? -5 P>5??@< [[)%
printf ($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? ?<W>5 < B<?=@-<0 <<----)%
printf ($n >aio interno em (m)0 1lf*>)%
printf ($n Pressao interna de proTeto (Pa)0 1lf*P)%
printf ($n ?obreespesura para corrosao (mm)0 1lf*B)%
printf ($n =emperatura de trabalho (oB)0 1lf*=emp)%
printf ($n =ensao admissi/el do material (R.f/cm2)0 1lf*?)%
printf ($n Boeficiente de eficiencia de solda0 1lf*5)%
printf ($n @ espessura do costado e (mm)0 1lf*e)%
printf ($n @ espessura para estabilidade estrutural (mm)0 1lf*es)%
printf ($n Pressao ma)ima de trabalho admissi/el (Pa)0 1lf*P8=@)%
printf ($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? ?<W>5 <? =@8P<?0 <<----)%
if (=ampo331)
{printf ($n =ipo de tampo0 =orrisferico)%
printf ($n @ espessura do tampo torrisferico e (mm)0 1lf*e9=orri)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9=orri9P8=@)%(
else if (=ampo332)
{printf ($n =ipo de tampo0 Bonico)%
printf ($n @ espessura do tampo conico e (mm)0 1lf*e9Bone)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9Bone9P8=@)%(
else if (=ampo33&)
{printf ($n =ipo de tampo0 Plano)%
printf ($n @ espessura do tampo plano e (mm)0 1lf*e9>eto)%
printf ($n Pressao ma)ima de trabalho admissi/el no tampo (Pa)0 1lf*e9>eto9P8=@)%(
printf ($n33333333333333333333333333333333333333333333333333333333333333333333333333333)%
printf ($n---->> -@-<? I5>@:? <<----)%
if (8B331)
{printf ($n Blasse do material0 @-2;O-B (@co carbono))%(
if (8B332)
{printf ($n Blasse do material0 @-&;P-11 c 11 (@co-li.a 1.1/K Br - 1/2 8o))%(
if (8B33&)
{printf ($n Blasse do material0 @-&;P-O c 11 (@co-li.a O Br - 1/2 8o))%(
if (Irau331)
{printf ($n Irau da inspecao de solda.em0 >adio.rafia =otal)%(
if (Irau332)
{printf ($n Irau de inspecao de solda.em0 >adio.rafia Parcial)%(
if (Irau33&)
{printf ($n Irau de inspecao de solda.em0 !ao >adio.rafada)%(
if (=ipo331)
{printf ($n <W?5>,@B@<0)%
printf ($n ?olda de topo* feita por ambos os lados* ou procedimento eDui/alente*)%
printf ($n de forma a obter penetracao e fusao totais. (5)cluem-se as soldas com)%
printf ($n mata-Tunta permanente).$n$n)%(
if (=ipo332)
{printf ($n <W?5>,@B@<)%
printf ($n ?olda de topo* feita por um so lado* com mata-Tunta permanente.$n$n)%(
.etchar ()%
return '%
(
78

Você também pode gostar