Detailed Notes โข MS Word + MS Excel + saare C programs (working code + output + viva) + lab file format + sample paper + 70 one-liners
Word lab ka goal: Ribbon ke har tab ka use dikhana โ Home (font/paragraph), Insert (table/picture/shapes/symbol), Design (page border), Layout (margins/orientation), Mailings (mail merge), Review (spell check), View (zoom/print layout). Har practical me kam se kam 4 alag features use karo โ viva me wahi poochha jaata hai. ๐
Aim: MS Word me ek attractive advertisement banane ke liye formatting features ka use karna (font, colour, picture, shapes, text box, border โ sab ek saath).
Steps:
Word features jo lab me dikhane hain: font formatting, paragraph alignment, line spacing, bullets/numbering, images + text wrapping, shapes, text boxes, WordArt, borders/shading, colours, page setup. "Advertisement = visual + short lines + offer highlight" โ bas inka mel banao.
| Feature | Kahan milta hai (Ribbon path) | Shortcut |
|---|---|---|
| Bold / Italic / Underline | Home โ Font group | Ctrl + B / I / U |
| Center alignment | Home โ Paragraph group | Ctrl + E (L = left, R = right, J = justify) |
| WordArt | Insert โ Text group โ WordArt | โ |
| Picture | Insert โ Illustrations โ Pictures | โ |
| Text Box / Shapes | Insert โ Text / Illustrations | โ |
| Page Border | Design โ Page Background โ Page Borders | โ |
| Bullets & Numbering | Home โ Paragraph group | โ |
| Save / Print | File โ Save / Print | Ctrl + S / Ctrl + P |
Lab file me aise likho: "Result: Advertisement ban gaya jisme font formatting, bullets, image, text box aur page border ka use kiya gaya." โ ek line ka conclusion har practical me zaroor likho. โ
Aim: MS Word me apna CV (resume) banana โ table, formatting, bullets aur photo ka use karke (professional 1-page document).
Steps:
Aim: Scientific notations (xยฒ, HโO, exponents, symbols) aur equations MS Word me banana โ superscript/subscript aur Equation editor ka use.
Steps:
Kyun zaroori hai: Chemistry ke formulas (HโO, COโ), Maths ke exponents (xยฒ + yยฒ, aโฟ), Physics ke units (m/sยฒ, cmยณ), aur engineering me chemical equations โ sab jagah superscript/subscript use hota hai. University practical me ye dikhana 5 minute ka kaam hai aur easy marks โ . Viva me poochha jaata hai: "superscript aur subscript me difference?" โ Superscript upar likha jaata hai (power/exponent, xยฒ), subscript neeche (index/chemical count, HโO).
Aim: MS Word me ek class timetable banana โ table banana, cells merge karna, shading aur row height set karna.
Steps:
Tip: "Insert โ Table" ke bajaye Table Draw karke bhi bana sakte ho; column width adjust ke liye border pe drag karo. Viva me aata hai: "cell merge kaise karte hain?" โ Table Layout/Design โ Merge Cells (ya select + right click). Ye practical table + merge + shading + properties โ 4 features ka proof hai โ
Aim: Conversion se do cheezein โ (a) units ka conversion table Word me banana, (b) document ko ek format se doosre format me convert karna (Word โ PDF).
Steps (a) โ Units Conversion Table:
Steps (b) โ File Conversion:
Aim: Mail Merge ka use karke ek hi letter ka template bana kar kai logon ke liye personalized letters generate karna (naam, city, amount apne-aap bhar jaayein).
Steps:
Sample merged letter (har name ke liye auto-bana): Surajmal University, Kichha Date: 10 October 2026 Dear ยซNameยป, Aapka admission form ยซCityยป campus me receive ho gaya hai. Pending fee: โนยซAmountยป โ kripya 15 October tak jama karayein. Regards, Admission Cell Data list: Name | City | Amount Rahul | Kichha | 5000 Priya | Haldwani | 8000 ... (har ek ka letter alag ban jayega โ)
Viva me poochha jaata hai: (1) Mail merge ke 3 parts? โ Main document, Data source, Merged document (2) Kab use karte ho? โ Bulk letters, fee notices, admit cards, invitation letters, salary slips, certificates (3) ยซยป ka kya matlab? โ Merge field ka placeholder. Ye practical highest-marking Word practical hota hai โ steps dhyaan se likho โญ
Aim: MS Word ke Shapes aur Connectors se ek flowchart banana (algorithm ko picture me dikhana).
Steps:
Flowchart symbols โ yaad rakho (viva favourite!): ( Oval ) โ Start / Stop (terminal) [ Rectangle ] โ Process (kaam/hisaab) / Parallelogram / โ Input / Output (read/print) <> Diamond <> โ Decision (condition: yes/no) โ Arrow โ Flow direction (connector) Example banao: "Largest of two numbers" ka flowchart: Start โ Read a, b โ a > b ? โ Yes: print a ; No: print b โ Stop (Aur practice karo: even/odd, sum of 1..n, average of 3 numbers โ ye Unit 1 me padha tha, ab Word me shapes se draw karo โ )
Viva me aata hai: "Flowchart ke 4 main symbols batao" (upar wale), "Algorithm aur flowchart me difference?" โ Algorithm = steps in words, flowchart = same steps ki picture/diagram (symbols me). Ye practical C lab ke "algorithm likhna" wale question se seedha juda hua hai โ dono ek hi cheez ke do roop hain ๐
Aim: Ek certificate (ya mark-sheet) banana jisme table, page border, alignment aur font formatting ka use ho.
Viva point: certificate me alignment kyun zyada matter karta hai? โ Kyunki ye official document hai โ centre heading, justified body aur balanced signature lines professional look dete hain ("first impression" ka rule). โ
Aim: Document me professional touches โ header/footer, page numbering, watermark aur find-replace ka use.
Viva point: "Header aur Footer me farak?" โ Header page ke upar (repeating title/logo), Footer neeche (page number, date, naam) โข "Find & Replace ka shortcut?" โ Ctrl + H โข "Table of contents automatic kaise?" โ headings ko Heading styles do, phir References โ TOC (page number khud badalte hain) ๐ง
Excel lab me do practical hain โ charts aur formula editor. Iske saath ek marksheet banao (worksheet + formulas + chart + conditional formatting + IF grades) โ ye ek hi file me poora Excel syllabus cover kar leti hai, aur viva me dikhane ke liye sabse strong hai. ๐
Aim: Given data se alag-alag chart types (Column/Bar, Line, Pie, XY-Scatter) banana aur samajhna ki kaunsa chart kab use hota hai.
Pehle data banao (5 students ke marks):
A B C D
1 Name Math Sci Eng
2 Ansh 78 85 90
3 Priya 90 88 92
4 Rahul 65 70 72
5 Sara 88 79 95
6 Amit 50 60 55
Chart ka steps (har type ka):
1. Data select karo (A1:D6) โ heading row include karo
2. Insert tab โ Charts group โ chart type choose karo:
โข Column/Bar chart โ subjects ka comparison
โข Line chart โ trend dikhane ke liye
โข Pie chart โ ek column ka hissa (jaise language-wise %)
โข XY (Scatter) chart โ do numbers ke relation ke liye
3. Chart Design tab โ title, axis labels, legend add karo
(Chart Elements "+" button, ya Add Chart Element)
4. Chart ko move/resize karke alag sheet pe bhejo (Move Chart โ New Sheet)
5. Chart pe right-click โ Select Data se range badal sakte ho
โ Save karo aur screenshot lab file me lagao
| Chart type | Kab use karein (Hinglish) | Example |
|---|---|---|
| Column / Bar | Alag-alag categories ka comparison (side-by-side) | Students ke marks, mahine ki sales, rajya-wise population |
| Line | Trend dikhana โ time ke saath change (ups & downs) ๐ | 6 mahine ki sales ka trend, saal-wise temperature, attendance graph |
| Pie | Ek cheez ka "hissa" (parts of a whole) โ total = 100% | Budget ke parts (rent/food/travel), subject-wise favourite, expense % ๐ฅง |
| XY (Scatter) | Do numbers ka relation (ek dusre par depend karte hain) | Height vs weight, temperature vs ice-cream sales, hours padhe vs marks |
| Area / Doughnut / Radar | Extra types (advanced) โ trend ka area, percentage ring, multiple variables comparison | SQL/attendance ka area graph, KPI dashboard ๐ก |
Lab file me aise likho: "Aim: Chart types banana seekhna. Procedure: data enter kiya โ data select kiya โ Insert โ Charts se Column, Line, Pie aur XY charts banaye โ title, axis labels aur legend add kiye โ screenshot liya. Result: chaar chart types ban gaye aur har type ka use samajh aaya." (4 screenshots = complete-answer checklist) โ
Aim: Excel ke formula editor aur built-in functions ka use karke calculations karna (SUM, AVERAGE, MAX/MIN, COUNT, IF, percentage, ROUND, CONCAT) โ aur ek complete marksheet banane.
Basic formulas (har ek = se shuru hota hai): =D2+E2 โ simple addition (do cells jodna) =SUM(B2:D2) โ range ka sum (Math | Sci | Eng ka total) =AVERAGE(B2:D2) โ average nikalo =MAX(B2:D2) โ sabse zyada marks =MIN(B2:D2) โ sabse kam marks =COUNT(B2:B10) โ kitni numbers hain (count โ sirf numeric cells) =COUNTA(A2:A10) โ kitne cells bhare hain (text bhi ginte hain) =COUNTBLANK(B2:B10) โ kitne cells khaali hain =B2/D2*100 โ percentage (marks/total ร 100) =IF(D2>=33,"Pass","Fail") โ condition wala result =IF(B2>=90,"A",IF(B2>=75,"B","C")) โ nested IF = grade =ROUND(B2*1.18,2) โ GST lagana + 2 decimal =CONCAT(A2," ",B2) โ do cells jodna (naam + city) =COUNTA(table) โ | =TODAY() โ aaj ki date | =NOW() โ date + time
Ready-made practical โ Marksheet banao (lab ke liye perfect):
A B C D E F G H
1 Name Math Sci Eng Total Percentage Grade Result
2 Ansh 78 85 90 โ? โ? โ? โ?
3 Priya 90 88 92
4 Rahul 65 70 72
5 Sara 88 79 95
6 Amit 50 60 55
E1: "Total" โ E2 = SUM(B2:D2)
F1: "Percentage" โ F2 = ROUND(E2/300*100,1)
G1: "Grade" โ G2 = IF(F2>=90,"A",IF(F2>=75,"B",IF(F2>=60,"C",IF(F2>=33,"D","Fail"))))
H1: "Result" โ H2 = IF(F2>=33,"Pass","Fail")
Phir:
โข Fill handle (cell ke corner pe chhota square) se drag karke
E2:H2 ke formulas neeche sab students tak copy karo
โข Conditional Formatting (Home โ Conditional Formatting โ Highlight
Cell Rules โ Less Than โ 33) se Fail wale red ho jaayein ๐จ
โข Insert โ Bar chart se students ka comparison graph banao
โข Data โ Sort (Total ke hisaab se rank) aur Filter bhi dikha do
| Error | Matlab / kyun aata hai | Fix |
|---|---|---|
| #DIV/0! | Zero se divide kiya (ya khaali cell se) | IF se check karo: =IF(C2=0,"N/A",B2/C2) |
| #VALUE! | Text ko number ki tarah use kiya | Cell me sirf number rakho (space/โน hatao) |
| #NAME? | Function ka naam galat (typo) ya range ka naam | Spelling check: SUM, AVERAGE (AVG nahi!) |
| #REF! | Delete ki gayi cell ka reference | Formula edit karke naya range do |
| #N/A | VLOOKUP/LOOKUP ko value nahi mili | Data check karo ya IFERROR lagao |
| ##### | Column chhota hai (error nahi!) | Column ki width drag karke badhao |
Excel ke exam-friendly features (dikha do = complete-answer checklist): Fill handle (formula copy โ dhyaan do: cell reference auto badalta hai, $ lagao to fix), absolute reference ($B$2), Sort & Filter (Data tab), Conditional Formatting, Charts, Pivot Table (Insert โ PivotTable โ advanced), Freeze Panes (View tab โ heading scroll me bhi dikhe), Data Validation (dropdown list banana), Page Layout โ Print Area + Print Titles (printout ke liye). Viva me "VLOOKUP kya hai?" โ table ki pehli column me value dhoondh kar uske saamne wali column ki value laata hai (marksheet me roll number se naam nikalna). ๐ฏ
Aim: Employee ki basic salary se HRA, DA, PF aur Net Salary nikalne wali sheet banana (Excel me percentage aur IF ka practical use).
A B C D E F G H
1 Emp Basic HRA(10%) DA(5%) PF(12%) Gross Deduct Net
2 Ansh 20000 =B2*0.10 =B2*0.05 =B2*0.12 =B2+C2+D2 =E2 =F2-G2
3 Priya 25000 (fill handle se neeche drag karo โ formulas copy)
Har column me kya ho raha hai:
HRA = 10% of basic โ =B2*0.10 (ya =B2*10/100)
DA = 5% of basic โ =B2*0.05
PF = 12% of basic โ =B2*0.12 (deduction)
Gross = Basic + HRA + DA โ =SUM(B2:D2)
Net = Gross โ PF โ =F2-G2
Bonus: =IF(H2>30000,"High","Normal") โ salary category column
=ROUND(F2,0) โ decimals hata do
Conditional Formatting โ Data Bars se "Net" column ko
visual bar de do (dashboard look) ๐
Viva point: "Gross aur Net salary me difference?" โ Gross = total kamai (basic + allowances), Net (take-home) = Gross โ deductions (PF, tax). "SUM(B2:D2) ka matlab?" โ B2 se D2 tak (B2 + C2 + D2) โ colon ka matlab "range", comma ka matlab "aur" (=SUM(B2,D2) sirf do cells).
Aim: Marksheet me se "kitne pass hue, kitne fail, kitne A grade" โ aise summary counts nikalna (COUNTIF wala real-world use).
=COUNTIF(H2:H60,"Pass") โ kitne students pass hue =COUNTIF(H2:H60,"Fail") โ kitne fail hue =COUNTIF(G2:G60,"A") โ kitne A grade wale =COUNTIFS(C2:C60,">=75",D2:D60,">=75") โ dono subjects me 75+ (2 conditions) =SUMPRODUCT(B2:B60)/COUNT(B2:B60) โ class ka average (bina cell-by-cell) =MAX(E2:E60) aur =MIN(E2:E60) โ highest aur lowest total Phir: Insert โ Column chart se "Pass/Fail" ka count graph banao, ya Pie chart se grade-wise % dikhao (best in class summary) โ
Viva point: "COUNTIF aur COUNTIFS me farak?" โ COUNTIF me ek condition, COUNTIFS me ek se zyada (aur sab sach honi chahiye). "Criteria me symbol kahan se?" โ text quotes me ("Pass"), numbers comparison >= 75 quotes me (">=75") โ ye chhota detail examiner ka favourite sawaal hai. ๐
| Kaam | Shortcut / path |
|---|---|
| Save / Print / Undo | Ctrl + S / Ctrl + P / Ctrl + Z |
| Copy-Paste / Cut | Ctrl + C, Ctrl + V / Ctrl + X |
| Naya sheet / sheet rename | Shift + F11 (naya) โข sheet tab par double-click (rename) |
| Cell edit / formula edit | F2 (cell ke andar aao) โ formula bar me bhi edit hota hai |
| Absolute reference | F4 (dabate jaao: $B$2 โ B$2 โ $B2 โ B2) |
| Select karne ke liye | Ctrl + A (poora data) โข Shift + Arrow (range) โข Ctrl + Space (column) |
| Row/column insert | Right-click โ Insert (ya Ctrl + "+") |
| AutoSum | Alt + =" (jaldi SUM lagane ka shortcut) |
| Chart me title | Chart click โ "+" (Chart Elements) โ Chart Title |
| Axis labels | Chart Elements โ Axis Titles โ 2 baar click karke type |
| Data labels (bar par value) | Chart Elements โ Data Labels (viva me poochha jaata hai!) |
| Legend | Chart Elements โ Legend โ Bottom/Right |
| Gridlines / trendline | Chart Elements โ Gridlines โข โ Trendline (line chart me) |
| Chart type badalna | Chart par right-click โ Change Chart Type |
| Print with heading | Page Layout โ Print Titles โ rows to repeat at top |
Chart ka full-marks checklist (ye 5 cheezein dikhao): (1) Chart title jo batata ho kya dikha rahe ho (2) axis titles (X = students, Y = marks) (3) data labels (bar par value) (4) legend โ kaunsa colour kya (5) gridlines/formatting halki (zyada gridlines = gandha chart). Aur chart ke neeche ek line ka conclusion likho ("Priya sabse aage hai, Amit ko improvement chahiye") โ ye Word/Excel practical ko "report" bana deta hai, aur examiner impress hota hai ๐โ
Ye 11 programs aapke BCA101P (Computer Fundamental & IT lab) ke C list hain โ simple se shuru karke step-by-step. Har program ke saath diya hai: Aim โ Algorithm โ Code โ Output โ "Line-by-line samjho" โ Viva point. Lab file me likhne ka yahi sequence hai, aur practical exam me bhi yahi order me likhna best hai. ๐ป
Aim: Input me di gayi Celsius temperature ko Fahrenheit me convert karna.
Algorithm: Start โ c (Celsius) read karo โ f = (c ร 9 / 5) + 32 โ f print karo โ Stop.
#include <stdio.h>
int main() {
float c, f;
printf("Enter temperature in Celsius: ");
scanf("%f", &c);
f = (c * 9 / 5) + 32; // formula: F = Cร9/5 + 32
printf("%.2f Celsius = %.2f Fahrenheit", c, f);
return 0;
}
Input: 38 โ Output: 38.00 Celsius = 100.40 Fahrenheit
(Aur idea: 0ยฐC = 32ยฐF, 100ยฐC = 212ยฐF โ formula ke andar yahi khayal hai)
Line-by-line samjho: float isliye liya kyunki temperature decimal me hota hai (int me .5 kat jaata) โข printf sirf message dikhata hai, scanf actual value leta hai โข %f float ke liye โ scanf me &c (address) dena zaroori hai โข 9/5 ko bracket me rakha โ warna integer division 9/5 = 1 ho jaata (0.5 se galat answer!) โข %.2f ka matlab "2 decimal places tak print karo" โข return 0 = program successful khatam.
Viva point: "Agar float ki jagah int lete to?" โ 38.5 โ 38 ban jaata (decimal khatam) aur answer galat aata; isliye input decimal ho to float/double use karo.
Aim: Principal, Rate aur Time input lekar Simple Interest (SI) aur Compound Interest (CI) nikalna.
Algorithm: Start โ p, r, t read karo โ si = (p ร r ร t) / 100 โ ci = p(1 + r/100)t โ p โ dono print karo โ Stop.
#include <stdio.h>
#include <math.h>
int main() {
float p, r, t, si, ci;
printf("Enter Principal, Rate, Time: ");
scanf("%f %f %f", &p, &r, &t);
si = (p * r * t) / 100; // SI = PรRรT/100
ci = p * pow((1 + r / 100), t) - p; // CI = P(1+R/100)^T โ P
printf("Simple Interest = %.2f\n", si);
printf("Compound Interest = %.2f\n", ci);
return 0;
}
Input: 10000 5 2
Simple Interest = 1000.00
Compound Interest = 1025.00
(Kyun CI zyada? Kyunki CI me "interest pe bhi interest" milta hai ๐)
Line-by-line samjho: #include <math.h> iss program me isliye lagta hai kyunki pow() function use kiya (power nikalta hai) โข pow((1 + r/100), t) = (1 + R/100)t โ pow ka first argument base, second exponent โข CI me sirf interest nikaalne ke liye akhir me โ p kiya (total amount โ principal) โข CI hamesha SI se zyada ya barabar hota hai (compound me interest par bhi interest lagta hai) โข Ek hi scanf me teen values: "%f %f %f" โ user space ya enter se teeno de sakta hai.
Viva point: "SI aur CI me basic difference?" โ SI sirf principal par lagta hai (har saal same), CI principal + jama hua interest dono par lagta hai (isliye badhta jaata hai). Formula bhi yaad rakho: SI = PRT/100 โข CI = P(1+R/100)แต โ P.
Aim: Basic salary input lekar HRA, TA, DA aur Total Salary calculate karna (percentage wale components ke saath).
Algorithm: Start โ basic read karo โ hra = 3% of basic, ta = 5%, da = 3% โ total = basic + hra + ta + da โ sab print karo โ Stop.
#include <stdio.h>
int main() {
float basic, hra, ta, da, total;
printf("Enter Basic Salary: ");
scanf("%f", &basic);
hra = 0.03 * basic; // HRA = 3% of basic
ta = 0.05 * basic; // TA = 5% of basic
da = 0.03 * basic; // DA = 3% of basic
total = basic + hra + ta + da;
printf("HRA = %.2f\nTA = %.2f\nDA = %.2f\n", hra, ta, da);
printf("Total Salary = %.2f", total);
return 0;
}
Input: 20000
HRA = 600.00 TA = 1000.00 DA = 600.00
Total Salary = 22200.00
Line-by-line samjho: "3% of basic" = basic ร 3 / 100 = 0.03 ร basic (dono tarike sahi, par decimal se code chhota) โข Ek printf me teen values โ format string me teen % aur comma ke baad teen variables, order same hona chahiye โข \n line change ke liye โข Total me sab components jod diye (deduction jaise PF/tax nahi diye โ question me na ho to add nahi karte).
Viva point: "HRA, TA, DA ke full form?" โ House Rent Allowance, Travel Allowance, Dearness Allowance. "Agar basic = 20000, HRA 3% ka 600 hua โ 3% nikaalne ka dusra tarika?" โ (basic ร 3) / 100 = 600 (dono same). Punch line: percentage wale sawaalon me formula + ek example likhna must hai. ๐งฎ
Aim: Do numbers ki values ko ek temporary (third) variable ki madad se exchange karna.
Algorithm: Start โ a, b read karo โ temp = a โ a = b โ b = temp โ naye a, b print karo โ Stop.
#include <stdio.h>
int main() {
int a, b, temp;
scanf("%d %d", &a, &b);
printf("Before: a=%d b=%d\n", a, b);
temp = a; // a ko temp me rakha
a = b; // b ki value a me
b = temp; // temp (purana a) b me
printf("After : a=%d b=%d", a, b);
return 0;
}
Input: 10 20 โ After: a=20 b=10
(Glass analogy: do glass ka paani exchange karna โ ek khaali glass (temp) chahiye!)
Line-by-line samjho: Sequence hi sab kuch hai โ agar seedha a = b karte to a ki purani value hamesha ke liye gayab ho jaati! Isliye pehle temp = a (backup), phir a = b, phir b = temp (backup wapas) โข Ye 3-line magic swap ka standard tarika hai โ interviews aur viva dono me poochha jaata hai.
Viva point: "Temp variable ke bina swap ho sakta hai?" โ Haan (a = a + b; b = a โ b; a = a โ b wala tarika โ agla program) โ par safe/recommended third variable wala hi hai (bade numbers me addition overflow kar sakta hai).
Aim: Bina kisi extra variable ke, sirf addition-subtraction (ya XOR) se do numbers swap karna.
Algorithm: Start โ a, b read karo โ a = a + b โ b = a โ b โ a = a โ b โ print karo โ Stop.
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("Before: a=%d b=%d\n", a, b);
a = a + b; // a = 10+20 = 30
b = a - b; // b = 30-20 = 10 (purana a)
a = a - b; // a = 30-10 = 20 (purana b)
printf("After : a=%d b=%d", a, b);
return 0;
}
Input: 10 20 โ After: a=20 b=10 โ (bina khaali glass! ๐)
Note: XOR method bhi hota hai: a = a^b; b = a^b; a = a^b;
Line-by-line samjho: Pehle step me a me dono ka jod chala gaya (30) โ isliye ab b nikaalne ke liye 30 โ 20 = 10 kiya โข Teesre step me naya a = 30 โ 10 = 20 โข Logic: "sum me se ek number hata do to doosra mil jaata hai" โข XOR (^) method me bitwise magic hota hai โ a^a = 0 aur x^0 = x wali property se swap hota hai (dono methods viva me likh do โ bonus ๐).
Viva point: "Is method ka nuksaan?" โ bahut bade numbers par a + b integer range se bahar (overflow) ja sakta hai โ isliye real projects me temp variable ya XOR use hota hai.
Aim: Radius input lekar circle ka area (ฯrยฒ) aur circumference (2ฯr) nikalna; #define se constant (PI) ka use samajhna.
Algorithm: Start โ r read karo โ area = ฯ rยฒ โข circ = 2 ฯ r โ dono print karo โ Stop.
#include <stdio.h>
#define PI 3.14159
int main() {
float r, area, circ;
scanf("%f", &r);
area = PI * r * r; // Area = ฯrยฒ
circ = 2 * PI * r; // Circumference = 2ฯr
printf("Area = %.2f\nCircumference = %.2f", area, circ);
return 0;
}
Input: 7 โ Area = 153.94, Circumference = 43.98
Line-by-line samjho: #define PI 3.14159 = "preprocessor directive" โ compiler code likhne se pehle poore program me PI ki jagah 3.14159 rakh deta hai (isse symbolic constant kehte hain; value badalni ho to sirf ek jagah badlo) โข ฯrยฒ ko C me r*r likhna padta hai (rยฒ ka koi direct symbol nahi) โข Area/circumference decimal me aata hai, isliye float + %.2f.
Viva point: "#define aur const me difference?" โ #define preprocessor level par text replace karta hai (koi memory nahi), const ek variable hai jiski value badal nahi sakte. Aur: "PI ki value 22/7 se kyun nahi likhi?" โ 22/7 = 3.1428โฆ approximate hai; integer division 22/7 = 3 ho jaata (donon int) โ isliye decimal value likhna safe hai.
Aim: Conditional (ternary) operator ? : ka use karke do numbers me bada number nikalna โ if-else ka one-line version.
Algorithm: Start โ a, b read karo โ big = (a > b) ? a : b โ big print karo โ Stop.
#include <stdio.h>
int main() {
int a, b, big;
scanf("%d %d", &a, &b);
big = (a > b) ? a : b; // condition ? sach : jhoot
printf("Largest = %d", big);
return 0;
}
Input: 15 42 โ Largest = 42
Line-by-line samjho: Ternary operator ka form: condition ? value_if_true : value_if_false โข (a > b) sach hua to a, jhoot hua to b โ dono me se ek value big me chali gayi (isliye ise "conditional assignment" bhi kehte hain) โข Ye if-else ka short form hai par sirf ek expression ke liye โ bahut sari conditions ho to if-else better hai.
Viva point: "Ternary operator ke kitne operands hote hain?" โ 3 (condition, true-value, false-value) โ isliye naam ternary. "Ye kis type ka operator hai?" โ Conditional operator, aur C me ye C ka only ternary operator hai (baaki sab unary/binary hain).
Aim: a, b, c input lekar quadratic equation ke roots nikalna โ discriminant (d) ke aadhaar par teen cases (real & distinct, real & equal, complex).
Algorithm: Start โ a, b, c read karo โ d = bยฒ โ 4ac โ agar d > 0: r1, r2 = (โb ยฑ โd)/2a โข agar d = 0: r = โb/2a โข warna complex roots print karo โ Stop.
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, d, r1, r2;
printf("Enter a, b, c: ");
scanf("%f %f %f", &a, &b, &c);
d = b * b - 4 * a * c; // discriminant
if (d > 0) {
r1 = (-b + sqrt(d)) / (2 * a);
r2 = (-b - sqrt(d)) / (2 * a);
printf("Real & distinct roots: %.2f and %.2f", r1, r2);
} else if (d == 0) {
r1 = -b / (2 * a);
printf("Real & equal roots: %.2f", r1);
} else {
printf("Complex roots: %.2f + %.2fi and %.2f - %.2fi",
-b/(2*a), sqrt(-d)/(2*a), -b/(2*a), sqrt(-d)/(2*a));
}
return 0;
}
Input: 1 -5 6 โ Real & distinct roots: 3.00 and 2.00
(d > 0: do roots, d = 0: ek root, d < 0: complex roots โ Sridharacharya formula)
Line-by-line samjho: d (discriminant) hi poore program ka "judge" hai โ usse pata chalta hai roots ki nature โข sqrt(d) ke liye math.h zaroori โข d < 0 par sqrt(negative) nahi hota (error!) isliye sqrt(-d) liya aur "i" (imaginary unit) print kiya โข if-else if-else ladder โ ek hi case chalega โข Har case me %.2f rakha taaki output clean dikhe.
Viva point: "Discriminant kya batata hai?" โ d > 0 = real & distinct (do alag roots) โข d = 0 = real & equal โข d < 0 = complex/imaginary roots (graph x-axis ko touch nahi karta). Formula: x = (โb ยฑ โ(bยฒ โ 4ac)) / 2a.
Aim: Check karna ki input number Armstrong hai ya nahi (3-digit ke liye: har digit ka cube jodkar wahi number aana chahiye).
Algorithm: Start โ n read karo โ temp = n, sum = 0 โ jab tak temp โ 0: digit = temp % 10; sum = sum + digitยณ; temp = temp / 10 โ agar sum = n to Armstrong warna nahi โ Stop.
#include <stdio.h>
int main() {
int n, temp, r, sum = 0;
scanf("%d", &n);
temp = n;
while (temp != 0) {
r = temp % 10; // digit nikala
sum += r * r * r; // cube joda
temp /= 10;
}
if (sum == n)
printf("%d is Armstrong", n);
else
printf("%d is not Armstrong", n);
return 0;
}
153 = 1ยณ+5ยณ+3ยณ = 1+125+27 = 153 โ Armstrong
370, 371, 407 bhi Armstrong hain (3-digit). 1634 bhi hota hai (4-digit, 4th power se!)
Line-by-line samjho: temp = n isliye kiya kyunki loop me n toot jaata hai (n ki original value compare ke liye chahiye) โข temp % 10 = aakhri digit โข temp / 10 = aakhri digit hata do (integer division!) โข sum += r*r*r me cube joda โข Ant me sum == n check โ original value se compare โข Yehi "digit extraction" trick aage har number program (palindrome, sum of digits, reverse) me kaam aati hai.
Viva point: "Armstrong number ki definition?" โ Jis number ke digits ke number-of-digits wale power ka sum us number ke barabar ho (3 digits โ cube, 4 digits โ 4th power). "4-digit wale program me kya badlega?" โ r*r*r*r (ya r ki power n) โ isliye general program me power = digits count karke lagate hain.
Aim: (10) Kisi number ka factorial nikalna (n! = 1ร2ร3รโฆรn) aur (11) n terms tak Fibonacci series print karna (0 1 1 2 3 5 8โฆ).
Algorithm (10): Start โ n read โ f = 1 โ i = 1 se n tak: f = f ร i โ f print โ Stop.
Algorithm (11): Start โ a = 0, b = 1 โ n read โ n baar: a print karo, c = a + b, a = b, b = c โ Stop.
// 10. Factorial #include <stdio.h> int main() { int n, i; unsigned long long f = 1; scanf("%d", &n); for (i = 1; i <= n; i++) f = f * i; printf("%d! = %llu", n, f); return 0; } Input: 6 โ 6! = 720 (5! = 120, 7! = 5040 โ yaad rakho!) // 11. Fibonacci series (0 1 1 2 3 5 8...) #include <stdio.h> int main() { int n, i, a = 0, b = 1, c; scanf("%d", &n); for (i = 1; i <= n; i++) { printf("%d ", a); c = a + b; a = b; b = c; } return 0; } Input: 8 โ 0 1 1 2 3 5 8 13
Line-by-line samjho: Factorial me f = 1 se shuru (0 se shuru karte to har baar 0 hi aata!) โข unsigned long long isliye ki factorial bahut jaldi bada hota hai (int me 12!โ13! ke baad range khatam) โข Fibonacci me a, b, c teen variables: a print karo, c = a + b (next), phir a ko b me aur b ko c me shift karo โ "sliding window" technique โข 0-based series: 0, 1, 1, 2, 3, 5, 8, 13โฆ (har agla = pichle do ka jod).
Viva point: "Factorial recursion se kaise?" โ int fact(n){ return (n<=1) ? 1 : n * fact(nโ1); } โข "Fibonacci recursion se?" โ F(n) = F(nโ1) + F(nโ2), base case F(0)=0, F(1)=1. "Fibonacci ka real use?" โ Nature me sunflower ke seeds, shells ka spiral, aur CS me Fibonacci search/Fibonacci heap. ๐ป
Aim: Do aur teen numbers me sabse bada number dhoondhna โ pehle nested if-else se, phir conditional (ternary) operator se.
Algorithm: Start โ a, b, c read karo โ agar a โฅ b aur a โฅ c to a largest โข warna agar b โฅ a aur b โฅ c to b largest โข warna c largest โ print โ Stop.
/* Largest of THREE numbers โ nested if-else se */ #include <stdio.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if (a >= b && a >= c) printf("%d is largest", a); else if (b >= a && b >= c) printf("%d is largest", b); else printf("%d is largest", c); return 0; } Input: 12 45 30 โ 45 is largest /* Same with conditional (ternary) operator โ ONE LINE me! */ int big = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c); printf("%d is largest", big);
Concept samjho: if-else ladder me pehli condition sach hui to baaki check hi nahi hoti (short-circuit) โข && (AND) ka matlab dono conditions sach honi chahiye โ isliye "a โฅ b AND a โฅ c" likha โข Ternary ka form: (condition) ? true-value : false-value โ isme nested ternary se ek hi line me teeno numbers compare ho gaye โข Largest nikaalne ka sabse simple tarika: pehle do me bada nikaal lo, phir usse teesre se compare karo big = (a > b ? a : b); big = (big > c ? big : c);
Isme kya sikha: nested if-else vs ternary operator ka use, comparison logic (โฅ vs = ke saath sochna), aur "do me se bada" ka pattern.
Viva point + common mistake: (a) "if-else aur ternary me kya chuno?" โ simple do-choice ke liye ternary, multi-branch logic ke liye if-else (readability better) (b) common mistake: a > b likh dena jab a == b bhi handle karna ho (equal values par "c is largest" print ho jaata hai) โ isliye >= use karo. โ
Aim: Input number ke digits ko ulta karke print karna (aur bonus me palindrome check karna).
Algorithm: Start โ n read โ rev = 0 โ jab tak n > 0: r = n % 10 (aakhri digit), rev = rev ร 10 + r, n = n / 10 โ rev print โ Stop.
#include <stdio.h>
int main() {
int n, rev = 0, r;
scanf("%d", &n);
while (n > 0) {
r = n % 10; // aakhri digit
rev = rev * 10 + r; // reverse me joda
n = n / 10; // digit hata di
}
printf("Reverse = %d", rev);
return 0;
}
Input: 1234 โ Reverse = 4321
Bonus: palindrome check: if (rev == original) print "Palindrome" ๐
Concept samjho: Ye digit manipulation ka universal pattern hai (reverse, palindrome, sum of digits, Armstrong โ sab isi par chalte hain):
(1) n % 10 = aakhri digit nikaalo (2) usko naye number me rev ร 10 + r se daalo (rev ko ek digit aage shift kiya) (3) n / 10 se aakhri digit hatao (4) loop tab tak jab tak n = 0. Trace (n = 1234): r=4 rev=4 โ r=3 rev=43 โ r=2 rev=432 โ r=1 rev=4321 โ
Isme kya sikha: loop + % aur / ka digit manipulation โ ye "number todna" ka base hai, aage har number program isi se banta hai.
Viva point: "Palindrome check kaise karoge?" โ original number ko save karo (temp = n) โ reverse nikalo โ if (rev == temp) to palindrome (jaise 121, 1331) โข "rev ko long kyun lete hain?" โ bade numbers ka reverse int ki range se bahar ja sakta hai (overflow) ๐ก
Aim: 2 se n tak saare prime numbers print karna (prime = jo sirf 1 aur khud se divide ho).
Algorithm: Start โ n read โ i = 2 se n tak: flag = 1; j = 2 se i/2 tak: agar i % j == 0 to flag = 0, break โข agar flag == 1 to i print โ Stop.
#include <stdio.h>
int main() {
int n, i, j, flag;
scanf("%d", &n);
printf("Prime numbers from 2 to %d: ", n);
for (i = 2; i <= n; i++) {
flag = 1; // "ye prime hai" maan lo
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
flag = 0; // kisi ne divide kiya = prime nahi
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
Input: 30 โ 2 3 5 7 11 13 17 19 23 29
Concept samjho: Nested loop โ bahar wala loop har number (i) par, andar wala us number ke divisors (j) check karta hai โข flag variable = "abhi tak prime hai" assumption; jo bhi divisor mila, flag 0 kar diya โข break = ek divisor mil gaya to aage check karne ka koi fayda nahi โ loop turant chhodo (efficiency!) โข i/2 tak kyun? Kisi number ka divisor i/2 se bada nahi hota (1 ke alawa) โ isliye aadha kaam bach jaata hai. Aur behtar: j*j <= i tak check karo (sqrt tak) โ aur bhi fast. ๐
Isme kya sikha: nested loop + flag variable + break โ teen cheezein jo har "checking" wale program me kaam aati hain.
Viva point: "1 prime kyun nahi?" โ prime ki definition ke liye exactly do factors chahiye (1 aur khud) โ 1 ka sirf ek factor hai โข "2 hi even prime kyun?" โ 2 se bada har even number 2 se divide ho jaata hai โข "Sabse bada prime nikaalne ka tarika?" โ loop ulta chalao ya list me se last value lo. โญ
Aim: Quadratic equation ke roots nikalna, par is baar switch-case ka use karke โ condition (d > 0 / d = 0 / d < 0) ko code (1 / 0 / โ1) me convert karke.
Algorithm: Start โ a, b, c read โ d = bยฒ โ 4ac โ agar d > 0 to d = 1 โข agar d = 0 to d = 0 โข warna d = โ1 โ switch(d): case 1 โ do real roots, case 0 โ ek root, case โ1 โ complex roots โ Stop.
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, d, r1, r2;
scanf("%f %f %f", &a, &b, &c);
d = b * b - 4 * a * c;
// d ki condition ko "1, 0, -1" me convert karo taaki switch chal sake
if (d > 0) d = 1;
else if (d == 0) d = 0;
else d = -1;
switch ((int)d) {
case 1:
r1 = (-b + sqrt(b*b - 4*a*c)) / (2*a);
r2 = (-b - sqrt(b*b - 4*a*c)) / (2*a);
printf("Real & distinct roots: %.2f and %.2f", r1, r2);
break;
case 0:
printf("Real & equal roots: %.2f", -b / (2*a));
break;
case -1:
printf("Complex roots: %.2f ยฑ %.2fi",
-b/(2*a), sqrt(-(b*b - 4*a*c))/(2*a));
break;
}
return 0;
}
Input: 1 -5 6 โ Real & distinct roots: 3.00 and 2.00
Note: switch me case "range" nahi ho sakta (d>0/d=0 direct nahi) โ isliye pehle
condition ko 1/0/โ1 me convert kiya. Ye trick examiner ko dikhana! โ
Concept samjho: switch sirf equality (==) par chalta hai โ "d > 0" jaisi range condition direct case me nahi likh sakte! Isliye pehle if-else se d ko 1, 0, โ1 me convert kiya, phir switch ke teen cases chalaye โข Har case ke ant me break โ warna "fall through" hokar neeche wale cases bhi chal jaate (classic bug!) โข case โ1 me sqrt(-(bยฒโ4ac)) kiya kyunki negative number ka sqrt nahi hota โ isliye sign ulta karke magnitude nikala aur "i" print kiya โข (int)d isliye ki switch float par nahi chalta โ int me cast kiya.
Isme kya sikha: switch ki limitation (sirf equality), aur range conditions ko "code" me convert karke switch me bhejna โ ye asli programming thinking hai, ratta nahi.
Viva point: "switch aur if-else me kab kya?" โ fixed values (menu 1/2/3, grade 'A'/'B') ke liye switch clean hota hai; range/complex conditions ke liye if-else โข "switch me default kyun?" โ koi case match na ho to default chalta hai โข "break na lagayein to?" โ fall-through: neeche ke saare cases execute ho jaate hain. โ ๏ธ
Aim: Nested loops se pattern print karna โ n lines ka right-triangle of stars (aur bonus patterns: ulta triangle, pyramid, diamond, number triangle).
Algorithm: Start โ n read โ i = 1 se n tak: har line me j = 1 se i tak " * " print karo โ newline โ Stop.
#include <stdio.h>
int main() {
int n, i, j;
scanf("%d", &n);
for (i = 1; i <= n; i++) { // lines 1..n
for (j = 1; j <= i; j++) { // har line me i stars
printf("* ");
}
printf("\n");
}
return 0;
}
Input: 4 โ
*
* *
* * *
* * * *
/* BONUS โ alag-alag patterns (viva me poochhte hain!) */
// Ulta triangle: for (i = n; i >= 1; i--)
// Pyramid (center): spaces (n-i) phir stars (2i-1)
// Diamond: pyramid + ulta pyramid
// Number triangle: printf("%d ", j); j ki jagah i
Concept samjho: Pattern ka poora khel do loop ke rishte me hai โ bahar wala loop = kitni lines (rows), andar wala = har line me kitne stars โข Yahan andar wala loop i tak chalta hai, isliye pehli line me 1 star, doosri me 2, teesri me 3โฆ (triangle ban gaya) โข Debugging trick: stars ki jagah i aur j ki values print karke dekho โ pattern ka formula turant samajh aa jaata hai. ๐
Bonus patterns (viva me poochhte hain โ same do-loop logic):
ULTA TRIANGLE: PYRAMID (centre-star):
for (i = n; i >= 1; i--) for (i = 1; i <= n; i++)
for (j = 1; j <= i; j++) { spaces (n-i) ; stars (2*i - 1) }
DIAMOND: NUMBER TRIANGLE:
pyramid + ulta pyramid 1
(do baar pattern likho) 1 2
1 2 3
Ek line me yaad rakho: "outer = lines, inner = per-line content" โ
Isme kya sikha: nested loops + pattern thinking โ ye "thinking" competitive coding me sabse pehle aati hai, aur exam me 5-mark ke program isi se bante hain.
Viva point: "Pyramid me spaces ka formula?" โ (n โ i) spaces phir (2i โ 1) stars โข "printf("* ") aur printf("*") me farak?" โ pehle me har star ke baad space aata hai (spacing wide), doosre me stars chipke hote hain โ examiner output dekh kar concept judge karta hai. โญ
Aim: User diye gaye n numbers me sabse bada aur sabse chhota number dhoondhna (array/loop ka use karke, bina poora data store kiye).
Algorithm: Start โ n read โ pehla number read karke big = small = pehla maan lo โ baaki nโ1 numbers: agar num > big to big = num; agar num < small to small = num โ dono print โ Stop.
#include <stdio.h>
int main() {
int n, i, big, small, num;
scanf("%d", &n); // kitne numbers
scanf("%d", &big);
small = big; // pehla number hi dono maan lo
for (i = 2; i <= n; i++) {
scanf("%d", &num);
if (num > big) big = num;
if (num < small) small = num;
}
printf("Largest = %d\nSmallest = %d", big, small);
return 0;
}
Input: 6 | 45 12 78 3 90 56
Largest = 90, Smallest = 3
Concept samjho: Ise "champion" technique kehte hain โ pehle ek number ko champion (big) maan lo, phir har naye number se compare karke chamchampion badalte jao โข Yahan tumne array use hi nahi ki โ sirf 3 variables (big, small, num) se kaam ho gaya, kyunki hamesha sirf "ab tak ka best" yaad rakhna hai โข Dhyaan do: comparison me naya number liya (num), naya variable har baar nahi banaya โ memory efficient code. ๐ก
Isme kya sikha: "pehle maan lo, phir update karo" wala greedy approach, aur loop ke andar input lena (array ke bina bhi data process ho sakta hai).
Viva point: "Array se kaise karte?" โ for(i=0;i<n;i++) scanf(&a[i]); phir big = a[0] aur loop me compare โข "Second largest kaise nikaloge?" โ do variables (big, secondBig) rakho aur update conditions thodi badal do โ ye viva me aksar poochha jaata hai! ๐ฅ
Aim: Do matrices ka multiplication karna โ dimension check (c1 = r2), 2D arrays aur 3 nested loops ke saath.
Algorithm: Start โ r1, c1, r2, c2 read โ agar c1 โ r2 to "multiplication not possible" โ matrix A (r1รc1) aur B (r2รc2) read karo โ har (i, j) ke liye prod[i][j] = ฮฃ (a[i][k] ร b[k][j]) k = 0 se c1โ1 โ product print โ Stop.
#include <stdio.h>
int main() {
int a[10][10], b[10][10], prod[10][10];
int r1, c1, r2, c2, i, j, k;
printf("Rows & cols of A: ");
scanf("%d %d", &r1, &c1);
printf("Rows & cols of B: ");
scanf("%d %d", &r2, &c2);
if (c1 != r2) { // condition check!
printf("Multiplication not possible (c1 != r2)");
return 0;
}
printf("Enter matrix A:\n");
for (i = 0; i < r1; i++)
for (j = 0; j < c1; j++)
scanf("%d", &a[i][j]);
printf("Enter matrix B:\n");
for (i = 0; i < r2; i++)
for (j = 0; j < c2; j++)
scanf("%d", &b[i][j]);
for (i = 0; i < r1; i++) {
for (j = 0; j < c2; j++) {
prod[i][j] = 0;
for (k = 0; k < c1; k++) { // dot product
prod[i][j] += a[i][k] * b[k][j];
}
}
}
printf("Product:\n");
for (i = 0; i < r1; i++) {
for (j = 0; j < c2; j++)
printf("%d ", prod[i][j]);
printf("\n");
}
return 0;
}
A = [1 2; 3 4], B = [5 6; 7 8]
Product: 19 22
43 50 (Maths Unit 1 wala hi kaam, ab C me! ๐)
Concept samjho: Matrix multiplication ka rule: C[i][j] = A ki i-th row ยท B ki j-th column ka dot product โข Isliye teen loops: i (row), j (column), k (dot product ke liye) โข Aur sabse pehle validation: agar c1 โ r2 to multiply hi nahi hoga โ agar check na lagao to galat result aa sakta hai ya program crash โข A = [1 2; 3 4] aur B = [5 6; 7 8] ka product [19 22; 43 50] aata hai โ yahi Maths Unit 1 (matrices) me padha tha, ab code me! ๐
Isme kya sikha: 2D arrays (double subscript), 3 nested loops, dimension validation โ aur Maths ka concept code me convert karna.
Viva point: "c1 = r2 kyun zaroori?" โ pehli matrix ke columns (c1) aur doosri ke rows (r2) barabar nahi hue to dot product hi nahi ban sakta โข "2D array kaise declare karte hain?" โ int a[10][10]; (rows ร columns) โข "Kya result ka size?" โ r1 ร c2 โ
Aim: Do numbers ka GCD (Greatest Common Divisor / HCF) nikalna โ pehle loop (Euclid's algorithm) se, phir recursion se.
Algorithm: Start โ a, b read โ jab tak b โ 0: t = b; b = a % b; a = t โ a print (iterative). Recursive: gcd(a,b) = gcd(b, a % b), base case b = 0 โ a.
/* (a) Iteration se (Euclid's algorithm) */ #include <stdio.h> int main() { int a, b, t; scanf("%d %d", &a, &b); while (b != 0) { t = b; b = a % b; // remainder a = t; } printf("GCD = %d", a); return 0; } Input: 36 60 โ GCD = 12 /* (b) Recursion se */ int gcd(int a, int b) { if (b == 0) return a; // base case return gcd(b, a % b); // khud ko chhote input se call } gcd(36, 60) โ gcd(60, 36) โ gcd(36, 24) โ gcd(24, 12) โ gcd(12, 0) โ 12 โ
Concept samjho (Euclid's algorithm): "Do numbers ka GCD = chhote number aur uske shesh (remainder) ka GCD" โ bas yahi soch loop me utaar di. Trace (36, 60): gcd(36,60) โ gcd(60, 36) โ gcd(36, 24) โ gcd(24, 12) โ gcd(12, 0) โ 12 โ โข Recursion me do cheezein must hain: (1) base case โ b == 0 par rukna (2) recursive step โ khud ko chhote input (a % b) se call karna. Base case ke bina infinite recursion โ stack overflow ๐จ
Isme kya sikha: Euclid's algorithm (duniya ke sabse purane algorithms me se ek), aur ek hi problem ke do solutions โ iteration vs recursion ka comparison.
Viva point: "Recursion vs iteration โ kaunsa better?" โ iteration fast + memory kam; recursion chhota + elegant (par har call stack me space leti hai) โข "GCD ka real use?" โ fractions simplify karna, LCM nikalna (LCM = aรb/GCD), cryptography/RSA me modular arithmetic ๐
Aim: C ke storage classes (auto, static, register, extern/global) ka behavior dikhana โ khaas kar static ka "value yaad rakhna" aur auto ka "reset hona".
Algorithm: Start โ ek function demo() banao jisme auto a, static s, register r ho โ teeno ko ++ karo aur print karo โ main me demo() ko 3 baar call karo โ output compare karo โ Stop.
#include <stdio.h> int global = 100; // static/global โ poore program me zinda void demo() { auto int a = 10; // auto: function khatam, gaya; har call pe naya static int s = 0; // static: value YAAD rehti hai calls ke beech register int r = 5; // register: CPU register me (fastest) a++; s++; r++; // teeno badhaye printf("auto a = %d, static s = %d, register r = %d, global = %d\n", a, s, r, global); } int main() { demo(); // auto a = 11, static s = 1, register r = 6, global = 100 demo(); // auto a = 11, static s = 2, register r = 6, global = 100 demo(); // auto a = 11, static s = 3, register r = 6, global = 100 return 0; } OUTPUT: auto a = 11, static s = 1, register r = 6, global = 100 auto a = 11, static s = 2, register r = 6, global = 100 auto a = 11, static s = 3, register r = 6, global = 100 Dekha? sirf static badhta gaya (1 โ 2 โ 3) โ kyunki wo yaad rakhta hai! auto/reset har call pe 11 pe hi raha ๐ โ YEHI viva ka jawab hai!
Concept samjho: Storage class 4 cheezein batati hai โ (1) kahan store hota hai memory (2) lifetime (kab tak zinda) (3) scope (kahan dikhta hai) (4) default value.
โข auto โ stack par, function khatam = gaya, har call pe naya (isi liye a har baar 11) โข static โ program ki poori life, ek hi baar initialize, value retain hoti hai (isi liye s 1 โ 2 โ 3) โข register โ CPU register me rakhta hai (fast, par limit) โ address nahi le sakte โข global/extern โ poori file me kahin se bhi accessible (yahan global = 100) โข Default value: auto/register = garbage, static/global = 0.
Isme kya sikha: char storage classes ka difference aur "static" ka jaadu โ function calls ke beech value retain karna. Viva me common concept to practise! โญ
Viva point: "static ka real use?" โ function call count karna (jaise "kitni baar call hua"), unique ID generator, aur memory bachana (baar-baar memory allocate nahi karni padti) โข "extern kab?" โ ek file me bani global variable ko doosri file me use karna โ large projects me ๐ผ
Aim: Function me argument bhejne ka call by value dikhana aur pointer pass karke caller ke variables par reference-style modification demonstrate karna (syllabus terminology: โcall by referenceโ). Strictly speaking, C itself passes all arguments by value; a pointer value is copied, then dereferenced to modify the pointed-to object.
Algorithm: Start โ do functions banao: swapValue(x, y) int leta hai, swapRef(*x, *y) pointer leta hai โ main me a = 10, b = 20 le kar dono functions call karo โ har call ke baad main ki values print karke difference dekho โ Stop.
#include <stdio.h>
void swapValue(int x, int y) { // copies aayi
int t = x; x = y; y = t;
printf("Andar (value): x=%d y=%d\n", x, y);
}
void swapRef(int *x, int *y) { // addresses aaye
int t = *x; *x = *y; *y = t;
printf("Andar (reference): x=%d y=%d\n", *x, *y);
}
int main() {
int a = 10, b = 20;
swapValue(a, b);
printf("main me (baad value): a=%d b=%d\n", a, b); // 10 20 โ no change!
swapRef(&a, &b);
printf("main me (baad reference): a=%d b=%d\n", a, b); // 20 10 โ changed โ
return 0;
}
OUTPUT:
Andar (value): x=20 y=10
main me (baad value): a=10 b=20 โ original safe!
Andar (reference): x=20 y=10
main me (baad reference): a=20 b=10 โ original badal gaya โ
Concept samjho: Call by value me function ko photocopy milti hai โ function andar change kar sakta hai, par original safe rehta hai (main me a = 10, b = 20 waise hi) โข C pointer-based reference-style modification me pointer ki copy function ko milti hai; dereference karke pointed-to original value badal sakte hain (a = 20, b = 10) โข Pointer ke do operators: & = "ka address do" (call ke waqt) aur * = "us address ki value" (function ke andar).
Isme kya sikha: value = photocopy, reference = original ka pata; aur pointer ka practical use โ "function se multiple values wapas laana" isi kaam aata hai (jaise min-max ek saath nikalna).
Viva point: "C me default kya hai?" โ C hamesha call by value karta hai; hum pointer bhej kar call by reference ka effect banate hain (C++ me & se true reference hai) โข "Array bhejne par kya hota hai?" โ parameter array notation pointer me adjust hota hai; pointer value by value pass hoti hai, aur pointed elements modify karne se original array badal sakta hai โ ๏ธ
Aim: Command line se diye gaye text me har alphabet kitni baar aaya โ uska count karna (argc/argv ka use).
Algorithm: Start โ command line arguments (argv) lo โ count array (26 zeros) banao โ har argument ke har character ko lowercase karke check: agar 'a'โ'z' hai to count[ch โ 'a']++ โ jo counts > 0 hain unko print karo โ Stop.
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[]) {
int count[26] = {0};
int i, j;
// har argument ke har character ko check karo
for (i = 1; i < argc; i++) {
for (j = 0; argv[i][j] != '\0'; j++) {
char ch = tolower(argv[i][j]);
if (ch >= 'a' && ch <= 'z')
count[ch - 'a']++; // a=0, b=1, c=2... position
}
}
for (i = 0; i < 26; i++)
if (count[i] > 0)
printf("%c : %d\n", 'a' + i, count[i]);
return 0;
}
Command: prog hello bca
Output:
a : 1
b : 1
c : 1
e : 1
h : 1
l : 2
o : 1
Note: Turbo C me "Arguments" alag set karte hain; modern IDE/terminal me
program ke aage likh do: ./a.out hello bca
Concept samjho: argc = arguments ka count (program ka naam bhi ginte hain, isliye loop 1 se shuru), argv = arguments ka array (argv[0] = program ka naam, argv[1], argv[2]โฆ actual words) โข count[26] = {0} se saare counters zero ho gaye โข Sabse badiya trick: count[ch โ 'a'] โ character ko array index me badal diya ('a' โ 'a' = 0, 'b' โ 1, โฆ 'z' โ 25) โ isi ko "hashing ka basic idea" kehte hain! ๐ฏ โข tolower() se small/capital ka farak khatam kar diya.
Isme kya sikha: argc/argv (command line se input), frequency counting ki technique, aur character โ index wala conversion.
Viva point: "Turbo C me arguments kaise do?" โ Options โ Arguments (ya modern terminal me: ./a.out hello bca) โข "argv ka type kya hai?" โ char *argv[] (strings ka array) โข "Ye counting technique ka real use?" โ word frequency, vote counting, histogram, hashing ๐ค
Aim: enum (enumeration) data type samajhna โ named integer constants banana aur unko readable code me use karna.
Algorithm: Start โ enum week {MONโฆSUN} aur enum status {FAIL, PASS = 33, DISTINCTION = 75} banao โ variables me values rakho โ internal integer values print karo โ condition check karo โ Stop.
#include <stdio.h>
enum week { MON, TUE, WED, THU, FRI, SAT, SUN }; // 0,1,2,3,4,5,6
enum status { FAIL, PASS = 33, DISTINCTION = 75 }; // custom values
int main() {
enum week today = WED;
enum status result = PASS;
printf("WED ka internal value = %d\n", today); // 2
printf("PASS = %d, DISTINCTION = %d\n", PASS, DISTINCTION); // 33, 75
printf("Today is day number %d\n", today + 1); // 3
if (result == PASS)
printf("Student passed โ\n");
return 0;
}
OUTPUT:
WED ka internal value = 2
PASS = 33, DISTINCTION = 75
Today is day number 3
Student passed โ
Idea: enum se code readable ban jaata hai โ "2" ki jagah "WED" likhna
samajhna aasan hai ๐
Concept samjho: enum = apne naam ke integer constants ki list โข By default values 0 se shuru hote hain (MON = 0, TUE = 1, โฆ SUN = 6) โข Intermediate value de do to uske baad numbering wahin se chalti hai (PASS = 33, DISTINCTION = 75) โข Fayda: code me magic numbers (2, 33, 75) ki jagah naam likhte hain โ padhne me aasan, galti kam โข Andar se ye sab int hi hote hain (isliye printf me %d se print hote hain aur arithmetic bhi chalti hai โ today + 1 = 3).
Isme kya sikha: enum = named integer constants โ code ko readable banata hai (menu, status, days, months ke liye best).
Viva point: "enum aur #define me farak?" โ #define text replace karta hai (type nahi hota), enum ek proper type hai jispar compiler checking karta hai โข "enum se kitna memory?" โ normally int jitna (jaise 4 byte) โข "Real use?" โ status codes (PASS/FAIL), menu options, railway/seat classes, game states ๐ท๏ธ
Aim: string.h library ke main string functions โ strlen, strcpy, strcat, strcmp (aur manual reverse) โ ka use dikhana.
Algorithm: Start โ do strings lo ("BCA", "Students") โ strlen se length, strcpy se copy, strcat se jod, strcmp se compare โ result print โ ek string ko manual loop se reverse karke print โ Stop.
#include <stdio.h>
#include <string.h>
int main() {
char a[50] = "BCA";
char b[50] = "Students";
char c[50];
printf("strlen(a) = %d\n", strlen(a)); // 3
strcpy(c, a);
printf("strcpy c = %s\n", c); // BCA
strcat(a, " ");
strcat(a, b);
printf("strcat a = %s\n", a); // BCA Students
printf("strcmp(BCA,BCA) = %d\n", strcmp("BCA", "BCA")); // 0 = equal
printf("strcmp(BCA,ABC) = %d\n", strcmp("BCA", "ABC")); // +ve: BCA bada
printf("strrev-like reverse: ");
for (int i = strlen(c) - 1; i >= 0; i--) // manual reverse
printf("%c", c[i]);
printf("\n");
printf("strupr/lwr: %s | %s\n", strupr(c), strlwr(c)); // Turbo C
return 0;
}
strlen(a) = 3
strcpy c = BCA
strcat a = BCA Students
strcmp(BCA,BCA) = 0
strcmp(BCA,ABC) = 66 (positive โ BCA pehle aata hai dictionary me)
strrev-like reverse: ACB
Concept samjho (char-by-char): C me string ek char array hoti hai jiska ant '\0' (null character) par hota hai โ string functions isi '\0' ko dhoondh kar kaam karte hain โข strlen(a) = '\0' se pehle ke characters ginta hai ("BCA" โ 3) โข strcpy(dest, src) = src ko dest me copy (dest bada hona chahiye!) โข strcat(a, b) = b ko a ke ant me jodta hai (a me jagah honi chahiye) โข strcmp() ka result number hota hai: 0 = barabar, +ve = pehli string badi, โve = chhoti โ string nahi! (yahan BCA > ABC aaya to positive 66 mila) โข Reverse ke liye humne \0 ke pehle se peeche loop chalaya.
Isme kya sikha: string.h ke 4 main functions, string ke andar '\0' ka role, aur strcmp ke return value ka concept.
Viva point: "string aur char array me difference?" โ C me alag string type nahi hota; char array + '\0' = string โข "strcmp compare kaise karta hai?" โ character by character ASCII values compare karta hai (isliye capital letters small se chhote maane jaate hain: 'A' = 65, 'a' = 97) โข "gets/puts vs scanf?" โ gets poori line (spaces ke saath) leta hai, scanf %s sirf pehla word โ modern code me fgets safest hai โ ๏ธ
Aim: Kisi file ko read karke usme total kitne characters hain โ count karna (file handling ka poora cycle).
Algorithm: Start โ filename input lo โ fopen(file, "r") โ agar NULL to error message โ jab tak fgetc(fp) โ EOF: count++ โ fclose โ count print โ Stop.
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char filename[50], ch;
long count = 0;
printf("Enter file name: ");
scanf("%s", filename);
fp = fopen(filename, "r"); // r = read mode
if (fp == NULL) {
printf("File open nahi hui! (naam/galat path check karo)");
return 1;
}
while ((ch = fgetc(fp)) != EOF) // ek-ek character padho
count++; // EOF = End Of File
fclose(fp); // file band karna zaroori!
printf("Total characters = %ld", count);
return 0;
}
Enter file name: notes.txt
Total characters = 1240
File handling ke 4 steps yaad rakho:
fopen โ check (NULL?) โ fgetc/fputc/fprintf in loop โ fclose โ
Concept samjho: File handling ke 4 steps hamesha yaad rakho: fopen (open) โ NULL check (file mili ya nahi) โ read/write loop โ fclose (band karna zaroori!) โข FILE *fp ek "handle" hai โ file se baat karne ka pointer โข fgetc(fp) file se ek-ek character padhta hai aur aage badhta jaata hai (cursor ki tarah) โข EOF = End Of File โ file khatam hone par loop ruk jaata hai โข NULL check ka matlab: file ka naam galat hua to program crash nahi hoga, saaf message dega โ
Isme kya sikha: file handling ka poora cycle โ fopen/fgetc/fclose, NULL check, EOF concept. Ye C lab ka sabse important "real programming" program hai, aur Project/record me bhi yahi base aata hai.
Viva point: "File ke modes?" โ r (read), w (write โ purana data delete!), a (append โ ant me jodta hai), r+ (read + write), w+, a+, aur binary ke liye rb/wb โข "fclose na karein to?" โ data buffer se disk par nahi likha jaata (data loss), aur file doosre programs ke liye locked reh sakti hai โ ๏ธ
Aim: structure Student (roll_no, name, class, year, total_marks) banakar 10 students ka data input le kar file me save karna (array of structures + fprintf).
Algorithm: Start โ struct Student define karo โ struct Student s[10] โ fopen("students.txt", "w") + NULL check โ loop 10 baar: scanf se data lo, fprintf se file me likho โ fclose โ "save ho gaya" print โ Stop.
#include <stdio.h>
struct Student { // apna "data type" banaya
int roll_no;
char name[30];
char class[10];
int year;
float total_marks;
};
int main() {
struct Student s[10]; // 10 students ka array
FILE *fp;
int i;
fp = fopen("students.txt", "w"); // w = write mode
if (fp == NULL) {
printf("File nahi khuli!");
return 1;
}
for (i = 0; i < 10; i++) {
printf("Student %d โ Roll, Name, Class, Year, Marks: ", i + 1);
scanf("%d %s %s %d %f", &s[i].roll_no, s[i].name,
s[i].class, &s[i].year, &s[i].total_marks);
fprintf(fp, "%d %s %s %d %.2f\n", s[i].roll_no, s[i].name,
s[i].class, s[i].year, s[i].total_marks); // file me likho
}
fclose(fp);
printf("10 students ka data students.txt me save ho gaya โ");
// (Bonus: same file wapas padho โ fehif ("students.txt","r") + fscanf)
return 0;
}
students.txt me aisa dikhega:
1 Ansh BCA 1 445.50
2 Priya BCA 1 462.00
... (10 lines)
Concept samjho: struct = apna custom data type โ alag-alag types ke fields (int roll, char name[], float marks) ek saath ek "record" ban jaate hain โข array of structures = records ki table (s[0], s[1], โฆ s[9]) โ asli database ki tarah! โข Access ka tarika: dot operator โ s[i].roll_no (array ka element + struct ka field) โข fprintf(fp, "...", ...) = file me formatted writing (printf jaisa, bas FILE pointer extra) โข fscanf se file wapas padh sakte hain (record me "read and display" bhi likh do โ bonus marks) ๐พ
Isme kya sikha: structure + array of structures + file writing โ ye "mini database" ka base hai, aur aage ke C projects (library management, student record) isi pattern par bante hain.
Viva point: "struct aur array me difference?" โ array me same type ke elements, struct me alag-alag types ke fields โข "sizeof(struct)?" โ saare fields ka total (padding ke saath) โข "Name me scanf(\"%s\") ka nuksaan?" โ naam me space nahi aata (jaise "Ansh Kumar" ka sirf "Ansh") โ isliye fgets ya gets (par gets unsafe) โข "File already exists to?" โ "w" mode use karte hi file khaali ho jaati hai (dhyaan!) โ ๏ธ
Aim: Ek file ko doosri file me copy karna, saath hi saare small (lowercase) letters ko CAPITAL (uppercase) me badal dena โ character-by-character processing.
Algorithm: Start โ src = fopen("input.txt", "r") + NULL check โ dest = fopen("output.txt", "w") โ jab tak fgetc(src) โ EOF: agar 'a'โ'z' hai to toupper() โ fputc(ch, dest) โ dono files fclose โ message print โ Stop.
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *src, *dest;
char ch;
src = fopen("input.txt", "r");
if (src == NULL) {
printf("Source file nahi mili!");
return 1;
}
dest = fopen("output.txt", "w");
while ((ch = fgetc(src)) != EOF) {
if (ch >= 'a' && ch <= 'z')
ch = toupper(ch); // small โ CAPITAL
fputc(ch, dest); // destination me likho
}
fclose(src);
fclose(dest);
printf("File copy ho gayi (lowercase โ UPPERCASE) โ");
return 0;
}
input.txt : "bca first semester"
output.txt: "BCA FIRST SEMESTER"
Note: ctype.h ke toupper/tolower hi asli kaam kar rahe hain โ
condition: sirf lowercase letters badlenge, baaki characters (space, ., numbers) same rahenge!
Concept samjho: Ek saath do files โ ek read mode me (src), ek write mode me (dest) โข Loop me ek character src se uthao โ transform karo โ dest me likho (bilkul assembly line ki tarah) โข toupper() (ctype.h) sirf lowercase letters ko badalta hai; baaki characters (space, '.', digits) waise hi rahenge โ isliye condition lagayi (ch โฅ 'a' && ch โค 'z') โข EOF par loop rukta hai aur dono files band ho jaati hain โข Isi logic se "file copy" ka general program banta hai โ bas conversion hata do (toupper ki line delete) ๐
Isme kya sikha: do files ek saath handle karna (read + write), character-by-character processing, toupper/tolower ka use โ "file copy with transformation" ek real utility program hai.
Viva point: "File copy ka command?" โ Linux/mac me cp, Windows me copy โ par humne yahan apna program likha (logic clear karne ke liye) โข "Binary file copy me kya badlega?" โ rb/wb modes + fread/fwrite (fgetc/fputc nahi, warna special bytes/garbage handle karna mushkil) โข "tolower/toupper kahan define hain?" โ ctype.h ๐ | "Sirf letters badalne ke liye condition kyun?" โ taki punctuation aur digits na badlein.
Clear explanations and correct terminology are useful in a viva. The questions below are practice prompts for the computer and C labs, followed by record/preparation topics. Answer concisely, but explain further when asked; these notes do not predict the viva questions. โ
| Question | Short answer (Hinglish) |
|---|---|
| C kya hai? Kaun banaya? | High-level/middle-level structured language, Dennis Ritchie, 1972, Bell Labs |
| sizeof(int) kitna hai? | Turbo C me 2 byte, modern (gcc) me 4 byte โ machine dependent |
| %d aur %f me difference? | %d integer ke liye, %f float ke liye (scanf me & zaroori!) |
| Compiler vs Interpreter? | Compiler poora program ek saath (fast execution), interpreter line-by-line (slow but easy debug) |
| while vs do-while? | while = entry controlled (0 baar bhi chal sakta), do-while = exit controlled (kam se kam 1 baar) |
| break vs continue? | break = loop poora chhodo, continue = sirf current round skip karo |
| Array kya hai? Index kahan se? | Same type ka collection, contiguous memory, index 0 se |
| String me '\0' ka kaam? | String ka end batane wala null character (iske bina printf garbage print karega) |
| strcmp result kya deta hai? | 0 = barabar, positive/negative = bada/chhota (number, string nahi!) |
| Call by value vs reference? | Value = copy (original safe), reference = address (original badalta hai) |
| Recursion kya hai? Base case kyun? | Function khud ko call kare; base case = rukne ki condition (warna infinite/stack overflow) |
| Pointer kya hai? * aur &? | Address store karne wala variable; & = address of, * = value at that address |
| static variable ka fayda? | Function calls ke beech value retain karta hai (ek hi baar initialize hota hai) |
| File handling ka sequence? | fopen โ NULL check โ read/write โ fclose |
| Storage classes kaunse hain? | auto, static, register, extern (4) โ lifetime aur scope alag-alag |
| auto variable ki default value? | Garbage (junk) โ isliye use karne se pehle initialize karna chahiye |
| static variable ki default value? | 0 (zero) โ aur ye ek hi baar initialize hota hai |
| register variable kya hai? | Variable ko CPU register me rakhne ki request โ fastest access, par address nahi le sakte |
| Global variable kahan declare? | Saare functions ke bahar (file ke top par) โ poori file me accessible |
| Typecasting kya hai? | Ek data type ko doosre me badalna: (float)a / b โ warna integer division ho jaata |
| Integer division ka problem? | 5/2 = 2 aata hai (decimal kat jaata) โ solution: (float)5/2 ya 5.0/2 |
| +\- vs % ka farak? | % (modulus) sirf integers par chalta hai aur remainder deta hai โ digit nikaalne me use hota hai |
| Prefix aur postfix ++ me farak? | ++a = pehle badhao phir use; a++ = pehle use phir badhao |
| &&, ||, ! kya hain? | Logical AND, OR, NOT โ multiple conditions jodne ke liye |
| Ternary operator ka form? | condition ? true-value : false-value (C ka ekmatra ternary operator) |
| switch me range condition kyun nahi? | switch sirf equality (==) check karta hai โ range ke liye pehle convert karo (jaise 1/0/โ1) |
| Array parameter ka kya hota hai? | Array parameter pointer me adjust hota hai; pointer copy pass hoti hai, pointed elements tak access milta hai |
| 2D array kaise declare? | int a[10][10]; โ rows ร columns; element: a[i][j] |
| Structure kya hai? Dot operator? | Alag-alag types ke fields ka group (custom data type); s.roll se field access |
| Structure aur union me farak? | struct ke saare members ki alag memory, union me sab ek hi memory share karte hain (ek time par ek) |
| File ke modes kaunse? | r (read), w (write โ data delete), a (append), r+, w+, a+, aur binary rb/wb |
| EOF kya hai? | End Of File โ #define EOF (โ1); fgetc jab file khatam ho jaati hai to EOF return karta hai |
| fprintf aur printf me farak? | fprintf file me likhta hai (FILE pointer extra), printf screen par |
| argc aur argv kya hain? | Command line arguments ka count aur array (argv[0] = program ka naam) |
| enum kya hai? | Named integer constants ka set (baahar se int) โ readable code ke liye |
| #define aur const me farak? | #define preprocessor text-replace (memory nahi), const ek read-only variable |
| Header file kya karti hai? | Functions ki declaration (prototype) laati hai โ jaise stdio.h me printf/scanf, math.h me sqrt/pow |
| main() ka return type? | int โ 0 = successful execution (OS ko status batata hai) |
| Syntax error vs logical error? | Syntax = compiler pakad leta hai (semicolon etc.); logical = program chalta hai par answer galat |
| Debugging kaise karte ho? | Print statements (beech me values print karo), dry run (haath se trace), debugger (F7 step) ๐ |
| Question | Short answer |
|---|---|
| Mail merge kya hai? | Ek letter template + data list se kai personalized letters ek saath banana |
| Mail merge ke 3 parts? | Main document, data source (recipient list), merged document |
| Superscript vs subscript? | Superscript upar (xยฒ, Ctrl+Shift++), subscript neeche (HโO, Ctrl+=) |
| Excel me $B$2 ka matlab? | Absolute reference โ formula copy karne pe bhi cell fix rehta hai |
| Chart ke types aur use? | Bar = comparison, Line = trend, Pie = hissa, XY = relation |
| Column aur Bar chart me farak? | Column = khade bars, Bar = lete (horizontal) bars โ lambe labels ke liye Bar better |
| Hardware vs software? Input/output devices? | Chhu sakte ho vs program; keyboard input, printer/monitor output (Unit 2 ke notes!) |
| Number system conversion? | DecimalโBinary = 2 se divide, remainders ulta; BinaryโOctal = 3-3 bits ke group |
| Flowchart symbols? | Oval = start/stop, Parallelogram = I/O, Rectangle = process, Diamond = decision |
| Algorithm aur flowchart me farak? | Algorithm = steps shabdon me; flowchart = wahi steps symbols/diagram me |
| Word me page border kahan se? | Design โ Page Borders (ya Layout โ Page Setup โ Borders) |
| Table me cell merge kaise? | Cells select karo โ right-click โ Merge Cells (Table Layout โ Merge Cells) |
| PDF ka poora naam? | Portable Document Format (Adobe, 1993) โ formatting har device par same rehti hai |
| Word โ PDF kaise? | File โ Save As โ file type PDF (ya File โ Export) |
| Excel me formula kaise shuru hota hai? | = (equal sign) se โ jaise =SUM(B2:D2) |
| SUM aur AVERAGE me farak? | SUM total deta hai, AVERAGE total/count (average) deta hai |
| COUNT aur COUNTA me farak? | COUNT sirf numbers ginta hai, COUNTA bhare hue saare cells (text bhi) |
| IF function ka use? | Condition ke sach/jhoot ke hisaab se do me se ek value deta hai โ =IF(marks>=33,"Pass","Fail") |
| Nested IF kya hai? | IF ke andar IF โ jaise 90+ = A, 75+ = B, 60+ = C wala grade formula |
| Fill handle ka fayda? | Formula/value ko drag karke neeche copy karta hai (cell reference auto adjust hota hai) |
| #DIV/0! error kyun aata hai? | Zero se divide karne par โ IF se check lagao ya divisor correct karo |
| #VALUE! error kyun? | Text ko number ki tarah use kiya (cell me space/โน/letters hain) |
| Conditional Formatting kya hai? | Condition ke hisaab se cell ka colour/format badalna (Fail wale red) ๐จ |
| Sort aur Filter me farak? | Sort = data ko order me lagata hai; Filter = sirf zaroori rows dikhata hai (baaki chhupa) |
| Pivot table kab use karte ho? | Bade data ka summary (group by + total) โ jaise class-wise average marks |
| Freeze panes kyun? | Scroll karte waqt heading row/column screen par fixed rakhne ke liye (View โ Freeze Panes) |
| VLOOKUP kya karta hai? | Table ki pehli column me value dhoondh kar uske saamne wali column ki value laata hai |
| Program / concept | Viva me kya poochha jaata hai |
|---|---|
| Largest of three (P1) | Nested if-else vs && wali condition; ternary ka form; equal numbers par โฅ kyun zaroori |
| Reverse / Palindrome (P2) | % 10 aur / 10 ka role; rev = rev*10 + r kyun; palindrome ke liye original save kyun |
| Prime numbers (P3) | Flag variable ka kaam; break kyun; i/2 ya j*j <= i tak loop kyun kaafi hai |
| Quadratic with switch (P4) | switch sirf equality par; d ko 1/0/โ1 me convert kyun; break na ho to fall-through |
| Star patterns (P5) | Outer/inner loop ka role; pyramid me spaces (nโi) aur stars (2iโ1) ka formula |
| Largest/smallest (P6) | "Champion" technique; array chahiye ya nahi; second largest nikaalne ka logic |
| Matrix product (P7) | c1 = r2 validation kyun; teen loops ka kaam; result ka size (r1 ร c2) |
| GCD (P8) | Euclid's algorithm; recursion me base case; iteration vs recursion ka farak |
| Storage classes (P9) | auto/static/register/extern; static ki value retain kyun hoti hai; default values |
| Value vs reference (P10) | Pointer-by-value vs pointed-object modification; & aur *; array parameter adjustment |
| Frequency count (P11) | argc/argv; count[ch โ 'a'] ka trick; tolower kyun lagaya |
| enum (P12) | Default values 0 se; custom value (PASS = 33) kya karti hai; enum vs #define |
| String functions (P13) | '\0' ka role; strcmp ka return number; strcpy destination bada kyun hona chahiye |
| File character count (P14) | File handling ke 4 steps; NULL check; EOF; fclose kyun zaroori |
| Struct + file (P15) | struct vs array; array of structures; fprintf vs printf; "w" mode ka khatra |
| File copy uppercase (P16) | Do files ek saath; toupper ka role; condition kyun; binary copy me kya badlega |
| Question | Jawab |
|---|---|
| Practical exam me kya-kya hota hai? | Usually: (1) ek program likh kar run karna (2) output dikhana (3) viva (4) lab file/record check |
| Program kaise likhna โ pehle algorithm ya code? | Pehle algorithm/steps likho (2โ4 lines), phir code โ examiner isi order par marks deta hai |
| Output galat aa raha ho to? | Ghabrao mat โ dry run karo, printf se beech ki values check karo, input format (spaces/enter) verify karo |
| Record file me kya zaroori hai? | Aim, algorithm, code (neat), output (printout/screenshot), result โ aur date + index |
| Copy-paste kar sakte hain? | Lab file haath se likhna best hai (yaad rehta hai); exam me sirf apne code par bharosa karo โ "samajh" ke likho |
| Kya dekh kar bata sakte hain ki code chalega? | Dry run: chhote input (2โ3 value) lekar haath se trace karo โ logic ka pata turant chal jaata hai โ |
| Page ka part | Kya likhna hai | Marks tip |
|---|---|---|
| 1. Index | Practical number, naam, date โ ek table | Date zaroor likho (examiner check karta hai) |
| 2. Aim | Ek line: "To write a C program toโฆ" / "To create a document in MS Word toโฆ" | Ek line me, clear verbs ke saath |
| 3. Requirements | Software: MS Word / MS Excel / Turbo C / gcc; Hardware: computer, printer | Agar poochho to likh do (2-3 line) |
| 4. Algorithm / Procedure | C ke liye: steps (1,2,3โฆ); Word/Excel ke liye: menu-wise steps ("Insert โ Table โ โฆ") | Give enough detail for another person to reproduce the procedure; follow the official rubric |
| 5. Program / Steps | Code (neat, indented) ya Word/Excel ke steps + screenshot | Code me comment (// kya kar raha hai) likho |
| 6. Output | Program ka output (printout/screenshot) โ 2 sample inputs ke saath Word/Excel me bane document ka print/screenshot | Output ke saath input bhi likho ("Input: 5 โ Output: 120") |
| 7. Result / Conclusion | Ek line: "Hence, the program successfully calculated the factorial and gave the correct output." / "The advertisement was created successfully using formatting features." | Har practical me likho โ examinee ne kaam samjha hai, ye isse pata chalta hai |
| 8. Signature | Teacher ka checked sign (practical ke din hi karwao) | Bina sign wali file par sawaal uthta hai ๐๏ธ |
| Task | Kya likhna/karana hai | Kaise approach karo |
|---|---|---|
| Task 1 (mandatory) | "Write a C program to print all prime numbers between 2 and n, where n is entered by the user." | Algorithm likho (2โ3 lines) โ code (P3 wala) โ 2 outputs (n = 20, n = 30) โ result line. Flag + break ka logic viva me bolo โ |
| Task 2 (choose) | "Write a program to reverse a number and check whether it is palindrome." ya "Find GCD of two numbers using recursion." | P2 ya P8 wala code. Palindrome ke liye baseline: original save karo, rev nikaalo, compare karo. |
| Task 3 (file/data) | "Create a file students.txt with 5 students' data and display it." / "Count characters in a file." | P15 / P14 wala code โ file handling ke 4 steps likho: fopen โ NULL check โ loop โ fclose. |
| Viva | "Ye program kaise kaam kar raha hai?" "Kaunse header file use kiye?" "Loop kyun lagaya?" | 2 line me: concept + logic + output. Header files aur variables ka naam bata do. |
| Task | Kya banana hai | Kaise approach karo |
|---|---|---|
| Task 1 (Word) | Mail merge letter (5 recipients: Name, City, Amount) โ ya CV + advertisement | Steps likho: template โ Select Recipients โ Insert Merge Field โ Preview โ Finish & Merge; screenshot chhapo |
| Task 2 (Word) | Timetable (table + merge cells) ya scientific notations (xยฒ, HโO, ฯ) | Table Insert โ Merge Cells โ Shading; superscript Ctrl+Shift++ / subscript Ctrl+= likh do |
| Task 3 (Excel) | Marksheet: Total (SUM), Percentage (ROUND), Grade (nested IF), Result (IF), Bar chart + Conditional Formatting | Pehle headers + data, phir formulas (ek-ek), phir chart; fill handle se formulas neeche copy karo |
| Viva | "$B$2 kya hai?" "Chart types?" "Mail merge ke parts?" "COUNT vs COUNTA?" | Table-seekha hua jawab โ 1 line me |
WORD (BCA101P)
1. Ctrl + N = new document, Ctrl + S = save, Ctrl + P = print
2. Ctrl + B / I / U = bold / italic / underline
3. Ctrl + E = centre align (L left, R right, J justify)
4. Superscript = Ctrl + Shift + + (xยฒ) ; Subscript = Ctrl + = (HโO)
5. Insert โ Table = table banana; Merge Cells = cells jodna
6. Table Design โ Shading = header row ka colour
7. Insert โ Shapes = flowchart ke symbols (oval, rectangle, diamondโฆ)
8. Ctrl + G = shapes ko group karna (ek unit)
9. Mailings โ Start Mail Merge โ Letters = mail merge shuru
10. Insert Merge Field = ยซNameยป jaise placeholders daalna
11. Data source = recipient list (Name, City, Amountโฆ)
12. Mail merge ke 3 parts = main document + data source + merged doc
13. File โ Save As โ PDF = document PDF me convert
14. Design โ Page Borders = page ke chaaron taraf border
15. Insert โ Symbol = ฯ, ฮฑ, ยฐ, โฅ, โ jaise symbols
16. Insert โ Equation (Alt + =) = E = mcยฒ, fraction, root
17. Insert โ Pictures + Text Wrapping = image ke aas-paas text
18. WordArt = title ko fancy banane ke liye
19. Review โ Spelling & Grammar (F7) = spell check
20. Print Preview (Ctrl + P) = print se pehle layout check
EXCEL (BCA101P)
21. Har formula = se shuru hota hai (=SUM(B2:D2))
22. =SUM(range) total, =AVERAGE(range) average
23. =MAX / =MIN = sabse bada / chhota
24. =COUNT sirf numbers ginta hai, =COUNTA bhare cells
25. =IF(condition,"Pass","Fail") = condition wala result
26. Nested IF = grade system (90+ A, 75+ B, 60+ C, 33+ D)
27. Absolute reference = $B$2 (F4 se lagta hai), copy karne par fixed
28. Fill handle = cell ka corner square โ drag = formula copy
29. Percentage = marks/total*100 (aur =ROUND(value,2) se 2 decimal)
30. Conditional Formatting = condition par colour (Fail = red)
31. Insert โ Charts = Column/Bar (comparison), Line (trend),
Pie (hissa), XY Scatter (relation)
32. Move Chart โ New Sheet = chart alag sheet par
33. Data โ Sort = order laga, Filter = chhupa kar sirf zaroori dikhao
34. Freeze Panes (View) = scroll me heading fixed
35. #DIV/0! = zero se divide; #VALUE! = text ko number samjha
36. #NAME? = function ka naam galat; ##### = column chhota
37. Pivot Table = bade data ka summary (group + total)
38. VLOOKUP = pehli column me dhoondh kar saamne wali value
39. Data Validation = cell me dropdown list banana
40. Print Titles + Print Area = printout me heading har page par
C โ BASICS (SEC101P)
41. #include <stdio.h> = printf/scanf ke liye; math.h = sqrt/pow
42. main() = program ka entry point; return 0 = success
43. printf("...") = screen par output; scanf("...", &var) = input
44. %d int, %f float, %c char, %s string, %lf double
45. & = address of (scanf me must); * = value at address (pointer)
46. sizeof(int) = 2 byte (Turbo C) / 4 byte (gcc) โ machine dependent
47. Integer division: 5/2 = 2 โ (float)5/2 = 2.5
48. % (modulus) = remainder โ sirf integers par
49. ++i = pehle badhao phir use; i++ = pehle use phir badhao
50. if-else, else-if ladder, switch (sirf equality), default, break
51. while = entry controlled; do-while = exit controlled (kam se kam 1 baar)
52. for = initialization; condition; update โ sab ek line me
53. break = loop chhodo; continue = current round skip karo
54. Nested loop = rows ร columns (patterns, matrix)
55. Array: int a[10]; index 0 se 9 tak; a[0] = pehla element
56. 2D array: int a[3][4]; element a[i][j]
57. String = char array + '\0' (null character end par)
58. strlen = length, strcpy = copy, strcat = jod, strcmp = compare (0 = equal)
59. toupper/tolower (ctype.h) = case badalna
60. Function: return_type name(parameters){ body } โ prototype pehle likho
61. C: all arguments passed by value; a pointer-value parameter can be dereferenced to modify the pointed-to object
62. Recursion = function khud ko call kare + base case (warna stack overflow)
63. static variable = value retain (ek hi baar initialize)
64. auto = har call pe naya (default garbage); register = CPU register
65. enum = named integer constants (0 se shuru, custom value de sakte ho)
66. struct = alag types ke fields ka group; access s.roll ya p->roll
67. File: fopen โ NULL check โ fgetc/fprintf loop โ fclose
68. File modes: r read, w write (data delete!), a append, rb/wb binary
69. EOF = End Of File (โ1) โ fgetc file khatam hone par deta hai
70. argc/argv = command line arguments (argv[0] = program ka naam)
BONUS โ 4 lines jo har exam me kaam aayengi:
โข "Algorithm pehle, code baad me" โ examiner isi order par marks deta hai
โข "Output ke saath input likho" โ warna print samajh nahi aata
โข "Result line likho" โ practical poora lage (Hence, the program โฆ)
โข "Jo aata hai, confidently bolo โ viva me ghabrana sabse bada minus hai" ๐ค