ftp.nice.ch/pub/next/science/electrical/EHelper1.1.NIHS.bs.tar.gz#/EHelper1.1/Source/Ohmslaw.m

This is Ohmslaw.m in view mode; [Download] [Up]

/* Generated by Interface Builder */

#import "Ohmslaw.h"
#import <appkit/FormCell.h>
#import <appkit/TextField.h>
#import <appkit/publicWraps.h> /* Need by NXBeep */

float VoltsValue;
float AmperesValue;
float OhmsValue;
float WattsValue;

@implementation Ohmslaw


- appDidInit:sender;
/* This method is executed right after the application was initilized but before
 * the application receives it's first event.
 */
{
        [self FindOhms:sender]; 		
	return self;
}



- Calculate:sender
{
    
     	int WhichOne;
   	WhichOne = [FindButton selectedTag]; /* assigns the value of the currently selected button */
   	/* using tag as a reference */
   
     switch (WhichOne)  { /* start switch */
   
   /* Find the Resistance "Ohms"   R=V/I  */
   case 0:
                /* Gets the value from the Ampere field */
	        AmperesValue = [Amperes floatValue];

               /* Gets the value from the Volts field */
	       VoltsValue = [Volts floatValue];

               OhmsValue= (VoltsValue/AmperesValue);
	       
	       [Ohms setFloatValue:OhmsValue];
	        
	  break;
	  
   /* Find the Current "Ampere"   I= V/R  */
   case 1:
               /* Gets the value from the Ohms field */
	        OhmsValue = [Ohms floatValue];

               /* Gets the value from the Volts field */
	       VoltsValue = [Volts floatValue];

               AmperesValue= (VoltsValue/OhmsValue);
	       
	       [Amperes setFloatValue:AmperesValue];

          break;
	  
   /* Find the Voltage "Volt"  V=I*R   */
   case 2:
              /* Gets the value from the Ohms field */
	        OhmsValue = [Ohms floatValue];

               /* Gets the value from the Ampere field */
	       AmperesValue = [Amperes floatValue];

               VoltsValue= (AmperesValue*OhmsValue);
	       
	       [Volts setFloatValue:VoltsValue];

	    break;

  /* Find the Power "Watts" */
   case 3:
               
               /* Gets the value from the Ohms field */
	       OhmsValue = [Ohms floatValue];

               /* Gets the value from the Ampere  field */
	        AmperesValue = [Amperes floatValue];

               /* Gets the value from the Volts field */
	       VoltsValue = [Volts floatValue];


/* Make sure all the values are found then find the Watts */

/*    Find the value for Ohms    */
if (OhmsValue == 0)
       {
		OhmsValue= (VoltsValue/AmperesValue);
	      	[Ohms setFloatValue:OhmsValue];
        }

/*    Find the value for Amperes    */
if (AmperesValue == 0)
       {
		AmperesValue= (VoltsValue/OhmsValue);
	       	[Amperes setFloatValue:AmperesValue];
	}

/*    Find the value for Volts    */
if (VoltsValue == 0)
       {
  		VoltsValue= (AmperesValue*OhmsValue);
	       	[Volts setFloatValue:VoltsValue];
	}

/* Find the Watts     P=I*V    */

               WattsValue= (AmperesValue*VoltsValue);
	       [Watts setFloatValue:WattsValue];
	           
	     	break;

	                        } /* end switch */    
    	return self;
}

- FindOhms:sender
{
	[self SetToZero:sender]; /* Set the form value to ZERO */
	[Ohms setEnabled:NO]; /* Disable the form (noneditable) */
	[Amperes setEnabled:YES]; /* Enables the form */
	[Volts setEnabled:YES]; /* Enables the form */
        [Watts setEnabled:NO]; /* Disable the form (noneditable) */
	return self;
      
  }

- FindAmpere:sender
{
	[self SetToZero:sender];
	[Ohms setEnabled:YES];
	[Amperes setEnabled:NO];
	[Volts setEnabled:YES];
	[Watts setEnabled:NO];
	return self;
      
  }
  
  - FindVolts:sender
{
	[self SetToZero:sender];
	[Ohms setEnabled:YES];
	[Amperes setEnabled:YES];
	[Volts setEnabled:NO];
       [Watts setEnabled:NO];
       return self;
      
  }

  - FindWatts:sender
{
	[self SetToZero:sender];
	[Ohms setEnabled:YES];
	[Amperes setEnabled:YES];
	[Volts setEnabled:YES];
        [Watts setEnabled:NO];
       return self;
      
  }

- SetToZero:sender
/* This sets the values of the forms to ZERO */
{
       	[Ohms setFloatValue:0];
	[Amperes setFloatValue:0];
	[Volts setFloatValue:0];
	[Watts setFloatValue:0];
 	return self;
  }

- PrintOhmsTable:sender
/* This method will print the Ohms Law Table */
{

     [OhmsTable printPSCode:self];

    return self;
 }


@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.