Sie sind auf Seite 1von 90

CARLOS AUGUSTO SCHAEFER

DALTON LUIS SEIBT STEFFENS


EDUARDO IVAN KUHN

DESENVOLVIMENTO DE UM APLICATIVO EM C++ PARA RESOLUO DE


CALCULOS ESTATISTICOS

Trs de Maio
2011

CARLOS AUGUSTO SCHAEFER


DALTON LUIS SEIBT STEFFENS
EDUARDO IVAN KUHN

DESENVOLVIMENTO DE UM APLICATIVO EM C++ PARA RESOLUO DE


CALCULOS ESTATISTICOS

Relatrio de Pesquisa do Componente Curricular Prtica Profissional


Direcionada I
Sociedade Educacional Trs de Maio
Faculdade Trs de Maio
Bacharelado em Sistemas de Informao

Orientadores:MS Adalberto Lovato


MS Carlos Zuanazi
MS Marcos Garrafa
MS Sandra Peringer

Trs de Maio
2011

RESUMO

Com a grande demanda de empresas que buscam a tecnologia e a facilidade de


armazenamento e processamento de dados em um sistema, foi proposto o
desenvolvimento de um software de ANOVA(Anlise de Varincia), desenvolvido na
linguagem C, para uma possvel anlise desse sistema em comparao com outros,
por exemplo, o Excel, ferramenta da Microsoft. Para o desenvolvimento do sistema,
buscou-se em bibliografias, e na internet por conceitos e frmulas utilizadas no
sistema, e tambm para o desenvolvimento do sistema foi realizado um
levantamento de necessidade de outros sistemas, por exemplo, tempo de
processamento, memria utilizada, tamanho do sistema, praticidade e agilidade na
hora de sua utilizao.

Palavras chave: Anova, Algoritmo, Linguagem C

ABSTRACT

With the high demand for companies seeking technology and ease of storage and a data
processing system, was proposed to develop a software ANOVA (analysis of variance),
developed in C language for a possible analysis of this system compared with others, for
example, Excel, Microsoft's tool. For system development, we sought in bibliographies, and
internet concepts and formulas used in the system, and also for the development of the system
was conducted a survey of need for other systems, for example, processing time, memory
used,
system
size,
practicality
and
flexibility
in
hours
of
use.
Keywords: ANOVA, Algorithm, C Language

LISTA DE FIGURAS

FIGURA 01: FRMULA DA ANOVA..........................................................................25


FIGURA 02: TELA DE BOAS VINDAS DO SISTEMA ...............................................26
FIGURA 03: CDIGOS DA TELA DE BOAS VINDAS...............................................26
FIGURA 04: MENU DO SISTEMA.............................................................................27
FIGURA 05: CDIGO DO MENU..............................................................................27
FIGURA 06: INSERINDO DADOS.............................................................................28
FIGURA 07: CDIGO DA INSERO DE DADOS...................................................28
FIGURA 08: VALORES INSERIDOS.........................................................................29
FIGURA 09: RESULTADO DOS VALORES..............................................................30
FIGURA 10: OPO PARA SALVAR........................................................................30
FIGURA 10: CDIGO QUE CALCULA A ANOVA.....................................................31
FIGURA 11: CARREGANDO ARQUIVOS.................................................................32
FIGURA 12: SALVAMENTO EM OUTRO TIPO DE ARQUIVO.................................32
FIGURA 13: CDIGO DE SALVAMENTO DOS DADOS..........................................33
FIGURA 14: LISTA DE ARQUIVOS...........................................................................34
FIGURA 15: CDIGO QUE LISTA OS ARQUIVOS..................................................34
FIGURA 15: DATA E HORA DO SISTEMA...............................................................35
FIGURA 16: CDIGO QUE PEGA A DATA E A HORA DO COMPUTADOR...........35
FIGURA 17: DEFININDO O TEMA PARA O SISTEMA.............................................35
FIGURA 18: MUDANDO DE TEMA...........................................................................36

FIGURA 19: CDIGO PARA MUDAR O TEMA.........................................................36


FIGURA 20: LEMBRETES .........................................................................................37
FIGURA 21: CDIGO POR TRS DOS LEMBRETES.............................................37
FIGURA 22: SOBRE O SISTEMA..............................................................................38
FIGURA 23: CDIGO POR TRS DA TELA SOBRE...............................................38
FIGURA 24: INSTRUES DO SISTEMA................................................................39
FIGURA 25: CDIGO DA FIGURA ANTERIOR........................................................40
FIGURA 26: SAIR DO SISTEMA...............................................................................40
FIGURA 27: CDIGO PARA SAI DO SISTEMA.......................................................40

SUMRIO

INTRODUO.............................................................................................................9
CAPTULO 1: ASPCTOS METODOLGICOS........................................................11
1.1.

TEMA...............................................................................................................11

1.1.1. Delimitao do Tema.....................................................................................11


1.1.

PROBLEMA.....................................................................................................12

1.2.

HIPTESES ....................................................................................................12

1.3.

OBJETIVOS ....................................................................................................12

1.3.1 Objetivo Geral.................................................................................................12


1.3.2. Objetivos Especficos....................................................................................13
1.4.

METODOLOGIA..............................................................................................13

1.4.1. Mtodo de Abordagem..................................................................................13


1.4.2. Mtodos de Procedimento............................................................................14
1.4.3. Tcnica Utilizada............................................................................................15
CAPTULO 2 FUNDAMENTAO TERICA............................................................16
2.1

ESTATSTICA..................................................................................................16

2.1.1 Populao e Amostra....................................................................................16


2.1.2 Amostras Aleatrias......................................................................................16
2.1.3 Mdia Aritmtica............................................................................................17
2.1.4 Mediana...........................................................................................................17
2.1.5 Mdia Geomtrica..........................................................................................18

2.1.6 Mdia Harmnica...........................................................................................18


2.1.7 Moda................................................................................................................18
2.1.8 Medidas de Disperso...................................................................................19
2.1.9 Amplitude

....................................................................................................19

2.1.10 Varincia.........................................................................................................19
2.1.11 Desvio Padro................................................................................................20
2.1.12 Probabilidade.................................................................................................20
2.1.13 Desvio Mdio..................................................................................................20
2.2

PROGRAMAO............................................................................................21

2.2.1 Programa........................................................................................................21
2.2.2 Algoritmo........................................................................................................21
2.2.3 Linguagem de Programao.........................................................................22
2.2.3.1

Linguagem C.........................................................................................22

2.2.3.2

Tipos de Dados em C...........................................................................23

2.2.3.3

Variveis...............................................................................................23

2.2.3.4

Comandos de Controle.........................................................................24

2.2.3.5

Matrizes................................................................................................24

CAPITULO 3 ANLISE E DISCUSSO DOS RESULTADOS..................................26


3.1

LEVANTAMENTO DE REQUISITOS..............................................................26

3.2

APRESENTACAO DO SISTEMA....................................................................27

CONCLUSO.............................................................................................................42
APNDICE.................................................................................................................44
REFERNCIAS..........................................................................................................88

INTRODUO

O mundo em que vivemos, est se tornando a cada dia mais competitivo. E


se sabe da importncia de ter controle nos negcios, pois muitas vezes so os
detalhes que fazem prevalecer ou obter vantagens sobre concorrentes. Para que
esse controle possa ter uma maior eficincia, se encontram atualmente no mercado
sistemas de apoio que tratam de realizar diferentes clculos estatsticos ou
financeiro, facilitando o domnio sobre o prprio negcio.
Para que esses sistemas de apoio possam ser utilizados, existem pessoas
que os desenvolvem para tanto essas pessoas precisam estudar sobre as mais
diversas reas que a programao envolve, englobando anlises de projetos,
desenvolvimento de sistemas, escolha de banco de dados, modelagem de dados,
estatstica, clculos, metodologia, formas de comunicao, entre outros. Todos
esses objetos de estudo se encontram na grade curricular do Curso de Bacharelado
em Sistemas de Informao ofertado em diversas faculdades ou universidades.
Os jovens atualmente esto tendo maior incentivo para a rea de Sistemas de
Informao, sobretudo pela falta de pessoas qualificadas para atuar no mercado de
trabalho.
No Curso de Sistemas de Informao, estuda-se diferentes linguagens de
programao, porm todas desenvolvem apenas um algoritmo, que pode ser
definido como um sistema, ou programa. No estudo e desenvolvimento do sistema
de analise de varincia citado na fundamentao terica deste projeto, ser utilizado
a linguagem C++, que ter como o seu compilador o programa Dev C++. Pode se
entender que algoritmo como o resultado final de um sistema desenvolvido em
qualquer linguagem e que, aps a sua compilao, funcione perfeitamente.
O presente trabalho o estudo de duas ferramentas, uma na rea de
programao e outra na rea de estatstica, podendo no fim do projeto obter um
sistema de anlise de varincia. Para isso, deve-se estudar a linguagem de
programao C++ juntamente com a anlise de varincia, obtendo uma integrao

10

das ferramentas que o C++, juntamente com os clculos especficos da estatstica,


poderia, assim, desenvolver um "sistema estatstico".
O estudo relacionado ferramenta(C++) e a anlise de varincia se dar no
perodo de agosto novembro do ano de 2011 Essa pesquisa ser feita, em livros,
internet, revistas e at mesmo um aprendizado durante as aulas, pelos acadmicos
do segundo semestre do Curso de Bacharelado em Sistemas de Informao
SETREM.

captulo 1: aspctos metodolgicos

Este relatrio tem por objetivo, a organizao de atividades de pesquisa


referentes estruturao de um sistema de clculos de anlise de varincia,
atendendo os requisitos do componente curricular Prtica Profissional Direcionada I.
Ele refere aos aspectos metodolgicos da pesquisa, bem como seu embasamento
terico.

1.1.

Tema

Segundo Oliveira (1999), o tema da pesquisa a designao do problema


(prtico) e da rea do conhecimento a serem observados ( p. 105).
Desenvolvimento de um aplicativo em C++ para resoluo de clculos estatsticos.
1.1.1. DELIMITAO DO TEMA

Uma vez determinado o tema, se faz necessrio delimit-lo, o que significa


um enfoque no tema.
Assim explica Pinheiro (2010). Refere-se a extenso e profundidade do
enfoque, transformando o tema em problema. O objetivo aqui levantar questes
implcitas ou explicitas para discusso e reflexo das ideias sugeridas inicialmente
pelo tema (problematizao)( p. 52).
O algoritmo dever resolver clculos relacionados a mdias, e anlise de
varincia, os clculos provem da estatstica, e que ser testada no Excel, uma
planilha eletrnica fornecida pela Microsoft.

12

1.1. PROBLEMA
Um problema implica uma ou mais dvidas ou dificuldades em relao ao
tema, que voc se propor a resolver. Formul-lo, portanto, deve envolver
perguntas, s quais o trabalho procurar responder (MATTAR, 2008, p.161).

Quais os procedimentos necessrios na estruturao algortmica em c++ que


