సి: కూర్పుల మధ్య తేడాలు

2405:204:6508:6A2C:0:0:1E28:70A0 (చర్చ) దిద్దుబాటు చేసిన కూర్పు 1958474 ను రద్దు...
చి AWB వాడి RETF మార్పులు చేసాను, typos fixed: లొ → లో (4), లో → లో (4), కి → కి (2), కూడ → కూడా (2), ధీర్ఘ → దీర using AWB
పంక్తి 1:
'''ప్రోగ్రామింగ్''' భాష అంటే ఒక యంత్రానికి (ముఖ్యంగా కంప్యూటరుకు) అది చేయవలసిన పనులను తెలియచెప్పడానికి రూపకల్పన చేసిన కృత్రిమమైన భాష. ప్రోగ్రామింగ్ భాషలతో యంత్రము యొక్క ప్రవర్తనను నియంత్రించడానికి ప్రోగ్రాములు తయారుచేయవచ్చు. అంతేగాక వీటిని మనిషికి-యంత్రానికి మధ్య సంభాషణ కొరకు ఒక మార్గముగా పరిగణించవచ్చు. ఇవి అనేక రకాలు. ఉదాహరణకు
* జావా
* సీ
పంక్తి 5:
* కోబాల్.
 
''''సీ'''' ఒక కంప్యూటర్‌ భాష. దీనిని మధ్య స్థాయి భాషగాను లేదా క్రింది స్థాయి భాషగాను ఉపయోగించుకోవచ్చు. 'సీ' ని [[1970]] లో [[:en:Ken Thompson|కెన్ థాంప్సన్]] మరియు [[డెన్నిస్ రిచీ]] అను శాస్త్రవేత్తలు తయారు చేసారు. ఇప్పుడు ఈ భాషను కంప్యూటింగ్ రంగంలో చాలా విస్త్రుతంగా వాడుతున్నారు. అంతే కాదు, ఈ భాషకు ఉన్న కొన్ని ప్రత్యేకతల వలన క్రింది స్థాయి అప్లికేషన్ల డెవలప్మెంట్ కు చాలా మంచి భాషగా ప్రాముఖ్యత పొందింది.
 
== చరిత్ర ==
'సీ' భాష మొట్టమొదట ఏటీ & టీ బెల్ పరిశోధనాలయంలో (AT&T Bell Labs) [[1969]]కు [[1973]] మధ్యన తయారు చేయటం జరిగింది. ఎక్కువ భాగం 1972లో తయారయింది. 'సి' కంటే ముందు 'బి' అనే కంప్యూటరు భాష ఉండేది. 'సీ'కి సంబందించినసంబంధించిన చాలా విశేషాలను 'బి' నుండే తీసుకున్నారు. ఆంగ్లములో 'బి' తరువాత 'సి' వస్తుంది. ఈ రెండు కారణాల వలన 'సి' కి ఆ పేరు పెట్టడము జరిగింది. [[1973]] వచ్చేసరికి సీ భాష మంచి రూపును సంతరించుకుంది, అటు తరువాత సీ భాషను ఉపయోగించి యునీక్సు (ఆపరేటింగ్ సిస్టమ్) కెర్నలుని మరలా నిర్మించారు.
 
== సీ నేర్చుకొనేందుకు కావలిసినవి ==
పంక్తి 14:
 
సీ-భాష నేర్చుకొనేముందు మీకు కంప్యూటరు గురించి ప్రాథమిక పరిజ్ఞానము ఉండవలెను. అయితే మీకు ప్రోగ్రామింగుకి సంబంధించిన పరిజ్ఞానము పెద్దగా అవసరము లేదు.
సీ-భాష నేర్చుకొనేందుకు మీకు ఒక సీ-కంపైలరు (సాఫ్ట్వేర్) కావలెను.
మీరు విండోసు ఆపరేటింగ్ సిస్టం వాడుతున్నట్లయితే
* [[:en:GNU Compiler Collection|gcc]] కోసం [[:en:Cygwin|Cygwin]], కానీ [[:en:MinGW|MinGW]] కానీ వాడవలెను.
పంక్తి 23:
=== ఉపోద్ఘాతము ===
సీ కంఫైలర్ ఉపయెగించే పద్థతి
'సీ' భాష [[అసెంబ్లీ భాష]] (assembly language)కు బాగా దగ్గరగా ఉంటుంది. అందుకనే, సీ భాషను అప్పుడప్పుడు "portable assembly" అని పిలుస్తారు. ఒకసారి సీ భాషలో రాసిన ప్రోగ్రాముని దాదాపు ఏ యంత్రములోనయినా [[కంపైలు]] (compile) చేసుకొని వాడుకోవచు. కానీ [[అసెంబ్లీ భాష]]లో ఇలా అన్ని యంత్రాలకు సరిపోయేటట్లు ప్రోగ్రాములను వ్రాయటము కుదరదు.
 
అసలు 'సి' భాషను సులువుగా నేర్చుకోడానికి, ముందుగా మనకు అల్గారిథం (algorithm) , క్రమచిత్రం (flowchart) ల గురించి తెలియాలి.
 
'''ఆల్‌గారిధమ్ (ALGORITHM)''':
పంక్తి 31:
కంప్యూటర్ పై ఒక సమస్యను పూరించేందుకు మనం ఆజ్ఞల సమితిని జారి చేయడానికి వాడే సోపాన క్రమవిధానాన్ని సాంకేతికంగా "ఆల్‌గారిధమ్" అంటారు.
(లేదా)
ఒక పనిని పూర్తి చేయడానికి కొన్ని సూచనలను ఒక క్రమ పధ్ధతిలొపధ్ధతిలో ఉపయోగించుకోనే విధానాన్ని "ఆల్‌గారిధమ్" అంటారు
 
ఆల్‌గారిధమ్ అనేది ఏ కంప్యూటర్ భాషకు కిభాషకుకి అయిన పునాది వంటిది. ఆల్‌గారిధమ్ (algorithm) ను కంప్యూటర్ అర్దం చేసుకొలేదు, ఏందుకు అంటే ఆల్‌గారిధమ్ (algorithm) ను మనం మన సొంత బాషలో వ్రాసుకొవచ్చు. ఆల్‌గారిధమ్ (algorithm) ను కంప్యూటర్ అర్దం చేసుకోవాలి అంటే దానిని మనం కంప్యూటర్ అర్దం చేసుకునే విధంగా వ్రాయలి. కంప్యూటర్ అర్దం చేసుకునే భాషను ప్రోగ్రామింగ్ లాంగ్వేజ్ (Programming language) అంటారు.
 
ఒక సమస్యను తీసుకుంటే దానికి ఆల్‌గారిధమ్ ఏలా వ్రాస్తారు ఇప్పుడు చూద్దాం..
ఇచ్చిన రెండు సంఖ్యలను కూడడం (add) :
(a=2 b=3 c=a+b) ?
step1: start చేయాలి
step2: మొదటి నంబరును తీసుకోవాలి (a=2)
step3: రెండవ నంబరును తీసుకోవాలి (b=3)
step4: తర్వాత రెండు సంఖ్యలను add చేయాలి add=a+b
step5: ప్రింట్ చేయాలి print / display add
పంక్తి 46:
 
'''వివరణ''':
మనం ఏద్తెన పనిని చేయాలి అంటే ముందు దానిని start చేయాలి. అందుకే ప్తెన problem1 లో step1 అనేది start చేయడం. తర్వాత steps అనేవి మనం Slove చేసే Problem మీద ఆధారపడి ఉంటుంది. మనం ఏద్తెన పనిని start చేస్తే దానికి Ending కూడకూడా ఉంటుంది. అందుకే last step (step6)అనేది End చేయడం
 
''''''క్రమచిత్రం (FLOW CHAT):''''''
 
సమస్య సాధనకు రాసిన ఆల్‌గారిధమ్ కి బోమ్మలతో కూడిన వర్ణనను ''క్రమచిత్రం'' అనవచ్చు. క్రమచిత్రం (flowgraph)ని వివిధ రకాల boxes మరియు symbols తో గీయాలి చేయవలసిన పనిని (operation)box లొపలలోపల వ్రాస్తారు. మొత్తం boxes మరియు symbols అనేవి Arrow ద్వారా connect చేయబడి వుంటాయి .ఈ విధంగా arrow తో connect చేయడం వలన algorithm యొక్క క్రమాన్ని మనం తేలుసుకోవచ్చు.
క్రింది figure క్రమచిత్రం లోక్రమచిత్రంలో ఉపయోగించే వివిధ రకాల symbols and boxes గురించి చేబుతుంది..
[[దస్త్రం:C:\Users\Aditya\Desktop\flowchartmain.jpg|thumbnail|క్రమ చిత్రం]]
 
పంక్తి 59:
[[దస్త్రం:C:\Users\Aditya\Desktop\ft1.JPG|thumbnail|రెండు సంఖ్యలను కూడుటకు క్రమ చిత్రం]]
 
'''వివరణ''': మనం ఏద్తెన పనిని చేయాలి అంటే ముందు దానిని start చేయాలి. అందుకే ప్తెన సమస్య లోసమస్యలో step1 అనేది start చేయడం. అందుకని దీనిని oval లొలో వ్రాసం .తర్వాత 2 & 3 steps అనేవి values ని తీసుకొవడం అందుకని
సమాంతచతురస్రం [parallelogram] లో వ్రాసం. తర్వాత 4 step అనేది కూడిక నికూడికని perform చేయడం అందుకని ధీర్ఘచతురస్రందీర్ఘచతురస్రం [Rectangle] లో వ్రాసం .తర్వాత 5th steps అనేది output ని print చేయడం. అందుకని సమాంతచతురస్రం [parallelogram] లో వ్రాసం. మనం ఏద్తెన పనిని start చేస్తే దానికి Ending కూడకూడా ఉంటుంది .అందుకే last step (step6) అనేది End చేయడం అందుకని దీనిని oval లొలో వ్రాసం.
 
=== "హలో, ప్రపంచం!" ఉదాహరణ ===
మామూలుగా ఎవరయినా చిన్నపిల్లలకు భాషను నేర్పేటప్పుదు "అమ్మ" అనో, ఓం నమఃశివాయ అనో (ఓనమాలు అనే పదం ఇక్కడనుండే వచ్చినది అని చెప్తారు)వ్రాయించి ఓనమాలు దిద్దిస్తారు. అలాగే కంప్యూటరు భాషలను నేర్చుకునేటప్పుడు ఈ "హలో, ప్రపంచం!" ఉదాహరణతో మొదలు పెడతారు. ఈ ప్రోగ్రాము "హలో, ప్రపంచం!" అని మీ కంప్యూటరు [[మానిటరు]] మీద చూపిస్తుంది. సి భాషలో "హలో, ప్రపంచం!" ఉదహరణఉదాహరణ ఈ క్రింది విధముగా ఉంటుంది.
<source lang="c">
main()
పంక్తి 70:
}
</source>
పైన ఇచ్చిన ప్రోగ్రాము దాదాపు అన్ని కంపైలరు (compiler)లలో పని చేయక పోవచ్చును. ఎందుకనగా అది ANSI C ప్రమాణాల ప్రకారం రాయబడలేదు. ఆ ప్రోగ్రాముకు చిన్నచిన్న మార్పులు చేర్పులు చేస్తే, ప్రమాణాలకు తగ్గట్లుగా మార్చు కోవచును.
<source lang="c">
#include <stdio.h>
పంక్తి 88:
<pre><nowiki>int main(void)
</nowiki></pre>
తరువాతి వాక్యములో <code>main</code> అను ఒక ఫంక్షనుని "వివరించటం" (define) జరిగింది. సీ-భాషలో <code>main</code>-ఫంక్షనుతో ఒక ప్రత్యేక ఉపయోగము ఉంది. ప్రోగ్రాముని ఎక్సిక్యూట్ చేసినప్పుడు ఈ ఫంక్షనునే మొటమొదట కాల్ చేస్తారు. కాబట్టి ఈ <code>main</code>-ఫంక్షను ప్రతీ ప్రోగ్రాములో తప్పని సరిగా ఉండాలి. <code>int</code> అనునది ఆ ఫంక్షను తిరిగి పంపించు సమాచారము యొక్క రూపును తెలుపును. ఇక్కడ <code>int</code> అనగా ఆ సమాచారము integer రూపములో ఉంటుందని అర్థము. <code>(void)</code> అనగా <code>main</code>-ప్రోగ్రామును పిలుచుటకు ఎటువంటి ఆర్గ్యుమెంట్సు (agruments)ని పంపించనవసరము లేదు అని తెలుపుతున్నది.
 
<pre>{</pre>
పంక్తి 94:
 
<pre> printf("హలో, ప్రపంచం\n");</pre>
ఈ వాక్యము <code>printf</code> అను ఫంక్షనుని కాల్ (call) చేయును. ఈ ఫంక్షను <code>stdio.h</code> అను హెడ్డరు ఫైలులో నిర్మింపబడినదినిర్మింపబడింది. ఈ ఫంక్షను, దానిలోకి పంపించిన సమాచారాన్ని ఒక క్రమ పద్దతిలోపద్ధతిలో అమర్చి మీ మానిటరు పైన చూపించును. <code>"హలో, ప్రపంచం!\n"</code> లో <code>\n</code> అనునది ఎస్కేప్ సీక్వెన్స్ ("escape sequence") అని అందురు, అది కర్సరుని ఇంకో క్రొత్త లైనులోకి వెళ్ళుటకు అదేశించును. ఇచట మామూలు సమాచారము మధ్యలో అడెశములు కూడా ఉండటము వలన ఎస్కేప్ సీక్వెన్స్ అని పిలవటం జరుగుతుంది. <code>printf</code>-ఫంక్షను <code>int</code> రూపములో ఉన్న సమాచారమును తిప్పి పంపించును, కానీ దాని వలన మనకు పెద్ద ఉపయోగములు ఏమీ ఉండవు.
 
<pre> return 0;</pre>
"https://te.wikipedia.org/wiki/సి" నుండి వెలికితీశారు