• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Do napisania program w C++ i utworzenie wykresu w Excelu na podstawie otrzymanego rysynku.

Object Storage Arubacloud
0 głosów
247 wizyt
pytanie zadane 13 maja 2020 w C i C++ przez chrystian Gaduła (4,780 p.)
edycja 14 maja 2020 przez Arkadiusz Waluk

Prosiłbym o dokończenie bo nie wiem co dalej zrobić.Proszę wygenerować 5000 punktów, zacząć od x=1,y=1 przy sporządzaniu wykresu pomijamy 100-pierwszych punktów.

#include <iostream>
#include<stdlib.h>
#include<time.h>
#include<fstream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
	float x,y;
	x=1;
	y=1;
	int a;
	srand(time(NULL));
	ofstream zapis("punkty.xls");
	for(int i=1;i<=5000;i++)
	{
		a=rand()%2;
		if(a==0)
		{
			x=-0.4*x+0*y-1;
			y=0*x-0.4*y+0.1;
		}
		else
		{
			x=0.76*x-0.4*y+0;
			y=0.4*x+0.76*y+0;
		}
	zapis<<x<<"\t"<<y<<endl;
	}
	zapis.close();
	return 0;
}

 

komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Pewny jesteś, że to ma być format .xls, a nie .csv?
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
takie dostaliśmy polecenie
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Że ma być w formacie .xls?

 

Hint: pliki .csv też możesz otworzyć w Excellu.
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
tak ma byc w .xls ponieważ później rzutuje te punkty na wykres
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Tyle że .xls jest formatem binarnym, więc wątpię, byś dostał takie zadanie, gdzie musisz bawić się w rozgryzanie formatu Excela. Chyba że użyjesz jakiejś zewnętrznej biblioteki... też w sumie wątpliwe.
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
nw jak przesłac ten .xls ale robiłem takie coś kilka razy w xls i działało może opisze jak to wygłada dwie kolumny x y pod nimi wypisane liczby(czasami wystepuje bład i są daty) i z nich rzutuje sie wykres punktowy
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Jeśli ten program w C++ ma jedynie wygenerować dwie kolumny danych, by później je otworzyć w Excelu w celu stworzenia jakiegoś wykresu, to format .csv wystarczy. Format jest prosty i da się otworzyć w Excelu.

Więc jak?
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
nw czy cos to  zmenia a xls znam a csv pierwszy raz słyszę
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Znasz format .xls (w sensie, że wiesz, co się ma we wnętrzu pliku znaleźć)?
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
tak
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Skoro wiesz, co tam masz wpisać, to w czym problem?
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
(w FOR)problem jest z x,y ponieważ nw jak podłożyć te punkty z rsyuneku pod te zmienne i co to zanczy pominać 100 pierwszych punktów zę z 5000 ma byc 4900
komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)

Trochę za mało informacji. Co to są za liczby pod rysunkiem? Skąd te wzory na obliczanie x i y?

komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)
mam zrobic fraktale liczby z rysunku podkłada się pod x,y ale nw własnie jak wzór zrobic i co daje ze 100 pierwszych punktów pominać
komentarz 14 maja 2020 przez chrystian Gaduła (4,780 p.)

znałazłem taką strone ale totalnie jej nie ograniam 

http://www.jakubas.pl/artykuly/skl-prz/skl-prz.htm

komentarz 14 maja 2020 przez j23 Mędrzec (194,920 p.)
Przecież tam masz napisany kod do wyliczania współrzędnych. Wprawdzie w Pascalu, ale można go przepisać na C++ (pomijając część odpowiedzialną za wypisywanie na ekranie).
komentarz 16 maja 2020 przez chrystian Gaduła (4,780 p.)
No właśnie totalnie nie ogarniam tego kodu co jest zmienna s co
komentarz 16 maja 2020 przez chrystian Gaduła (4,780 p.)

czy ktos przetłumaczył by mi ten kod na c++

program Dwa_przeksztalcenia; {Turbo Pascal 7.0}
uses graph,crt; var karta,tryb,prz,skala:integer; x,y,xNowe,yNowe:real;
{1} const t: array[1..12] of real= (0,0.9,-0.4,-0.4,0,-0.5,0.5,-1,0.5,0.3,0.6,-0.6);
begin
karta:=detect; initGraph(karta,tryb,''); randomize;
x := 0; y := 0; skala:=80;
repeat
{2} prz := random(2); {losowanie przekształcenia}
xNowe:=t[prz*6+1]*x+t[prz*6+2]*y+t[prz*6+3]; {obliczanie nowych współrzędnych}
ynowe:=t[prz*6+4]*x+t[prz*6+5]*y+t[prz*6+6];
x := xNowe; y := yNowe;
putPixel(round(x*skala+320),round(-y*skala+240),prz+3); {rysowanie nowego punktu}
until keyPressed;
readLn; closeGraph;
end.

 

komentarz 16 maja 2020 przez j23 Mędrzec (194,920 p.)
Poprawiłem kod...
komentarz 16 maja 2020 przez chrystian Gaduła (4,780 p.)
takie bład dostałem #error This file requires compiler and library support for the \
komentarz 16 maja 2020 przez chrystian Gaduła (4,780 p.)
includy to

#include <iostream>
#include<stdlib.h>
#include<time.h>
#include<fstream>
#include <string>
#include <map>
#include <random>
komentarz 16 maja 2020 przez j23 Mędrzec (194,920 p.)
Wkleiłeś niepełną treść błędu, ale zgaduje, że chodzi o włączenie obsługi standardu C++11 (lub wyżej). Zatem zrób to w opcjach projektu.
komentarz 16 maja 2020 przez chrystian Gaduła (4,780 p.)
[Error] variable 'std::ofstream zapis' has initializer but incomplete type

  [Error] 'random_device' is not a member of 'std'

    [Error] 'uniform_int_distribution' is not a member of 'std'

    [Error] expected primary-expression before 'int'

    [Error] 'rd' was not declared in this scope

  [Error] 'dist' was not declared in this scope

myślałem żeby to rand`em zamienic
komentarz 17 maja 2020 przez j23 Mędrzec (194,920 p.)
W sumie możesz...

Włączyłeś obsługę standardu C++11?
komentarz 17 maja 2020 przez chrystian Gaduła (4,780 p.)
support all ANSI stantard C programs dałem na YES problem przestał się podsiweitlac na czerrwono ale i tak nie compulije
komentarz 17 maja 2020 przez j23 Mędrzec (194,920 p.)
Pisałem o standardzie C++, a nie C.

1 odpowiedź

0 głosów
odpowiedź 16 maja 2020 przez j23 Mędrzec (194,920 p.)
edycja 16 maja 2020 przez j23
 
Najlepsza

Jakoś tak to będzie:

double tab[3][6] = {
	{ 0.5, 0.6, -0.4, 0.0, 0.6, -0.4 },
	{ 0.5, -0.8, 0.5, 0.0, 0.5, -0.1 },
	{ 0.5, 0.0, 0.0, 0.0, 0.5, 0.4 }
};

double x = 1.0, y = 1.0;

std::random_device rd;
std::uniform_int_distribution<int> dist(0, 2);

for (int i = 0; i < 5000; ++i) {
	int rnd = dist(rd);

	double x2 = tab[rnd][0] * x + tab[rnd][1] * y + tab[rnd][2];
	double y2 = tab[rnd][3] * x + tab[rnd][4] * y + tab[rnd][5];
	x = x2;
	y = y2;

	/* no i tu zapisujesz do pliku wartości x, y (i prawdopodobnie 'rnd') */
}

 

Podobne pytania

0 głosów
0 odpowiedzi 124 wizyt
+2 głosów
2 odpowiedzi 363 wizyt
0 głosów
1 odpowiedź 3,394 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...