C++ Primer, Fifth Edition
index is defined and initialized to zero.
2. Next, 
condition
is evaluated. If index is not equal to s.size() and the
character at s[index] is not whitespace, the for body is executed. Otherwise,
the loop terminates. If the condition is false on the first iteration, then the
for body is not executed at all.
3. If the condition is true, the for body executes. In this case, the for body
makes the character at s[index] uppercase.
4. Finally, 
expression
is evaluated. In this example, index is incremented by 1.
These four steps represent the first iteration of the for loop. Step 1 is executed only
once on entry to the loop. Steps 2, 3, and 4 are repeated until the condition evaluates
as false—that is, when we encounter a whitespace character in s, or index is
greater than s.size().
Note
It is worth remembering that the visibility of any object defined within the
for header is limited to the body of the for loop. Thus, in this example,
index is inaccessible after the for completes.
Multiple Definitions in the 
for
Header
As in any other declaration, 
init-statement
can define several objects. However, 
init-
statement
may be only a single declaration statement. Therefore, all the variables
must have the same base type (§ 2.3, p. 50). As one example, we might write a loop
to duplicate the elements of a vector on the end as follows:
Click here to view code image
// remember the size of v and stop when we get to the original last element
for (decltype(v.size()) i = 0, sz = v.size(); i != sz; ++i)
v.push_back(v[i]);
In this loop we define both the index, i, and the loop control, sz, in 
init-statement
.
Omitting Parts of the 
for
Header
A for header can omit any (or all) of 
init-statement
condition
, or 
expression
.
We can use a null statement for 
init-statement
when an initialization is unnecessary.
For example, we might rewrite the loop that looked for the first negative number in a
vector so that it uses a for:
Click here to view code image
www.it-ebooks.info
How to convert pdf to powerpoint in - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
how to change pdf to powerpoint on; how to convert pdf slides to powerpoint
How to convert pdf to powerpoint in - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
how to convert pdf to ppt; picture from pdf to powerpoint
C++ Primer, Fifth Edition
auto beg = v.begin();
for ( /* null */; beg != v.end() && *beg >= 0; ++beg)
; // no work to do
Note that the semicolon is necessary to indicate the absence of 
init-statement
—more
precisely, the semicolon represents a null 
init-statement
. In this loop, the for body is
also empty because all the work of the loop is done inside the for condition and
expression. The condition decides when it’s time to stop looking and the expression
increments the iterator.
Omitting 
condition
is equivalent to writing true as the condition. Because the
condition always evaluates as true, the for body must contain a statement that exits
the loop. Otherwise the loop will execute indefinitely:
Click here to view code image
for (int i = 0; /* no condition */ ; ++i) {
// process i; code inside the loop must stop the iteration!
}
We can also omit 
expression
from the for header. In such loops, either the
condition or the body must do something to advance the iteration. As an example,
we’ll rewrite the while loop that read input into a vector of ints:
Click here to view code image
vector<int> v;
for (int i; cin >> i; /* no expression */ )
v.push_back(i);
In this loop there is no need for an expression because the condition changes the
value of i. The condition tests the input stream so that the loop ends when we’ve
read all the input or encounter an input error.
5.4.3. Range for Statement
The new standard introduced a simpler for statement that can be used to iterate
through the elements of a container or other sequence. The syntactic form of the
range for statement is:
for (declaration : expression)
statement
expression
must represent a sequence, such as a braced initializer list (§ 3.3.1, p. 98),
an array (§ 3.5, p. 113), or an object of a type such as vector or string that has
begin and end members that return iterators (§ 3.4, p. 106).
www.it-ebooks.info
Online Convert PowerPoint to PDF file. Best free online export
Download Free Trial. Convert a PPTX/PPT File to PDF. Then just wait until the conversion from Powerpoint to PDF is complete and download the file.
convert pdf into ppt online; convert pdf back to powerpoint
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
C# PDF - Convert PDF to JPEG in C#.NET. C#.NET PDF to JPEG Converting & Conversion Control. Convert PDF to JPEG Using C#.NET. Add necessary references:
pdf picture to powerpoint; how to convert pdf into powerpoint on
C++ Primer, Fifth Edition
declaration
defines a variable. It must be possible to convert each element of the
sequence to the variable’s type (§ 4.11, p. 159). The easiest way to ensure that the
Exercises Section 5.4.2
Exercise 5.15: Explain each of the following loops. Correct any problems
you detect.
Click here to view code image
(a) for (int ix = 0; ix != sz; ++ix)  { /* . . . */ }
if (ix != sz)
// . . .
Click here to view code image
(b) int ix;
for (ix != sz; ++ix) { /* . . . */ }
(c) for (int ix = 0; ix != sz; ++ix, ++ sz)  { /* . . . */ }
Exercise 5.16: The while loop is particularly good at executing while some
condition holds; for example, when we need to read values until end-of-file.
The for loop is generally thought of as a step loop: An index steps through
a range of values in a collection. Write an idiomatic use of each loop and
then rewrite each using the other loop construct. If you could use only one
loop, which would you choose? Why?
Exercise 5.17: Given two vectors of ints, write a program to determine
whether one vector is a prefix of the other. For vectors of unequal
length, compare the number of elements of the smaller vector. For
example, given the vectors containing 0, 1, 1, and 2 and 0, 1, 1, 2, 3, 5,
8, respectively your program should return true.
types match is to use the auto type specifier (§ 2.5.2, p. 68). That way the compiler
will deduce the type for us. If we want to write to the elements in the sequence, the
loop variable must be a reference type.
On each iteration, the control variable is defined and initialized by the next value in
the sequence, after which 
statement
is executed. As usual, 
statement
can be a single
statement or a block. Execution ends once all the elements have been processed.
We have already seen several such loops, but for completeness, here is one that
doubles the value of each element in a vector:
Click here to view code image
vector<int> v = {0,1,2,3,4,5,6,7,8,9};
// range variable must be a reference so we can write to the elements
www.it-ebooks.info
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Convert PDF to Image; Convert Word to PDF; Convert Excel to PDF; Convert PowerPoint to PDF; Convert Image to PDF; Convert Jpeg to PDF;
convert pdf to powerpoint presentation; add pdf to powerpoint
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Convert PDF to HTML. |. Home ›› XDoc.PDF ›› VB.NET PDF: PDF to HTML. Convert PDF to HTML in VB.NET Demo Code. Add necessary references:
how to change pdf to powerpoint format; convert pdf to powerpoint
C++ Primer, Fifth Edition
for (auto &r : v)   // for each element in v
r *= 2;         // double the value of each element in v
The for header declares the loop control variable, r, and associates it with v. We use
auto to let the compiler infer the correct type for r. Because we want to change the
value of the elements in v, we declare r as a reference. When we assign to r inside
the loop, that assignment changes the element to which r is bound.
A range for is defined in terms of the equivalent traditional for:
Click here to view code image
for (auto beg = v.begin(), end = v.end(); beg != end; ++beg)
{
auto &r = *beg; // r must be a reference so we can change the element
r *= 2;         // double the value of each element in v
}
Now that we know how a range for works, we can understand why we said in §
3.3.2 (p. 101) that we cannot use a range for to add elements to a vector (or
other container). In a range for, the value of end() is cached. If we add elements
to (or remove them from) the sequence, the value of end might be invalidated (§
3.4.1, p. 110). We’ll have more to say about these matters in § 9.3.6 (p. 353).
5.4.4. The do while Statement
do while statement is like a while but the condition is tested after the statement
body completes. Regardless of the value of the condition, we execute the loop at least
once. The syntactic form is as follows:
do
statement
while (condition);
Note
A do while ends with a semicolon after the parenthesized condition.
In a do, 
statement
is executed before 
condition
is evaluated. 
condition
cannot be
empty. If 
condition
evaluates as false, then the loop terminates; otherwise, the loop
is repeated. Variables used in 
condition
must be defined outside the body of the do
while statement.
We can write a program that (indefinitely) does sums using a do while:
Click here to view code image
// repeatedly ask the user for a pair of numbers to sum
www.it-ebooks.info
C# powerpoint - Convert PowerPoint to PDF in C#.NET
C# PowerPoint - Convert PowerPoint to PDF in C#.NET. C# Demo: Convert PowerPoint to PDF Document. Add references: RasterEdge.Imaging.Basic.dll.
table from pdf to powerpoint; how to convert pdf file to powerpoint presentation
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Convert PDF to HTML. |. C#.NET PDF SDK - Convert PDF to HTML in C#.NET. How to Use C# .NET XDoc.PDF SDK to Convert PDF to HTML Webpage in C# .NET Program.
convert pdf to editable powerpoint online; pdf conversion to powerpoint
C++ Primer, Fifth Edition
string rsp;  // used in the condition; can't be defined inside the do
do {
cout << "please enter two values: ";
int val1 = 0, val2 = 0;
cin  >> val1 >> val2;
cout << "The sum of " << val1 << " and " << val2
<< " = " << val1 + val2 << "\n\n"
<< "More? Enter yes or no: ";
cin  >> rsp;
} while (!rsp.empty() && rsp[0] != 'n');
The loop starts by prompting the user for two numbers. It then prints their sum and
asks whether the user wishes to do another sum. The condition checks that the user
gave a response. If not, or if the input starts with an n, the loop is exited. Otherwise
the loop is repeated.
Because the condition is not evaluated until after the statement or block is executed,
the do while loop does not allow variable definitions inside the condition:
Click here to view code image
do {
// . . .
mumble(foo);
} while (int foo = get_foo()); // error: declaration in a do condition
If we could define variables in the condition, then any use of the variable would
happen 
before
the variable was defined!
Exercises Section 5.4.4
Exercise 5.18: Explain each of the following loops. Correct any problems
you detect.
Click here to view code image
(a) do
int v1, v2;
cout << "Please enter two numbers to sum:" ;
if (cin >> v1 >> v2)
cout << "Sum is: " << v1 + v2 << endl;
while (cin);
Click here to view code image
(b) do {
// . . .
} while (int ival = get_response());
Click here to view code image
(c) do {
int ival = get_response();
www.it-ebooks.info
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
VB.NET PDF - Convert PDF to MS Office Word in VB.NET. VB.NET Tutorial for How to Convert PDF to Word (.docx) Document in VB.NET. Best
convert pdf to powerpoint online no email; convert pdf to ppt
VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
VB.NET PDF - Convert PDF to TIFF Using VB in VB.NET. Free VB.NET Guide to Render and Convert PDF Document to TIFF in Visual Basic Class.
convert pdf to powerpoint using; converting pdf to powerpoint online
C++ Primer, Fifth Edition
} while (ival);
Exercise 5.19: Write a program that uses a do while loop to repetitively
request two strings from the user and report which string is less than
the other.
5.5. Jump Statements
Jump statements interrupt the flow of execution. C++ offers four jumps: break,
continue, and goto, which we cover in this chapter, and the return statement,
which we’ll describe in § 6.3 (p. 222).
5.5.1. The break Statement
break statement terminates the nearest enclosing while, do while, for, or
switch statement. Execution resumes at the statement immediately following the
terminated statement.
A break can appear only within an iteration statement or switch statement
(including inside statements or blocks nested inside such loops). A break affects only
the nearest enclosing loop or switch:
Click here to view code image
string buf;
while (cin >> buf && !buf.empty()) {
switch(buf[0]) {
case '-':
// process up to the first blank
for (auto it = buf.begin()+1; it != buf.end(); ++it)
{
if (*it == ' ')
break; // #1, leaves the for loop
// . . .
}
// break #1 transfers control here
// remaining '-' processing:
break; // #2, leaves the switch statement
case '+':
// . . .
} // end switch
// end of switch: break #2 transfers control here
} // end while
The break labeled #1 terminates the for loop that follows the hyphen case label. It
does not terminate the enclosing switch statement and in fact does not even
www.it-ebooks.info
C++ Primer, Fifth Edition
terminate the processing for the current case. Processing continues with the first
statement following the for, which might be additional code to handle a hyphen or
the break that completes that section.
The break labeled #2 terminates the switch but does not terminate the enclosing
while loop. Processing continues after that break by executing the condition in the
while.
Exercises Section 5.5.1
Exercise 5.20: Write a program to read a sequence of strings from the
standard input until either the same word occurs twice in succession or all
the words have been read. Use a while loop to read the text one word at a
time. Use the break statement to terminate the loop if a word occurs twice
in succession. Print the word if it occurs twice in succession, or else print a
message saying that no word was repeated.
5.5.2. The continue Statement
continue statement terminates the current iteration of the nearest enclosing loop
and immediately begins the next iteration. A continue can appear only inside a for,
while, or do while loop, including inside statements or blocks nested inside such
loops. Like the break statement, a continue inside a nested loop affects only the
nearest enclosing loop. Unlike a break, a continue may appear inside a switch
only if that switch is embedded inside an iterative statement.
A continue interrupts the current iteration; execution stays inside the loop. In the
case of a while or a do while, execution continues by evaluating the condition. In
a traditional for loop, execution continues at the 
expression
inside the for header. In
a range for, execution continues by initializing the control variable from the next
element in the sequence.
For example, the following loop reads the standard input one word at a time. Only
words that begin with an underscore will be processed. For any other value, we
terminate the current iteration and get the next input:
Click here to view code image
string buf;
while (cin >> buf && !buf.empty()) {
if (buf[0] != '_')
continue; // get another input
// still here? the input starts with an underscore; process buf . . .
}
www.it-ebooks.info
C++ Primer, Fifth Edition
Exercises Section 5.5.2
Exercise 5.21: Revise the program from the exercise in § 5.5.1 (p. 191) so
that it looks only for duplicated words that start with an uppercase letter.
5.5.3. The goto Statement
goto statement provides an unconditional jump from the goto to a another
statement in the same function.
Best Practices
Programs should not use gotos. gotos make programs hard to understand
and hard to modify.
The syntactic form of a goto statement is
goto label;
where 
label
is an identifier that identifies a statement. A labeled statement is any
statement that is preceded by an identifier followed by a colon:
Click here to view code image
end: return;  // labeled statement; may be the target of a goto
Label identifiers are independent of names used for variables and other identifiers.
Hence, a label may have the same identifier as another entity in the program without
interfering with the other uses of that identifier. The goto and the labeled statement
to which it transfers control must be in the same function.
As with a switch statement, a goto cannot transfer control from a point where an
initialized variable is out of scope to a point where that variable is in scope:
Click here to view code image
// . . .
goto end;
int ix = 10; // error: goto bypasses an initialized variable definition
end:
// error: code here could use ix but the goto bypassed its declaration
ix = 42;
A jump backward over an already executed definition is okay. Jumping back to a
point before a variable is defined destroys the variable and constructs it again:
www.it-ebooks.info
C++ Primer, Fifth Edition
Click here to view code image
// backward jump over an initialized variable definition is okay
begin:
int sz = get_size();
if (sz <= 0) {
goto begin;
}
Here sz is destroyed when the goto executes. It is defined and initialized anew when
control passes back through its definition after the jump back to begin.
Exercises Section 5.5.3
Exercise 5.22: The last example in this section that jumped back to begin
could be better written using a loop. Rewrite the code to eliminate the goto.
5.6. 
try
Blocks and Exception Handling
Exceptions are run-time anomalies—such as losing a database connection or
encountering unexpected input—that exist outside the normal functioning of a
program. Dealing with anomalous behavior can be one of the most difficult parts of
designing any system.
Exception handling is generally used when one part of a program detects a problem
that it cannot resolve and the problem is such that the detecting part of the program
cannot continue. In such cases, the detecting part needs a way to signal that
something happened and that it cannot continue. Moreover, the detecting part needs
a way to signal the problem without knowing what part of the program will deal with
the exceptional condition. Having signaled what happened, the detecting part stops
processing.
A program that contains code that might raise an exception (usually) has another
part to handle whatever happened. For example, if the problem is invalid input, the
handling part might ask the user to provide correct input. If the database was lost, the
handling part might alert an operator.
Exception handling supports this cooperation between the detecting and handling
parts of a program. In C++, exception handling involves
• throw expressions, which the detecting part uses to indicate that it
encountered something it can’t handle. We say that a throw raises an
exception.
• try blocks, which the handling part uses to deal with an exception. A try block
starts with the keyword try and ends with one or more catch clauses.
www.it-ebooks.info
C++ Primer, Fifth Edition
Exceptions thrown from code executed inside a try block are usually handled by
one of the catch clauses. Because they “handle” the exception, catch clauses
are also known as exception handlers.
• A set of exception classes that are used to pass information about what
happened between a throw and an associated catch.
In the remainder of this section, we’ll introduce these three components of exception
handling. We’ll also have more to say about exceptions in § 18.1 (p. 772).
5.6.1. A throw Expression
The detecting part of a program uses a throw expression to raise an exception. A
throw consists of the keyword throw followed by an expression. The type of the
expression determines what kind of exception is thrown. A throw expression is
usually followed by a semicolon, making it into an expression statement.
As a simple example, recall the program in § 1.5.2 (p. 23) that added two objects of
type Sales_item. That program checked whether the records it read referred to the
same book. If not, it printed a message and exited.
Click here to view code image
Sales_item item1, item2;
cin >> item1 >> item2;
// first check that item1 and item2 represent the same book
if (item1.isbn() == item2.isbn()) {
cout << item1 + item2 << endl;
return 0;   // indicate success
} else {
cerr << "Data must refer to same ISBN"
<< endl;
return -1;  // indicate failure
}
In a more realistic program, the part that adds the objects might be separated from
the part that manages the interaction with a user. In this case, we might rewrite the
test to throw an exception rather than returning an error indicator:
Click here to view code image
// first check that the data are for the same item
if (item1.isbn() != item2.isbn())
throw runtime_error("Data must refer to same ISBN");
// if we're still here, the ISBNs are the same
cout << item1 + item2 << endl;
In this code, if the 
ISBN
s differ, we throw an expression that is an object of type
runtime_error. Throwing an exception terminates the current function and
transfers control to a handler that will know how to handle this error.
www.it-ebooks.info
Documents you may be interested
Documents you may be interested