IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Jednoduchá kalkulačka v jazyku C

Jednoduchá kalkulačka v jazyku C so zdrojovým kódom.

/*
  Name: Kalkulacka
  Copyright:
  Author: David Jancik
  Date: 07/12/10 12:22
  Description: Aplikace Kalkulačka - '+', '-', '*', '/', '^', 'o'
  Thanks: V. Pospíchal - Děkuji moc za pomoc s funkcí na odmocňování.
*/

//načtení knihoven
#include <stdio.h>
#include <stdlib.h>


//tělo
main() {

       int i,j; // pro cyklus
       double cislo, cislo2, vysledek, vysledek2, vysledek3; /*aby se mohlo počítat s desetinnými čísly*/
       char operand; //načítání znaků
       char pokracovat;

       //přivítání do aplikace
       printf("Vitejte v aplikaci kalkulacka\nZadejte priklad napr.: 5.58 + 5.89 a potvrdte enterem\nPro napovedu zadejte '1?1'\nBy sczdavos - www.itnetwork.cz\n");

       /*cyklus - vypočítá příklad a vrátí se na začátek a počítá do doby až je splněná podmínka
       pokud je splněná podmínka cislo, cislo2 = 0 a operand = k program vypíše text a ukončí se*/

       do {
          printf("Zadejte priklad:\n");
          scanf("%lf %c %lf", &cislo, &operand, &cislo2); // nacte prvni cislo, znamenko, druhe cislo

          /*pokud se operand rovna deleni a delitel se rovna nule vypise chybu*/
          if((operand == '/') && (cislo2 == 0)){
                printf("Nulou nelze delit");
          }

          //prepinac nacte promennou k a podle toho co v ni je provede dalsi prikazy
          switch(operand){
                case'+':
                        printf("%lf", cislo+cislo2); // jestlizze obsahuje + nacte se i a j a sectou se
                break; // ukonceni case pise se pod kazdym case

                case'-':
                        printf("%lf", cislo-cislo2);
                break;

                case'*':
                        printf("%lf", cislo*cislo2);
                break;

                case'/':
                        printf("%lf", cislo/cislo2);
                break;

                case'^':
                        /*do promenne vysledek se nacte cislo a to se pak nasobi cislem tolikrat dokud neni splnena podminka*/
                        vysledek = cislo;
                        for (i=1; i<cislo2; i++) {
                            vysledek *= cislo;
                        }
                        printf("%lf", vysledek);
                break;

                case'o':
                 //cyklus na odmocnovani
                /*nejdrive se vezme cislo a pricte se k nemu libovolne cislo pak se vydeli mocninou to je prvni krok, pote se to cislo vydeli tiim co vyslo (tolikrat na kolikatou odmocnujeme -1 např. odmocnujeme na druhou delime jen jednou) a pak se k vysledku pricte cislo ktere jsme delili tou mocninou a priteme ho tolikrat na kolikatou odmocnujeme, pak zase vydelime mocninou*/
                /*funguje to na principu ze ziskavame rozmezi jedno nizko a jedno vysoko treba 0 a 4 a z toho delame prumer tak dlouho dokud nam nevyjde vysledek v tomto pripade 2*/

                cislo2--;
                if(cislo>0){
                            vysledek2 = cislo + 1; //cislo + libovolne cislo
                            vysledek3 = vysledek2 / (cislo2+1);

                            for(i = 1; i<100; i++){
                                 vysledek = cislo;
                                 for(j = 1; j<cislo2+1; j++){
                                      vysledek /= vysledek3;
                                 }
                                 vysledek2 = (cislo2 * vysledek3) + vysledek;
                                 vysledek3 = vysledek2 / (cislo2+1);
                            }
                            printf("%lf", vysledek3);
                 }
                 else{
                     printf("Zaporna cisla nejdou odmocnovat - zadej kladne a pak pred vysledek pripis minus.");
                 }

                 break;

                 default:
                         printf("Spatny vstup\nAplikace Kalkulacka umi tyto funkce:\nscitani '+'\nodcitani '-'\nnasobeni '*'\ndeleni '/'\numocnovani '^'\nodmocnovani 'o'\ndesetinna cisla zadavejte formou tecek '.'\npriklad: 5.4*8.444\n\n"); // pokud je zadán jiný znak vypíše se toto
                break;
        }
                printf("\n\n"); // \n je odradkovani

                printf("Pokracovat? a/n\n");
                fflush(stdin);//scanf v cyklu zlobí toto je třeba zavolat jinak se scanf neprovede
                scanf("%c", &pokracovat);
    } while (pokracovat == 'a');
        printf("Dekuji za pouziti kalkulacky. www.itnetwork.cz\n");;
        system("pause");
}

Galéria


 

Všetky články v sekcii
Zdrojákoviště jazyka C - Základná konštrukcia
Program pre vás napísal David Jančík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity