Re: ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!
Добавлено: Ср фев 02, 2011 18:40:05
Pika4u
Вот усовершенствования версия калькулятора:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
const int N=3;
void to2(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24;
n1=binary/2;
n2=binary%2;
n3=n1/2;
n4=n1%2;
n5=n3/2;
n6=n3%2;
n7=n5/2;
n8=n5%2;
n9=n7/2;
n10=n7%2;
n11=n9/2;
n12=n9%2;
n13=n11/2;
n14=n11%2;
n15=n13/2;
n16=n13%2;
n17=n15/2;
n18=n15%2;
n19=n17/2;
n20=n17%2;
n21=n19/2;
n22=n19%2;
n23=n21/2;
n24=n21%2;
printf("%d%d%d%d%d%d%d%d%d%d%d%d",n24,n22,n20,n18,n16,n14,n12,n10,n8,n6,n4,n2);
}
int to10(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,p1;
n1=binary%10;
n2=binary/10;
n3=n2%10;
n4=n2/10;
n5=n4%10;
n6=n4/10;
n7=n6%10;
n8=n6/10;
n9=n8%10;
n10=n8/10;
n11=n10%10;
n12=n10/10;
n13=n12%10;
n14=n12/10;
n15=n14%10;
n16=n14/10;
n17=n16%10;
n18=n16/10;
n19=n18%10;
n20=n18/10;
p1=n19*512+n17*256+n15*128+n13*64+n11*32+n9*16+n7*8+n5*4+n3*2+n1*1;
return p1;
}
main()
{
char * u=new char[17];
int l,l1,count=0,er,sys,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,k16,k17,k18,k19,k20,binary,r,i4,i5,binary1,r1,r2,r3;
float i3,i1,i2,sq,sqr,r4;
float xd,xd1,yrol,yrol1;
int par,yrol2,sq1,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,succes,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,h21,h22,h23,h24,i;
printf("Программа для перевода чисел между системами счисления.v1.0.1.2\nНаписал прогу Diman56");
while(1)
{
printf("\nВыберите систему счисления(10-десятичная,2-двоичная)\nИли наберите -1 для выхода: ");
scanf("%d",&sys);
if(sys==-1)
exit(1);
else
{
printf("Введите действие\nДействия:\n1-сложение\n2-вычитание\n3-умножение\n4-деление\n5-перевод из указанной системы счисления в противоположную\n6-извлечение квадратного корня\n7-тригонометрические функции(только для десятичной системы).\nДействие: ");
scanf("%d",&i5);
switch (sys)
{
case 10:
switch(i5)
{
case 1:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1+i2;
printf("Сумма равна %f",i3);break;
case 2:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1-i2;
printf("Разность равна %f\n",i3);break;
case 3:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1*i2;
printf("Произведение равно %f\n",i3);break;
case 4:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1/i2;
printf("Частное равно %f\n",i3);break;
case 5:
printf("Введите число для перевода: ");
scanf("%d", &binary);
printf("Число в двоичной системе счисления:");
to2(binary);
break;
case 6:
printf("Введите число: ");
scanf("%f",&sq);
if(sq<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(sq);
printf("Квадратный корень из %f равен %f",sq,sqr);
}
break;
case 7:
printf("Введите параметр:\n1-синус\n2-косинус\n3-тангенс\n4-угол из синуса\n5-угол из косинуса\n6-угол из тангенса\nПараметр: ");
scanf("%d", &par);
switch(par)
{
case 1:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=sin(yrol1);
printf("Синус угла %f равен %f",yrol,xd);
break;
case 2:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=cos(yrol1);
printf("Косинус угла %f равен %f",yrol,xd);
break;
case 3:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.1415/180;
xd=tan(yrol1);
printf("Тангенс угла %f равен %f",yrol,xd);
break;
case 4:
printf("Введите значение cинуса: ");
scanf("%f", &yrol);
xd=asin(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 5:
printf("Введите значение коcинуса: ");
scanf("%f", &yrol);
xd=acos(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 6:
printf("Введите значение тангенса: ");
scanf("%f", &yrol);
xd=atan(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
}
}break;
case 2:
switch (i5)
{
case 1:
printf("Введите число 1: ");
scanf("%d",&binary);
printf("Введите число 2: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1+r2;
printf("Сумма равна %d или в двоичной системе:",r3);
to2(r3);
break;
case 2:
printf("Введите уменьшаемое: ");
scanf("%d",&binary);
printf("Введите вычитаемое: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1-r2;
printf("Разность равна %d или в двоичной системе:", r3);
to2(r3);
break;
case 3:
printf("Введите первый множитель: ");
scanf("%d",&binary);
printf("Введите второй множитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1*r2;
printf("Произведение равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 4:
printf("Введите делимое: ");
scanf("%d",&binary);
printf("Введите делитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1/r2;
printf("Частное равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 5:
printf("Введите число: ");
scanf ("%d", &binary);
r=to10(binary);
printf("Число в десятичной системе счисления:%d",r);
break;
case 6:
printf("Введите число: ");
scanf("%d", &sq1);
r4=to10(sq1);
if(r4<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(r4);
printf("Квадратный корень из %d равен %f,", sq1,sqr);
}
break;
}
break;
}
getch();
}
}
}