Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 18:17   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Кавычки убрать попробуйте. Хотя вроде и с ними должно работать, мб зависит от компилятора.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 30.05.2011, 18:32   #12
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

может,убирала,и название другое давала,и убирала С,и добовлял апапку где лежит... а другой код идёт прекрасно,и написано там также...

а не можешь помочь изменить мне код ко 2-ому заданию?
есть приблизительно по зданию,но как мне кажется,там многое надо изменить,что-то удалить,а что-то добавить...

Последний раз редактировалось Novenkaja; 30.05.2011 в 18:54.
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 19:54   #13
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

Условие второго задания на записи

Cоздать программу для ввода, вывода, стирания(удаления) записей,а также для поиска по названию и для упорядочению по автору.

данные по дискам:
-автор
-название
-издатель
-год издания
-цена(ЛС,т.е. в латах)
-посчитанная ценность-возраст(в полных годах) (как я понимаю ценность этого предмета,товара)

вот начальный код(сразу говорю это не мой вариант(не мой код)) Он основан на записях книг

Код:
program faili;
    uses crt;
    type book=record
            avtor :string[12];
            nazv  :string[20];
            god   :integer;
            razdel:string[14];
        end;
        filter=record
            razdel :string[14];
            counter:integer;
        end;
    books=array[1..100] of book;

//------------------------------------------------------------------------------
Procedure writeToFile(a:books;size:integer);
    var F:text;
        i:integer;
Begin
    clrscr;
    Assign(F,'catalog.dat');
    ReWrite(F);
    For i:=1 to size do
        with a[i] do
        WriteLn(F,avtor:12,' ',nazv:20,' ',god:4,' ',razdel:14);
    Close(F);
    WriteLn('Сохранено');
    readkey;
End;
//------------------------------------------------------------------------------
Procedure findMostPopular(A:books;size:integer);
    var i,j,tmpSize,index:integer;
        B    :books;
        C    :array[1..100] of filter;
        found:boolean;
        tmp  :string[14];
Begin
    clrscr;
    tmpSize:=0;
    for i:=1 to size do
        with A[i] do
        Begin
            found:=false;
            For j:=1 to tmpSize do
                if (razdel = C[j].razdel) then
                Begin
                    inc(C[j].counter);
                    found:=true;
                    break;
                End;
            if (found = false) then
            Begin
                inc(tmpSize);
                C[tmpSize].razdel:=razdel;
                C[tmpSize].counter:=0;
            End;
        End;
        
    j:=1;
    for i:=2 to tmpSize do
        if (C[j].counter < C[i].counter) then j:=i;
        
    tmp:=C[j].razdel;
    tmpSize:=0;
    WriteLn('Cамый популярный раздел: ', tmp);
    readkey;
    
    for i:=1 to size do
        if (tmp = A[i].razdel) then
        Begin
            inc(tmpSize);
            B[tmpSize]:=A[i];
        End;
        
    if (tmpSize <>0) then writeToFile(B,tmpSize)
        else WriteLn('Список пуст!');
End;
//------------------------------------------------------------------------------
Procedure addBook(var A:books;var size:integer);
Begin
    clrscr;
    inc(size);
    with a[size] do
    begin
        Write('Автор    : ');
        ReadLn(avtor);
        Write('Название : ');
        ReadLn(nazv);
        Write('Год      : ');
        ReadLn(god);
        Write('Раздел   : ');
        ReadLn(razdel);
    end;
End;
//------------------------------------------------------------------------------
Procedure retrieve(A:books;size:integer);
    var i:integer;
Begin
    clrscr;
    writeln('       Автор             Название  Год         Раздел');
    for i:=1 to size do
        with A[i] do
        begin
            WriteLn(avtor:12,' ',nazv:20,' ',god:4,' ',razdel:14);
        end;
    readkey;
End;
//------------------------------------------------------------------------------
Procedure printMenu;
Begin
    clrscr;
    WriteLn('------ Библиотека -------');
    WriteLn('1: Добавить книгу');
    WriteLn('2: Отпечатать список книг');
    WriteLn('3: Сохранить библиотеку');
    WriteLn('4: Фильтровать по разделу');
    WriteLn('0: Выход');
    WriteLn;
    Write('Ваша команда: ');
End;
//------------------------------------------------------------------------------
    var A   :books;
        key :char;
        size:integer;
begin
    Repeat
    printMenu;
    key:=readkey;
    Case key of
        #49:addBook(A,size);
        #50:retrieve(A,size);
        #51:writeToFile(A,size);
        #52:findMostPopular(A,size);
    End;
  Until key=#48;

end.
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 19:55   #14
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

и его надо переделать и доделать под моё задание с дисками...

вот как я его пока изменила
(терминология на моём языке,но идёт в таком порядке всё,как в условии задания,где всё на русском)

Код:
program uzd_10;
    uses crt;
    type disk=record
            autors:string[12];
            nosaukums:string[20];
            gads:integer;
            izdevejs:string[14];
            cena:real;
            vertiba:byte;
        end;
        filter=record
            izdevejs :string[14];
            counter:integer;
        end;
    disks=array[1..100] of disk;

//------------------------------------------------------------------------------
Procedure writeToFile(a:disks;size:integer);
    var F:text;
        i:integer;
Begin
    clrscr;
    Assign(F,'disk.txt');
    ReWrite(F);
    For i:=1 to size do
        with a[i] do
        WriteLn(F,autors:12,' ',nosaukums:20,' ',izdevejs:14,' ',gads:4,' ',cena:4,' ',vertiba:4);
    Close(F);
    WriteLn('Save');
    readkey;
End;
//------------------------------------------------------------------------------
Procedure findMostPopular(A:disks;size:integer);
    var i,j,tmpSize,index:integer;
        B    :disks;
        C    :array[1..100] of filter;
        found:boolean;
        tmp  :string[14];
Begin
    clrscr;
    tmpSize:=0;
    for i:=1 to size do
        with A[i] do
        Begin
            found:=false;
            For j:=1 to tmpSize do
                if (izdevejs = C[j].izdevejs) then
                Begin
                    inc(C[j].counter);
                    found:=true;
                    break;
                End;
            if (found = false) then
            Begin
                inc(tmpSize);
                C[tmpSize].izdevejs:=izdevejs;
                C[tmpSize].counter:=0;
            End;
        End;
        
    j:=1;
    for i:=2 to tmpSize do
        if (C[j].counter < C[i].counter) then j:=i;
        
    tmp:=C[j].izdevejs;
    tmpSize:=0;
    WriteLn('Vispopularais izdevejs: ', tmp);
    readkey;
    
    for i:=1 to size do
        if (tmp = A[i].izdevejs) then
        Begin
            inc(tmpSize);
            B[tmpSize]:=A[i];
        End;
        
    if (tmpSize <>0) then writeToFile(B,tmpSize)
        else WriteLn('Saraksta nav!');
End;
//------------------------------------------------------------------------------
Procedure adddisk(var A:disks;var size:integer);
Begin
    clrscr;
    inc(size);
    with a[size] do
    begin
        Write('Autors    : ');
        ReadLn(autors);
        Write('Nosaukums : ');
        ReadLn(nosaukums);
        Write('Izdevejs      : ');
        ReadLn(izdevejs);
        Write('Izdosanas gads   : ');
        ReadLn(gads);
        Write('Cena  : ')  ;
        Readln(cena);
        Write('Aprekinata vertiba-vecums : ');
        Readln(vertiba);
    end;
End;
//------------------------------------------------------------------------------
Procedure retrieve(A:disks;size:integer);
    var i:integer;
Begin
    clrscr;
    writeln('      Autors Nosaukums Izdevejs Gads Cena Vertiba');
    for i:=1 to size do
        with A[i] do
        begin
            WriteLn(autors:12,' ',nosaukums:20,' ',izdevejs:14,' ' ,gads:4,' ',cena:4,' ',vertiba:4);
        end;
    readkey;
End;
//------------------------------------------------------------------------------
Procedure printMenu;
Begin
    clrscr;
    WriteLn('------ Dati pa diskiem -------');
    WriteLn('1: Autors');
    WriteLn('2: Nosaukums');
    WriteLn('3: izdevejs');
    WriteLn('4: Izdosanas gads');
    WriteLn('5: Cena');
    WriteLn('6: Aprekinata vertiba (vecums)');
    WriteLn('0: Exit');
    WriteLn;
    Write('Jusu komanda: ');
End;
//------------------------------------------------------------------------------
    var A   :disks;
        key :char;
        size:integer;
begin
    Repeat
    printMenu;
    key:=readkey;
    Case key of
        #49:adddisk(A,size);
        #50:retrieve(A,size);
        #51:writeToFile(A,size);
        #52:findMostPopular(A,size);
    End;
  Until key=#48;

end.
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 21:07   #15
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

задание на файлы уже не надо-есть,нужно только на записи!!!!
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 22:25   #16
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Что касается первого задания, то там не нужно самому создавать файл сумма. Он создастся автоматически. Может в этом проблема у тебя.
По второму заданию: какая конкретно процедура у тебя не работает?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 30.05.2011, 22:30   #17
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

нет,всё равно не идёт,даже если есть этот код в пасе и матрица в матрикс.тхт...
но у меня уже в другом виде етсь это задание,прадво хотелось этот доработать,чтобы как запасной тоже был,но ничего не поделаешь((((

у меня есть и ран и компайл,но нету стирания(удаления) записей,а также для поиска по названию и для упорядочению по автору. этой часи.....
ка я понимаю спикос всего,что относится к дискам у меня есть,это показывает ран,Юввод и вывод тоже есть....

но не нравится мне оьше всего то,что записи идут через файл....а о файлах в заднии ничего не сказано,оно по записям!!!!!!

мне это катострафически нужно в ближайшее время,я до 24:00 по московскому времени долдна это отправить преподователю!!!!
а из-за этого задания тормозит отправка всей работы!!!!!!
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 22:42   #18
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
но не нравится мне оьше всего то,что записи идут через файл.
Это легко переделать. Вот так можно ввести c клавиатуры и вывести запись на экран
Код:
  Write('Kol zapisey ');
  Readln(N);
 For i:=1 to N do
 with disks[i] do
    begin
        Write('Autors    : ');
        ReadLn(autors);
        Write('Nosaukums : ');
        ReadLn(nosaukums);
        Write('Izdevejs      : ');
        ReadLn(izdevejs);
        Write('Izdosanas gads   : ');
        ReadLn(gads);
        Write('Cena  : ')  ;
        Readln(cena);
        Write('Aprekinata vertiba-vecums : ');
        Readln(vertiba);
    end;
  For i:=1 to N do with Discs[i] do
  Writeln(autors,'    ',nosaukums,'     ',gads,'      ',izdevejs,'        ',cena,'     ',vertiba)
Поиск по названию примерно так
Код:
Readln(Iskomoe);
For i:=1 to N do with discs[i] do
If Iskomoe = nosaukums then  Writeln(autors,'    ',nosaukums,'     ',gads,'      ',izdevejs,'        ',cena,'     ',vertiba)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 30.05.2011 в 22:48.
GetMax вне форума Ответить с цитированием
Старый 30.05.2011, 22:45   #19
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

попробую

а на это

стирания(удаления) записей,а также для поиска по названию и для упорядочению по автору.

написать можешь?
пожалуйста
Novenkaja вне форума Ответить с цитированием
Старый 30.05.2011, 23:06   #20
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Сортировка по автору
Код:
var
   buf:disk;
  Obmen:Boolean;
Begin
   k:=n;
  Repeat
    Obmen:=False;
    For i:=1 to k-1 do
    If disks[i].autors > disks[i+1].autors then
    Begin
      buf:=disks[i];
      disks[i]:=disks[i+1];
      disks[i+1]:=buf;
      Obmen:=True;
    End;
    dec(k)
  Until Not Obmen;
End.
Поиск по названию уже написал. Смотри выше
Ну и удаление записи по ее номеру
Код:
Write('Kakuu zapis udalit?');
 Readln(Number);
 If Number > N then writeln('Error')
 Else
 For i:=Number+1 to N do
 Begin
   Disks[i]:=Disks[i+1];
   Dec(N)
 End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 30.05.2011 в 23:16.
GetMax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифровка и расшифровка через текстовые файлы в Паскале Novenkaja Помощь студентам 21 25.05.2011 08:32
задача на паскале тема текстовые файлы, записи шушара Паскаль, Turbo Pascal, PascalABC.NET 4 19.04.2011 20:15
Текстовые файлы в паскале. Как всегда нужна помощь=))) Leona180991 Помощь студентам 5 04.08.2010 17:08
текстовые файлы в паскале MetR Помощь студентам 9 12.06.2010 10:38
Текстовые файлы в паскале Nc1ty_SoBoL Помощь студентам 2 30.06.2009 19:49