Dr0n4eG Опубликовано 20 июня, 2009 Жалоба Поделиться Опубликовано 20 июня, 2009 Помогите пожалуйста. Программа на borland 3.1 Программа должна рисовать график функции sin(x) на промежутках которые задаются пользователем. Вот есть одна но выдаёт ошибки : #include <iostream.h>#include <conio.h>#include <graphics.h>#include <dos.h>void DrawNumber(int,int,char*);int main(void){int gdriver=DETECT;initgraph(&gdriver,0,"e:\\bc\\bgi");if(graphresult()!=grOk){ cout<<"Ne udalos inicialrovat grafiku\n"; getch(); return 0;}int midx = getmaxx() / 2;int midy = getmaxy() / 2;setcolor(10);setfillstyle(0,10);pixel /* for(int i=0;i<50;i++){ bar(0,0,getmaxx(),getmaxy()); bar3d(midx-i, midy-i, midx+i,midy+i, i, 1); delay(25);}*/getch();} Я нашел в Интернете какуюто графическую программу может её както можно переделать ? вот текст программы: #include <graphics.h>#include <conio.h>#include <math.h>float F1(float z){return 2*sin(2*z) + 1;}float F2(float z){return pow((z+5),3)*(1+sin(z)*sin(z));}void main(){int g = DETECT, r, k, a=0, n=200, xg, yg;float b=3.14, x, dx, Mx, M1, M2;initgraph(&g, &r, "D:\\Borlandc\\BGI\0");setgraphmode(2);setbkcolor(0);outtextxy(630,245,"X");outtextxy(15,10,"Y");setcolor(7);moveto(0, 240);linerel(640, 0);setcolor(7);line(10, 0, 10, 480);setcolor(7);getch();Mx=625/3.14;M1=235/3.0;M2=235/624.0;dx=fabs((b-a)/(n-1));x=a;moveto(10, floor(M1*F1(0)) + 240); for(int i=1; i<=n; i++, x+=dx) { xg = floor(Mx*x); yg = floor(M1*F1(x)); lineto(xg + 10, yg + 240); }settextstyle(0, 0, 1);outtextxy(470, 150, "F1=2*sin(2*x)+1");getch();x=a;setcolor(7);moveto(10, floor(M2*F2(0)) + 240); for(i=1; i<=n; i++, x+=dx) { xg = floor(Mx*x); yg = floor(M2*F2(x)); lineto(xg + 10, yg + 240); }settextstyle(0, 0, 1);outtextxy(310, 430, "F2=((x+5)^3)*(1+sin^2(x))");getch();closegraph();} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Dr0n4eG: Спасибо за найденные примеры, конечно, но лучше бы без этого ужаса. К тому же они относятся к твоей задаче примерно так же, как паровозы к самолетам. Ты, кстати, не указал, программа нужна на C или C++ - Borland C++ поддерживает оба языка. Я сделал универсальную (на C, но пойдет и на C++). Рисует график синуса (границы по X задаются в радианах), выход по Enter. Далее, чтобы Borland C++ 3.1 работал с графикой, его нужно соответствующим образом настроить. Для этого в меню Вorland C++ "Options - Linker - Libraries..." надо отметить пункт "Graphics library" (по умолчанию там галочки нет), и нажать OK, естественно. Для простоты также желательно графический драйвер EGAVGA.BGI скопировать из папки BGI в папку BIN (в противном случае в команде initgraph надо вместо пустой строки в кавычках поместить путь к папке BGI, удваивая при этом обратные слеши, поскольку иначе они будут восприниматься C и C++ как служебные символы (у меня, например, это будет выглядеть "C:\\BORLANDC\\BGI") - но проще, как я уже заметил, просто скопировать этот файл в папку BIN). #include <graphics.h>#include <stdio.h>#include <math.h>int main(){int GDriver=VGA,GMode=VGAHI,ErrorCode; float x1,x2,dx; int i;printf("\nX1? "); scanf("%f",&x1); printf("\nX2? "); scanf("%f",&x2);initgraph(&GDriver,&GMode,""); ErrorCode=graphresult();if(ErrorCode!=grOk){printf("Graphics Error: %s\n",grapherrormsg(ErrorCode)); getchar();}setbkcolor(BLUE); setcolor(RED); dx=(x2-x1)/640; moveto(0,240-240*sin(x1));for(i=0;i<640;i++)lineto(i,240-240*sin(x1+i*dx));getchar(); getchar(); closegraph(); return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Dr0n4eG Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Программа нужна для C++. Я попробовал эту программу что ты сделал и даже испугался за комп ) поначалу всё пошло нормально ввёл 2 значения а потом экран стал какимто розово голубым цветом... я нажал Ентер и даже не знаю как описать то что стало с борландом ) он стал весь в мелкую сеточку а там где я водил курсором клеточки закрашивались в черный цвет ) Примерно так это выглядело ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Dr0n4eG: Это означает, что графический драйвер (этот самый EGAVGA.BGI) почему-то неправильно работает с твоей графической картой. У меня всё работает нормально. А запускаешь ты Borland из-под DOS, Windows XP или Vista? Монитор у тебя обычный или широкоформатный? Вот несколько более универсальный в отношении графических режимов вариант этой программы, хотя я буду удивлен, если что-нибудь изменится. А исходного кода любой графической программы для Borland C++ 3.1, которая работала бы с твоей графической картой, у тебя нет - можно было бы посмотреть, какой графический режим она выставляет? #include <graphics.h>#include <stdio.h>#include <math.h>int main(){int GDriver=DETECT,GMode,ErrorCode; float x1,x2,dx; int i,mx,my;printf("\nX1? "); scanf("%f",&x1); printf("\nX2? "); scanf("%f",&x2);initgraph(&GDriver,&GMode,""); ErrorCode=graphresult();if(ErrorCode!=grOk){printf("Graphics Error: %s\n",grapherrormsg(ErrorCode)); getchar();}mx=getmaxx(); my=getmaxy();setbkcolor(BLUE); setcolor(RED); dx=(x2-x1)/(mx+1); moveto(0,my/2*(1-sin(x1)));for(i=0;i<=mx;i++)lineto(i,my/2*(1-sin(x1+i*dx)));getchar(); getchar(); closegraph(); return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
pinmix Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Нужно реализовать веб страничку на которой (видимо использованием javascript) будет считаться результат введенной формулы (например 2+2) Давно таким не занимался - поэтому если скажете куда копать - может и сам сделаю, ну или если простая задачка - так буду рад увидеть ее решение. Заранее благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Слегка переделать готовый скрипт... например <HEAD><script LANGUAGE="JavaScript"><!-- This script is a modification of the one from http://javascript.internet.com -->function calc(form) {form.result.value=eval(form.expr.value);}</SCRIPT></HEAD><BODY><form><table border=3 cellspacing=2 cellpadding=5><tr><td align=center><i>Equation</i></td><td align=center><i>Result</i></td></tr><tr><td align=center><input type=text name=expr size=15></td><td align=center><input type=text name=result size=15></td></tr><tr><td colspan=2 align=center><input type=button value="Calculate!" onclick="calc(this.form)"></td></tr></table></form></center></BODY> Скопировать это в блокнот и назвать файл, например, calc.htm Ссылка на комментарий Поделиться на другие сайты Поделиться
pinmix Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Dr0n4eG Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Пробовал вообще в ДОС. Шас попробовал в Виндовс выбило такую ошибку в обеих программах я точно не понял что она значит ) но я сделал скриншот Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 21 июня, 2009 Жалоба Поделиться Опубликовано 21 июня, 2009 Это ты запускаешь для компиляции BCW.EXE? Запусти BC.EXE. Ссылка на комментарий Поделиться на другие сайты Поделиться
mhav Опубликовано 23 июня, 2009 Жалоба Поделиться Опубликовано 23 июня, 2009 Помогите пожалуйста немного переделать курсовую Я её сделал но через вариант обора дерева (через метки ) надо их заменить чем-то другим (метки использовать нельзя) Вопрос жизни и смерти Задание : Дана шахматная доска размером NxN. Написать программу, которая позволяет игроку расположить на доске М ферзей и проверяет, что ни один ферзь не бьет другого. Если это не так ,то <<неправильные ферзи >> помечаются другим цветом. var pf1,pf2,pf3,pf4,pf5,pf6,pf7,i,j,u: integer;label m6,m2,m3,m4,m5,m1;begin setcolor(10); setfillstyle(1,0); for u:=1 to 8 do begin for j:=1 to 8 do floodfill((j)*50+80,(u)*50+20,10); begin end; end; desk; {*** stavfim 1-go ferzya na stroku N2 ***}m1: pf1:=random(9-nd); repeat pf1:=random(9-nd); until pf1>0; pf2:=0;pf3:=0;pf4:=0;pf5:=0;pf6:=0;pf7:=0;t12:=1;t22:=2;t32:=3;t42:=4;t52:=5;t62:=6;t72:=7;t11:=pf1;{*** stavfim 2-go ferzya na stroku N2 ***} m2: if nd<6 then begin repeat pf2:=pf2+1; t21:=pf2; until (t21<>t11)and(t22<>t12)and(t21-t11<>t22-t12)and(t12-t21<>t22-t11); if (pf2>(8-nd))then begin pf2:=0; goto m1; end; t21:=pf2; end; {*** stavfim 3-go ferzya na stroku N3 ***}m3: if nd<5 then begin repeat pf3:=pf3+1; t31:=pf3; until (t31<>t11)and(t32<>t12)and(t31-t11<>t32-t12)and(t12-t31<>t32-t11)and (t31<>t21)and(t32<>t22)and(t31-t21<>t32-t22)and(t22-t31<>t32-t21); if (pf3>(8-nd)) then begin pf3:=0; goto m2; end; t31:=pf3; end;{*** stavfim 4-go ferzya na strotu N4 ***} m4: if nd<4 then begin repeat pf4:=pf4+1; t41:=pf4; until (t41<>t11)and(t42<>t12)and(t41-t11<>t42-t12)and(t12-t41<>t42-t11)and (t41<>t21)and(t42<>t22)and(t41-t21<>t42-t22)and(t22-t41<>t42-t21)and (t41<>t31)and(t42<>t32)and(t41-t31<>t42-t32)and(t32-t41<>t42-t31); if (pf4>(8-nd))then begin pf4:=0; goto m3; end; t41:=pf4;end; Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 июня, 2009 Жалоба Поделиться Опубликовано 23 июня, 2009 (изменено) mhav: Насчет "немного переделать" - навряд ли так может получиться. Заметно, что это еще не рабочая программа - многое недописано или не соответствует условию, не буду разбирать. Не в пример проще написать все заново. uses Graph,CRT;var i,j,m,n,k,p,GrDriver,GrMode:integer; x,y:array[1..100]of integer;procedure Barg(i,j:integer); begin Bar(i*p,j*p,(i+1)*p,(j+1)*p) end;beginWrite('n ? '); Readln(n); Write('m ? '); Readln(m);for i:=1 to m do begin Write(i:2,': y x ? '); Readln(x[i],y[i]) end;GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); k:=0; p:=Round(400/(n+1));for i:=1 to n do begin if not Odd(n) then k:=14-k; for j:=1 to n do begin k:=14-k; SetFillStyle(1,k+1); Barg(i,j) end end;SetFillStyle(1,2); for i:=1 to m do Barg(x[i],y[i]); SetFillStyle(1,14);for i:=2 to m do for j:=1 to i-1 do if(x[i]=x[j])or(y[i]=y[j])or(x[i]+y[i]=x[j]+y[j])or(x[i]-y[i]=x[j]-y[j]) then begin Barg(x[i],y[i]); Barg(x[j],y[j]); break end;i:=Ord(ReadKey)end. Сначала вводится N, потом M - количество ферзей, потом пары координат каждого ферзя (разделяются пробелом). Если не будет включаться графический режим, надо подкорректировать путь к графическому драйверу EGAVGA.BGI - он в программе задан строкой '\TP\BGI'. Изменено 23 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Ragnos Опубликовано 25 июня, 2009 Жалоба Поделиться Опубликовано 25 июня, 2009 Люди помогите плиз с такой прогой Дан массив А. Найти в нём индекс введённого числа Ссылка на комментарий Поделиться на другие сайты Поделиться
FBI Опубликовано 25 июня, 2009 Жалоба Поделиться Опубликовано 25 июня, 2009 Решить систему уравнений методом последовательных исключений Жордана-Гаусса. Прогу надо написать в Delphi. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 июня, 2009 Жалоба Поделиться Опубликовано 25 июня, 2009 (изменено) Ragnos: Два пишем, три в уме... решили. var A:array[1..100]of integer; i,m,n:integer;beginwrite('length of array? '); readln(n);for i:=1 to n do begin write('A[',i:2,'] ? '); readln(A[i]) end;writeln; write('number? '); readln(m); writeln; for i:=1 to n do if m=A[i] then writeln('index: ',i:3); readlnend. FBI: Код консольного приложения для решения системы линейных уравнений методом Жордана на Delphi я приводил в этом посте. Изменено 25 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
FBI Опубликовано 26 июня, 2009 Жалоба Поделиться Опубликовано 26 июня, 2009 Тролль: Мне нужно через форму сделать, я попытался переделать, но ничего не получилось :D если у тебя найдется время и если тебе не трудно, можешь переделать, мне ну очень надо, а сам я наврятли смогу сделать :D . Заранее огромное спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 июня, 2009 Жалоба Поделиться Опубликовано 27 июня, 2009 FBI: Приспосабливать туда GUI - дело довольно хлопотное... Посмотри на этой странице ссылку "Лабораторная работа 2. РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ ПРЯМЫМИ МЕТОДАМИ. МЕТОД Гаусса-Жордана", там есть готовый текст на Delphi в GUI, правда, насколько правильно он работает, не проверял. Ссылка на комментарий Поделиться на другие сайты Поделиться
Feur_GOR Опубликовано 28 июня, 2009 Жалоба Поделиться Опубликовано 28 июня, 2009 Здравствуйте умные мега люди) Хотелось бы программку такую...суть такая.. На всём поле 2 квадрата, каждый 3на3, в три клетки из 9 (это в одном из квадратов) мы тыкаем и на их месте появляются кленовые листочки, программа запоминает, куда мы тыкали и стирает их, тыкаем снова в трёх клётках этого же квадрата,там снова на секунду-две зажигаются кленовые листочки, затем пропадают снова. Каждый раз этот квадрат запоминает комбинации тыканий. Второй квадрат же должен выдавать вариант, который более всего вероятен по его скопленным данным. Такое вообще реально?)) Заранее спасибо, если что придумаете... У меня нет языков программирования, компиляторов, поэтому...хотелось бы в мечтах увидеть готовый .ехе Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 28 июня, 2009 Жалоба Поделиться Опубликовано 28 июня, 2009 Второй квадрат же должен выдавать вариант, который более всего вероятен по его скопленным данным. А здесь можно по-подробней. Что значит более всего вероятен??? Выдавать ту комбинацию, что встречалась больше всех. А если две комбинации встречались равное количество раз, что тогда??? Ссылка на комментарий Поделиться на другие сайты Поделиться
Feur_GOR Опубликовано 28 июня, 2009 Жалоба Поделиться Опубликовано 28 июня, 2009 (изменено) Ну значит тогда одну из них можно выдать..) Их будет оч. много, поэтому вряд ли какие-то будут одинаковое кол-во раз.. Изменено 28 июня, 2009 пользователем Feur_GOR Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 29 июня, 2009 Жалоба Поделиться Опубликовано 29 июня, 2009 А порядок нажатия имеет значение??? Всмысле 1+3+6 = 6+1+3??? Ссылка на комментарий Поделиться на другие сайты Поделиться
Feur_GOR Опубликовано 29 июня, 2009 Жалоба Поделиться Опубликовано 29 июня, 2009 В принципе нет, главное, чтобы квадрат запомнил одновременное расположение 3ёх листочков. Ссылка на комментарий Поделиться на другие сайты Поделиться
pop-punk Опубликовано 29 июня, 2009 Жалоба Поделиться Опубликовано 29 июня, 2009 Help me, please! (pascal) :censored2: 1. Текстовый файл содержит список больных и наименование их болезни. Создать файл, содержащий список больных, сгруппированных по наименованию болезни. 2. так, чтобы имена файлов для обработки брались из командной строки. Обеспечить проверку доступа к файлу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 29 июня, 2009 Жалоба Поделиться Опубликовано 29 июня, 2009 (изменено) pop-punk: По тексту задания, в файле только одно ;) наименование болезни, значит, задача уже выполнена. Аминь! Ну да ладно, предположим, что в файле больные с разными названиями болезней. Например, так: Сидоров Джон простуда Капустин Заяц холера Анананасов Ананас чума Сытина Людмила простуда Пешеморепереходященская Дуня простуда Тогда текст программы будет выглядеть так: var fi,fo:text; z:array[0..1000]of string[60]; i,j,n:integer;function sub(s:string):string; var i:integer;begin for i:=length(s) downto 1 do if s[i]=' ' then begin sub:=copy(s,i+1,length(s)-i); break end end;begin{$I-}if paramcount<2 then begin writeln('too few parameters in the command line!'); readln; halt(1) end;assign(fi,paramstr(1)); reset(fi); if ioresult<>0 thenbegin writeln('no input file!'); readln; halt(1) end; assign(fo,paramstr(2)); rewrite(fo); if ioresult<>0 then begin writeln('name of the output file is wrong!'); readln; halt(1) end; {$I+}n:=0; while not eof(fi) do begin n:=n+1; readln(fi,z[n]) end; for i:=1 to n-1 do for j:=1 to n-i do if sub(z[j])>sub(z[j+1]) then begin z[0]:=z[j]; z[j]:=z[j+1]; z[j+1]:=z[0] end;for i:=1 to n do writeln(fo,z[i]); close(fi); close(fo);end. P.S. Немного подкорректировал - убрал лишнюю переменную. Изменено 29 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 2 июля, 2009 Жалоба Поделиться Опубликовано 2 июля, 2009 Хотелось бы программку такую...суть такая.. На всём поле 2 квадрата, каждый 3на3... ...хотелось бы в мечтах увидеть готовый .ехе Почти дописал. :bye1: ...осталось листики дорисовать. Куда викладывать? Еще такой вопрос. Статистика должна начинатся заново при каждом новом сеансе, или нужно сохранять статистику, для продолжения при следующем запуске? Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 2 июля, 2009 Жалоба Поделиться Опубликовано 2 июля, 2009 Feur_GOR, выберайте листик: http://www.izosoft.ru/mc_010.htm Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти