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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2014, 06:16   #1
kolyaz
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 26
По умолчанию Корректная запись в файл : Pascal

Есть код - прекрасно работает, но не могу сделать запись в файл txt ,чтоб было как в консоле
Код:
uses crt;
const 
   name='c:\example\out.txt';
   NMax=256;
procedure Gray(n:integer);
var i,j,k,p:integer;
B: array[1..NMax] of 0..1; // Битовая шкала для представления  подмножеств
F:Text;
begin 
         assign(F,name);
         Rewrite(F);
     for k:=1 to n do B[k]:=0; //Инициализация
       i:=0; write('№ '+' ');
     repeat
         
        for k:=1 to n do 
        write(B[k] );  write(F,B[k]);
        writeln( );
        i:=i+1; //i определяет число сгенерированных подмножеств
         write(i+' '+' ');
        
         p:=1;
         j:=i;
         
          while j mod 2 = 0 do //четно
        
            begin //j*2p-1 = i
                j:=j div 2; 
                p:= p+1
            end; 
            
                if p <= n then //p определяет номер изменяемого разряда
                    B[p]:=1-B[p]; 
                    until p>n;
   Close(F);                 
end;
 
begin
    var n:integer;
    
    writeln('Введите мощность  : ');
    readln(n);
    writeln('Гененерация по Грею : ');
    Gray(n);
   
    
end.
kolyaz вне форума Ответить с цитированием
Старый 02.12.2014, 07:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Каждый из write(ln) продублируй в с параметром F в начале. Будет тебе запись и туда и туда.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2014, 08:04   #3
kolyaz
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 26
По умолчанию

Вроде переделал
Код:
const 
   name='c:\example\out.txt';
   NMax=256;
var F:Text;
procedure Gray(n:integer);
var i,j,k,p:integer;
B: array[1..NMax] of 0..1; // Битовая шкала для представления  подмножеств

begin 
         assign(F,name);
         Rewrite(F);
     for k:=1 to n do B[k]:=0; //Инициализация
       i:=0; write('№ '+' ');write(F,'№ '+' ');
     repeat
         
        for k:=1 to n do 
        write(B[k] );  write(F,B[k]);
        writeln( );writeln(F,'');
        i:=i+1; //i определяет число сгенерированных подмножеств
         write(i+' '+' ');write(F,i+' '+' ');
        
         p:=1;
         j:=i;
         
          while j mod 2 = 0 do //четно
        
            begin //j*2p-1 = i
                j:=j div 2; 
                p:= p+1
            end; 
            
                if p <= n then //p определяет номер изменяемого разряда
                    B[p]:=1-B[p]; 
                    until p>n;
                    Close(F);
end;

begin
    var n:integer;
    
    writeln('Введите мощность  : ');
    readln(n);
    writeln('Гененерация по Грею : ');
    Gray(n);
   
    
end.
но все равно в файле txt:
№ 0
1 0
2 0
3 0
4 1
5 1
6 1
7 1
8
Адолжно быть:
№ 000
1 100
2 110
3 010
4 011
5 111
6 101
7 001
8
kolyaz вне форума Ответить с цитированием
Старый 02.12.2014, 08:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Адолжно быть:
А в консоли как? Переделано вроде верно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2014, 08:13   #5
kolyaz
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 26
По умолчанию

В консоле :
№ 000
1 100
2 110
3 010
4 011
5 111
6 101
7 001
8
Изображения
Тип файла: jpg Безымянный.jpg (7.2 Кб, 117 просмотров)

Последний раз редактировалось kolyaz; 02.12.2014 в 08:18.
kolyaz вне форума Ответить с цитированием
Старый 02.12.2014, 08:19   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Будь внимательнее:
Код:
        for k:=1 to n do begin
         write(B[k] );  write(F,B[k]);
        end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2014, 08:27   #7
kolyaz
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 26
По умолчанию

Спасибо большое!
kolyaz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректная работа программы heret1c Помощь студентам 2 17.05.2014 23:50
(turbo pascal) Генерация 37 случайных чисел (0..1, real)и запись их в файл в формате ХХ,ХХ. bikmai4ik Помощь студентам 7 05.12.2013 16:07
Не корректная работа Darth_Vader C# (си шарп) 2 20.05.2012 07:52
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27