Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - fabianekggg

#1
Java / Cuadrado y circulo con JFrame
15 Septiembre 2018, 07:08 AM
Hola. Soy muy principante y me gustaría saber cómo puedo crear y programar dos nuevas clases que permitan conceptualizar un cuadrado y un circulo respectivamente. Considerando utilizar la clase Punto o Linea, dependiendo de las necesidades de la función que te permita dibujar en el marco (JFrame).

Estas son las clases dadas:

Código (java) [Seleccionar]

import javax.swing.JFrame; //nos da oportunidad de generar una ventana
import java.awt.Graphics;
import java.awt.Color;
import java.util.ArrayList;
class Ventana extends JFrame{
ArrayList<Punto> puntos = new ArrayList<Punto>(); //permite almacenar varios puntos
ArrayList<Linea> linea = new ArrayList<Linea>();

public Ventana(){ //constructor
this.setSize(500,500);//tamaño
this.setTitle("Puntos con linea "); //titulo de la ventana no es necesario
this.setLocationRelativeTo(null); //posicionamiento de la ventana
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //poder cerrarla
}

public void paint(Graphics g){//este metodo ya esta definido
super.paint(g);
g.setColor(Color.blue); //el color es un objeto
//g.drawLine(50,50,150,150); //dibuja resiviendo las cordenadas iniciales y finales en este caso se dibuja el punto nadamas
for (int i = 0; i<puntos.size(); i++){
g.drawOval(puntos.get(i).x,puntos.get(i).y,3,3);
g.drawLine(linea.get(i).x,linea.get(i).y,linea.get(i).a,linea.get(i).b);
}
}

public void setPunto(Punto p){
puntos.add(p); //añade en el array list el punto
}

public void setLinea(Linea l){
linea.add(l);
}

}


class Linea{
int x,y,a,b;
Linea(){

}
Linea(Punto p1, Punto p2){
x=p1.x;
y=p1.y;

a=p2.x;
b=p2.y;
}
public void imprimeCoordenadas2(){
System.out.println("Puntoinicial [x="+x+",y="+y+"]");
System.out.println("PuntoFinal [x="+a+",y="+b+"]");
}

}


class Punto{

int x,y;

Punto(){

}

Punto(int X, int Y){
x=X;
y=Y;
}

public void imprimeCoordenadas(){
System.out.println("Punto[x="+x+",y="+y+"]");
}

}


class Geometria{
public static void main(String[] args) {

Punto p1 = new Punto(100,100);
Punto p2 = new Punto(200,200);

Linea l1 = new Linea(p1,p2);

p1.imprimeCoordenadas();

Ventana frame = new Ventana();

frame.setPunto(p1);
frame.setPunto(p2);

frame.setLinea(l1);
frame.setVisible(true);


}
}



#2
Cita de: MAFUS en  4 Marzo 2018, 20:57 PM
Esto ya es un problema del compilador. Intenta reinstalándolo o usando otro.

¡Muchas gracias! Efectivamente, el error estaba en el programa. Lo desinstalé y borré todas las configuraciones que tenía y posteriormente lo volví a instalar asegurándome de borrar las configuraciones viejas.
#3
Cita de: MAFUS en  4 Marzo 2018, 20:48 PM
Solo compila, no compiles y ejecutes, te debe aparecer un mensaje diciendo dónde falla tu código. El IDE suele tener una ventana que muestra la salida del compilador.

Aún compilando se detiene el programa y aparece esto mientras se busca solución:

Processing C++ source file...
--------
- C++ Compiler: C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\g++.exe
- Command: g++.exe "C:\Users\fabia_lmyvt7b\Desktop\code1.cpp" -o "C:\Users\fabia_lmyvt7b\Desktop\code1.exe"  -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\lib" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c:190: MapViewOfFileEx: Attempt to access invalid address.
#4
Cita de: MAFUS en  4 Marzo 2018, 20:09 PM
Línea 39, has escrito print en vez de printf.
Línea 48 y 49, nombras las variables V1 y V2 que no existen en esa función.

El compilador, a parte de decir que no compila también suele decir porqué.

He corregido lo que mencionaste y aún así no compila. Primero Aparece un error de windows diciendo que buscará una solución y después aparece otro de C++ citando "ARCHIVO FUENTE NO COMPILADO"
#5
Cita de: MAFUS en  4 Marzo 2018, 20:09 PM
Mete el código entre etiquetas 'code', para entenderlo.
Crea una nueva respuesta o edita tu mensaje. Arriba hay unos botones y una lista llamada Código GeSHi, eliges C e introduce el código entre las dos etiquetas que se han formado.

Ya está. Agradecería mucho tu ayuda ):
#6
Hola. Mi problema es el siguiente: realicé un código para determinar el Producto Punto de dos matrices de n dimensiones con el uso de funciones pero al intentar compilarlo se detiene el compilador y me salta el error "Archivo fuente no compilado". AYUDAAAA

El código es el siguiente:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

double *formaVect(int n);
void llenaVect(double *p, int n);
void imprimaVect(double *p, int n);
void productoPunto(double *a, double *b, int n, double *res);


int main(){
double *V1, *V2, result;
int n;
printf("dame el numero de elementos del vector");
scanf("%d", &n);
V1= formaVect(n);
V2= formaVect(n);
llenaVect(V1, n);
llenaVect(V2, n);
imprimaVect(V1, n);
imprimaVect(V2, n);
productoPunto(V1, V2, n, &result);
return 0;
}

double *formaVect(int n){
double *ap;
ap=(double*)malloc(n*sizeof(double));
return ap;
}
void llenaVect(double *p, int n){
int i;
for (i=0;i<n;i++){
scanf("%1f", p+i);
}
}
void imprimaVect(double *p, int n){
int i;
for (i=0;i<n;i++){
print("%1f\t",*(p+i));
}
}
void productoPunto(double *a, double *b, int n, double *res){
int i;
*res=0;
for(i=0;i<n;i++){
*res+=(*(V1+i))+(*(V2+i));
V1[i]*V2[i]
}
}