Chci víc a hlouběji!

    21.02.07 (Středa)

    Náhodná čísla

    Náplní dnešní dvouhodinovky programování bylo psaní programu, který od uživatele načte počet čísel, která poté náhodně vygeneruje, a jejich rozsah (např. 10 znamená čisla od 0 do 10). Náhodná čísla vytiskne a pak vypíše čísla, která se v onom výčtu objevují vícekrát než jednou, spolu s počtem, kolikrát. To vše vzestupně seřazeno. A úplně nakonec vytiskne součet všech vygenerovaných čísel dohromady.

    Kruci, mám čím-dál-tím intenzivnější pocit, že píšu nesrozumitelně. Asi to bude tím, že to je pravda - sorry, nějak ještě spím... :-)

    [pokračovat ve čtení]

    čas 16:04:02 - kategorie: C++ - permlink trvalý odkaz - Komentáře:3 [21.02.07 18:18]

    31.01.07 (Středa)

    Přepínače

    Přepínače v C++. Teorie v kódu:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[]) { /* Prepinac - switch ----------------- - switch X if: - if - pouze 2 moznosti (true - false) - switch - vyraz, vedouci na int nebo char - administrativa switch(podminka/vyraz) { case hodnota1: { kod pro hodnotu 1 break; } case hodnota2: { kod pro hodnotu 2 break; } ... default: hodnota { */ int cis;

    // pro zadanou cislici vytisknout slovni ekvivalent printf("Zadej cislo: "); scanf("%d",&cis); switch(cis) { case 1: printf("jedna"); break; case 2: printf("dva"); break; case 3: printf("tri"); break; default: printf("neumim"); break; } printf("\n"); system("PAUSE"); return EXIT_SUCCESS; }

    čas 11:11:27 - kategorie: C++ - permlink trvalý odkaz - Přidat komentář!

    17.01.07 (Středa)

    Závodníci

    Jelikož, jak už jsem psal, ležím doma se zlomenou nohou, mimo jiné - abych si ukrátil čas - trochu programuju. Vzpoměl jsem si, že jsme ve škole dělali někdy na podzim program pro pořadatele běžeckých závodů; zadá se do něj závodníkovo jméno, jeho startovní číslo, čas a program závodníky seřadí podle času. Plus se myslí na věci, jako že závodník nedoběhl, že jejich počet není předem přesně znám a tak.

    c++

    Protože jsem ale zrovna potom chyběl, nepsal jsem ho (o půlených hodinách), jen jsem si pamatoval zadání; tak jsem si ho dneska zkusil udělat. Zapnul jsem si Winamp, naladil Nightwish, asi hodinu psal a zarazil jsem se. Kurva fix, jak jen udělat to seřazení podle času? Asi 15 min jsem nad tím přemejšlel a fakt mě nic nenapadá.. Obracím se tedy na vás, lepší programátory, než jsem já, co sem občas chodíte (Drekin, XeeD, Lordpas, ...): kdybyste měli chvíli čas a napadlo by vás něco (nemyslím, samozřejmě, kód - jen obecnej algoritmus, jak vůbec na to), byl bych rád, kdybyste to tu nechali jako komentář! Předem díky :-).

    P.S.: jelikož tyhle automatický exporty zdrojáků do HTML, kdyrý dělá Dev C++, rozhazujou na mým webu uživatelům s IE6 menu, dávám kód do pokračování článku. - opraveno, moje kódy už nic nikomu nerozhazují :).

    [pokračovat ve čtení]

    čas 12:48:00 - kategorie: C++ - permlink trvalý odkaz - Komentáře:4 [21.01.07 19:15]

    15.11.06 (Středa)

    Převedení dolarů na Kč

    Dnešní zadání bylo napsat program, jež načte textový řetězec a z textu, zadaným ze znakem $, vyexportuje číselnou hodnotu - počet dolarů. Ten pak převede na koruny. Výsledek je řetězec, který je se zadaným identický, ale například místo '$1' tedy dosadí '24.56 Kc'.

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[]) { char vstup[80], pred_hodnotou[40], po_hodnote[40], dolary[30]; int i, j=0,id; float kc=0, pom=0, dolar=0; printf("Zadej vstupni retezec: "); gets(vstup); // export ciselne hodnoty, zadane za znakem $, do noveho pole 'dolary' for(i=0; i<80; i++) { if(vstup[i]=='$') { id=i; i++; while(true) { if(vstup[i]>='0' && vstup[i]<='9') { dolary[j]=vstup[i]; j++; i++; } else { dolary[j]='\0'; break; } }

    } else { if(vstup[i]=='\0') break;

    } } //prevod hodnoty, ulozene v poli 'dolary', do promenne ve float for(i=0; i<j; i++) { pom=dolary[i]-48; dolar+=pom/10; dolar*=10; } kc=dolar*24.56; for(i=0; i<id; i++) { pred_hodnotou[i]=vstup[i]; } pred_hodnotou[i]='\0'; i=id+j+1; j=0; while(vstup[i]!='\0') { po_hodnote[j]=vstup[i]; j++; i++; } po_hodnote[j]='\0'; printf("%s%f Kc%s\n",pred_hodnotou,kc,po_hodnote); system("PAUSE"); return EXIT_SUCCESS; }

    čas 11:30:32 - kategorie: C++ - permlink trvalý odkaz - Přidat komentář!

    07.11.06 (Úterý)

    Výplaty (porovnání znaků ve dvou řetězcích)

    Program má v jednom poli uložená jména zaměstnanců a ve druhém poli jejich platy. Do třetího pole uživatel zadá libovolné jméno a program zjistí, zda je shodné s některým v 'databázi' zaměstnaných; pokud ano, vypíše ke jménu příslušný plat.

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[]) { char jmena[4][10]={{"Novotny"},{"Novak"},{"Vesely"},{"Stary"}}; char platy[4][15]={{"5.000"},{"10.000"},{"15.000"},{"20.000"}}; char zadani[10]; int i,j=0,nalezeno=0; printf("Jmena v databazi: Novotny, Novak, Vesely, Stary.\n\n"); printf("Zadej jedno z jmen (je treba dodrzovat mala/velka pismena): "); gets(zadani); for (i=0; i<4; i++) { while(jmena[i][j]!='\0') { if (zadani[j]!=jmena[i][j]) break; j++; } if(zadani[j]=='\0') { nalezeno=1; break; }

    } if(nalezeno==1) printf("\np. %s ma plat %s,- Kc\n",jmena[i],platy[i]); else printf("\nJmeno nenalezeno!\n\n"); system("PAUSE"); return EXIT_SUCCESS; }

    čas 22:31:57 - kategorie: C++ - permlink trvalý odkaz - Komentáře:3 [09.11.06 16:27]

    Starší články:

    01.11.2006

    23.10.2006

    18.10.2006

    12.10.2006

    11.10.2006