gpt4 book ai didi

iphone - 将 C++ 代码重写为 Objective C

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:48 25 4
gpt4 key购买 nike

我有一些 C++ 源代码,我想将其重写为 Objective C。如果有人可以为我编写此代码的头文件,那将对我有很大帮助。当我获得头文件时,我将能够重写源代码的其余部分。

如果有人能帮助我,那就太好了。

谢谢

我会把源代码贴在这里:

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

#define STATES 5

int transitionTable[STATES][STATES];

// function declarations:
double randfloat (void);
int chooseNextEventFromTable (int current, int table[STATES][STATES]);
int chooseNextEventFromTransitionTablee (int currentState);
void setTable (int value, int table[STATES][STATES]);


//////////////////////////////////////////////////////////////////////////

int main(void) {
int i;

// for demo purposes:
transitionTable[0][0] = 0;
transitionTable[0][1] = 20;
transitionTable[0][2] = 30;
transitionTable[0][3] = 50;
transitionTable[0][4] = 0;
transitionTable[1][0] = 35;
transitionTable[1][1] = 25;
transitionTable[1][2] = 20;
transitionTable[1][3] = 30;
transitionTable[1][4] = 0;
transitionTable[2][0] = 70;
transitionTable[2][1] = 0;
transitionTable[2][2] = 15;
transitionTable[2][3] = 0;
transitionTable[2][4] = 15;
transitionTable[3][0] = 0;
transitionTable[3][1] = 25;
transitionTable[3][2] = 25;
transitionTable[3][3] = 0;
transitionTable[3][4] = 50;
transitionTable[4][0] = 13;
transitionTable[4][1] = 17;
transitionTable[4][2] = 22;
transitionTable[4][3] = 48;
transitionTable[4][4] = 0;

int currentState = 0;
for (i=0; i<10; i++) {
std::cout << currentState << " ";
currentState = chooseNextEventFromTransitionTablee(currentState);
}
return 0;
};


//////////////////////////////////////////////////////////////////////////


//////////////////////////////
//
// chooseNextEventFromTransitionTable -- choose the next note.
//

int chooseNextEventFromTransitionTablee(int currentState) {
int targetSum = 0;
int sum = 0;
int targetNote = 0;
int totalevents = 0;
int i;

currentState = currentState % STATES; // remove any octave value
for (i=0; i<STATES; i++) {
totalevents += transitionTable[currentState][i];
}
targetSum = (int)(randfloat() * totalevents + 0.5);
while (targetNote < STATES &&
sum+transitionTable[currentState][targetNote] < targetSum) {
sum += transitionTable[currentState][targetNote];
targetNote++;
}

return targetNote;
}





//////////////////////////////
//
// randfloat -- returns a random number between 0.0 and 1.0.
//

double randfloat(void) {
return (double)rand()/RAND_MAX;
}



//////////////////////////////
//
// setTable -- set all values in the transition table to the given value.
//

void setTable(int value, int table[STATES][STATES]) {
int i, j;
for (i=0; i<STATES; i++) {
for (j=0; j<STATES; j++) {
table[i][j] = value;
}
}
}

更新

我不仅在编译头文件,我也在编译另一个文件

源代码:

//
// markovThreadsChainsViewController.m
// markovThreadsChains
//
// Created by Philippe Mokrzycki on 15.01.11.
// Copyright 2011 TGM. All rights reserved.
//

#import "markovThreadsChainsViewController.h"
#import "markov.h"
//#import "markovChainOC.h"

@implementation markovThreadsChainsViewController

@synthesize mcValueLabel, threadStartGenerateButton, threadStopGenerateButton;

- (IBAction) startThreadGen:(UIButton *)sender{
threadStopGenerateButton.hidden=NO;
threadStartGenerateButton.hidden=YES;
mcValueLabel.text = @"0";

currentState=0;

// markovChainOC *mCobc = [[markovChainOC alloc]init];

// [mCobc setCurrentState:0];
[NSThread detachNewThreadSelector:@selector(startThreading) toTarget:self withObject:nil];
}

- (IBAction) stopThreadGen:(UIButton *)sender{
threadStopGenerateButton.hidden=YES;
threadStartGenerateButton.hidden=NO;
[NSThread detachNewThreadSelector:@selector(stopThreading) toTarget:self withObject:nil];
}

- (void) startThreading {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];

[NSThread sleepForTimeInterval:3];
[self performSelectorOnMainThread:@selector(markovGen) withObject:nil waitUntilDone:NO];
[pool release];
}

- (void) stopThreading {
[NSThread cancelPreviousPerformRequestsWithTarget:self];
}

- (void)markovGen{
transitionTable[0][0] = 25;
transitionTable[0][1] = 25;
transitionTable[1][0] = 25;
transitionTable[1][1] = 25;

// int actualValue = [mCobc getCurrentState];

int actualValue = currentState;
mcValueLabel.text = [NSString stringWithFormat:@"%", actualValue];
currentState = chooseNextEventFromTransitionTablee(currentState);
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(markovGen) userInfo:nil repeats:NO];

}


/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
}
return self;
}
*/

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/


/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/


/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[mcValueLabel release];
[threadStartGenerateButton release];
[threadStopGenerateButton release];
// [mCobc release];
[super dealloc];
}

@end

最佳答案

这段代码完全没有面向对象的内容。只需将 iostream.h 更改为 stdio.h,并将 cout 更改为 printf。然后就是一个普通的 C 程序。

关于iphone - 将 C++ 代码重写为 Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4700418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com