possibilite o calculo de analise de varincia.

1.2. hipteses
Segundo Oliveira (1999), com a definio das hipteses:
[...]o pesquisador tem condies de identificar as informaes necessrias,
evitar a disperso, focalizar determinados segmentos do campo
observao, selecionar os dados etc. (OLIVEIRA, 1999, p. 112).

Todos os dados gerados pelo sistema sero armazenados em arquivos de


texto.
A instalao do sistema criado em C mais simples que o Microsoft Excel.
O sistema gerado roda mesmo em maquinas de pequeno porte.
Escolhendo a linguagem C como padro de programao no haver como
utilizar as clulas como no Excel..

1.3. objetivos
A hiptese ou a diretriz deve ser formulada em termos bastante claros e
concisos, sem ambigidade gramatical e designar os objetos em questo a
respeito dos quais seja possvel apresentar provas concretas ou
argumentos bastante convincentes, favorveis ou no ao objeto de
pesquisa (olhar) (OLIVEIRA, 1999, p. 112).

OBJETIVO GERAL

Desenvolver um software na ferramenta C++, com a utilizao de clculos


para resolver problemas estatsticos.

13

1.3.1. Objetivos Especficos

Estudar conceitos e maneiras de como programar em C++.


Estudar os clculos
desenvolvimento do sistema.

estatsticos

necessrios

utilizados

para

Entender os clculos estatsticos bem como a maneira de desenvolver um


programa em C++.
Desenvolver clculos como mdias, desvio padro, varincia, e outros.
Levantar os requisitos necessrios para o desenvolvimento do sistema.
Conseguir analisar se o programa tem a capacidade de atender aos
requisitos.
Desenvolver o sistema na linguagem C++.
Testar o sistema.
Realizar uma comparao entre o sistema desenvolvido e o Excel.

1.4. metodologia
A metodologia pode ser o desenvolvimento de um projeto em que se busca
resolver o problema.
Mtodo devir de metodologia e trata de um conjunto de processos pelos
quais se torna possvel conhecer uma determinada realidade, produzir
determinado objeto ou desenvolver certos procedimentos ou
comportamento... O Mtodo , portanto, uma forma de pensar para se
chegar a natureza de um determinado problema, quer seja para estud-lo,
quer seja para explic-lo (OLIVEIRA, 1999, p.56).

1.4.1. MTODO DE ABORDAGEM

O mtodo de abordagem pode ser visto como o embasamento para se


desenvolver o estudo e o trabalho.
O mtodo dedutivo tem seu registro histrico inicial na obra de Aristteles.
Assim, pode tambm ser chamado de lgica aristotlica. A parte mais
importante da lgica aristotlica a sua teoria dos silogismos. O silogismo
procura ser uma representao de nosso processo de raciocnio. Constituise num encadeamento de duas (ou mais) premissas que geram uma

14

concluso. Essa concluso, apesar de resultante das premissas, deve


acrescentar algo de novo a elas (NETO; 2003, p.43).

O mtodo dedutivo busca pela lgica, uma conexo de premissas para poder
chegar a um resultado final, onde atravs delas pode se tirar uma nova concluso.
O mtodo indutivo busca atravs das probabilidades, chegar a uma
concluso.
O mtodo hipottico-dedutivo tem origem em um problema, onde se busca a
soluo, usando tentativas para eliminar os erros.
A varivel qualitativa, tambm chamada de sistema de valores, composta
de atributos e relaciona os aspectos mensurais e descritivos. Conforme suas
tcnicas de utilizao ela categorizada.
A varivel qualitativa caracterizada pelos seus atributos e relaciona
aspectos no
somente mensurveis, mas tambm
definidos
descritivamente. O conjunto de valores em que se divide uma varivel
qualitativa denominado sistema de valores. Tais sistemas no so
inalterveis para cada varivel. Conforme a natureza ou objeto do
pesquisador ou ainda das tcnicas a serem usadas, a varivel merece ser
categorizada (FACHIN, 2003, p.81).

A varivel quantitativa, determinada atravs de dados ou ainda propores


numricas. Ela envolve um sistema lgico, onde h sustentao da atribuio dos
nmeros e com resultados eficazes.
A abordagem utilizada no presente estudo ser a quali-quantitativa, sendo a
qualitativa utilizada para a anlise da articulao do algoritmo e a qualitativa para a
estruturao da sequncia do mesmo.

1.4.2. MTODOS DE PROCEDIMENTO

Aplicam-se nas mais variadas reas da cincia, onde sua principal aplicao
nas cincias sociais. Possibilitando trabalhar com grandes grupos com universos
populacionais diferentes e com diferenas geogrficas.
Os procedimentos a serem utilizados no presente estudo so o experimental,
estatstico e o comparativo, descritos abaixo, na sequncia:
A pesquisa experimental aquele onde as variveis so manipuladas pelo
pesquisador que conhece os efeitos dessa manipulao.
A pesquisa experimental ocorre quando se determina um objetos de estudo,
selecionado-se as variveis que seriam capazes de influenci-lo, definindo-

15

se as formas de controle e de observao dos efeitos que a varivel produz


no objeto (PINHEIRO, 2010, p. 23).

J o mtodo comparativo utiliza uma anlise entre dois ou mais elementos,


afim de estabelecer semelhanas e diferenas entre eles, e sobre essa comparao,
tirar alguma concluso ou sanar alguma dvida.
Consiste em investigar coisas ou fatos e explic-los segundo suas
semelhanas e suas diferenas. Geralmente, o mtodo comparativo aborda
duas series ou fatos de natureza anloga, tomadas de meios sociais ou de
outra rea do saber, a fim de se detectar o que comum a ambos (FACHIN,
2003, p.37).

De acordo com Fachin (2003, p.46) o mtodo estatstico aplica-se ao estudo


dos fenmenos aleatrios, e praticamente todos os fenmenos que ocorrem na
natureza so aleatrios, com as pessoas, o divorcio....
O procedimento experimental ser utilizado no desenvolvimento e anlise do
sistema. O procedimento estatstico por sua vez ser utilizado para testar a
funcionalidade do sistema desenvolvido, e com o comparativo sendo acionado para
checar a funcionalidade do mesmo tendo como referencia de qualidade o Excel.

1.4.3. TCNICA UTILIZADA


Para Fachin (2001), tcnica corresponde ao conjunto de procedimentos
mecnicos e intelectuais que as pessoas usam no desempenho de uma atividade
cientfica.
No presente projeto, sero utilizadas as tcnicas de pesquisa bibliogrfica,
afim de adquirir os conhecimentos necessrios para a realizao do projeto; a coleta
de dados, que a obteno de materiais (dados) para realizar testes no programa;
anlise estatstica, utilizada na lgica do programa., para atender um os requisitos: a
capacidade de realizar alguns clculos estatsticos.

Captulo 2 fundamentao terica

2.1 ESTATSTICA
Estatstica, pode ser entendida, como uma maneira de explicar a frequncia
de ocorrncias de um evento, ou seja, tirar a mdia de um determinado conjunto de
valores, entre outros vrios clculos que envolvem a estatstica.
A estatstica est interessada nos mtodos cientficos para coleta,
organizao, resumo, apresentao e anlise de dados bem como na
obteno de concluses vlidas e na tomada de decises razoveis
baseadas em tais anlises (SPIEGEL, 1974, p.1).

Segundo Ferreira (2005, p.1), a estatstica usada para descrever os


procedimentos de coletar, organizar, analisar e apresentar os resultados da
manipulao dos dados provenientes das investigaes cientficas.
2.1.1 Populao e Amostra
Populao um conjunto de animais, pessoas, plantas, das quais se desejam
tirar concluses, probabilidades, mdias, para obter um resultado.
Amostra um subconjunto de populao, ela obtida aleatoriamente de uma
populao.
O conjunto total de medidas, sobre o qual se deseja retirar concluses,
denominado de populao ou universo (FERREIRA, 2005, p.2).
2.1.2 Amostras Aleatrias
So amostras que foram retiradas de populaes, do qual fui utilizado a
probabilidade para se definir essa amostra, tambm pode ser definida como, uma

17

parcela de pessoas, animais, plantas, que foram retiradas de uma grande


quantidade, afim de se obter uma estatstica encima do total geral desse conjunto.
Segundo Ferreira (2005): Para validade das concluses que so feitas a
respeito da populao em razo das inmeras maneiras existentes de se extrarem
as amostras de uma populao, necessrio retira-las de uma maneira aleatria
(p.4).
2.1.3 Mdia Aritmtica

A mdia aritmtica, bastante utilizada no dia-a-dia, e obtemos ela da


seguinte maneira, soma-se todos os valores e depois divide-se esse valor pela
quantidade de nmeros somada anteriormente.
A medida de posio mais comum, intensa e extensivamente utilizada, a
mdia aritmtica, geralmente denominada de mdia. O conceito de mdia
aritmtica familiar e poderia se dizer, at mesmo, indutivo: a mdia a
soma das observaes dividida pelo nmero delas (FERREIRA, 2005,
p.17).

2.1.4 Mediana
A mediana se caracteriza por ser, o valor do meio em um conjunto de dados
ordenados, separando a metade superior, da metade inferior do conjunto. No caso
da quantidade de valores for impar, ento o valor central ser a mediana, porm, se
a quantidade de valores for par, deve-se obter a mdia dos dois valores centrais.
A mediana um medida tpica de tendncia central, sendo definida em um
conjunto de dados ordenados como o valor central, ou seja, o valor para o
qual h tantas mensuraes que superam quanto so superados por ele
(FERREIRA, 2005, p.23).
A mediana o valor que excede, em magnitude, metade de todos os
valores e excedida pela outra metade. No caso de dados no grupados,
tudo o que temos a fazer orden-los em ordem de magnitude e locar a
mediana por simples inspeo (POLASEK; KARMEL, 1972, p.81).
Para estimar a mediana a partir dos dados arranjados em uma tabela de
distribuio de freqncia, necessrio definir a classe mediana e em
seguida encontrar a mediana interpolando os resultados (FERREIRA, 2005,
p.23).

18

2.1.5 Mdia Geomtrica


Obtemos o valor da mdia geomtrica, somando os valores do conjunto de
dados, e tirando a sua raz n, o n representa a quantidade de valores do conjunto, da
qual se obtivera a soma.
Conforme Ferreira (2005, p. 33): A mdia geomtrica apropriada para
calcular mdias de razes, de taxas de variaes, de ndices econmicos e de taxa
de crescimento de microorganismos.
Pode ser lembrado que uma progresso aritmtica uma seqncia de
nmeros, cada um dos quais difere do precedente por uma constante, que
a diferena comum entre dois termos consecutivos quaisquer. Uma
progresso geomtrica uma seqncia de nmeros tais que, qualquer
termo, depois do primeiro, obtido do precedente, multiplicando-o por um
nmero fixo denominado razo (KARMEL; POLASEK, 1972, p.86).

2.1.6 Mdia Harmnica


Mdia harmnica, equivalente ao inverso da mdia aritmtica dos inversos
de n, o resultado de todas as mdias, sempre estar entre o maior e o menos valor
dado e para os mesmos valores, a mdia aritmtica ter o maior valos, seguida da
mdia geomtrica e depois da harmnica,
A mdia harmnica, que obtida tomando-se o recproco da mdia
aritmtica dos recprocos, representa uma outra medida de tendncia
central [...] A mdia harmnica usada para obter mdias de razes e em
algumas tcnicas da estatstica (FERREIRA, 2005, p.34).

2.1.7 Moda
A moda se caracteriza, por ser o valor que mais se repete em um conjunto,
podendo ter mais de uma moda em apenas um conjunto, por exemplo, nos valores
1, 2, 2, 3 e 4, a moda o valor 2.
A moda o valor que ocorre com maior freqncia, ou seja, o valor que
mais se repete na amostra de dados. Quando as freqncias so maiores
nos extremos ou quando se quer destacar um valor de alta freqncia, a
moda pode ser considerada para a interpretao dos dados (RIBEIRO
JNIOR, 2004, p.68).

19

2.1.8 Medidas de Disperso


A medida de disperso serve para avaliar o quanto os dados so
semelhantes, mostra como os valores se distanciam do valor central.
As medidas de disperso so utilizadas para quantificar o grau de
variabilidade dos valores de uma amostra de dados em torno da sua mdia,
conforme Ribeiro Jnior (2004). Ento pode-se concluir que as medidas de
disperso quantificam a variabilidade ou disperso de dados.
2.1.9 Amplitude
A amplitude uma medida de disperso, que pode ser calculada da seguinte
forma, obtemos o maior valor do conjunto de dados, e subtramos dele o menor valor
apresentado no conjunto de dados. A amplitude porm no utiliza os valores centrais
do conjunto, pois necessita apenas do maior valor e do menor valor para ser
calculada.
Segundo ARA, MUSETTI e SCHNEIDERMAN (2003), amplitude indicada
por R e a diferena entre o maior e o menor valor do conjunto de n observaes
(p.7).
2.1.10 Varincia
Busca mostrar o quanto os valores esto distantes da mdia aritmtica.
Conforme KARMEL e POLASEK (1972)A varincia mede a variao, ou
disperso, das observaes em torno da sua mdia (p.95).
A varincia populacional definida dividindo-se a soma de quadrados de
desvios pelo tamanho da populao... A varincia pode ser considerada
como um valor mdio dos desvios ao quadrado, portanto, sendo conhecida,
tambm, por quadrado mdio (FERREIRA, 2005, p.39).
A varincia amostral (s) poderia ser definida da mesma forma que a
varincia populacional, substituindo-se n por n e por X . Isso, no entanto,
no feito [...] a soma de quadrados ser dividida por n-1 ao invs de usar
o n (FERREIRA, 2005, p.39).

20

2.1.11 Desvio Padro


Ele calculado a partir da varincia, onde se a varincia tirada a raiz
quadrada, obtendo-se uma medida de disperso, o desvio padro. Ele definido
assim, para no resultar em um numero negativo, e para usar os mesmos dados j
fornecidos.
O desvio padro definido tomando-se a raiz quadrada da varincia. Dessa
forma o desvio padro expresso na mesma unidade dos dados e por essa
razo possui significado fsico e preferido pelos investigadores, por ser
fcil de interpretar (FERREIRA, 2005, p.41).

2.1.12 Probabilidade
Esse termo usado, como um provvel evento, incerto ou conhecido. uma
maneira de se basear em algum resultado mais provvel de se obter.
Para entender estatstica, necessrio um bom entendimento do conceito
da probabilidade. Isso no to difcil quanto parece, pois a probabilidade
se faz presente no dia-a-dia. Toda vs que sorteamos cara ou coroa,
jogamos um dado ou compramos um bilhete de loteria, estamos lidando
com probabilidade. O noticirio uma das fontes mais comuns de
probabilidade: por exemplo, se voc fumante, maior a sua probabilidade
de desenvolver cncer de pulmo. Da mesma forma (gosto muito dessa
probabilidade), se voc bebe cerveja moderadamente, seu risco de doena
cardaca reduzido.(pg 108).

2.1.13 Desvio Mdio


Esta formula dificilmente usado em teoremas de estatstica. Afirma
FERREIRA (2005, p.38): Em razo dos valores absolutos, conduz a serias
dificuldades tericas em problemas de inferncia estatstica e , por isso, raramente
usada.
O desvio mdio (S| X |) ser definido como sendo a media dos desvios
absolutos em relao a media da amostra... pode ser definido tambm
como sendo a mdia dos desvios absolutos em relao a mediana
(FERREIRA, 2005, p.38).
n

SX

| xi X |
i 1

21

2.2 PROGRAMAO
o processo de escrita de cdigos, ou linguagens de programao, visando
um resultado, o programa (sistema). Por sua vez a programao envolve uma rea
muito ampla, pois podemos escrever ou programar diferentes programas em
diversas linguagens.
Um programa um conjunto de instrues que dizem ao computador o que fazer.
Esse conjunto de instrues, escritas originalmente pelo programador, chamado
originalmente de cdigo-fonte (LINTHICUM; JOHNSON; MONITTO; MUNRO;
PERRY; VEALE, 1993, p.3).
2.2.1 Programa
o resultado obtido a partir da programao de diversas linhas de cdigo,
onde que ao interpretar linha por linha, sendo que a partir disso ele se desenvolve, e
o usurio tem a possibilidade de interagir ou no com ele.
Um programa um conjunto de instrues que dizem ao computador o que
fazer. Esse conjunto de instrues, escritas originalmente pelo programador,
chamado originalmente de cdigo-fonte (LINTHICUM; JOHNSON; MONITTO;
MUNRO; PERRY; VEALE, 1993, p.3).
2.2.2 Algoritmo
O algoritmo praticamente o mesmo que programa, pois da mesma maneira,
ele interpreta as linhas de cdigo, em um perodo de tempo e um esforo finito, pode
ser comparado com uma receita de culinria, onde ele segue os passos escritos
para obter o resultado final.
Algoritmo pode ser definido, como se pode ver em Manzano e Oliveira (2001), uma
combinao de regras lgicas usadas para resolver um problema.
Assim sendo, um algoritmo pode ser definido por uma seqncia de
procedimentos que ir produzir um resultado, a fim de resolver um problema. Os
algoritmos se podem ser aplicados em vrias situaes que necessitam de uma
estruturao lgica de alguns passos para, desse modo, resolver gerar um resultado

22

em funo de um problema. Isso pode ser observado nos seguintes exemplos,


conforme CORMEN; LEIDERSON; RIVEST; STEIN (2002, p.4) dizem:
Na computao, os algoritmos so definidos como uma estruturao lgica
que toma valores de entrada, processa esses valores e os transforma em valores de
sada (CORMEN, LEIDERSON, RIVEST, STEIN, 2002).
2.2.3 Linguagem De Programao
Pode-se dizer que maneira como o programador conversa com o
computador, utilizando as sintaxes e semnticas para conseguir com que o sistema
final possa ler as linhas de cdigo e interpretar dessa maneira a forma que deve
proceder.
Podemos imaginar o computador como uma super calculadora, capaz de
fazer clculos muito mais rpido que ns, mas para isso devemos dizer para
o computador o que deve ser calculado e como deve ser calculado. A
funo das linguagens de programao exatamente essa, ou seja, servir
de um meio de comunicao entre computadores e humanos (ANDRADE,
2010)

Segundo Linthicum, Johnson, Monitto, Munro, Perry E Veale, (1993),


existem vrias linguagens de programao. Todas permitem a criao de bons
programas, mas cada uma tem a sua particularidade. funo do programador
escolher a linguagem que melhor se aplica ao programa a ser desenvolvido.
2.2.3.1

Linguagem C

uma dos diversos tipos de linguagem de programao, ela funciona


praticamente com todos os compiladores e uma das mais conhecidas atualmente.
[...] por no existir nenhum padro, havia discrepncias. Para remediar
essa situao, o ANSI (American National Standards Institute)
estabeleceu, no vero de 1983, um comit para criar um padro que
definiria de uma vez por todas a linguagem C (SCHILDT, 1997, p. 4).

Uma caracterstica do C a de ser uma linguagem estruturada, conforme


Schildt (1997), pois permite a compartimentalizao do cdigo e dos dados.
C freqentemente chamada de linguagem de mdio nvel para
computadores. Isso no significa que C seja menos poderosa, difcil de
usar ou menos desenvolvida que uma linguagem de alto nvel como

23

BASIC e Pascal, tampouco implica que C seja similar linguagem


Assembly e seus problemas correlatados ao aos usurios. C tratada
como uma linguagem de mdio nvel porque combina elementos de
linguagens de alto nvel com a funcionalidade da linguagem Assembly.
Como uma linguagem de mdio nvel, C permite a manipulao de bits,
bytes e endereos os elementos bsicos com os quais o compilador
funciona. Um cdigo escrito em C muito portvel. Portabilidade significa
que possvel adaptar um software escrito para um tipo de computador a
outro. Por exemplo, se voc pode facilmente converter um programa
escrito para DOS de tal forma a executar sob Windows, ento esse
programa portvel. [..] Outro aspecto importante de C que ele tem
apenas 32 palavras-chaves [...], que so os comandos que compe a
linguagem C. As linguagens de alto nvel tipicamente tm varias vezes
esse nmero de palavras reservadas. Como comparao, considere que a
maioria das verses de BASIC possuem bem mais de 100 palavras
reservadas (SCHILDT, 1997, p. 4).

2.2.3.2

Tipos de Dados em C

So eles, int, float, double e void, e servem para apartir deles desenvolver as
linhas de cdigo, onde que cada um recebe um tipo de dado.
Conforme Schildt (1997, p. 4): H cinco tipos bsicos de dados em C:
caractere, inteiro, ponto flutuante, ponto flutuante de preciso dupla e sem valor
(char, int, float, double, e void, respectivamente).
2.2.3.3

Variveis

uma posio na memoria, que recebe valores do sistema, capaz de


armazenar, liberar ou substituir os valores, onde que funcionam apenas no momento
de execuo.
Para Schildt (1997, p. 20): varivel uma posio nomeada de memria, que
usada para guardar um valor que pode ser modificado pelo programa.
a)

Varveis Locais
So variveis que pertencem apenas aquele formulrio ou bloco de cdigo

onde ela foi declarada.


Segundo Schildt (1997, p. 20): variveis locais s podem ser referenciadas
por comandos que esto dentro do bloco no qual as variveis foram declaradas.

24

b)

Variveis Globais
So declaradas em qualquer lugar dos diversos formulrios, porem podem ser

utilizadas em todo o projeto.


Schildt (1997, p. 25): Ao contrrio da variveis locais, as variveis globais
so reconhecidas pelo programa inteiro e podem ser usadas por qualquer pedao do
programa.
2.2.3.4

Comandos de Controle

Pode ser entendido como blocos de comandos lgicos, que guiam o sistema,
por exemplo, na hora do sistema ter que decidir seguir por um ou por outro caminho
dependendo do resultado anterior.
Conforme Schildt (1997), os comandos de C podem ser classificados em:
- Seleo: comando que separam os valores em grupos distintos, atravs de
condies. Exemplo: if e switch.
- Interao: faz com que uma ao seja executada at que surja um valor
condicional. Exemplo: for, while e do-while.
- Desvio: comandos que quebram algum fator ou condio. Exemplo: return,
goto, braek e continue.
- Expresso: qualquer comando seguido de ponto-e-vrgula.
- Bloco: so comandos reunidos em um grupo, que juntos formam uma funo
distinta e podem ser chamados em qualquer local do cdigo.
2.2.3.5

Matrizes

Pode ser visto como um conjunto de variveis, que possuem apenas um


nome, porem podem armazenar diversos valores ao mesmo tempo, podemos

25

imaginar uma grade com o tamanho de n por n do qual tem apenas um nome, porem
pode-se armazenar diversos valores ao mesmo tempo.
Segundo Schildt (1997, p. 25): uma matriz uma coleo de variveis do
mesmo

tipo

que

referenciada

por

um

nome

comum.

Capitulo 3 anlise e discusso dos resultados

3.1 LEVANTAMENTO DE REQUISITOS

Para o desenvolvimento de um sistema de anlise de varincia, foi necessrio


um levantamento de requisitos, por exemplo o estudo das frmulas para o clculo da
anlise, do qual encontramos em livros de estatstica e na internet.

Figura 01: Frmula da ANOVA


Aps o estudo das formulas, foram levantadas as questes do sistema, o que
ele iria contemplar, como por exemplo, variveis, matrizes, vetores, cores padres e
principalmente a estruturao do prprio, definido isso, se deu inicio ao
desenvolvimento do sistema, onde que a partir de partes foi desenvolvido, para ter
um sucesso maior na hora da compilao.
Por isso a linguagem e o compilador, foram destinados para o grupo, onde
que a linguagem seria C e o compilador Dev-C++, em cima dele foi realizado um
estudo durante o semestre decorrente, alm disso, foi necessrio um estudo mais
aprofundado, pois o sistema tinha uma demanda um pouco maior do que a que foi
passada durante as aulas, por isso aps o levantamento de um estudo rpido dos
elementos da linguagem foi passvel a obteno do resultado, o sistema de ANOVA.

27

Esse sistema contempla tambm algumas outras necessidades, como, podese salvar e importar arquivos com os respectivos dados informados pelo usurio, ou
at mesmo de um arquivo, onde que o usurio importa os dados. Esses requisitos
foram levantados a partir de uma anlise realizada em cima de softwares que esto
hoje no mercado, portanto buscou-se um sistema mais simples e rpido.

3.2 APRESENTACAO DO SISTEMA

O sistema contempla uma apresentao, da logomarca da Sociedade


Educacional Trs de Maio SETREM, ao abrir o executvel do programa, podemos
ver a seguinte tela.

Figura 02: Tela de Boas Vindas do Sistema


Essa a apresentao inicial que o sistema faz para o(s) usurio(s), porm
nos cdigos fontes, a seguinte sequencia de cdigos, interpreta aquilo que podemos
ver.

28

Figura 03: Cdigos da Tela de Boas Vindas


A partir desse conjunto de caractere, foi possvel chegar ao resultado acima.
Aps a apresentao da logomarca, abre-se o menu, com as opes
referentes ao sistema, podendo o usurio ento interagir com o sistema pela
primeira vez.

Figura 04: Menu do Sistema


Esse menu nos trs as opes que o sistemas possibilita executar, conforme
demonstradas nessa imagem, sero explicadas e demonstradas ao longo desse
capitulo. Seu cdigo apresentado na imagem seguinte.

29

Figura 05: Cdigo do Menu


Essa a apresentao do menu, onde que se possibilitado uma layout um
pouco melhor de um sistema, utilizando alguns printf, do qual o sistema interpreta
como sendo um comando para informar algo na tela, utilizando vrios deles, foi
possvel o desenvolvimento da apresentao inicial, do menu, e tambm de todas as
perguntas das quais o programa faz ao usurio.
Tendo essas opes, o usurio ao digitar o valor correspondente a cada
opo e pressionando a tecla enter , redirecionado a opo desejada, exibiremos
aqui a cada opo e seu cdigo, descrevendo suas funcionalidades.
A primeira opo se refere ao usurio como uma opo para que ele possa
digitar os valores desejados para se calcular a ANOVA, ao entrar nessa opo,
podemos encontrar a seguinte tela.

Figura 06: Inserindo Dados


Nessa opo o usurio deve digitar a quantidade de amostras que deseja
calcular, logo aps ele digita os valores que deseja para cada amostra, e para sair

30

de cada amostra, ele deve digitar o valor correspondente a -1, que far com que se
possam digitar os valores da outra amostra e assim sucessivamente at concluir a
insero de valores nas amostras.

Figura 07: Cdigo da Insero de Dados


Essa a parte do cdigo que possibilita o preenchimento da matriz atravs de
for, no qual alocada dinamicamente e em seguida preenchida, coluna por coluna.

31

Figura 08: Valores Inseridos


Aps o usurio digitar os valores, o sistema pede ao usurio se ele deseja
ordenar os valores digitados, em ordem crescente, decrescente, ou deixando eles da
maneira digitada, separando em quadrados, ele informa os valores ordenados ou
no, trazendo tambm a sua soma e mdia. Logo aps o software oferece a opo
ao usurio de alterar alguma coluna digitada anteriormente.

32

Figura 09: Resultado dos Valores


Ele calcula a mdia de todas as amostras digitadas, a mdia geral, em
seguida a correlao de cada amostra, a correlao do quadrado de cada amostra e
a ANOVA, tambm exibindo os valores de forma similar ao do Microsoft EXEL.
Nessa tela ainda temos a opo.

Figura 10: Opo para Salvar


Dessa maneira, o usurio tem a opo de salvar os dados digitados,
bastando apenas digitar S para confirmar e salvar os valores utilizados na matriz.
A imagem seguinte se refere aos cdigos que fazem o calculo da ANOVA.

33

Figura 10: Cdigo Que Calcula a ANOVA

34

Na opo 2 no menu do sistema, podemos ver a opo de importar dados a


partir de um arquivo, onde que o usurio poder buscar no sistema um arquivo cujo
qual possua valores e por sua vez calcular sua ANOVA, sem a necessidade de
digitar valores, com as mesmas opes de ordenamento dos valores e de
salvamento.

Figura 11: Carregando Arquivos


O sistema lista todos os arquivos existentes na pasta do sistema, sendo
assim o usurio poder escolher o arquivo do qual quer importar, e depois
escolhendo a ordenao o sistema lista os valores e as respostas.

Figura 12: Salvamento em Outro Tipo de Arquivo

35

Os dados so salvos em arquivos com extenso .dad similar ao .txt,


primeiramente salvo o numero de grupos da matriz em seguida o numero de
dados em cada grupo, finalizando com os dados e data da criao do arquivo.

Figura 13: Cdigo de Salvamento dos Dados


Podemos ver que na opo 3 o sistema ir apresentar todos os arquivos que
esto na pasta onde o sistema se encontra, porm no poder ser realizado nada,
apenas visualiza-los.

36

Figura 14: Lista de Arquivos


No final da lista, podemos ver a quantidade de arquivos e pastas presentes
como tambm o tamanho de cada um. Na imagem seguinte o cdigo referente a
imagem anterior, o cdigo na verdade tambm um comando do MsDos, onde que
o sistema entende que ele deve listar todos os arquivos do diretrio informado.

Figura 15: Cdigo que Lista os Arquivos

37

Da mesma forma que a opo 3 que o menu nos proporciona, a opo 4


tambm serve apenas de informativo, onde que ele nos mostra a data e a hora atual,
visveis na seguinte imagem.

Figura 15: Data e Hora do Sistema


Para que o sistema possa lista-los, foi necessrio as seguintes linhas de
cdigo.

Figura 16: Cdigo que Pega a Data e a Hora do Computador


Podemos visualizar em praticamente todas as opes que no inicio do
desenvolvimento de seu cdigo, est um system("cls"), no momento em que o
compilador o interpreta, ele limpa a tela, e com os cdigos seguintes a ele, o
compilador interpreta e imprime na tela a data e a hora, cujas foram copiadas do
sistema operacional instalado no computador, por meio de dois comandos que o
sistema operacional nos permite copi-los, que so, date e time, tambm a linha de
cdigo goto MENU faz com que voltemos ao menu principal do sistema.
Na 5 opo, temos como alterar a cor da letra e do fundo do sistema, porm
apenas algumas combinaes so possveis, pois elas so provenientes do prprio
compilador.

Figura 17: Definindo o Tema Para o Sistema

38

Essas so as possveis alteraes de cores que o sistema proporciona sendo


a primeira das duas cores a cor da fonte, e a segunda do fundo. Podemos ver em
seguida uma alterao realizada, escolhendo a opo 8 (Branco/Preto) nesse menu
da definio do tema.

Figura 18: Mudando de Tema


Dessa forma o usurio tambm pode interagir as cores do sistema,
diferentemente de outros sistemas que tem seu padro e no possvel sua
alterao.
As linhas de cdigos utilizadas para essa opo foram os seguintes.

Figura 19: Cdigo Para Mudar o Tema

39

Esses so os cdigos referentes a definio do tema, utilizam de um


comando do DOS-MS, que chamado pela funo system(color f2).
A opo 6 nos permite salvar algo do qual de respeito apenas do usurio,
como um clculo a fazer, ou um resultado, esses lembretes so salvos em um
arquivo txt, editor de texto, que depois poder ser visto pelo usurio. A imagem
seguinte nos mostra a opo.

Figura 20: Lembretes


O cdigo por trs dessa tela esta apresentado na seguinte imagem.

Figura 21: Cdigo Por Trs dos Lembretes

40

Primeiramente as linhas de cdigo da opo Lembretes imprime na tela tudo


que h de salvo no arquivo Lembretes.txt, posteriormente abre o arquivo para
edio imprimindo a data e hora atual em seguida aguarda o texto do usurio.
A opo 7 que o sistema nos possibilita, relacionado aos desenvolvedores e
orientadores da Prtica Profissional Direcionada 1, onde que se informado os
desenvolvedores do sistema, e os professores relacionados ao projeto.

Figura 22: Sobre o Sistema


Com essas informaes, o usurio pode at ter uma ideia das pessoas
envolvidas com o sistema. O seguinte cdigo representa essa opo.

Figura 23: Cdigo por Trs da Tela Sobre

41

Esse cdigo, apenas imprime na tela informaes sobre o sistema. A opo


ajuda tem como objetivo de dar uma pr-instruo ao usurio sobro o manuseio do
software.

Figura 24: Instrues do Sistema

42

Figura 25: Cdigo Da Figura Anterior


No cdigo da opo ajuda ele simplesmente puxa as informaes de um
arquivo chamado Ajuda.txt os foi previamente editado pelos desenvolvedores.
A opo 9 serve apenas para o usurio sair do sistema.

Figura 26: Sair do Sistema


O cdigo referente a essa opo o seguinte.

Figura 27: Cdigo Para Sai do Sistema


Esse cdigo faz com que o sistema se feche ao retornar o valor 0 o sistema
interpreta como sendo algo que no resulta nenhum valor.
Assim se finaliza a apresentao do sistema de ANOVA(Anlise de
Varincia), onde foi descrito sua funcionalidade e sua forma de desenvolvimento.

CONCLUSO

O mundo hoje uma corrida frentica contra o tempo e a adaptao sobre


diversos assuntos, por exemplo, a estatstica, que est recorrendo ao setor da
informtica, como meio de desenvolvimento de softwares para o clculo das teorias
que a estatstica nos fornece.
O desenvolvimento de um programa capaz de determinar uma das questes
da estatstica, no caso a ANOVA, foi de grande valia para o grupo, proporcionando
conhecimento tanto na rea da programao, como tambm no estudo da estatstica
e da metodologia da pesquisa, onde que foi possvel uma assimilao dos 3
estudos, para a obteno do resultado final, o sistema.
Realizando uma analise em cima das hipteses desenvolvidas no inicio do
relatrio, foi possvel chegar a seguinte concluso.
A primeira hiptese, afirmava que todos os arquivos gerados pelo sistema
seriam armazenados em arquivos ".txt", pois bem, essa hiptese se confirmou, pois
o sistema salva em uma extenso ".dad" que tem as mesmas caractersticas que um
".txt", salvando os dados digitados e os resultados, bem como oferece a opo de
importao dos dados.
A segunda hiptese fala sobre a comparao da instalao do sistema
desenvolvido com o Microsoft Excel, o sistema desenvolvido, possibilitou uma maior
facilidade de instalao, por onde for, basta execut-lo que ele ir funcionar, ao
contrrio do Microsoft Excel que trs consigo diversos outros programas que a
Microsoft oferece aos seus usurios, tornando essa hiptese tambm bem sucedida.
Rodando em maquinas de pequeno porte, esse sistema nos possibilita a
confirmao da terceira hiptese, que seria do funcionamento dele em maquinas de
baixo processamento.
A quarta hiptese tambm se confirmou, pois relatava que ao desenvolver um
sistema na linguagem C, no seria possvel a utilizao de clulas, como por

44

exemplo no Microsoft Excel, pois o sistema possibilita ao usurio a digitao de


apenas um valor de cada vez, sem a interao com vrios locais da tela.
Tambm podemos observar a problematizao e os objetivos que foram
descritos no capitulo 1, eles por sua vez, tambm foram bem sucedidos, podemos
analis-los no capitulo 3 onde temos a apresentao do sistema. O grupo realizando
um grande estudo sobre os requisitos para o desenvolvimento do sistema foram
apresentados no capitulo 2, onde diversos autores relatam de forma breve oque
cada um dos assuntos fala.
Ao final da Pratica Profissional Direcionada I, o grupo chega a concluso de
que foi de grande valia o estudo realizado para se alcanar o objetivo, um sistema
de ANOVA, que possibilitasse muitos benefcios, por exemplo a possvel utilizao e
sala de aula, entre outros, o estudo tambm possibilitou um grande aprendizado
extra classe, onde buscamos o conhecimento atravs de meios "comuns" e que
praticamente todas pessoas possuam. Esse trabalho possibilitou a aproximao de
3 componentes curriculares do curso de Bacharelado de Sistemas de InformaoSETREM.

APNDICE
Principal.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include "hFuncoes.h"
//#include "hANOVA.h"
//#include "hFucLogo.h"

main()
{
int n,t,i,j,k,m,Q,iM,h;
float fAUX, T, RESPOSTA;
float **mt;
double vlr;
char sn[0];
int vtn[10000];
float vtsoma1[10000];
char ch[18];
char strVlr [20];
char date[9],time[9];
_strdate(date);
_strtime(time);
int opca;

46

CarregaLogo();
FILE *a;

char c[3],d;
if (!(a=fopen("tema.txt","r"))){
system("color 27");
}
for (int i=0;i<3;i++){
d=getc(a);
if (d==';'){
opca=(int)atof(c);
break;
}
else
c[i]=d;
}

DefineTema(opca);
fclose(a);

MENU:
system("cls");
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("%c ================================================== %c\n",178,178);
printf("%c

SISTEMA DE CALCULOS DA ANOVA

%c\n",178,178);

printf("%c ================================================== %c\n",178,178);


printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",178,1

47

78,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,17
8,178,178,178);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n%c
%c",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178);
printf("\n%c

%c",178,178);

printf("\n%c MENU DE OPCOES:

%c\n",178,178);

printf("%c

1 - Informar novos dados.

%c\n",178,178);

printf("%c

2 - Importar os dados a partir de um Arquivo. %c\n",178,178);

printf("%c

3 - Listar os Arquivos presentes na Pasta. %c\n",178,178);

printf("%c

4 - Listar a Data atual.

%c\n",178,178);

printf("%c

5 - Escolher Tema.

%c\n",178,178);

printf("%c

6 - Lembretes.

printf("%c

7 - Sobre.

%c\n",178,178);

printf("%c

8 - Ajuda.

%c\n",178,178);

printf("%c

9 - SAIR.

%c\n",178,178);

%c\n",178,178);

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("%c

Digite a Opcao: ",178);

//scanf("%i",&iM);
SoInteiro(&iM,1);
printf("%c

",178);

//OPO 9 - SAI DO SISTEMA


if (iM==9){
return 0;
}

//OPO 2 - CARREGA A MATRIZ A PARTIR DE UM ARQUIVO


if (iM==2){

48

system("cls");
printf("%c CARREGANDO ARQUIVO",178);
FILE *p;
char c[10],d;
int i;

ch[0]=' ';
printf("\n%c===========================================%c\n%c",178,178,178);
system("dir *.dad");
ar:
printf("\n%c\n%c Digite o nome do Arquivo a carregar: ",178,178);
fflush(stdin);
gets(ch);
strcat(ch,".dad");

p=fopen(ch,"r");
if (!p){
printf("%c\n%c Arquivo no encontrado!",178,178);
goto ar;
}
for (int i=0;i<5;i++){
d=getc(p);
if (d==']'){
k=(int)atof(c);
break;
}
else
c[i]=d;
}
//float mt[k][10000];
mt=aloca_mtr(k,10000);

49

for (int i=0;i<5;i++){


d=getc(p);
if (d=='\n')
break;
}

for (int i=0;i<10;i++)


c[i]=' ';

h=0;
for (i=0;i<k;i++)
while (!feof(p)){
d=getc(p);
if (d==';'){
vtn[i]=(int)atof(c);
for (int j=0;j<10;j++)
c[j]=' ';
h=0;
break;
}
else{
c[h]=d;
h++;
}
}
for (int i=0;i<5;i++){
d=getc(p);
if (d=='\n')
break;
}

for (i=0;i<k;i++)

50

for (j=0;j<=vtn[i];j++){
while (!feof(p)){
d=getc(p);
if (d=='/'){
mt[i][j]=(float)atof(c);
for (int j=0;j<10;j++)
c[j]=' ';
h=0;
break;
}
else{
c[h]=d;
h++;
}
}
}
fclose(p);
//goto MENU;
}

//OPO 3 - lISTAR OS ARQUIVOS PRESENTES NA PASTA DO EXECUTAVEL


if (iM==3){
system("cls");
printf("%c LISTA DE ARQUIVOS NO DIRETORIO RAIZ",178);
printf("\n%c===========================================\n",178);
system("dir");
printf("\n%c===========================================\n",178);
getchar();
goto MENU;
}

//OPO 4 - LISTA A DATA

51

if (iM==4){
system("cls");
printf("%c LISTA DATA E HORA ATUAL",178);
printf("\n%c====================================================\n%c",178,178);
printf("\n%c\n%c %s %s",178,178,date,time);
printf("\n%c====================================================\n",178);
getchar();
goto MENU;
}

if (iM==5){
DefineTema(opca=Temas());
FILE *
w;
char c[2], str[30];
int i;
if (!(w=fopen("Tema.txt","w"))){
printf ("Erro ao abrir arquivo!\n");
exit(1);
}
sprintf(c,"%d",opca);
strcat(c,";");//concatena o ; ao char
fputs(c,w);//joga

goto MENU;
}

if (iM==6){
system("cls");
printf("LEMBRETES:\n\n");

FILE *p,*fp;

52

char c[10],d,ctr[1],frase[1000];
p=fopen("Lembretes.txt","r");
while (!feof(p)){
d=getc(p);
printf("%c",d);
}
fclose(p);

printf("\n");
if (!(fp=fopen("Lembretes.txt","a"))){//w sobre escreve o arquivo
printf("Erro ao abrir o arquivo!\n");
exit(1);
}

//printf("\n%c\n%c %s %s",178,178,date,time);
fprintf(fp,"\n\n======SALVO EM %s as %s========================\n",date,time);
fclose(fp);

printf("\n");
if (!(fp=fopen("Lembretes.txt","a"))){//w sobre escreve o arquivo
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
printf("Digite um Lembrete:!\n");
fgets(frase,999,stdin);
fputs(frase, fp);
fclose(fp);

goto MENU;
}

53

if (iM==8){
Ajuda();
goto MENU;
}

if (iM==7){
Sobre();
goto MENU;
}

//OPO 1 - ALIMENTADOR DE VALORES NA OPO MANUAL


if (iM==1)
{
system("cls");
printf("%c INSERINDO DADOS",178);
printf("\n%c====================================================",178);
printf("\n%c INFORME A QUANTIDADE DE AMOSTRAS: ",178);
scanf("%i",&k);

// DEFINE A QUANTIDADE DE "LINHA" ATRAVES DA VARIAVEL k CRIANDO ASSIM A MATRIZ


// PRINCIPAL DO SISTEMA
mt=aloca_mtr(k,10000);
//float mt[k][10000];
}

//OPO 1 - ALIMENTADOR DE VALORES NA OPO MANUAL


if (iM==1)
{
//ZERANDO AS VARIEVES
vlr = 0; i=0;

//I = GOTO DA QUEBRA DE GRUPOS

54

I:
j=0;
{
printf("%c\n%c----------------------------------------------------",178,178);
printf("\n%c Informe os Itens da Amostra %d: E digite -1 para quebrar a Amostra!\n",178,i+1);
//J = GOTO PARA INFOFRMAR UM PROXIMO ITEM DA X AMOSTRA
J:
{
printf("%c ",178);
//SoInteiro(&iM,1);
SoFloat(&vlr);
//scanf("%f",&vlr);

if (vlr != -1){
mt[i][j] = vlr;
j=j+1;
}
if (vlr != -1)
goto J;
}
vtn[i] = j-1;
i = i+1;
if (i != k){
goto I;
} else goto C;
}
}
C:

//OPO DE OREDNAMENTO DA MATRIZ

55

char Op;
int nA;

fflush(stdin);
printf("%c\n%c----------------------------------------------------",178,178);
printf("\n%c Opcao de Ordenamento das Amostras:",178);
printf("\n%c -Digite C para crescente.",178);
printf("\n%c -Digite D para decrescente.",178);
printf("\n%c -Digite N para deixar como estao.",178);
printf("\n%c Digite a Opcao: ",178);
Op='N';
scanf("%C",&Op);
printf("%c\n%c----------------------------------------------------\n",178,178);

//ROTINA DE ORDENAMENTO DA MATRIZ mt


if ((Op=='D') or ((Op=='C'))){
mt=OrdenaMatriz(mt,vtn,k,Op);
}

//INFORMA AS AMOSTRAS E SUAS RESPECTIVAS MEDIAS


m=0;
for (m=0;m<k;m++){
T=0; Q=0;
printf("%c\n%c
%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("\n%c
%c
AMOSTRA
%i
%c===================%c\n",178,178,m+1,178,178,178,178);
for (i=0;i<=vtn[m];i++){
printf("%c %c %16.2f %c\n",178,178,mt[m][i],178);
T=T+mt[m][i];
Q++;
}

%c\n%c

56

printf("%c %c-------------------%c\n",178,178,178);
printf("%c %cTotal %11.2f %c\n",178,178,T,178);
printf("%c %cMedia %11.2f %c\n",178,178,(T/Q),178);
printf("%c
%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178,178,178,178);
}

printf("%c\n%c----------------------------------------------------",178,178);
printf("\n%c Deseja Alterar os Valores de um Amostra? <S/N>: ",178);
fflush(stdin);
scanf("%C",&Op);

nA=0;
if (Op=='S'){
MG:
printf("\n%c Informe o Numero da Amostra que sera alterada: ",178);
scanf("%d",&nA);
nA=nA-1;

printf("\n%c EDITANDO AMOSTRA %d \n",178,nA+1);


printf("%c----------------------------------------------------\n%c",178,178);
j=0;
for (i=0;i<=vtn[nA];i++){
if (j==3)
printf("\n%c",178);

printf(" %8.4f |",mt[nA][i]);

j++;
}
printf("\n%c----------------------------------------------------",178);
for (i=0;i<=vtn[nA];i++){

57

printf("\n%c Editando valor %8.4f de %d/%d | NOVO VALOR: ",178,mt[nA][i],i+1,vtn[nA]+1);


SoFloat(&vlr);
mt[nA][i]=vlr;
}

printf("\n%c\n%c Alterar outra Amostra? <S/N> : ",178,178);


fflush(stdin);
scanf("%C",&Op);
if (Op=='S')
goto MG;

m=0;
for (m=0;m<k;m++){
T=0; Q=0;
printf("%c\n%c
%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("\n%c
%c
AMOSTRA
%i
%c===================%c\n",178,178,m+1,178,178,178,178);

%c\n%c

for (i=0;i<=vtn[m];i++){
printf("%c %c %16.2f %c\n",178,178,mt[m][i],178);
T=T+mt[m][i];
Q++;
}
printf("%c %c-------------------%c\n",178,178,178);
printf("%c %cTotal %11.2f %c\n",178,178,T,178);
printf("%c %cMedia %11.2f %c\n",178,178,(T/Q),178);
printf("%c
%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178,178,178,178);
}
}

printf("%c\n%c----------------------------------------------------",178,178);

58

//CALCULO DA ANOVA
RESPOSTA=ANOVA(mt,vtn,k);
//ANOVA(mt,vtn,k);
printf("\n%c\n%c >>>> A NOVA = %8.8f",178,178,RESPOSTA);

if (iM==1||iM==2){
char Op;
fflush(stdin);
printf("\n%c----------------------------------------------------",178);
printf("\n%c Opcoes:",178);
printf("\n%c -Digite S para salvar os dados Digitados.",178);
printf("\n%c -Digite R para salvar somente os Resultados.",178);
printf("\n%c -Digite T para Salvar Tudo.",178);
printf("\n%c -Digite I para Imprimir.",178);
printf("\n%c Digite a Opcao: ",178);
Op='N';
scanf("%C",&Op);
printf("%c\n%c----------------------------------------------------\n",178,178);

if (Op=='S'||Op=='s'){
char filesave[25],c[10];
int i=0;
char date[9],time[9];
_strdate(date);
_strtime(time);

FILE *pp;
printf("%c\n%c\n%c Nome do arquivo a ser salvo: ",178,178,178);
fflush(stdin);
gets(filesave);
strcat(filesave,".dad");

59

Op='S';

pp=fopen(filesave,"r");
if (not(!pp)){
printf("%c\n%c Arquivo ja exite deseja sobre por? <S/N>: ",178,178);
scanf("%C",&Op);
fclose(pp);
}

if (Op=='S'||Op=='s'){
if (!(pp=fopen(filesave,"w"))){//w sobre escreve o arquivo
printf("%c Erro ao abrir o arquivo!\n",178);
exit(1);
}
sprintf(c,"%d",k);
strcat(c,"]");//concatena o ; ao char
fputs(c,pp);//joga

fputs("\n",pp);//joga
for (i=0;i<k;i++){
sprintf(c,"%i",vtn[i]);
strcat(c,";");//concatena o ; ao char
fputs(c,pp);//joga
}
fputs("\n",pp);
for (i=0;i<k;i++){
for (j=0;j<=vtn[i];j++){
sprintf(c,"%f",mt[i][j]);
strcat(c,"/");//concatena o ; ao char
fputs(c,pp);//joga
}

60

fputs("\n",pp);
}
fprintf(pp,"\n%c=====================================================",178);
fprintf(pp,"\n%c Arquivo Salvo em %s as %s",178,date,time);
fclose(pp);
printf("%c\n%c Arquivo salvo com sucesso!",178);
}
}
if (Op=='R'||Op=='r'){

}
if (Op=='T'||Op=='t'){

}
if (Op=='I'||Op=='i'){

}
}

printf("\n%c\n%c===========================================\n%c Deseja voltar ao MENU?


<S/N> ",178,178,178);
fflush(stdin);
gets(ch);
if (ch[0]=='n'||ch[0]=='N'){

} else goto MENU;


printf("%c\n%c===========================================\n",178,178);
system("pause");
}

/*
vlr = 0; i=0; j=0;

61

I:
{
j=0;
printf("\nInforme os do Itens do Grupo %d: E digite Q ou q para quebrar o grupo! \n",i+1);
//scanf("%i",&n);
J:
{
//scanf("%f",&vlr);
gets(ch);
//gets (ch);
//ch = atof(vlr);

if (ch[0]=='Q'||ch[0]=='q'){
goto N;
}

vlr=strtof(ch,NULL);
//if (vlr != -1){
mt[i][j-1] = vlr;
//printf("\n%16.2f",1010);
//}
//if (vlr != -1)
j=j+1;
goto J;
}

N:
if (i==0){
j=j-1;
}
vtn[i] = j;

62

printf("\n\nI=%i J= %i",i,j);
i = i+1;
if (i != k){
goto I;
} else goto C;
}
C:
*/

hFuncao.cpp

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <dos.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <ctype.h>
#include <cstdlib>
#include <string.h>

void gotoxy(int x, int y);


float Calc(float Eni1, float k, float Eni2, float Eni3, float Si);
float **aloca_mtr(int l, int c);
void Sobre();
int Temas();
void DefineTema(int opca);
int wherey ();
int wherex ();

63

void SoFloat(double *num);


void SoInteiro(int *num, int limit);
void CarregaLogo();
float ANOVA(float **mt, int *vtn, int k);
void Lembretes();
void Ajuda();
float **OrdenaMatriz(float **mt, int *vtn, int k, char Op);

void CarregaLogo()
{
system("color f2");
printf("\n");
printf("

%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178);

printf("
%c
%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178);
printf(" %c%c%c%c

%c%c%c

printf(" %c%c%c%c%c%c

%c

%c%c%c%c%c

%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178);
%c%c\n",178,178,178,178,178,178,178,178,178);

printf("
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c%c%c%c%c%c%c
%c%c%c%c
%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178);
printf(" %c%c%c%c%c

%c%c%c

\n",178,178,178,178,178,178,178,178);

printf("
%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c
%c%c%c %c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c
%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178);
printf("
%c%c%c%c %c%c%c
%c%c%c
%c%c%c %c%c%c %c%c%c %c%c%c
%c%c%c%c
%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c%c

%c%c%c%c%c

%c%c%c%c%c

%c%c%c

%c%c%c%c%c%c%c%c

64

%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c%c %c%c%c%c%c
%c%c%c %c%c%c%c%c%c%c
%c%c%c%c%c
%c%c
%c%c%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c%c %c%c%c
%c%c%c %c%c%c %c%c%c%c %c%c%c
%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c %c%c%c
%c%c%c %c%c%c %c%c%c %c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf(" %c%c%c
%c%c%c %c%c %c%c%c%c %c%c%c%c%c%c%c%c %c%c%c %c%c%c
%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178);
printf(" %c%c%c%c%c%c%c%c %c%c%c%c %c%c%c%c%c%c%c%c%c %c%c%c%c%c%c%c%c
%c%c%c
%c%c%c
%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178);

printf("
%c%c%c%c%c%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178);

%c%c%c%c%c

printf("
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178);
printf("
%c%c%c%c%c%c%c%c
%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c%c%c
%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c
%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
\n",178,178,178,178,178,178,178,178,178,178,178,178);

%c
%c%c%c%c%c
%c%c%c%c%c%c%c
%c%c%c%c%c

%c%c%c%c%c%c%c%c%c

%c

gotoxy(45,20);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c
%c%c%c",201,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,20
5,205,205,205,205,205,205,205,205,205,205,205,187);

65

gotoxy(37,21);
printf("Loading ");
gotoxy(45,21);
printf("%c

%c",186,186);

gotoxy(45,22);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c
%c%c%c",200,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,20
5,205,205,205,205,205,205,205,205,205,205,205,188);

for (int i=46;i<78;i++){


gotoxy(i,21);
printf("%c",178);
Sleep(20);
}

system("title Sistema de Analise");


//return(i);
}

int wherey ()
{
CONSOLE_SCREEN_BUFFER_INFO info;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
return info.dwCursorPosition.Y + 1;
}

int wherex ()
{
CONSOLE_SCREEN_BUFFER_INFO info;

66

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
return info.dwCursorPosition.X + 1;
}

void gotoxy(int x, int y)


{
COORD coord;
HANDLE handle;
handle = GetStdHandle(STD_OUTPUT_HANDLE);
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(handle, coord);
}

float Calc(float Eni1, float k, float Eni2, float Eni3, float Si)
{
float Vlr;
//Vlr = (Eni1/(k-1))/(((Eni2-1)*Si)/(Eni3-1));
Vlr = (Eni1/(k-1))/((Eni2-1)/(Eni3));
return Vlr;
}

#define SIZE 10

int tstfloat(void)
{
char buf[SIZE];
int result = 0;
float value = 154.78;

result = snprintf(buf, SIZE, "%f", value);


if (result >= SIZE)

67

printf("The string has been truncated\n");

printf("The string value of the floating value = %s\n", buf);

return 0;
}

void Sobre()
{
system("cls");
printf("%c SOBRE:\n",178);
printf(" Software de Calculo de ANOVA (Analise de Variancia) ");
printf("\n\n Academicos:\n\n");
printf(" Carlos Augusto Schaefer\n ");
printf(" Dalton Luis Seibt Steffens\n");
printf(" Eduardo Ivan Kuhn\n");
printf("\n\nOrientadores da Pratica Profissional Direcionada I ");
printf("\n(software Aplicado a Estatistica):\n\n");
printf(" Ms. Adalberto Lovato\n");
printf(" Ms. Carlos Zuanazzi\n");
printf(" Ms. Marcos Garrafa\n");
printf(" Ms. Sandra Rejane Zorzo Peringer\n");
printf("\n\n\n\n Bacharelado em Sistemas de informacao 2 Semestre\n\n Novembro de 2011 \n");

getchar();
}

float **aloca_mtr(int l, int c)


{
float **m;
int i;

68

if (l<1||c<1){
printf ("Erro: Parametro invalido");
return (NULL);
}
m=(float **)malloc(l*sizeof(float*));
if (m==NULL){
printf ("Erro: Memoria insuficiente");
return (NULL);
}
for (i=0;i<l;i++)
m[i]=(float *)malloc(c*sizeof(float));
if (m==NULL){
printf ("Erro: Memoria insuficiente");
return (NULL);
}
return(m);
}

int Temas()
{
system("cls");
printf("%c DEFININDO O TEMA:",178);
int opca;
printf("\n%c====================================================\n",178);
printf("%c 0 - Amarelo/Azul \n",178);
printf("%c 1 - Azul/Verde \n",178);
printf("%c 2 - Vermelho/Azul Claro \n",178);
printf("%c 3 - Roza/Vermelho \n",178);
printf("%c 4 - Vermelho/Roxo \n",178);
printf("%c 5 - Cinza/Amarelo \n",178);
printf("%c 6 - Azul/Cinza \n",178);
printf("%c 7 - Preto/Azul \n",178);

69

printf("%c 8 - Branco/Preto \n",178);


printf("%c 9 - Verde/Branco \n",178);

printf("\n%c Digite o numero correspondete a opcao: ",178);


scanf("%d",&opca);
printf("\n%c====================================================\n",178);
return(opca);
}

void DefineTema(int opca)


{
if (opca==0)
system("color 12");
if (opca==1)
system("color 23");
if (opca==2)
system("color 34");
if (opca==3)
system("color 45");
if (opca==4)
system("color 54");
if (opca==5)
system("color 68");
if (opca==6)
system("color 83");
if (opca==7)
system("color 90");
if (opca==8)
system("color 0f");
if (opca==9)
system("color f2");

70

void SoFloat(double *num)


{
char ch,tecla[50];
int x,y,i,cont=0,ponto=0;

for(i=0;i<50;i++)
tecla[i]=' ';

while(ch!=13)
{
// Pega a tecla digitada
ch = getch();
// Menos
if(cont==0 && ch=='-')
i=1;
else
// Ponto
if(ch=='.' && ponto==0)
{
i=1;
ponto=1;
}
else
// Vrgula
if(ch==',' && ponto==0)
{
i=1;
ponto=1;
ch='.';
}

71

else
// Backspace
if(ch==8 && cont>0)
{
// Retorna a localizao de x e y na tela
x = wherex();
y = wherey();

// Retrocede em uma coluna o printf


gotoxy(x-1,y);
// Sobrepe ao nmero espao vazio
printf("%c",32);

i=0;
cont--;

// Ponto deletado
if(tecla[cont]=='.')
ponto=0;

// Zera o valor atual


tecla[cont]=' ';
// Retrocede o cursor
gotoxy(x-1,y);
}
else
// Sem valor
if(cont==0 && ch==13)
{
ch=' ';
i=0;
}

72

else
// Ponto ou menos sem valor
if(cont==1 && ch==13 && (tecla[cont-1]=='-' || tecla[cont-1]=='.'))
{
ch=' ';
i=0;
}
else
// Menos e ponto sem valor
if(cont==2 && ch==13 && tecla[cont-1]=='.' && tecla[cont-2]=='-')
{
ch=' ';
i=0;
}
else
// Retorna um valor
// Se diferente de 0 -> tecla um nmero
i = isdigit(ch);
if(i!=0 && ch!=13)
{
// Imprime a tecla digitada
printf("%c",ch);
// Armazena na string
tecla[cont]=ch;
cont++;
}

}
// Transforma char em double
*num = atof(tecla);
printf("\n");
}

73

void SoInteiro(int *num, int limit)


{
char ch,tecla[5];
int x,y,i,cont=0,ponto=0;

for(i=0;i<4;i++)
tecla[i]=' ';

while(ch!=13)
{
// Pega a tecla digitada
ch = getch();
// Backspace
if(ch==8 && cont>0)
{
// Retorna a localizao de x e y na tela
x = wherex();
y = wherey();

// Retrocede em uma coluna o printf


gotoxy(x-1,y);
// Sobrepe ao nmero espao vazio
printf("%c",32);

i=0;
cont--;

// Ponto deletado
if(tecla[cont]=='.')
ponto=0;

74

// Zera o valor atual


tecla[cont]=' ';
// Retrocede o cursor
gotoxy(x-1,y);
}
else
if(cont==0 && ch==48)
{
ch=' ';
i=0;
}
else
if(cont==0 && ch==13)
{
ch=' ';
i=0;
}
else
// Retorna um valor
// Se diferente de 0 -> tecla um nmero
i = isdigit(ch);

if(i!=0 && cont<limit && ch!=13)


{
// Imprime a tecla digitada
printf("%c",ch);
// Armazena na string
tecla[cont]=ch;
cont++;
}
}

75

// Transforma char em inteiro


*num = atoi(tecla);
printf("\n");
}

float ANOVA(float **mt, int *vtn, int k)


{
float xl2 = 0;
float med = 0;
int i = 0;
int j = 0;
int Maior = 0;
float vt[k];
float RESPOSTA;
float fAUX = 0;
int aux = 0;
float **mtC;
int Mat[10000];
float vtcorel[k];
float vtcorelQ[k];
float vtcl[k];
float SQ1=0, SQ2=512, SQT=640.95;
float gl1=3, gl2=16, glT=19;
float MQ1=42.98333, MQ2=32;

float vtcorelC[k];
float vtcorelQC[k];
float vtclC[k];
float somacl, somaclC, ANOVA1,ANOVA2;

for (i=0; i<k;i++){


med = 0;

76

for (j=0; j<=vtn[i];j++)


med = med + mt[i][j];

med = med/j;
vt[i]=med;
printf("\n%c Media da Amostra %i = %8.4f",178,i+1,med);//X Uma Barra
xl2 = xl2 + med;
}

//INFORMA A MEDIA GERAL DE TODAS AS MEDIAS


xl2 = xl2/k;
printf("\n%c----------------------------------------------------",178);
printf("\n%c MEDIA GERAL = %8.4f",178,xl2);

printf("\n");
for (i=0;i<k;i++){
vtcorel[i]=vt[i]-xl2;
printf("\n%c Correlacao da Amostra %i = %8.4f",178,i+1,vtcorel[i]);
}
printf("\n");
for (i=0;i<k;i++){
vtcorelQ[i]=pow(vtcorel[i],2);
printf("\n%c Correlacao do quadrado da Amostra %i = %8.4f",178,i+1,vtcorelQ[i]);
}
printf("\n");
for (i=0;i<k;i++){
vtcl[i]=(vtn[i]+1)*vtcorelQ[i];
//

printf("\n qnt = %d",vtn[i]+1);

printf("\n%c Correl da Amostra %i = %8.4f",178,i+1,vtcl[i]);


SQ1=SQ1+vtcl[i];
}
somacl=0; ANOVA1=0;

77

for (i=0;i<k;i++){
somacl=somacl+vtcl[i];
}
//printf("\n SOMA = %8.4f",somacl);
ANOVA1=somacl/(k-1);

//printf("\n\n\n%c SUPER ANOVA = %8.4f",178,ANOVA1);

for(i=0; i<k; i++){


Mat[i]=vtn[i];
}

for(i=0; i<k; i++)


for(j=0; j<k-1; j++)
if(Mat[j]>Mat[j+1]){
aux=Mat[j];
Mat[j]=Mat[j+1];
Mat[j+1]=aux;
}

Maior = Mat[k-1];

mtC=aloca_mtr(k,10000);
for (i=0;i<k;i++){
for (j=0;j<=Maior;j++){
fAUX=mt[i][j]-vt[i];
mtC[i][j]=pow(fAUX,2);
}
}

for (i=0;i<k;i++){
fAUX=0;

78

for (j=0;j<=Maior;j++){
fAUX=fAUX+mtC[i][j];
}
vtcorelC[i]=fAUX;
}

for (i=0;i<k;i++){
fAUX=vtcorelC[i]/Maior;
vtcorelQ[i]=fAUX;
}

somaclC=0;
for (i=0;i<k;i++){
fAUX=Maior*vtcorelQ[i];
somaclC=somaclC+fAUX;
}

fAUX=0;
for (i=0;i<k;i++){
fAUX=fAUX+Maior;
}
int yi;
int xi;
ANOVA2=somaclC/fAUX;
RESPOSTA=ANOVA1/ANOVA2;
printf("\n%c",178);
printf("\n%c",178);
printf("\n%c ANOVA",178);
xi=wherex();
yi=wherey();
printf("\n%c----------------------------------------------------------------------",178);
printf("\n%c Fonte da Variacao |

SQ

gl

MQ

| F

|",178);

79

printf("\n%c----------------------------------------------------------------------",178);
printf("\n%c Entre grupos

| %7.2f

",178,SQ1);

gotoxy(xi+25,yi+3);
printf("|%7.2f

",gl1);

gotoxy(xi+38,yi+3);
printf("|%7.2f

",MQ1);

gotoxy(xi+52,yi+3);
printf("| %7.5f ",RESPOSTA);
gotoxy(xi+62,yi+3);
printf("|");

printf("\n%c Dentro dos Grupos | %5.2f

",178,SQ2);

gotoxy(xi+25,yi+4);
printf("| %5.2f",gl2);
gotoxy(xi+38,yi+4);
printf("| %5.2f",MQ2);
gotoxy(xi+52,yi+4);
printf("|");
gotoxy(xi+62,yi+4);
printf("|");
printf("\n%c

printf("\n%c Total

|
| %5.2f

gotoxy(xi+25,yi+6);
printf("| %5.2f

");

gotoxy(xi+48,yi+6);
printf("

|",178,SQT,glT);

return(RESPOSTA);
}

void Ajuda()

|
",178);

|",178);

80

{
system("cls");
printf("AJUDA:\n");
FILE *p,*fp;
char c[10],d,ctr[1];
p=fopen("Ajuda.txt","r");
while (!feof(p)){
d=getc(p);
printf("%c",d);
}

printf("\n\nPrecione ENTER para voltar ao MENU");


getchar();

fclose(p);
}

float **OrdenaMatriz(float **mt, int *vtn, int k, char Op)


{

int im1,im2,im3,q,m,i;
float aux;
float mataux[10000],mataux1[10000];
m=0;
for (m=0;m<k;m++){
for (i=0;i<=vtn[m];i++){
for (im1=0;im1<=vtn[m];im1++){
mataux[im1] = mt[m][im1];
}

if (Op=='C'){
for (im2=0;im2<vtn[m];im2++){

81

for (q=0;q<=vtn[m]-1;q++){
if(mataux[q]>mataux[q+1]){
aux=mataux[q];
mataux[q]=mataux[q+1];
mataux[q+1]=aux;
}
}
}
} else {
for (im2=0;im2<=vtn[m];im2++){
for (q=0;q<=vtn[m]-1;q++){
if(mataux[q]<mataux[q+1]){
aux=mataux[q];
mataux[q]=mataux[q+1];
mataux[q+1]=aux;
}
}
}
}

for (im3=0;im3<=vtn[m];im3++){
mt[m][im3]=mataux[im3];
}
}
}
//return(mt);

hFunLogo.cpp

#include <stdio.h>

82

#include <stdlib.h>
#include <iostream>
#include <dos.h>
#include <windows.h>
#include <conio.h>
//#include <bios.h>
#include <time.h>
#include <math.h>
#include <ctype.h>

#include "hFuncoes.h"

void CarregaLogo();

void CarregaLogo()
{
system("color f2");
printf("\n");
printf("

%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178);

printf("
%c
%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178);
printf(" %c%c%c%c

%c%c%c

printf(" %c%c%c%c%c%c

%c

%c%c%c%c%c

%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178);
%c%c\n",178,178,178,178,178,178,178,178,178);

printf("
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c%c%c%c%c%c%c
%c%c%c%c
%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178);
printf(" %c%c%c%c%c

%c%c%c

\n",178,178,178,178,178,178,178,178);

printf("
%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178);

83

printf("
%c%c%c%c
%c%c%c%c
%c%c%c %c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c%c
%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178);
printf("
%c%c%c%c %c%c%c
%c%c%c
%c%c%c %c%c%c %c%c%c %c%c%c
%c%c%c%c
%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c %c%c%c%c%c
%c%c%c%c%c
%c%c%c %c%c%c%c%c%c%c%c
%c%c%c%c%c
%c%c%c%c%c%c%c%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c%c %c%c%c%c%c
%c%c%c %c%c%c%c%c%c%c
%c%c%c%c%c
%c%c
%c%c%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c%c %c%c%c
%c%c%c %c%c%c %c%c%c%c %c%c%c
%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c %c%c%c
%c%c%c %c%c%c %c%c%c %c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf(" %c%c%c
%c%c%c %c%c %c%c%c%c %c%c%c%c%c%c%c%c %c%c%c %c%c%c
%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178);
printf(" %c%c%c%c%c%c%c%c %c%c%c%c %c%c%c%c%c%c%c%c%c %c%c%c%c%c%c%c%c
%c%c%c
%c%c%c
%c%c%c
%c%c%c%c%c%c%c%c%c
%c%c
%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178
,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
178,178,178,178,178,178,178,178,178);

printf("
%c%c%c%c%c%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178);

%c%c%c%c%c

printf("
%c%c%c%c%c%c%c%c
%c%c%c%c%c%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,1
78,178);
printf("
%c%c%c%c%c%c%c%c
%c%c%c\n",178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c%c%c
%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
%c%c%c%c
%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);

%c
%c%c%c%c%c
%c%c%c%c%c%c%c

84

printf("
%c
%c%c%c%c%c%c
\n",178,178,178,178,178,178,178,178,178,178,178,178,178,178,178);
printf("
\n",178,178,178,178,178,178,178,178,178,178,178,178);

%c%c%c%c%c

%c%c%c%c%c%c%c%c%c

%c

gotoxy(45,20);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c
%c%c%c",201,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,20
5,205,205,205,205,205,205,205,205,205,205,205,187);
gotoxy(37,21);
printf("Loading ");
gotoxy(45,21);
printf("%c

%c",186,186);

gotoxy(45,22);
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c
%c%c%c",200,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,20
5,205,205,205,205,205,205,205,205,205,205,205,188);

for (int i=46;i<78;i++){


gotoxy(i,21);
printf("%c",178);
Sleep(20);
}

system("title Sistema de Analise");


//return(i);
}

hANOVA.cpp

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

85

#include <ctype.h>

#include "hFuncoes.h"

float ANOVA1(float **mt, int *vtn, int k);

float ANOVA1(float **mt, int *vtn, int k)


{
float xl2 = 0;
float med = 0;
int i = 0;
int j = 0;
int Maior = 0;
float vt[k];
float RESPOSTA;
float fAUX = 0;
int aux = 0;
float **mtC;
int Mat[10000];
float vtcorel[k];
float vtcorelQ[k];
float vtcl[k];

float vtcorelC[k];
float vtcorelQC[k];
float vtclC[k];
float somacl, somaclC, ANOVA1,ANOVA2;

for (i=0; i<k;i++){


med = 0;
for (j=0; j<=vtn[i];j++)

86

med = med + mt[i][j];

med = med/j;
vt[i]=med;
printf("\n%c Media da Amostra %i = %8.4f",178,i+1,med);//X Uma Barra
xl2 = xl2 + med;
}

//INFORMA A MEDIA GERAL DE TODAS AS MEDIAS


xl2 = xl2/k;
printf("\n%c----------------------------------------------------",178);
printf("\n%c MEDIA GERAL = %8.4f",178,xl2);

printf("\n");
for (i=0;i<k;i++){
vtcorel[i]=vt[i]-xl2;
printf("\n%c Correlacao da Amostra %i = %8.4f",178,i+1,vtcorel[i]);
}
printf("\n");
for (i=0;i<k;i++){
vtcorelQ[i]=pow(vtcorel[i],2);
printf("\n%c Correlacao do quadrado da Amostra %i = %8.4f",178,i+1,vtcorelQ[i]);
}
printf("\n");
for (i=0;i<k;i++){
vtcl[i]=(vtn[i]+1)*vtcorelQ[i];
//

printf("\n qnt = %d",vtn[i]+1);

printf("\n%c Correl da Amostra %i = %8.4f",178,i+1,vtcl[i]);


}
somacl=0; ANOVA1=0;
for (i=0;i<k;i++){
somacl=somacl+vtcl[i];

87

}
//printf("\n SOMA = %8.4f",somacl);
ANOVA1=somacl/(k-1);

//printf("\n\n\n%c SUPER ANOVA = %8.4f",178,ANOVA1);

for(i=0; i<k; i++){


Mat[i]=vtn[i];
}

for(i=0; i<k; i++)


for(j=0; j<k-1; j++)
if(Mat[j]>Mat[j+1]){
aux=Mat[j];
Mat[j]=Mat[j+1];
Mat[j+1]=aux;
}

Maior = Mat[k-1];

mtC=aloca_mtr(k,10000);
for (i=0;i<k;i++){
for (j=0;j<=Maior;j++){
fAUX=mt[i][j]-vt[i];
mtC[i][j]=pow(fAUX,2);
}
}

for (i=0;i<k;i++){
fAUX=0;
for (j=0;j<=Maior;j++){
fAUX=fAUX+mtC[i][j];

88

}
vtcorelC[i]=fAUX;
}

for (i=0;i<k;i++){
fAUX=vtcorelC[i]/Maior;
vtcorelQ[i]=fAUX;
}

somaclC=0;
for (i=0;i<k;i++){
fAUX=Maior*vtcorelQ[i];
somaclC=somaclC+fAUX;
}

fAUX=0;
for (i=0;i<k;i++){
fAUX=fAUX+Maior;
}

ANOVA2=somaclC/fAUX;
RESPOSTA=ANOVA1/ANOVA2;
return(RESPOSTA);
}

REFERNCIAS

ANDRADE, Gabriel. O Que So Linguagens de Programao? Disponvel em


<http://www.infoescola.com/informatica/o-que-sao-linguagens-de-programacao>.
On-line. Acesso em 01 set. 2010.
ARA, Amilton Braio; MUSETTI, Ana Villares; SCHNEIDERMAN, Boris. Introduo
Estatstica. So Paulo: Edgard Blucher, 2003.
CORMEN, Thomas H. LEISERSON, Charles E. RIVEST, Ronald L. STEIN, Clifford.
Algoritmos. Traduo da 2 ed. Rio de Janeiro: Editora Campus, 2002.
FACHIN, Odlia. Fundamentos de metodologia. So Paulo: Saraiva, 2003.
FERREIRA, Daniel Furtado. Estatstica Bsica. Minas Gerais: UFLA, 2005.
KARMEL, P.H.; POLASEK M. Estatstica Geral E Aplicada Para Economistas.
So Paulo: Atlas, 1972.
LINTHICUM, Dave. JOHNSON, Marcus. MONITTO, Lisa Ann. MUNRO,Jay. PERRY,
Greg. VEALE, David. Introduo a programao. Rio de Janeiro: Campus, 1993.
LOVATO, Adalberto; EVANGELISTA, Mrio L. S.; GULLICH, Roque I. da C.
Metodologia da Pesquisa. 2 ed, Trs de Maio: Setrem, 2007.
MANZANO, Jos Augusto; OLIVEIRA, Jayr Figueiredo de. Algoritmos. Lgica para
desenvolvimento de programao de Computadores. So Paulo: rica, 2004.
MATTAR, Joo. Metodologia Cientfica Na Era Da Informtica. So Paulo:
Saraiva, 2008.

90

NETO, Joo Augusto Mattar. Metodologia Cientifica Na Era Da Informao. So


Paulo: Saraiva, 2003.
OLIVEIRA, Silvio Luiz de. Tratado De Metodologia Cientfica. So Paulo: Pioneira,
1999.
PINHEIRO, Jose Mauricio dos Santos. Da iniciao cientifica ao TCC uma
abordagem para os cursos de tecnologia. Rio de Janeiro: Cincia Moderna, 2010.
RIBEIRO JUNIOR, Jos Ivo. Anlises estatsticas no Excel. Minas Gerais: UFV,
2008.
SCHILDT, Herbert. C Completo e Total. So Paulo: Pearson, 1997.

Das könnte Ihnen auch gefallen