ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2441  
Старый 03.03.2010, 20:10
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

не знаю как ее написать, преподаватель заболел и ниче не рассказывал по теме, а другой требует тип я ничего не знаю мне над результат. вот и прошу вас чтоб мне помогли
 
Ответить с цитированием

  #2442  
Старый 03.03.2010, 20:19
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

С указателями когда-то работал? Знание в структурах, классах есть?
 
Ответить с цитированием

  #2443  
Старый 03.03.2010, 20:33
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

не знаю как ее написать, преподаватель заболел и ниче не рассказывал по теме, а другой требует тип я ничего не знаю мне над результат. вот и прошу вас чтоб мне помогли
 
Ответить с цитированием

  #2444  
Старый 03.03.2010, 20:50
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
Unhappy

неа я ток начинающий, и то не все понимаю, я не программист, мы простые экономисты....
 
Ответить с цитированием

  #2445  
Старый 03.03.2010, 23:18
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от NTFF  
неа я ток начинающий, и то не все понимаю, я не программист, мы простые экономисты....
Раз такое дело, набыдлокодю для тебя.
 
Ответить с цитированием

  #2446  
Старый 03.03.2010, 23:35
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

4p3


Зарание тебе спасибо))))))
 
Ответить с цитированием

  #2447  
Старый 03.03.2010, 23:43
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от NTFF  
4p3


Зарание тебе спасибо))))))
Уточни, пожалуйста, какой список должен быть: двунаправленный, однонаправленный? Кольцевой?
 
Ответить с цитированием

  #2448  
Старый 03.03.2010, 23:59
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

я не знаю что ты имеешь ввиду, но должна она быть типа вот такой программы

program Records;
uses
crt, strings;
const
max = 100; {максимальное допустимое количество записей в массиве}
type
{Тип данных для описания книги}
TBook = record
name : string[40]; {название}
author : string[20]; {автор}
style : string[20]; {жанр}
tom : byte; {количество томов}
year : word; {год выпуска}
end;

{Тип данных "Каталог книг" - массив из 100 книг}
TBooks = array [1..max] of TBook;

{Процедура рисование окна без рамки.
Вх.данные:
(x1,y1) - координаты верхнего левого угла окна,
(x2,y2) - координаты нижнего правого угла окна,
tc - цвет текста,
c - цвет фона окна}
procedure SngWindow(x1,y1,x2,y2,tc,c : byte);
begin
window(x1,y1,x2,y2);
textbackground(c);
textcolor(tc);
clrscr;
end;

{Процедура рисование окна с рамкой шириной в 1 символ.
Вх.данные:
(x1,y1) - координаты верхнего левого угла окна,
(x2,y2) - координаты нижнего правого угла окна,
tc - цвет текста,
c1 - цвет рамки,
c2 - цвет фона окна}
procedure DblWindow(x1,y1,x2,y2,tcolor, c1, c2 : byte);
begin
window(x1,y1,x2,y2);
textbackground(c1);
clrscr;
window(x1+1,y1+1,x2-1,y2-1);
textbackground(c2);
textcolor(tcolor);
clrscr;
end;

{Функция для отображения главного меню и выбора одного из его пунктов.
Функция возвращает значение от 1 до 5.}
function Menu : byte;
var
punkt : byte; {номер выбранного пункта меню}
er : integer; {код ошибки при преобразовании строки в число}
s : string; {строка для проверки вводимого номера пункта меню}
begin
{Закрасить весь экран черным цветом}
SngWindow(1,1,80,25,WHITE,BLACK);
{Нарисовать рабочее окно}
SngWindow(1,6,80,25,WHITE,BLUE);
{цикл выполняется до тех пор, пока пользователь не введет число от 1 до 5}
repeat
{Нарисовать окно для главного меню}
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Добавить 2.Удалить 3.Печать 4.Поиск 5.Выход');
readln(s); {ввод номера пункта меню}
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=5);
Menu := punkt; {возврат значения функции}
end;
{Функция для отображения подменю для поиска и выбора одного из его пунктов.
Функция возвращает значение от 1 до 4.}
function SubMenu : byte;
var
punkt : byte; {номер выбранного пункта меню}
er : integer; {код ошибки при преобразовании строки в число}
s : string; {строка для проверки вводимого номера пункта меню}
begin
{Закрасить весь экран черным цветом}
SngWindow(1,1,80,25,WHITE,BLACK);
{Нарисовать рабочее окно}
SngWindow(1,6,80,25,WHITE,BLUE);
{цикл выполняется до тех пор, пока пользователь не введет число от 1 до 4}
repeat
{Нарисовать окно для главного меню}
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Поиск по названию 2.Поиск по автору 3.Поиск по году 4.Выход');
readln(s); {ввод номера пункта меню}
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=4);
SubMenu := punkt; {возврат значения функции}
end;

{Процедура добавления книги в каталог книги.
Книга добавляется в конец каталога.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
size - максимальное возможное количество книг в каталоге;
Вых.данные:
если каталог полностью еще не заполнен, то в него будет добавлена
книга и n увеличится на 1, в противном случае - книга не добавляется.
mas - каталог книг;}
procedure AddRecord(var mas : TBooks; var n : byte; size : byte);
var
s : String; {строка для ввода числовых значений}
er : integer; {код ошибки при преобразовании строки в число}
begin
{проверка: есть ли еще место для новой книги в каталоге}
if (n+1 <= size) then
begin
inc(n); {увеличение количества книг в каталоге}
{ввод названия, автора и жанра книги}
write('Название книги =>'); readln(mas[n].name);
write('Автор =>'); readln(mas[n].author);
write('Жанр =>'); readln(mas[n].style);
{ввод количества томов (>0)}
repeat
write('Количество томов =>');
readln(s);
val(s,mas[n].tom,er);
until (er=0) and (mas[n].tom>0);
{ввод года издания (в диапазоне [1900;2008])}
repeat
write('Год издания =>');
readln(s);
val(s,mas[n].year,er);
until (mas[n].year >= 1900) and (mas[n].year<=2008);
writeln('Книга добавлена в каталог!');
end
else writeln('Недостаточно места в каталоге!');
end;

{Процедура печати информации о книге под номером i в каталоге}
procedure PrintRecord(var mas : TBooks; i : integer);
begin
write(i:3);
with mas[i] do
begin
write(name:23); write(author:20);
write(style:10); write(tom:10);
write(year:12);
writeln;
end;
end;

{Процедура печати содержимого всего каталога.
Вх.данные:
mas - каталог книг,
n - количество книг в каталоге}
procedure Print(var mas : TBooks; n : integer);
var
i : integer; {номер книги в каталоге}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
for i:=1 to n do
PrintRecord(mas,i);
end;

{Процедура удаления книг из каталога под названием bname.
Вх.данные:
mas - каталог книг,
n - количество книг в каталоге,
bname - название книг, которые необходимо удалить из каталога
Вых.данные:
если в каталоге имеются книги под название bname информация о
них будет распечатана и они будут удалены из каталога и
количество книг в каталоге n уменьшиться на количество удаленных книг;
если в каталоне нет книг под заданным названием на экран
не будет выводиться информация о книгах.}
procedure DelRecordByName(var mas : TBooks; var n : byte; bname : string);
var
i,j : integer; {номера книг в каталоге}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{цикл для просмотра всех книг каталога}
for i:=1 to n do
begin
with mas[i] do
{книга под номером i имеет название bname,
следовательно ее необходимо удалить из каталога}
if (name = bname) then
begin
PrintRecord(mas,i); {печать информации об удаляемой книге}
{цикл для смещения книг на одну позицию влево для
удаления книги из каталога}
for j:=i+1 to n do
mas[j-1] := mas[j];
{количество книг в каталоге уменьшилось на 1}
dec(n);
end;
end;
end;

{Процедура поиска книг по названию.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
bname - название книги, по которому необходимо осуществлять поиск книг;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах с названием bname.}
procedure FindByName(var mas : TBooks; n : integer; bname : string);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{название книги совпадает с заданным названием bname}
if name=bname then PrintRecord(mas,i);
end;

{Процедура поиска книг по автору и жанру.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
ba - автор книги;
bst - жанр книги;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах, которые написал автор ba в жанре bst.}
procedure FindByAuthor(var mas : TBooks; n : integer; ba, bst : string);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{автор книги и жанр совпадают с заданными автором ba и жанром bst}
if (author=ba) and (style=bst) then PrintRecord(mas,i);
end;

{Процедура поиска книг по году издания.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
[a,b] - период издания книг;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах, которые были изданы в период годов от а до b.}
procedure FindByYear(var mas : TBooks; n : integer; a, b : word);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{год издания книги находиться в диапазоне от а до b}
if (a<=year) and (year<=b) then PrintRecord(mas,i);
end;

var
b : TBooks; {каталог книг}
n : byte; {количество книг в каталоге}
punkt : byte; {номер пункта меню}
subpunkt : byte; {номер подпункта в пункте меню Поиск}
bookname, {название книги}
a, {автор книги}
st : string; {жанр книги}
y1,y2 : word; {диапазон годов издания книг}
s : string; {строка для ввода числовых значений}
er : integer; {код ошибки при переводе строки в число}

begin
n := 0; {в каталоге нет книг}
SngWindow(1,1,80,25,WHITE,BLACK);
repeat
punkt:= Menu; {выбор пункта меню}
case (punkt) of
1:begin {пункт Добавление книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' ДОБАВЛЕНИЕ КНИГИ В КАТАЛОГ');
AddRecord(b,n,max); {добавление книги в каталог b}
readkey;
end;
2:begin {пункт Удаление книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' УДАЛЕНИЕ КНИГ ПО НАЗВАНИЮ');
{Задание значения ключа - название книги}
write('Название книги =>');
readln(bookname);
{удаление из каталога книг по названию книги}
DelRecordByName(b,n,bookname);
readkey;
end;
3:begin {печать каталога книг}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КАТАЛОГ КНИГ');
Print(b,n); {печать в табличном виде информации о книгах в каталоге}
readkey;
end;
4:begin {пункт Поиск книг}
repeat
subpunkt := SubMenu; {выбор пункта меню по поиску книг}
case (subpunkt) of
1:begin {пункт Поиск по названию книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО НАЗВАНИЮ ');
{задание ключа поиска по названию книги}
write('Название книги =>');
readln(bookname);
{поиск книг в каталоге b по названию bookname}
FindByName(b,n,bookname);
readkey;
end;
2:begin {пункт Поиск по автору и жанру}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО АВТОРУ И ЖАНРУ');
{задание ключа поиска по автору}
write('Автор книги =>');
readln(a);
{задание ключа поиска по жанру}
write('Жанр книги =>');
readln(st);
{поиск книг в каталоге b по автору и жанру}
FindByAuthor(b,n,a,st);
readkey;
end;
3:begin {поиск по году издания}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО ГОДУ ИЗДАНИЯ ');
{цикл задания ключа поиска по году издания}
repeat
{задание ключа поиска - минимальный год}
repeat
write('Минимальный год =>');
readln(s);
val(s,y1,er);
until (er=0) and (y1>=1900); {год издания должен быть >= 1900}
{задание ключа поиска - максимальный год}
repeat
write('Максимальный год =>');
readln(s);
val(s,y2,er);
until (er=0) and (y2<=2008); {год издания должен быть <= 2008}
until (y1<y2);
{поиск книги по году издания [y1,y2] в каталоге b}
FindByYear(b,n,y1,y2);
readkey;
end;
end;
until (subpunkt = 4); {выход из подменю поиска при выборе пункта 4}
end;
end;
until (punkt = 5); {выход из программы при выборе пункта меню 5}
SngWindow(1,1,80,25,WHITE,BLACK);
end.
 
Ответить с цитированием

  #2449  
Старый 04.03.2010, 00:19
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

А.. это еще и дельфи. Я не пишу на дельфях. Ничем помочь не могу.
 
Ответить с цитированием

  #2450  
Старый 04.03.2010, 00:53
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

та нет это не делфи я запускал это на паскале.
преподаватель говорил что это паскаль
я тебе просто показую пример
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