Подключить хидеры - это значит написать #include соответсвующего хидера. Только будь осторожным: <*> и <*.h> - это разные хидеры.Да если бы я еще знал Какбыло бы великолепно, но я не знаю
![]()
код из Borland перевести для Visual Studio 2005
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
#define while if
Оптимизация по размеру:
#define struct union
ясно, а какие именно хидеры подключать надо? Ну кроме уже подключенных
Подключаешь time.h, вместо randomize(); делаешь вызов srand(time(0)); один раз в ф-ции main() и больше ни где не вызываешь, вместо random(10)-5; используешь rand()%10-5; ( от -5 до 4 включительно. Если не так то пишешь как нужно). clrscr(); меняешь на system("cls"); Вот, вроде и всё.
Что-то всё равно не получается (
добавил <time.h> rand и system("cls") сё равно не распазнаёт
P.S. Спасибо
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Ура количество ошибок уменьшилос!
Мерси боку
(была не правильно подключена 1на библиотека) сейчас проблема с getch(); и еще непонятные мне ошибки.
Скрин ниже
http://depositfiles.com/files/0ydx8rp2d
добавил <time.h> rand и system("cls") сё равно не распазнаёт
P.S. Спасибо
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Ура количество ошибок уменьшилос!


Скрин ниже
http://depositfiles.com/files/0ydx8rp2d
6-я студия компилирует твой код. Судя по скрину у тебя 2005-2008 студия. Нужно смотреть MSDN по поводу getch(), может её назвали как-то иначе. Замени её на system("pause");, она в этом смысле там используется наверное.
У меня 2005 студия.Albor писал(а):6-я студия компилирует твой код. Судя по скрину у тебя 2005-2008 студия. Нужно смотреть MSDN по поводу getch(), может её назвали как-то иначе. Замени её на system("pause");, она в этом смысле там используется наверное.
На getch больше не ругается но осталась 1на ошибка и 3 предупреждения

вот скрин:
http://rapidshare.com/files/247718705/1oshibka.JPG.html
помоги пожалуйста разобратся
н всякий случай кидаю "доработанный код
Код: Выделить всё
#include <conio.h>
#include <stdlib.h>
#include <stdafx.h>
#include <time.h>
#include <iostream>
using namespace std;
//------------------------
void avarage_before_neg(int *mas, int el)
//в функцию передается массив mas и количество элементов el
{
int i, neg_pos=-1, count=0;
float avarage=0;
for (i=0; i<el; i++) //цикл определения позиции первого отрицательного
if (*(mas+i)<0)
{
neg_pos=i; //запись позиции отрицательного
break;
}
//если отрицательных чисел нет - сообщяем
if (neg_pos==-1) cout<<"\n"<<"No negative in array";
//в другом случае подсчитываем количество и сумму
else
{
for (i=0; i<neg_pos; i++)
{
avarage+=*(mas+i);
count++;
}
if (count!=0) avarage=avarage/count;
cout<<"\n"<<"Avarage value of elements before first negative = "<<avarage;
cout<<"\n"<<"Element count before first negative = "<<count;
}
}
void left_min (int *mas, int el)
//в функцию передается массив mas и количество элементов el
{
int i, min=1000, mpos=-1;
float sum_min=0, prod_min=1, ratio=0;
//цикл для нахождения позиции минимального элемента
for(i=0; i<el; i++)
if (*(mas+i)<min)
{
min=*(mas+i);
mpos=i;
}
//цикл для подсчета суммы и произведения
for(i=0; i<mpos; i++)
{
sum_min+=*(mas+i);
prod_min*=*(mas+i);
}
//если произведение равно 0 перехватываем ошибку
if (prod_min==0) cout<<"Devision by zero";
//в другом случае выводим результат на экран
else
{
ratio=sum_min/prod_min;
cout<<"\n"<<"Ratio between summ and product before minimum element = "<<ratio;
}
}
void print_mas (int *mas, int el)
//в функцию передается массив mas и количество элементов el
{
int i;
for (i=0; i<el; i++)
{
cout<<*(mas+i)<<"\t";
}
}
void sign_mas(int *mas, int el, int *mas2, int *el2)
//в функцию передается массивы mas и mas2
// и количество элементов в первом массиве el и во втором - el2
{
int i, element=0;
float sign=0;
//цикл для обнуления второго массива
for (i=0; i<el; i++)
*(mas2+i)=0;
sign=*(mas+0);
if (sign==0) sign=1;
//цикл для создания второго массива
for (i=0; i<el; i++)
{
//если знаки одинаковы то суммируем
if (*(mas+i)/sign>=0) *(mas2+element)+=*(mas+i);
//в другом случае создаем новый элемент во втором массиве
else if (*(mas+i)/sign<0)
{
element++;
sign=*(mas+i);
if (sign==0) sign=1;
*(mas2+element)+=*(mas+i);
}
}
*el2=element+1;
}
void main()
{
int el, el2, i, comand;
cout<<"Type array size =";
cin>>el;
int* mas = new int[el]; //создание двух динамических массивов
int* mas2 = new int[el];
srand(time(0));
for (i=0; i<el; i++)
mas[i]=rand()%10-5;
do
{
system("cls");
cout<<"Choose comand:";
cout<<"\n"<<"1. Change array size";
cout<<"\n"<<"2. Find avarege and count before first negative";
cout<<"\n"<<"3. Find ratio between summ and product of elements before first negative";
cout<<"\n"<<"4. Crate massive with near elements with same sign";
cout<<"\n"<<"5. Exit"<<"\n";
cin>>comand;
switch (comand)
{
case 1: //первый пункт меню
{
system("cls");
delete[] mas;
delete[] mas2;
cout<<"Type array size =";
cin>>el;
int* mas = new int[el];
int* mas2 = new int[el];
rand();
for (i=0; i<el; i++)
mas[i]=rand()%10-5;
break;
}
case 2: //второй пункт меню
{
system("cls");
cout<<"Array:"<<"\n";
print_mas(mas, el);
avarage_before_neg(mas, el);
system("pause");
break;
}
case 3: //третий пункт меню
{
system("cls");
cout<<"Array:"<<"\n";
print_mas(mas, el);
left_min(mas, el);
system("pause");
break;
}
case 4: //пчетвертый пункт меню
{
system("cls");
cout<<"Array:"<<"\n";
print_mas(mas, el);
sign_mas(mas, el, mas2, &el2);
cout<<"\nCreated array:"<<"\n";
print_mas(mas2, el2);
system("pause");
break;
}
case 5: //выход
{
delete[] mas;
delete[] mas2;
return(0);
}
default:
{
cout<<"\n"<<"No such comand";
system("pause");
break;
}
}
}
while(comand!=5);
}
напиши просто return; без (0) . Ворнинги из-за того, что компилятор видит неявное приведение типа из int в float, если криминала в потере точности нет, то можешь оставить так, а можешь явно привести к типу float:
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
В case 1 rand(); лишняя, вообще убери её и delete вызывай без [].
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Код: Выделить всё
sign=(float)*(mas+i);
Добавлено сообщение
--------------------------------------------------------------------------------
В case 1 rand(); лишняя, вообще убери её и delete вызывай без [].
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Нет, system("pause") просто ждёт нажатия любой кнопки и не даёт закрыть консоль.dummie писал(а):Кстати еще 1н вопрос а system("pause") это не тоже самое что cin.get() ?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Хоть бы код глянул для начала. Вообще-то там void. Невнимательность у тебя хроническая" писал(а):Ага у прототипа int main(какие-то параметры).

dummie, я не могу с рапиды скачать, у меня лимит исчерпан. Я уверен, что есть и другие юзеры с той же проблемой. Выложи список ошибок прямо сюда.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Это у тебя невнимательность хроническая: в VS, при создании консоли, шаблон int _tmain(...Romeo писал(а):Хоть бы код глянул для начала. Вообще-то там void. Невнимательность у тебя хроническая![]()
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
#define while if
Оптимизация по размеру:
#define struct union
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Airhand, ну ты упёртый. Код смотри, говорю тебе! Какая разница что студия генерирует, ТЫ КОД СМОТРИ! И переписку читай. Человек пробовал return 0, как посоветовал ты, у него ругалось и ему исправили на return, а ты всё продолжаешь спорить. Читай каждое слово или каждую букву, если по словам уловить не получается.
dummie, справился с последней ошибкой?
dummie, справился с последней ошибкой?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.