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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 23:42   #1
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию Оператор повторения

Приветствую программеры, есть у меня проблема.
Код:
var
 i,j,n:integer;
 s:string;
  f:textfile;
begin
Write('Вводим количество символов в "абракадабре" ');
Readln(n);
 randomize;
 s:='';
 for j:=1 to n do
 begin
 i:=random(3);
 if i=0 then
 s:=s+chr(random(13)+ 48)else
  if i=1 then
 s:=s+chr(random(65)+62)else
  if i=2 then
 s:=s+chr(random(15)+33);
end;
writeln(s);
assign(f,'qwerty.txt');
rewrite(f);
writeln(f,s);
close(f);
Readln;
end.

Нужно сделать так что бы прога повторялась N раз и при этом новый результат писался в строке ниже. Пробовал через оператор повторения, выполняет, только все в 1 строку сливает и получается строка с огромным набором символов.

Вот попытка реализовать через оператор повторения:
var
 i,j,n,k,g :integer;
 s:string;
  f:textfile;
begin
Write('Сколько раз повторить прогу?');
Readln(g);
Write('Вводим количество символов в "абракадабре" ');
Readln(n);
randomize;
 s:='';
 for j:=1 to n do
 for k:=1 to g do
begin
 i:=random(3);
 if i=0 then
 s:=s+chr(random(13)+ 48)else
  if i=1 then
 s:=s+chr(random(65)+62)else
  if i=2 then
 s:=s+chr(random(15)+33);
 s:=s+chr(10)+chr(13);
end;
writeln(s);
assign(f,'qwerty.txt');
rewrite(f);
writeln(f,s);
close(f);
Readln;
end.

Последний раз редактировалось Stilet; 18.01.2010 в 10:53.
White_foxSA вне форума Ответить с цитированием
Старый 17.01.2010, 23:56   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Толком не понял, что надо сделать, но смысл вроде вот такой:
Код:
var
  i,j,n:integer;
  s:string;
begin
Write('Вводим количество символов в "абракадабре" ');
Readln(n);
randomize;
s:='';
for i := 0 to n - 1 do
  begin
    s := s + chr(random(65)+62);
    writeln(s);
  end;
  readln;
end.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 19.01.2010, 15:17   #3
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию

попробую обьяснить, программа генерирует случайную строку из N числ.
Получается, что в файле только 1 сгенерированная строка.
А мне нужно что бы программа генерировала и писала в файл новую строку
и перед этим отступала на новую строку, короче выполняла команду Enter'a в коде ниже, эта прога генерирует нашу строку столько раз сколько закажем, НО пишиет все в одну строку и получается в файле что то вроде wehgf^@#$@jger9@$. после чего выполняет переход на новую строку.
А мне нужно что бы в файле было нечто вроде
12qw"№
2а13;%
s95#@
и т.д. оператор повторения не захватывает код создания перехода на новую строку, в результате переход осуществляется только 1 раз.

Код:
var
 i,j,n,k,g :integer;
 s:string;
  f:textfile;
begin
Write('Вводим g');
Readln(g);
Write('Вводим количество символов в "абракадабре" ');
Readln(n);
randomize;
 s:='';
 for j:=1 to n do
 for k:=1 to g do
begin
 i:=random(3);
 if i=0 then
 s:=s+chr(random(13)+ 48)else
  if i=1 then
 s:=s+chr(random(65)+62)else
  if i=2 then
 s:=s+chr(random(15)+33);
 s:=s+chr(10)+chr(13);
end;
writeln(s);
assign(f,'qwerty.txt');
rewrite(f);
writeln(f,s);
close(f);
Readln;
end.
White_foxSA вне форума Ответить с цитированием
Старый 19.01.2010, 15:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
rewrite(f);
Вместо этого append(f); тогде будет дописываться в конец файла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 16:38   #5
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию

все равно, выдает строку, символов подряд, а необходимо
что бы каждое сгенерированное, было на новой строке
White_foxSA вне форума Ответить с цитированием
Старый 19.01.2010, 16:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может тя так устроит:
1. Убери строку s:=s+chr(10)+chr(13);
2. append(f); вместо rewrite(f); не забудь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 16:56   #7
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию

сейчас попробую

Последний раз редактировалось White_foxSA; 19.01.2010 в 18:16.
White_foxSA вне форума Ответить с цитированием
Старый 19.01.2010, 18:03   #8
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию

сделал, в итоге начинаю злиться на эту прогу, нехотит работать как надо

Последний раз редактировалось White_foxSA; 19.01.2010 в 18:11.
White_foxSA вне форума Ответить с цитированием
Старый 19.01.2010, 18:40   #9
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Код:
var
  i,j,n,k,g :integer;
  s:string;
  f:textfile;
begin
  Write('Сколько раз повторить прогу?');
  Readln(g);
  Write('Вводим количество символов в "абракадабре" ');
  Readln(n);
  randomize;
  assign(f,'qwerty.txt');
  rewrite(f);
  for j:=1 to n do Begin
    s:='';
    for k:=1 to g do
    begin
      i:=random(3);
      if i=0 then
        s:=s+chr(random(13)+ 48)
      else
        if i=1 then
          s:=s+chr(random(65)+62)
        else
          if i=2 then
            s:=s+chr(random(15)+33);
    end;
    writeln(s);
    writeln(f,s);
  end;
  close(f);
  Readln;
end.
P.S. White_foxSA учитесь правильно форматировать программный код. Всего несколько пробелов в начале каждой сточки и сразу видно что и сколько раз повторяется.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 19.01.2010 в 18:59.
val_nnm вне форума Ответить с цитированием
Старый 19.01.2010, 18:57   #10
White_foxSA
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 56
По умолчанию

Тему можно закрыть, проблема решена)
White_foxSA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
Ошибки повторения включений. jojahti Общие вопросы C/C++ 5 23.08.2009 05:45
Повторения в Combobox crit БД в Delphi 3 03.06.2009 17:10
Повторения(Файл) ТРОЯН=) Помощь студентам 2 09.04.2009 21:52
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10