Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
JFiorini

Ajuda com Exercicio do demo

Recommended Posts

Bom rapaziada ....

Meu problema é o seguinte ....

Eu tenho que fazer um trab. de faculdade e to me batendo..

To tentando entender lendo livros mais ta bem difícil...

Quero uma ajuda , um caminho ai de quem puder me ajudar....

O problema:

1- Tenho que captura um valor fornecido pelo usuario que dira quantos retangulos terao e capturar as coordenadas de cada retangulo....

2- Tenho que somar a area de todos os retangulos fornecidos....

3- porém tenho que desconsiderar as areas de sobreposiçao para nao calcular 2 vezes a mesma area....

EXEMPLO:

USUARIO FORNECE NUMERO 3

E da as coordenadas

(3,8), (12,6)

(2,7),(17,3)

(4,15),(20,6)

Nesse exemplo o 3,8 Sao coordenadas da extremidade superiorda esquerda

E o 12 ,6 sao da extremidade inferio direita.... X1 Y1 X2 Y2 respectivamente

Eu nao sei se ta bem claro ...

Mas qualquer coisa posso esclarecer duvidas....

Espero que me ajudem

Atenciosamente No Aguardo....

Editado por JFiorini

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Pow galera vamo da uma ajuda ai por favor....

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Bom eu to me virando como posso enquanto espero alguem que intenda...

Sei que ta bem podrao .....

Mas ta difícil entender isso...

Alguem sabe uma maneira de simplificar isso ....

