Takze prvy program zadanie, ak sa niekomu chce moze to nakodiť, samozrejme v
C,
1,Je zadané jednorozmerné pole celých čísel M[12]. Vytvorte program, ktorý
naplní prvky na párnej pozícii poľa hodnotou 1, prvky na nepárnej pozícii
poľa hodnotou 0 a vypíše modifikované pole. V konečnom výpise poľa nech
sú jednotlivé prvky oddelené čiarkou a medzerou.
Tak ještě jednou se všema popiskama aby jsi vše chápal jak je to
správně a pořádně si to pročti, popřípadě mrkni na můj článek o C
pole,cykly atd : http://www.itnetwork.cz/…ecko-zaklady
#include <stdio.h> // klasicka knihovna pro základní funkce#include <stdlib.h> // IOint main(void)
{
int m[12]; // celočíselné pole s hodnotou 12+1 (0)int deleni,i; // deleni pro i%2// zapisování do polefor(i = 1; i < 13; i++) // cyklus projede 12x
{
deleni = i%2; // záskám zbytek po děleníif(deleni == 0) // když zbytek po dělení vyjde 0 bude číslo sudé
{
m[i] = 1; // zapisuju do pole 1čku (sudé číslo)
}
else
{
m[i] = 0; // pokud bude číslo po dělení 1 číslo bude liché zapisuju 0
}
}
// vykresluju polefor(i = 1; i < 13; i++)
{
printf("%d",m[i]);
}
return0;
}
ano mam to do skoly, ale tych prikladov mam strasne vela, a nestiham to neak
vsetko, nakolko sa C ucim cca iba dva mesiace co je strasne malo, ale dakujem,
tvoje clanky som presiel vsetky, myslim si ze pre zaciatocnika ako som ja su
perfektne,
Chtěl si vyplnit 1-12, pole začíná od nuly, takže jsem začal zapisovat
a vykreslovat až od jedničky (kdyby jsi chtěl vše si samozřejmě podle vzoru už sám upravíš)
EDIT : jinak tohle pole má 13 hodnot včetně té nuly
EDIT2 : od jedničky začínám protože používám I i jako hodnotu na
dělení alias čísla 1-12 abych nemusel použít další proměnnou
to že tam neni 0 je celkem jedno jenže ty indexuješ 12 a to už je mimo
pole poslední prvek má index 11 ne? Měníš prvky 1 - 12 ale pole má prvky 0
- 11, vypíše se 12 hodnot tak jako tak.
Když deklaruješ pole M[12] tak nemá 13 prvků ale 12, pole je pointer a to
číslo v závorkách určuje pro kolik prvků danýho typu se má alokovat
paměť. Číslo v hranatý závorce určuje o kolik prvků v paměti se
posouváš neboli M[0] je to samý jako *M a třeba M[5] je to samý jako *(M +
5), tzn logicky nemůžeš použít M[12] protože M + 12 je 13. prvek a pro ten
už paměť neni alokovaná.
Céčko tě nechá dělat co chceš, jak řikam - pole je pointer a přes
pointer můžeš sahat do paměti kam chceš. Často se stane že tim
přepíšeš data který nemáš a pak program většinou padá, taky se ale
nemusí stát nic. Každopádně na tohle si dávat pozor je celkem základní
věc asi ve všech jazycích.
Jop já vím, já jsem pole projel už tehdy v Céčku rychle (brnkačka) a
Céčko mi to uznalo takže jsem si samozřejmě myslel že je to správně.
Aspoň má Tomino aspoň nějaký ten úkol teď poupravit pole
Věř tomu, že pole m[12] má indexy prvků v rozsahu 0..11. Když se
pokusíš zapsat do "dvanáctého" prvku, tak to zapíše do nějaké jiné
proměnné. Někdy to proces přežije, jindy vyhodí záhadnou chybu nebo v
nejhorším případě pokračuje s chybou, která se projeví úplně někde
jinde.
V řízených taky pokud děláš dynamický pole, debugger pokud vim
neodhalí přetečení pole jehož velikost se určuje za běhu. V řízenym
jazyce by se to ale mělo pak nějak ochránit za běhu. V C++ můžeš použít
nějakou knihovnu která to šetří za běhu, můžeš si udělat i svojí. V
klasickym C si musíš prostě dávat pozor.
no viem budete sa asi smiat ale este by som potreboval jeden, nechce mi to
neak nacitavat !!! Vytvorte program zodpovedajúci softvéru automatu na výdaj
nemocničných návlekov. Návleky stoja 1.5€. Užívateľ môže vhadzovať
do systému len 0.1, 0.2, 0.5 a 1-eurové mince. Logika automatu sčítava sumu
vhodených mincí. Po zadaní požadovanej sumy vypíše hlásenie, aby si
užívateľ vzal vydané návleky. Ak zadaná suma presiahne 1.5€, automat
vypíše hlásenie, aby si užívateľ vzal návleky a výdavok (hodnotu
výdavku vypočítať nemusí).
To záleži na tom jak se chová když ji odhalí. Jestli se třeba ukončí
aplikace a nebo jenom dělá že nic a přezkočí tu chybnou instrukci, což
nevim, nikdy sem to nezkoušel.
A to ses nad tím ani nepozastavil? Nebylo by lepší třeba zkoušet než se
ptát? Co je těžkého na tom sčítat hodnoty do té doby, než přesáhnou
danou hodnotu? Naprosto primitivní úloha, nemůžeš očekávat, že to za
tebe někdo bude dělat, my tě nasměrujeme, rádi ti poradíme, ale musíš
nám ukázat snahu.
projeď si podmínky a zkus to sám... a pak nám ukaž příklad já za tebe
každý úkol dělat nebudu
sem přijď až budeš mít konkrétní problém a nebudeš si vědět rady,
mrkni se na podmínky http://www.itnetwork.cz/…cka-tutorial a zkus to prosím
sám
mate pravdu musim sa to naucit sam, ono to nie je az tak tazke ked clovek
rozmysla ale mam jednu
otazocku ako mam napisat toto do printf() aby mi to vypisalo presne takto: James
Bond \ "Agent 007" \ # 150% zaruka # / aj stymi uvodzovkami, lomitkami a
krizikmi ???
To co je za % je různý podle toho jakej datovej typ načítáš. Tady máš
3 příklady, ostatní si někde najdi já si je nepamatuju. V klasickym C moc
nedělam.
osprevedlnujem sa ja som zle polozil otazku mam priklad v kotrom potrebujem
nacitavat premenu dajme tomu scanf("%d",&a); do urcitej hodnoty napr.
100,ale zadavat mozem len po 10, tak aku cyklus by tu bolo najlepsie a
najednoduchsie pouzit ? do while?? popripade zdrojovy kod ako by to malo
vyzerat
Bože nemůžeš se vyjadřovat trošku srozumitelněji? nějaké hodnoty 100
a 10 vůbec nevím co máš na mysli... jestli pole.. nebo co? Co má být
výsledek? Chceš načítat hodnoty? Jako že výstup bude :
Zadej hodnotu : 10
Zadej hodnotu : 50
zadej hodnotu : 61
ale ze ta hodnota se nesmí rovnat 100+? Fakt nevím co po mě chceš pokud
do pole tak je to takhle :
int pole[100];
for(i = 0; i < 100; i++)
{
scanf("%d", &a);
pole[i] = a;
}
Pokud chceš dynamickou hodnotu pole tak to musíš přes alokaci pole http://www.itnetwork.cz/…okace-pameti
Ale pokud to myslíš jinak... tak napiš jak to má vypadat... čeho chceš
docílit.. moc jsem to nepochopil
EDIT : Nejlépe sem napiš zadání úkolu to by bylo ideální
skusim este raz, nejde o pole, ide o to ze neviem kedy ktory cyklus(for,
while, do while) mam pouzit, uz nieco mam nakodene len neviem asi podmienky
dobre urcit, alebo som tam zly cyklus zvolil
zadanie: Vytvorte program zodpovedajúci softvéru automatu.Užívateľ môže
vhadzovať do systému len 0.1, 0.2, 0.5 a 1-eurové mince. Logika automatu
sčítava sumu vhodených mincí. Po zadaní požadovanej sumy vypíše
hlásenie
while(konec > 0)
{
printf("hod minci");
scanf("%lf", &a");
if(a == 0.5 || a == 0.1 || a == 0.2 || a == 1)
{
// co se stane když mince budou spravně
}
else
{
// co se stane když mince bude vhozena špatně
konec = 0;
}
}
no neak takto to mam aj ja az na to ze ja som tam pchal do while, ale ja
potrebujem aby on tie mince scitaval a ked bude suma a<=1.5
tak True, ked suma bude mensia ako 1.5 tak bude pytat dalsiu mincu a ked hodi
zlu mincu tak koniec alebo opat vhod mincu
velka vdaka, ako vidim staci trosku vediet co treba spravit a ono to ide, ja
som to robil cez Kosice ako sa hovori, budem sa musiet este vela co ucit, inak
nevies odporucit neaku dobru literaturu ohladom C, najlepsie pdf, v cestine
alebo slovencine
hele projeď si tutorialy co jsem napsal já v jazyce C http://www.itnetwork.cz/…aky-priklady opravdu to píšu co
nejsrozumitelněji aby to pochopil opravdu každý. Určitě se tam tohle
naučíš a mraky dalšího ale pokud trváš na literatuře tak doporučuju
"Jazyk C" to je kniha má dva díly tam jsem se to učil já, ale bohatě ti
bude stačit když si prostuduješ tutoriály kdybys zase potřeboval poradit
tak sem klidně napiš
caw, dalo by sa to neak "osetrit" ked zadam ine ako 1,2,3,4 malo by vyhodit
varovanie ale on to ignoruje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,o;
char x;
printf("\n1,Obvod stvorca \n2,Obsah stvorca \n3,Povrch kocky \n4,Objem
kocky\nVyber : ");
scanf("%c",&x);
printf("Zadaj stranu 'a' stvorca : ");
scanf("%d",&a);
switch (x)
{
case '1': o=4*a;
printf("Obvod stvorca je : %d",o);
break;
case '2': o=a*a;
printf("Obsah stvorca je : %d",o);
break;
case '3': o=6aa;
printf("Povrch kocky je : %d",o);
break;
case '4': o=aaa;
printf("Objem kocky je : %d",o);
break;
}
if (x==1,x==2,x==3,x==4)
{
printf("\nVAROVANIE\n");
}
return 0;
}
#include <stdio.h>#include <stdlib.h>int main(void)
{
int i;
scanf("%d", &i);
if(i == 1 || i == 2 || i == 3)
{
printf("spravne");
}
else
{
printf("spatne");
}
return0;
}
na čísla používej double,float nebo int char určitě ne...
Laskavě si přečti nějakej tutoriál máš to celé špatně
if (x==1,x==2,x==3,x==4)
{
printf("\nVAROVANIE\n");
}
jednak nevím co jsou ty čárky... na tohle se používá operátor || or
(nebo)
a navíc to nedává ani smysl... když bude x 1 nebo 2 nebo 3 nebo 4 odpověď
bude varování? Právě že naopak... program bude v pořádku, právě když
to bude něco jiného tak to bude špatně.. trošku u toho přemýšlej
caw, nechce mi to vyhodit min pola, co tam mam zle?? s maximom mi to ide ked
dam int max=0; if(max<a[i])
#include <stdio.h>
#include <stdlib.h>
int main()
{
srand(time(NULL));
int min=100;
int const velkost=100;
int i, a[velkost];
for (i=0; i<velkost; i++)
{
a[i]= -100 + rand() % 200;
printf(" %d \n",a[i]);
}
if(min>a[i])
{
min=a[i];
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.