Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 12588
Последний выпуск: 9.07.2014

Вопросы и ответы - Форум

калькулятор

0спам
5.1K
30 сентября 2003 года
stativa
1 / / 30.09.2003
очень нужно сделать калькулятор!!!
чтобы в окне DOS ввел к примеру:

12*24*56+345/8(35/9+78-77)+56-56=

мне ПК выдал ответ, учитывая все скобки (приоритет)
249
30 сентября 2003 года
avatara
188 / / 07.07.2003
Цитата:
Originally posted by stativa
очень нужно сделать калькулятор!!!
чтобы в окне DOS ввел к примеру:

12*24*56+345/8(35/9+78-77)+56-56=

мне ПК выдал ответ, учитывая все скобки (приоритет)



Где-то на этом сайте в исходниках я видел, что-то наподобие калькулятора. Посмотри, может найдешь, если конечно я не ошибаюсь.

321
30 сентября 2003 года
Moroz
52 / / 20.12.1999
Цитата:
Originally posted by stativa
очень нужно сделать калькулятор!!!
чтобы в окне DOS ввел к примеру:

12*24*56+345/8(35/9+78-77)+56-56=

мне ПК выдал ответ, учитывая все скобки (приоритет)


Есть у Страуструпа в книге этот пример... да и у меня где-то валялся... мыль на [email]nikulinl@mail.ru[/email]

1.1K
08 декабря 2004 года
Pochemuchka
100 / / 16.12.2003
Цитата:
Originally posted by Moroz

Есть у Страуструпа в книге этот пример... да и у меня где-то валялся... мыль на [email]nikulinl@mail.ru[/email]



mne toje nujen etot primer, no ya smotrel v knige Biern Straustrup, tam ochen bolshaya programma, i ne rabotaet pochemu to u menya.

Vot mne ochen ochen nujno korotkiy, primitivniy variant etogo kalkulatora, kak zdes' napisano v JavaScript zdes'

86
08 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Moroz

Есть у Страуструпа в книге этот пример... да и у меня где-то валялся... мыль на [email]nikulinl@mail.ru[/email]



см. О.Грогоно. "Программирование на языке Паскаль."

1.1K
08 декабря 2004 года
Pochemuchka
100 / / 16.12.2003
Цитата:
Originally posted by AlexandrVSmirno


см. О.Грогоно. "Программирование на языке Паскаль."



A otkuda mne naiti v internete etu knigu ???


Lyudi est' li u vas drugie varianti ?

9
08 декабря 2004 года
Freeman
3.1K / / 06.03.2004
Цитата:
Originally posted by AlexandrVSmirno
см. О.Грогоно. "Программирование на языке Паскаль."


Ну, если уж на Паскале, то можно взять RxLib - там есть именно то, что тебе нужно.

339
08 декабря 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by smartsoft

Ну, если уж на Паскале, то можно взять RxLib - там есть именно то, что тебе нужно.


Забудь это слово - Паскаль :)

1.1K
10 декабря 2004 года
Pochemuchka
100 / / 16.12.2003
Цитата:
Originally posted by pavor

Забудь это слово - Паскаль :)





Genialno....ochen xoroshaya programma, spasibo.


No mne nado bilo prostoy kalkulator a ne mnogofunkcianalniy :)

I eto prigoditsya..


Vot ya napsial uje programmu etu,
smotrite kak ono :)
Tam poka mogut bit'nedostatki ,

Ya ne mogu delat'tak chtobi dve skobki komp prinyal (naprimer ((1+1)+21+(1+2))
Poprobuyte i uvidete.
I skajite eto xoroshiy stil ili net ?

1.1K
10 декабря 2004 года
Pochemuchka
100 / / 16.12.2003
#include <stdio.h>
#include <conio.h>
#include "stdlib.h"
#include <iomanip>
using std::dec;
using std::setbase;

#include <iostream.h>
float Summa(float [],char [],int);
void ArtToMas(char []);


char oper[20];
char st[40];
float nst[40];
char skob[20];
float pak[20];
char opak[20];
int z=0;
char buff[10];
bool end=false;
int p=0;
int i,j;





void main()
{



printf("\n Nermuceq Artahaytutyun ->");
scanf("%s",&st);

//---------------------------STUGUM ENK PAKAGIC KA TE CHE
int h=j=z=0;
while (st)
{
p=0;
if (st=='(')
{
for (;!end;)
{
if (st==')') end=true;

if (st!='(' && !end) skob[j++]=st[i++];

if (st=='(') {if (i!=0) opak[h]=st[i-1];i++;h++;}
}
skob[j]='\0';
cout<<"\nV skobke---->"<<skob<<endl;;
}
//HASHVUM ENQ PAKAGCI MEJINNNER@
if (end)
{
ArtToMas(skob);

pak[z++]=Summa(nst,oper,p);
cout<<"----|"<<pak[z-1];
j=0;
}
end=false;
i++;

}

p=0;z=0;

int k=0;


//PAKAGCI MEJINNER@ HASHVELUC HETO TEXADRUM ENQ VORPES INTEGER
for (i=0;st;)
{

if (st!='(')
{
if (st=='*'||st=='/'||st=='+'||st=='-')
{
if (st[i+1]!='(') oper[p++]=st[i++];else i++;
}
else
{ j=0;
while (st>='0'&&st<='9')
buff[j++]=st[i++];

buff[j]='\0';
nst[k++]=(float)atof(buff);
}
}

else if (st=='(')
{
if (i!=0) oper[p++]=opak[z];

nst[k++]=pak[z];z++;

while (st!=')') i++;
i++;

}

}

float answer=Summa(nst,oper,p);
cout<<endl;
cout<<"________________________________________\n\n";
cout<<" Answer";
cout<<"="<<nst[0];
cout<<"\n________________________________________\n";
cout<<endl;
getch();
}


//----------------------------------------------------------------------------------------------
float Summa(float fnst[], char foper[],int p1)
{
char op='/';
while (op!='@')
{
int i=0;
int u=0;

while (i<p1)
{
if (foper==op)
{
if (fnst[i+1])
{
switch (op)
{
case '/': fnst/=fnst[i+1];break;
case '*': fnst*=fnst[i+1];break;
case '-': fnst-=fnst[i+1];break;
case '+': fnst+=fnst[i+1];break;
}
fnst[i+1]=0;foper=foper[i+1];
for (u=i+1;u<p1;u++)
{
if (foper[u+1]) {foper=foper[u+1];foper[u+1]=(char)-858993460;}
if (fnst[u+1]) {fnst=fnst[u+1];fnst[u+1]=0;}
} i=-1;
}
}
i++;
}
switch (op)
{
case '+': op='@';break;
case '-': op='+';break;
case '*': op='-';break;
case '/': op='*';break;
}
oper=(char)-858993460;
}
return fnst[0];
}

//----------------------------------------------------------------------------------------------

void ArtToMas(char art[])
{
int ii=0;
int k=0;p=0;
while (art[ii])
{
j=0;

if (art[ii]=='*'||art[ii]=='/'||art[ii]=='+'||art[ii]=='-')
{
oper[p++]=art[ii++];
}
else
{
while (art[ii]>='0'&&art[ii]<='9')
buff[j++]=art[ii++];
buff[j]='\0';
nst[k]=(float)atof(buff);
k=k++;
}
}

k=0;
}
//----------------------------------------------------------------------------------------------

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог