С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
1

Посмотрите програму

26.05.2010, 23:31. Просмотров 1122. Ответов 24
Метки нет (Все метки)

Народ помогите пожалуйста. Програмку до утра надо написать а сам чет вообще не могу. Массив вроде задаю сортирую а по элементам не получается(
Вообщем вот задача : Отсортировать массив по возрастанию на интервале индексов от n1 до n2 (задаются пользователем)
Заранее огромное спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2010, 23:31
Ответы с готовыми решениями:

Продолжить програму
В среде С++ реализовать консольное приложение использующее заданный фрагмент...

Написать програму...
1) Дано чотири цілих числа, одне з яких відмінне від трьох інших, рівних між...

Картинка в програму
HELP!!! Нужно вставить картинку в програму напишите пожалуйста полний код как...

Написать програму в С++
Ввести одномерный статический массив из k чисел. Вывести на экран ис-ходные...

проверте програму
Всем доброго времени суток! вот создал програму про списки, ошибки при...

24
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
26.05.2010, 23:39 2
посмотри на сайте чуть выше там много примеров сортировки есть
1
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
26.05.2010, 23:41 3
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main ()
{
    const int size=10;
    int MAS[size]={2,5,7,9,-3,6,9,8,10,-10};
    std::vector <int> vec;
    vec.assign (MAS, MAS+size);
    std::cout << "Start:\n";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    size_t N_begin, N_end;
    std::cout << "Input N1: "; std::cin >> N_begin;
    std::cout << "Input N2: "; std::cin >> N_end;
 
    std::sort (vec.begin()+N_begin, vec.begin()+N_end);
 
    std::cout << "Finish:\n";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    system ("pause");
    return 0;
}
1
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
26.05.2010, 23:48  [ТС] 4
Спасибо)) А как к этой задачке схему еще сделать?
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:15 5
neske,
а мона вопрос зачем постоянно писать перед cout и out, std::?
ведь можно проще до main написать строчку
C++
1
using namespace std;
и std:: - уже можно не писать
0
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 00:17  [ТС] 6
Luna Можеш мне коментарии к этой программе написать? Просто хочу разобраться что и как окончательно)
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
27.05.2010, 00:19 7
Luna17, да, можно. Но чтобы не возникало проблем, я взял в привычку писать
C++
1
std::
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:24 8
ммм, понятно, а можно я тогда попробую, щас эту прогу сделать без std::? просто так мне кажется чуть понятнее получается... меня лично std:: немного пугают)

кста
neske, мож помочь с файлами?
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
27.05.2010, 00:26 9
Вы наверное путаете пространство имен std и векторы/алгоритмы/итераторы (то, что использовано у меня).

Делайте конечно

С файлами работать не умею.
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:28 10
Luna17, что за задача по файлам?
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:31 11
Цитата Сообщение от Crudelis Посмотреть сообщение
Luna17, что за задача по файлам?
у меня не получается ввод данных в файл, у меня файл пустой выходит
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:34 12
Luna17, покажите свой код
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:38 13
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
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main ()
{
    const int size=10;
    int MAS[size]={2,5,7,9,-3,6,9,8,10,-10}; // это сам массив который сортируем
    std::vector <int> vec;
    vec.assign (MAS, MAS+size);
    std::cout << "Start:\n";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    size_t N_begin, N_end;
    std::cout << "Input N1: "; std::cin >> N_begin; // ввод 1ого интервала
    std::cout << "Input N2: "; std::cin >> N_end; // ввод 2ого интервала
 
    std::sort (vec.begin()+N_begin, vec.begin()+N_end); // сортировка массива в соответствии с интервалами
 
    std::cout << "Finish:\n"; // вывод
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    system ("pause");
    return 0;
}
а вот это моё чудо с которым я 2ую неделю бьюсь,
задача:Написать программу каталогизатор для книг. Записи о данных каждой книги должны содержать поля:
А) название
Б) автор
В) тематика
Г) год выпуска
Д) ISBN
Е) издательство
Программа должна сохранять данные в файл (вот это у ми глючит), читать из файла, производить поиск данных в файле по ключевому полю.
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
struct  BOOK
{
        char *name;
        char *avtor;
        char *tematika;
        int *godvipuska;
        char *ISBN;
        char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
ostream& operator<<(ostream& out, BOOK &J)
 { 
         out<<"\n фамилия автора : "<<J.avtor;
         out<< "\n тематика книги : "<<J.tematika;
         out<<"\n год выпуска : "<<J.godvipuska;
         out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
         return out;
 }
int main()
{  
    setlocale (LC_ALL, "Russian");
    BOOK k[3],h;
    int i;
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
            scanf("%s",k[i].name, Amax);
 
            
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
            scanf("%s",k[i].avtor, Amax);
 
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
            scanf("%s",k[i].tematika, Amax);
 
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new int [Amax];
            scanf("%d",&k[i].godvipuska);
 
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
            scanf("%s",k[i].ISBN, Amax);
 
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
            scanf("%s",k[i].izdatelstvo, Amax);
 
 
            printf("\n");
        }
      fclose(f);
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %d %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
for (i=0; i<3; i++)
      {
          printf("%s %s %s %d %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
printf("введите название ключевого поля для поиска данных\t");
char *temp;
temp = new char [Amax];
scanf_s("%s", temp, Amax-1);
printf ("%s",temp);
int u=0;
f=fopen("katalogizator.txt","r+t");
{
h.avtor = new char [Amax];
h.godvipuska = new int;
h.ISBN = new char [Amax];
h.izdatelstvo = new char [Amax];
h.name = new char [Amax];
h.tematika = new char [Amax];
}
 while(!feof(f))
{
    printf("\ntest");
 fscanf(f, "%s %s %s %d %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo);
 
 if(strcmp(h.name,temp) == 0)
 {
    printf("\n Такая книга найдена в этой строке %s %s %s %d %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo, Amax);
    u++;
    break;
 }
  if (k==0) printf("\n Таких книг нет"); 
 }
 
fclose(f);
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].ISBN;
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
{
delete[] h.avtor; 
delete[] h.godvipuska; 
delete[] h.ISBN;
delete[] h.izdatelstvo ;
delete[] h.name;
}
        _getch();
          return 0;
 
}
0
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 00:39  [ТС] 14
А как эту програмку сделать что бы размер массива сам задавал? Можете написать?
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:42 15
luck99,
C++
1
BOOK *k=new BOOK[n];
где n вводиться клавиатуры и является размером

Добавлено через 16 секунд
Luna17, ответил в Вашей теме на форуме
0
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:43 16
Цитата Сообщение от luck99 Посмотреть сообщение
А как эту програмку сделать что бы размер массива сам задавал? Можете написать?
??? что бы массив с клавиатуры вводил, чо ли?

Добавлено через 30 секунд
щас посмотрю, спс
0
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 01:02  [ТС] 17
Да с клавиатуры) Спасибо)

Добавлено через 17 минут
Luna ну дак что поможеш с задачей массива с клавиатуры?)
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 01:05 18
luck99, см выше написал ответ на твой вопрос
0
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 01:12  [ТС] 19
Я не про книги имелл в виду) Я в начале темы задачку написал и там мне решения написали с массивом из 10 элементов , а я спросил как сделать что бы количество элементов с клавиатуры вводилось)
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 01:22 20
C++
1
2
3
4
int n=0;
cout<<"Vvedite kolichestvo elementov massiva";
cin>>n;
int *MAS=new MAS[n];
как то так
0
27.05.2010, 01:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 01:22

Скласть програму
Скласть програму для вычисления заданой функцыи!!!

решить програму
1.Заменить в слове все гласные о на а, а буквы а – на о 2.Составить программу...

Редактировать програму
Заданна матрица 3Х3. Заменить в матрице числа буквами. #include &lt;iostream&gt;...


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

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

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