Помогите дорешать задачу на Турбо Паскале!

Тема в разделе "Delphi - FAQ", создана пользователем Maxxy, 12 апр 2007.

Статус темы:
Закрыта.
  1. Maxxy

    Maxxy Гость

    Помогите в решении задачи!Турбо Паскаль выдает что файл не найден!Не пойму что не так!И вообще,правильно ли я составил программу!? Заранее спасибо!

    Типизированные файлы.
    Дан файл целых чисел. Вывести количество содержащихся в нем серий (то
    есть наборов последовательно расположенных одинаковых элементов).


    Program Z;
    Var
    F:File of integer;
    X,Xs,Kol:integer;
    Seria:boolean;
    begin
    Assign(F,'C:Ser');
    {$I-}
    Reset(F);
    {$I+}
    Read(F,Xs);
    Seria:=False;
    Kol:=0;
    While not eof(F) do
    begin
    Read(F,X);
    If (X=Xs) and (not Seria) then
    begin
    Seria:=True;
    Kol:=Kol+1;
    end;
    If X<>Xs then
    begin
    Read(F,Xs);
    Seria:=False;
    end;
    End;
    Close(F);
    write(Kol);
    end.
     
  2. pinhead

    pinhead Гость

    Не знаю, может мой ответ для Макси будет уже не актуален. Но т.к. ответов не было то ОТВЕЧУ! :(
    А выдаёт т.к. процедура Assign(F,'C:Ser'); записана с ошибкой (параметр C:Ser ). Не проверял правильно ли написана у тебя программа, но у меня имеется свой код.
    Даже если он тебе уже не понадобится, но для других может быть полезен! :p
    Код (Text):
    Program FindSeries;

    uses
    CRT;

    var
    MakeSeries: word;
    FileName: string;
    F: File of integer;

    procedure Error;
    begin
    TextColor(Red);
    write('Ошибка!!!');
    readln;
    halt
    end;

    procedure EnterData;
    begin
    ClrScr;
    write('Введите количество серий|->');
    readln(MakeSeries);
    write('Введите имя файла, в котором будут хранится числа|->');
    readln(FileName)
    end;

    function CreateTypeFile: word;
    var
    ValueOfNombers, Count, i, j: word;
    NomberInSeria, TempNomberInSeria: integer;
    Dir: string;

    begin
    GetDir(0, Dir);
    Dir:= Dir +'\' + FileName;
    Assign(F, Dir);
    {$I-}
    Rewrite(F);
    {$I+}
    if IOResult <> 0 then Error;
    randomize;
    Count:= 0;
    NomberInSeria:= 0;
    ValueOfNombers:= Random(10) + 2;
    TempNomberInSeria:= NomberInSeria;
    for j:= 1 to ValueOfNombers do
    begin
    NomberInSeria:= Random(100);
    if Random(2) = 0 then
    NomberInSeria:= -NomberInSeria;
    if TempNomberInSeria <> NomberInSeria then
    begin
    write(F, NomberInSeria);
    Inc(Count);
    TempNomberInSeria:= NomberInSeria
    end
    end;
    for i:= 1 to MakeSeries do
    begin
    ValueOfNombers:= Random(10) + 2;
    NomberInSeria:= Random(100);
    if Random(2) = 0 then
    NomberInSeria:= -NomberInSeria;
    for j:= 1 to ValueOfNombers do
    begin
    write(F, NomberInSeria);
    Inc(Count)
    end;
    NomberInSeria:= 0;
    ValueOfNombers:= Random(10) + 2;
    TempNomberInSeria:= NomberInSeria;
    for j:= 1 to ValueOfNombers do
    begin
    NomberInSeria:= Random(100);
    if Random(2) = 0 then
    NomberInSeria:= -NomberInSeria;
    if TempNomberInSeria <> NomberInSeria then
    begin
    write(F, NomberInSeria);
    Inc(Count);
    TempNomberInSeria:= NomberInSeria
    end
    end
    end;
    CreateTypeFile:= Count;
    Close(F)
    end;

    procedure ReadTypeFile;
    var
    Temp, i: integer;
    begin
    Reset(F);
    i:= 0;
    while not EOF(F) do
    begin
    Read(F, Temp);
    write(Temp, ' ')
    end;
    Close(F)
    end;

    function fFindSeries: word;
    var
    Value1, Value2: integer;
    Col: word;
    begin
    Reset(F);
    Col:= 0;
    Read(F, Value1);
    Seek(F, 1);
    while not EOF(F) do
    begin
    Read(F, Value2);
    if Value1 = Value2 then
    begin
    Inc(Col);
    while Value1 = Value2 do
    begin
    Value1:= Value2;
    Read(F, Value2)
    end
    end;
    Value1:= Value2
    end;
    Close(F);
    fFindSeries:= Col;
    end;

    begin
    EnterData;
    writeln('Количество элементов файла|-> ', CreateTypeFile);
    writeln('Количество серий|-> ', fFindSeries);
    writeln;
    writeln('Значения, хранящиеся в файле: ');
    ReadTypeFile;
    readln;
    end.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей