Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 20:02   #1
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Смущение Программа со стеком (С++)

Дан файл, элементами которого являются целые числа, упорядоченный за ростом. С помощью структуры данных стек провести "обратную" сортировку файла за спадением.
У меня сразу имеются вопросы.
Как прочитать файл??
Потом как программа прочитает елементы файла то значит нужно создать еще один стек для сохранения в него уже по новому отсортированых данных ??
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 20:38   #2
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Подскажите хотя бы как правильно начать программу
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 21:34   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так. Есть стек. Заполнили его элементами по возрастанию (правильно расшифровал "упорядоченный за ростом"?).

И есть второй стек. Результирующий. И нужно из первого стека перегнать элементы во второй (и получится, что второй стек будет отсортирован по возрастанию).

Все правильно понял?
-------------------------
Цитата:
Как прочитать файл??
С помощью оператора ">>".
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.04.2009, 21:41   #4
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

С этим разобралась, спасибо. Но как сделать чтобы программа могла прочитать числа из файла(например если я создам Myfile.txt и запишу в него числа).
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 22:00   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Но как сделать чтобы программа могла прочитать числа из файла(например если я создам Myfile.txt и запишу в него числа).
Да очень просто. Пример:
Код:
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;

int main()
{
ifstream fin("test.txt");  // объявляем и открываем файл
int k;
while(!fin.eof())  // пока не дошли до конца файла
  {
   fin>>k;  // читаем очередное число
  cout<<k<<endl;  // и выводим его
  }

fin.close();  // закрываем файл
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.04.2009, 22:05   #6
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

огромное спасибо за код !! Ща буду пробовать сделать задание ))
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 22:06   #7
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Ой забыла спросить... А откуда программа читает файл ?? (с какой директории)
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 22:08   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А откуда программа читает файл ?? (с какой директории)
С той, где находится программа.

Но можно и явно указать:
Код:
ifstream fin("c:\test.txt"); // берем файл с диска C
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.04.2009, 22:10   #9
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

ок. еще раз спасибо
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 29.04.2009, 22:54   #10
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Запись данных с файла в стек я то сделала... Но не могу понять как теперь записать данные в новый стек начиная с последнего елемента и так до первого с уже созданного стека. И еще вопрос: Можно ли обратиться к стеку и вызвать нужный елемент(ну как с массивом mas[0])??
Код:
#include <iostream>
#include <fstream>
#include <conio.h>
#include <stack>

using namespace std;

int main()
{
stack<int> mystack;
ifstream fin("test.txt");  
int k;
while(!fin.eof())  
  {
   fin>>k;  
  mystack.push(k);
  }

fin.close();  
getch();
return 0;
}
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа. Asentian Фриланс 14 25.04.2010 17:30
IE + ActiveX + проблему с кучей и стеком vladgolovkov Общие вопросы C/C++ 0 16.04.2009 11:10
Задача со стеком host.pro Помощь студентам 1 12.03.2009 12:48
Программа Fartyna3000 Операционные системы общие вопросы 4 06.12.2008 23:39
работа со стеком Katovski Помощь студентам 8 12.06.2008 11:30