11 de março de 2009

Projeto I

Possível solução da atividade 2 por Jonatas Balmant
Clique Aqui para Baixar

/***************************************************************************************

Universidade do Vale do Paraiba - Ciencia da Computacao

Materia : Projeto I - Exercicio II

Professor : Valdir Gil Pillat

Autor : Jonatas Balmant

Descricao : Trabalho de Manipulacao de Dados

Data : 10 mar 2009

***************************************************************************************/

//----( Bibliotecas )------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

//----( Inicio do Programa )-----------------------------------------------------------

void main()
{

//----( Declaracoes )-----------------------------------------------------------

char szLinha[50];
char szTemp[10];
double dbMedias[3] = {0,0,0};
double hpF_hF[3] = {0,0,0};
int cont = 0;
int nLinha = 0;
char *p; //--- PONTERIO PARA szLinha ---
int i,j,tam;
FILE *in, *out;
clrscr();

printf("Iniciando Leitura de Arquivo...");

//---( ABERTURA DOS ARQUIVOS )---------------------------------------------

if((in = fopen("C:\\Arquivo.txt", "rt"))== NULL)

{
printf("Nao Achei o Arquivo");
return;

}
if((out = fopen("C:\\RESULT.txt", "wt"))==NULL)
{
printf("Nao Consegui Criar o Arquivo");
return;
}

//---( CABECALHO )--------------------------------------------------------------------------

memset(szLinha,'\0',sizeof(szLinha));
fgets(szLinha,11,in);
fputs(szLinha,out);
fgets(szLinha,19,in);
fputs(szLinha,out);
fgets(szLinha,38,in); szLinha[35] = '\0';
fputs(szLinha, out);
sprintf(szLinha,"\thpF2-h'F\n");
fputs(szLinha, out);

//---( DADOS )-------------------------------------------------------------------------------

while((fgets(szLinha, 35, in))!= NULL)
{
hpF_hF[0] = 0; hpF_hF[1] = 0; hpF_hF[2] = 0;
nLinha++;
p = szLinha; //--- PONTEIRO PARA LINHA ---
cont=0;
//--- LOOP ATE ENCONTRAR O SEGUNDO "TAB" DA LINHA, POSICIONANDO O PONTEIRO NO LOCAL CERTO PARA O INICIO DA COLETA DOS DADOS

for(i = 0; i < 20; i++)
{
p++;
if(p[0] == '\t')
{
cont++;
if(cont == 2) { p++; break; }
}
}
memset(szTemp,'\0',sizeof(szTemp));
for(j = 0; j < 3; j++)
{
cont = 0;
for(i = 0; i < 10; i++)
{
if((p[i] == '\t') || (p[i] == '-'))
break;
cont++;
}

if((p[0] == '\t') || (p[0] == '-'))
{
dbMedias[j] = dbMedias [j] + 0;
p+=2;
}
else
{
strncpy(szTemp, p, cont);
szTemp[cont] = '\0';
hpF_hF[j] = atof(szTemp);
dbMedias[j] = dbMedias[j] + atof(szTemp);
p = p + (cont+1);
}
}
tam = strlen(szLinha);
if(szLinha[tam-1] == '\n') szLinha[tam-1] = '\0'; //--- RETIRA O CARACTER '\n' ---
fputs(szLinha,out);
sprintf(szLinha,"\t%5.0f\n",(hpF_hF[2] - hpF_hF[0]));
fputs(szLinha,out);
}

//---( RODAPE )---------------------------------------------------------------------------

sprintf(szLinha,"Medias\t\t%.1f\t%.1f\t%.1f\t\t\t%7.1f",dbMedias[0]/nLinha,dbMedias[1]/nLinha, dbMedias[2]/nLinha,(dbMedias[2] - dbMedias[0])/nLinha);
fputs(szLinha,out);
fclose(in);
fclose(out);
textcolor(10);
cprintf("\nArquivo \'Resultado\' Gerado com Sucesso!!");
getch();
}

9 de março de 2009

Todos os Dedos, Todos os Dedos, Onde Estão?

Tentando seguir a mesma linha de raciocínio...


O que acharam? Será que é nisso que ele pensou?
Quantos vocês acham que são iguais?
"Tirando o dedão que esta sobrando ali!!! ^^"

História de hoje: A(s) Multa(s)!

6 de março de 2009

Projeto I

Exercício 2 - Trabalhar com arquivos em C, instruções: (Entrega até: 26/03/2009) .

No segundo projeto da disciplina Projeto I são passados arquivos de redução de dados das ionossondas do grupo de pesquisa de Física e Astronomia do IP&D, UNIVAP, para que cada grupo onde:

Estrutura do arquivo:

Redutor:
Data: 03/03/2005
UT LT h'F foF2 hpF2 SF ES
0.0808 21.0808 225 6.0 318 - N
0.1732 21.1732 222 6.1 316 - N
0.2532 21.2532 217 6.3 304 - N
0.3330 21.3330 227 6.3 306 - N
0.4232 21.4232 220 6.2 301 - N


Onde UT (Universal Time - hora Universal) e LT (Local Time - hora local), h'F é a altura da camada F, foF2 é a freqüência crítica da camada F, hpF2 altura do pico da camada F, SF spread F, ES esporádica.


Grupo Ciência da Computação


Grupo Nome Arquivo
1 Alberto Felipe D. Rodrigues 2003I01F.SJC
2 André Luiz Ribeiro de Sousa 2003I02F.SJC
3 Dalton D. Meira 2003I03F.SJC
4 Diogo Mira Watabayashi 2003I04F.SJC
5 Felipe Antonio Cardoso 2003I05F.SJC
6 Fernando Costa 2003I06F.SJC
7 Helio Tenoro dos Santos 2003I07F.SJC
8 Janderci Pereira da Silva 2003I08F.SJC
9 Leandro H. Mielle 2003I09F.SJC
10 Marcos Antonio Sanches 2003I10F.SJC
11 Rodolfo Sousa Guerra 2003I11F.SJC
12 Walter Azevedo 2003I12F.SJC
13 Jonatas Baltmant 2003I13F.SJC


O trabalho que cada grupo terá que realizar as seguintes operações sobre os dados:

- Ler o arquivo referente ao seu grupo (está na tabela acima);

- Calcular a média de: h'F, foF2 e hpF2;

- Calcular a diferença entre: hpF2 e h'F (hpF2 - h'F) e depois calcular a média desta coluna;

- Escrever o arquivo com as seguinte estrutura:


Redutor:
Data: 03/03/2005
UT LT h'F foF2 hpF2 SF ES hpF2-h'F
0.0808 21.0808 225 6.0 318 - N 93
0.1732 21.1732 222 6.1 316 - N 94
0.2532 21.2532 217 6.3 304 - N 87
0.3330 21.3330 227 6.3 306 - N 79
0.4232 21.4232 220 6.2 301 - N 81

Médias 222.2 6.18 309 86.8

5 de março de 2009

História de hoje: 2x+3x = ??

Ciência do Ambiente

Pesquisa: Lixo Eletrônico

- O que é?
- Qual o volume produzido (estimado) em escala mundial?
- Quais os componentes que mais contribuem para o lixo eletrônico?
- Quais as políticas de controle (Mundial, Nascional e Estadual)?
- Quais as formas de reutilização?
- Qual a legislação em vigência?
- Comente sobre as relações sociedade/lixo eletrônico.

4 de março de 2009

Programação II

Atividades quarta, 04 março 2009:

1 - Maior que 10: O processo de encontrar o maior valor (o máximo de um grupo de valores) é usado frequentemente em aplicações de computador. Por exemplo, um programa que determine o melhor em vendas, deve levar em conta o número de unidades vendidas por cada vendedor. O vendedor que vender mais unidades é o vencedor.

Escreva uma aplicação em Java que leia uma série de 10 inteiros e determine e imprima o maior entre eles. Seu programa deve usar, ao menos, as seguintes variáveis:
  • contador: para controlar o número de números inteiros processados (máximo 10)
  • numero: o inteiro digitado pelo usuário
  • maior: o maior número inteiro encontrado

2 - Quadrado Vazio: Escreva uma aplicação que solicita ao usuário que entre o tamanho do lado de um quadrado. Então, mostre um quadrado vazio com os lados formados por asteriscos (*). Seu programa deve aceitar quadrados nos tamanhos de 1 a 20.

3 - Palíndromo: Um palíndromo é uma sequência de caracteres que mantém o mesmo significado quando lida normalmente ou de trás para a frente. Por exemplo, cada um dos inteiros de 5 dígitos à seguir: 12321, 55555, 45554 e 11611. Escreva uma aplicação que lê um inteiro de 5 dígitos e determina se ele é um palíndromo. Se o número não tiver 5 dígitos exatamente, mostre uma mensagem de erro e permita ao usuário que ele entre um novo valor.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

Será que sai?


Preços do Q.G. Paintball

Equipamento
(colete, pescoceira, máscara, marcador)
R$25,00 – 1 hora com 100 bolinhas
R$ 8,00 – Macacão (Opcional)

Recarga
R$15,00 – recarga para 100 bolinhas
R$ 8,00 – recarga para 50 bolinhas

Horário de Funcionamento
- Terça a sexta das 17h às 23h
- Sábado, domingo e feriado das 14h às 23h

Rua George Eastman, 345 - Palmeiras de São José - 12237-640

3 de março de 2009

Projeto I

Bandeira do Leandro Hossaki
(Com a super estrela! xD)


#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int left, top, right, bottom;
int x, y, i;
int poly[12];

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

/* draw a rectangle */
left = 30;
top = 10;
right = 610;
bottom = 470;

setfillstyle(SOLID_FILL, 2);
setcolor(2);
rectangle(left,top,right,bottom);
floodfill(50,20,2);

setfillstyle(SOLID_FILL, 15);
setcolor(15);
rectangle(30,100,610,370);
floodfill(50,120,15);

setfillstyle(SOLID_FILL, 4);
setcolor(4);
rectangle(30,150,610,320);
floodfill(50,170,4);

poly[0] = 6;
poly[1] = 11;

poly[2] = 36;
poly[3] = 11;

poly[4] = 12;
poly[5] = 28;

poly[6] = 21;
poly[7] = 0;

poly[8] = 30;
poly[9] = 28;

for(i=1;i<=9;i+=2){
poly[i-1] = poly[i-1] * 5 + 210;
poly[i] = poly[i] * 5 + 165;
}

poly[10] = poly[0];
poly[11] = poly[1];

setfillstyle(SOLID_FILL,14);
setcolor(14);
fillpoly(6,poly);
x = poly[0] + (poly[2] - poly[0])/2;
y = poly[1] + 20;
floodfill(x,y,14);

/* clean up */
getch();
closegraph();
return 0;
}

História de hoje: The Flag!


Projeto I

Funções da biblioteca "graphics.h"

int gdriver = DETECT, gmode, errorcode;

Declaração de variáveis e inicialização do gdriver como DETECT, para forçar a detecção da controladora de vídeo.

initgraph(&gdriver, &gmode, "");

A função initgraph é chamada. Ela recebe dois parâmetros do tipo int * (pointer para inteiro) e uma string. O primeiro parâmetro é a controladora de vídeo usada ou então a constante DETECT para forçar a autodetecção. O segundo é o modo de vídeo usado. A função initgraph retorna nas varáveis gdriver e gmode a controladora detectada e o modo usado. O terceiro parâmetro é o diretório onde estão os drivers de software para o Turbo C acionar as funções gráficas. O diretório pode ser diferente na sua máquina.Quando não passamos nada nesse terceiro parâmetro o default é o diretório “C:\TC\BGI” .

errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

A função graphresult serve para retornar o código do erro. A constante grOk indica que não houve erro. Caso tenha havido erro, o programa termina mostrando na tela qual foi a mensagem de erro gerada pela função initgraph. Caso contrário, o modo gráfico será acionado e a tela ficará completamente preta.

cleardevice();
A função cleardevice() limpa a tela gráfica.

As funções getmaxx() e getmaxy() retornam com valores inteiros os valores máximos das coordenadas x e y da tela.

A função rectangle desenha um retângulo com o canto superior esquerdo no ponto (xsup, ysup) e o canto inferior direito no ponto (xinf, yinf). Possui o seguinte formato: rectangle(xsup, ysup, xinf, yinf).

A função circle desenha um círculo na tela gráfica, com centro em (xcentro,ycentro) e raio especificados em pixeis. Possui o seguinte formato:
circle(xcentro, ycentro, raio).

A função arc(xcentro, ycentro, angulo_inicial, angulo_final, raio) desenha um arco circular na tela gráfica. O centro é dado pelas coordenadas (xcentro, ycentro) e o raio por raio. Os parâmetros angulo_inicial e angulo_final especificam os ângulos inicial e final em graus, onde o 0 está na posição horizontal apontando para a direita e 90 na posição vertical apontando para cima.

A função setfillstyle(padrao,cor) ajusta o padrão e a cor de preenchimento gráfico atuais.

A função floodfill(x, y, borda) preenche uma área na tela gráfica ao redor do ponto dado por (x, y) com a cor e o padrão atuais de preenchimento, setados pela instrução setfillstyle(), até encontrar a cor especificada por borda. O padrao assume um dos valores abaixo.

A função setcolor(cor) é usada para alterar a cor de exibição dos gráficos, sendo o default a cor branca (WHITE). O parâmetro COR é um valor de 0 a 15 ( VGA) ou os nomes definidos como na função textcolor(COR) , que altera a cor dos caracteres no modo texto.

A função settextstyle(fonte, direcao, tamanho) seta o estilo das letras no modo gráfico. Há cinco fontes, Default, triplex, Small, Sans_serif e gótico. Direção = 0, para texto na horizontal e direção=1 para texto na vertical. Tamanho se refere ao tamanho das letras.

A função closegraph() cancela o modo gráfico estabelecido por initgraph() liberando a memória utilizada para gráficos.

A função line(x1, y1, x2, y2) desenha linha entre os pontos de coordenadas x1, y1 e x2, y2.

A função outtextxy(x, y, “texto”) escreve texto colocado dentro das aspas na posição x, y.

Cálculo II

Sábado dia 07 de março (próximo sábado) haverá aula das 13:00 horas às 15:30, para que no dia 20 de abril a gente possa imendar o feriado, sendo assim dia 20 e 21 de abril não precisaremos ir... \o/

2 de março de 2009

Tirinha

Espertinho

26 de fevereiro de 2009

História de hoje: A mina!?

(Clique na imagem para ampliar!)

23 de fevereiro de 2009

Projeto I

Bandeira do Brasil

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void estrela (int x, int y, int tam);

int main(void)
{
char msg[80];

/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

cleardevice();

//RETANGULO********************
setfillstyle(SOLID_FILL, GREEN);
setcolor(GREEN);
rectangle(0,50,getmaxx(),getmaxy()-50);
floodfill(10,60,GREEN);
//*****************************

//LOSANGO**********************
setfillstyle(SOLID_FILL, YELLOW);
setcolor(YELLOW);
line(23, getmaxy()/2,getmaxx()/2, 53);
line(getmaxx()/2, 53, getmaxx()-23, getmaxy()/2);
line(getmaxx()-23, getmaxy()/2, getmaxx()/2, getmaxy()-53);
line(getmaxx()/2, getmaxy()-53, 23, getmaxy()/2);
floodfill(50,245,YELLOW);
//*****************************

//CIRCULO**********************
setfillstyle(SOLID_FILL, BLUE);
setcolor(BLUE);
circle(getmaxx()/2,getmaxy()/2,150);
floodfill(325,255,BLUE);
//*****************************

//RETANGULO2*******************
setfillstyle(SOLID_FILL, WHITE);
setcolor(WHITE);
rectangle(getmaxx()/2-150,getmaxy()/2-10,getmaxx()/2+150,getmaxy()/2+10);
floodfill(getmaxx()/2,getmaxy()/2,WHITE);
//*****************************

//TEXTO************************
setcolor(BLACK);
settextstyle(TRIPLEX_FONT, HORIZ_DIR, 2);
sprintf(msg, "ORDEM E PROGRESSO");
outtextxy(getmaxx()/2-100,getmaxy()/2-13, msg);
//*****************************

//ESTRELAS
estrela(getmaxx()/2+40,getmaxy()/2-30,2);

estrela(getmaxx()/2+30,getmaxy()/2+30,2);
estrela(getmaxx()/2+60,getmaxy()/2+40,2);
estrela(getmaxx()/2-10,getmaxy()/2+50,2);
estrela(getmaxx()/2-40,getmaxy()/2+80,2);
estrela(getmaxx()/2-30,getmaxy()/2+30,2);
estrela(getmaxx()/2+20,getmaxy()/2+70,2);
estrela(getmaxx()/2-80,getmaxy()/2+80,2);
estrela(getmaxx()/2-90,getmaxy()/2+90,2);
estrela(getmaxx()/2-90,getmaxy()/2+50,2);
estrela(getmaxx()/2+40,getmaxy()/2+80,2);
estrela(getmaxx()/2+90,getmaxy()/2+55,2);
estrela(getmaxx()/2-50,getmaxy()/2+70,2);
estrela(getmaxx()/2-10,getmaxy()/2+77,2);
estrela(getmaxx()/2-30,getmaxy()/2+45,2);
estrela(getmaxx()/2-60,getmaxy()/2+55,2);
estrela(getmaxx()/2+60,getmaxy()/2+55,2);
estrela(getmaxx()/2+80,getmaxy()/2+50,2);
estrela(getmaxx()/2+90,getmaxy()/2+30,2);
estrela(getmaxx()/2+95,getmaxy()/2+70,2);
estrela(getmaxx()/2-50,getmaxy()/2+90,2);
estrela(getmaxx()/2-30,getmaxy()/2+90,2);
estrela(getmaxx()/2-20,getmaxy()/2+95,2);
estrela(getmaxx()/2,getmaxy()/2+80,2);
estrela(getmaxx()/2+10,getmaxy()/2+80,2);
estrela(getmaxx()/2,getmaxy()/2+100,2);
estrela(getmaxx()/2,getmaxy()/2+117,2);


/* clean up */
getch();
closegraph();
return 0;
}

//FUNCAO PARA DESENHAR ESTRELA
void estrela (int x, int y, int tam)
{
int met=tam/2;
int alt=tam+3;

//ESTRELA**********************
//PARTE DE CIMA
setfillstyle(SOLID_FILL, WHITE);
setcolor(WHITE);
line(x, y,x+tam, y);
line(x+tam, y, x+met, y-alt);
line(x+met, y-alt, x, y);
floodfill(x+1,y-1,WHITE);

//PARTE DA DIREITA
line(x+tam, y, x+tam, y+tam);
line(x+tam, y+tam, x+tam+alt, y+met);
line(x+tam+alt, y+met, x+tam, y);
floodfill(x+tam+1,y+1,WHITE);

//PARTE DA ESQUERDA
line(x, y, x, y+tam);
line(x, y+tam, x-alt, y+met);
line(x-alt, y+met, x, y);
floodfill(x-1,y+1,WHITE);

//PARTE DA DIREITA BAIXO
line(x+tam, y+met, x+met, y+tam);
line(x+met, y+tam, x+tam+met, y+tam+alt);
line(x+tam+met, y+tam+alt, x+tam, y+met);
floodfill(x+tam,y+tam+1,WHITE);

//PARTE DA ESQUERDA BAIXO
line(x, y+met, x+met, y+tam);
line(x+met, y+tam, x-met, y+tam+alt);
line(x-met, y+tam+alt, x, y+met);
floodfill(x,y+tam+1,WHITE);

floodfill(x+1,y+1,WHITE);

//*****************************
}

21 de fevereiro de 2009

Vídeo

Hamster Procurado!

o.O
Só prá descontrair...



20 de fevereiro de 2009

Projeto I

Tentativa de Estrela! xD

//Se ajudar em algo já ta bom!

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{

int x,y;

int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();

if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

cleardevice();

x=getmaxx()/2-50;
y=getmaxy()/2-50;

//CENTRO*********************************
setfillstyle(SOLID_FILL, WHITE);
setcolor(WHITE);
line(x, y,x+80, y);
line(x, y, x-30, y+80);
line(x+80, y, x+110, y+80);
line(x+110, y+80, x+40, y+110);
line(x+40, y+110, x-30, y+80);
floodfill(x+1,y+1,WHITE);
//*********************************************

//PONTA DE CIMA***********************
line(x, y, x+40, y-110);
line(x+40, y-110, x+80, y);
floodfill(x+1,y-1,WHITE);
//********************************************

//PONTA DIREITA***********************
line(x+80, y, x+190, y);
line(x+190, y, x+110, y+80);
floodfill(x+80+1,y+1,WHITE);
//********************************************

//PONTA ESQUERDA**********************
line(x, y, x-110, y);
line(x-110, y, x-30, y+80);
floodfill(x-1,y+1,WHITE);
//**********************************************

//PONTA DIREITA DE BAIXO**************
line(x+110, y+80, x+150, y+190);
line(x+150, y+190, x+40, y+110);
floodfill(x+110,y+90+1,WHITE);
//**********************************************

//PONTA ESQUERDA DE BAIXO*************
line(x-30, y+80, x-80, y+190);
line(x-80, y+190, x+40, y+110);
floodfill(x-30+1,y+80+1,WHITE);
//*************************************************

getch();
closegraph();
return 0;

}

Horário

Projeto I

Falando sério agora! ^^
Quem quiser baixar um mini tutorial de como utilizar a biblioteca "graphics.h" clique aqui!

Abaixo alguns exemplos:

Exemplos:
  1. Escreva uma função "opengraph" que inicialize o modo gráfico utilizando as funções "detectgraph" e "initgraph".
    Em seguida escreva um programa que utilize essa função e exiba uma sequência de quatro círculos de diferentes cores para visualização do modo, bem como o modo em uso.
    Solução: ini_graf.c

  2. Faça um programa capaz de desenhar um círculo, um quadrado ou uma reta no estilo de preenchimento e cor determinadas pelo usuário.
    Solução: desenha.c

  3. Crie uma função que gere um gráfico de barras verticais a partir de 5 números (positivos) de entrada.
    Solução: graf_bar.c

  4. Crie uma função que gere um gráfico de pizza a partir de 5 números (positivos) de entrada.
    Solução: graf_piz.c

  5. Utilize a função e "outtextxy" para esvrever legendas dos valores de entrada nos gráficos dos exercícios 3 e 4.
    Solução: lege_bar.c
    Solução: lege_piz.c

  6. Escreva um programa que permita mover um círculo pela tela utilizando as setas do teclado.
    Solução: mov_circ.c

p.s. Essa 6 é bem interessante!

19 de fevereiro de 2009

Projeto I

AhhhhhHhhH!!! To vendo tudo em números!!
Minha Bandeira! Ai ta pronta! Terminei, foi fácil só peguei do google imagens! rsrsr


p.s. Será que eu consigo fazer todas as estrelas?