Fórum Ubuntu CZ/SK

Ostatní => Otevřená diskuze kolem Linuxu a OSS => Téma založeno: fester-182 09 Března 2008, 20:19:52

Název: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 20:19:52
dobry vecer mohol by som vas  poprosit o napisanie domacej ulohy z Cecka ?
ktora znie:

Kód: [Vybrat]
Napiste program ktori pripocita 19% dan.
Kód: [Vybrat]
Napiste program ktori bude citat znaky z klavesnice  a zastavy sa ak stlacime klavesu "z"
Kód: [Vybrat]
Napiste program ktori scita 3 cisla a napise ich aritmeticky priemer.
Kód: [Vybrat]
Napiste program ktori vypocita n-faktorial z m cisla.
vopred velmi pekne dakujem
Název: Re: Domaca Uloha jazyk C
Přispěvatel: Pavel Půlpán 09 Března 2008, 20:27:00
Tak krásnej a jednoduchej jazyk... 8)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 20:31:19
ja proti nemu nic nemam :)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 20:31:50
Psát to za tebe nebudu ale klidně ti opravím chyby. Hoď sem workdrafty a uvidíme co s tebou... ;)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 20:47:12
v com je problem? v tom, ze nevies C alebo nemas predstavu ako to spravit?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 20:54:34
v com je problem? v tom, ze nevies C alebo nemas predstavu ako to spravit?

predstavu  ako to spravit.
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 20:58:22
Představu ako to spraviť? Jestli umíš C, tak jsou to jednoduchý příklady... první až třetí je čistě o vstupu a výstupu. U čtvrtýho přidáš ještě trošičku znalostí z matiky.
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:00:07
tak teda skusim sa do toho pustit a napisem sem ak by som mal daky problem ..
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:02:26
Tak tak... že to nejde není průser, ale snaha musí bejt. (i když na střední jsem měl jiný tvzení :D)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:08:58
tomu stvrtemu zadaniu nejak nechapem, ze n-faktorial z m cisla?
sak z cisla "m" moze byt len m!. tak nechapem co chcu povedat tym "n".

-----
No ja som si to tiez spravil, musim uznat, ze som mal problem trochu zo syntaxou, predsalen C++ nie je SQL :D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:13:04
Kód: [Vybrat]
Napiste program ktori pripocita 19% dan.
Kód: [Vybrat]
int p;
main()
{
scanf ("%d, &p")
p=p x 1.19;
printf (vysledok:"&d", p);
scanf ("%d", &p);
}


