Lion HC Опубликовано 18 августа, 2009 Жалоба Поделиться Опубликовано 18 августа, 2009 Tue.read((char*)&Data[i],sizeof(Data[i])); Невідомо як компілятор має визначити довжину Вашої структури... Мабуть програма при кожній ітерації буде читати максимальну довжину AnsiString х 6. А записувати набагато менше інформації. Звідси і обмеження доступу. Є два виходи: 1. Якщо довжина даних Вашої структури приблизно відома і не є дуже великою, можна наперед чітко задати довжину кожного поля, або зробити двовимірний масив символів, назразок: char[6][30]. Тоді можна буде записувати і зчитувати в кожну структуру рівно по 180 символів. 2. Інший варіант: при записуванні структури в файл, кожне поле відділяти спеціальним символом (наприклад: косою рискою) і кожну структуру відділяти від іншої новим абзацом. Тоді при зчитуванні з файла визначати довжину кожної структури і кожного поля за цими спеціальними символами. Ссылка на комментарий Поделиться на другие сайты Поделиться
MilanAC Опубликовано 18 августа, 2009 Жалоба Поделиться Опубликовано 18 августа, 2009 Дана задача в методичке, не понимаю, что нужно вообще сделать. Пожалуйста, помогите разобраться с тем, что от меня требуется. :) Самостоятельно в программной среде Excel постройте моделирующий алгоритм численного и графического решения экономико-математической задачи по определению области возможных цен и объемов продукции, обеспечивающих доход свыше 650 тыс. рублей при диапазонах допустимых цен от 100 до 200 руб. и объемов продукции от 1000 до 5000 изделий. Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 18 августа, 2009 Жалоба Поделиться Опубликовано 18 августа, 2009 Lion HC: Дякую за допомогу. Ніби розібрався. Проблема була із записом. структуру з AnsiString не хотіло писати. Тому обійшовся стандартними масивами. Тепер інша проблема. Необхідно створювати файл, ім'я якого складається з Дня тижня і дати. Ось мій варіант (компіляція працює але файл не створюється). AnsiString Day="",FirstD="(", SecondD=")",Format=".dat";TDateTime CurrentDate = Date();switch (DayOfWeek(DateTimePicker1->Date)){case 2: Day="Mon"; break;case 3: Day="Tue"; break;case 4: Day="Wed"; break;case 5: Day="Thu"; break;case 6: Day="Fri"; break;case 7: Day="Sat"; break;case 1: Day="Sun"; break;}AnsiString Location=Day+FirstD+DateToStr(CurrentDate)+SecondD;Label6->Caption=Location;DayCheck Data;strcpy (Data.Date,DateToStr(CurrentDate).c_str());strcpy (Data.Bid,Label1->Caption.c_str());strcpy (Data.Offer,Label2->Caption.c_str());strcpy (Data.Trade,Label3->Caption.c_str());strcpy (Data.LTrade,Label4->Caption.c_str());strcpy (Data.WriteTime,TimeToStr(Time()).c_str());ofstream File (Location.c_str(),ios::binary);File.write((char*)&Data,sizeof(Data));File.close(); Ссылка на комментарий Поделиться на другие сайты Поделиться
MilanAC Опубликовано 19 августа, 2009 Жалоба Поделиться Опубликовано 19 августа, 2009 Прошлая задача решена. Ссылка на комментарий Поделиться на другие сайты Поделиться
MilanAC Опубликовано 19 августа, 2009 Жалоба Поделиться Опубликовано 19 августа, 2009 Помогите, пожалуйста, решить задачу. Для решения уравнений в Excel и других подобных программах ис-пользуется метод итераций. Метод доступен в виде встроенного мо-дуля (Сервис-Подбор параметра…). Воспользуйтесь алгоритмом решения на примере задачи нахождения корней уравнения x2 – sin 5x = 0, принадлежащих отрезку [-0.1; 0.6]. 1)Заполните столбцы (строки) значений аргумента и функции. 2)Постройте график, который необходим для уточнения количества и места расположения решений на указанном отрезке. В случаях, если функция имеет ограниченную область определения или ре-шений несколько, определитесь с «точками начала итераций» (точками, к которым искомые корни расположены достаточно близ-ко). 3)Внесите в свободные ячейки электронной таблицы значения «то-чек начала итераций». Рядом скопируйте формулы для расчета значений функции в данных точках. 4)Обратитесь к модулю «Подбор параметра» и введите необходи-мую информацию: •Адрес ячейки, в которой рассчитывается значение функции •Требуемое значение функции (в нашем случае – 0) Подобным образом последовательно уточните все корни уравнения, соответствующие условию задачи Ссылка на комментарий Поделиться на другие сайты Поделиться
MilanAC Опубликовано 20 августа, 2009 Жалоба Поделиться Опубликовано 20 августа, 2009 Дана задача. Для производства двух видов изделий X и Y предприятие использует три вида сырья. Известен расход сырья каждого вида на изготовление единицы продукции вида X: 1,1; 2,3; 4,9 кг соответственно, и продукции вида Y: 0,8; 5,3; 2 кг. Общий запас сырья составляет соответственно 15; 6; 8 тонн. Прибыль от реализации продукции вида X – 180 рублей, вида Y – 110 рублей. Составить оптимальный план производства изделий, обеспечивающий максимальную прибыль. Помогите составить таблицу, для того чтобы потом можно было просчитать и воспользоваться поиском решения. По аналогии с этой решенной задачей: Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 21 августа, 2009 Жалоба Поделиться Опубликовано 21 августа, 2009 ... Тепер інша проблема. Необхідно створювати файл, ім'я якого складається з Дня тижня і дати. Ось мій варіант (компіляція працює але файл не створюється). ... Якщо ще не вирішили проблему закиньте мені архів з прогою на мило: Lion.HC(a)gmail.com ! Предупреждение: Artur88: Советую вам вспомнить парвила форума Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 августа, 2009 Жалоба Поделиться Опубликовано 27 августа, 2009 Задача следующая - в Edit1 вводится имя файла x, в Edit2 - расширение y - расширение и по клике на кнопку нужно создать файл x.y Ссылка на комментарий Поделиться на другие сайты Поделиться
NatM Опубликовано 27 августа, 2009 Жалоба Поделиться Опубликовано 27 августа, 2009 Задача следующая - в Edit1 вводится имя файла x, в Edit2 - расширение y - расширение и по клике на кнопку нужно создать файл x.y TForm1.Button1Click(Sender:TObject); Var f:file; Begin AssignFile(f,trim(edit1.text)+'.'+trim(edit2.text)); Rewrite(f); CloseFile(f); End; Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 27 августа, 2009 Жалоба Поделиться Опубликовано 27 августа, 2009 А вот пример написан на КодГере: #include <fstream.h>void __fastcall TForm1::Button1Click(TObject *Sender){String FileName = Edit1->Text+'.'+Edit2->Text;ofstream File(FileName.c_str(), ios_base::out | ios_base::trunc);if(File.is_open())ShowMessage ("Файл "+FileName+" успішно створений!");elseShowMessage ("Помилка при створенні файлу: "+FileName);File.close();} Могу весь проект скинуть на мило... Ссылка на комментарий Поделиться на другие сайты Поделиться
Хулиганка Опубликовано 7 сентября, 2009 Жалоба Поделиться Опубликовано 7 сентября, 2009 ребятки,помогайте))) в Паскале:дано натуральное число n.определить произведения всех цифр этого числа. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 7 сентября, 2009 Жалоба Поделиться Опубликовано 7 сентября, 2009 Хулиганка: var n,p:longint;beginwrite('n ? '); readln(n);p:=1; repeat p:=p*(n mod 10); n:=n div 10; until n=0;writeln(p); readlnend. Ссылка на комментарий Поделиться на другие сайты Поделиться
Хулиганка Опубликовано 7 сентября, 2009 Жалоба Поделиться Опубликовано 7 сентября, 2009 Тролль,спс те большое))который раз выручаешь))) Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 23 сентября, 2009 Жалоба Поделиться Опубликовано 23 сентября, 2009 Задача следующая. Есть масив X из 1000 действительньіх чисел (от 0 до 5). Есть другой масив Y из 30 чисел, случайно вьібраньіх из 1000 елементов из первого масива. Задача - создать третий масив Z цельіх чисел, в котором записать количество елментов X на каждом промежутке [Y,Y[i+1]]. Нужно только описание наиболее ефективного алгоритма. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 24 сентября, 2009 Жалоба Поделиться Опубликовано 24 сентября, 2009 (изменено) core_st: Условие не ахти как четко записано, я понимаю его так, что "количество элементов X на каждом промежутке [Y,Y[i+1]]" - количество элементов, значения которых находятся в этом отрезке. Сортируешь массив X (оптимальной для такого количества при случайном отборе элементов будет, видимо, быстрая сортировка Хоара), потом ищешь количество элементов в промежутках между заданными в массиве Y значениями. Тупо пробегать по массиву X тридцать раз в поиске элемента с нужным значением (первая пришедшая в голову мысль) не следует, поиск очередного элемента с нужным значением проводится бинарным поиском. Увеличенные на единицу разницы индексов найденных элементов - это количества элементов в промежутках - помещаешь в элементы массива Z. P.S. Таинственным, так как абсолютно ничему не помогающим, ограничением является "(от 0 до 5)". Все равно на этом промежутке бесконечно большое количество действительных чисел, так что его никак не использовать. Изменено 24 сентября, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 24 сентября, 2009 Жалоба Поделиться Опубликовано 24 сентября, 2009 Сортировку хотел сделать через qsort. но вот что получается: int TForm1::Compare( const void *a, const void *b ){return( strcmp((char *)a,(char *)b));} - цункция для qsort....qsort ((void*)mas,CountOfEl,sizeof(float),Compare);... Mas - динамический масив. Мож в етом дело? Ошибка: [bCC32 Error] Unit1.cpp(46): E2034 Cannot convert 'int (* (_closure )(const void *,const void *))(const void *,const void *)' to 'int (*)(const void *,const void *)' [bCC32 Error] Unit1.cpp(46): E2342 Type mismatch in parameter '__fcmp' (wanted 'int (*)(const void *,const void *)', got 'void') Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 26 сентября, 2009 Жалоба Поделиться Опубликовано 26 сентября, 2009 return( strcmp((char *)a,(char *)b)); Вы что-то не то в ретурн зипихнули.Можно попробовать: int i=strcmp((char *)a,(char *)b);return i; Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 сентября, 2009 Жалоба Поделиться Опубликовано 27 сентября, 2009 Вы что-то не то в ретурн зипихнули. Можно попробовать: int i=strcmp((char *)a,(char *)b);return i; Шутите? какая разницу между тем что написали вьі и тем что написал я? да и проблема явно не в етой функции Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 29 сентября, 2009 Жалоба Поделиться Опубликовано 29 сентября, 2009 Не шутю... [bCC32 Error] Unit1.cpp(46): E2034 Cannot convert 'int (* (_closure )(const void *,const void *))(const void *,const void *)' to 'int (*)(const void *,const void *)' Судя по етой ошибке, ваша функция возвращает не int, а указатель на функцию типа: int (* (_closure )(const void *,const void *)). Не знаю почему, но так выходит... Посмотрите в рядок 46 исходника, не вашу ли функцию Compare, Вы передаете в качестве параметра?... Если я ошибаюсь, отпишыте, что там в рядке 46...? Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 29 сентября, 2009 Жалоба Поделиться Опубликовано 29 сентября, 2009 Это мне так показалось на первий взгляд. А на самом деле ошыбка может возникать из-за того, что вы передаете параметром не функцыю, а метод. Объявите и определите функцыю Compare вне класса TForm! Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 3 октября, 2009 Жалоба Поделиться Опубликовано 3 октября, 2009 Тоесть в хедере объявите функцию так: class TForm1 : public TForm{__published: // IDE-managed Componentsprivate: // User declarationspublic: // User declarations__fastcall TForm1(TComponent* Owner);...}; //конец класса TForm1int Compare( const void *a, const void *b ); // объявление функции после завершения класа, а не внутри TForm1 а в опредилении уберите принадлежность функции к пространству имен TForm1:: int Compare( const void *a, const void *b ){return( strcmp((char *)a,(char *)b));} - цункция для qsort. Ссылка на комментарий Поделиться на другие сайты Поделиться
Lord1st Опубликовано 15 октября, 2009 Жалоба Поделиться Опубликовано 15 октября, 2009 Здравствуйте, уважаемые! Помогите пожалуйста сделать лабы по выч.мату на Pascal'е Задание в прикрепленном файле.. Заранее огромное спасибо! методичка Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 15 октября, 2009 Жалоба Поделиться Опубликовано 15 октября, 2009 Lord1st: Посмотрел я лабы. Это абсолютно стандартные программы - решение уравнений таким методом, решение уравнений другим методом... Все методы классические. Достаточно в Яндексе набрать название темы лабораторной и за ним слово Pascal, как появятся ссылки на тексты нужных программ на Pascal'е. Ссылка на комментарий Поделиться на другие сайты Поделиться
MakentoIII Опубликовано 17 октября, 2009 Жалоба Поделиться Опубликовано 17 октября, 2009 тут у меня вроде простенькая задачка но не как мне не даёться Задание. Вычислить сумму ряда и функцию Y. Постановка задачи. Определив тип общего члена ряда, и организовав вычисление его суммы со структурой вложенных циклов, получить таблицу, состоящую из переменных X, Y, S, при |X|<1. вот услове http://savepic.ru/857816.jpg памагите плс оч нада и по вазможности как можно падробнее ! Предупреждение:Artur88: При регистрации вы скорей всего забыли прочитать правила форума. для дальнейшей нормальной работы на данном форуме - советую их все ж почитать Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 17 октября, 2009 Жалоба Поделиться Опубликовано 17 октября, 2009 MakentoIII: во-первых, какой язык программирования? во-вторых, что есть Y? в-третьих, какая точность для X? Побуду экстрасенсом, и попробую предположить, что: 1) язык - паскаль 2) Yi - i член ряда 3) точность для X - 0,1 program SumY;var i,n,f:integer;X,Y,S:real;begin write('n = '); readln(n); X := -0.9; while X < 1 do beginS := 0;f := 1;for i := 1 to n do begin f := f * (2 * i - 1) * (2 * i); Y := exp(2 * i * ln(2 * X)) / f; if i mod 2 = 0 then Y := Y * -1; S := S + Y; writeln('X=', X:7:2, ' Y=', Y:7:2, ' S=', S:7:2);end;X := X + 0.1; end; readlnend. и по вазможности как можно падробнееподробнее бы хотелось увидеть условия задачи, а в 20 строках кода думаю не проблема разобраться Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти