Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
1488.
андрей
(27.12.2007 16:50)
0
ну я толком не знаю, чтозаписи можно было добавлять, ФИО, телефон , что бы поля записей были.
Ответ: Вот в чем вопрос: если число ограничено (максимальное число определено заранее), то удобнее массив (array), если нет - то список (но его придется потом объяснять). Сделаю с массивом - завтра пришлю
|
1487.
Baxtiyor
(27.12.2007 16:35)
0
Здраствуйте Борис. Помоги пожайлуста еще с одной задачкой:Даны натуралъное число n действителъные числа x1,...,xn.Если последователъностъ x1,...,xn упорядочено по неубыванию (т.е. если х1<x2<...<xn), то оставитъ без изменения. Иначе получитъ последователъностъ xn,...,x1. Для решения этой задачи должни ползоватся спиской. Спосибо за помощъ. Бахтиер.
Ответ: Вот так? ---- TYPE PNode = ^TNode; TNode = record s: Integer; Next: PNode; end; var Root: PNode;
function Create(value: Integer): PNode; var p: PNode; begin p:=nil; New(p); p^.S:=value; p^.Next:=nil; Create:=p end;
procedure PrintOne(r: PNode); begin if r = nil then Exit; WriteLn(r^.s); end;
procedure PrintAll(r: PNode); begin if r = nil then Exit; repeat PrintOne(r); r:=r^.Next until r = nil; end;
procedure Add(var root: PNode; value: Integer); var p: PNode; begin if root = nil then root:=Create(value) else begin p:=root; while p^.Next <> nil do p:=p^.Next; p^.Next:=Create(value); end end;
procedure AddFromKB(var r: PNode); var v, res: Integer; begin repeat Write(''Введите целое число ''); {$I-} ReadLn(v); {$I+} res:=IOResult; if res <> 0 then WriteLn(''Ошибка ввода''); until res = 0; Add(r, v); end;
procedure Sort(var r: PNode); var p, q, max: PNode; temp: Integer; begin if r = nil then Exit; p:=r; while (p <> nil) do begin max:=p; q :=p^.Next; while q <> nil do begin if max^.s > q^.s then max:=q; q:=q^.Next end; if max <> p then begin temp:=p^.s; p^.s := max^.s; max^.s:=temp; end; p:=p^.Next end; end;
procedure Destroy(var r: PNode); var p: PNode; begin if r = nil then Exit; while r^.Next <> nil do begin p:=r^.Next; Dispose(r); r:=p end; Dispose(r) end;
VAR p: PNode; i, n: Integer; BEGIN WriteLn; { WriteLn(MemAvail);} Root:=nil; Write(''Введите количество чисел n: ''); ReadLn(n); for i:=1 to n do AddFromKB(Root); PrintAll(root); WriteLn(''----------''); sort(Root); PrintAll(root);
Destroy(Root); { WriteLn(MemAvail);} END.
|
1486.
андрей
(26.12.2007 14:12)
0
помогите задачу решить. Телефонный справочник. Составить программу формирования данных об абонентах телефонов: Ф.И.О., телефон. Организовать поиск телефона по фамилии абонента, выдаваемый список упорядочить по первой букве фамилии. Реализовать в виде модуля набор подпрограмм для: 1) Добавления записей в массив (справочник) 2)Вывод на экран полученного массива 3) Упорядочивание массива по заданному полю
Ответ: А справочник в виде массива (array) или в виде списка?
|
1485.
Санёк
(25.12.2007 21:07)
0
Привет!!!!! Не знаю,как у вас, а у меня появилось желание скинуть вам игрушку,которую я сам написал.Розпечатывать ее тут неудобно,поэтому я прошу зайти на мой сайт(Тот,что вверху) и скачать игрушку.(Небольшая) PS:Укажите,плиз,когда вы "лазите" в инете? И еще:мозно поменяться ссылками?
Ответ: :)) Слазил и письмо написал
|
1484.
вадим
(23.12.2007 11:22)
0
помоги пожайлуста еще с одной задачкой: Дано целое число N(>1) последовательность вещественных чисел Ак определяется слейдущим образом А1=1, А2=2, А3=3, Ак=(Ак-2+2*Ак-1)/3, к=3,4... . Вывести элементы А1, А2,...,Аn.
Ответ: Это несложно, если не нужно хранить массив (последовательность) - в том случае могут появиться проблемы с размером памяти под массив Вот: --- var N, count: Word; a1, a2, a3, a: Longint;
BEGIN Write(''Введите число чисел в последовательности (от 4 до 65535): ''); ReadLn(N); count:=3; a1:=1; a2:=2; a3:=3; Write(a1:8, a2:8, a3:8); repeat a:= a1 + 2*a2; Write(a:8); a1:=a2; a2:=a3; a3:=a; inc(count); until (count > N) or (count = 0); {Если отключить проверку на принадлежность диапазону, так обычно и есть, то если к 65535 прибавить 1, то получим 0} END.
|
1483.
Санёк
(22.12.2007 22:35)
0
ВНИМАНИЕ! Кто хочет сыграть в игру,которуя я написал? Просто копируйте линк в панель адреса: http:www.smt-meneger.narod.rutp7gameszomor.rar Сразу говорю,вирусов нету! (Плиз опублийте это сообщение)
Ответ: Конечно, активизировал и, судя по нашему с Саньком, обмену мнениями - рекомендую Сам еще не смотрел - дел до этой самой ....
|
1482.
вадим
(22.12.2007 11:02)
0
помогите пожайлуста задачку решить в TP. Дан текстовый файл если в тексте 2 пробела сделать чтоб был один. заранее спасибо
Ответ: Это можно сделать так: ----- var t, tout: Text; {будем записывать модифицированные строки в tout, а потом старый удалим, а новый переименуем в старый} s: String; BEGIN Assign(t, ''test.txt''); Assign(tout, ''test.bak'');
Reset(t); Rewrite(tout); while NOT EOF(t) do begin ReadLn(t, S); While POS('' '', S) <> 0 do delete(S, POS('' '',S), 1); {POS определяет положение подстроки в строке. Если есть такие, то один из них удаляем} WriteLn(tout, S); {Записываем модифицированную строку в новый файл} end; Flush(tout); Close(t); Erase(t); {Закроем старый и удалим} Close(tout); Rename(tout,''test.txt''); {Переименуем новый в старый} END.
|
1481.
Baxtiyor
(20.12.2007 18:17)
0
Здраствуйте Борис Вычислит по схеме Горнера значение многочлена с ратционалными коффициентами для данного ратционалного значения переменной.Считатъ,что числители и знаменатели коффициентов записаны в файле f: вначале числителъ и знаменател старшего коффициента и т.д.,в последнюю очередъ числителъ и знаменателъ свободного члена. Зарание спосибо.Бахтиер.
Ответ: Нужно уточнить: 1) где значение переменной? Какого она типа? 2) Эти числители и знаменатели - целые числа? 3) Название файла фиксировано или нужно вводить?
|
1480.
Санёк
(20.12.2007 17:24)
0
Я вам не надоел?У меня вопрос.Как сменить атрибуты у файла(Это мне нужно,чтобы некоторые не срывали игру)?
Ответ: USES DOS; { ReadOnly $01 Hidden $02 SysFile $04 VolumeID $08 Directory $10 Archive $20 AnyFile $3F }
CONST FileAsCopy = ''''san02a.exe''''; VAR fout: File; BEGIN Assign(fout, FileToRead); SetFAttr(fout, ReadOnly); END. ===== Важно, чтобы файл существовал и не был открыт
|
1479.
Санёк
(20.12.2007 17:15)
0
Здасте!Это я еще черт знает какой раз к вам обращаюсь.У меня слудующая проблема.Я пишу иргу.Но после того,как сеть оборвалась(в игре) надо удалять файл с списком игроков.Как это зделать(Удалить файл целиком и полностью)?
Ответ: Это делает команда ERASE, но если нужно удалить файл БЕЗ ВОЗМОЖНОСТИ ВОССТАНОВЛЕНИЯ, его нужно "пробить" по всей длине чем-нибудь, например, нулями, как в примере ============= USES DOS; CONST FileName = ''san02.txt''; d: Byte = 0; VAR fout: File of Byte; i, size: LongInt; BEGIN Assign(fout, FileName); {$I-} Reset(fout); {$I+} if IOResult <> 0 then begin WriteLn(''Не могу открыть файл '', FileName); Halt(1) end; size:=FileSize(fout); WriteLn(size); for i:=1 to size do Write(fout, d); Close(fout); {$I-}Erase(fout); {$I+} if IOResult <> 0 then WriteLn(''Не могу удалить '', FileName); END.
|
1478.
Iner
(20.12.2007 08:30)
0
Привет еще раз не поможете еще пару задачек решить?) 1. Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.
2. Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры.
Ответ: Вот решение обеих простым перебором (наверно так нужно решать?) ---- {Простым перебором} var i, k, sum, sum2, prod: Integer; BEGIN for i:=10 to 99 do begin sum:= i div 10 + i mod 10; for k:=2 to 9 do begin prod:= i*k; sum2:=0; while prod <> 0 do begin sum2 := sum2 + prod mod 10; prod := prod div 10 end; if sum = sum2 then write(i:3, k:3,'' ''); end; end; WriteLn; for i:= 100 to 999 do begin sum := i div 10; {Двузначное} sum2 := i mod 10; {Однозначное} if sum*sum - sum2*sum2 = i then Write(i:6); end; WriteLn; END.
|
1477.
Санёк
(19.12.2007 15:29)
0
Блин!Вы меня не поняли.Я имел в виду,как делать это програмно?Тоисть программа копирует файл сама
Ответ: Ну так писать надо ... (А ICQ зачем спрашивал?) вот так можно копировать абсолютно любой файл любого размера -- CONST FileToRead = ''san02.pas''; FileAsCopy = ''san02.txt''; VAR fin, fout: File; buf: array[1..1024] of byte; readed: Integer; BEGIN Assign(fin, FileToRead); {$I-} Reset(fin, 1); {$I+} if IOResult <> 0 then begin WriteLn(''Не могу открыть файл '', FileToRead); Halt(1) end; Assign(fout, FileAsCopy); Rewrite(fout, 1); repeat BlockRead(fin, buf, sizeof(buf), Readed); if readed <> 0 then BlockWrite(fout, buf, readed, readed) else Break until FALSE; Close(fin); Close(fout); END.
|
1476.
Санёк
(18.12.2007 21:49)
0
Подскажите,плиз,как копировть файлы в турбо паскале? Отдаюсь с руками и ногами!
Ответ: Копировать: 1) Выделяешь в Windows; 2) Нажимаешь в среде разработки Pascal Ctri+O+I - чтобы не было автоматических отступов: 3) Заходишь в системное меню (иконка слева в самом верху окна (в оконном представлении)) и выбираешь пункт "Изменить -> Вставить" 4) Опять Ctrl+O+I PS: Чтобы были русские буквы, в обоих окнах должна быть включена одинаковая раскладка клавиатуры (на некоторых машинах)
ЗЫ: BP.EXE лучше TURBO. BP.EXE лучше ведет себя под виндами, он, по крайней мере, знает о существовании их. И В ЛЮБОМ СЛУЧАЕ: переходи на FreePascal - это современный продукт
|
1475.
Baxtiyor
(18.12.2007 19:18)
0
Здраствуйте Борис!. Спосибо за решение задачи и за вни мание.Если будетъ трудно с задачами,к Вам можно обратит ся. Бахтиер.
Ответ: Конечно. Тем более, что и адрес почты моей Вы знаете
|
1474.
Санёк
(18.12.2007 18:32)
0
А можно у вас организовать рекламу?Или обменятся ссылками?А?
Ответ: За это отвечает другой человек - спишусь - отвечу
|
|
|
|