Форум программистов, компьютерный форум CyberForum.ru

Задача по инфе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка http://www.cyberforum.ru/cpp-beginners/thread874529.html
Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответству-ет одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число –1.#include <iostream> #include <conio.h> using namespace std; int...
C++ Неправильно читает данные из файла Ситуация следующая. Выполняю ввод данных(фамилия и возраст), затем они записываются в структурированный файл(функция newfile). После этого данные считываются из файла и выводятся на экран(функция vyvod). Проблема в том, что во всех выводимых записях фамилия одна и та же, которая была введена у первой записи, а вместо возраста выводится мусор какой-то. Прошу помочь мне в решении проблемы. Заранее... http://www.cyberforum.ru/cpp-beginners/thread874522.html
Даны символьные файлы f и g . Записать в файл h все начальные совпадающие компоненты файлов f и g C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны символьные файлы f и g . Записать в файл h все начальные совпадающие компоненты файлов f и g .
Расположить столбцы в порядке возрастания C++
Задана целая матрица размером m на n. Расположить столбцы в порядке возрастания элементов K-ой строки(К задаётся пользователем) :)
C++ Создаем уникальный id для тройки чисел, который влезет в тип данных int http://www.cyberforum.ru/cpp-beginners/thread874507.html
Добрый день, мне необходимо создать уникальный ID для трех целых чисел INT, но так чтобы этот ID влез в INT. Пробовал функции Кантора (Cantor) и Зсудзика (Szuszik), но при трех значениях, которые всех трех числе больше 200 я вылетаю за пределы. Теоретически максимальное из значиний трех чисел может доходить до 50 000. То есть, если даже соединять в строку что то типа 500004999949888 , то...
C++ Заданы два массива. Сравнить соответствующие элементы массивов и вывести на экран массив, состоящий из совпавших элементов. Помогите пожалуйста решить пару задач :3 Заданы два массива целых чисел одинаковой размерности. Сравнить соответствующие элементы массивов и вывести на экран массив, состоящий из совпавших элементов.Эту задачу нужно сделать с функцией, после переделать её с перегруженной функцией, а после с шаблоном. Заранее спасибо :3 подробнее

Показать сообщение отдельно
CatOnSide
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 63
22.05.2013, 16:32     Задача по инфе
Помогите дописать функцию numtrim и функцию обработки фразы(vivod Texta) для решения задачи:

Функция TCHAR* numtrim (TCHAR* str) получает строку str, в которой могут быть цифры в конце, в начале, в середине, удаляет из нее только начальные и конечные цифры. Функция возвращает адрес str, если строку удалось преобразовать, и NULL, если не удалось. Функция должна использовать разработанные функции isNumberPstr и delNsymbl.

Функция обработки фразы обрабатывает строку-фразу, по словам и, используя функцию numtrim, формирует новую строку-фразу, включив в нее только те слова, в которых удалены цифровые символы в начале и в конце. Функция формирует информацию о количестве слов в начальной и конечных фразах. Результирующая информация в функции должна быть объединена в структуру.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "stdafx.h"
#include "laba_2_ind.h"
#include <iostream>
extern VVODTEXT vvodText;
 
int  isNumber (TCHAR s); //определяет, является ли полученный символ цифрой
int  isNumberPstr (int& len); //ищет подстроку содержащую только цифровые символы
void delNsymbl(int N, int, int); //удаляет N символов
int  numtrim(int, int); //получает строку содержащую цифры и удаляет их, если они образуют прогрессию
void GetStud(HWND hDlg)
{ 
    GetDlgItemText(hDlg,IDC_TEXT_VVOD, vvodText.textvvod, 100);
    
}
 
void vivodTexta(HWND hDlg)
{
    setlocale(LC_ALL,"rus");
    int u;
    int N;
    vvodText.by = 0;
    vvodText.lenstr = wcslen(vvodText.textvvod);
    
    vvodText.bybuf = 0;
    vvodText.itogdlin = 0;
 
    for( ;vvodText.bybuf<vvodText.lenstr; ){ //проверяем в каком месте мы находимся. если прошли по всему тексту, то end
    int len = 0; //длина найденных цифр в слове
    vvodText.lenstrbuf=0; //обнуляем длину буфера
    for(u =vvodText.bybuf; vvodText.textvvod[u]!=' ' && vvodText.textvvod[u]!='\0'; u++)
    {
        vvodText.buf[u-vvodText.bybuf]=vvodText.textvvod[u];
        vvodText.lenstrbuf++;
    }
    //записали в буфер первое слово из введенной фразы
 
    int i = isNumberPstr (len); //проверили есть ли в нем цифры
    vvodText.bybuf = u+1;
    if(i>=0 && len!=0)//если есть цифры, то заходим в цикл
    {
        int r = delNsymbl (N, i, len); //если цифры были удалены - return 1; else return 0;
        if(r)//если были удалены цифры заходим в цикл
        {
            for(int i=vvodText.itogdlin, y=0; y<vvodText.lenstrbuf;i++,y++)
            {
                vvodText.itog[i]=vvodText.buf[y];
                vvodText.itogdlin = i+1;
            } //из буфера записали измененное слово в итоговое выражение
            vvodText.itog[vvodText.itogdlin]=' ';
            vvodText.itogdlin++;
        }
        for(int i=0; i<vvodText.lenstrbuf; i++)
            vvodText.buf[i]=0; //очистили буфер
    }
    else{break;}
    }
 
    vvodText.kolslov[0]='0';
    
    for(int i=0; i<vvodText.itogdlin; i++)
        {
            if(vvodText.itog[i]==' ')vvodText.kolslov[0]++;
        } //посчитали кол-во слов в итоговом тексте
 
    SetDlgItemText(hDlg, IDC_VIVOD, vvodText.textvvod); //выводим первоначальный текст
    SetDlgItemText(hDlg, IDC_VIVODITOG, vvodText.itog); //выводим итоговый текст
    SetDlgItemText(hDlg, IDC_KOLSLOV, vvodText.kolslov); //вывели кол-во слов в итоговом тексте
 
    for(int i=0; i<vvodText.lenstr; i++) //убираем все введенные символы
        vvodText.textvvod[i]=0;
    for(int i=0; i<vvodText.lenstrbuf; i++) //убираем все символы в буфере
        vvodText.buf[i]=0;
    for(int i=0; i<vvodText.itogdlin; i++) //убираем все символы в итоге
        vvodText.itog[i]=0;
}
 
int isNumber (TCHAR s)
{
    if(s=='0' || s=='1' || s=='2' || s=='3' || s=='4' || s=='5' || s=='6' || s=='7' || s=='8' || s=='9')return 1; 
    else return 0;
}
 
 
int isNumberPstr (int& len)
{
    TCHAR prov;
    int dlin = 0, i=0, y;
    for(y=0; y<vvodText.lenstrbuf; y++)
    {
        prov = vvodText.buf[y];
        if(isNumber (prov)){if(len==0)i=y;len++;}
        else 
        {
            if(len!=0)
            {vvodText.by = i + len;return i;}
        }
    }
    vvodText.by = i + len;
    return i;
}
 
int delNsymbl(int N, int i, int len)
{
    
    for(int d=i; d<vvodText.lenstrbuf; d++)
    {
        vvodText.buf[d]=vvodText.buf[d+len];
    }
    vvodText.lenstrbuf = vvodText.lenstrbuf - N;
    vvodText.by = vvodText.by - N;
 
}
 
 
int numtrim(int i, int len)
{
 
    
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru