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

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

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

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

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

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

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

Редактировать програму - C++
Заданна матрица 3Х3. Заменить в матрице числа буквами. #include <iostream> using namespace std; void main() { const int n=3; ...

проверте програму - C++
Всем доброго времени суток! вот создал програму про списки, ошибки при компиляции не выскакивают, но когда я иду на выполнение, в...

Написать програму... - C++
1) Дано чотири цілих числа, одне з яких відмінне від трьох інших, рівних між собою. Вивести квадрат цього числа. 2) Дано три дійсних...

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

Картинка в програму - C++
HELP!!! Нужно вставить картинку в програму напишите пожалуйста полний код как ето сделать зарание БОЛЬШОЕ СПАСИБО

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
26.05.2010, 23:39     Посмотрите програму #2
посмотри на сайте чуть выше там много примеров сортировки есть
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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;
}
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
26.05.2010, 23:48  [ТС]     Посмотрите програму #4
Спасибо)) А как к этой задачке схему еще сделать?
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:: - уже можно не писать
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 00:17  [ТС]     Посмотрите програму #6
Luna Можеш мне коментарии к этой программе написать? Просто хочу разобраться что и как окончательно)
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
27.05.2010, 00:19     Посмотрите програму #7
Luna17, да, можно. Но чтобы не возникало проблем, я взял в привычку писать
C++
1
std::
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:24     Посмотрите програму #8
ммм, понятно, а можно я тогда попробую, щас эту прогу сделать без std::? просто так мне кажется чуть понятнее получается... меня лично std:: немного пугают)

кста
neske, мож помочь с файлами?
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
27.05.2010, 00:26     Посмотрите програму #9
Вы наверное путаете пространство имен std и векторы/алгоритмы/итераторы (то, что использовано у меня).

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

С файлами работать не умею.
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:28     Посмотрите програму #10
Luna17, что за задача по файлам?
Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 00:31     Посмотрите програму #11
Цитата Сообщение от Crudelis Посмотреть сообщение
Luna17, что за задача по файлам?
у меня не получается ввод данных в файл, у меня файл пустой выходит
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:34     Посмотрите програму #12
Luna17, покажите свой код
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;
 
}
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 00:39  [ТС]     Посмотрите програму #14
А как эту програмку сделать что бы размер массива сам задавал? Можете написать?
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 00:42     Посмотрите програму #15
luck99,
C++
1
BOOK *k=new BOOK[n];
где n вводиться клавиатуры и является размером

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

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

Добавлено через 17 минут
Luna ну дак что поможеш с задачей массива с клавиатуры?)
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 01:05     Посмотрите програму #18
luck99, см выше написал ответ на твой вопрос
luck99
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 18
27.05.2010, 01:12  [ТС]     Посмотрите програму #19
Я не про книги имелл в виду) Я в начале темы задачку написал и там мне решения написали с массивом из 10 элементов , а я спросил как сделать что бы количество элементов с клавиатуры вводилось)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 01:22     Посмотрите програму
Еще ссылки по теме:

решить програму - C++
1.Заменить в слове все гласные о на а, а буквы а – на о 2.Составить программу для вычеркивания из слова X каждой третьей буквы

отладить програму - C++
дана такая задача программы &quot;Данный символьный файл. Учтем, что длина слов не превышает двадцати символов, определить, сколько в файле...

Надо написать програму - C++
Даны натуральное число n, символы s1, s2, …, sn среди которых есть двоеточие. Получить все символы, расположенные до первого двоеточия...

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

разбить програму на функцыи! - C++
Помогите разбить програму на функцыы! Отдельной функцыей вывод на екран ! на сpp i header! #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Crudelis
Шаровик затейник
672 / 414 / 13
Регистрация: 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];
как то так
Yandex
Объявления
27.05.2010, 01:22     Посмотрите програму
Ответ Создать тему
Опции темы

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