what`s wrong ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:14:40
potrebujes cislo "p" dat ako double, pretoze int je cele cislo
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:14:51
tomu stvrtemu zadaniu nejak nechapem, ze n-faktorial z m cisla?
sak z cisla "m" moze byt len m!. tak nechapem co chcu povedat tym "n".

-----
No ja som si to tiez spravil, musim uznat, ze som mal problem trochu zo syntaxou, predsalen C++ nie je SQL :D

no bolo nam to vysvetlene v skole tak ze  n-faktorial z m cisla...
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:16:16
potrebujes cislo "p" dat ako double, pretoze int je cele cislo

takze bude tam na miesto int float ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:16:57
float, double ...jedno z tych, ja uprednostnujem double
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:17:21
Chyb je hned několik:

Kód: [Vybrat]
#include <stdio.h>   /* knihovni funkce potrebujou knihovnu funkci */

int main()   /* definovani typu funkce neni podminkou ale je to uz ve standardu */
{
  float p;    /* globalni promenna byla zbytecna a este spatne zvolenej typ */

  scanf("%f", &p);    /* chyba v syntaxi plus spatne zvolenej formatovaci priznak */
  p = p * 1.19;  /* no comment */
  printf("vysledok: %d", p);  /* opet syntaxe */

  return 0;   /* funkce by melat vracet hodnotu */
}
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:18:13
float, double ...jedno z tych, ja uprednostnujem double

aha, inak by to malo byt v poriadku ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:20:19
kokos, ja z tych scanf a printf zosaliem...nemozte pouzivat cout a cin? :D

btw...nie je vhodne do vypoctov davat natvrdo cislo, ale radsej si zadefinovat konstantu s danou hodnotou. Je to vhodne preto, ze ak je program rozsiahlejsi a potrebujete danu hodnotu zmenit trebars 19% na 10%, tak staci zmenit hodnotu konstanty a nie je treba dohladavat v kode kde vsade je potrebne zmenit hodnotu. (ale to uz zachadzam moc daleko, ale myslim, ze sa ti to zide :) )
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:21:42
kokos, ja z tych scanf a printf zosaliem...nemozte pouzivat cout a cin? :D

Ale fuj... v čistým C přece objektovej model není! ;)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:25:15
Chyb je hned několik:

Kód: [Vybrat]
#include <stdio.h>   /* knihovni funkce potrebujou knihovnu funkci */

int main()   /* definovani typu funkce neni podminkou ale je to uz ve standardu */
{
  float p;    /* globalni promenna byla zbytecna a este spatne zvolenej typ */

  scanf("%d", &p);    /* chyba v syntaxi */
  p = p * 1.19;  /* no comment */
  printf("vysledok: %f", p);  /* opet syntaxe a formátovací příznak */
  return 0;   /* funkce by melat vracet hodnotu */
}

nechapem tej chybe v syntaxe   aka je tam chyba ?  :(
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:28:28
Porovnej co jsi sem vložil ty a jak jsem to přepsal já. Moje verze je už funkční... snad. :D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:29:37
prepac nevsimol som si :) a este nechapem tomuto : /* float p;    globalni promenna byla zbytecna a este spatne zvolenej typ */ - myslel si tym ze na miesto float som mal int ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:31:38
Ještě jsem to doladil... teď už by to mělo být oki.

K tý globální proměnný. Deklaroval jsi ji mimo funkci, tudíž byla globální. Globální proměnná je zbytečná, když je užitá jenom v jedné jediné funkci. Dneska už se všeobecně doporučuje používat předávání dat pomocí parametrů funckí, nikoliv jejich uložením do globální proměnné. Důvodů je víc.
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:32:31
globalna premenna je definovana tak, ze sa da pouzit vsade a definuje sa mimo funkcie main().
tebe stacilo definovat premennu vo funkcii main().
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:42:31
vdaka za vysvetlenie obom .
Kód: [Vybrat]
Napiste program ktori bude citat znaky z klavesnice  a zastavy sa ak stlacime klavesu "z" 

#include <stdio.h>
{
main()
char z;
 tak a uz neviem pokracovat chcel by som napisat take nieco ze v momente ked zadam tu klavesu "z" tak sa program ukonci...
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:44:40
treba si spravit cyklus while, z ktoreho sa vyskoci pri stlaceni "z" alebo "Z".
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:45:20
while sme zatial nebrali iba  "for"  bude sa to dat aj s nim ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 21:45:53
Nemohl jsem si pomoct. Za každým písmenem je čekán Enter... :D

Kód: [Vybrat]
#include <stdio.h>

int main()
{
  char c;

  for (;;) {    /* nekonečný cyklus */
    c = getchar();    /* načtení znaku do proměnné a čekání na Enter */
    if (c == 'z') {  /* porovnání obsahu proměnné vůči znaku 'z' */
      break;   /* rozbytí nekonečného cyklu */
    }
  }

  return 0;
}

Edit: doplnil jsem to o info a smázl tvůj příspěvek. ;)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 21:51:46
prave som sa o to pokusal ja :))  takze  este raz vdaka .. takze do programu budem pisat znak + enter  a ked zadam "z" + enter  sa vlastne rozbije ten cyklus a koniec ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 21:53:31
prikaz break znamena vystupenie z cykla, teda ked sa splni podmienka a znak bude rovny 'z' tak sa pouzije prikaz break
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:01:20
Kód: [Vybrat]
Napiste program ktori scita 3 cisla a napise ich aritmeticky priemer.
#include <stdio.h>
main()
{
int a,b,c,x /  ak dam float  zobere to len cele alebo len desatinne cisla ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 22:02:02
Snaž se trošku... :D

Není tam napsaný co máš průměrovat. Deklaroval bych a, b, c jako int a prumer jako float nebo double. ;)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:02:30
ved sa snazim :) // aspon sa snazim snazit :)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 22:05:56
ved sa snazim :) // aspon sa snazim snazit :)

:D:D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:11:24
Kód: [Vybrat]
Napiste program ktori scita 3 cisla a napise ich aritmeticky priemer.
#include <stdio.h>
main()
{
int a,b,c;
float x;
       
         scanf("%d",a);
         scanf("%d",b);
         scanf("%d",c);
   x=a+b+c/3;
         prinf(aritmeticky priemer:%f ,x);
  return 0;

}

dufam ze to mam spravne :)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 22:13:13
x=a+b+c/3; prepis to na x=(a+b+c)/3; :)

a

prinf(aritmeticky priemer:%f ,x); na prinf("aritmeticky priemer:%f" ,x);
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:14:17
inak je to spravne ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 22:14:50
U funce scanf() by měl být uveden odkaz na pointer místo samotné proměnné:
Kód: [Vybrat]
scanf("%d", &a);

Zas máš chybu v syntaxi:
Kód: [Vybrat]
prinf("aritmeticky priemer: %f" ,x);   /* uvozovky */
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:17:35
U funce scanf() by měl být uveden odkaz na pointer místo samotné proměnné:
Kód: [Vybrat]
scanf("%d", &a);

Zas máš chybu v syntaxi:
Kód: [Vybrat]
prinf("aritmeticky priemer: %f" ,x);   /* uvozovky */

sakra, v PC to mam spravne ale  sem som to napisale  zle ...  opravene :), dufam ze uz  je ot OK :)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 09 Března 2008, 22:20:37
no idem ja uz spat , este raz velka vdaka obom ze ste to somnou vydrzali ... ten priklad cislo 4 si necham na rano .
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 09 Března 2008, 22:21:33
... ten priklad cislo 4 si necham na rano ...

Tak to abysme rači zejtra nevstávali vůbec... ;D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Vojtěch Trefný 09 Března 2008, 22:23:30
... ten priklad cislo 4 si necham na rano ...

Tak to abysme rači zejtra nevstávali vůbec... ;D
;D ;D ;D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 09 Března 2008, 22:23:49
no idem ja uz spat , este raz velka vdaka obom ze ste to somnou vydrzali ... ten priklad cislo 4 si necham na rano .

niet zac a GN
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavelp 10 Března 2008, 07:12:01
Dostal vas .... Ja vedel, ze Vas dostane.
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Firzen 10 Března 2008, 10:59:56
Škoda, že neděláte v C++.. poslední úkol by byl takhle jednoduše  :)

Kód: [Vybrat]
#include <iostream>

using namespace std;
int main()
{
int i=0, cislo, faktorial=1;

cout << "Zadej cislo: ";
cin >> cislo;
cin.get();

for(i=1; i<cislo+1; i++)
{
faktorial=i*faktorial;
}

cout << "Faktorial z cisla " << cislo << " je: " << faktorial << "\n\n";
return 0;
}
   
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 10 Března 2008, 11:04:16
by ma zaujimalo v com je lepsi \n od <<endl;
Název: Re: Domácí úloha z jazyka C
Přispěvatel: nettezzaumana 10 Března 2008, 11:05:27
jsi liny, drzy a patrne retardovany synek .. skol je pro Te skoda ..

#include <stdio.h>

int main(void) {

        int c;
        float a;
        double f;

        printf("\n?cena bez dane : ");
        scanf("%lf", &f);
        printf("\n?vyse dane v %%: ");
        scanf("%f", &a);
        printf("vysledek jest : %.2f\n", f / 100 * (100 + a));
        printf("aritmeticky prumer dane, ceny bez a s dani jest : %.2f\n", (f + a + (f / 100 * (100 + a))) / 3);

        printf("\na ted si tupy synku mackej cudliky :/ ..\n");

while(1) {
        if((c = getchar()) < ' ')
                continue;
        if(c == 'q')
                break;
        }
}


Název: Re: Domácí úloha z jazyka C
Přispěvatel: Firzen 10 Března 2008, 11:13:32
Citace
by ma zaujimalo v com je lepsi \n od <<endl;
Je kratší  ;) jinak v tom neni rozdíl(myslím).
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 10 Března 2008, 11:15:52
by ma zaujimalo v com je lepsi \n od <<endl;

V čem? Možná v tom že std::endl je součástí modelu C++, v C není. Používají se oba, podle toho jak jsou vhodnější.

Edit: Jak uvedl kolega výše, není snad lepší napsat "\n\n\n" než  ... << endl << endl << endl; ;)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: wam]Spider007 10 Března 2008, 11:29:21
no to viem, ze \n je C a <<endl je C++, ale sak ked uz robime ako C++ tak by sme mali pouzivat endl, IMHO je to aj o dost prehladnejsie i ked sa viac clovek naklepe.

btw...ntz rofl :D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 10 Března 2008, 11:35:26
Je to celé o pohodlí. V současném ISO standartu C++ jsou možné oba zápisy. Je to tedy na programátorovi, který použije a který se mu hodí v dané chvíli líp. Tím bych to uzavřel, nebo se tady sežereme? :D
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 10 Března 2008, 11:38:11
ntz ///  to bolo mierene na mna  ?

Název: Re: Domácí úloha z jazyka C
Přispěvatel: nettezzaumana 10 Března 2008, 11:45:19
4 fester >>
jiste, jeste ze mi tema vcera uniklo ..

nevim, jaka skola bere v breznu prvni 3 kapitoly z herouta, ale prijit sem na forum s "domacim ukolem" obtiznosti absolutnich zakladu a drze si rict o vysledek ..

nevim nevim, skol je pro Te skoda.. po svete chodi spousta jinych rimmeru, kteri meli "spatne rodice" a jejich schopnosti staci na prvni 3 kapitoly herouta (tzn. domaci ukoly budou nosit sem na forum az od 5. kapitoly) ..

jsi ostuda -- a ne tim, ze neco nevis, ale tim, ze nikdy nic vedet nebudes a nemas dost soudnosti na to, aby jsi se to alespon snazil zamaskovat .. naopak se snazis delat duleziteho..
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 10 Března 2008, 11:51:14
Kód: [Vybrat]
nevim, jaka skola bere v breznu prvni 3 kapitoly z herouta  cele 4 roky sme nic  nerobili v skole  ked uz "hori"  tak na nas tlacia s ucivom, prvu hodinu sme brali 3 kapitoly, dali nam hned ulohu z toho tak preto som poprosil teda o radu .

Kód: [Vybrat]
naopak se snazis delat duleziteho.. - na toto si ako prisiel  ?
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 10 Března 2008, 11:55:17
Vskutku zajímavé téma, ale nechcete si o tom pokecat ala private messages? 8)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: nettezzaumana 10 Března 2008, 11:59:47
nebudu se s tebou hadat, toto je muj posledni prispevek k tomuto tematu ::

1) jsi lenoch :: ptas se na elementarni veci (1-3 kapitoly o jazyku C, tutorialy), coz by zas tak nevadilo, ale spojovat to se skolou, domacim ukolem .. ne!
2) je videt, ze jsi "cele 4 roky nic nerobil" .. tvuje pristup je pro me neomluvitelny a mrzky .. pokud by jste ve skole neco delali a ty jsi prisel s domacim ukolem, ve kterem se po tobe chce neco jineho nez kuadrat obsah prvnich dvou kapitol herouta, tak nereknu ani popel a rad Ti budu pomahat ..

zde jsem skoncil, howgh
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 10 Března 2008, 12:05:08
oukej skoncime teda  tu nasu debatu, kazdy ma svoj nazor na urcitu vec.

chcel som len dodat ... keby berieme  C od prveho rocnika ako terajsi prvaci nie dva mesiace pred maturou, tak by som tu neotravoval s domacou ulohou.
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Pavel Půlpán 10 Března 2008, 12:09:06
Jsem rád, že jste se dohodli. Kromě literatury exitují i online seriály o C/C++.

Např. na LinuxSoftu... (http://www.linuxsoft.cz/article.php?id_article=370)
Název: Re: Domácí úloha z jazyka C
Přispěvatel: fester-182 10 Března 2008, 12:10:42
budem studovat  :-X
Název: Re: Domácí úloha z jazyka C
Přispěvatel: Martin 'Želva' Malý 10 Března 2008, 14:55:37
Pravda, linusoft je úžasný: PHP, GIMP, SQL...
Název: Re: Domácí úloha z jazyka C
Přispěvatel: existpierre 22 Března 2008, 14:38:33
by ma zaujimalo v com je lepsi \n od <<endl;

Ked chcem dat napriklad cisto vystup premennu tak dam cout << x << endl; ked je vystup string tak na konci dam "...\n";