Синек Опубликовано 3 июля, 2008 Жалоба Поделиться Опубликовано 3 июля, 2008 tollНу раз элементарную помог бы тогда что ли, чем нотации читать. Ссылка на комментарий
Jinchuuriki Опубликовано 3 июля, 2008 Жалоба Поделиться Опубликовано 3 июля, 2008 СинекЕсли чё, в Delphi тоже можно консольные программки писать. Ты только в конце самой программы добавь оператор readln; Скажешь, что в Delphi писал и пошли вы, преподА, куда-подальше, я вам не официант, чтобы всё по формочкам раскидывать. Главное ты задачу понял, решение нашел, в Delphi разобрался. Ссылка на комментарий
toll Опубликовано 3 июля, 2008 Жалоба Поделиться Опубликовано 3 июля, 2008 СинекПринципиально не помогаю ... потому что каждый должен сам, захочешь сделаешь там большого ума не нада ... вот если задача действитьно сложная тады давай ...Здесь тебе уже готовый код дали ... осталось открыть проект, кинуть на него кнопку и мемо для вывода (можно и в табличку оформить) и написать обработку буттон клик(чуток изменив код) ... Ссылка на комментарий
Синек Опубликовано 3 июля, 2008 Жалоба Поделиться Опубликовано 3 июля, 2008 Ага спасибо уже сделал. Ссылка на комментарий
enDoffzenait Опубликовано 4 июля, 2008 Жалоба Поделиться Опубликовано 4 июля, 2008 Lakers пасиб но с этой мне уже помогл))Нужна помашь вот с этим на паскале:имеется последов. слов, нувно1. Определить, имеются ли в последовательности слова, в которых все буквы различны.2. Слова, начинающиеся с буквы ‘а’, расположить в начале последовательности, сохраняя исходный порядок следования слов.чезаерунда? Ссылка на комментарий
Lakers Опубликовано 4 июля, 2008 Жалоба Поделиться Опубликовано 4 июля, 2008 1. Определить, имеются ли в последовательности слова, в которых все буквы различны. program slova_1;uses crt;type mas=array[1..113] of string;procedure razbienie(var a:mas;var k:integer);var s:string;b:array[1..255]of byte;i,n:byte;w:set of char;begin writeln('vvedite frazu');readln(s); k:=1; n:=length(s); b[k]:=1; w:=[' ',';','.','/',',','!','"',':','<','>','(',')','[',']','{','}','*','=','-']; for i:=1 to n do if s in w then begin inc(k); B[k]:=i+1; end; b[k+1]:=n+2; for i:=1 to k do a:=copy(s,b,b[i+1]-b-1);end;function pro(s:string):boolean;var i,j:integer;f:boolean;beginif s<>'' then beginf:=true;for i:=1 to length(s) do for j:=1 to length(s) do if (s=s[j])and(i<>j)then f:=false;pro:=f end else pro:=false;end;VARA:MAS;k,i,m:integer;f:boolean;beginclrscr;razbienie(a,k);f:=false;writeln;for i:=1 to k do if pro(a)then beginf:=true;writeln(a);end;if f=false then writeln('Takix slov net');readkey;end.Вторую потом сделаю... Ссылка на комментарий
EVGeN Опубликовано 25 октября, 2008 Жалоба Поделиться Опубликовано 25 октября, 2008 Помогите с задачей на Паскале...плиз!(( Тип данных: записи.Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного разговора, которой является максимальным по продолжительности среди срочных разговоров за указанный месяц. Ссылка на комментарий
martinges Опубликовано 29 ноября, 2008 Жалоба Поделиться Опубликовано 29 ноября, 2008 имя программы;подключение библиотек;раздел типов мой_тип=запись телефон:строка(6); год,месяц,день,час,минута,код,продолжительность:целый_тип; телефон1:строка(7); категория:булева переменная;//true срочный false обычный) тариф:вещественный_тип; конец_записи;раздел переменных n,i,month:целый_тип; a:массив[индексация]элементов типа "мой_тип"; b:переменная типа "мой_тип";начало блока кода ввод количества записей(n); запрос какой требуется месяц(month); начало цикла с параметром(i от 1 до n); ввод всех полей i элемента массива; //проверка на корректность ввода параметров конец цикла; присвоим b значение первой записи массива a; начало цикла с параметром(i от 1 до n); если (month=месяцу i элемента массива a)и(разговор срочный)и(продолжительность i элемента массива a>продолжительность переменной тогда b присваиваем значение i элемента массива a; конец цикла;вывод поля дата переменной b;ожидание нажатия клавиши;конец программы. Ссылка на комментарий
Chosen One Опубликовано 3 декабря, 2008 Жалоба Поделиться Опубликовано 3 декабря, 2008 Реализация дека двумя способами: последовательным (хранение в массиве) и связным (хранение в списке).Может кто сможет помочь написать прогу, а то уже битый час сижу пиши, ну ещё попробую Ссылка на комментарий
Vanix Опубликовано 4 декабря, 2008 Жалоба Поделиться Опубликовано 4 декабря, 2008 реализация дека последовательным способом:uses crt;const n=100; m=10;type ConDec=array[1..n] of integer;var Dec1:ConDec; i:byte; elm:integer;procedure InitDec(var CurDec:ConDec); begin for i:=1 to n do Dec1:=0; end;function AmtElmInDec(CurDec:ConDec):byte; var TmpAmt:byte; begin AmtElmInDec:=0; TmpAmt:=0; for i:=1 to n do if CurDec<>0 then inc(TmpAmt) else break; AmtElmInDec:=TmpAmt; end;procedure CrtDec(var CurDec:ConDec); begin InitDec(CurDec); randomize; for i:=1 to m do CurDec:=random(100); end;procedure AddToDecUp(var CurDec:ConDec; NewElm:integer); begin for i:=AmtElmInDec(CurDec) downto 1 do CurDec[i+1]:=CurDec; CurDec:=NewElm; end;procedure AddToDecDown(var CurDec:ConDec; NewElm:integer); begin CurDec[AmtElmInDec(CurDec)+1]:=NewElm; end;procedure DelElmDecUp(var CurDec:ConDec); begin for i:=1 to AmtElmInDec(CurDec) do CurDec:=CurDec[i+1]; {CurDec[AmtElmInDec(CurDec)]:=0;} end;procedure DelElmDecDown(var CurDec:ConDec); begin CurDec[AmtElmInDec(CurDec)]:=0; end;procedure DelDec(Var CurDec:ConDec); begin InitDec(CurDec); end;procedure WriteDec(CurDec:ConDec); begin for i:=1 to AmtElmInDec(CurDec) do write(CurDec:4); writeln; end;Begin clrscr; writeln('create dec'); CrtDec(Dec1); WriteDec(Dec1); readkey; write('add element in top: new element: '); read(elm); AddToDecUp(Dec1,elm); WriteDec(Dec1); readkey; write('add element in bottom: new element: '); read(elm); AddToDecDown(Dec1,elm); WriteDec(Dec1); readkey; writeln('delete element from top'); DelElmDecUp(Dec1); WriteDec(Dec1); readkey; writeln('delete element from bottom'); DelElmDecDown(Dec1); WriteDec(Dec1); readkey; writeln('delete dec'); DelDec(Dec1); WriteDec(Dec1); readkey;End.Реализация дека связным способом:uses crt;const n=100; m=10;type PtrBoundDec=^TypeBoundDec; TypeBoundDec=record Data:integer; Next:PtrBoundDec; Prev:PtrBoundDec; end;var Top,Btm:PtrBoundDec; elm:integer; i:byte;procedure AddElmDecTop(var CurTop,CurBtm:PtrBoundDec; NewElm:integer); var TmpDec:PtrBoundDec; begin new(TmpDec); TmpDec^.Data:=NewElm; TmpDec^.Next:=nil; TmpDec^.Prev:=nil; if CurTop=nil then CurBtm:=TmpDec else begin TmpDec^.Next:=CurTop; CurTop^.Next^.Prev:=TmpDec; end; CurTop:=TmpDec; end;procedure AddElmDecBtm(var CurTop,CurBtm:PtrBoundDec; NewElm:integer); var TmpDec:PtrBoundDec; begin new(TmpDec); TmpDec^.Data:=NewElm; TmpDec^.Next:=nil; TmpDec^.Prev:=nil; if CurBtm=nil then CurTop:=TmpDec else begin TmpDec^.Prev:=CurBtm; CurBtm^.Next:=TmpDec; end; CurBtm:=TmpDec; end;procedure CrtDec(var CurTop,CurBtm:PtrBoundDec); begin CurTop:=nil; CurBtm:=nil; randomize; for i:=1 to m do AddElmDecBtm(CurTop,CurBtm,random(100)); end;procedure DelElmDecTop(var CurTop,CurBtm:PtrBoundDec); var TmpDec:PtrBoundDec; begin TmpDec:=CurTop; if CurTop^.Next=nil then begin CurTop:=nil; CurBtm:=nil; end else begin CurTop:=CurTop^.Next; CurTop^.Prev:=nil; end; Dispose(TmpDec); end;procedure DelElmDecBtm(var CurTop,CurBtm:PtrBoundDec); var TmpDec:PtrBoundDec; begin TmpDec:=CurBtm; if CurBtm^.Prev=nil then begin CurTop:=nil; CurBtm:=nil; end else begin CurBtm:=CurBtm^.Prev; CurBtm^.Next:=nil; end; Dispose(TmpDec); end;procedure WriteDec(CurTop:PtrBoundDec); var TmpDec:PtrBoundDec; begin TmpDec:=CurTop; while TmpDec<>nil do begin write(TmpDec^.Data:4); TmpDec:=TmpDec^.Next; end; writeln; end;procedure DelDec(var CurTop,CurBtm:PtrBoundDec);var TmpDec:PtrBoundDec;begin while CurTop<>nil do DelElmDecTop(CurTop,CurBtm);end;Begin clrscr; CrtDec(Top,Btm); WriteDec(Top); readkey; AddElmDecTop(Top,Btm,random(100)); WriteDec(Top); readkey; AddElmDecBtm(Top,Btm,random(100)); WriteDec(Top); readkey; DelElmDecTop(Top,Btm); WriteDec(Top); readkey; DelElmDecBtm(Top,Btm); WriteDec(Top); readkey; DelDec(Top,Btm); WriteDec(Top); readkey;End. Ссылка на комментарий
L0K1 Опубликовано 5 декабря, 2008 Жалоба Поделиться Опубликовано 5 декабря, 2008 Оффтоп: Имхо google, это классические алгоритмы не умеете их писать - идите на эконом.2Vanix, то что ты дал ему код 1 задачи, ему ну ничем не поможет... Ссылка на комментарий
haha Опубликовано 5 декабря, 2008 Жалоба Поделиться Опубликовано 5 декабря, 2008 опять же, ОФФТОПно: а что такое дек? про массивы слышал, про списки слышал, даже про стек, а про дек - нет. Ссылка на комментарий
Vanix Опубликовано 5 декабря, 2008 Жалоба Поделиться Опубликовано 5 декабря, 2008 hahaДек это разновидность списка, доступ к эдементам котогого осушествляется как с конца(дна) так и с начала(вершины), те и в начало и в конец можно добавлять элементы и удалять элементы оттуда. Ссылка на комментарий
martinges Опубликовано 5 декабря, 2008 Жалоба Поделиться Опубликовано 5 декабря, 2008 системы LIFO(стэк) FIFO(дек) вроде как азы алгоритмизации.....гыыыы надо было часть кода дать)) остальное бы он сам додумал ИМХО Ссылка на комментарий
Vanix Опубликовано 6 декабря, 2008 Жалоба Поделиться Опубликовано 6 декабря, 2008 martingesсистемы LIFO(стек), а FIFO(очередь) Ссылка на комментарий
martinges Опубликовано 6 декабря, 2008 Жалоба Поделиться Опубликовано 6 декабря, 2008 угу (first in first out), а разве дек это не двусторонняя очередь?) или я ошибся?) Ссылка на комментарий
haha Опубликовано 6 декабря, 2008 Жалоба Поделиться Опубликовано 6 декабря, 2008 как бы там нибыло, сделав добавление и удаление из середины, Избранный был бы крут. однозначно =) Ссылка на комментарий
Vanix Опубликовано 7 декабря, 2008 Жалоба Поделиться Опубликовано 7 декабря, 2008 martingesну в таком случае можно сказать что дек это двусторонний стек, и всё таки по моему дек это самостоятельная структура и не стал относить к той или иной.А что касается дисциплины обработки то здесь так же можно увидить и LIFO и FIFO.Сделать удаление и добавление из середины с уже имеющимися процедурами сделать несложноВот собственно две необходимые процедуры:procedure AddElmDecMed(var CurTop,CurBtm:PtrBoundDec; NewElm:integer; CurNum:byte); var TmpDec1,TmpDec2:PtrBoundDec; TmpI:byte; begin if CurNum=1 then begin AddElmDecTop(CurTop,CurBtm,NewElm); exit; end; TmpDec1:=CurTop; TmpI:=1; while(TmpDec1<>nil)and((TmpI+1)<>CurNum)do begin TmpDec1:=TmpDec1^.Next; inc(TmpI); end; if (TmpI begin writeln('wrong number'); exit; end; if (TmpDec1=nil)then AddElmDecBtm(CurTop,CurBtm,NewElm) else begin new(TmpDec2); TmpDec2^.Data:=NewElm; TmpDec2^.Next:=TmpDec1^.Next; TmpDec2^.Prev:=TmpDec1; TmpDec1^.Next^.Prev:=TmpDec2; TmpDec1^.Next:=TmpDec2; end; end;procedure DelElmDecMed(var CurTop,CurBtm:PtrBoundDec; CurNum:byte); var TmpDec1,TmpDec2,TmpDec3:PtrBoundDec; TmpI:byte; begin if CurNum=1 then begin DelElmDecTop(CurTop,CurBtm); exit; end; TmpDec1:=CurTop; TmpI:=0; while(TmpDec1<>nil)and((TmpI+1)<>CurNum)do begin TmpDec1:=TmpDec1^.Next; inc(TmpI); end; if TmpDec1=nil then begin writeln('wrong number'); exit; end; if TmpDec1^.Next=nil then DelElmDecBtm(CurTop,CurBtm) else begin TmpDec2:=TmpDec1^.Prev; TmpDec3:=TmpDec1^.Next; Dispose(TmpDec1); TmpDec2^.Next:=TmpDec3; TmpDec3^.Prev:=TmpDec2; end; end;если кто-нибудь сможет оптимизировать данные процедуры или написать элегантней похожие процедуры прошу выложить свои варианты здесь же Ссылка на комментарий
martinges Опубликовано 9 декабря, 2008 Жалоба Поделиться Опубликовано 9 декабря, 2008 эх ты всех распугал хмм а смысл удалять из середины? Просто задач такого рода не припомню.....По теме: не могу сообразить как отослать потоковое видео/аудио с применением indy->udp компонент. Точнее пока не соображу с какой стороны подобраться к этому) Вещание только на локалку) Ссылка на комментарий
Vanix Опубликовано 10 декабря, 2008 Жалоба Поделиться Опубликовано 10 декабря, 2008 martingesя тоже в принципе не вижу, тк дек не предусматривает доступ к элементам в середине, я просто показал haha что такое возможно )))) Ссылка на комментарий
Po$amax@ Опубликовано 15 декабря, 2008 Жалоба Поделиться Опубликовано 15 декабря, 2008 В чем тут баг?Вообще квадратик должен перемещаться по полю, закрвшивая после себя пространство, а он сразу все делает =(program game;uses crt, Graph;var t: char; pos: array [0..32, 0..32] of integer; x, y, x1, y1: integer; gm, gd: integer;begin writeln('Welcome to my game!'); writeln('Game by Pocamaxa'); { wait } delay(10000); sound(555); delay(10000); nosound; { end of start } { start new part } x1 := 0; y1 := 0; while x1<=32 do begin while y1<=32 do begin pos[x1,y1] :=0; y1:=y1+1; end; x1:=x1+1; end; x:=5; y:=5; { #32 = space } gd:=0; initgraph(gd ,gm, 'C:\BP\BGI'); while t<>#13 do begin t:=readkey; { left } if t=#37 then begin if x>0 then x:=x-1; end; { right } if t=#39 then begin if x<32 then x:=x+1; end; { up } if t=#38 then begin if y>0 then y:=y-1; end; { down } if t=#40 then begin if y<32 then y:=y+1; end; { draw pole } x1:=0; y1:=0; while x1<=38 do begin while y1<=38 do begin if ((x1=x) and (y1=y)) then begin pos[x1,y1] := 1; SetColor(11); bar(x1*8, y1*8, x1*8+8, Y1*8+8); end else begin case pos[x1,y1] of 0: setcolor(8); 1: setcolor(12); end; bar(x1*8, y1*8, x1*8+8, Y1*8+8); end; y1:=y1+1; end; y1:=0; x1:=x1+1; end; end; closegraph;end. Ссылка на комментарий
Po$amax@ Опубликовано 15 декабря, 2008 Жалоба Поделиться Опубликовано 15 декабря, 2008 проблема решена, неправильно сделал квадраты (не той процедурой) и # не так сделал.итог : http://ftp.burnet.ru/incoming/users/f1rst.EXE Ссылка на комментарий
haha Опубликовано 15 декабря, 2008 Жалоба Поделиться Опубликовано 15 декабря, 2008 до сих пор не разобрался, что идет раньше: компиляция или линкование.По поводу графики в Паскале. Есть такая тема, что приходится компилировать библиотеку EGAVGA вместе со своей программкой. Уж точно не вспомню, как делалась библиотечка, а вот строчка, чтобы потом слинковалось вместе в программе, такаяif RegisterBGIDriver(@EGAVGADriverProc)<>0 then initgraph(gd,gm,'') else halt(10);причем при компиляции егавга где-то прописывается EGAVGADriverProc без @. Нужно ввести в гуграмьлексе эту строчку, сразу найдется конкретное описание действий.А к чему я это? Просто твой файлик не работает.И еще про стек/дек/список: удаление/добавление в середину нужно было мне в курсовом, хехе, ВОТ Ссылка на комментарий
L0K1 Опубликовано 15 декабря, 2008 Жалоба Поделиться Опубликовано 15 декабря, 2008 Сначало , компиляция =)Народ, епт... Не позорьтесь забейте на использование TP7.FreePascal компилер, и никаких проблем.плюсы:1. Более продвинутый синтаксис.2. Генерит 32 разрядный код.3. Идет под лицензией GPL4. Кросплатформеный, системно независимый - dos, win32, linux,bsd и так далее..Или вообще учите C.... Ссылка на комментарий
Vanix Опубликовано 22 декабря, 2008 Жалоба Поделиться Опубликовано 22 декабря, 2008 L0K1 Здесь во первых не обсуждают приимущесто одного языка перед другими а выясняют проблеммы возникщие в процессе программирования на TP7 или Delphi, во вторых я читаю что переходить от ТР7 стоит к Delphi а не к FreePascal, но это уже совсем другая тема http://ulanovka.ru/forum/viewtopic.php?t=21876 Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти