Wednesday, 29 January 2014
Friday, 17 January 2014
oops week 20
                   Week 20 solutions                
20a) Write a C++ program to write a function void to_lower(char* s) that replaces all uppercase characters. Don't use any standard library functions.
Program:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
void to_lower(char* s);
int main()
{
 string st;
 char* s;
 cout<<"Enter any string\n";
 cin>>st;
 s = strdup(st.c_str());
 
 to_lower(s);
 cout<<"\n Original string is :"<<st;
 cout<<"\n modified string is :"<<s; 
 return 0;
}
void to_lower(char* s)
{
 for(int i=0;s[i]!='\0';i++)
  s[i] = (s[i]>='A' && s[i]<='Z')?(s[i]+32):s[i];
}
output:
Enter any string
C++PROGRAMMING
 Original string is :C++PROGRAMMING
 modified string is :c++programming
  
20b) b) Write a C++ program to write a function,char* findx(const char* s, const char* x), 
that finds the first occurrence of the string x in s.
Program:
#include<iostream>
#include<cstring>
#include<cctype>
using namespace std;
char* findx(const char* s,const char* x);
int main()
{
 string st,st1;
 char* a;
  char* b;
 cout<<"Enter any string\n";
 getline(cin,st);
 cout<<"Enter string to search\n";
 cin>>st1;
 a = strdup(st.c_str());
 b = strdup(st1.c_str());
 
 findx(a,b);
 
 return 0;
}
char* findx(const char* s,const char* x)
{
 char* check=new char[10];
 int j=0;
 int count=0;
 for(int i=0;i<=strlen(s);i++)
 {
  if(isspace(s[i])||s[i]=='\0')
  {
   check[j]='\0';
   j=0;
      if(strcmp(check,x)==0)
      {
    cout<<x<<" is present in the string at index :"<<i-strlen(x)<<endl;
    count++;
    
             }
  }
  else
   check[j++]=s[i];
  
 }
 
 if(count==0)
  cout<<x <<" is not present in the string \n";
  
}
output: 
 
Enter any string
Ramu is a naughty boy and he is also intelligent
Enter string to search
is
is is present in the string at index :5
is is present in the string at index :29
C:\Users\Personal\Desktop>
oops week 21
                   Week 21 solutions                
21a) Write a C++ program that reads characters from cin into an array that you allocate on thefree store. Read individual characters until an asterisk (*) is entered. Do not use a std::string.
Program:
#include<iostream>
using namespace std;
int main()
{
 int max = 10;           // no longer const
 char* a= new char[max]; //  allocated on heap
 int n = 0;
 cout<<"Enter the characters of an array\n";   
 while (cin >> a[n]&&a[n]!='*')    //--- Read into the array
 {
  n++;
 }
 cout<<"Contents in the array are:\n";
 for (int i=0; i<n; i++) 
  cout<<a[i]<<"  ";
}
output:
Enter the characters of an array
abcdefg*
Contents in the array are:
a  b  c  d  e  f  g
21b) Write a C++ program to write a function, char* strdup(const char*) that copies a string
into memory it allocates on the free store. Use the dereference operator * instead.
Program:
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
char* strdup(const char* s)
{
 size_t len = 1+strlen(s);
 char *p = (char*)malloc(len);
 memcpy(p, s, len);
 return p ;
}
int main()
{
 char* n=new char[20];
 char* copy;
 cout<<"enter a string\n";
 cin>>n;
 copy=strdup(n);
        cout<<"Copied string is :  "<<copy<<endl;
 return 0;
}
output: 
 
enter a string
HelloWorld
Copied string is :  HelloWorld
oops week 22
                   Week 22 solutions                
22a) a) Write a C++ program to write a function char* findx(const char* s, const char* x) that find the first occurrence of the string x in s. Use dereference operator * instead. Same as 20a
22b) Write a C++ program to write a function 
string cat_dot(const string& s1, const string&s2), 
that concatenates two strings with a dot in between.
program:
#include<iostream>
#include<string.h>
using namespace std;
string cat_dot(const string&s1,const string&s2);
int main()
{
 string s1,s2,s3;
 cout<<"Enter string 1\n";
 cin>>s1;
 cout<<"Enter string 2\n";
 cin>>s2;
 s3=cat_dot(s1,s2);
 cout<<"After concatenation:\n";
 cout<<s3;
 
}
string cat_dot(const string&s1,const string&s2)
{
 string a;
 a=s1+"."+s2;
 return a;
}
output: 
Enter string 1
C++
Enter string 2
Programming
After concatenation:
C++.Programming
22c) Write a template function that adds a vector of elements of an 
object of any type to which elements can be added.
program:
#include<iostream>
#include<vector>
using namespace std;
template<class T>
T sum(vector<T>v) 
{
   T result;
   for (int i = 0; i < v.size(); ++i)
      result+=v[i];
  
 return result;
}
int main()
{
 
 vector<int>v;
 int x,res;
 cout<<"Enter the elements of vector\n";
 while(cin>>x)
 {
  v.push_back(x);
 }
 res=sum(v); 
 cout<<"sum of all elements is :"<<res<<endl;
}
output: 
Enter the elements of vector
1 2 3 4 5 6 7 8 9 10 11 11 *
sum of all elements is :77
 
oops week 23
                   Week 23  solutions                
23a) Write a C++ program to write a function template 
for finding the minimum value contained in any array.
Program:
#include<iostream>
#include<vector>
using namespace std;
template<class T>
T min(T a[],T n) 
{
   T temp=a[0];
   for (int i = 0; i <n; ++i)
   {
    if(temp>=a[i])
   temp=a[i];
 }   
  
 return temp;
}
int main()
{
 int a[20];
 int n=0,res;
 cout<<"Enter the elements of array\n";
 while(cin>>a[n])
 {
  n++;
 }
 res=min(a,n); 
 cout<<"Minimum of all elements is :"<<res<<endl;
}
Output: 
Enter the elements of array
25
7
9
36
55
77
8
2
*
Minimum of all elements is :2
 
23b) Write a template function that takes a vector<T> vt and a vector<U> vu
as arguments and returns the sum of all vt[i]*vt[i]s.
program:
#include<iostream>
#include<vector>
using namespace std;
vector<double>vt,vu;
template<class T>
T value(vector<T>a,vector<T>b)
{
 T sum=0;
 for(int i=0;i<a.size();i++)
 {
  cout<<a[i]<<"\t"<<b[i]<<"\t"<<a[i]*b[i]<<endl;
  sum+=a[i]*b[i];
 }
 return sum;
}
int main()
{
 double p,w;
 double val;
 cout<<"Enter the elements of two vectors sinultaneously (enter character to quit)\n";
 cout<<"\n----------Reading values-------- \n";
 while(cin>>p&&cin>>w) 
 {
  vt.push_back(p);
  vu.push_back(w);
 }
 val=value(vt,vu);
 cout<<"\nSum of products is : ="<<val<<endl;
}
output: 
Enter the elements of two vectors sinultaneously (enter character to quit)
----------Reading values--------
1 2
2 3
3 4
4 5
6 10
*
1       2       2
2       3       6
3       4       12
4       5       20
6       10      60
Sum of products is : =100
23c)  Define a class Int having a single member of class int. Define 
constructors, assignment,and operators +,-,*,/ for it.
program:
#include <iostream>
using namespace std;
 
class Int
{
   public:
   int a;
};
int main()
{
 Int x;
 int b;
 cout<<"Enter an integer :\n";
 cin>>b;
 x.a=b;
 cout<<"\nvalue of a is:"<<x.a;
 x.a+=10;
 cout<<"\nAfter adding 10 value of a is:"<<x.a;
 
}
output: 
Enter an integer :
22
value of a is:22
After adding 10 value of a is:32
 
23d)  Implement vector::operator=() using an allocator for memory management
program:
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
   vector<int> foo (3,0);
   vectorlt;int> bar (5,0);
 
   bar = foo;
   foo = vector<int>();
 
   cout << "Size of foo: " << int(foo.size()) << '\n';
   cout << "Size of bar: " << int(bar.size()) << '\n';
   return 0;
}
output: 
Size of foo: 0
Size of bar: 3
 
Thursday, 16 January 2014
oops week16
                   Week 16 solutions                
16a) Write a C++ program that reads a text file and 
writes out how many characters of each character 
classification are in the file.
File: file.txt
  
 HELLO world
Program:
#include<iostream>
#include<fstream>
#include<ctype.h>
using namespace std;
int main()
{ 
 
        int v[26]={0},index=0; 
        ifstream file("file.txt");
        char c=file.get();
        while(!file.eof())
        {
             if(isalpha(c))
             {
                  c = tolower(c);
                  index = c - 'a';
                  v[index]++;
             }
           c=file.get();
       }
      file.close();
      cout<<"\nFrequency of each character \n";
      cout<<"Character Frequency\n\n";
      for(int i=0;i<26;i++)
      {
          if(v[i]>0)
          cout<<char(97+i)<<"\t  "<<v[i]<<"\n";
      }
      return 0;
}
output:
Frequency of each character
Character Frequency
d         1
e         1
h         1
l         3
o         2
r         1
w         1
  
16b) Write a C++ program draw a rectangle as a rectangle and as a 
polygon.Make the lines of the polygon red and the lines of the 
rectangle blue.
program:
#include<graphics.h>
#include<conio.h>
void poly();
int main()
{
      int gd = DETECT,gm;
      initgraph(&gd, &gm, "C:\\TC\\BGI");
      setbkcolor(WHITE);
      setcolor(BLUE);
      rectangle(100,30,200,80);
      poly();
      getch();
      closegraph();
      return 0;
}
void poly()
{
        setcolor(RED);
        line(250,100,120,150);
        line(250,100,120,300);
        line(120,150,120,300);
}
output:  
.png) 
16c) Write a C++ program draw a 100-by-30 rectangle and place the 
text “PVPSIT” inside it.
program:
#include<graphics.h>
#include<conio.h>
 
int main()
{
        int gd = DETECT,gm;
        initgraph(&gd, &gm, "C:\\TC\\BGI");
        setbkcolor(WHITE);
        setcolor(GREEN);
        rectangle(100,30,200,80);
        setcolor(RED);
        outtextxy(120,40,"PVPSIT");
        getch();
        closegraph();
        return 0;
}
output: 
.png) 
Tuesday, 7 January 2014
oops week14
                   Week 14 solutions                
14 b) Write a C++ program that reads a text file and converts its
input to all lower case,producing a new file.
File(input): f1.txt
HELLO
WElcOME TO C++ PROGRAMMING
Program:
#include<iostream>
#include<fstream>
#include<ctype.h>
using namespace std;
int main()
{ 
 
 char ch;
 ifstream in("f1.txt");
 ofstream out("f2.txt");
 cout<<"\nContents of Input file \n";
 ch=in.get();
 while(in.good())
 {
  cout<ch;
  out<<char(tolower(ch));
  ch=in.get();
 }
 in.close();
 out.close();
 ifstream in2("f2.txt");
 cout<<"\nContents of Output file \n";
 cout<<in2.rdbuf();
 in2.close();
 return 0;
 
}
output:  
Contents of Input file
HELLO
WElcOME TO C++ PROGRAMMING
Contents of Output file
hello
welcome to c++ programming
  
oops week15
                   Week 15 solutions                
15a) Write a C++ program that removes all vowels 
from a file.For example, once upon a time!
Becomes nc pn tm!.
File: vowel.txt
  
 once upon a time!
Program:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ 
 ifstream in("vowel.txt");
 ofstream file("15a_op.txt");
 char c;
 cout<<"\nFile before removing vowels is :\n";
 c=in.get();
 while(in.good())
  {
         cout<<c;
  if(c!='a'&&c!='e'&&c!='i'&&c!='o'&&c!='u')
   file<<c;
  c=in.get();
 }
 in.close();
 file.close();
 cout<<"\nFile after removing vowels is :\n";
 ifstream nh("15a_op.txt");
 cout<<nh.rdbuf();
 nh.close();
 return 0;
 
}
output:
nc pn tm!.
  
15 b)Write a C++ program that replaces punctuation with 
whitespace.For example,“don?t usethe as-if rule”
becomes dont use the asif rule”.
file:punct.txt
“don't usethe as-if rule”
program:
#include<iostream>
#include<fstream>
#include<cctype> or include<ctype.h>
using namespace std;
int main()
{
 ifstream in("punct.txt");
 ofstream file("15b_op.txt");
 char c;
 cout<<"\nFile before removing punctuations is :\n";
 c=in.get();
 while(in.good())
  {
         cout<<c;
  if(!ispunct(c))
   file<<c;
  c=in.get();
 }
 in.close();
 file.close();
 cout<<"\nFile after removing vowels is :\n";
 ifstream nh("15b_op.txt");
 cout<<nh.rdbuf();
 nh.close();
 return 0;
  
}
output:  (15b_op.txt)
dont use the asif rule
15 c) Write a C++ program to reverse the order of characters
in a text file.For example,asdfghjkl becomes lkjhgfdsa.
File:.txt
asdfghjkl
program:
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
 vector<char>v;
 ifstream in("15c.txt");
 cout<<"\nInput File :\n";
 char c=in.get();
 while(!in.eof())
  {
  cout<<c;
  v.push_back(c);
  c=in.get();
 }
 in.close();
 ofstream file("15c_op.txt");
 for(int i=v.size()-1;i>=0;i--)
 {
  file<<v[i];
 }
 file.close();
 cout<<"\nFile after reversing the contents :\n";
 ifstream nh("15c_op.txt");
 cout<<nh.rdbuf();
 nh.close();
 return 0;;
}
output:  (15c_op.txt)
lkjhgfdsa.
Monday, 6 January 2014
oops 13a
  Week 13a solution                
13 a) Write a C++ program that creates a file of data in the form of the temperature.Fill the file with at least 50 temperature readings. Call this program store_temps.cpp and the file it creates raw_temps.txt.
Program:
#include<iostream> #include<fstream> using namespace std; int main() { double temp; ofstream out("raw_temps.txt"); for(int i=1;i<=50;i++) { if(i<=25) temp=20+.1*i; else temp=20+.25*i; out<<temp<<"\n"; } out.close(); cout<<"Temparature readings in the file are \n"; ifstream in("raw_temps.txt"); cout<<in.rdbuf(); in.close(); return 0; }Output:
Temparature readings in the file are 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22 22.1 22.2 22.3 22.4 22.5 26.5 26.75 27 27.25 27.5 27.75 28 28.25 28.5 28.75 29 29.25 29.5 29.75 30 30.25 30.5 30.75 31 31.25 31.5 31.75 32 32.25 32.5
oops 13b
  Week 13b solution                
13 b) Write a C++ program that accepts two file names and produces new file that is the contents of the first file followed by the contents of the second; that is, the program concatenates the two files.
file1.txt:
hello Welcome to c++ programmingfile2.txt:
happy coding............Program:
#include<iostream> #include<fstream> using namespace std; int main() { ifstream file1("file1.txt"); ifstream file2("file2.txt"); ofstream file("new.txt") ; file<<file1.rdbuf()<<"\n"<<file2.rdbuf(); cout<<"After conacatenation of two files \n"; file.close(); ifstream f("new.txt"); cout<<f.rdbuf(); f.close(); return 0; }Output:
After conacatenation of two files hello Welcome to c++ programming happy coding............
Subscribe to:
Comments (Atom)

 
