Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Закрытая тема
Настройки темы
C/C++ - [решено] Помогите решить задачу по С++

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 20-12-2011
Описание: правила
  1. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму.
  2. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму. Из указаного диапазона n и m
  3. Выполнить инвертирование трех одномерных массивов: А[20], В[10], С[15]. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива -Инвертирование одномерного массива.
  4. Определитьдля каждого из трех одномерных массивов : A[45], B[10], C[20] сколько раз в них встретились два подряд идущих нулевых элемента. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива. -Определения количества двух подряд идущих нулевых элементов в одномерном массиве.


Выдержка из правил форума
Цитата:
Вопросы, в которых нет кода и следов ваших размышлений над поставленной задачей также будут перенесены в закрытую тему - Уголок Ленивого Программиста

Исходное сообщение автора

Задание: Написать прогу, которая по заданному натуральному числу определяет количество цифр в нем и их сумму.Протестируйте функцию десятичных чисел из некоторого диапазона от n до m.

Отправлено: 14:54, 27-09-2008

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Titanium, сложно подсказывать, если ты, именно ты, человек который просит помощи, не понимаешь что ты просишь. Ты отказываешься, как я понял, понимать принципы решения задачи. Через призму программного кода понять, почему делается так а не иначе, сложнее вдвойне. Кроме того, я задаю вопросы не просто так, а для пользы дела. Для того чтобы твои мысли облачить в код, а не чужие.
Кроме определения натуральных чисел и псевдо "строгой возрастающей/убывающей последовательности цифр в числе" ты не дал.
В чем тогда необходима помощь?

P.S. Приложи хоть маленько усилий, ответь на поставленные вопросы! Здесь никто не отказывается тебе помочь, наоборот, все только за. Ты пока (без обид) палец о палец не ударил, постарайся хоть чуть-чуть. Это окупиться сторицей.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 17:47, 24-03-2011 | #211



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну если я не знаю откуда я возьму ответы на поставленные вопросы. В программе мне не понятно как преобразовать последовательность в исходный код. Со всем остальным я разберусь самостоятельно.

Отправлено: 21:45, 24-03-2011 | #212


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Titanium:
Ну если я не знаю »
человек не обязан знать все. Поступая куда-либо учится, де факто человек не знает всей программы обучения. Чтобы научиться, человек обязан думать! Рассуждать, сопоставлять, анализировать и делать выводы. Соотв. я всем силами подталкиваю тебя к этому.
Цитата Titanium:
В программе мне не понятно как преобразовать последовательность в исходный код. »
Перефразируй пожалуйста или задай вопрос еще раз, только в развернутой форме. Что куда преобразовать??
Так и быть, вечером накидаю черновик, разбирайся на здоровье.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 16:32, 25-03-2011 | #213


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


какая формула этой последовательности? И какие там использовать переменные?

Отправлено: 18:08, 25-03-2011 | #214


Новый участник


Сообщения: 15
Благодарности: 6

Профиль | Отправить PM | Цитировать


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

Задача элементарная, т.к. вам надо найти натуральные числа, а все они являются целыми и положительными, используйте переменные типа unsigned integer.
Алгоритм простейший:
задаете цикл от 1 до вашего числа и проверяете для каждого значения удовлетворяет ли оно условию.
положим у вас задано некое N, тогда.
for(UINT i=1; i<N;i++)
{
if( SV(i) || SU(i) )
printf("%d\n",i);
};
здесь SV и SU - функции вычисляющие является ли запись числа строго возрастающей или строго убывающей последовательностью.
вся сложность реализовать 2 функции, возвращающие true если число является соответственно возрастающей или убывающей последовательностью и объявленные следующим образом:
bool SV(unsigned integer N);
bool SU(unsigned integer N);
Для их реализации вам необходимо знать позиционные системы счисления.

Ну а чтобы преобразовать последовательность цифр записи числа в позиционной системе счисления в само число надо найти сумму произведений эих цифр на степени основания системы счисления.
последовательность A B C преобразуется в число по формуле A*N^2+B*N^1+C*N^0, где N - основание системы счисления.
Обратная процедура выполняется по той же формуле.

-------
Ничто так не разрушает мечты, как компромисс..

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:26, 28-03-2011 | #215


Аватара для Morgen

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите пожалуйста ошибку исправить.
Код программы с данного форума.

Код: Выделить весь код
include <iostream>
using namespace std;
#include <stdlib.h>
#include <math.h>
//Вывод отладочных сообщений
#define debug
class CMatrixException{
	char ne;// ne='a' Не возможно выделить память.
			// ne='+' Сложение не возможно
			// ne='-' Вычитание не возможно
			// ne='*' Уможение не возможно
			// ne='/' Division isn't possble
			// ne='d' Конвертация в тип double не возможна
			// ne='=' Невозможно прировнять матрицу
			// ne='0' Zero division matrix/double
			// ne='i' Index out of range
public:
	CMatrixException(char c){ne=c;}
	void PrintMessage(){
		cout<<"\tERROR! >>> ";
		switch(ne){
		case 'a':cout<<"Can't allocate memory"<<endl;break;
		case '+':cout<<"Addition isn't possible"<<endl;break;
		case '-':cout<<"Substruction isn't possible"<<endl;break;
		case '*':cout<<"Multiplication isn't possible"<<endl;break;
		case '/':cout<<"Division isn't possble"<<endl;break;
		case 'd':cout<<"Conversion to double isn't possible"<<endl;break;
		case '=':cout<<"Can't give to matrix"<<endl;break;
		case '0':cout<<"Zero division matrix/double"<<endl;break;
		case 'i':cout<<"Index out of range"<<endl;break;
		case 'T':cout<<"Transporent isn't possible"<<endl;break;
		case 'I':cout<<"Invertation isn't possible"<<endl;break;
		default	:cout<<"Unknown error"<<endl;
		}
	}
};
class Matrix {
private:
	int rows, cols;
	
public:
	double* p;
	//Конструктор
	Matrix(int, int);
	Matrix(int, int,double,...);
	Matrix(int, int,   int,...);
	Matrix(double);
			// Функция создает матрицу размеров 1 Х 1, m(0,0)=i
	Matrix(int);
			// Функция создает матрицу размеров 1 Х 1, m(0,0)=i
	Matrix(Matrix const &);
	//Деструктор
	~Matrix(){if(p!=NULL)delete[]p;}
	//
	Matrix const& operator=(Matrix const&);
	//Конвертация в тип double
	operator double()const;
	//Опрация сложения
	friend double operator+(double,Matrix const&);
	double operator+(double d){return d+*this;}
	double operator+(   int i){return double(i)+*this;}
	friend double operator+( int i,Matrix const&m){return double(i)+m;}
	Matrix Matrix::operator +(const Matrix &) const;
	Matrix const& operator+()const{return*this;}//unary +
	Matrix& operator+=(Matrix const&a){*this=*this+a;return*this;}

	//Опирация вычитания
	friend double operator-(double,Matrix const&);
	double operator-(double d)const{return -(d-*this);}
	double operator-(   int i)const{return *this-double(i);}
	friend double operator-(int i,Matrix const&m){return -(m-i);}
	Matrix  operator-(Matrix const&)const;//binary -
	Matrix& operator-=(Matrix const&a){*this=*this-a;return*this;}
	Matrix  operator-()const;//unary -
	//Опирация умножения
	Matrix& Matrix::operator*=(Matrix const&a){*this=(*this)*a;return*this;}
	Matrix  operator*(double)const;
	friend Matrix operator*(double d,Matrix const&a){return a*d;}
	Matrix& operator*=(double d){*this=*this*d;return*this;}
	Matrix operator*(Matrix const&)const;
	//Division operators
	Matrix  operator/(double d)const{
		if(d==0)throw CMatrixException('d');
		return (1./d)*(*this);
	}
	Matrix& operator/=(double d){*this=*this/d;return*this;}
	//Transposition operator
	Matrix  operator*()const;
//	friend Matrix T(Matrix const&a){return *a;}
	//Доступ к элементам матрицы
	double& Matrix::operator()(int i, int j)const;
	//Транспонирование матрицы
	Matrix T(Matrix const&a)const;
	//Обращение матрицы
	Matrix Inv(Matrix const&a)const;
	//Вывод матрицы на экран
	void Print()const;
	//Возврат кол-ва столбцов и строк матрицы
	int GetRows()const{return rows;}
	int GetCols()const{return cols;}
};
void Print(Matrix const&);

Matrix::Matrix(int m,int n,double d,...) { 
	rows = m;  cols = n;
	double*s=&d;
	p=new double[rows*cols];
	if(p==NULL){
		throw CMatrixException('a');
	}
	for (int i=0;i<rows*cols;i++,++s)p[i]=*s;
}
Matrix::Matrix(int m,int n,  int d,...) { 
	rows = m;  cols = n;
	int*s=&d;
	p=new double[rows*cols];
	if(p==NULL){
		throw CMatrixException('a');
	}
	for (int i=0;i<rows*cols;i++,++s)p[i]=*s;
}
Matrix::Matrix(Matrix const & a) {
	rows = a.rows;
	cols = a.cols;
	p=new double[rows*cols];
	if(p==NULL){
		throw CMatrixException('a');
	}
	for (int i=0;i<rows*cols;i++)p[i]=a.p[i];
}
Matrix::Matrix(int m, int n){
	rows = m;
	cols = n;
	p=new double[rows*cols];
	if(p==NULL){
		throw CMatrixException('a');
	}
}
Matrix::Matrix(int i){
	rows = 1;
	cols = 1;
	p=new double[1];
	if(p==NULL){
		throw CMatrixException('a');
	}
	p[0]=i;
}
Matrix::Matrix(double d){
	rows = 1;
	cols = 1;
	p=new double[1];
	if(p==NULL){
		throw CMatrixException('a');
	}
	p[0]=d;
}
Matrix const& Matrix::operator=(Matrix const & a){
	if(rows!=a.rows||cols!=a.cols){
		throw CMatrixException('=');
	}
	for (int i=0;i<rows*cols;i++)p[i]=a.p[i];
	return*this;
}
Matrix::operator double()const{
	if(rows!=1||cols!=1){
		throw CMatrixException('d');
	}
	return (*this)(0,0);
}

double operator+(double d,Matrix const&m){
	if(m.rows!=1||m.cols!=1){
		throw CMatrixException('+');
	}
	return d+m(0,0);
}
Matrix Matrix::operator+(Matrix const&a)const{
	if(rows!=a.rows||cols!=a.cols){
		throw CMatrixException('+');
	}
	Matrix c(*this);
	for(int i=0;i<rows*cols;i++)c.p[i]+=a.p[i];
	return c;
}
Matrix Matrix::operator-()const{
	Matrix a(rows,cols);
	for(int i=0;i<rows*cols;i++)a.p[i]=-p[i];
	return a;
}
double operator-(double d,Matrix const&m){
	if(m.rows!=1||m.cols!=1){
		throw CMatrixException('-');
	}
	return d-m(0,0);
}
Matrix Matrix::operator-(Matrix const&a)const{
	if(rows!=a.rows||cols!=a.cols){
		throw CMatrixException('-');
	}
	Matrix c(*this);
	for(int i=0;i<rows*cols;i++)c.p[i]-=a.p[i];
	return c;
}
Matrix Matrix::operator*(Matrix const& a)const{
	if(cols!=a.rows){
		throw CMatrixException('*');
	}
	Matrix c(rows,a.cols);
	int i=0,j,k;
    for(;i<rows;++i){
        for(j=0;j<a.cols;++j){
			c(i,j)=0;
            for(k=0;k<cols;++k)c(i,j)+=(*this)(i,k)*a(k,j);
        }
	}
	return c;
}
Matrix Matrix::operator*(double d)const{
	Matrix c(*this);       
	for(int i=0;i<rows*cols;i++)c.p[i]*=d;
	return c;
}

double& Matrix::operator()(int i, int j)const{
	if(i>=rows || j>=cols || i<0 || j<0){
		throw CMatrixException('i');
	}
	return p[i*cols+j];
}
void Print(Matrix const& m){m.Print();}
Matrix Matrix::operator*()const{
    Matrix a(cols,rows);
    int i=0,j;
    for(;i<rows;++i)
    for(j=0;j<cols;++j)a(j,i)=(*this)(i,j);
    return a;
}
void Matrix::Print()const{
	int i=0,j;     
	cout<<endl << "Matrix>\t  ";
	for (;i<rows;i++){ ;
		for (j=0;j<cols;++j)cout<<(*this)(i,j)<<" ";
			cout<<endl <<"\t  ";
	}
	cout<<endl;
}

Matrix Matrix::T(Matrix const&a)const{
	if(a.rows!=a.cols){
		throw CMatrixException('T');
	}
	Matrix c(*this);
	for(int i=0;i<rows;i++)
		for(int j=0;j<cols;j++) c(i,j)=a(j,i);
	
	return c;
}

int matr_inv_gause(double *a, int n)
{
  double e1, d, *b, *c, y, w, p; ;
  int i, j, k, *z;

  e1=1.e-6;
  d=1;

  z= new int[n];
  c= new double[n];
  b= new double[n];


  for(i=0; i<n; i++)
     *(z+i)=i;

  for(i=0; i<n; i++)
   {
    k=i;
    y=*(a+i*n+i);
    if(i+1 <= n )
      for(j=1+i; j<n; j++)
       {
        w=*(a+n*i+j);
        if(fabs(w)>fabs(y))
         {
           k=j;
           y=w;
         }
       }
    d=d*y;
//проверка на близость к вырождению матрицы  
   if(fabs(y)<e1) return 2;
   y=1./y;
   for(j=0; j<n; j++)
    {
      *(c+j)=*(a+n*j+k);
      *(a+n*j+k)=*(a+n*j+i);
      *(a+j*n+i)=-(*(c+j))*y;
      *(b+j)=*(a+i*n+j)*y;
      *(a+i*n+j)=*(b+j);
    }
   j=*(z+i);
   *(z+i)=*(z+k);
   *(z+k)=j;
   *(a+i*n+i)=y;

   for(k=0; k<n; k++)
    if(k != i)
      for(j=0; j<n; j++)
        if(j != i)
         *(a+k*n+j)=*(a+k*n+j)-(*(b+j))*(*(c+k));
   }
  for(i=0; i<n; i++)
    while(1)
    {
      k=*(z+i);
      if(k == i) break;
       for(j=0; j<n; j++)
        {
         w=*(a+i*n+j);
         *(a+i*n+j)=*(a+k*n+j);
         *(a+k*n+j)=w;
        }
      p=*(z+i);
      *(z+i)=*(z+k);
      *(z+k)=(int)p;
      d=-d;
    }

 delete[] z;
 delete[] b;

 delete[] c;

 return 0;
}

Matrix Matrix::Inv(Matrix const&a)const{
	if(a.rows!=a.cols){
		throw CMatrixException('I');
	}
	if(matr_inv_gause(a.p,rows)!=0){
		throw CMatrixException('I');
	}
	return a;
}


//Главная функция программы
void main(){

	try{

		int N,M;

		// Ввод размера матрицы А(N*M)
		cout << "----[Matrix A(N,M)]----\n\n";
		cout << "Enter size\n N> ";
		cin >> N;						
		cout << " M> ";
		cin >> M;		

		Matrix A(N,M);  //Создаем матрицу A размером N*M

		//Ввод содержимого матрицы (через пробел или Enter)
		cout << "Enter matrix elements:\n";
		int i;
		for(i=0; i<N*M; i++){
				cin >> A.p[i];
		}

		A.Print();//печаем матрицу А
		cout << "-----------------------\n\n\n";

		// Ввод размера матрицы B(N*M)
		cout << "----[Matrix B(N,M)]----\n\n";
		cout << "Enter size\n N> ";
		cin >> N;						
		cout << " M> ";
		cin >> M;			

		Matrix B(N,M);	//Создаем матрицу В размером N*M

		cout << "Enter operant elements:\n";
		for(i=0; i<N*M; i++){
				cin >> B.p[i];
		}

		Print(B);//печаем матрицу В
		cout << "-----------------------\n\n";
		
	
		int ch=0;
		while(ch!=9){	//Выбор операций над матрицами
		cout << "################################\n";
		cout << "#  Chouce operation:";
		cout << endl << "#   1. A+B";
		cout << endl << "#   2. A-B";
		cout << endl << "#   3. A*B";
		cout << endl << "#   4. Transponent A";
		cout << endl << "#   5. Invert A";
		cout << endl << "#   9. EXIT" << endl  << "#  >";	//Выход из программы
		cin >> ch;

		if(ch==1) Print(A+B);		//Сложение
		if(ch==2) Print(A-B);		//Вычитание
		if(ch==3) Print(A*B);		//Умножение
		if(ch==4) Print(A.T(A));	//Транспонирование
		if(ch==5) Print(A.Inv(A));	//Обращение
		}

	}

	catch(CMatrixException Me){
		Me.PrintMessage();
	}

}
выдает ошибки
Код: Выделить весь код
1>c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(65) : error C2666: Matrix::operator +: для 6 перегрузок есть подобные преобразования
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(63): может быть 'Matrix Matrix::operator +(const Matrix &) const'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(61): или       'double Matrix::operator +(int)'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(60): или       'double Matrix::operator +(double)'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(62): или       'double operator +(int,const Matrix &)' [найдено при поиске с зависимостью от аргументов]
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(59): или       'double operator +(double,const Matrix &)' [найдено при поиске с зависимостью от аргументов]
1>        или       'встроенный оператор C+++(double, double)'
1>        при попытке сопоставить список аргументов '(Matrix, const Matrix)'
1>        примечание: неоднозначность может быть вызвана корректировкой квалификации (const/volatile)
1>c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(404) : error C2666: Matrix::operator +: для 6 перегрузок есть подобные преобразования
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(63): может быть 'Matrix Matrix::operator +(const Matrix &) const'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(61): или       'double Matrix::operator +(int)'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(60): или       'double Matrix::operator +(double)'
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(59): или       'double operator +(double,const Matrix &)' [найдено при поиске с зависимостью от аргументов]
1>        c:\users\morgenglow\documents\visual studio 2008\projects\seco\seco\se.cpp(62): или       'double operator +(int,const Matrix &)' [найдено при поиске с зависимостью от аргументов]
1>        или       'встроенный оператор C+++(double, double)'
1>        при попытке сопоставить список аргументов '(Matrix, Matrix)'
1>        примечание: неоднозначность может быть вызвана корректировкой квалификации (const/volatile)

Отправлено: 21:41, 09-04-2011 | #216


Новый участник


Сообщения: 15
Благодарности: 6

Профиль | Отправить PM | Цитировать


Существует неоднозначность операторов в 2-х местах,
в строке
Matrix& operator+=(Matrix const&a){*this=*this+a;return*this;}
и в строке
if(ch==1) Print(A+B);//Сложение

Это связано с тем, что, дейтсвительно, у вас объявлено множество операторов +, хотя и с различными параметрами, но так же у вас объявлена ф-я конвертации в тип double, таким образом компилятор остается в недоумении применять оператор сложения к матрице или преобразовать ее к типу double и затем применить этот оператор.
само же приведение к типу double у вас возврат элемента 0,0 или выброс исключения.
Мне кажется что от этого приведения можно отказаться, а для сохранения функциональности определить ф-ю, скажем так:
double Matrix::ToDouble()
{
if(rows!=1||cols!=1){
throw CMatrixException('d');
}
return (*this)(0,0);
};
Если я не прав, поправте, пожалуйста.

-------
Ничто так не разрушает мечты, как компромисс..


Отправлено: 12:14, 13-04-2011 | #217


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


помогите пожалуйста решить задачу.

составить программу обработки картотеки содержащей сведения о студентах группы:
фамилия
имя
отчество
средний балл
стипендия
Для представления картотеки в ОП ПЭВМ воспользоваться структурой данных-циклический двунаправленный список(ЦДС)
В программе предусмотреть:
Поиск элемента ЦДС по ключу
Вставку элемента в ЦДС
Удаление элемента из ЦДС
Вывод картотеки на экран


буду очень признателен за помощь)

Отправлено: 14:58, 13-04-2011 | #218


Аватара для momo2000

Ветеран


Сообщения: 601
Благодарности: 150

Профиль | Отправить PM | Цитировать


Необходима помощь в С++, программировать ничего не надо.
У меня есть курсач с инета, а я только начинаю вникать в суть дела.
Не могли бы вы расписать как можно подробнее, что к чему на первых 6 страницах (там много повторяющихся действий), весь код привёл, т.к. вдруг понадобиться для общего понимания.
http://rghost.ru/5198051

На ru-board тоже попросил, так что не сочтите за наглость

Отправлено: 15:52, 15-04-2011 | #219


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


DennyD, структуры данных проходили? Берешь структуру, вписываешь в нее все что необходимо, не забываешь про двунаправленный список.
Отдельные поля для управления списком (удаление, создание и т.п.) если сразу все мысленно охватить сложно, рисуй схемки на черновиках, это не зазорно.
Структура есть, инструментарий для работы со структурой есть, дальше организуешь выборку по требуемым значениям и дело в шляпе.
Тут ничего сложного, просто надо внимательно прописать все варианты работы с типизированными данными.
cbv, ткну пальцем в небо. Может быть кириллическая кодировка двухбайтовая? А массив однобайтовый? Кроме того не ясно, где заканчивается цикл, какой тип имеют переменные, что помещается в них в правильном и "неправильном" случаях.
momo2000, а тематику то можно было и рассказать.
Перевод С++ кода в ассемблер.
Код: Выделить весь код
int main()
{
//Загрузка ключевых слов.
//Начало чтения входного файла.
//Начало создания лексем
//Начало генерации кода
}
Все прозрачно. Твоя задача посмотреть логику работы формирования лексем. Узнать вообще, что такое лексема, какие варианты анализа и разбора текстов есть.
Т.к. кроме перевода, идет структурный анализ текста. Соотв. формируются ошибки о пропущенных аргументах например.
Когда структура сформирована, идет банально формирование ассемблерного кода вставками и подстановками.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 16:19, 15-04-2011 | #220



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Помогите решить задачу Urann Программирование и базы данных 11 14-05-2013 11:44
Разное - Помогите решить задачу в Excel Dgonny Программирование и базы данных 2 16-11-2009 04:11
C/C++ - Помогите решить задачу zdughi Программирование и базы данных 1 01-05-2009 06:03
помогите решить задачу snikers Программирование и базы данных 2 27-08-2004 01:57
помогите решить задачу Guest Программирование и базы данных 2 21-05-2004 11:23




 
Переход