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