using System;// this is the delegate declarationpublic delegate int Comparer(object obj1, object obj2);public class Name{public string FirstName = null;public string LastName = null;public Name(string first, string last){FirstName = first;LastName = last;}// this is the delegate method handlerpublic static int CompareFirstNames(object name1, object name2){string n1 = ((Name)name1).FirstName;string n2 = ((Name)name2).FirstName;if (String.Compare(n1, n2) > 0){return 1;}else if (String.Compare(n1, n2) < 0){return -1;}else{return 0;}}public override string ToString(){return FirstName + " " + LastName;}}class SimpleDelegate{Name[] names = new Name[5];public SimpleDelegate(){names[0] = new Name("DILIP", "BARI");names[1] = new Name("ROHAN", "SHARMA");names[2] = new Name("PRIYA", "KHARE");names[3] = new Name("RAM", "VERMA");names[4] = new Name("MOHAN", "VERMA");}static void Main(string[] args){SimpleDelegate sd = new SimpleDelegate();// this is the delegate instantiationComparer cmp = new Comparer(Name.CompareFirstNames);Console.WriteLine("\nBefore Sort: \n");sd.PrintNames();// observe the delegate argumentsd.Sort(cmp);Console.WriteLine("\nAfter Sort: \n");sd.PrintNames();}// observe the delegate parameterpublic void Sort(Comparer compare){object temp;for (int i=0; i < names.Length; i++){for (int j=i; j < names.Length; j++){// using delegate "compare" just like// a normal methodif ( compare(names[i], names[j]) > 0 ){temp = names[i];names[i] = names[j];names[j] = (Name)temp;}}}}public void PrintNames(){Console.WriteLine("Names: \n");foreach (Name name in names){Console.WriteLine(name.ToString());}}}
WAP to calculate the monthly telephone bills as per the following rule: Minimum Rs. 200 for upto 100 calls. Plus Rs. 0.60 per call for next 50 calls. Plus Rs. 0.50 per call for next 50 calls. Plus Rs. 0.40 per call for any call beyond 200 calls.
#include<iostream.h> #include<conio.h> void main() { int calls; float bill; cout<<" Enter number of calls : "; cin>>calls; if (calls<=100) bill=200; else if (calls>100 && calls<=150) { calls=calls-100; bill=200+(0.60*calls); } else if (calls>150 && calls<=200) { calls=calls-150; bill=200+(0.60*50)+(0.50*calls); } else { calls=calls-200; bill=200+(0.60*50)+(0.50*50)+(0.40*calls); } cout<<" Your bill is Rs. "<<bill; getch(); } Output: Enter number of calls : 190 Your bill is Rs.250
Comments
Post a Comment