Разделы презентаций


Программирование на языке C++

Содержание

Преобразования «строка» – «число» Из строки в число:#include ...string s = "123";int N = atoi( s.c_str() ); // N = 123string s = "123.456";float X; X = atof ( s.c_str()

Слайды и текст этой презентации

Слайд 1Программирование на языке C++
§ 66. Символьные строки

Программирование на языке C++§ 66. Символьные строки

Слайд 2Преобразования «строка» – «число»
Из строки в число:
#include
...
string s

= "123";
int N = atoi( s.c_str() ); // N

= 123

string s = "123.456";
float X;
X = atof ( s.c_str() ); // X = 123.456

«12x3»  12

в строку языка Си

Преобразования «строка» – «число» Из строки в число:#include ...string s =

Слайд 3Преобразования «строка» – «число»
Из числа в строку:
ostringstream ss;
string s;
int

N = 123;
ss

= "123"

#include

строковый поток вывода

из потока в строку

строковые потоки

Преобразования «строка» – «число» Из числа в строку:ostringstream ss;string s;int N = 123;ss

Слайд 4Преобразования «строка» – «число»
Вещественное число в строку:
ostringstream ss;
string s;
double

X = 123.456;
ss.width(10); // ширина поля
ss.precision(3); // знаков в

дробной части
ss << X;
s = ss.str(); // s =" 123.456"

ss.str(""); // очистка потока
ss.width(10); // ширина поля
ss.precision(6); // знаков в дробной части
ss << scientific << X; // научный формат
s = ss.str(); // s = "1.234560E+002"

Научный формат:

Преобразования «строка» – «число» Вещественное число в строку:ostringstream ss;string s;double X = 123.456;ss.width(10);  // ширина поляss.precision(3);

Слайд 5Задачи
«A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в

форме символьной строки. Все числа целые.
Пример:
Введите выражение:
12+3+45
Ответ: 60
«B»: Напишите программу,

которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются только знаки «+» или «–»). Выражение вводится как символьная строка, все числа целые.
Пример:
Введите выражение:
12-3+45
Ответ: 54
Задачи«A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа целые.Пример:Введите выражение:12+3+45Ответ:

Слайд 6Задачи
«C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел

и двух знаков (допускаются знаки «+», «–», «*» и «/»).

Выражение вводится как символьная строка, все числа целые. Операция «/» выполняется как целочисленное деление (div).
Пример:
Введите выражение:
12*3+45
Ответ: 81
Задачи«C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–»,

Слайд 7Задачи
«D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел

и двух знаков (допускаются знаки «+», «–», «*» и «/»)

и круглых скобок. Выражение вводится как символьная строка, все числа целые. Операция «/» выполняется как целочисленное деление.
Пример:
Введите выражение:
2*(3+45)+4
Ответ: 100
Задачи«D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–»,

Слайд 8Строки в процедурах и функциях
Задача: построить процедуру, которая заменяет в

строке s все вхождения слова-образца wOld на слово-замену wNew.
пока //

слово wOld есть в строке s
// удалить слово wOld из строки
// вставить на это место слово wNew

wOld: '12'
wNew: 'A12B'

зацикливание

Строки в процедурах и функцияхЗадача: построить процедуру, которая заменяет в строке s все вхождения слова-образца wOld на

Слайд 9Замена всех экземпляров подстроки

Замена всех экземпляров подстроки

Слайд 10Замена всех экземпляров подстроки
int main()
{
string s = "12.12.12";
replaceAll

( s, "12", "A12B" );
cout

Замена всех экземпляров подстрокиint main(){ string s =

Слайд 11Замена всех экземпляров подстроки
void replaceAll ( string &s, string wOld,


string

wNew )
{
string res = "";
int p, len = wOld.size();
while ( s.size() > 0 )
{
p = s.find ( wOld ); // искать образец
if ( не нашли ) { // прицепить хвост и выйти }
if ( p > 0 ) { // скопировать часть до образца }
res = res + wNew; // добавить слово-замену
if ( p + len > s.size() ) s = "";
else s.erase ( 0, p + len );
}
s = res;
}

длина строки-образца

удалить начало


Слайд 12Замена всех экземпляров подстроки
p = s.find ( wOld );
if (

p == string::npos )
{
res = res +

s;
break;
}

if ( p > 0 )
res = res + s.substr ( 0, p );

Если образец не найден:

Если перед образцом что-то есть:

прицепить «хвост»

выйти из цикла

если не нашли

то, что перед образцом

Замена всех экземпляров подстрокиp = s.find ( wOld );if ( p == string::npos )  { res

Слайд 13Замена: из процедуры в функцию
int main()
{
string s = "12.12.12";

string sNew = replaceAll( s, "12", "A12B" );
cout

sNew;
}

string replaceAll( string s, string wOld,
string wNew )
{
...
return res;
}

Замена: из процедуры в функциюint main(){ string s =

Слайд 14Задачи
«A»: Напишите функцию, которая возвращает первое слово переданной ей строки.
Пример:
Введите

строку: Однажды в студёную зимнюю пору...
Первое слово: Однажды

Задачи«A»: Напишите функцию, которая возвращает первое слово переданной ей строки.Пример:Введите строку: Однажды в студёную зимнюю пору...Первое слово:

Слайд 15Задачи
«B»: Напишите функцию, которая заменяет расширение файла на заданное новое

расширение.
Пример:
Введите имя файла: qq
Введите новое расширение: tmp
Результат: qq.tmp
Пример:
Введите имя

файла: qq.exe
Введите новое расширение: tmp
Результат: qq.tmp
Пример:
Введите имя файла: qq.work.xml
Введите новое расширение: tmp
Результат: qq.work.tmp

Задачи«B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример:Введите имя файла: qqВведите новое расширение:

Слайд 16Задачи
«C»: Напишите функцию, которая заменяет во всей строке все римские

числа на соответствующие десятичные числа.
Пример:
Введите строку:
В MMXIII году в

школе CXXIII состоялся очередной выпуск XI классов.
Результат:
В 2013 году в школе 123 состоялся очередной выпуск 11 классов.
Задачи«C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа. Пример:Введите строку:В

Слайд 17Конец фильма
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г.

Санкт-Петербург
kpolyakov@mail.ru
ЕРЕМИН Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО

ПГГПУ, г. Пермь
eremin@pspu.ac.ru
Конец фильмаПОЛЯКОВ Константин Юрьевичд.т.н., учитель информатикиГБОУ СОШ № 163, г. Санкт-Петербургkpolyakov@mail.ru ЕРЕМИН Евгений Александровичк.ф.-м.н., доцент кафедры мультимедийной

Слайд 18Источники иллюстраций
www.mcdonalds.com
иллюстрации художников издательства «Бином»
авторские материалы

Источники иллюстрацийwww.mcdonalds.com иллюстрации художников издательства «Бином»авторские материалы

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика