Jednoduchá kalkulačka v jazyku C

C++ Základní konstrukce C Zdrojákoviště Jednoduchá kalkulačka v jazyku C

Jednoduchá kalkulačka v jazyku C se zdrojovým kódem.

/*
  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.devbook.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.devbook.cz\n");;
        system("pause");
}

Galerie


 

  Aktivity (2)

Program pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 



 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!