Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
eldarovich88 мдя, делать мульты в паскале - это жестко Мой тебе совет, юзай OpenGL/DX + Delphi/VC++, или уж флэш какой-нибудь.
PS а так, если я правильно понял, то режимы должны чередоваться. Тогда сделай логическую переменную и после каждого прохода цикла отрисовки инвертируй ее, а в начале цикла проверяй ее значение и соответственно выбирай вариант отрисовки.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Lord_of_Darkness да я не мульт делаю, я ж не мазохист:)) Просто в универе РГЗ задали "движение объекта в паскале, вывести изображение в различных режимах"
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
eldarovich88Ох уж мне эти универы... У самого древности с 98-м мастдаем стоят, которые матлаб по 5минут грузят. И паскаль изучали тоже, и еще С чуть-чуть. Никакого технического прогресса К слову сегодня в спортмастере был, там комп стоит типа база с товарами... Смотрю на экран и аж ностальгия накатила - старый добрый нортон командер! Ну ладно, без лирики, я правильно понял что нужно? Т.е. делаешь цикл на необходимое кол-во режимов вывода, переменную-счетчик, и проверку типа:
Код:
case sGrMode of 0: <инициализация первого граф. режима>; 1: <инициализация второго граф. режима>; . . . . . . end;
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Блин что то не воткну ни как каким образом в списке при бинарном поиске переходить на серединный элемент (односвязный список) ?
То есть если в массиве я пишу че нить типа
L:=0; R:=N;
while L<R do begin
m:=(L+R) div 2;
if а[m]<x then L:=m+1 else R:=m
end;
То как это сделать в списке (не с головы же линейный поиск устраивать )
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Russia KamRat Это не система уравнений, радуйся, ато бы вмиг познал метод Гаусса али метод простых итераций или еще чего похуже Вот, примерно так (не проверял, прям сюда пишу)
Код:
uses crt; var a, x, t, M : real; begin clrscr; write('a='); readln(a); write('x='); readln(x); write('t='); readln(t); if a*x < t then M:=4*x*x+2*x-19 else if a*x = t then M:=1/(3*x+4) else M:=-5*x; writeln('M=',M:10:2); readln; end.
Demileech Промотай просто список до нужного момента, ориентируясь по счетчику. Кол-во элементов в списке ты знаешь... Это не долго, там ведь работа с указателями.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Lord_of_Darkness Хм все понял написал, посмотри плиз все работает, НО самый последний элемени не находит
Код:
procedure find_elem_bin(value:integer; var find:boolean; var count_compare:integer); var L,R,m,n,i:integer;
begin count_compare:=0; find:=false; L:=0; R:=counter; curr:=head; n:=(L+R) div 2; m:=n; for i:=1 to (n-1) do curr:=curr^.next;
while L<R do begin if curr^.data<value then begin L:=m+1; m:=(L+R) div 2; for i:=n to (m-1) do curr:=curr^.next; n:=m; end else if curr^.data>value then begin R:=m; m:=(L+R) div 2; curr:=head; for i:=1 to m-1 do curr:=curr^.next; n:=m; end else if curr^.data=value then begin find:=true; break; end; //writeln('L=',L,' R=',R,' m=',m,' n=',n,' curr=',curr^.data); end;
подскажите, в чем трабла? тока не смейтесь, я тока учусь
Код:
uses crt; const max=3; type mytype=array[1..max] of word; var i,b,n,z,j: integer; x: mytype; procedure prost(a: integer; var c boolean); var i,p: integer; begin p:=0; c:=false; for i:=2 to a-1 do if a mod i=0 then inc(p); if p=0 then c:=true; end; begin writeln('введите число'); readln(n); for i:=1 to n do begin for b:=1 to n-1 do if (prost(b)=true) and (i mod b=0) then begin inc(z); for j:=1 to 3 do x[j]:=b; end; if z=3 then writeln(n,'(',x[1],'*',x[2],'*',x[3],')'); end; readln; end.
Member
Статус: Не в сети Регистрация: 03.01.2003 Откуда: Ростов-на-Дону
Ну первое что бросается в глаза, это то что в процедуре корява проварина второе переменная, ты пропустил двеоточие.
Второе, для выполнения этой программы, тебе нужно писать функцию, а не процедуру. Потому что ты хочешь что бы она возвращала тебе значения.
Даже если для тебе нужно только процедура, и я что не так понял, то почему ты описываешь процедуру с двумя переменными, а когда выываешь её ставьшь в неё только один аргумент?
_________________ Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!
Zеrg процедура уменя проверяет является ли число B простым
вообще задача такая:
вводится число n и в промежутке от 1 до n находятся числа имеющие ровно 3 простых множителя.
тогда такЖ
Код:
uses crt; const max=3; type mytype=array[1..max] of word; var i,b,n,z,j: integer; x: mytype; h: boolean; procedure prost(a: integer; var c: boolean); var i,p: integer; begin p:=0; c:=false; for i:=2 to a-1 do if a mod i=0 then inc(p); if p=0 then c:=true; end; begin writeln('введите число'); readln(n); for i:=1 to n do begin for b:=1 to n-1 do prost(b,h); if (h=true) and (i mod b=0) then begin inc(z); for j:=1 to 3 do x[j]:=b; end; if z=3 then writeln(n,'(',x[1],'*',x[2],'*',x[3],')'); end; readln; end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения