Чт июл 19, 2012 14:10:19
Numeric=((1200/47)*1000)+(1200%47); // 1200 / 47 должно= 25.531
NumericA=1200/47; //Получение целого
NumericB=1200%47; // остаток
Чт июл 19, 2012 14:19:54
Чт июл 19, 2012 14:51:44
Numeric=((1200/47)*1000)+(1200%47);
Чт июл 19, 2012 14:58:34
BCluster писал(а):Вам нужно выводить именно это число? Почему бы просто его не выводить?
Или вместо 1200 и 47 будут переменные? Предполагаю что под "остатком" вы имели ввиду дробную часть...
Чт июл 19, 2012 15:31:42
Чт июл 19, 2012 15:43:46
Чт июл 19, 2012 16:04:24
char string[20];
float a = 1200;
float b = 47;
float c = a / b;
sprintf( string, "a/b=%.3f", c );
lcd_puts ( string );
Чт июл 19, 2012 16:12:58
#include <mega8.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
unsigned long int Numeric, NumericA, NumericB, a=1200, b=47;
void main(void)
{
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
{
Numeric=((a/b)*1000)+(((a%b)*1000)/b); // 1200 / 47 = 25.531
NumericA=a/b; //целая часть
NumericB=((a%b)*1000)/b; // дробная часть
lcd_gotoxy(0,0);
lcd_putchar((Numeric/10000000)%10+0x30);
lcd_putchar((Numeric/1000000)%10+0x30);
lcd_putchar((Numeric/100000)%10+0x30);
lcd_putchar((Numeric/10000)%10+0x30);
lcd_putchar((Numeric/1000)%10+0x30);
lcd_putsf(".");
lcd_putchar((Numeric/100)%10+0x30);
lcd_putchar((Numeric/10)%10+0x30);
lcd_putchar(Numeric%10+0x30);
lcd_gotoxy(0,1);
lcd_putsf(" celoe=");
lcd_putchar((NumericA/10000)%10+0x30);
lcd_putchar((NumericA/1000)%10+0x30);
lcd_putchar((NumericA/100)%10+0x30);
lcd_putchar((NumericA/10)%10+0x30);
lcd_putchar(NumericA%10+0x30);
lcd_gotoxy(0,2);
lcd_putsf("drobnaja =");
lcd_putchar((NumericB/10000)%10+0x30);
lcd_putchar((NumericB/1000)%10+0x30);
lcd_putchar((NumericB/100)%10+0x30);
lcd_putchar((NumericB/10)%10+0x30);
lcd_putchar(NumericB%10+0x30);
lcd_gotoxy(0,3);
lcd_putsf("1200/47=25.531");
};
}
Чт июл 19, 2012 16:18:33
Чт июл 19, 2012 17:23:54
Пт июл 20, 2012 07:51:56
Пт июл 20, 2012 09:47:11