IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Работа со стеком в C++
Tri
сообщение 15.11.2007, 16:47
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 94
Регистрация: 26.10.2007
Город: Тюмень
Учебное заведение: ТГНГУ
Вы: студент



Составить программу, которая считывает произвольный текст и распечатывает в алфавитном порядке все латинские буквы, входящие в этот текст. В качестве основной структуры данных использовать стек.
Я совсем недавно начала изучать ООП, так что работу с классами совсем не знаю, у меня компил. ругается как раз на классе (IMG:style_emoticons/default/unsure.gif)
Посмотрите, пожалуйста, моё решение.
Код
// 2_1.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
#include <stdlib.h>
using namespace std;

class Stack
{private:
static const int MAX = 80;          
int st[MAX];
int top;
public:
    Stack( );
    {top=0;}
    void push (int var)
    {st[++top]=var;}
    int pop( )
    {return st[top--];}
};
int _tmain(int argc, _TCHAR* argv[])
{Stack s1;
const int MAX=80;
char buffer[3][MAX];
int i=0;
int x,j,dlina,k;char z;
ifstream infile("input.txt");
while (!infile.eof())
{infile.getline(buffer[i],MAX);
cout << buffer[i] << endl; i++;       //считали данные в массив строк
};
k=0;dlina=0;
for (i=0;i<3;i++)
{x=strlen(buffer[i]);dlina=dlina+x;
for (j=0;j<=x;j++)                      //данные из массива помещаем в стек
{s1.push(buffer[i][j]);k++;};
};
for (z='A';z<='Z';z++)
{for (i=0;i<=k;i++)               //выводим данные из стека в алфавитном порядке
{if ((s1.pop()==z)||(s1.pop()==(z+32))){cout << s1.pop() << endl << "\n";};
};
};
return 0;
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 15.11.2007, 19:12
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



Там точка с запятой лишняя, ну и немного отформатировал, так красивее :-). И private можно не писать.
Код
// 2_1.cpp : Defines the entry point for the console application.
//include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
#include <stdlib.h>
using namespace std;

class Stack
{
    static const int MAX = 80;
    int st[MAX];
    int top;
public:
    Stack()
    {
        top=0;
    }
    void push (int var)
    {
        st[++top]=var;
    }
    int pop( )
    {
        return st[top--];
    }
};

int main()
{
    Stack s1;
    const int MAX=80;
    char buffer[3][MAX];
    int i=0;
    int x,j,dlina,k;
    char z;
    ifstream infile("input.txt");
    while (!infile.eof())
    {
        infile.getline(buffer[i],MAX);
        cout << buffer[i] << endl;
        i++;       //считали данные в массив строк
    };
    k=0;
    dlina=0;
    for (i=0;i<3;i++)
    {
        x=strlen(buffer[i]);
        dlina=dlina+x;
        for (j=0;j<=x;j++)                      //данные из массива помещаем в стек
        {
            s1.push(buffer[i][j]);
            k++;
        };
    };
    for (z='A';z<='Z';z++)
    {
        for (i=0;i<=k;i++)              //выводим данные из стека в алфавитном
        {
            if ((s1.pop()==z)||(s1.pop()==(z+32)))
                {
                    cout << s1.pop() << endl << "\n";
                };
        };
    };
return 0;
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tri
сообщение 16.11.2007, 17:58
Сообщение #3


Студент
**

Группа: Продвинутые
Сообщений: 94
Регистрация: 26.10.2007
Город: Тюмень
Учебное заведение: ТГНГУ
Вы: студент



Спасибо большое.
Самое интересное, что это фрагмент кода я взяла из учебника Лафоре ООП в С++, так что даже в таких книгах бывают очепятки (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 17.11.2007, 16:56
Сообщение #4


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



(IMG:style_emoticons/default/smile.gif)
Да, эта серия хорошая. Такие опечатки сложно заметить, наверное.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 29.3.2024, 13:19

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru