TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Program w c, zabezpieczenie przed wpisywaniem nie tego co trzeba.. , coolman 22/01/07 16:42 Witam!
Robie na zaliczenie program w c. Potrzebuje przerobic ten na dole tak aby mozna bylo wpisywac tylko cyfry..zadnych innych znakow. Po wpisaniu znaku innego niz cyfra powinien najlepiej najlepiej znowu zapytac o cyfre.
Kod wyglada tak:
----------------$----------------
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <math.h>
float a,b,c,d,x,delta,x1,x2;
int i,ii;
char key;
void kolory(int kol,int tlo)
{
textcolor(kol);
textbackground(tlo);
}
void tytul(void)
{
kolory(1,7);clrscr();
gotoxy(25,2);cprintf("Rozwiazywanie rownan typu:");
kolory(7,1);
gotoxy(28,3);cprintf("a(x*x) + bx + c=0,");
kolory(1,7);
gotoxy(22,4);cprintf("dla dowolnych, rzeczywistych a,b,c.");
}
void wczytanie_danych(void)
{
kolory(5,7);
gotoxy(3,7);cprintf("Podaj:");
gotoxy(10,8);cprintf("a= "); cscanf("%f",&a);
gotoxy(10,9);cprintf("b= "); cscanf("%f",&b);
gotoxy(10,10);cprintf("c= "); cscanf("%f",&c);
}
void miejsce_odp(void)
{
for(i=1; i<11;i++)
{kolory(7,5); gotoxy(20,6+i); cprintf(" ");}
}
void ODP1(void)
{
kolory(7,5); gotoxy(33,9);cprintf(" Tozsamosc,");
gotoxy(23,11);cprintf("rozwiazaniem kazde x rzeczywiste.");
}
void ODP2(void)
{
kolory(7,5); gotoxy(33,9); cprintf("Sprzecznosc,");
gotoxy(32,11); cprintf("brak rozwiazan.");
}
void ODP3(void)
{
kolory(7,5); gotoxy(31,9); cprintf("Rownanie liniowe,");
d=-c/b; if(d==0) d=0;
gotoxy(34,11); cprintf("x =%8.4f\a",d);
}
void ODP4(void)
{
kolory(7,5);gotoxy(30,9); cprintf("Rownanie kwadratowe,");
gotoxy(29,11); cprintf("rozwiazania zespolone:");
gotoxy(28,13);cprintf("x1 =%8.4f",-b/(2*a));
d=sqrt(fabs(delta))/(2*a);
gotoxy(41,13); cprintf(" -j*%7.4f",sqrt(fabs(delta))/(2*a));
gotoxy(28,15);cprintf("x2 =%8.4f",-b/(2*a));
gotoxy(41,15); cprintf(" +j*%7.4f",sqrt(fabs(delta))/(2*a));
}
void ODP5(void)
{
kolory(7,5);gotoxy(16,10); cprintf("Rownanie kwadratowe,");
gotoxy(17,11); cprintf("jedno rozwiazanie rzeczywiste:");
gotoxy(27,13); cprintf("x1 = x2 = ",-b/(2*a));
}
void ODP6(void)
{
kolory(7,5);gotoxy(30,9); cprintf("Rownanie kwadratowe,");
gotoxy(28,11); cprintf("rozwiazania rzeczywiste:");
gotoxy(35,13); cprintf("x1=%8.4f",(-b-sqrt(delta))/(2*a));
gotoxy(35,15); cprintf("x2=%8.4f",(-b+sqrt(delta))/(2*a));
}
void pytanie_dec(void)
{
i=0; do {key=toupper(getche());
kolory(9+i %5,7); gotoxy(62,24); cprintf("Powtarzamy(T/N)?"), i++;
}while(!((key=='N')||(key=='T')));
}
int main(int argc, char* argv[])
{
do{
tytul();
wczytanie_danych();
miejsce_odp();
if(a==0)
if(b==0)
if(c==0) ODP1();
else ODP2();
else ODP3();
else
{ delta=b*b-4*a*c;
if(delta<0) ODP4();
else
if(delta==0) ODP5();
else ODP6();
};
pytanie_dec();
}while(!(key=='N'));
return 0;
}
----------------$----------------http://jet.blog.pl - UWAGA MALA POPRAWKA :P , coolman 22/01/07 17:00
...program ktory pobiera tylko cyfry z klawiatury :P ten co wkleilem jest nie aktualny. Reasumujac podsuncie mi pomysl jak podczas wczytywania danych pobierac tylko cyfry ? Czyli zrobic zabezpieczenie przed wpisywaniem literek.http://jet.blog.pl - hhhh a , Emios 22/01/07 20:41
nawalic petli warunkowych jesli tak niech dodaje do tablicy jesli nie to nastepny znak.......
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|