logo search
Методичка 2 Программирование

Примеры написания программ

Задача. Написать функцию, которая возвращает номер первого символа символа строки, совпавшего с указанным символом. Если символа в строке нет, возвратить 0.

Анализ решения задачи. Нельзя путать два понятия –индекссимвола строки иномерсимвола строки. Понятия схожи, но номер начинается с 1, а индекс с 0, с помощью индекса организуется перебор символов в строке. Зная индексi, легко определить номер –i+1.

Для определения характеристик функции ответим на три вопроса:

Программа будет строиться в виде проекта.

Текст функции пользователя будет выглядеть так:

//имя и тело функции 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;

}