Download | Programy

Kalkulacka - funkce [MC] [MR] [M+] [M-]

Programovací jazyky, grafika, tvorba webu, SEO, programy pro práci s webem, vyhledávače

Moderátor: Moderátoři

badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

Zdravim vsechny mile lidi, co maji chvili na to precist si muj prispevek ba dokonce na nej odpovedet.

Ucim se v jazyku C programovat a snazim se o vytvoreni kompletni (zakladni) kalkulacky jako je ve windowsm, jen v podobe textovem editoru. Umi vsechny zakladni funkce.. od scitani po odmocnovani. Ovsem co neumi je funkce s M.confused smiley tedy:

[MC] = "Vymazat paměť"
[MR] = "Memory Recall" [MR] = "Memory Recall"
[M+] = "Add to Memory" [P +] = "Přidat do paměti"
[M-] = "Subtract from Memory" [M-] = "Odečíst z paměti"

Mohl by mi nekdo pomoct s kodem, ktery lze vlozit do zdrojaku, nebo s funkcemi, ci alespon vysvetlenim? Jeste neumim moc aplikovat, jsem zacatecnik.

Budu vdecny za kazdou radu. Vsem uprimne diky.... smiling smiley
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Tohle by mela byt ta lehci vec na kalkulacce. Jenom si zalozis novou promennou a s tou pracujes. Kdyz se stiskne "M+", udelas jenom pamet = pamet + vstup. Obdobne pak s "M-".
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
Návštěvník

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od Návštěvník »

aha.. no a když budu chtít vypsat všechny vypočitané přiklady do souboru? nevíš jak to udělám?
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Musis si logovat vsechna zadani do nejake promenne. Popr. hned zapisovat do souboru. Dela se to pres fopen, kterym soubor otevres a fwrite zapisujes do otevreneho souboru. Na konci jej pomoci fclose zavres.
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

