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