Решение лабораторных, контрольных и т.д. на С++

  • Автор темы European
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Damawoi

Помогите написать игру на Buildere.
Игра разрезающие картинки.
Смысл игры кортинка разбиваеться и ее необходимо сложить в прежнее состояние...
Или помогите найти в нЭте....
Спосибо заранее......
 
A

Anna_1990

Я бы с радостью.. да не получается... месяц в универе не была.. теперь зачётов уйму сдать надо.. а продление сессии не дают.. вот и прошу о помощи...
 
I

iceheart

Anna_1990:
Я помогу :blink:
1. Для перегрузки функций достаточно просто написать несколько функций с одинаковым именем, но различающихся по наборам параметров. Для компилятора это будут разные функции, и какая именно из них будет вызвана в программе, определяется ещё на стадии компиляции по количеству и типам входных данных.
Код:
#include <stdio.h>
#include <conio.h>

float average( int *_a, int _n )
{
float sum=0; int i;
for(i=0;i<_n;i++) sum += _a[i];
return sum/_n;
}

float average( float *_a, int _n )
{
float sum=0; int i;
for(i=0;i<_n;i++) sum += _a[i];
return sum/_n;
}

void main()
{
int i, n, m, *S1; float *S2;
// Заполняем массив целых чисел:
printf( "Enter number of integer values: " );
scanf( "%d", &n );
S1 = new int[n];
printf( "Enter every integer value that's supposed to be in an array: " );
for(i=0;i<n;i++) scanf( "%d", S1+i );
// Заполняем массив float'ов:
printf( "Enter number of floating point values: " );
scanf( "%d", &m );
S2 = new float[m];
printf( "Enter every floating point value that's supposed to be in an array: " );
for(i=0;i<m;i++) scanf( "%f", S2+i );
// Вызываем перегруженные функции:
printf( "Average among integers: %f\n", average(S1,n) );
printf( "Average among floating points: %f", average(S2,m) );
getch();
}
А вообще куда проще то же самое реализовать с помощью шаблонов - тогда достаточно будет описать всего лишь одну функцию:
Код:
template <class X> float average( X *_a, int _n )
{
float sum=0; int i;
for(i=0;i<_n;i++) sum += _a[i];
return sum/_n;
}
3. Очень просто:
Код:
#include <string.h>

class ttString {
char *s; int l;
public:
ttString();														// Различные
ttString( char *_s );											//		  версии
ttString( ttString& _s );										//				 конструктора
~ttString();													// Деструктор
ttString& operator =( char *_s );								// Различные версии
ttString& operator =( ttString &_s );							//				 оператора присваивания
ttString& operator +=( char *_s );								// Этого не было в задании, хотя
ttString& operator += ( ttString &_s );							// должно бы быть...
friend ttString& operator +( ttString &_s1, ttString &_s2 );	// Различные версии
friend ttString& operator +( ttString &_s1, char *_s2 );		//				 оператора
friend ttString& operator +( char *_s1, ttString &_s2 );		//							конкатенации
};

ttString::ttString()
// Стандартный конструктор
{
s = 0;		// Избавляемся от случайных значений указателя в памяти
l = 0;
}

ttString::ttString( char *_s )
// Конструктор, использующий массив символов как прототип
{
l = strlen( _s );		// Вычисляем длину строки
s = new char[l+1];		// Выделяем память
memcpy( s, _s, l );		// Выполняем копирование
}

ttString::ttString( ttString& _s )
// Конструктор, использующий другой объект как прототип
{
l = _s.l;				// Крадём длину строки
s = new char[l+1];		// Выделяем память
memcpy( s, _s.s, l );	// Выполняем копирование
}

ttString::~ttString()
// Деструктор
{
if( s )delete s;		// Освобождаем память
}

ttString& ttString::operator =( char *_s )
// Присваивание строке значения из массива символов
{
if( s )delete s;		// Освобождаем буфер, если нужно
l = strlen( _s );		// Вычисляем длину строки
s = new char[l+1];		// Выделяем память
memcpy( s, _s, l );		// Выполняем копирование
return *this;
}

ttString& ttString::operator =( ttString &_s )
// Копирование объекта строки
{
if( s )delete s;		// Освобождаем буфер, если нужно
l = _s.l;				// Крадём длину строки
s = new char[l+1];		// Выделяем память
memcpy( s, _s.s, l );	// Выполняем копирование
return *this;
}

ttString& ttString::operator +=( char *_s )
// Конкатенация с другой строкой из массива символов
{
if( !s )				// Если эта строка пуста..
{
*this = _s;			// ..передаём управление оператору присваивания,
return *this;		// т.к. конкатенацию как таковую выполнять не нужно.
}
char *o = s;
l += strlen( _s );		// Вычисляем новую длину буфера
s = new char[l+1];		// Выделяем память
strcpy( s, o );			// Копируем строку из старого буфера..
strcat( s, _s );		// И складываем её с новой
delete o;				// Убиваем старый буфер
return *this;
}

ttString& ttString::operator += ( ttString &_s )
// Конкатенация с другой строкой из такого же объекта
{
if( !s )				// Если эта строка пуста..
{
*this = _s;			// ..передаём управление оператору присваивания,
return *this;		// т.к. конкатенацию как таковую выполнять не нужно.
}
char *o = s;
l += _s.l;				// Вычисляем новую длину буфера
s = new char[l+1];		// Выделяем память
strcpy( s, o );			// Копируем строку из старого буфера..
strcat( s, _s.s );		// И складываем её с новой
delete o;				// Убиваем старый буфер
return *this;
}

ttString& operator +( ttString &_s1, ttString &_s2 )
// Конкатенация, продуктом которой станет вновь созданный объект
{
ttString *t;
t = new ttString( _s1 );	// Создаём новый объект и пишем в него первую часть строки
*t += _s2;					// Затем просто складываем со второй
return *t;					// И возвращаем этот объект
}

ttString& operator +( ttString &_s1, char *_s2 )
// Конкатенация, продуктом которой станет вновь созданный объект
{
ttString *t;
t = new ttString( _s1 );	// Создаём новый объект и пишем в него первую часть строки
*t += _s2;					// Затем просто складываем со второй
return *t;					// И возвращаем этот объект
}

ttString& operator +( char *_s1, ttString &_s2 )
// Конкатенация, продуктом которой станет вновь созданный объект
{
ttString *t;
t = new ttString( _s1 );	// Создаём новый объект и пишем в него первую часть строки
*t += _s2;					// Затем просто складываем со второй
return *t;					// И возвращаем этот объект
}
Ну вот, соббственно, и пока всё... Написал бы и другие задания, но они какие-то непонятные... Особенно второе. В четвёртом неясно, что именно требуется - сумма трёх чисел или их среднее значение, или и то и другое. Надеюсь, комментарии тоже будут понятны...
 
S

steal13

Я в этом полный ноль, вот задача по С++:

enum K
one
two'
three'
3;
k* (*f1) (K*);

заранее спасибо
 
P

Pasha

Для: steal13
Это задача по чему угодно, но не по C++.
 
S

steal13

<!--QuoteBegin-Pasha+31:12:2007, 01:46 -->
<span class="vbquote">(Pasha @ 31:12:2007, 01:46 )</span><!--QuoteEBegin-->Это задача по чему угодно, но не по C++.
[snapback]91901" rel="nofollow" target="_blank[/snapback]​
[/quote]

но мне ее дал препод по программированию, может что то не так написал?)

вот так выглядит оригинал
 
G

gamecreator

если ты не можешь допереть даже до того, что написал препод, то зачем ты шел на технический факультет?
расшифровка:
enum K
{
one,
two,
three
};
K* (*f1)(K*);

обьяснения:
обьявляется список констант К, в нем one=0, two=1, three=2.
дальше идет что-то похожее на обьявление указателя.
 
E

European

<!--QuoteBegin-gamecreator+31:12:2007, 13:55 -->
<span class="vbquote">(gamecreator @ 31:12:2007, 13:55 )</span><!--QuoteEBegin-->дальше идет что-то похожее на обьявление указателя
[snapback]91916" rel="nofollow" target="_blank[/snapback]​
[/quote]
Указателя на функцию
 
S

steal13

вот что подсказал знакомый, правильно ли?
Код:
#include "stdafx.h" 
#include <iostream> 
using namespace std; 

enum K {One, Two, Three}; 
int num; 
K hello; 

int main() 
{ 

cout << "Vvedite chislo 1..3\n"; 
cin >> num; 

switch (num) 
{ 
case 1: 
hello = One; 
break; 
case 2: 
hello = Two; 
break; 
case 3: 
hello = Three; 
} 
cout << "Vi vveli: " << num << " = "; 
switch (hello) 
{ 
case One: 
cout << "One\n"; 
break; 
case Two: 
cout << "Two\n"; 
break; 
case Three: 
cout << "Three\n"; 
} 

return 0; 
}
 
G

gamecreator

одно замечание:
enum K {One=1, Two, Three};
 
G

gamecreator

да там у тебя что-то про функцию было
 
V

VinnAVi

Люди, мне задали курсовую, нужно сделать программу которая будет форматировать диск.

European: бабке в кедах расскажи, что это у тебя курсовая такая
 

Вложения

  • form.JPG
    form.JPG
    17,9 КБ · Просмотры: 663
G

gamecreator

я не уверен, но может это format.com в папке system32
 
S

steal13

<!--QuoteBegin-gamecreator+31:12:2007, 20:47 -->
<span class="vbquote">(gamecreator @ 31:12:2007, 20:47 )</span><!--QuoteEBegin-->да там у тебя что-то про функцию было
[snapback]91951" rel="nofollow" target="_blank[/snapback]​
[/quote]


может поможеш как в функию все это перевести? я уже голову сломал....
 
A

Andres

Поздравляю всех с наступившим 2008 годом!
прошу помочь разобраться со следущим заданием:
Дано: квадратная матрица A[N][N] - таблица результатов некоторого шахматного турнира, в котором участвовало N шахматистов(N>2).
A[i,j]=B, если i-ый выиграл у j-го(при этом A[j,i]=П),
A[i,j] =Н, если i-ый и j-ый участники сыграли вничью, и A[i,j]=Х.За выигрыш дается 1 очко, за ничью 0,5 очка, за поражение - 0.
Распечатать номера участников в порядке не возрастания набранных ими очков. Подсчет очков одного участника оформить как функцию.

Заранее благодарен.
 
K

kiddle

Здравствуйте! Столкнулся с проблемой( Есть константа ЕА записана в ячейке в 1 байт. Нужно узнать какое ее десятичное представление в случаее если ЕА-бесснаковая константа, и если ЕА-знаковая..(( Как зделать понятия не имею((
 
X

XpideX

Люди, подскажите,
задали курсач

"Написать программу. ВВести десятичное число N и вывести таблицу чисел от 1 до N и их двоичный эквивалент"

написал ему чтото типа bin(N);

он заявил что нада писать через if'ы, и команды из С++ ему не катят, ибо мы учим С а не С++.

ХЕЛП ПЛИЗ
 
V

VinnAVi

European, Ето серьёзно курсовая, я 1 курс только, предмет Основы и Функциональность компьютера
 
P

Pasha

<!--QuoteBegin-XpideX+3:01:2008, 16:02 -->
<span class="vbquote">(XpideX @ 3:01:2008, 16:02 )</span><!--QuoteEBegin-->он заявил что нада писать через if'ы, и команды из С++ ему не катят, ибо мы учим С а не С++.
[snapback]92151" rel="nofollow" target="_blank[/snapback]​
[/quote]Заяви в ответ своему преподу что itoa - "команда" из C, а не из C++.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!