jj tak nejak tomu rozumim, ale nevim jak to aplikovat... :(
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Jak jak? :D Proste... to tam dopises, ne?

Tohle je primitivni kod, ktery otevre (popr. vytvori) soubor a.txt a zapise do nej text ahoj, jak se mas?.

Kód: Vybrat vše

char *neco = "ahoj, jak se mas?";    
FILE *sbr;
    
sbr = fopen("a.txt", "a+");
fwrite(neco, 1, 17, sbr);
fclose(sbr);
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

kdyz mam program :

#include <stdio.h>

main()
{
float x,y,vys;
int op;

printf("Program kalkulacka (varianta s if)\n\n");
printf("Zadej x:");
scanf("%f",&x); /* nacteme x */
printf("Zadej y:");
scanf("%f",&y); /* nacteme y */
printf("Zadej operaci (1 znamena +,2 je -,3 je *, 4 je / :");
scanf("%d",&op);

if (op==1)
{
vys=x+y;
}

if (op==2)
{
vys=x-y;
}

if (op==3)
{
vys=x*y;
}

if (op==4)
{
vys=x/y;
}

printf("Vysledek operace je: %f\n",vys);
}


Jak udelam, aby mi program vypsal do ext. souboru vsechny pocty, ktere provedl hezky za seobou?
to uz tak lehky kod jiste nebude...:(
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Reseni je spousta, tady treba jedno z nich...

Kód: Vybrat vše

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    float x,y,vys;
    int op;
    char *text;
    FILE *soubor;
    
    soubor = fopen("a.txt", "a+");

    printf("Program kalkulacka (varianta s if)\n\n");

    printf("Zadej x: ");
    scanf("%f",&x);

    printf("Zadej y: ");
    scanf("%f",&y);
    
    printf("Zadej operaci (1 znamena +,2 je -,3 je *, 4 je / :");
    scanf("%d",&op);

    if (op==1) {
       vys=x+y;
       sprintf(text, "%f + %f = %f\n", x, y, vys);
    }

    if (op==2) {
       vys=x-y;
       sprintf(text, "%f - %f = %f\n", x, y, vys);
    }

    if (op==3) {
       vys=x*y;
       sprintf(text, "%f * %f = %f\n", x, y, vys);       
    }

    if (op==4) {
       vys=x/y;
       sprintf(text, "%f / %f = %f\n", x, y, vys);       
    }

    printf("Vysledek operace je: %f\n",vys);
    
    fwrite(text, 1, strlen(text), soubor);
    fclose(soubor);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

děkuji moc!!!!

ovšem jsem začátečník a učím se v C! pokud se nemýlím #include <iostream> // a direktiva preprocesoru using namespace std patří pod C+. ostatních příkazů si ale nejsem jistý, které si liší. je možné popsat příkazy v programu nad tímhle textem, které jsou z C+ a připsat k tomu přikazy v C?
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Jooo, tak to ja nevim :) Ja v C a C++ taky moc neumim, takze nevim, co kam patri...

EDIT: jmenne prostory (namespace) se tam stejne nepouzivaji, takze ten radek muzes smazat bez vlivu na funkcnost. Stejne tak hlavickove soubory staci prepsat na ciste C hlavicky a jde to...

Kód: Vybrat vše

#include <stdio.h>
#include <stdlib.h>
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

:( tohle bohuzel nefunguje.. nemas jeste nejaky typ? dik
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Vzdyt to funguje...

Kód: Vybrat vše

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

int main(int argc, char *argv[])
{
    float x,y,vys;
    int op;
    char *text;
    FILE *soubor;
    
    soubor = fopen("a.txt", "a+");

    printf("Program kalkulacka (varianta s if)\n\n");

    printf("Zadej x: ");
    scanf("%f",&x);

    printf("Zadej y: ");
    scanf("%f",&y);
    
    printf("Zadej operaci (1 znamena +,2 je -,3 je *, 4 je / :");
    scanf("%d",&op);

    if (op==1) {
       vys=x+y;
       sprintf(text, "%f + %f = %f\n", x, y, vys);
    }

    if (op==2) {
       vys=x-y;
       sprintf(text, "%f - %f = %f\n", x, y, vys);
    }

    if (op==3) {
       vys=x*y;
       sprintf(text, "%f * %f = %f\n", x, y, vys);       
    }

    if (op==4) {
       vys=x/y;
       sprintf(text, "%f / %f = %f\n", x, y, vys);       
    }

    printf("Vysledek operace je: %f\n",vys);
    
    fwrite(text, 1, strlen(text), soubor);
    fclose(soubor);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

Tobě to fakt funguje? ja to pustim, ale kdyz zadam cislo operace. hodi to chybu... a program prestal pracovat:(
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

Ano, funguje. Dev-C++ 4.9.9.2.
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

:-o Kdyz tenhle obsah vemu a zkopiruju a pustim .. hodi mi to tohle :(
Přílohy
nejde.jpg
nejde.jpg (50.63 KiB) Zobrazeno 41687 x
Uživatelský avatar
zener
Moderátor
Moderátor
Příspěvky: 2766
Registrován: stř srp 30, 2006 13:29

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od zener »

To mi spis prijde jako nejaky problem s pravy. Nespoustis to v Program Files? Zkus program "Projekt1.exe" zkopirovat na plochu a spustit tam.
PC: AMD Athlon II X4 645, Evolve Zeppelin GOLD 2x2 GB + A-Data Extreme Edition 2x1 GB, WD Caviar Black 1 TB, Sapphire Radeon HD 5850 Xtreme 1 GB GDDR5, LCD Samsung P2770HD 27"
NB1: Asus UL30A-QX141V - C2D SU7300, 2x2GB DDR2 RAM, 320 GB, 13,3" LED LCD... 12 hod provozu :)
NB2: MSI GX610PX - AMD Turion X2 TL-58, 2x1GB DDR2 RAM, 250 GB, ATI HD2600 256 MB GDDR3
NB3: IBM R40 - Intel Pentium 4-M, 512 MB DDR, 40 GB, ATI Radeon 7500 32 MB
mobil: Sony Ericsson Xperia X1

YouCan.cz - tvorba webových stránek a internetových projektů na míru
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

ne to jiste neni... navic ja ten program normalne pustim... jak je videt na obrazku, vyhodi chybu az v 3 sekvenci.. tedy kdyz zvolim operaci jako chci.. ted at zvolim kteroukoliv ze 4 tak to hodi chybu...
Tedy chyba by mohla byt mozna nekde tady:

fwrite(text, 1, strlen(text), soubor);
fclose(soubor);

system("PAUSE");
return EXIT_SUCCESS;

je mozne to zkusit prosim jeste nejak predelat?

ja uz si s tim fakt nevim rady:(
badatel
Nováček
Nováček
Příspěvky: 9
Registrován: pon led 18, 2010 08:57

Re: Kalkulacka - funkce [MC] [MR] [M+] [M-]

Příspěvek od badatel »

tak ja uz na to prisel.. i za pomoci jinych. ale Tobe taky dekuji za cenne rady... jo a to proc mi to padalo byla alokace pameti... tzn, ze tam jeste chybi bohuzel podstatna malickost, a to treba tohle

char *text[1024];

Tak vime pro priste a jeste jednou dekuji!!!!
Odpovědět