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

  • Автор темы Автор темы European
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Помогите написать игру на Buildere.
Игра разрезающие картинки.
Смысл игры кортинка разбиваеться и ее необходимо сложить в прежнее состояние...
Или помогите найти в нЭте....
Спосибо заранее......
 
Я бы с радостью.. да не получается... месяц в универе не была.. теперь зачётов уйму сдать надо.. а продление сессии не дают.. вот и прошу о помощи...
 
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;					// И возвращаем этот объект
}
Ну вот, соббственно, и пока всё... Написал бы и другие задания, но они какие-то непонятные... Особенно второе. В четвёртом неясно, что именно требуется - сумма трёх чисел или их среднее значение, или и то и другое. Надеюсь, комментарии тоже будут понятны...
 
Я в этом полный ноль, вот задача по С++:

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

заранее спасибо
 
Для: steal13
Это задача по чему угодно, но не по C++.
 
<!--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]

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

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

обьяснения:
обьявляется список констант К, в нем one=0, two=1, three=2.
дальше идет что-то похожее на обьявление указателя.
 
<!--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]
Указателя на функцию
 
вот что подсказал знакомый, правильно ли?
Код:
#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; 
}
 
да там у тебя что-то про функцию было
 
Люди, мне задали курсовую, нужно сделать программу которая будет форматировать диск.

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

Вложения

  • form.JPG
    form.JPG
    17,9 КБ · Просмотры: 672
я не уверен, но может это format.com в папке system32
 
<!--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]


может поможеш как в функию все это перевести? я уже голову сломал....
 
Поздравляю всех с наступившим 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.
Распечатать номера участников в порядке не возрастания набранных ими очков. Подсчет очков одного участника оформить как функцию.

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

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

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

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

ХЕЛП ПЛИЗ
 
European, Ето серьёзно курсовая, я 1 курс только, предмет Основы и Функциональность компьютера
 
<!--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++.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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