Вы находитесь на странице: 1из 19

Universidade Federal Rural do Semi-rido Campus Carabas Bacharelado em Cincia e Tecnologia Disciplina: Informtica Aplicada Professor: Luiz Carlos

s de Aires Macedo

3 Avaliao Linguagem C

Felipe Augusto Dantas de Oliveira Jos Garibaldi Duarte Jnior Layane rica da Silva Pinto Mnica Monalisa Souza Valdevino Myrelle Yasmine de Freitas Cmara

Carabas/ RN 08. 09.2013

Introduo Com a necessidade de se elaborar programas complexos que possam fazer diversas operaes, processos, sequencias, sejam eles quais forem seus tipos, necessrio uma linguagem de programao que possibilite tal desenvolvimento de software. A Linguagem C aparece ento como uma importante ferramenta de produo de programas de computador de todos os tipos possveis. Um exemplo claro da capacidade de programao em linguagem C, a elaborao de softwares simuladores, que podem ter vrios nveis de complexidade e diversas reas de aplicao. A caracterstica principal deste tipo de software o fato deles reproduzirem condies do mundo real no mundo digital, dando-se assim a possibilidade de alterao de partes do processo. A elaborao de um Software Simulador a partir da programao em linguagem C uma tarefa muito interessante, tendo em vista que com a programao em C possvel a utilizao de um bom nmero de comandos que abrem diversas de alternativas de reproduzir as condies do mundo real no programa de simulao. Mais adiante ser explicitado um programa que simula os clculos feitos por uma concessionria de energia eltrica para obter o valor do seu dbito mensal pela prestao do seu servio, e ainda, programado em Linguagem C e utilizando estruturas em blocos, comandos condicionais, comandos de repetio e outros tipos de laos.

Programas Simuladores Com os avanos da sociedade e de suas tecnologias, os softwares evoluram de uma maneira geral. Com a crescente necessidade de se testar operaes, atividades, fenmenos, sensaes e etc., viu-se que seria preciso a criao de programas de computadores que simulassem estas situaes para que no mundo real os resultados fossem esperados ou mais facilmente aceitos. De uma maneira geral, programas simuladores so softwares de computador capazes de reproduzir atividades, operaes ou sensaes no mundo virtual, facilitando a vida dos profissionais de diversas reas que utilizam tais softwares. Com o auxlio dos softwares simuladores, possvel analisar etapas de um processo, complexo ou no, sem que seja preciso realiz-lo no mundo real, abrindo a possibilidade de se cometer erros sem interferir no projeto original trabalhado. Simular clculos, possibilidades, sensaes que s seriam possveis para computadores, podendo-se assim chegar num objetivo especfico. Com a enorme facilidade de se trabalhar e com as amplas possibilidades de utilizao, os programas simuladores se erguem, com facilidade, como importantes ferramentas nas atividades humanas. Um garoto pode utilizar um simulador para testar seus conhecimentos em um determinado assunto de qumica; uma auto-escola pode utilizar um simulador de direo para melhorar a aprendizagem de seus alunos; ou cientistas podem usar um programa computacional para simular os possveis resultados de uma experincia e suas consequncias. Em suma, os softwares simuladores tm papel importantssimo no contexto atual da sociedade, e com os avanos tecnolgicos gerando computadores cada vez mais potentes, torna-se possvel a elaborao de mais simuladores cada vez mais complexos, que possam reproduzir as condies desejadas de forma mais fiel possvel e assim, obtendo um resultado final com muito mais qualidade.

Linguagem C Linguagem C uma linguagem de programao compilada, criada em 1972 por Dennis Ritchie, nos Estados Unidos e uma das linguagens de programao mais populares. Esta linguagem foi projetada para elaborar programas estruturados sequencia, deciso, iterao e modulares programas divididos em partes distintas. Em C o algoritmo decodificado e, aps ser compilado, transformado em um programa executvel este s criado se no houver nenhum problema na compilao. Os comandos utilizados nesta linguagem exercem a mesma funo que os comandos utilizados nos algoritmos ferramentas de descrio narrativa, fluxograma ou portugus estruturado. A estrutura condicional utilizada para testar se uma condio verdadeira, representa uma tomada de deciso. Os comandos de deciso determinam qual ao deve ser tomada a partir do resultado de uma expresso condicional. Para esta estrutura so utilizados os comandos if se , if-else se-seno e switch mudar. O comando if instrui uma tomada de deciso simples; a sintaxe consiste no comando if seguido de uma condio entre parnteses, se a condio for verdadeira a instruo ser executada, se for falsa nada acontecer. O comando if-else uma expanso do comando if, tal comando nos permite executar uma instruo apenas se a condio for verdadeira, se a condio for falsa ser executada outra/outras

instruo/instrues. O comando switch seleciona uma entre vrias aes alternativas, este comando pode substituir o comando if-else apenas por questo de elegncia, visto que o comando if-else tambm executa testes para a escolha de uma alternativa entre vrias opes. A sintaxe consiste no comando switch seguido do nome de uma varivel ou de um nmero constante entre parnteses; o corpo do comando constitudo de vrios casos, que so rotulados com uma constante e um caso default este caso opcional. A expresso entre parnteses aps o comando switch quem determina para qual caso o controle do programa ser desviado. No h limite de instrues para o corpo de cada caso; quase sempre a ltima instruo break, que

causa a sada da estrutura condicional; quando o break no utilizado todas as instrues, a partir do caso escolhido, sero executadas. A sintaxe da condio if

if (condio) { instrucao; instrucao }

A sintaxe da condio if-else

if (condicao) instrucao; else instrucao; Uma nica instruo no necessita de chaves

if (condicao) { instrucao; instrucao; } else { instrucao; instrucao; } Quando h vrias instrues elas devem estar entre chaves

A sintaxe do comando switch

switch (comando) { case constante1: instrucao; instrucao; break; case constante2: instrucao; instrucao; break; case constante3: instrucao; instrucao; break; default: instrucao; instrucao; } A estrutura de repetio ou laos utilizada quando se deseja repetir uma sequncia de instrues, nessa estrutura so utilizados os comandos for para , while enquanto e do-while faa-enquanto. O lao for usado quando se deseja repetir algo por um nmero fixo de vezes. A sintaxe consiste no comando for seguida de parnteses, em que so contidas trs expresses separadas por ponto e vrgula; inicializao que se caracteriza por um comando de atribuio que usado para atribuir um valor inicial na varivel que ir controlar o lao , condio que se caracteriza por uma expresso relacional que determina quando o lao dever ser terminado e incremento que define como a varivel que controla o lao varia a cada repetio do lao. O lao while utiliza os mesmos elementos do lao for, sendo estes distribudos de forma diferente. Esse lao usado quando o lao pode ser terminado em um momento inesperado, atravs de condies presentes no corpo do lao. A sintaxe consiste no comando while seguida de uma condio entre parnteses.

Se a condio for verdadeira o corpo do lao executado uma vez e a condio avaliada novamente. O lao s termina quando a condio for falsa, enquanto for verdadeira a condio continuar sendo avaliada. O lao do-while o terceiro e ltimo lado e bem parecido com o while. utilizado quando necessrio executar o lao uma vez, e posteriormente avaliar a condio e criar o ciclo. A sintaxe consiste na condio do seguida de um bloco de instrues entre chaves e finalizada com a condio while seguida de uma condio entre parnteses terminada por ponto e vrgula. O bloco de instrues executado, posteriormente a condio entre parnteses avaliada, se for verdadeira o bloco de instrues executado mais uma vez e a condio avaliada novamente. O ciclo s termina quando a condio avaliada for falsa.

A sintaxe do lao for for (inicializacao; condicao, incremento) { <bloco de comandos> Fim do bloco } Incio do bloco

A sintaxe do lao while while (condicao) { <bloco de comandos> Fim do bloco } Incio do bloco

A sintaxe do lao do-while do { Incio do bloco Fim do bloco

<bloco de comandos> } while (condicao); As estruturas em matrizes so um conjunto de variveis do mesmo tipo que compartilham o mesmo nome. Em linguagem C as matrizes de uma dimenso so declaradas da mesma forma que as outras variveis, para que o compilador conhea o tipo dos seus elementos e reserve espao na memria para armazen-las. Os elementos so armazenados numa sequncia contnua, um seguido do outro, diferentemente do que ocorre com variveis separadas. O tamanho da matriz indicado por um nmero entre colchetes aps o nome da matriz isso o que diferencia a matriz das demais variveis. Cada um dos elementos da matriz referenciado individualmente atravs de um nmero inteiro, entre colchetes, aps o nome da matriz. Quando um elemento referenciado ele tem um significado diferente do elemento utilizado na declarao da matriz que indica sua dimenso. O elemento referenciado tem sua posio determinada por esse nmero. Nas matrizes de mais de uma dimenso os elementos podem ser de qualquer tipo, at mesmo matrizes; dizse que uma matriz de duas dimenses quando seus elementos forem matrizes de uma dimenso. Tal termo duas dimenses no faz muito sentido, porque todas as matrizes so armazenadas de forma linear, portanto esse termo usado apenas para representar matrizes em que seus elementos so matrizes de uma dimenso. Nas matrizes de duas dimenses h dois pares de colchetes aps o nome da matriz a quantidade de pares de colchetes determinar a dimenso da matriz.

A sintaxe de uma matriz de uma dimenso { tipo nome_vetor[tamanho]; <bloco de comandos> } Ou { tipo nome_vetor[tamanho]={lista_de_valores}; <bloco de comandos> } A sintaxe de uma matriz de duas dimenses { tipo nome_matriz[numero_linhas][numero_colunas]; <bloco de comandos> } A estrutura em blocos o conjunto de comandos ou instrues de um de um programa escrito em linguagem C e delimitado por chaves. Essa estrutura permite a compartimentalizao dos comandos, cada bloco tratado como uma unidade pelo computador. A estrutura em blocos suporta as demais estruturas condicional, repetio, matrizes.

Companhia Eltrica UFERSA O projeto consiste em um software aplicativo do tipo simulador que tem como objetivo calcular o custo total, em reais, do consumo de energia eltrica em um estabelecimento, que pode ser uma casa, um edifcio ou qualquer tipo de ponto que receba energia eltrica da rede de transmisso. O programa reproduz as condies que uma empresa de fornecimento de energia est sujeita no processo de clculo do custo da conta de energia de um estabelecimento. Este clculo contm algumas variveis que se modificam de local para local ou at mesmo de empresa para empresa. De incio, necessrio saber o consumo de energia do estabelecimento, para isso preciso saber quanto de energia cada aparelho eltrico da residncia gasta por dia e assim fazer um clculo mensal de todos eles. importante salientar que cada aparelho consome energia baseado na sua potncia (voltagem) e no tempo dirio de funcionamento. Com tais informaes, possvel chegar num clculo para descobrir o consumo de energia de cada aparelho mensalmente: Consumo = (Potncia*QntA*H*30)/1000
QntA: quantidade de aparelhos daquele tipo H: tempo de funcionamento dirio do aparelho

Existe a diviso por 1000 pelo fato da potncia vim normalmente em kilowatts. Para se calcular o custo total pelo consumo de energia eltrica, preciso de uma taxa que nos informa o preo pelo kilowatts/h, que comumente varia de empresa para empresa. Ento, para se chegar no resultado final, soma-se os consumos de energia de cada aparelho durante o ms e faz a relao com a taxa dada pela concessionria de energia, chegando-se ao seguinte clculo: Custo = ConsumoTotal*Taxa Vemos que no to simples fazer o clculo do custo pela energia eltrica consumida por um estabelecimento, ento a utilizao de um software

aplicativo de simulao seria uma importante ferramenta de auxlio. Tarefa que comumente cabe a engenheiros da rea da eletricidade ou da produo com qualidade. Existem no mercado diversos softwares que realizam essa tarefa de formas diferentes, a partir de linguagens de programao distintas, porm nesse caso, iremos utilizar a Linguagem C como forma de programao para produzir um programa que faa os clculos acima j especificados. Cdigo em Linguagem C #include<stdio.h> int main(void){ int x,y,a,pote,qtde,cond1,cond,cond2,b; char nome[100]; float consumo,somat,preco,hora; cond1=0; cond=0; cond2=0; while(cond1<1){ while (cond!=4){ printf("Quantos tipos de aparelhos eletricos existem no estabelecimento?:"); scanf("%d",&a); if (a<=100){ cond=4;} else{ printf("*** Digite um valor menor que 100! ***\n");

cond=2;}} for (x=0;x<a;x++){ printf("\nDigite o nome do aparelho eletrico %d ",x); scanf("%s",&nome[x]); } for (y=0;y<a;y++){ printf("\nDigite as informacoes do aparelho %d :\n",y); printf("Insira a quantidade: "); scanf("%d",&qtde); printf("Insira a potencia desse aparelho(em Watts): "); scanf("%d",&pote); while (cond2<4){ printf("Insira a media de horas utilizadas por dia: "); scanf("%f",&hora); if (hora>24){ printf("\n*** Digite menor ou igual a 24 horas! ***\n"); cond2=2;} else{ cond2=4;} consumo=qtde*pote*hora*30/1000; somat=somat+consumo;} cond2=2; preco=somat*0.3;

} printf("\nSeu estabelecimento consome um total de %f kWh por mes.\n",somat); printf("\nDeseja calcular o custo para outro estabelecimento?\nDigite 1 para sim ou 2 para nao\n"); scanf("%d",&b); if (b!=1){ cond1=10; } else{ cond1=0; cond=0; somat=0;} } }

O funcionamento O algoritmo tratou de utilizar todos os comandos citados anteriormente,

desde condicional (IF), partindo para comando de repetio (WHILE), matrizes (como utilizada na varivel nome) e estrutura em blocos (onde cada bloco limitado por chaves { }). Na primeira linha do algoritmo temos a biblioteca padro da linguagem C, stdio.h, que serve para o funcionamento de toda leitura de dados envolvida; logo aps o script iniciado com o comando main, referente ao incio no portugol portugus estruturado. As variveis so distribudas da

seguinte maneira: int, para nmeros inteiros; char, para caracteres; float, para nmeros reais. O primeiro comando utilizado foi o while, referente ao enquanto, que contm todos os cdigos dentro de seu bloco; este serve para o usurio poder calcular o custo quantas vezes quiser, caso sua cond seja sempre zero. O segundo comando tambm foi o while, que servia para que, caso o usurio digitasse mais que o limite proposto na matriz, repetisse a opo de digitar outra vez automaticamente. O prximo comando foi o for, semelhante ao comando para em portugol. Ele serve para salvar os nomes dos aparelhos eltricos na matriz, isto , caso o usurio tenha seis aparelhos eltricos, ele poder salvar apenas 6 nomes por causa condio for. O comando for seguinte serve para a mesma coisa que o anterior. O terceiro e ltimo while tambm serve para impossibilitar o usurio de digitar mais de 24 horas, caso isto ocorra o sistema dar a opo de digitar novamente, assim podendo rodar o programa normalmente sem qualquer problema. O if est servindo em conjunto ao while no fato de possibilitar fechar o lao caso o usurio tenha digitado corretamente. O ltimo comando do algoritmo o if que utilizado em conjunto ao primeiro while, que fecha ou no o lao.

Concluso A linguagem C um modo de programao que abre um vasto leque de possibilidades para o programador, que no necessita ser to experiente para desenvolver algo de qualidade; mais uma qualidade desta linguagem de programao: simples e de fcil entendimento. Desse modo, a fabricao de um software que reproduza clculos complicados, como o do custo pelo consumo energtico, torna-se uma tarefa interessante aos olhos de quem est iniciando no mundo dos programadores de softwares, e a linguagem C pode ser um importante meio de entrada nesse ambiente. Um software que calcule o custo pelo consumo de energia no apenas til para uma empresa, o dono de uma residncia poderia oper-lo de forma que saiba quanto iria pagar no final do ms pelo o que gastou de eletricidade nesse perodo. Isso explicita importantes caractersticas dos programas simuladores: so teis para quaisquer tipos de situao e de fcil utilizao dependendo do contexto. Com o avano tecnolgico atual, difcil prever o futuro da utilizao da linguagem C - principalmente no mbito da programao de softwares simuladores -, mas uma coisa pode-se ressaltar, com mquinas cada vez mais poderosas, ficar mais vivel ainda a elaborao de algoritmos cada vez mais complexos, sejam eles em Linguagem C ou no, para resoluo de problemas cada vez mais difceis que enfrentamos hoje em dia.

Referncias DELGADO, A. L. N.. 14 Estruturas de Repetio. Universidade Federal do Paran: Departamento de Informtica, 2011. Disponvel em: <

http://www.inf.ufpr.br/nicolui/grad/ci067/Docs/NotasAula/notas14_Estruturas_Repeti_c_cao.html>. Acesso em 4 de Setembro de 2013. DUARTE, Ktia. Linguagem C Matrizes. Julio Battisti, 2005. Disponvel em: <http://www.juliobattisti.com.br/tutoriais/katiaduarte/cbasico004.asp>. em 4 de Setembro de 2013. NOUIRA, Lucia Maurity y (Traduo). Linguagem C Estruturas Acesso

condicionais. Kioskea.net. Disponvel em: <http://pt.kioskea.net/faq/10200linguagem-c-estruturas-condicionais#top>. Acesso em 4 de Setembro de 2013. VIVIANE, V. M.. Treinamento em Linguagem C. So Paulo: Pearson Education. 2 ed. 212 p. WIKIPDIA. Programao Estruturada. Enciclopdia Livre. Disponvel em: <http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_estruturada>. Acesso em 4 de Setembro de 2013. WIKIPDIA. Simulador. Enciclopdia Livre, 2013. Disponvel em:

<http://pt.wikipedia.org/wiki/Simulador>. Acesso em 5 de Setembro de 2013.

Anexo Algoritmo em Portugol. - Visualg


algoritmo "Companhia Eltrica UFERSA" // Funo: Calcular o consumo de energia eltrica de um local com base nos aparelhos eletrnicos. // Autor: Felipe Augusto, Jos Garibaldi, Layane rica, Mnica Monalisa, Myrelle Yasmine. // Data: 03/09/2013 // Seo de Declaraes var nome: vetor [1..100] de caractere x,a,pote,qtde: inteiro consumo,somat,preco,hora: real b,cond,cond1,cond2: caractere inicio enquanto cond1<>"n" faca limpatela enquanto cond<>"errada" faca escreva("Quantos tipos de aparelhos eltricos existem no estabelecimento?: ") leia(a) se a<=100 entao cond<-"errada" senao escreval("*** Digite um valor menor que 100! ***") escreval cond<-"" fimse

fimenquanto para x de 1 ate a faca escreva("Insira o nome do aparelho eltrico n",x,": ") leia(nome[x]) fimpara para x de 1 ate a faca escreval escreval(x,". ",nome[x],": ") escreva("Insira a quantidade: ") leia(qtde) escreva("Insira a potncia de cada um (em Watts): ") leia(pote) enquanto cond2<>"errada" faca escreva("Insira a mdia de horas utilizadas por dia: ") leia(hora) se hora>24 entao escreval() escreval("*** Um dia no possui mais de 24 horas! ***") escreval() cond2<-"" senao cond2<-"errada" fimse consumo<-(qtde*pote*hora*30)/1000 somat<-somat+consumo fimenquanto

cond2<-"" fimpara preco<-somat*0.30 escreval escreval("Seu estabelecimento consome um total de",somat," kWh por ms.") escreval("O custo para este consumo de energia de",preco," reais.") escreval() escreval("Deseja calcular o custo para outro estabelecimento? [S/N]") leia(b) se b="s" entao cond1<-"" cond<-"" senao cond1<-"n" fimse fimenquanto fimalgoritmo