logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Program w C - Rozwiązywanie układu 2 równań metodą wyznaczników

madjack6 16 Mar 2006 22:30 1811 4
REKLAMA
  • #1 2423294
    madjack6
    Poziom 2  
    Posty: 3
    Witam. Potrzebuję pomocy z moim programem. Program ma rozwiązywać układ 2 równań metodą wyznaczników. Poza tym ma nie pozwalać na wciśnięcie innego klawisza oprócz cyfr (przy wpisywaniu wartości zmiennej). Oto pierwsza wersja więc liczę na rady i sugestie:

    #include<dos.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<stdio.h>
    void main()
    {
    int z,a1,a2,b1,b2,c1,c2,W,Wx,Wy,x,y,liczba;
    char znak;
    //Ramki
    clrscr();
    textattr(16*0+0); clrscr();
    for(z=1;z<=24;z++)
    {
    window(1,1,80,z);
    textattr(16*12+14); clrscr();
    delay(50);
    }
    for(z=24;z>=4;z--)
    {
    window(1,z,80,25);
    textattr(16*9+0); clrscr();
    delay(50);
    }
    for(z=4;z<=80;z++)
    {
    window(1,4,z,20);
    textattr(16*11+11); clrscr();
    delay(30);
    }


    window(1,21,80,24);
    textattr(16*9+0); clrscr();
    printf("\n");
    printf("\n");
    printf("\n");
    printf(" ESC-KONIEC\n");


    window(1,1,80,3);
    textattr(16*12+14); clrscr();
    gotoxy(20,2);
    printf(" Desktop made by MadJack");

    //Koniec ramek

    window(1,11,80,14);
    textattr(16*11+0); clrscr();
    printf("\n");
    printf(" a1 x + b1 y = c1\n");
    printf(" a2 x + b2 y = c2\n");
    gotoxy(2,2);
    liczba=0;

    while(znak!=27)
    {
    znak=getch();
    if ((znak>=48)&&(znak<=57))
    {
    gotoxy (2,2);
    printf ("%d",liczba=liczba*10+(znak-48));
    }
    else
    {
    sound(400);
    delay (200);
    nosound();
    }

    //Obliczenia
    W=(a1*b2)-(a2*b1);
    Wx=(c1*b2)-(c2*b1);
    Wy=(a1*c2)-(a2*c1) ;
    x=Wx/W;
    y=Wy/W;
    //Koniec obliczen
    }

    //Koniec
    for(z=1;z<=25;z++)
    {
    window(1,1,80,z);
    textattr(16*0+0); clrscr();
    delay(80);
    }

    textattr(16*0+15); clrscr();
    gotoxy(37,13);
    cprintf("KONIEC");
    getch();
    }

    Najlepiej gdyby wpisywane wartości pojawiały się tak jak a1.
    Niewiem jak podpiąć to wszystko do obliczeń, a może zabrałem się do tego ze złej strony?
  • REKLAMA
  • #2 2423858
    Marian83
    Poziom 20  
    Posty: 360
    Pomógł: 50
    Ocena: 7
    To całe migotanie jest tragiczne jak dla mnie. To ma byc dyskoteka czy progam w C++?
  • REKLAMA
  • #3 2424065
    madjack6
    Poziom 2  
    Posty: 3
    Troche faktycznie może to rozpraszać, poprawie to gdy tylko program zacznie prawidłowo działać.
  • REKLAMA
  • #4 2424210
    grzesiula1
    Poziom 2  
    Posty: 2
    Chętnie bym ci pomógł ale C nie jest moją najmocniejszą stroną, jestem pewien że znajdzie się ktoś pomocny, w końcu po to mamy forum. pozdro
  • #5 2429392
    madjack6
    Poziom 2  
    Posty: 3
    Dałem sobie jakoś rade.
    Jeśli kogoś interesuje to poniżej zamieszczam program znaleziony w sieci

    #include <stdlib.h>
    #include <iostream.h>
    #include <conio.h>
    #include <stdio.h>

    main()
    {
    cout<<"Napisz swoj uklad rownan w postaci:"<<endl;
    cout<<"ax+by=e"<<endl;
    cout<<"cx+dy=f"<<endl;
    float a,b,c,d,e,f,wx,wy,wg,x,y;
    cout<<"Podaj a,b,c,d,e,f (po podaniu kazdej liczby wcisnij ENTER)"<<endl;
    cin>>a;
    cin>>b;
    cin>>c;
    cin>>d;
    cin>>e;
    cin>>f;
    wg=a*d-b*c;
    wx=e*d-b*f;
    wy=a*f-c*e;
    cout<<"Wyznaczniki:"<<endl;
    cout<<"Wyznacznik glowny=";
    cout<<wg<<endl;
    cout<<"Wyznacznik x=";
    cout<<wx<<endl;
    cout<<"Wyznacznik y=";
    cout<<wy<<endl;
    if (wg==0)
    {
    if (wx==0 && wy==0)
    {
    cout<<"Rownanie tozsame";
    }
    else
    {
    cout<<"Rownanie sprzeczne";
    }
    }
    else
    {
    x=wx/wg;
    y=wy/wg;
    cout<<"X=";
    cout<<x<<endl;
    cout<<"Y=";
    cout<<y<<endl;
    }
    getch();
    }
REKLAMA