Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 18 Jan 2021, 05:51

Všetky časy sú v GMT + 1 hodina


Vyhľadávanie našlo 5 výsledkov

Autor Správa

 Skočiť do kategórie   Skočiť do témy

 Predmet príspevku: Re: Dátový typ pre veľké čísla
Napísal: 06 Mar 2015, 10:42 

Po tom, ako som si rozobral kód kúsok po kúsku, tak som prišiel na to kde je chyba.
Code:
 zad_cisloint = (int)zad_cislor;
V tomto bode som to premenil na základný typ int, ktorý také veľké čísla nepodporuje. Zmena na
Code:
zad_cisloint = (uint64_t)zad_cislor;
to vyriešila

 Skočiť do kategórie   Skočiť do témy

 Predmet príspevku: Re: Deti na lúke
Napísal: 23 Mar 2015, 14:49 

Samozrejme je tento tvoj kód oveľa prehľadnejší. Ja si k svojmu píšem komentáre, aby som aj v budúcnosti vedel čo a ako som myslel pri písaní kódu, ale nezachádzal som moc do podrobností a pri kóde som sa snažil len aby fungoval keď ho odovzdám.

C-éčko ma celkom chytilo a baví ma v ňom programovať, takže veľká vďaka za tento web, ktorý ma k nemu priviedol :) No stále viac a viac zisťujem, že je v ňom ešte hrozne veľa na učenie a že veľa vecí ešte vôbec neviem. Zatiaľ som si sám spravil iba jeden taký väčší projekt, keď som skúšal spraviť nejakú jednoduchú kalkulačku aspoň na základné derivácie, inak si robievam podobné zadania,aké som našiel na liahen.ksp.sk alebo teraz aj súťaž KSP.

 Skočiť do kategórie   Skočiť do témy

 Predmet príspevku: Jednoducha kalkulačka na derivacie
Napísal: 23 Mar 2015, 16:22 

Moja malá jednoduchá kalkulačka na derivácie, zvláda(aspoň myslím) jednoduché derivácie, goniometrické funkcie, logaritmy, a prvú deriváciu násobenia alebo delenia.
V prílohe prikladám zdrojové kódy, program je rozdelený na .c hlavný a .h s funkciami. Veľa vecí sa tam dá určite spraviť oveľa lepšie, chcem na tom časom ešte zapracovať ako taký vedľajší projekt popri učeniu sa ďalším veciam v C.

Kedže súbor .h nemôžem priložiť, prepísal som názov na funkcie.c , po stiahnutí si tento súbor prosím prepíšte na derivacie.h .

Subor .c a teda funkciu main pisem aj sem:
#include"derivacie.h"


int parse_int(char *number);

int main()
{
int c,i,cislapred[100],cislapo[100],cislonasob[100],j = 0,n,cislo,opakovat = 1,koniec,oznam = 0,oznam1 = 0; //polia a premenné potrebné na uloženie čísiel
char n1[50],n2[50],s[100],pomoc[10],pomoc1[10],buffer[101],pokr = 'A',*najdi,*najdi2; //polia a premenné potrebné na uloženie znakov
char v[100] = {""}; //pole pre vysledny retazec
printf("Vyraz x na druhu zapis v tvare x2 alebo x^2(^ je ALT 94).\nAk je exponent zaporny,zapis ho do zavoriek! Napriklad x(-2) alebo x^(-2)\n\n");
printf("Ak zadavas nasobenie alebo delenie, jednotlive vyrazy uzatvor v zatvorkach!\nNapr. (5x+5)*(5x) alebo (5x+5)/(5x)\n"); //instrukcie
while((pokr == 'A')||(pokr == 'a')){ //aby bolo mozne opakovat zadavanie
while (opakovat) { //parsovanie, aby bolo mozne zadat iba cislo, ak je zadanie nieco ine, opakuje sa zadanie
printf("\nKolku derivaciu si zelas?\n"); //kolka derivacia ma byt
fflush(stdin); //vyprazdnenie bufferu
scanf(" %s", buffer);
if (!parse_int(buffer))
printf("Nespravny format cisla!\n\n");
else{
n = parse_int(buffer);
opakovat = 0;
}
}
printf("\nZadaj vyraz na derivaciu: \n");
fflush(stdin); //vyprazdnenie bufferu
scanf("%s",&s); //zadanie vyrazu na derivacie
while((c = getchar())!= '\n'){ //ak boli zadane aj medzery, funkcia prida medzeru, precita dalsi retazec do zakladneho od pozicie konca
strcat(s," ");
scanf("%s",&s[strlen(s)]);
}
if((strstr(s,")*(") == NULL)&&(strstr(s,")/(")== NULL)){ //ak neboli najdene znaky urcujuce nasobenie alebo delenie, tak vykona jednoduchu derivaciu
for(cislo = 0; cislo < n; cislo++){ //funkcia bezi dokym nedostaneme zelanu derivaciu
for(i = 0; i < strlen(s); i++){
deriavacie(s,v,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam funkciu na jednoduchu derivaciu
derivacie_funkcii(s,v,pomoc,pomoc1,i); //volam funkciu na derivaciu funkcii sinus,cosin atd...
}
v[strlen(v)] = '\0'; //zapisem ukoncovaci znak do vysledku
s[0] = '\0'; //ukoncovaci znak na zaciatok retazca s
strcpy(s,v); //skopirovanie vysledneho retazca do zakladneho s --> aby bola mozna viacnasobna derivacia
printf("%d. derivacia: ",cislo+1);
puts(v); //vypis vysledneho retazca
v[0] = '\0';
}
}
najdi = strstr(s,")*("); //hladam znak pred nasobenie
while (najdi != NULL) {
koniec = najdi - s;
najdi = strstr(najdi + 1,")*(");
oznam++;
}
if((oznam == 1)&&(n == 1)){ //ak je tam jeden nasobok a ziadana je prva derivacia
derivacianasobok(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam funkcia derivacie jedoducheho nasobenia
}
else if((oznam == 1)&&(n == 2)){ //ak je tam jeden nasobok a ziadana je druha derivacia
derivacianasobok(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam funkcia derivacie jedoducheho nasobenia
derivacia2nasobok(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam druhu derivaciu--je to chybne
}
else if((oznam == 2)&&(n >= 2)){ //ak su dva nasobky a ziadana je druha alebo vacsia derivacia
if(n > 2)
printf("Dokazem iba 2 derivaciu z nasobku :(\n"); //ak je vacsia ako 2 derivacia ziadana vypis
derivacianasobok(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam funkcia derivacie jedoducheho nasobenia
derivacia2nasobok(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j); //volam druhu derivaciu--je to chybne
}
najdi2 = strstr(s,")/("); //to iste len s delenim
while (najdi2 != NULL) {
koniec = najdi2 - s;
najdi = strstr(najdi2 + 1,")/(");
oznam++;

}
if((oznam1 == 1)&&(n == 1)){
derivaciadelenie(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j);
}
else if((oznam1 == 1)&&(n == 2)){
derivacia2delenie(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j);
}
else if((oznam1 == 2)&&(n == 2)){
if(n > 2)
printf("Dokazem iba 2 derivaciu z delenia :(\n");
derivaciadelenie(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j);
derivacia2delenie(s,v,n1,n2,pomoc,pomoc1,i,cislapred,cislapo,cislonasob,j);
}
oznam = 0; //moznost zadania znaku pre pokracovanie, ak sa pomyli opakovat, zmena hodnot aby platili pre opakovanie
oznam1 = 0;
fflush(stdin);
printf("\nChces zadat dalsi vyraz na zderivovanie? [A/N]\n");
pokr = getchar();
while((pokr != 'a')&&(pokr != 'A')&&(pokr != 'N')&&(pokr != 'n')){
fflush(stdin);
printf("Nespravny vyber!");
printf("\nChces zadat dalsi vyraz na zderivovanie? [A/N]\n");
pokr = getchar();
}
opakovat = 1;
}
return 0;
}



 Skočiť do kategórie   Skočiť do témy

Napísal: 24 Mar 2015, 16:39 

Vďaka, kód som už upravil tak, že mi už nevyhadzuje žiadnu chybu/varovanie.

 Skočiť do kategórie   Skočiť do témy

 Predmet príspevku: Hra v C
Napísal: 10 Apr 2015, 21:08 

Zdravím,
napísal som jednoduchú hru v C-éčku, niečo na štýl stolných hier a hádzania kockami. Na hracom poli sú otáznikmi ('?') znázornené políčka RISK/ZISK, kde sú zadávané úlohy. Je to môj prvý pokus o vytvorenie nejakej hry ;)
Prípájam ZIP súbor s kódmi
Stránka 1 z 1 [ Vyhľadávanie našlo 5 výsledkov ]


Všetky časy sú v GMT + 1 hodina


Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK