Permalänk
Medlem

Upphöjt i C++

Håller på att göra samma program, eller snarare en rad uträkningar i VB6.0, VB.NET och C++ (kanske även C++.NET).

Saken är den att jag måste upphöja i C++, vilket jag inte kan. Undrar om någon kan ge mig lite hjälp på de?

Har även lite problem med randomize om någon kan de?

Tack för hjälpen!

EDIT:
Tack för hjälpen fick programmet att funka en gång men sen så ville det inte köras, hjälp gärna om ni har lust, tack

#include <iostream>
#include <ctime>
#include <cmath>
using namespace std;
main(){

//då kör vi
double a;
double x;
int s=0;
int q=1;
a=1.00001;
x=0;
for(;x<320000;x=x+0.3)
{
q=0;
for(;q<16;q=q+1){
s=0;
for(;s<16;s=s+1){
a = pow(a, x) * cos(x) / (x * sin(x));
}
a = int(a * rand()*10) / q;
}
}
}

har precis lärt mig c++ lite snabbt så de kanske inte ser så 1337 ut

EDIT IGEN: tror det är där jag skriver rand de blir fel :/

Permalänk
Medlem

x = pow(2, 4) // 2^4

Visa signatur

Signatur?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Nexit

x = pow(2, 4) // 2^4

Koden funker ej i C++.NET :/

error C3861: 'pow': identifier not found, even with argument-dependent lookup

EDIT:
My bad includerade cmath så verkade det funka bättre)

Permalänk
Medlem

För slumptal

#include <cstdlib> //för rand och srand #include <ctime> //för time int main() { srand(time(0)); // anropa en gång int i = rand(); // ger ett tal mellan 0 och RAND_MAX som är olika i olika kompilatorer }

Permalänk
Hedersmedlem

Skriv koden med lite mera mellanrum, samt indentering. Och ha helst inte { på samma rad som början på en funktion/if-sats/loop osv.
Det blir galet mycket tydligare så... Samma kod som du postade (men med int main istället ):

#include <iostream> #include <ctime> #include <cmath> using namespace std; int main() { double a = 1.00001; double x = 0; int s = 0; int q = 1; for( ; x<320000; x = x+0.3) { q = 0; for( ; q<16 ;q = q+1) { s = 0; for(;s<16;s=s+1) { a = pow(a, x) * cos(x) / (x * sin(x)); } a = int(a * rand()*10) / q; } } return 0; }

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem

#include <iostream> #include <ctime> #include <cmath> using namespace std; int main() { double a = 1.00001, x = 0; int s = 0, q = 1; for(; x < 320000; x += 0.3) { q = 0; for(; q < 16; q++) { s = 0; for(; s < 16; s++) a = pow(a, x) * cos(x) / (x * sin(x)); a = int(a * rand() * 10) / q; } } return 0; }

Bättre struktur..

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem

släng in en
srand(time(0));
eller om man så vill
srand(time(null));
nånstans i början, typ direkt efter main borde fixa det
Har för mig att det ska va bättre att skriva "null" istället för "0"

Visa signatur

Ehhh...
...öhhhh

Permalänk
Medlem

Tedde, NULL och 0 är enligt definition exakt samma, så prestationsmässigt ska det inte spela någon roll.
Däremot kan ju kompilatorn generera olika kod beroende på vad man väljer, det vet jag inte...

Permalänk
Medlem

Den kan inte generera olika kod eftersom NULL är 0. I flera headers finns raden #define NULL 0. Fast null med små bokstäver som Tedde skrev funkar inte, om man inte själv definerar det, men det är inte så smart.

Permalänk
Medlem

Vad ska programmet skapa?
256 000000 loopar? tar lite tid kanske....

Visa signatur

Jorden är rund, det är jag säker på.
Kolla min blogg vettja. http://eboberg.blogspot.com

Permalänk
Medlem

Du kan t ex bryta ut "cos(x) / (x * sin(x))" och beräkna det i yttersta loopen för att spara massa tid.

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Medlem

att skriva null är ofta ansett vara felaktigt i många sammanhang.
Själv lärde jag mig att alltid skriva null där man "kan" och där det känns logiskt, men under senare år så har jag sett att erfarna programmerare byter ut alla null mot nollor.
Men null och 0 är "alltid" precis samma sak, kompilatorn gör ingen skillnad alls.