Noob søger forbedring af program
vi er to nybegyndere der har lavet en simpel regnemaskine. Den kan ikke ret meget, og vi har en fornemmelse af at koden er temmelig grim og besværlig. Vi har bare ikke rigtig flere ideer til hvordan man kan gøre det bedre.Hvis en venlig sjæl har tænkt sig at kigge dette igennem og komme med et svar, bedes han/hun give kommentarer til ændringerne, da hele ideen med oplægget er, at vi skal lære noget af svaret.
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <vcl.h>
void main()
{
char c_valg='+', c_rstk[30], c_tal[30],c_enkelt;
int i_fejl=0, i_talok=0, i_talto=0;
int i_taeller=0, i_t=0, i_pt=0, i_mt=0, i_gt=0, i_dt=0, i_i=0;
float fl_sum=0, fl_tal=0;
while(c_valg!='q')
{
i_fejl=0;
gotoxy(25,8);
cout<< "Velkommen til RegneMaks!";
gotoxy(25,9);
cout<< "Fremtidens regnemaskine!";
gotoxy(25,10);
cout<< "Brug
- [/] til at regne"; gotoxy(25,11);
if (i_taeller==0)
{
gotoxy(25,12);
cout<< "Skriv et regnestykke, f.eks 1+5:";
gotoxy(25,17);
cin>>c_rstk;
gotoxy(25,17);
for (i_i=0;c_rstk[i_i]!='\0';i_i++)
{
c_enkelt=c_rstk[i_i];
if (i_talto==1 && c_enkelt!= '\0')
{
if (isdigit(c_enkelt) || c_enkelt=='.')
{
c_tal[i_t]=c_enkelt;
i_t++;
}
}
if (isdigit(c_enkelt) || c_enkelt=='.')
{
i_talok=1;
}
else
{
if (i_talok==0)
{
i_fejl++;
}
else
{
c_valg=c_enkelt;
i_talto=1;
}
}
}
if (i_fejl==0)
{
fl_sum=atof(c_rstk);
fl_tal=atof(c_tal);
}
}
else
{
gotoxy(25,12);
cout<< "Regn videre, f.eks *2:";
gotoxy(25,15);
cout<< "="<<fl_sum;
gotoxy(25,17);
cin>>c_valg;
gotoxy(25,18);
if (c_valg!='q' && c_valg!='n')
{
i_talok=0;
cin>>c_tal;
for (i_i=0;c_rstk[i_i]!='\0';i_i++)
{
c_enkelt=c_rstk[i_i];
if (isdigit(c_enkelt) || c_enkelt=='.')
{
i_talok=1;
}
else
{
if (i_talok>1)
{
i_fejl++;
}
}
}
if (i_fejl==0)
{
fl_tal=atof(c_tal);
}
}
}
i_taeller=1;
i_talok=0;
clrscr();
gotoxy(25,14);
if (i_fejl==0)
{
switch (c_valg)
{
case '+':
{
cout<<fl_sum<<"+"<<fl_tal;
fl_sum=fl_sum+fl_tal;
i_pt++;
break;
}
case '-':
{
cout<<fl_sum<<"-"<<fl_tal;
fl_sum=fl_sum-fl_tal;
i_mt++;
break;
}
case '*':
{
cout<<fl_sum<<"*"<<fl_tal;
fl_sum=fl_sum*fl_tal;
i_gt++;
break;
}
case '/':
{
if (fl_sum!=0)
{
cout<<fl_sum<<"/"<<fl_tal;
fl_sum=fl_sum/fl_tal;
i_dt++;
}
else
{
cout<<"Du kan ikke dele med 0";
}
break;
}
case 'n':
{
c_valg='+';
c_enkelt='0';
i_talok=0;
i_talto=0;
i_i=0;
i_t=0;
i_taeller=0;
c_rstk[1]='\0';
c_tal[1]='\0';
fl_sum=0;
fl_tal=0;
break;
}
default :
{
cout<< "Ugyldig indtastning, TRY AGAIN!.";
break;
}
}
}
else
{
gotoxy(25,14);
cout<< "Du har lavet en indtastningsfejl, TRY AGAIN!";
}
}
}
tak fordi du kiggede det igennem :)