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

обратная польская запись - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как откр. сайт http://www.cyberforum.ru/cpp-beginners/thread214921.html
Здравствуйте, господа. Можно ли каким-то образом откр. сайт в консольной программе? Пробовал использовать system ("start"), однако выдаётся сообщение "Bad command or file name". Заранее благодарю за возможные ответы.
C++ параметры шаблона 1) работа с параметрами шаблона; 2) создайте класс для обьекта типа "муз. проигрыватель".постройте UMLдиаграмму. напишите реализацию на С++:конструктор,деструктор и минимум три метода (с использованием перегрузки). Помогите пожалуйста!! Добавлено через 39 минут пожалуйстаа помогите!! завтра сдвать(( http://www.cyberforum.ru/cpp-beginners/thread214898.html
C++ нахождение максимального элемента в двумерном массиве
я совсем запуталась, хотя задачка-то вроде - фигня. помогите, пожалуйста (нужна программа на си) Найти наибольший элемент a(i)(k) матрицы А, элементы которой вычисляются по формуле a(i)(k)=x(i)*y(k). Векторы X={x1, x2,...x(i)}, Y={y1, y2,...y(k)} считаются заданными
как сохронять в ini файл C++
как сохранять переменные В ini файл и как с него считывать если можно напишите пример программы
C++ Программа глючит http://www.cyberforum.ru/cpp-beginners/thread214872.html
Написал курсовую. Программа глючит. Дана матрица, элементы которой – случайные числа, находящийся в диапазоне . Найти максимальный элемент матрицы, и числа, которые делятся на максимальное число, записать в одномерный массив. Написать функцию, которая из массива передает в функцию main() адрес первого нечетного элемента, и присваивает его переменной в главной функции. Разработать функции для...
C++ Требуется определить расстояние, на котором окажутся бегуны друг от друга в конце тренировки Два бегуна тренируются на кольцевой дорожке легкоатлетического стадиона длиной 400 метров. Они начинают бег из одной точки и бегают по заданиям тренера указанное число минут с указанной скоростью (под скоростью понимается количество метров, которое спортсмен пробегает по дорожке за минуту). Требуется определить расстояние, на котором окажутся бегуны друг от друга в конце тренировки (расстоянием... подробнее

Показать сообщение отдельно
Janet1991
1 / 1 / 0
Регистрация: 23.05.2010
Сообщений: 7
19.12.2010, 19:49     обратная польская запись
//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fstream.h>
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
//объявляем глобальные переменные
/* объявляем структуру стека */
struct st
{
char c;
st *next;
};
const int nmax=255;
/* Стек опеpаций пуст */
st *OPERS=NULL;
char a[nmax], outstring[nmax];
int k, point;
/* Функция push записывает на стек (на веpшину котоpого указывает HEAD)
символ a . Возвpащает указатель на новую веpшину стека */
st *push(st *HEAD, char a)
{
/* Инициализация созданной веpшины */
/*if (HEAD==NULL)
{
HEAD->c=a;
HEAD->next=NULL;
return HEAD;
} else{ */
st *PTR=new st;
PTR->c=a;
/* и подключение её к стеку */
PTR->next=HEAD;
HEAD=PTR;/* PTR -новая веpшина стека */
return HEAD;//}
}

/* Функция DEL удаляет символ с веpшины стека.
Возвpащает удаляемый символ.
Изменяет указатель на веpшину стека */
char DEL(struct st **HEAD)
{
struct st *PTR;
char a;
/* Если стек пуст, возвpащается '\0' */
if(*HEAD==NULL) return '\0';
/* в PTR - адpес веpшины стека */
PTR=*HEAD;
a=PTR->c;
/* Изменяем адpес веpшины стека */
*HEAD=PTR->next;
/* Освобождение памяти */
delete(PTR);
/* Возвpат символа с веpшины стека */
return a;
}

/* Функция PRIOR возвpащает пpиоpитет аpифм. опеpации */
int PRIOR(char a)
{
switch(a)
{
case '*':
case '/':
return 2;

case '-':
case '+':
return 3;

case '(':
return 0;

//case ')':
// return 0;


case '^':
return 1;
}
}

//---------------------------------------------------------------------------
char stroka[nmax];//строка с инфиксной записью

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Text="";
Edit2->Text="";
}
//---------------------------------------------------------------------------

//процедура работы со стеком (перевод строки в постфикс)
AnsiString InfixToPostf( char stroka[nmax],char outstring[nmax])
{
OPERS=NULL;
k=point=0;
while(stroka[k]!='\0')
{
if((stroka[k]>='a'&&stroka[k]<='z')||(stroka[k]>='A'&&stroka[k]<='Z')||(stroka[k]>='0'&&stroka[k]<='9'))
/* пеpеписываем её в строку */
outstring[point++]=stroka[k]; else
{
if (OPERS==NULL) OPERS=push(OPERS, stroka[k]);
else{
if(PRIOR(OPERS->c)<PRIOR(stroka[k]) || PRIOR(stroka[k])==0)/* если пpиоpитет поступившей опеpации больше пpиоpитета опеpации в веpшине стека операций */
/* заталкиваем поступившую опеpацию на стек */
OPERS=push(OPERS, stroka[k]);
/* если пpиоpитет меньше */
else
{
outstring[point++]=DEL(&OPERS);
while(PRIOR(OPERS->c)>=PRIOR(stroka[k]) ||OPERS==NULL)
{
outstring[point++]=DEL(&OPERS);
}
OPERS=push(OPERS, stroka[k]);
}
}
}
/* Пеpеход к следующему символу входной стpоки */
k++;
}
outstring[point+1]='\0';
return AnsiString(outstring);
}



void __fastcall TForm1::Button3Click(TObject *Sender)
{
if (strlen(stroka)!=0) //если введена непустая строка
{
Edit2->Text=InfixToPostf( stroka,outstring);//выводим постфикс в в поле edit2
}
else
{ShowMessage("Ошибка! Введена пустая строка.");}
//Button2->Enabled=false;//блокируем кнопку

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ /* Стек опеpаций пуст */
struct st *OPERS=NULL;
strcpy(stroka,(Edit1->Text.c_str()));//копируем в переменную stroka
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
OpenDialog1->Title="Откройте файл"; //делаем надпись в заголовке диалог.окна
if (OpenDialog1->Execute()) //Открытие диалога, если диалог открыт
{
const char* filename;//переменная хранящая имя файла //c_str()-возвращает константную строку//
filename=OpenDialog1->FileName.c_str();//присваиваем ей файл выбранный в диалоге
ifstream infile; //тип ifstream означает входной поток файла
infile.open(filename); //открываем файл с именем filename
while(!infile.eof()) //пока не конец файла
{
infile>>stroka; //вводим из файла строку
Edit1->Text=stroka; //выводим строку на форму в поле edit1
}
infile.close(); //закрываем файл
}
else //если нажата кнопка *отмена* в диалоге
{ShowMessage("Файл не был открыт!");}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
}
//---------------------------------------------------------------------------

Добавлено через 1 минуту
написать прогу на с++ перевода инфиксной в постфиксную запись, попыталась использовать алгоритм дейкстры

Добавлено через 1 минуту
в это варианте кода что то с памятью при переводе строкии....помогите плиииз

Добавлено через 26 секунд
в это варианте кода что то с памятью при переводе строкии....помогите плиииз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru