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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 17:08   #1
spezzA
 
Регистрация: 24.11.2010
Сообщений: 6
По умолчанию

Помогите пожалуйста с решением задачи.Вроде как работает но считает не правильно.
К примеру в текстовой последовательности чисел 3 встречается 3 раза а в массиве и типизированном файле пишет 17.

Условие.

Дан текстовый файл, содержащий последовательность чисел. Переписать числа в массив и обработать

соответственно заданию. Затем переписать числа из текстового файла в типизированный файл и

обработать файл.

Задание.

Каждое число заменить на количество чисел, стоящих правее и равных ему. Если таких чисел нет, то заменить нулем. Затем удалить рядом стоящие нули, оставив один ноль.
Код:
uses
        crt;
 
procedure Init;
var
        f: text;
        q: integer;
begin
 
        writeln('0) Textovy fail:');
        assign(f, 'in.txt');
        reset(f);
        while not eof(f) do
        begin
                read(f, q);
                write(q:3);
        end;
 
        close(f);
        writeln;
        writeln;
end;
 
procedure Massiv;
var
        f: text;
        a: array[1..1000] of integer;
        n: integer;
        i, j, k: integer;
begin
        assign(f, 'in.txt');
        reset(f);
 
        n:= 0;
        while not eof(f) do
        begin
                n:= n+1;
                read(f, a[n]);
        end;
 
        close(f);
 
        for i:= 1 to n-1 do
        begin
                k:= 0;
                for j:= i+1 to n do
                        if a[j]>a[i] then
                                k:= k+1;
                a[i]:= k;
        end;
 
 
        i:= 2;
        while i<=n do
        begin
                if (a[i]=0) and (a[i-1]=0)then
                begin
                        for j:= i+1 to n do
                                a[j-1]:= a[j];
                        n:= n-1;
                end else
 
                        i:= i+1;
        end;
 
 
        writeln('1) Massiv:');
        for i:= 1 to n do
                write(a[i]:3);
        writeln;
        writeln;
 
end;
 
procedure TypFile;
var
        f: text;
        g: file of integer;
        q, w: integer;
        n: integer;
        i, j, k: integer;
begin
        n:= 0;
        assign(f, 'in.txt');
        reset(f);
        assign(g, 'in.typ');
        rewrite(g);
        while not eof(f) do
        begin
                read(f, q);
                write(g, q);
                n:= n+1;
        end;
 
        close(f);
        close(g);
 
        reset(g);
 
        for i:= 1 to n-1 do
        begin
                seek(g, i-1);
                read(g, q);
                k:= 0;
                for j:= i+1 to n do
                begin
                        seek(g, j-1);
                        read(g, w);
                        if w>q then
                                k:= k+1;
                end;
                seek(g, i-1);
                write(g, k);
        end;
 
        seek(g, 1);
        i:= 2;
        while i<=n do
        begin
                seek(g, i-1);
                read(g, q);
                seek(g, i-2);
                read(g, w);
                if (q=0) and (w=0) then
                begin
                        for j:= i+1 to n do
                        begin
                                seek(g, j-1);
                                read(g, q);
                                seek(g, j-2);
                                write(g, q);
                        end;
                        n:= n-1;
                end else
                        i:= i+1;
        end;
 
 
        seek(g, n);
        truncate(g);
 
        close(g);
 
 
        reset(g);
 
        writeln('2) Typ File:');
        while not eof(g) do
        begin
                read(g, q);
                write(q:3);
        end;
 
        close(g);
        writeln;
        writeln;
end;
 
 
 
begin
        clrscr;
        Init;
        Massiv;
        TypFile;
        readkey;
end.
Последовательность чисел в текстовом файле.

3 2 4 5 3 2 4 5 68 67 66 4 34 43 23 3 4 6 45 23 5 65

Последний раз редактировалось Stilet; 15.06.2011 в 17:12.
spezzA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не правильно считает программа baris Паскаль, Turbo Pascal, PascalABC.NET 2 11.06.2011 09:23
считает не правильно rapgamer Помощь студентам 3 15.09.2010 14:23
как правильно установить Borland Turbo Pascal 7.0 на windows vista izum.muz Софт 2 14.02.2010 11:43
Не правильно считает сумму чисел, которые находятся в файле. TheWanderer Общие вопросы C/C++ 6 17.04.2009 18:43
EXCEl не правильно считает формулу beliy-dis Microsoft Office Excel 5 30.07.2008 14:18