use Advanced C++ techniques, containers and features to refactor the C/C++ algorithm.  The purpose is to replace appropriate declarations and code segments with Advanced C++ declarations and code. * Replace all arrays with appropriate STL containers. * Use STL algorithms to REPLACE existing logic where appropriate. * Use smart and move pointers where pointers are needed.  * Use lambda expressions where appropriate. * Use C++ style casting when needed. * Look for opportunities where tuples could be used. * The code listing is in C and C++. If there are logic or syntax problems, please fix. #define BIND(A,L,H) ((L)<(A)?(A)<(H)?(A):(H):(L)) char   dih[50],dah[50],medium[30],word[30],*dd[2] = {dih,dah}; const char   *ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?'!/()&:;=+-_\"$@",   *itu[] = {"13","3111","3131","311","1","1131","331","1111","11","1333","313","1311","33","31","333","1331","3313","131","111","3","113","1113","133","3113","3133","3311","33333","13333","11333","11133","11113","11111","31111","33111","33311","33331","131313","331133","113311","133331","313133","31131","31331","313313","13111","333111","313131","31113","13131","311113","113313","131131","1113113","133131"   }; void algorithm1(char* s,const char* m)  {   for (; *m; ++m)     strcat(s,dd['3'==*m]);   strcat(s,medium); } char* algorithm2(const char*i,char*o)  {   const char* pc;   sprintf(o,"beep");   for (; *i; ++i)     if (NULL == (pc = strchr(ascii,toupper(*i))))       strcat(o,word);     else       algorithm1(o,itu[pc-ascii]);   strcat(o,word);   return o; } /*   BIND(-1,0,9) is 0   BIND( 7,0,9) is 7   BIND(77,0,9) is 9 */

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
100%

use Advanced C++ techniques, containers and features to refactor the C/C++ algorithm.  The purpose is to
replace appropriate declarations and code segments with Advanced C++ declarations and code.

* Replace all arrays with appropriate STL containers.

* Use STL algorithms to REPLACE existing logic where appropriate.

* Use smart and move pointers where pointers are needed. 

* Use lambda expressions where appropriate.

* Use C++ style casting when needed.

* Look for opportunities where tuples could be used.

* The code listing is in C and C++.

If there are logic or syntax problems, please fix.

#define BIND(A,L,H) ((L)<(A)?(A)<(H)?(A):(H):(L))

char
  dih[50],dah[50],medium[30],word[30],*dd[2] = {dih,dah};
const char
  *ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?'!/()&:;=+-_\"$@",
  *itu[] = {"13","3111","3131","311","1","1131","331","1111","11","1333","313","1311","33","31","333","1331","3313","131","111","3","113","1113","133","3113","3133","3311","33333","13333","11333","11133","11113","11111","31111","33111","33311","33331","131313","331133","113311","133331","313133","31131","31331","313313","13111","333111","313131","31113","13131","311113","113313","131131","1113113","133131"
  };
void algorithm1(char* s,const char* m) 
{
  for (; *m; ++m)
    strcat(s,dd['3'==*m]);
  strcat(s,medium);
}
char* algorithm2(const char*i,char*o) 
{
  const char* pc;
  sprintf(o,"beep");
  for (; *i; ++i)
    if (NULL == (pc = strchr(ascii,toupper(*i))))
      strcat(o,word);
    else
      algorithm1(o,itu[pc-ascii]);
  strcat(o,word);
  return o;
}

/*
  BIND(-1,0,9) is 0
  BIND( 7,0,9) is 7
  BIND(77,0,9) is 9
*/

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
Concept of pointer parameter
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education