- •ОбрабоТка строк Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •1 Вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, строка вводится без пробелов внутри.
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, строка вводится с пробелами внутри.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка одномерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка двумерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •Функции с одним результатом Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции с несколькими результатами Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и строки Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и одномерные числовые массивы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и матрицы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Шаблоны функций Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
Лабораторная работа 7
ОбрабоТка строк Цель работы
1. Научиться:
–объявлять строки в программе статически и динамически;
– вводить строки с пробелами внутри и без пробелов;
– писать стандартный цикл обработки строки;
–обращаться к символам строки по имени и через адрес;
– производить различные действия над символами.
2. Составить, выполнить и протестировать указанную задачу с помощью компьютера.
Порядок написания программы
1. Выделить память под строку статически или динамически.
2. Ввести строку с клавиатуры.
3. Провести указанную обработку строки.
4. Вывести на экран исходную строку.
5. Вывести результат обработки.
6. Освободить динамическую память (если она выделялась).
Примеры написания программ
Задача. Написать программу, которая возвращает номер последнего символа строки, совпавшего с указанным символом. Если символа в строке нет, возвратить 0.
Анализ решения задачи. Нельзя путать два понятия –индекссимвола строки иномерсимвола строки. Понятия схожи, но номер начинается с 1, а индекс с 0, с помощью индекса организуется перебор символов в строке. Зная индексi, легко определить номер –i+1.
Примечание. Вызов функцииRusперед строками-константами с русским текстом осуществляйте самостоятельно.
1 Вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, строка вводится без пробелов внутри.
Программа будет строиться в виде проекта.
Текст функции main будет выглядеть так:
//содержимое файла main.cpp
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include "Rus.h" //прототип функции русификации
int main(void)
{
char str[40], simvol; //объявили данные
int n=0,i; //номер искомого элемента массива
// ввод исходных данных
cout<<"\nВведите строку";
cin>>str;
cout<<"Введите символ";
cin>>simvol;
//организуем перебор символов строки для их обработки
for(i=0; str[i]!=0; i++)
if(str[i]== simvol) //если символ строки с инд i совпал с simvol
n= i+1; //номер символа
if(n!=0) //если символ в строке найден
cout<<"\nСимвол "<<n<<" по счету\n"; //вывод номера символа
else
cout<<"Символ в строке не найден";
return 0;
}
2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, строка вводится с пробелами внутри.
//содержимое файла main.cpp
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include "Rus.h" //прототип функции русификации
int main(void)
{
char *str= new char[40], simvol; //объявили данные
int n=0,i; //номер символа и индекс
// ввод исходных данных
cout<<"\nВведите строку";
cin.getline(str, 40);
cout<<"Введите символ";
cin>>simvol;
//организуем перебор символов строки для их обработки
for(i=0; *(str+i)!=0; i++)
if(*(str+i)== simvol) //если символ строки с инд i совпал с simvol
n= i+1; //номер символа
if(n!=0) //если символ в строке найден
cout<<"\nСимвол "<<n<<" по счету\n"; //вывод номера символа
else
cout<<"Символ в строке не найден";
return 0;
}