Diskuze: funkcie
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 25 zpráv z 25.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
jazyk C nepoužívej. Co se fcí týče: a,b,c,i,j jsou parametry daných fcí.
Chceš fci na podíl:
float daj_podiel(int i, int j)// vyžádá si dvě celočíselné hodnoty
{
return((float) i / (float) j);// přetypuje na float (aby tam byla desetinná čárka) a vrátí podíl těchto čísel
}
Ale nedělej v C je to nízkoúrovňový jazyk - nemá objekty, v kódu co
jsi poslal jsou dokonce pointery
Mrkni na tutoriály k C#, na kterých se v současné době tvrdě pracuje
rovněž tak na Javě. Viz příslušené sekce.
Nemůžu říci, že jsem do této problematiky plně zasvěcen, ale bratr ano a tvrdí, že některé jazyky, které tu někteří pohřbývají se stále pužívají. Tedy - Může se vrhnout i na Ruby. Stejně tak na Objektového Pascala - Delphi. Zrovna u nás ve městě je velká firma pro webový desing a informační technologie - dělají v Delphi,...
Ty jazyky tu nikdo nepohřbívá, jen se zdůrazňuje, že nemá cenu se zbytečně učit nízkoúrovňový jazyk, když zrovna neprogramuješ operační systém nebo nějaký 3D engine pro hru, kde potřebuješ velmi vysoký výkon. Vysvětlení najdeš třeba v tomto článku: http://www.itnetwork.cz/index.php?… a říká se to tu pořád dokola. Jazyky jako již zmíněný C# nebo Java jsou pro klasické aplikace nejlepší a můžu je doporučit. Nemusíš vůbec řešit něco jako pointery a spousta dalších úloh je vyřešená. Navíc jsou tyto jazyky plně objektově orientované. A například pro Windows phone už nemáš jinou volbu než C#. Pro android zas Java. Z těch nízkoúrovňových jazyků se třeba Céčko taky ještě používá, ale jen pro specifické případy. Osobně si ale nedokáži představit psát větší aplikaci v neobjektovém céčku.
Které máš na mysli? Rád ti vysvětlím, proč jsme který pohřbili.
C - Starý a nízkoúrovňový, používá se defakto již jen proto, že v něm je napsané jádro Linuxu. Ve Windows pro něj již dokonce prakticky neexistuje IDE.
Ruby - Velmi kvalitní jazyk, bohužel naprosto nerozšířený a bez zájmu. Navíc s ním nejde nic moc dělat kromě webů kvůli jeho povaze.
Delphi - Delphi bylo populární někdy před 20ti lety, Borland ho již odpískal, firmy si ho předávají jako horký brambor. Návrh jazyka je velmi zastaralý, komponenty obsahují ještě kód pro Windows 3.11. Samozřejmě, že jsou firmy, které v tom mají systém, nevyplatilo by se jim ho přepisovat. To však neznamená, že je ten jazyk kvalitní. V Delphi jsem dělal intenzivně asi 5 let a už se k nim nikdy nevrátím.
Navíc jak píše Drahoš nikdy jsme neřekli, že se nějaký jazyk již nepoužívá, pouze jsme ty nezajímavé dali stranou.
ok, ďakujem, no ja som začinal pôvodne v c++ (cin >> , cout << ...), potom som si ale uvedomil, že na maturite z informatiky asi buďem potrebovať klasicke c (printf,scanf ...). Ja som sa do programovania v c pustil kôli tomu, že na škole nas z tohto zatial nič neučia, tak v tom mam trochu stale zmätok.
Hlavne mi ide o to vedieť aké c-éčko sa používa na Vysokých školách? Napriklad na infromatike na MUNI -masarykova univerzita , viem že sa tam učí c-éčko a java, tak ak mi viete niekto poradiť bol by som rád.
Buď učí to staré céčko ve kterém děláš (což je bohužel způsobené zastaráním našeho školství) nebo učí C#.
A viete mi poradiť prečo po tejto úprave to nejde?
#include <stdio.h>
#include <stdlib.h>
int nacitaj(int i, int j)
{
printf("\nzadaj dve cele cisla:");
return scanf("%d %d", i, j);
}
float daj_podiel(int i, int j)
{
return((float) i / (float) j);
}
int main()
{
int i, j;
if (nacitaj(i, j) );
printf("podiel je : %f\n", daj_podiel(i, j));
system("PAUSE");
return 0;
} /* main */
v podstate som sa chcel zbaviť pointeru, nechapem prečo pri funkcii nacitaj maju byť použité pointery a pri funkcii daj_podiel nemusia byť použité pointery.
Da sa nejako zbaviť v tomto prípade tých pointerov?
scanf vrací, kolik bylo uložených dat do proměnných. V tomto případě
vrátí 2.
Musíš buďto psát načítání proměnných pořád znovu nebo si je tou
funkcí uložit do globálních proměnných.
Zápis if podmínky je úplně jiný. Je to
if (podmínka) {
// podmínka splněna
} else if (podminka2) {
// pokud neni splněna první, ověří druhou podmínku
} else {
// jinak se zavolá else
}
musim sa priznať, že teraz vôbec neviem o čom hovoriš
stále mám v tom dosť velky zmätok
Tak tady to máš celé. Je to okomentované, tak to snad pochopíš.
#include <stdio.h>
int main()
{
// Deklarujeme proměnné
int i, j;
// Vypíšeme zprávu
printf("Zadej dve cela cisla: ");
// Načteme proměnné
scanf("%d %d", &i, &j);
// Vypíšeme: % = výpis proměnné, .2 = počet desetinných míst, f = datový typ (float - desetinné číslo)
printf("Podil je: %.2f", (float)i/(float)j);
system("PAUSE");
return 0;
}
Jo mimochodem, při scanf musíš před názvy proměnných psát & (ampercent). Vyjímky jsou textové řetězce. To je otázka pointerů, ale tím se zatím nezatěžuj. A možná by bylo dobré ty proměnné načítat rovnou jako float, aby se nemuseli převádět. Na ten podíl můžeš klidně použít tu tvou funkci "daj_podiel", ta je správně. Jen je to asi zbytečné. Jinak nepoužíváš v kódu nic z knihovny stdlib.h, tak jsem ji ani nezahrnul. Stačí jen stdio.h
No ja použivam devc++ a stdlib.h tu slúži pre system("PAUSE");
Ty v čom píšes/ kompiluješ?
mne nie
citujem z : http://www.bloodshed.net/dev/faq.html
How do I emulate the MS-DOS pause function?
#include <stdlib.h>
int main()
{
system ("pause"); // execute M$-DOS' pause command
return 0;
}
Pokud mám správné informace tak se tam prochází více jazyků a každý ať si vybere. Je pravda že se tam ale preferuje hodně ze začátku C a poté Java. Toť to jsem pochytil od studenta 3ho ročníku
system("pause") se používá na to aby se nezavřela hned konzole (jen by problikla). Proto se tam čeká na stisk nějakého talčítka. Na linuxu takového nic nemáme.
na linuxu to není, protože program spouštíš z terminalu a pak se zase vracis do terminalu.. kdybys to tak spustil ve windowsu, tak tam taky nemusis mit to pause
system ti zavola nejake funkce systemu... takze system("pause") ti ceka na klavesu.. schvalne si zkus zadat do prikazove rady jen pause.. bude to to same...
system("pause"); a další příkazy volané touto fcí fungují pouze na Windows, protože používají fce z CMD. Proto pro multiplatformní využití tuto fci nepoužívej...
Souhlasím,seznam příkazů viz. tutoriály Batch http://www.itnetwork.cz/index.php?…
Mimochodem příkazy se mění podle systému,třeba ve Win XP HOME normálně
používám třeba
sleep 10
a little_wolf si stěžoval že mu to ve win XP Prof nejede..
Zobrazeno 25 zpráv z 25.