Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
#1

Лаба по С++ - C++

25.05.2011, 01:08. Просмотров 969. Ответов 14
Метки нет (Все метки)

Дана последовательность прописных (больших) латинских букв. После каждой буквы вставить первую букву
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 01:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лаба по С++ (C++):

Лаба - C++
Нужно сделать лабу, задание в фотке, по рисунку самому верхнему левому! Помогите, кому не трудно!

Лаба - C++
Общие условия: 1. Объявить одномерный массив из десяти элементов типа int. 2. Заполнить массив с клавиатуры. 3. Отсортировать массив...

Лаба - C++
Здравствуйте.Нужна срочная помощь с лабой на С++.

Лаба - C++
Помогите написать программу на С, задание следующее: Подсчитать количество слов, которые являются числами в римской системе счисления.:) ...

Лаба - C++
Очень срочно надо сдать лабу, но я не знаю как ее делать ( помогите решить мне ее. Зарание огромное спасибо

Лаба по С++. - C++
1.Ввести матрицу размером MxN. Память для массива выделить динамически.Определить количество чётных элементов, расположенных на главной и...

14
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.05.2011, 01:19 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string>
#include <iostream>
 
int main()
{
    std::string string;
    std::cin >> string;
    for(std::string::iterator iter = string.begin(); iter != string.end(); ++iter)
    {
       iter = string.insert(++iter, *string.begin());
    }
    std::cout << string << '\n';
}
1
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
25.05.2011, 01:25  [ТС] #3
вы просо гений
0
ValeryLaptev
Эксперт С++
1042 / 821 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
25.05.2011, 01:29 #4
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string>
#include <iostream>
 
int main()
{
    std::string string;
    std::cin >> string;
    for(std::string::iterator iter = string.begin(); iter != string.end(); ++iter)
    {
       iter = string.insert(++iter, *string.begin());
    }
    std::cout << string << '\n';
}
Вопрос автору.
1. В процессе цикла изменяется условие окончание цикла - увеличивается размер строки.
2. Как насчет валидности итератора после вставки?
0
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
25.05.2011, 01:45  [ТС] #5
Дана последовательность строчных (маленьких) латинских букв.
1. Определить, каких букв в ней больше: гласных или согласных.

Добавлено через 14 минут
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Вопрос автору.
1. В процессе цикла изменяется условие окончание цикла - увеличивается размер строки.
2. Как насчет валидности итератора после вставки?
а как тогда на основе этого кода выполнить следующее?


прочитать строки с текстового файла и реализовать их обработку, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику конкретного варианта. Количество строк в файле может быть произвольным. Одна строка должно содержать не более 255 символов.
Результат обработки текста вывести в выходной текстовый файл.
В программе должны быть предусмотрены подпрограммы ввода элементов из файла, их обработки и вывода результатов.
Предусмотреть сообщение для пустого файла и обработать ошибку при указании имени несуществующего файла.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.05.2011, 01:53 #6
ValeryLaptev, Увеличивается.
Валидность? Ну ок как бэ возвращается.
0
grindaah
20 / 20 / 0
Регистрация: 25.05.2011
Сообщений: 62
25.05.2011, 02:40 #7
этот код не будет работать: после первой итерации работает неправильно.
Валидность? Ну ок как бэ возвращается.
ваще не понятный ответ.. какой ok?

тем не менее, данный ответ требует минимальных усилий, чтобы его переправить в рабочий
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <string>
#include <iostream>
#include <conio.h>
 
int main()
{
    std::string string;
    std::cin >> string;
    std::string result;
    for(std::string::iterator iter = string.begin(); iter != string.end(); ++iter)
    {
        result = result + *string.begin() + *iter;
    }
    std::cout << string << '\n';
    std::cout << result << '\n';
    _getch();
    return 0;
}
Jakubovsky
Насчет работы с файлами вообще имхо нескромный вопрос, вы уж сами-то хоть что-то сделайте, а там глядишь и помочь не жалко
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
25.05.2011, 02:44 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main()
{
    std::cout << "string: ";
    std::string s;
    std::cin >> s;
 
    for(std::string::size_type i = 0; i < s.length(); i+=2)
        s.insert(i, 1, s[i]);
 
    std::cout << s << '\n';
 
    return 0;
}
0
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
25.05.2011, 02:48  [ТС] #9
Цитата Сообщение от grindaah Посмотреть сообщение
Jakubovsky
Насчет работы с файлами вообще имхо нескромный вопрос, вы уж сами-то хоть что-то сделайте, а там глядишь и помочь не жалко
Вот сидим колдуем
0
grindaah
20 / 20 / 0
Регистрация: 25.05.2011
Сообщений: 62
25.05.2011, 03:35 #10
Jakubovsky, похвально
там в моем примере строка #include "stdafx.h" вам естественно не пригодится и даже помешает если что
0
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
25.05.2011, 07:18  [ТС] #11
Цитата Сообщение от grindaah Посмотреть сообщение
Jakubovsky, похвально
там в моем примере строка #include "stdafx.h" вам естественно не пригодится и даже помешает если что
а как его заставить чтоб он только буквы читал а цифры нет?

Добавлено через 1 час 19 минут
все я сдался...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string>
#include <iostream>
 
int main()
{
    std::string string;
    std::cin >> string;
    for(std::string::iterator iter = string.begin(); iter != string.end(); ++iter)
        {
       iter = string.insert(++iter, *string.begin());
        }
    std::cout << string << '\n';
system("pause");    
}
как теперь сделать так, чтоб получилось следующие:


прочитать строки с текстового файла и реализовать их обработку, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику конкретного варианта. Количество строк в файле может быть произвольным. Одна строка должно содержать не более 255 символов.
Результат обработки текста вывести в выходной текстовый файл.

Добавлено через 1 час 26 минут
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
#define MAX_LENGTH 100
#define MAX_STR 255
 
using namespace std;
 
 
bool res_file(const char *,const char *);
 
int main ()
{
 char filename_IN[MAX_LENGTH],filename_OUT[MAX_LENGTH];
 cout<<"Input IN_file name-->";
 cin.getline(filename_IN,MAX_LENGTH);
 cout<<"Input OUT_file name-->";
 cin.getline(filename_OUT,MAX_LENGTH);
 res_file(filename_IN,filename_OUT);
}
 
bool res_file(const char *in_f,const char *out_f)
{
 ifstream fin(in_f);
 ofstream fout(out_f);
 if((!fin)||(!fout))
  return 0;
 char str[MAX_STR];
 while(!fin.eof())
 
 {
        fin>>str;
                
        
//что сюда вписать?
 
    }
    fin.close();
    fout.close();
    return 0;
    system("pause");
}
Добавлено через 50 минут
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
#define MAX_LENGTH 100
#define MAX_STR 255
 
using namespace std;
std::string pervaja;
 
bool res_file(const char *,const char *);
 
int main ()
{
 char filename_IN[MAX_LENGTH],filename_OUT[MAX_LENGTH];
 cout<<"Input IN_file name-->";
 cin.getline(filename_IN,MAX_LENGTH);
 cout<<"Input OUT_file name-->";
 cin.getline(filename_OUT,MAX_LENGTH);
 res_file(filename_IN,filename_OUT);
 system("pause");
}
 
 
bool res_file(const char *in_f,const char *out_f)
{
 ifstream fin(in_f);
 ofstream fout(out_f);
 if((!fin)||(!fout))
  return 0;
 char str[MAX_STR];
 
 while(!fin.eof())
 {
    fin>>str;
        int i=strlen(str);
        
 
 
        for(std::string::size_type i = 0; i < pervaja.length(); i+=2)
        pervaja.insert(i, 1, pervaja[i]);
    cout << pervaja << '\n';
    fout << pervaja << '\n';
 
        {
        for(std::string::iterator iter = pervaja.begin(); iter != pervaja.end(); ++iter)
    {
        pervaja = pervaja + *pervaja.begin() + *iter;
    }
    cout << pervaja << '\n'<< endl;
    fout << pervaja << '\n' << endl;
    
        return 0;
}
        
        
        
    }
    fin.close();
    fout.close();
    
    return 0;
    
    system("pause");
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.05.2011, 08:50 #12
grindaah,
этот код не будет работать: после первой итерации работает неправильно.
А конкретнее? У меня все сработало.

Добавлено через 2 минуты
grindaah, Кстати. Твой код работает не по заданию.
Дана последовательность прописных (больших) латинских букв.
12. После каждой буквы вставить первую букву
А твой вставляет перед)

Добавлено через 57 секунд
rangerx, Ну а у тебя просто буквы удваивает...

Добавлено через 13 минут
Вот так будет норм.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <iostream>
#include <conio.h>
 
int main()
{
    std::string string;
    std::cin >> string;
    std::string result;
    for(std::string::iterator iter = string.begin(); iter != string.end(); ++iter)
    {
        result = result + *iter + *string.begin();
    }
    std::cout << string << '\n';
    std::cout << result << '\n';
    _getch();
        return 0;
}
или так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main()
{
    std::cout << "string: ";
    std::string s;
    std::cin >> s;
 
    for(std::string::size_type i = 0; i < s.length(); i+=2)
        s.insert(i + 1, 1, s[0]);
 
    std::cout << s << '\n';
 
    return 0;
}
0
Jakubovsky
0 / 0 / 0
Регистрация: 04.03.2010
Сообщений: 22
25.05.2011, 10:12  [ТС] #13
кто поможет разобраться с файлами?
0
grindaah
20 / 20 / 0
Регистрация: 25.05.2011
Сообщений: 62
25.05.2011, 10:30 #14
ForEveR, согласен, задание невнимательно дочитал, потому и твое решение неправильным назвал
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
25.05.2011, 11:39 #15
Цитата Сообщение от ForEveR Посмотреть сообщение
rangerx, Ну а у тебя просто буквы удваивает...
Ну, это я так задание внимательно прочитал Но смысл в том, что выкрутасы с итераторами здесь совершенно ни к чему. Зачем усложнять то, что можно сделать намного проще и нагляднее?
0
25.05.2011, 11:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 11:39
Привет! Вот еще темы с ответами:

Лаба по программированию - C++
Известен вещественный знакопеременный двумерный массив K=(Kij), i=1,2,..5, j=1,2,..7 Вычислить разность между максимальными и...

лаба по массивам - C++
люди помогите плиз решить эту лабу по с++ сам фигово в нем пока что понимаю накидал вариант он ниже Во всех приведенных ниже вариантах...

Лаба по рекурсиям - C++
Задана шахматная доска, на которой расставлены черные и белые фигуры, в том числе белый король и черный конь. Определить, может ли белый...

Лаба по информатике - C++
Завтра сдавать лабораторную, а я в программировании на Си++ практически ноль. Было всего пару лекций на его изучение. Задача:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru