Kalkulator na zaliczenie- proszę pomóżcie [C]

Kalkulator na zaliczenie- proszę pomóżcie [C]
NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0

Tak jak w temacie, niestety mój wykładowca laboratorium oszalał i co 5 min zmienia zasady zaliczenia o ile brakowało mi 1pkt, teraz brakuje mi 10.5, a mogę zdobyć tylko 10, muszę tylko napisać taki program a nie mam pojęcia jak za tak bardzo rozbudowany kalkulator się zabrać.
Kalkulator z kolejnością działań (do kilku np: 4 działań na wejściu). takie jest polecenie wykładowcy proszę jeżeli ktoś jest w stanie pomóc to będę bardzo szczęśliwy.
Pozdrawiam
/@ edit nie chcę gotowca umiem tylko prosty kalkulator na pentli swtich case czy też if else if

edytowany 1x, ostatnio: Naky
msm
Podaj jakiś kod który sam zrobiłeś w tym temacie, bo to wygląda jak próba uzyskania gotowca (a takich nie rozdajemy)
Sebastiano
Znam te humory wykladowcow;) Sprobuj to sam napisac a bedziesz mial podwojna frajde. Dopiero jak na pewnym etapie bedziesz mial z czyms problem to napisz a na pewno ktos Ci da wskazowki.
NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0
Kopiuj
  #include <stdlib.h>
    #include <stdio.h>

         int main ()
{
         double a,b,c;
         char dzialanie ;
          
         printf("Podaj a: ");
         scanf("%lf", &a);
         printf("Podaj b: ");
         scanf("%lf", &b);
         printf("Podaj dzialanie :  ");
         _flushall();
         scanf("%c", &dzialanie);
         if ((dzialanie !='+')&(dzialanie !='-')&(dzialanie!='*')&(dzialanie!='/'))
         {
         printf("Niewłaściwy znak\n");
         return -1;
         }
         if (dzialanie == '+')
         {        
         double c=a+b;
         printf("Suma = %.2lf\n",c);
         
         }
         else if ( dzialanie == '-')
         {
         double c=a-b;
         printf("Roznica = %.2lf\n", c);
         }
         else if (dzialanie == '*')
         {
         double c=a*b;
         printf("Iloczyn = %.2lf\n", c);
         }
        
         else if (dzialanie == '/', b >0)
         {
         double c=a/b;
         printf("Iloraz = %.2lf\n", c);
         }
          else ( b==0);
         {
         printf("Nie dziel przez zero\n");
         system("pause");
         return -1;
         }
         
         
         system ("pause");
         return 0

to jest mój program 2+2 a nie wiem zbytnio jak zabrać się za 2+2*3/4 ;(

/@ kolega mi sugeruje takie coś żeby wygenerować tablice string, i pentli for odczytywać wartości od początku do końca tablicy przy pomocy pentli if.

edytowany 2x, ostatnio: Shalom
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

poczytaj o odwroconej notacji polskiej.

NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0

Dużo mi to nie da skoro muszę napisać coś czego nie potrafie

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

@Naky na tym polega nauka że się uczysz a potem robisz.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0
Kopiuj
#include <stdlib.h>
#include <stdio.h>

int main (int agrc(), void *agrv[])
{
    double a,b,c,d;
    double w,w1,w2;
    char dz,dz1,dz2;
    
    do
    {
        printf ("Podaj liczby i dzialania\n");
        scanf ("%lf", &a);
        printf ("");
        scanf("%c",&dz);
        printf ("");
        scanf ("%lf", &b);
        printf ("");
        scanf ("%c", &dz1);
        if (dz1=='=') break;
        printf ("");
        scanf ("%lf", &c);
        printf ("");
        scanf ("%c", & dz2);
        if (dz2 =='=') break;
        printf ("");
        scanf ("%lf", &d);
        }
        while (getchar());
        
        
        
         switch (dz)
        {
               case       '+': w=a+b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '-': w=a-b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '*': w=a*b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '/': w=a/b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               
               }
        switch (dz1)
        {
               case '+': w1=w+c;
               printf("Wynik dzialania%.4lf\n", w1);
               break;
               case '-': w1=w-c;
               printf ("Wynik dzialania %.4lf\n", w1);
               break;
               case '*': w1=a dz(b*c);
               printf ("Wynik dzialania %.4fl\n",w1);
               break;
               
               }
        system ("pause");
        }

Dobra tak wygląda mój kod, piszę to tak jak potrafię i mam problem na samym dole chciałbym aby program czytał mi znak wprowadzonego działania "dz" jest działaniem 1 z poprzedniej pętli dobrze by było gdyby ktoś pomógł mi to skompilować bo mój dev nie godzi się na to
pozdrawiam

edytowany 4x, ostatnio: Shalom
B8
Usuń te encje z kodu, nikt nie będzie tego przepisywał.
NA
jakie encje?
NA
te amp tak? tak mi te kolorowanie zrobiło nie wiem jak to poprawic
NA
dobra poprawione :)
B8
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:29
0

W switchu dz1, po wz1=a brakuje średnika, i próbujesz użyć zmiennej jako funkcji.
Wszystko było napisane w logach kompilacji :)

edytowany 1x, ostatnio: _borisov8
NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0

To rozumiem chodzi mi o to żeby tam wczytywał się znak wprowadzony w 1 działaniu.

NA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0

To nie może być aż takie trudne a czas nagli :P

spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:23 dni
1

Pod windowsa.

Kopiuj
#include <string>
#include <iostream>
#include <cstdlib>
#include <utility>
auto main(int argc, char **argv) -> int{
	const std::basic_string<char> cmdlexpr;
	std::getline(std::cin, const_cast<std::basic_string<char>&>(cmdlexpr));
	std::system(((std::basic_string<char>("set /a ")+*(&cmdlexpr)).c_str()));
	return !!!1+!!!2 == !!4;
}
edytowany 1x, ostatnio: spartanPAGE
Zobacz pozostałe 4 komentarze
NA
jesteś w jakikolwiek sposób zobrazować mi jak ma to wyglądać w c?
NA
nie czaje tego tematu no :P nie chcę wyłudzić programu tylko no żeby mi zamiast tego dz wczytywało znak z 1 działania :)
NA
Naprawdę nikt nie chce pomóc ? :(
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)