Sunday, 23 April 2017

3.SMS Language

SMS Language

SMS language or textese (also known as txt-speak, txtese, chatspeak, txt, txtspk, txtk, txto, texting language, txt lingo, SMSish,txtslang,or txt talk) is a term for the abbreviations and slang commonly used with mobile phone text messaging.

Some of the abbreviations used are
  • s for yes
  • u for you
  • 2day for today
  • y for why

Many grandpa's have started sending SMSes to their grand children. But they are not familiar with the SMS lingo.

Can you help them by writing a program that would convert a given text in proper English to SMS lingo? Consider only the 4 wordslisted above.

Input Format:
Input consists of a single string. Assume that the maximum length of the string is 200 and all letters are in lower-case.

Output Format:
Output consists of a single string.

Sample Input 1:
where were you yesterday?

Sample Output 1:
where were u sterday?

Sample Input 2:
why is today a working day for you?

Sample Output 2:
y is 2day a working day for u?

code:




2.ENCODING

 ENCODING

In this program you will be given a letter to encode. The difference here is that different rules are used for different letters and the counting process can cause you to wrap around the alphabet. Using the numerical value of each letter (A=1, B=2, ... Z= 26) the rules are as follows:

If the letter is between the given letters, inclusive:
The number of letters to count is given by:
A–E
Multiply its numerical value by 2
F–J
Divide its numerical value by 3. Multiply the integer remainder by 5
K–O
Divide its numerical value by 4. Multiply the integer remainder by 8.
P–T
Add 10.
U- Z
Find the largest integer factor of its numerical value less than the value itself. Multiply it by 12.

As an example if the letter to encode is a B, the B has a numerical value of 2 and encodes to a  4 and becomes a D, the 4th letter of the alphabet.
The G has a numerical value of 7. It encodes to a 5 and becomes an E.
The numerical value of Z is 26. Its largest factor is 13. You must count 156 (13*12) letters. This has the effect of wrapping around the alphabet 6 complete times and ending at Z. If a numerical value of zero is evaluated print a # symbol.
[Hint: ASCII value of A is 65].
INPUT:
Input consists of an upper case letter.
OUTPUT:
Print the encoded letter it produces.


code:


1. Indian Railway

 Indian Railway – Seating arrangement for Sleeper Class


Write a program to determine the type of berth when the seat/berth number in the train is given.

Input Format:
Input consists of a single integer. Assume that the range of input is between 1 and 72.

Output Format:
Output consists of a single string. [Upper or Middle or Lower or Side Lower or Side Upper]


code :


Stack and Queue / Session XI

Stack 2 : Array Implementation : Push and Pop

Consider implementing a dynamically sized stack using an array.

Create a structure

struct stack
{
int * a;
int top;
int maxSize;
};

The structure stack has a pointer 'a' to a dynamically allocated array (used to hold the contents of the stack), an integer 'maxSize' that holds the size of this array (i.e the maximum number of data that can be held in this array) and an integer 'top' which stores the array index of the top element in the stack.




 Array Implementation answers 
click the link below for code:




Queue 1 : Array Implementation


Consider implementing a fixed size queue of maximum size 5 using an array.

Create a structure

struct queue {
int contents[5];
int front;
int count;
} ;

Note that the array contents holds the contents of the queue and the integer front stores the index of the front element in the queue.

Write a program to implement enQueue and deQueue operation on queue and to display the contents of the queue.

In the initQueue function intialize the value of front and count to 0.
Print the message “Queue is full” in the enQueue function when an attempt is made to insert a data into a full queue.
Print the message “Queue is empty” in the deQueue function and return the value -1000 when an attempt is made to delete data from an empty queue.

Refer function specifications for further details.



code:


#include<stdio.h> #include<string.h>
struct queue {
int contents[5];
int front;
int count;
} ;
void initQueue(struct queue * q);
void enQueue(struct queue * q, int element);
int deQueue(struct queue * q);
void display( struct queue q);
void printMenu();
int main()
{
struct queue p;
int data,ch, data1;
initQueue(&p);
do {
printMenu();
printf("Enter your choice\n");
scanf("%d",&ch);
switch(ch) {
case 1:
printf("Enter the element to be inserted/entered\n");
scanf("%d",&data);
enQueue(&p, data);
break;
case 2:
data1 = deQueue(&p);
if(data1 != -1000)
printf("The deleted element is %d\n",data1);
break;
case 3:
printf("The contents of the queue are");
display(p);
printf("\n");
break;
default:
return 0;
}
} while(1);
return 0;
}
void printMenu()
{
printf("Choice 1 : Enter element into Queue\n");
printf("Choice 2 : Delete element from Queue\n");
printf("Choice 3 : Display\n");
printf("Any other choice : Exit\n");
}
void initQueue(struct queue * q)
{
q->front=0;
q->count=0;
}
void enQueue(struct queue * q, int element)
{
int index;
index=(q->count+q->front)%5;
if(index==q->front&&q->count!=0)
printf("Queue is full\n");
else
{
q->count++;
q->contents[index]=element;
}
}
int deQueue(struct queue * q)
{
int elem;
if(q->count==0)
{
printf("Queue is empty\n");
return (-1000);
}
elem=q->contents[q->front];
q->count--;
q->front=(q->front+1)%5;
return elem;
}
void display( struct queue q)
{
int i,index;
if(q.count==0)
printf(" {}");
else
{
for(index=q.front,i=1;i<=q.count;i++,index++)
printf(" %d",q.contents[index%5]);
}
}