IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с Файлами, задачка
BoB@N
сообщение 4.12.2005 21:41
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


Определить индексы нулевых элементов массива A(m,n). Элементы данного массива находятся в файле, результат поместить в другой файл.

Проблема с этим исходником в том, что в сохраняемом файле Otvet.txt значения индексов из A[m] равны значениям индексов из A[n].
unsure.gif

Код

Program Faels;
Uses dos,crt;
var
a:array[1..100]of integer;
f,l:text;
i,j:integer;
begin
 clrscr;
 Assign(f,'d:\PASCAL\laba52.txt');
 Reset(f);
Writeln('A[m]:');
for i:=1 to 8 do
begin
 Read(f,a[i]);
 Write(' ',a[i]);
end;
Writeln;
Writeln('A[n]:');
for j:=1 to 8 do
begin
 Read(f,a[j]);
 Write(' ',a[j]);
end;
Assign(l,'d:\PASCAL\Otvet.txt');
Rewrite(l);
for i:=1 to 8 do
if a[i]=0 then
Writeln(l,'A[m]:',i);
for j:=1 to 8 do
if a[j]=0 then
Writeln(l,'A[n]:',j);
Close(l);
Readln;
end.


Сообщение отредактировано: BoB@N - 4.12.2005 21:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
Atos
сообщение 5.12.2005 8:52
Сообщение #2


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


blink.gif Совершенно непонятно, что ты хочешь сделать, и что ты понимаешь под а[ m] и a[n], если у тебя в программе один-единственный массив a.
Цитата
значения индексов из A[ m] равны значениям индексов из A[n].
А чего ты хотел? Сам же зачем-то выводишь одинаковые индексы в двух совершенно одинаковых циклах:
for i:=1 to 8 do
if a[i]=0 then
Writeln(l,'A[ m]:',i);
и
for j:=1 to 8 do
if a[j]=0 then
Writeln(l,'A[n]:',j);

Скорее всего ты вообще не понял задания. A(m,n) по идее - это двумерный массив. И какой именно результат должен записываться в файл?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BoB@N
сообщение 5.12.2005 11:18
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


Да, массив должен быть двумерный...
В файле с текстом находятся цифры в два ряда (8-штук в ряде)..
Я пытаюсь каждому ряду присвоить m и n..
Может я запарился-но смысл в том, чтобы в выходном файле имелись значения в две строки (типо двумерный массив)
unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 5.12.2005 11:57
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


вот тебе пример, как рабобать не используя массив, дальше надеюсь сам разберешься как сделать :

uses crt;
var
f : text;
i,j,n : integer;
begin
assign(f, 'c:\test.txt');
reset(f);
i := 1;
j := 1;
while not(eof(f)) do begin
while not(eoln(f)) do begin
read(f,n);
writeln('x[',i,',',j,']=',n);
inc(j);
end;
readln(f);
inc(i);
j := 1;
end;

close(f);
readln
end.



Содержание текстового файла например :

1 2 3
12 13 14


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BoB@N
сообщение 7.12.2005 20:21
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


Вот я начал делать, но возникла очередная проблема:
У меня в конечном файле выводится только индекс последнего элемента(если элементов больше одного), а не всех. При введении цикла -прога начинает глючить.. wacko.gif
Код

var
  f,l : text;
  i,j,n,c : integer;
begin
clrscr;
  assign(f, 'd:\PASCAL\laba52.txt');
  reset(f);
  i := 1;
  j := 1;
  while not(eof(f)) do begin
     while not(eoln(f)) do begin
        read(f,n);
        writeln('A[',i,',',j,']=',n);
        if n=0 then
         c:=j;
         inc(j);
     end;
      readln(f);
     inc(i);
     j := 1;
  end;
Assign(l,'d:\PASCAL\Otvet.txt');
Rewrite(l);
Writeln(l,c);
  close(f);
  close(l);
  readkey;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 8.12.2005 8:22
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


uses crt;
var
f,g : text;
i,j,n : integer;
begin
assign(f, 'c:\test.txt');
reset(f);
assign(g, 'c:\out.txt');
rewrite(g);
i := 1;
j := 1;
while not(eof(f)) do begin
while not(eoln(f)) do begin
read(f,n);
writeln('x[',i,',',j,']=',n);
if n = 0 then begin
write(g,'i = ',i,' ');
write(g,'j = ',j,' ');
writeln(g);
end;
inc(j);
end;
readln(f);
inc(i);
j := 1;
end;

close(f);
close(g);
readln
end.



Сообщение отредактировано: klem4 - 8.12.2005 8:24


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BoB@N
сообщение 8.12.2005 19:29
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


good.gif good.gif good.gif СпАсИбО за ПомоЩь good.gif good.gif good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.07.2025 6:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"