Fazendo usando algo mais eficiente...

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main(){

int nfotos, i, x1, x2, y1, y2, area1,areatot,areafor1,areafor2,areafor3,areafor4;

int x3,x4,y3,y4,area2;

int x5,x6,y5,y6,area3,area4,area5,area6,area7;

printf("Digite o conjunto de fotos da area desejada :");

scanf("%d",&nfotos);

if(nfotos==3){

x1=2;

x2=7;

y1=6;

y2=2;

area1=(x2-x1)*(y1-y2);

x3=4;

x4=13;

y3=15;

y4=9;

area2=(x4-x3)*(y3-y4);

x5=8;

x6=17;

y5=11;

y6=6;

area3=(x6-x5)*(y5-y6);

areafor1=(x4-x5)*(y5-y4);

areatot=(area1+area2+area3-areafor1);

printf("\n %d %d %d %d \n %d %d %d %d \n %d %d %d %d \n",x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6);

printf("\n");

}

if(nfotos==6){

x1=4;

x2=11;

y1=12;

y2=4;

area1=(x2-x1)*(y1-y2);

x3=8;

x4=22;

y3=7;

y4=2;

area2=(x4-x3)*(y3-y4);

x5=19;

x6=26;

y5=13;

y6=5;

area3=(x6-x5)*(y5-y6);

int x7 = 9;

int y7 = 15;

int x8 = 22;

int y8 = 10;

area4=(x8-x7)*(y7-y8);

int x9 = 12;

int y9 = 9;

int x10 = 18;

int y10 = 8;

area5=(x10-x9)*(y9-y10);

int x11 = 11;

int y11 = 19;

int x12 = 19;

int y12 = 15;

area6=(x12-x11)*(y11-y12);

areafor1=(x11-x3)*(y3-y2);

areafor2=(x2-x7)*(y1-y8);

areafor3=(x8-x5)*(y5-y8);

areafor4=(x8-x12)*(y3-y6);

areatot=(area1+area2+area3+area4+area5+area6-areafor1-areafor2-areafor3-areafor4);

printf("\n %d %d %d %d \n %d %d %d %d \n %d %d %d %d \n %d %d %d %d \n %d %d %d %d \n %d %d %d %d \n",x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8,x9,y9,x10,y10,x11,y11,x12,y12);

printf("\n");

}

printf("A area e de: %d", areatot);

printf("\n\n");

system("PAUSE");

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Afff usa struct, mano vei. Assim seu programa ficara super resumido e mais fácil de analisar erros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saca só um exercicio que fiz a mais tempo e que é parecido com esse seu ai:

//4. Considere uma estrutura (struct) para representar um ponto no

//espaço 2D e implemente uma função que indique se um dado ponto p está

//localizado dentro ou fora de um retângulo. O retângulo é definido por

//seus vértices inferior esquerdo v1 e superior direito v2. A função

//deve retornar 1 caso o ponto esteja localizado dentro do retângulo, e

//0 caso contrário.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

#include <math.h>

typedef struct ponto

{

float cord_x;

float cord_y;

}ponto;

typedef struct retangulo

{

struct ponto v1;

struct ponto v2;

}retangulo;

void X_maior(retangulo *A,float *x_maior,float *x_menor);

void Y_maior(retangulo *A,float *y_maior,float *y_menor);

int confere(float x_maior,float x_menor,float x,float y,float y_maior,float y_menor);

int main (int args, char* arg[])

{

retangulo A;

ponto v3;

ponto v4;

ponto p;

float x_maior,x_menor,

y_maior,y_menor;

printf("Digite a coordenada X do vertice 1\n");

scanf("%f",&A.v1.cord_x);

printf("\nDigite a coordenada Y do vertice 1\n");

scanf("%f",&A.v1.cord_y);

printf("Digite a coordenada X do vertice 2\n");

scanf("%f",&A.v2.cord_x);

printf("Digite a coordenada Y do vertice 2\n");

scanf("%f",&A.v2.cord_y);

v3.cord_x=A.v2.cord_x; //Definiçao para lados paralos com mesma dimensao

v3.cord_y=A.v1.cord_y; //Definiçao para lados paralos com mesma dimensao

v4.cord_x=A.v1.cord_x; //Definiçao para lados paralos com mesma dimensao

v4.cord_y=A.v2.cord_y; //Definiçao para lados paralos com mesma dimensao

printf("Retangulo definido por 4 coordenadas\n");

printf("v1;(%f , %f)\t v2;(%f , %f)\t\nv3;(%f , %f)\t v4;(%f , %f)",A.v1.cord_x,A.v1.cord_y,A.v2.cord_x,A.v2.cord_y,v3.cord_x,v3.cord_y,v4.cord_x,v4.cord_y);

printf("\nDigite as coordenadas do ponto o qual deseja verificar\n");

printf("Coordenada X:\n");

scanf("%f",&p.cord_x);

printf("Coordenada Y:\n");

scanf("%f",&p.cord_y);

printf("Ponto P:(%f , %f)\n",p.cord_x,p.cord_y);

X_maior(&A,&x_maior,&x_menor);

Y_maior(&A,&y_maior,&y_menor);

printf("\nMaior X: %f",x_maior);

printf("\nMaior Y: %f\n",y_maior);

if(confere(x_maior,x_menor,p.cord_x,p.cord_y,y_maior,y_menor)==0)

{

printf("\nPonto exterior ao retangulo");

}else

{printf("\nPonto interior ao retangulo");

}

getche();

}

void X_maior(retangulo *A,float *x_maior,float *x_menor)

{

if ((*A).v1.cord_x<(*A).v2.cord_x)

{

*x_maior=(*A).v2.cord_x;

*x_menor=(*A).v1.cord_x;

}else

{

*x_maior=(*A).v1.cord_x;

*x_menor=(*A).v2.cord_x;

}

}

void Y_maior(retangulo *A,float *y_maior,float *y_menor)

{

if ((*A).v1.cord_y<(*A).v2.cord_y)

{

*y_maior=(*A).v2.cord_y;

*y_menor=(*A).v1.cord_y;

}else

{

*y_maior=(*A).v1.cord_y;

*y_menor=(*A).v2.cord_y;

}

}

int confere(float x_maior,float x_menor,float x,float y,float y_maior,float y_menor)

{

if(x>x_menor & x<x_maior & y>y_menor & y<y_maior)

{

return 1;

}else

{

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×